summaryrefslogtreecommitdiff
path: root/lib
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 /lib
Imported Upstream version 0.9.1upstream/0.9.1
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile.am297
-rw-r--r--lib/Makefile.gnulib4655
-rw-r--r--lib/Makefile.in4285
-rw-r--r--lib/alloca.in.h56
-rw-r--r--lib/array-mergesort.h274
-rw-r--r--lib/c-ctype.c396
-rw-r--r--lib/c-ctype.h295
-rw-r--r--lib/c-strcase.h55
-rw-r--r--lib/c-strcasecmp.c57
-rw-r--r--lib/c-strcaseeq.h184
-rw-r--r--lib/c-strncasecmp.c57
-rwxr-xr-xlib/config.charset683
-rwxr-xr-xlib/declared.sh135
-rw-r--r--lib/errno.in.h160
-rw-r--r--lib/exported.sh.in24
-rw-r--r--lib/float+.h148
-rw-r--r--lib/float.in.h62
-rw-r--r--lib/fpucw.h107
-rw-r--r--lib/frexp.c166
-rw-r--r--lib/frexpl.c18
-rw-r--r--lib/fseterr.c74
-rw-r--r--lib/fseterr.h37
-rw-r--r--lib/getpagesize.c39
-rw-r--r--lib/iconv.in.h71
-rw-r--r--lib/iconv_open-aix.gperf44
-rw-r--r--lib/iconv_open-aix.h256
-rw-r--r--lib/iconv_open-hpux.gperf56
-rw-r--r--lib/iconv_open-hpux.h299
-rw-r--r--lib/iconv_open-irix.gperf31
-rw-r--r--lib/iconv_open-irix.h199
-rw-r--r--lib/iconv_open-osf.gperf50
-rw-r--r--lib/iconv_open-osf.h278
-rw-r--r--lib/iconv_open.c172
-rw-r--r--lib/iconveh.h41
-rw-r--r--lib/isnan.c161
-rw-r--r--lib/isnand-nolibm.h33
-rw-r--r--lib/isnand.c19
-rw-r--r--lib/isnanf-nolibm.h33
-rw-r--r--lib/isnanf.c20
-rw-r--r--lib/isnanl-nolibm.h33
-rw-r--r--lib/isnanl.c20
-rw-r--r--lib/libunistring.rc38
-rw-r--r--lib/libunistring.sym559
-rw-r--r--lib/localcharset.c499
-rw-r--r--lib/localcharset.h41
-rw-r--r--lib/localename.c1692
-rw-r--r--lib/localename.h77
-rw-r--r--lib/malloc.c57
-rw-r--r--lib/malloca.c137
-rw-r--r--lib/malloca.h134
-rw-r--r--lib/malloca.valgrind7
-rw-r--r--lib/math.in.h567
-rw-r--r--lib/mbchar.c35
-rw-r--r--lib/mbchar.h350
-rw-r--r--lib/mbiter.h215
-rw-r--r--lib/mbrtowc.c386
-rw-r--r--lib/mbsinit.c47
-rw-r--r--lib/mbsnlen.c45
-rw-r--r--lib/memchr.c172
-rw-r--r--lib/memchr.valgrind14
-rw-r--r--lib/memcmp2.c36
-rw-r--r--lib/memcmp2.h39
-rw-r--r--lib/memxfrm.c137
-rw-r--r--lib/memxfrm.h48
-rw-r--r--lib/minmax.h60
-rw-r--r--lib/printf-args.c187
-rw-r--r--lib/printf-args.h154
-rw-r--r--lib/printf-frexp.c188
-rw-r--r--lib/printf-frexp.h23
-rw-r--r--lib/printf-frexpl.c18
-rw-r--r--lib/printf-frexpl.h23
-rw-r--r--lib/printf-parse.c627
-rw-r--r--lib/printf-parse.h179
-rw-r--r--lib/ref-add.sin30
-rw-r--r--lib/ref-del.sin25
-rw-r--r--lib/relocatable.c493
-rw-r--r--lib/relocatable.h83
-rw-r--r--lib/signbitd.c64
-rw-r--r--lib/signbitf.c64
-rw-r--r--lib/signbitl.c64
-rw-r--r--lib/size_max.h31
-rw-r--r--lib/stdbool.in.h119
-rw-r--r--lib/stdint.in.h567
-rw-r--r--lib/stdint.mini.h128
-rw-r--r--lib/stdio-impl.h94
-rw-r--r--lib/stdlib.in.h383
-rw-r--r--lib/streq.h176
-rw-r--r--lib/striconveh.c1251
-rw-r--r--lib/striconveh.h120
-rw-r--r--lib/striconveha.c348
-rw-r--r--lib/striconveha.h95
-rw-r--r--lib/string.in.h620
-rw-r--r--lib/unicase.h457
-rw-r--r--lib/unicase/cased.c53
-rw-r--r--lib/unicase/cased.h343
-rw-r--r--lib/unicase/casefold.h22
-rw-r--r--lib/unicase/caseprop.h32
-rw-r--r--lib/unicase/context.h65
-rw-r--r--lib/unicase/empty-prefix-context.c27
-rw-r--r--lib/unicase/empty-suffix-context.c27
-rw-r--r--lib/unicase/ignorable.c71
-rw-r--r--lib/unicase/ignorable.h544
-rw-r--r--lib/unicase/invariant.h45
-rw-r--r--lib/unicase/locale-language.c55
-rw-r--r--lib/unicase/locale-languages.gperf270
-rw-r--r--lib/unicase/locale-languages.h1034
-rw-r--r--lib/unicase/simple-mapping.h39
-rw-r--r--lib/unicase/special-casing-table.gperf136
-rw-r--r--lib/unicase/special-casing-table.h339
-rw-r--r--lib/unicase/special-casing.c25
-rw-r--r--lib/unicase/special-casing.h60
-rw-r--r--lib/unicase/tocasefold.c27
-rw-r--r--lib/unicase/tocasefold.h567
-rw-r--r--lib/unicase/tolower.c27
-rw-r--r--lib/unicase/tolower.h567
-rw-r--r--lib/unicase/totitle.c27
-rw-r--r--lib/unicase/totitle.h615
-rw-r--r--lib/unicase/toupper.c27
-rw-r--r--lib/unicase/toupper.h615
-rw-r--r--lib/unicase/u-casecmp.h69
-rw-r--r--lib/unicase/u-casecoll.h68
-rw-r--r--lib/unicase/u-casefold.h28
-rw-r--r--lib/unicase/u-casemap.h416
-rw-r--r--lib/unicase/u-casexfrm.h88
-rw-r--r--lib/unicase/u-ct-casefold.h107
-rw-r--r--lib/unicase/u-ct-totitle.h501
-rw-r--r--lib/unicase/u-is-cased.h128
-rw-r--r--lib/unicase/u-is-invariant.h64
-rw-r--r--lib/unicase/u-totitle.h28
-rw-r--r--lib/unicase/u16-casecmp.c35
-rw-r--r--lib/unicase/u16-casecoll.c32
-rw-r--r--lib/unicase/u16-casefold.c26
-rw-r--r--lib/unicase/u16-casemap.c40
-rw-r--r--lib/unicase/u16-casexfrm.c35
-rw-r--r--lib/unicase/u16-ct-casefold.c35
-rw-r--r--lib/unicase/u16-ct-tolower.c40
-rw-r--r--lib/unicase/u16-ct-totitle.c43
-rw-r--r--lib/unicase/u16-ct-toupper.c40
-rw-r--r--lib/unicase/u16-is-cased.c36
-rw-r--r--lib/unicase/u16-is-casefolded.c30
-rw-r--r--lib/unicase/u16-is-invariant.c33
-rw-r--r--lib/unicase/u16-is-lowercase.c30
-rw-r--r--lib/unicase/u16-is-titlecase.c30
-rw-r--r--lib/unicase/u16-is-uppercase.c30
-rw-r--r--lib/unicase/u16-tolower.c39
-rw-r--r--lib/unicase/u16-totitle.c27
-rw-r--r--lib/unicase/u16-toupper.c39
-rw-r--r--lib/unicase/u32-casecmp.c35
-rw-r--r--lib/unicase/u32-casecoll.c32
-rw-r--r--lib/unicase/u32-casefold.c26
-rw-r--r--lib/unicase/u32-casemap.c40
-rw-r--r--lib/unicase/u32-casexfrm.c35
-rw-r--r--lib/unicase/u32-ct-casefold.c35
-rw-r--r--lib/unicase/u32-ct-tolower.c40
-rw-r--r--lib/unicase/u32-ct-totitle.c43
-rw-r--r--lib/unicase/u32-ct-toupper.c40
-rw-r--r--lib/unicase/u32-is-cased.c36
-rw-r--r--lib/unicase/u32-is-casefolded.c30
-rw-r--r--lib/unicase/u32-is-invariant.c33
-rw-r--r--lib/unicase/u32-is-lowercase.c30
-rw-r--r--lib/unicase/u32-is-titlecase.c30
-rw-r--r--lib/unicase/u32-is-uppercase.c30
-rw-r--r--lib/unicase/u32-tolower.c39
-rw-r--r--lib/unicase/u32-totitle.c26
-rw-r--r--lib/unicase/u32-toupper.c39
-rw-r--r--lib/unicase/u8-casecmp.c35
-rw-r--r--lib/unicase/u8-casecoll.c32
-rw-r--r--lib/unicase/u8-casefold.c107
-rw-r--r--lib/unicase/u8-casemap.c40
-rw-r--r--lib/unicase/u8-casexfrm.c35
-rw-r--r--lib/unicase/u8-ct-casefold.c35
-rw-r--r--lib/unicase/u8-ct-tolower.c40
-rw-r--r--lib/unicase/u8-ct-totitle.c43
-rw-r--r--lib/unicase/u8-ct-toupper.c40
-rw-r--r--lib/unicase/u8-is-cased.c36
-rw-r--r--lib/unicase/u8-is-casefolded.c30
-rw-r--r--lib/unicase/u8-is-invariant.c33
-rw-r--r--lib/unicase/u8-is-lowercase.c30
-rw-r--r--lib/unicase/u8-is-titlecase.c30
-rw-r--r--lib/unicase/u8-is-uppercase.c30
-rw-r--r--lib/unicase/u8-tolower.c120
-rw-r--r--lib/unicase/u8-totitle.c107
-rw-r--r--lib/unicase/u8-toupper.c120
-rw-r--r--lib/unicase/ulc-casecmp.c74
-rw-r--r--lib/unicase/ulc-casecoll.c31
-rw-r--r--lib/unicase/ulc-casexfrm.c64
-rw-r--r--lib/unicase/unicasemap.h52
-rw-r--r--lib/uniconv.h169
-rw-r--r--lib/uniconv/u-conv-from-enc.h91
-rw-r--r--lib/uniconv/u-conv-to-enc.h156
-rw-r--r--lib/uniconv/u-strconv-from-enc.h40
-rw-r--r--lib/uniconv/u-strconv-to-enc.h63
-rw-r--r--lib/uniconv/u16-conv-from-enc.c47
-rw-r--r--lib/uniconv/u16-conv-to-enc.c177
-rw-r--r--lib/uniconv/u16-strconv-from-enc.c34
-rw-r--r--lib/uniconv/u16-strconv-from-locale.c29
-rw-r--r--lib/uniconv/u16-strconv-to-enc.c50
-rw-r--r--lib/uniconv/u16-strconv-to-locale.c29
-rw-r--r--lib/uniconv/u32-conv-from-enc.c46
-rw-r--r--lib/uniconv/u32-conv-to-enc.c49
-rw-r--r--lib/uniconv/u32-strconv-from-enc.c34
-rw-r--r--lib/uniconv/u32-strconv-from-locale.c29
-rw-r--r--lib/uniconv/u32-strconv-to-enc.c49
-rw-r--r--lib/uniconv/u32-strconv-to-locale.c29
-rw-r--r--lib/uniconv/u8-conv-from-enc.c105
-rw-r--r--lib/uniconv/u8-conv-to-enc.c92
-rw-r--r--lib/uniconv/u8-strconv-from-enc.c34
-rw-r--r--lib/uniconv/u8-strconv-from-locale.c29
-rw-r--r--lib/uniconv/u8-strconv-to-enc.c79
-rw-r--r--lib/uniconv/u8-strconv-to-locale.c29
-rw-r--r--lib/unictype.h720
-rw-r--r--lib/unictype/bidi_byname.c171
-rw-r--r--lib/unictype/bidi_name.c35
-rw-r--r--lib/unictype/bidi_of.c52
-rw-r--r--lib/unictype/bidi_of.h789
-rw-r--r--lib/unictype/bidi_test.c27
-rw-r--r--lib/unictype/bitmap.h47
-rw-r--r--lib/unictype/block_test.c31
-rw-r--r--lib/unictype/blocks.c62
-rw-r--r--lib/unictype/blocks.h952
-rw-r--r--lib/unictype/categ_C.c27
-rw-r--r--lib/unictype/categ_C.h890
-rw-r--r--lib/unictype/categ_Cc.c27
-rw-r--r--lib/unictype/categ_Cc.h156
-rw-r--r--lib/unictype/categ_Cf.c27
-rw-r--r--lib/unictype/categ_Cf.h452
-rw-r--r--lib/unictype/categ_Cn.c27
-rw-r--r--lib/unictype/categ_Cn.h1014
-rw-r--r--lib/unictype/categ_Co.c27
-rw-r--r--lib/unictype/categ_Co.h310
-rw-r--r--lib/unictype/categ_Cs.c30
-rw-r--r--lib/unictype/categ_Cs.h156
-rw-r--r--lib/unictype/categ_L.c27
-rw-r--r--lib/unictype/categ_L.h580
-rw-r--r--lib/unictype/categ_Ll.c27
-rw-r--r--lib/unictype/categ_Ll.h335
-rw-r--r--lib/unictype/categ_Lm.c27
-rw-r--r--lib/unictype/categ_Lm.h216
-rw-r--r--lib/unictype/categ_Lo.c27
-rw-r--r--lib/unictype/categ_Lo.h568
-rw-r--r--lib/unictype/categ_Lt.c27
-rw-r--r--lib/unictype/categ_Lt.h160
-rw-r--r--lib/unictype/categ_Lu.c27
-rw-r--r--lib/unictype/categ_Lu.h331
-rw-r--r--lib/unictype/categ_M.c27
-rw-r--r--lib/unictype/categ_M.h528
-rw-r--r--lib/unictype/categ_Mc.c27
-rw-r--r--lib/unictype/categ_Mc.h331
-rw-r--r--lib/unictype/categ_Me.c27
-rw-r--r--lib/unictype/categ_Me.h168
-rw-r--r--lib/unictype/categ_Mn.c27
-rw-r--r--lib/unictype/categ_Mn.h528
-rw-r--r--lib/unictype/categ_N.c27
-rw-r--r--lib/unictype/categ_N.h403
-rw-r--r--lib/unictype/categ_Nd.c27
-rw-r--r--lib/unictype/categ_Nd.h351
-rw-r--r--lib/unictype/categ_Nl.c27
-rw-r--r--lib/unictype/categ_Nl.h307
-rw-r--r--lib/unictype/categ_No.c27
-rw-r--r--lib/unictype/categ_No.h355
-rw-r--r--lib/unictype/categ_P.c27
-rw-r--r--lib/unictype/categ_P.h403
-rw-r--r--lib/unictype/categ_Pc.c27
-rw-r--r--lib/unictype/categ_Pc.h164
-rw-r--r--lib/unictype/categ_Pd.c27
-rw-r--r--lib/unictype/categ_Pd.h180
-rw-r--r--lib/unictype/categ_Pe.c27
-rw-r--r--lib/unictype/categ_Pe.h196
-rw-r--r--lib/unictype/categ_Pf.c27
-rw-r--r--lib/unictype/categ_Pf.h164
-rw-r--r--lib/unictype/categ_Pi.c27
-rw-r--r--lib/unictype/categ_Pi.h164
-rw-r--r--lib/unictype/categ_Po.c27
-rw-r--r--lib/unictype/categ_Po.h387
-rw-r--r--lib/unictype/categ_Ps.c27
-rw-r--r--lib/unictype/categ_Ps.h196
-rw-r--r--lib/unictype/categ_S.c27
-rw-r--r--lib/unictype/categ_S.h427
-rw-r--r--lib/unictype/categ_Sc.c27
-rw-r--r--lib/unictype/categ_Sc.h188
-rw-r--r--lib/unictype/categ_Sk.c27
-rw-r--r--lib/unictype/categ_Sk.h176
-rw-r--r--lib/unictype/categ_Sm.c27
-rw-r--r--lib/unictype/categ_Sm.h331
-rw-r--r--lib/unictype/categ_So.c27
-rw-r--r--lib/unictype/categ_So.h403
-rw-r--r--lib/unictype/categ_Z.c27
-rw-r--r--lib/unictype/categ_Z.h172
-rw-r--r--lib/unictype/categ_Zl.c30
-rw-r--r--lib/unictype/categ_Zl.h156
-rw-r--r--lib/unictype/categ_Zp.c30
-rw-r--r--lib/unictype/categ_Zp.h156
-rw-r--r--lib/unictype/categ_Zs.c27
-rw-r--r--lib/unictype/categ_Zs.h172
-rw-r--r--lib/unictype/categ_and.c45
-rw-r--r--lib/unictype/categ_and_not.c42
-rw-r--r--lib/unictype/categ_byname.c105
-rw-r--r--lib/unictype/categ_name.c77
-rw-r--r--lib/unictype/categ_none.c30
-rw-r--r--lib/unictype/categ_of.c81
-rw-r--r--lib/unictype/categ_of.h1088
-rw-r--r--lib/unictype/categ_or.c42
-rw-r--r--lib/unictype/categ_test.c32
-rw-r--r--lib/unictype/combining.c47
-rw-r--r--lib/unictype/combining.h839
-rw-r--r--lib/unictype/ctype_alnum.c32
-rw-r--r--lib/unictype/ctype_alnum.h588
-rw-r--r--lib/unictype/ctype_alpha.c32
-rw-r--r--lib/unictype/ctype_alpha.h588
-rw-r--r--lib/unictype/ctype_blank.c32
-rw-r--r--lib/unictype/ctype_blank.h172
-rw-r--r--lib/unictype/ctype_cntrl.c32
-rw-r--r--lib/unictype/ctype_cntrl.h160
-rw-r--r--lib/unictype/ctype_digit.c32
-rw-r--r--lib/unictype/ctype_digit.h156
-rw-r--r--lib/unictype/ctype_graph.c32
-rw-r--r--lib/unictype/ctype_graph.h890
-rw-r--r--lib/unictype/ctype_lower.c32
-rw-r--r--lib/unictype/ctype_lower.h327
-rw-r--r--lib/unictype/ctype_print.c32
-rw-r--r--lib/unictype/ctype_print.h890
-rw-r--r--lib/unictype/ctype_punct.c32
-rw-r--r--lib/unictype/ctype_punct.h734
-rw-r--r--lib/unictype/ctype_space.c32
-rw-r--r--lib/unictype/ctype_space.h172
-rw-r--r--lib/unictype/ctype_upper.c32
-rw-r--r--lib/unictype/ctype_upper.h327
-rw-r--r--lib/unictype/ctype_xdigit.c32
-rw-r--r--lib/unictype/ctype_xdigit.h156
-rw-r--r--lib/unictype/decdigit.c49
-rw-r--r--lib/unictype/decdigit.h247
-rw-r--r--lib/unictype/digit.c49
-rw-r--r--lib/unictype/digit.h311
-rw-r--r--lib/unictype/identsyntaxmap.h42
-rw-r--r--lib/unictype/mirror.c49
-rw-r--r--lib/unictype/mirror.h503
-rw-r--r--lib/unictype/numeric.c55
-rw-r--r--lib/unictype/numeric.h635
-rw-r--r--lib/unictype/pr_alphabetic.c35
-rw-r--r--lib/unictype/pr_alphabetic.h588
-rw-r--r--lib/unictype/pr_ascii_hex_digit.c35
-rw-r--r--lib/unictype/pr_ascii_hex_digit.h156
-rw-r--r--lib/unictype/pr_bidi_arabic_digit.c47
-rw-r--r--lib/unictype/pr_bidi_arabic_digit.h156
-rw-r--r--lib/unictype/pr_bidi_arabic_right_to_left.c47
-rw-r--r--lib/unictype/pr_bidi_arabic_right_to_left.h172
-rw-r--r--lib/unictype/pr_bidi_block_separator.c47
-rw-r--r--lib/unictype/pr_bidi_block_separator.h160
-rw-r--r--lib/unictype/pr_bidi_boundary_neutral.c47
-rw-r--r--lib/unictype/pr_bidi_boundary_neutral.h590
-rw-r--r--lib/unictype/pr_bidi_common_separator.c47
-rw-r--r--lib/unictype/pr_bidi_common_separator.h168
-rw-r--r--lib/unictype/pr_bidi_control.c35
-rw-r--r--lib/unictype/pr_bidi_control.h156
-rw-r--r--lib/unictype/pr_bidi_embedding_or_override.c49
-rw-r--r--lib/unictype/pr_bidi_embedding_or_override.h156
-rw-r--r--lib/unictype/pr_bidi_eur_num_separator.c47
-rw-r--r--lib/unictype/pr_bidi_eur_num_separator.h172
-rw-r--r--lib/unictype/pr_bidi_eur_num_terminator.c47
-rw-r--r--lib/unictype/pr_bidi_eur_num_terminator.h188
-rw-r--r--lib/unictype/pr_bidi_european_digit.c47
-rw-r--r--lib/unictype/pr_bidi_european_digit.h307
-rw-r--r--lib/unictype/pr_bidi_hebrew_right_to_left.c47
-rw-r--r--lib/unictype/pr_bidi_hebrew_right_to_left.h315
-rw-r--r--lib/unictype/pr_bidi_left_to_right.c47
-rw-r--r--lib/unictype/pr_bidi_left_to_right.h706
-rw-r--r--lib/unictype/pr_bidi_non_spacing_mark.c47
-rw-r--r--lib/unictype/pr_bidi_non_spacing_mark.h528
-rw-r--r--lib/unictype/pr_bidi_other_neutral.c47
-rw-r--r--lib/unictype/pr_bidi_other_neutral.h407
-rw-r--r--lib/unictype/pr_bidi_pdf.c47
-rw-r--r--lib/unictype/pr_bidi_pdf.h156
-rw-r--r--lib/unictype/pr_bidi_segment_separator.c47
-rw-r--r--lib/unictype/pr_bidi_segment_separator.h156
-rw-r--r--lib/unictype/pr_bidi_whitespace.c47
-rw-r--r--lib/unictype/pr_bidi_whitespace.h172
-rw-r--r--lib/unictype/pr_byname.c59
-rw-r--r--lib/unictype/pr_byname.gperf89
-rw-r--r--lib/unictype/pr_byname.h289
-rw-r--r--lib/unictype/pr_combining.c35
-rw-r--r--lib/unictype/pr_combining.h528
-rw-r--r--lib/unictype/pr_composite.c35
-rw-r--r--lib/unictype/pr_composite.h375
-rw-r--r--lib/unictype/pr_currency_symbol.c47
-rw-r--r--lib/unictype/pr_currency_symbol.h188
-rw-r--r--lib/unictype/pr_dash.c35
-rw-r--r--lib/unictype/pr_dash.h184
-rw-r--r--lib/unictype/pr_decimal_digit.c47
-rw-r--r--lib/unictype/pr_decimal_digit.h351
-rw-r--r--lib/unictype/pr_default_ignorable_code_point.c35
-rw-r--r--lib/unictype/pr_default_ignorable_code_point.h464
-rw-r--r--lib/unictype/pr_deprecated.c35
-rw-r--r--lib/unictype/pr_deprecated.h312
-rw-r--r--lib/unictype/pr_diacritic.c35
-rw-r--r--lib/unictype/pr_diacritic.h367
-rw-r--r--lib/unictype/pr_extender.c35
-rw-r--r--lib/unictype/pr_extender.h192
-rw-r--r--lib/unictype/pr_format_control.c35
-rw-r--r--lib/unictype/pr_format_control.h444
-rw-r--r--lib/unictype/pr_grapheme_base.c35
-rw-r--r--lib/unictype/pr_grapheme_base.h616
-rw-r--r--lib/unictype/pr_grapheme_extend.c35
-rw-r--r--lib/unictype/pr_grapheme_extend.h528
-rw-r--r--lib/unictype/pr_grapheme_link.c35
-rw-r--r--lib/unictype/pr_grapheme_link.h319
-rw-r--r--lib/unictype/pr_hex_digit.c35
-rw-r--r--lib/unictype/pr_hex_digit.h160
-rw-r--r--lib/unictype/pr_hyphen.c35
-rw-r--r--lib/unictype/pr_hyphen.h180
-rw-r--r--lib/unictype/pr_id_continue.c35
-rw-r--r--lib/unictype/pr_id_continue.h732
-rw-r--r--lib/unictype/pr_id_start.c35
-rw-r--r--lib/unictype/pr_id_start.h580
-rw-r--r--lib/unictype/pr_ideographic.c35
-rw-r--r--lib/unictype/pr_ideographic.h316
-rw-r--r--lib/unictype/pr_ids_binary_operator.c35
-rw-r--r--lib/unictype/pr_ids_binary_operator.h156
-rw-r--r--lib/unictype/pr_ids_trinary_operator.c35
-rw-r--r--lib/unictype/pr_ids_trinary_operator.h156
-rw-r--r--lib/unictype/pr_ignorable_control.c35
-rw-r--r--lib/unictype/pr_ignorable_control.h452
-rw-r--r--lib/unictype/pr_iso_control.c47
-rw-r--r--lib/unictype/pr_iso_control.h156
-rw-r--r--lib/unictype/pr_join_control.c47
-rw-r--r--lib/unictype/pr_join_control.h156
-rw-r--r--lib/unictype/pr_left_of_pair.c35
-rw-r--r--lib/unictype/pr_left_of_pair.h184
-rw-r--r--lib/unictype/pr_line_separator.c55
-rw-r--r--lib/unictype/pr_line_separator.h156
-rw-r--r--lib/unictype/pr_logical_order_exception.c35
-rw-r--r--lib/unictype/pr_logical_order_exception.h156
-rw-r--r--lib/unictype/pr_lowercase.c35
-rw-r--r--lib/unictype/pr_lowercase.h339
-rw-r--r--lib/unictype/pr_math.c35
-rw-r--r--lib/unictype/pr_math.h335
-rw-r--r--lib/unictype/pr_non_break.c35
-rw-r--r--lib/unictype/pr_non_break.h172
-rw-r--r--lib/unictype/pr_not_a_character.c35
-rw-r--r--lib/unictype/pr_not_a_character.h306
-rw-r--r--lib/unictype/pr_numeric.c35
-rw-r--r--lib/unictype/pr_numeric.h540
-rw-r--r--lib/unictype/pr_other_alphabetic.c35
-rw-r--r--lib/unictype/pr_other_alphabetic.h359
-rw-r--r--lib/unictype/pr_other_default_ignorable_code_point.c35
-rw-r--r--lib/unictype/pr_other_default_ignorable_code_point.h324
-rw-r--r--lib/unictype/pr_other_grapheme_extend.c35
-rw-r--r--lib/unictype/pr_other_grapheme_extend.h307
-rw-r--r--lib/unictype/pr_other_id_continue.c35
-rw-r--r--lib/unictype/pr_other_id_continue.h164
-rw-r--r--lib/unictype/pr_other_id_start.c35
-rw-r--r--lib/unictype/pr_other_id_start.h160
-rw-r--r--lib/unictype/pr_other_lowercase.c35
-rw-r--r--lib/unictype/pr_other_lowercase.h176
-rw-r--r--lib/unictype/pr_other_math.c35
-rw-r--r--lib/unictype/pr_other_math.h323
-rw-r--r--lib/unictype/pr_other_uppercase.c35
-rw-r--r--lib/unictype/pr_other_uppercase.h160
-rw-r--r--lib/unictype/pr_paired_punctuation.c35
-rw-r--r--lib/unictype/pr_paired_punctuation.h184
-rw-r--r--lib/unictype/pr_paragraph_separator.c55
-rw-r--r--lib/unictype/pr_paragraph_separator.h156
-rw-r--r--lib/unictype/pr_pattern_syntax.c35
-rw-r--r--lib/unictype/pr_pattern_syntax.h188
-rw-r--r--lib/unictype/pr_pattern_white_space.c35
-rw-r--r--lib/unictype/pr_pattern_white_space.h160
-rw-r--r--lib/unictype/pr_private_use.c49
-rw-r--r--lib/unictype/pr_private_use.h310
-rw-r--r--lib/unictype/pr_punctuation.c47
-rw-r--r--lib/unictype/pr_punctuation.h403
-rw-r--r--lib/unictype/pr_quotation_mark.c35
-rw-r--r--lib/unictype/pr_quotation_mark.h168
-rw-r--r--lib/unictype/pr_radical.c35
-rw-r--r--lib/unictype/pr_radical.h156
-rw-r--r--lib/unictype/pr_sentence_terminal.c35
-rw-r--r--lib/unictype/pr_sentence_terminal.h220
-rw-r--r--lib/unictype/pr_soft_dotted.c35
-rw-r--r--lib/unictype/pr_soft_dotted.h319
-rw-r--r--lib/unictype/pr_space.c47
-rw-r--r--lib/unictype/pr_space.h172
-rw-r--r--lib/unictype/pr_terminal_punctuation.c35
-rw-r--r--lib/unictype/pr_terminal_punctuation.h371
-rw-r--r--lib/unictype/pr_test.c27
-rw-r--r--lib/unictype/pr_titlecase.c47
-rw-r--r--lib/unictype/pr_titlecase.h160
-rw-r--r--lib/unictype/pr_unassigned_code_value.c35
-rw-r--r--lib/unictype/pr_unassigned_code_value.h884
-rw-r--r--lib/unictype/pr_unified_ideograph.c35
-rw-r--r--lib/unictype/pr_unified_ideograph.h304
-rw-r--r--lib/unictype/pr_uppercase.c35
-rw-r--r--lib/unictype/pr_uppercase.h335
-rw-r--r--lib/unictype/pr_variation_selector.c35
-rw-r--r--lib/unictype/pr_variation_selector.h308
-rw-r--r--lib/unictype/pr_white_space.c35
-rw-r--r--lib/unictype/pr_white_space.h172
-rw-r--r--lib/unictype/pr_xid_continue.c35
-rw-r--r--lib/unictype/pr_xid_continue.h732
-rw-r--r--lib/unictype/pr_xid_start.c35
-rw-r--r--lib/unictype/pr_xid_start.h580
-rw-r--r--lib/unictype/pr_zero_width.c35
-rw-r--r--lib/unictype/pr_zero_width.h452
-rw-r--r--lib/unictype/scripts.c75
-rw-r--r--lib/unictype/scripts.h3704
-rw-r--r--lib/unictype/scripts_byname.gperf89
-rw-r--r--lib/unictype/scripts_byname.h281
-rw-r--r--lib/unictype/sy_c_ident.c31
-rw-r--r--lib/unictype/sy_c_ident.h140
-rw-r--r--lib/unictype/sy_c_whitespace.c27
-rw-r--r--lib/unictype/sy_java_ident.c31
-rw-r--r--lib/unictype/sy_java_ident.h343
-rw-r--r--lib/unictype/sy_java_whitespace.c27
-rw-r--r--lib/unilbrk.h110
-rw-r--r--lib/unilbrk/lbrkprop1.h33
-rw-r--r--lib/unilbrk/lbrkprop2.h2558
-rw-r--r--lib/unilbrk/lbrktables.c63
-rw-r--r--lib/unilbrk/lbrktables.h94
-rw-r--r--lib/unilbrk/u16-possible-linebreaks.c164
-rw-r--r--lib/unilbrk/u16-width-linebreaks.c108
-rw-r--r--lib/unilbrk/u32-possible-linebreaks.c158
-rw-r--r--lib/unilbrk/u32-width-linebreaks.c106
-rw-r--r--lib/unilbrk/u8-possible-linebreaks.c261
-rw-r--r--lib/unilbrk/u8-width-linebreaks.c204
-rw-r--r--lib/unilbrk/ulc-common.c51
-rw-r--r--lib/unilbrk/ulc-common.h31
-rw-r--r--lib/unilbrk/ulc-possible-linebreaks.c212
-rw-r--r--lib/unilbrk/ulc-width-linebreaks.c231
-rw-r--r--lib/uniname.h44
-rwxr-xr-xlib/uniname/gen-uninames.lisp301
-rw-r--r--lib/uniname/uniname.c516
-rw-r--r--lib/uniname/uninames.h61495
-rw-r--r--lib/uninorm.h248
-rw-r--r--lib/uninorm/canonical-decomposition.c108
-rw-r--r--lib/uninorm/compat-decomposition.c31
-rw-r--r--lib/uninorm/composition-table.gperf958
-rw-r--r--lib/uninorm/composition-table.h2159
-rw-r--r--lib/uninorm/composition.c85
-rw-r--r--lib/uninorm/decompose-internal.c28
-rw-r--r--lib/uninorm/decompose-internal.h36
-rw-r--r--lib/uninorm/decomposing-form.c29
-rw-r--r--lib/uninorm/decomposition-table.c23
-rw-r--r--lib/uninorm/decomposition-table.h48
-rw-r--r--lib/uninorm/decomposition-table1.h20
-rw-r--r--lib/uninorm/decomposition-table2.h3152
-rw-r--r--lib/uninorm/decomposition.c102
-rw-r--r--lib/uninorm/nfc.c31
-rw-r--r--lib/uninorm/nfd.c31
-rw-r--r--lib/uninorm/nfkc.c32
-rw-r--r--lib/uninorm/nfkd.c32
-rw-r--r--lib/uninorm/normalize-internal.h37
-rw-r--r--lib/uninorm/u-normalize-internal.h375
-rw-r--r--lib/uninorm/u-normcmp.h64
-rw-r--r--lib/uninorm/u-normcoll.h65
-rw-r--r--lib/uninorm/u-normxfrm.h87
-rw-r--r--lib/uninorm/u16-normalize.c38
-rw-r--r--lib/uninorm/u16-normcmp.c33
-rw-r--r--lib/uninorm/u16-normcoll.c31
-rw-r--r--lib/uninorm/u16-normxfrm.c34
-rw-r--r--lib/uninorm/u32-normalize.c38
-rw-r--r--lib/uninorm/u32-normcmp.c33
-rw-r--r--lib/uninorm/u32-normcoll.c31
-rw-r--r--lib/uninorm/u32-normxfrm.c34
-rw-r--r--lib/uninorm/u8-normalize.c38
-rw-r--r--lib/uninorm/u8-normcmp.c33
-rw-r--r--lib/uninorm/u8-normcoll.c31
-rw-r--r--lib/uninorm/u8-normxfrm.c34
-rw-r--r--lib/uninorm/uninorm-filter.c367
-rw-r--r--lib/unistd.in.h578
-rw-r--r--lib/unistdio.h256
-rw-r--r--lib/unistdio/u-asnprintf.h27
-rw-r--r--lib/unistdio/u-asprintf.h27
-rw-r--r--lib/unistdio/u-printf-args.c22
-rw-r--r--lib/unistdio/u-printf-args.h27
-rw-r--r--lib/unistdio/u-printf-parse.h27
-rw-r--r--lib/unistdio/u-snprintf.h27
-rw-r--r--lib/unistdio/u-sprintf.h27
-rw-r--r--lib/unistdio/u-vasprintf.h35
-rw-r--r--lib/unistdio/u-vsnprintf.h52
-rw-r--r--lib/unistdio/u-vsprintf.h58
-rw-r--r--lib/unistdio/u16-asnprintf.c28
-rw-r--r--lib/unistdio/u16-asprintf.c28
-rw-r--r--lib/unistdio/u16-printf-parse.c26
-rw-r--r--lib/unistdio/u16-snprintf.c28
-rw-r--r--lib/unistdio/u16-sprintf.c28
-rw-r--r--lib/unistdio/u16-u16-asnprintf.c28
-rw-r--r--lib/unistdio/u16-u16-asprintf.c28
-rw-r--r--lib/unistdio/u16-u16-snprintf.c28
-rw-r--r--lib/unistdio/u16-u16-sprintf.c28
-rw-r--r--lib/unistdio/u16-u16-vasnprintf.c49
-rw-r--r--lib/unistdio/u16-u16-vasprintf.c30
-rw-r--r--lib/unistdio/u16-u16-vsnprintf.c33
-rw-r--r--lib/unistdio/u16-u16-vsprintf.c32
-rw-r--r--lib/unistdio/u16-vasnprintf.c50
-rw-r--r--lib/unistdio/u16-vasprintf.c30
-rw-r--r--lib/unistdio/u16-vsnprintf.c33
-rw-r--r--lib/unistdio/u16-vsprintf.c32
-rw-r--r--lib/unistdio/u32-asnprintf.c28
-rw-r--r--lib/unistdio/u32-asprintf.c28
-rw-r--r--lib/unistdio/u32-printf-parse.c26
-rw-r--r--lib/unistdio/u32-snprintf.c28
-rw-r--r--lib/unistdio/u32-sprintf.c28
-rw-r--r--lib/unistdio/u32-u32-asnprintf.c28
-rw-r--r--lib/unistdio/u32-u32-asprintf.c28
-rw-r--r--lib/unistdio/u32-u32-snprintf.c28
-rw-r--r--lib/unistdio/u32-u32-sprintf.c28
-rw-r--r--lib/unistdio/u32-u32-vasnprintf.c49
-rw-r--r--lib/unistdio/u32-u32-vasprintf.c30
-rw-r--r--lib/unistdio/u32-u32-vsnprintf.c33
-rw-r--r--lib/unistdio/u32-u32-vsprintf.c32
-rw-r--r--lib/unistdio/u32-vasnprintf.c50
-rw-r--r--lib/unistdio/u32-vasprintf.c30
-rw-r--r--lib/unistdio/u32-vsnprintf.c33
-rw-r--r--lib/unistdio/u32-vsprintf.c32
-rw-r--r--lib/unistdio/u8-asnprintf.c28
-rw-r--r--lib/unistdio/u8-asprintf.c28
-rw-r--r--lib/unistdio/u8-printf-parse.c26
-rw-r--r--lib/unistdio/u8-snprintf.c28
-rw-r--r--lib/unistdio/u8-sprintf.c28
-rw-r--r--lib/unistdio/u8-u8-asnprintf.c28
-rw-r--r--lib/unistdio/u8-u8-asprintf.c28
-rw-r--r--lib/unistdio/u8-u8-snprintf.c28
-rw-r--r--lib/unistdio/u8-u8-sprintf.c28
-rw-r--r--lib/unistdio/u8-u8-vasnprintf.c49
-rw-r--r--lib/unistdio/u8-u8-vasprintf.c30
-rw-r--r--lib/unistdio/u8-u8-vsnprintf.c33
-rw-r--r--lib/unistdio/u8-u8-vsprintf.c32
-rw-r--r--lib/unistdio/u8-vasnprintf.c50
-rw-r--r--lib/unistdio/u8-vasprintf.c30
-rw-r--r--lib/unistdio/u8-vsnprintf.c33
-rw-r--r--lib/unistdio/u8-vsprintf.c32
-rw-r--r--lib/unistdio/ulc-asnprintf.c28
-rw-r--r--lib/unistdio/ulc-asprintf.c28
-rw-r--r--lib/unistdio/ulc-fprintf.c74
-rw-r--r--lib/unistdio/ulc-printf-parse.c27
-rw-r--r--lib/unistdio/ulc-snprintf.c28
-rw-r--r--lib/unistdio/ulc-sprintf.c28
-rw-r--r--lib/unistdio/ulc-vasnprintf.c46
-rw-r--r--lib/unistdio/ulc-vasprintf.c30
-rw-r--r--lib/unistdio/ulc-vfprintf.c71
-rw-r--r--lib/unistdio/ulc-vsnprintf.c33
-rw-r--r--lib/unistdio/ulc-vsprintf.c32
-rw-r--r--lib/unistr.h684
-rw-r--r--lib/unistr/u-cmp2.h32
-rw-r--r--lib/unistr/u-cpy-alloc.h39
-rw-r--r--lib/unistr/u-cpy.h32
-rw-r--r--lib/unistr/u-endswith.h28
-rw-r--r--lib/unistr/u-move.h44
-rw-r--r--lib/unistr/u-set.h39
-rw-r--r--lib/unistr/u-startswith.h30
-rw-r--r--lib/unistr/u-stpcpy.h24
-rw-r--r--lib/unistr/u-stpncpy.h30
-rw-r--r--lib/unistr/u-strcat.h26
-rw-r--r--lib/unistr/u-strcoll.h81
-rw-r--r--lib/unistr/u-strcpy.h26
-rw-r--r--lib/unistr/u-strcspn.h54
-rw-r--r--lib/unistr/u-strdup.h40
-rw-r--r--lib/unistr/u-strlen.h26
-rw-r--r--lib/unistr/u-strncat.h28
-rw-r--r--lib/unistr/u-strncpy.h32
-rw-r--r--lib/unistr/u-strnlen.h26
-rw-r--r--lib/unistr/u-strpbrk.h46
-rw-r--r--lib/unistr/u-strspn.h54
-rw-r--r--lib/unistr/u-strstr.h49
-rw-r--r--lib/unistr/u-strtok.h52
-rw-r--r--lib/unistr/u16-check.c51
-rw-r--r--lib/unistr/u16-chr.c56
-rw-r--r--lib/unistr/u16-cmp.c54
-rw-r--r--lib/unistr/u16-cmp2.c28
-rw-r--r--lib/unistr/u16-cpy-alloc.c25
-rw-r--r--lib/unistr/u16-cpy.c25
-rw-r--r--lib/unistr/u16-endswith.c27
-rw-r--r--lib/unistr/u16-mblen.c49
-rw-r--r--lib/unistr/u16-mbsnlen.c39
-rw-r--r--lib/unistr/u16-mbtouc-aux.c51
-rw-r--r--lib/unistr/u16-mbtouc-unsafe-aux.c55
-rw-r--r--lib/unistr/u16-mbtouc-unsafe.c66
-rw-r--r--lib/unistr/u16-mbtouc.c61
-rw-r--r--lib/unistr/u16-mbtoucr.c54
-rw-r--r--lib/unistr/u16-move.c25
-rw-r--r--lib/unistr/u16-next.c37
-rw-r--r--lib/unistr/u16-prev.c53
-rw-r--r--lib/unistr/u16-set.c26
-rw-r--r--lib/unistr/u16-startswith.c25
-rw-r--r--lib/unistr/u16-stpcpy.c25
-rw-r--r--lib/unistr/u16-stpncpy.c25
-rw-r--r--lib/unistr/u16-strcat.c26
-rw-r--r--lib/unistr/u16-strchr.c63
-rw-r--r--lib/unistr/u16-strcmp.c50
-rw-r--r--lib/unistr/u16-strcoll.c33
-rw-r--r--lib/unistr/u16-strcpy.c25
-rw-r--r--lib/unistr/u16-strcspn.c28
-rw-r--r--lib/unistr/u16-strdup.c26
-rw-r--r--lib/unistr/u16-strlen.c25
-rw-r--r--lib/unistr/u16-strmblen.c43
-rw-r--r--lib/unistr/u16-strmbtouc.c50
-rw-r--r--lib/unistr/u16-strncat.c26
-rw-r--r--lib/unistr/u16-strncmp.c54
-rw-r--r--lib/unistr/u16-strncpy.c25
-rw-r--r--lib/unistr/u16-strnlen.c25
-rw-r--r--lib/unistr/u16-strpbrk.c27
-rw-r--r--lib/unistr/u16-strrchr.c64
-rw-r--r--lib/unistr/u16-strspn.c29
-rw-r--r--lib/unistr/u16-strstr.c28
-rw-r--r--lib/unistr/u16-strtok.c27
-rw-r--r--lib/unistr/u16-to-u32.c125
-rw-r--r--lib/unistr/u16-to-u8.c136
-rw-r--r--lib/unistr/u16-uctomb-aux.c58
-rw-r--r--lib/unistr/u16-uctomb.c72
-rw-r--r--lib/unistr/u32-check.c39
-rw-r--r--lib/unistr/u32-chr.c32
-rw-r--r--lib/unistr/u32-cmp.c40
-rw-r--r--lib/unistr/u32-cmp2.c28
-rw-r--r--lib/unistr/u32-cpy-alloc.c25
-rw-r--r--lib/unistr/u32-cpy.c25
-rw-r--r--lib/unistr/u32-endswith.c27
-rw-r--r--lib/unistr/u32-mblen.c37
-rw-r--r--lib/unistr/u32-mbsnlen.c27
-rw-r--r--lib/unistr/u32-mbtouc-unsafe.c48
-rw-r--r--lib/unistr/u32-mbtouc.c43
-rw-r--r--lib/unistr/u32-mbtoucr.c39
-rw-r--r--lib/unistr/u32-move.c25
-rw-r--r--lib/unistr/u32-next.c39
-rw-r--r--lib/unistr/u32-prev.c39
-rw-r--r--lib/unistr/u32-set.c26
-rw-r--r--lib/unistr/u32-startswith.c25
-rw-r--r--lib/unistr/u32-stpcpy.c25
-rw-r--r--lib/unistr/u32-stpncpy.c25
-rw-r--r--lib/unistr/u32-strcat.c26
-rw-r--r--lib/unistr/u32-strchr.c36
-rw-r--r--lib/unistr/u32-strcmp.c36
-rw-r--r--lib/unistr/u32-strcoll.c33
-rw-r--r--lib/unistr/u32-strcpy.c25
-rw-r--r--lib/unistr/u32-strcspn.c51
-rw-r--r--lib/unistr/u32-strdup.c26
-rw-r--r--lib/unistr/u32-strlen.c25
-rw-r--r--lib/unistr/u32-strmblen.c36
-rw-r--r--lib/unistr/u32-strmbtouc.c39
-rw-r--r--lib/unistr/u32-strncat.c26
-rw-r--r--lib/unistr/u32-strncmp.c40
-rw-r--r--lib/unistr/u32-strncpy.c25
-rw-r--r--lib/unistr/u32-strnlen.c25
-rw-r--r--lib/unistr/u32-strpbrk.c50
-rw-r--r--lib/unistr/u32-strrchr.c38
-rw-r--r--lib/unistr/u32-strspn.c50
-rw-r--r--lib/unistr/u32-strstr.c26
-rw-r--r--lib/unistr/u32-strtok.c27
-rw-r--r--lib/unistr/u32-to-u16.c130
-rw-r--r--lib/unistr/u32-to-u8.c130
-rw-r--r--lib/unistr/u32-uctomb.c47
-rw-r--r--lib/unistr/u8-check.c105
-rw-r--r--lib/unistr/u8-chr.c87
-rw-r--r--lib/unistr/u8-cmp.c30
-rw-r--r--lib/unistr/u8-cmp2.c28
-rw-r--r--lib/unistr/u8-cpy-alloc.c25
-rw-r--r--lib/unistr/u8-cpy.c25
-rw-r--r--lib/unistr/u8-endswith.c27
-rw-r--r--lib/unistr/u8-mblen.c98
-rw-r--r--lib/unistr/u8-mbsnlen.c39
-rw-r--r--lib/unistr/u8-mbtouc-aux.c158
-rw-r--r--lib/unistr/u8-mbtouc-unsafe-aux.c168
-rw-r--r--lib/unistr/u8-mbtouc-unsafe.c179
-rw-r--r--lib/unistr/u8-mbtouc.c168
-rw-r--r--lib/unistr/u8-mbtoucr.c285
-rw-r--r--lib/unistr/u8-move.c25
-rw-r--r--lib/unistr/u8-next.c37
-rw-r--r--lib/unistr/u8-prev.c93
-rw-r--r--lib/unistr/u8-set.c44
-rw-r--r--lib/unistr/u8-startswith.c25
-rw-r--r--lib/unistr/u8-stpcpy.c44
-rw-r--r--lib/unistr/u8-stpncpy.c44
-rw-r--r--lib/unistr/u8-strcat.c29
-rw-r--r--lib/unistr/u8-strchr.c100
-rw-r--r--lib/unistr/u8-strcmp.c30
-rw-r--r--lib/unistr/u8-strcoll.c33
-rw-r--r--lib/unistr/u8-strcpy.c29
-rw-r--r--lib/unistr/u8-strcspn.c28
-rw-r--r--lib/unistr/u8-strdup.c40
-rw-r--r--lib/unistr/u8-strlen.c29
-rw-r--r--lib/unistr/u8-strmblen.c96
-rw-r--r--lib/unistr/u8-strmbtouc.c129
-rw-r--r--lib/unistr/u8-strncat.c29
-rw-r--r--lib/unistr/u8-strncmp.c30
-rw-r--r--lib/unistr/u8-strncpy.c29
-rw-r--r--lib/unistr/u8-strnlen.c44
-rw-r--r--lib/unistr/u8-strpbrk.c27
-rw-r--r--lib/unistr/u8-strrchr.c101
-rw-r--r--lib/unistr/u8-strspn.c29
-rw-r--r--lib/unistr/u8-strstr.c28
-rw-r--r--lib/unistr/u8-strtok.c27
-rw-r--r--lib/unistr/u8-to-u16.c136
-rw-r--r--lib/unistr/u8-to-u32.c125
-rw-r--r--lib/unistr/u8-uctomb-aux.c69
-rw-r--r--lib/unistr/u8-uctomb.c88
-rw-r--r--lib/unistring-notinline.h23
-rw-r--r--lib/unistring/inline.h68
-rw-r--r--lib/unistring/version.in.h39
-rw-r--r--lib/unistring/woe32dll.in.h30
-rw-r--r--lib/unitypes.h26
-rw-r--r--lib/uniwbrk.h83
-rw-r--r--lib/uniwbrk/u-wordbreaks.h127
-rw-r--r--lib/uniwbrk/u16-wordbreaks.c31
-rw-r--r--lib/uniwbrk/u32-wordbreaks.c31
-rw-r--r--lib/uniwbrk/u8-wordbreaks.c124
-rw-r--r--lib/uniwbrk/ulc-wordbreaks.c201
-rw-r--r--lib/uniwbrk/wbrkprop.h3755
-rw-r--r--lib/uniwbrk/wbrktable.c52
-rw-r--r--lib/uniwbrk/wbrktable.h18
-rw-r--r--lib/uniwbrk/wordbreak-property.c44
-rw-r--r--lib/uniwidth.h64
-rw-r--r--lib/uniwidth/cjk.h37
-rw-r--r--lib/uniwidth/u16-strwidth.c29
-rw-r--r--lib/uniwidth/u16-width.c47
-rw-r--r--lib/uniwidth/u32-strwidth.c29
-rw-r--r--lib/uniwidth/u32-width.c43
-rw-r--r--lib/uniwidth/u8-strwidth.c29
-rw-r--r--lib/uniwidth/u8-width.c47
-rw-r--r--lib/uniwidth/width.c359
-rw-r--r--lib/vasnprintf.c5487
-rw-r--r--lib/verify.h140
-rw-r--r--lib/version.c23
-rw-r--r--lib/wchar.in.h310
-rw-r--r--lib/wctype.in.h184
-rw-r--r--lib/wcwidth.c51
-rw-r--r--lib/xsize.h108
822 files changed, 193820 insertions, 0 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 0000000..24644e3
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,297 @@
+## Makefile for the lib 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.
+
+AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies
+EXTRA_DIST =
+BUILT_SOURCES =
+MOSTLYCLEANFILES = core *.stackdump
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+SUFFIXES =
+
+lib_LTLIBRARIES = libunistring.la
+
+nobase_include_HEADERS = \
+ unitypes.h \
+ unistr.h \
+ uniconv.h \
+ unistdio.h \
+ uniname.h \
+ unictype.h \
+ uniwidth.h \
+ uniwbrk.h \
+ unilbrk.h \
+ uninorm.h \
+ unicase.h \
+ unistring/inline.h
+
+noinst_HEADERS = \
+ unistring-notinline.h
+
+AM_CPPFLAGS = \
+ -I. -I$(srcdir) \
+ -I$(top_builddir) -I$(top_srcdir) \
+ -DIN_LIBUNISTRING
+
+# Rules generated and collected by gnulib-tool.
+include Makefile.gnulib
+
+# Additional source files.
+libunistring_la_SOURCES += version.c
+
+# The <stdbool.h> and <stdint.h> replacements that can be installed.
+nobase_nodist_include_HEADERS = \
+ unistring/stdbool.h \
+ unistring/stdint.h
+
+# Produce an unistring/stdbool.h that is not compiler dependent.
+# GCC >= 2.95 has <stdbool.h>.
+# AIX >= 5.3 has <stdbool.h>.
+# Solaris 10 and some HP-UX 11 versions have <stdbool.h> but it does not
+# necessarily work.
+unistring/stdbool.h : $(STDBOOL_H)
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#if !defined _GL_STDBOOL_H'; \
+ if test -f /usr/include/stdbool.h; then \
+ echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || defined _AIX'; \
+ else \
+ echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))'; \
+ fi; \
+ echo '#include <stdbool.h>'; \
+ echo '#else'; \
+ cat $(srcdir)/stdbool.mini.h; \
+ echo '#endif'; \
+ echo '#endif'; \
+ } > $@-t
+ mv $@-t $@
+BUILT_SOURCES += unistring/stdbool.h
+MOSTLYCLEANFILES += unistring/stdbool.h-t
+CLEANFILES += unistring/stdbool.h
+
+# Produce an unistring/stdint.h that is not compiler dependent.
+# Glibc >= 2 has <stdint.h>.
+# On most other platforms that have it, it is buggy in one way or the other.
+unistring/stdint.h : $(STDINT_H) stdint.mini.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#include <stddef.h>'; \
+ echo '#if __GLIBC__ >= 2'; \
+ echo '#include <stdint.h>'; \
+ echo '#else'; \
+ if test -f /usr/include/stdint.h; then \
+ HAVE_STDINT_H='1'; \
+ else \
+ HAVE_STDINT_H='defined __MINGW32__ || defined __HAIKU__'; \
+ fi; \
+ if test -f /usr/include/inttypes.h; then \
+ HAVE_INTTYPES_H='1'; \
+ else \
+ HAVE_INTTYPES_H='defined __MINGW32__ || defined __HAIKU__'; \
+ fi; \
+ if test -f /usr/include/sys/inttypes.h; then \
+ HAVE_SYS_INTTYPES_H='1'; \
+ else \
+ HAVE_SYS_INTTYPES_H='0'; \
+ fi; \
+ sed -e 's/@''HAVE_STDINT_H''@/'"$$HAVE_STDINT_H"'/g' \
+ -e 's|@''INCLUDE_NEXT''@|include|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@||g' \
+ -e 's|@''NEXT_STDINT_H''@|<stdint.h>|g' \
+ -e 's/@''HAVE_SYS_TYPES_H''@/1/g' \
+ -e 's/@''HAVE_INTTYPES_H''@/'"$$HAVE_INTTYPES_H"'/g' \
+ -e 's/@''HAVE_SYS_INTTYPES_H''@/'"$$HAVE_SYS_INTTYPES_H"'/g' \
+ -e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
+ < $(srcdir)/stdint.mini.h; \
+ echo '#endif'; \
+ } > $@-t
+ mv $@-t $@
+BUILT_SOURCES += unistring/stdint.h
+MOSTLYCLEANFILES += unistring/stdint.h-t
+CLEANFILES += unistring/stdint.h
+EXTRA_DIST += stdint.mini.h
+
+# localcharset.h is not public, but its contents is documented.
+nobase_nodist_include_HEADERS += unistring/localcharset.h
+unistring/localcharset.h : localcharset.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ cp $(srcdir)/localcharset.h $@-t
+ mv $@-t $@
+BUILT_SOURCES += unistring/localcharset.h
+MOSTLYCLEANFILES += unistring/localcharset.h-t
+CLEANFILES += unistring/localcharset.h
+
+# iconveh.h is not public, but its contents is documented.
+nobase_nodist_include_HEADERS += unistring/iconveh.h
+unistring/iconveh.h : iconveh.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ cp $(srcdir)/iconveh.h $@-t
+ mv $@-t $@
+BUILT_SOURCES += unistring/iconveh.h
+MOSTLYCLEANFILES += unistring/iconveh.h-t
+CLEANFILES += unistring/iconveh.h
+
+# unistring/version.h is public.
+nobase_nodist_include_HEADERS += unistring/version.h
+
+# unistring/woe32dll.h is not public, but is included by other header files.
+nobase_nodist_include_HEADERS += unistring/woe32dll.h
+
+# Directories that contain some CLEANFILES.
+CLEANDIRS =
+CLEANDIRS_NOT_IN_SRCDIR = unistring
+clean-local: clean-generic
+ @for dir in '' $(CLEANDIRS); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ if test '$(srcdir)' != '.'; then \
+ for dir in '' $(CLEANDIRS_NOT_IN_SRCDIR); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ fi; \
+ :
+
+# List of header files that get installed and that declare 'extern' symbols.
+HEADERS_WITH_EXTERNS = \
+ unitypes.h \
+ unistr.h \
+ uniconv.h \
+ unistdio.h \
+ uniname.h \
+ unictype.h \
+ uniwidth.h \
+ uniwbrk.h \
+ unilbrk.h \
+ uninorm.h \
+ unicase.h \
+ localcharset.h \
+ iconveh.h \
+ unistring/version.in.h
+
+# List of exported symbols.
+# We extract it from the header files that get installed, removing symbols
+# start with "_UC".
+# This file has the same format as the one expected by the libtool option
+# '-export-symbols', but we don't use this option, because it would prevent us
+# from building some of the gnulib unit tests.
+libunistring.sym : $(HEADERS_WITH_EXTERNS)
+ for f in $(HEADERS_WITH_EXTERNS); do cat $(srcdir)/$$f; done \
+ | $(srcdir)/declared.sh | LC_ALL=C sort | LC_ALL=C uniq \
+ | grep -v '^_UC' \
+ > $@-t
+ mv $@-t $@
+# We distribute it because declared.sh relies on GNU sed.
+MOSTLYCLEANFILES += libunistring.sym-t
+MAINTAINERCLEANFILES += libunistring.sym
+EXTRA_DIST += libunistring.sym declared.sh
+
+# Tell the mingw or Cygwin linker which symbols to export.
+if WOE32DLL
+libunistring_la_SOURCES += ../woe32dll/unistring-exports.c
+libunistring_la_LDFLAGS += -Wl,--export-all-symbols
+endif
+
+# Hide undesired symbols that are defined by libunistring_la_SOURCES or
+# libunistring_la_LIBADD from the global namespace, by prefixing them with
+# "libunistring_".
+all check install: config.h
+config.h: $(BUILT_SOURCES) libunistring.sym
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ : "Avoid double inclusion, to avoid a warning about redefinitions."; \
+ echo '#ifndef UNISTRING_CONFIG_H'; \
+ echo '#define UNISTRING_CONFIG_H'; \
+ echo; \
+ echo '#include "../config.h"'; \
+ echo; \
+ echo '#endif /* UNISTRING_CONFIG_H */'; \
+ } > config.h && \
+ if test -n "$(NAMESPACING)" && test -n "$(HAVE_GLOBAL_SYMBOL_PIPE)"; then \
+ { \
+ { \
+ for f in $(libunistring_la_SOURCES) $(libunistring_la_LIBADD); do \
+ case $$f in \
+ *.res.lo ) ;; \
+ *.c | *.$(OBJEXT) | *.lo ) \
+ sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \
+ test -f $$sf || sf=$(srcdir)/$$sf; \
+ of=`echo "$$f" | sed -e 's,^.*/,,' -e 's,\\.[^.]*$$,,'`.$(OBJEXT); \
+ echo "$(COMPILE) -c $$sf" 1>&6; \
+ $(COMPILE) -c $$sf || { rm -f config.h; exit 1; }; \
+ sh ./exported.sh $$of 1>&5; \
+ rm -f $$of `echo "$$of" | sed -e 's,\\.$(OBJEXT)$$,.lo,'`; \
+ ;; \
+ esac; \
+ done; \
+ } 5>&1 \
+ | sed -e 's,.* ,,' | LC_ALL=C sort | LC_ALL=C uniq \
+ | { \
+ if test -f libunistring.sym; then \
+ symfile='libunistring.sym'; \
+ else \
+ symfile='$(srcdir)/libunistring.sym'; \
+ fi; \
+ LC_ALL=C join -v 1 - $$symfile; \
+ } \
+ | sed -e 's,^\(.*\)$$,#define \1 libunistring_\1,' > config.h-t; \
+ } 6>&1 && \
+ if test -f config.h; then \
+ cat config.h-t >> config.h; \
+ rm -f config.h-t; \
+ else \
+ rm -f config.h-t; \
+ exit 1; \
+ fi \
+ fi
+MOSTLYCLEANFILES += config.h config.h-t
+
+# Version information according to Woe32 conventions.
+EXTRA_DIST += libunistring.rc
+if WOE32
+WOE32_LIBADD = libunistring.res.lo
+libunistring.res.lo : $(srcdir)/libunistring.rc
+ $(LIBTOOL) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) `$(SHELL) $(top_srcdir)/build-aux/windres-options --escape $(VERSION)` -i $(srcdir)/libunistring.rc -o libunistring.res.lo --output-format=coff
+MOSTLYCLEANFILES += libunistring.res.lo
+else
+WOE32_LIBADD =
+endif
+libunistring_la_LIBADD += $(WOE32_LIBADD)
+libunistring_la_DEPENDENCIES += $(WOE32_LIBADD)
+
+# Parametrization of the 'relocatable-lib-lgpl' module.
+AM_CPPFLAGS += -DDEPENDS_ON_LIBICONV=1
+
+# Libtool's library version information for libunistring.
+# See the libtool documentation, section "Library interface versions".
+LTV_CURRENT=1
+LTV_REVISION=0
+LTV_AGE=1
+
+# How to build libunistring.la.
+libunistring_la_LDFLAGS += \
+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
+ -rpath $(libdir) \
+ @INTL_MACOSX_LIBS@ -no-undefined
diff --git a/lib/Makefile.gnulib b/lib/Makefile.gnulib
new file mode 100644
index 0000000..b7a5d31
--- /dev/null
+++ b/lib/Makefile.gnulib
@@ -0,0 +1,4655 @@
+## 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.
+
+
+MOSTLYCLEANFILES += core *.stackdump
+
+
+libunistring_la_SOURCES =
+libunistring_la_LIBADD = $(gl_LTLIBOBJS)
+libunistring_la_DEPENDENCIES = $(gl_LTLIBOBJS)
+EXTRA_libunistring_la_SOURCES =
+libunistring_la_LDFLAGS = $(AM_LDFLAGS)
+
+## begin gnulib module alloca-opt
+
+BUILT_SOURCES += $(ALLOCA_H)
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+alloca.h: alloca.in.h
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/alloca.in.h; \
+ } > $@-t
+ mv -f $@-t $@
+MOSTLYCLEANFILES += alloca.h alloca.h-t
+
+EXTRA_DIST += alloca.in.h
+
+## end gnulib module alloca-opt
+
+## begin gnulib module array-mergesort
+
+
+EXTRA_DIST += array-mergesort.h
+
+## end gnulib module array-mergesort
+
+## begin gnulib module c-ctype
+
+libunistring_la_SOURCES += c-ctype.h c-ctype.c
+
+## end gnulib module c-ctype
+
+## begin gnulib module c-strcase
+
+libunistring_la_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
+
+## end gnulib module c-strcase
+
+## begin gnulib module c-strcaseeq
+
+
+EXTRA_DIST += c-strcaseeq.h
+
+## end gnulib module c-strcaseeq
+
+## begin gnulib module configmake
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+ rm -f $@-t
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#define PREFIX "$(prefix)"'; \
+ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+ echo '#define BINDIR "$(bindir)"'; \
+ echo '#define SBINDIR "$(sbindir)"'; \
+ echo '#define LIBEXECDIR "$(libexecdir)"'; \
+ echo '#define DATAROOTDIR "$(datarootdir)"'; \
+ echo '#define DATADIR "$(datadir)"'; \
+ echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+ echo '#define INCLUDEDIR "$(includedir)"'; \
+ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+ echo '#define DOCDIR "$(docdir)"'; \
+ echo '#define INFODIR "$(infodir)"'; \
+ echo '#define HTMLDIR "$(htmldir)"'; \
+ echo '#define DVIDIR "$(dvidir)"'; \
+ echo '#define PDFDIR "$(pdfdir)"'; \
+ echo '#define PSDIR "$(psdir)"'; \
+ echo '#define LIBDIR "$(libdir)"'; \
+ echo '#define LISPDIR "$(lispdir)"'; \
+ echo '#define LOCALEDIR "$(localedir)"'; \
+ echo '#define MANDIR "$(mandir)"'; \
+ echo '#define MANEXT "$(manext)"'; \
+ echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+ echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+ } | sed '/""/d' > $@-t
+ if test -f $@ && cmp $@-t $@ > /dev/null; then \
+ rm -f $@-t; \
+ else \
+ rm -f $@; mv $@-t $@; \
+ fi
+
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end gnulib module configmake
+
+## begin gnulib module errno
+
+BUILT_SOURCES += $(ERRNO_H)
+
+# We need the following in order to create <errno.h> when the system
+# doesn't have one that is POSIX compliant.
+errno.h: errno.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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+ < $(srcdir)/errno.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += errno.h errno.h-t
+
+EXTRA_DIST += errno.in.h
+
+## end gnulib module errno
+
+## begin gnulib module float
+
+BUILT_SOURCES += $(FLOAT_H)
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+float.h: float.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_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+ < $(srcdir)/float.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += float.h float.h-t
+
+EXTRA_DIST += float.in.h
+
+## end gnulib module float
+
+## begin gnulib module fpucw
+
+
+EXTRA_DIST += fpucw.h
+
+## end gnulib module fpucw
+
+## begin gnulib module frexpl-nolibm
+
+
+EXTRA_DIST += frexp.c frexpl.c
+
+EXTRA_libunistring_la_SOURCES += frexp.c frexpl.c
+
+## end gnulib module frexpl-nolibm
+
+## begin gnulib module fseterr
+
+libunistring_la_SOURCES += fseterr.c
+
+EXTRA_DIST += fseterr.h stdio-impl.h
+
+## end gnulib module fseterr
+
+## begin gnulib module getpagesize
+
+
+EXTRA_DIST += getpagesize.c
+
+EXTRA_libunistring_la_SOURCES += getpagesize.c
+
+## end gnulib module getpagesize
+
+## begin gnulib module gperf
+
+GPERF = gperf
+
+## end gnulib module gperf
+
+## begin gnulib module havelib
+
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end gnulib module havelib
+
+## begin gnulib module iconv_open
+
+BUILT_SOURCES += $(ICONV_H)
+
+# We need the following in order to create <iconv.h> when the system
+# doesn't have one that works with the given compiler.
+iconv.h: iconv.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_ICONV_H''@|$(NEXT_ICONV_H)|g' \
+ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
+ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
+ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
+ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \
+ < $(srcdir)/iconv.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += iconv.h iconv.h-t
+
+iconv_open-aix.h: iconv_open-aix.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
+ mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
+iconv_open-hpux.h: iconv_open-hpux.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t
+ mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
+iconv_open-irix.h: iconv_open-irix.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t
+ mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
+iconv_open-osf.h: iconv_open-osf.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t
+ mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
+BUILT_SOURCES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h
+MOSTLYCLEANFILES += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t
+MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h
+EXTRA_DIST += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h
+
+EXTRA_DIST += iconv.in.h iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open.c
+
+EXTRA_libunistring_la_SOURCES += iconv_open.c
+
+## end gnulib module iconv_open
+
+## begin gnulib module isnand-nolibm
+
+
+EXTRA_DIST += float+.h isnan.c isnand-nolibm.h isnand.c
+
+EXTRA_libunistring_la_SOURCES += isnan.c isnand.c
+
+## end gnulib module isnand-nolibm
+
+## begin gnulib module isnanf-nolibm
+
+
+EXTRA_DIST += float+.h isnan.c isnanf-nolibm.h isnanf.c
+
+EXTRA_libunistring_la_SOURCES += isnan.c isnanf.c
+
+## end gnulib module isnanf-nolibm
+
+## begin gnulib module isnanl-nolibm
+
+
+EXTRA_DIST += float+.h isnan.c isnanl-nolibm.h isnanl.c
+
+EXTRA_libunistring_la_SOURCES += isnan.c isnanl.c
+
+## end gnulib module isnanl-nolibm
+
+## begin gnulib module link-warning
+
+LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/link-warning.h
+
+## end gnulib module link-warning
+
+## begin gnulib module localcharset
+
+libunistring_la_SOURCES += localcharset.h localcharset.c
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: install-exec-localcharset
+install-exec-localcharset: all-local
+ if test $(GLIBC21) = no; then \
+ case '$(host_os)' in \
+ darwin[56]*) \
+ need_charset_alias=true ;; \
+ darwin* | cygwin* | mingw* | pw32* | cegcc*) \
+ need_charset_alias=false ;; \
+ *) \
+ need_charset_alias=true ;; \
+ esac ; \
+ else \
+ need_charset_alias=false ; \
+ fi ; \
+ if $$need_charset_alias; then \
+ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
+ fi ; \
+ if test -f $(charset_alias); then \
+ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ rm -f $(charset_tmp) ; \
+ else \
+ if $$need_charset_alias; then \
+ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ rm -f $(charset_tmp) ; \
+ fi ; \
+ fi
+
+uninstall-local: uninstall-localcharset
+uninstall-localcharset: all-local
+ if test -f $(charset_alias); then \
+ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+ if grep '^# Packages using this file: $$' $(charset_tmp) \
+ > /dev/null; then \
+ rm -f $(charset_alias); \
+ else \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+ fi; \
+ rm -f $(charset_tmp); \
+ fi
+
+charset.alias: config.charset
+ rm -f t-$@ $@
+ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+ mv t-$@ $@
+
+SUFFIXES += .sed .sin
+.sin.sed:
+ rm -f t-$@ $@
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+ mv t-$@ $@
+
+CLEANFILES += charset.alias ref-add.sed ref-del.sed
+
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+
+## end gnulib module localcharset
+
+## begin gnulib module localename
+
+libunistring_la_SOURCES += localename.c
+
+EXTRA_DIST += localename.h
+
+## end gnulib module localename
+
+## begin gnulib module malloc-posix
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libunistring_la_SOURCES += malloc.c
+
+## end gnulib module malloc-posix
+
+## begin gnulib module malloca
+
+libunistring_la_SOURCES += malloca.c
+
+EXTRA_DIST += malloca.h malloca.valgrind
+
+## end gnulib module malloca
+
+## begin gnulib module math
+
+BUILT_SOURCES += math.h
+
+# We need the following in order to create <math.h> when the system
+# doesn't have one that works with the given compiler.
+math.h: math.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
+ -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
+ -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
+ -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
+ -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
+ -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
+ -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
+ -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
+ -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \
+ -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \
+ -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \
+ -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \
+ -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \
+ -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
+ -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \
+ -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
+ -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
+ -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
+ -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
+ -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
+ -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
+ -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+ -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
+ -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
+ -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
+ -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
+ -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
+ -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+ -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
+ -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+ -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
+ -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
+ -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+ -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \
+ -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \
+ -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \
+ -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
+ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
+ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
+ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+ -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
+ -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+ -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
+ -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
+ -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
+ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
+ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
+ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
+ -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+ -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \
+ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
+ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
+ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
+ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
+ -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/math.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += math.h math.h-t
+
+EXTRA_DIST += math.in.h
+
+## end gnulib module math
+
+## begin gnulib module mbchar
+
+libunistring_la_SOURCES += mbchar.c
+
+EXTRA_DIST += mbchar.h
+
+## end gnulib module mbchar
+
+## begin gnulib module mbiter
+
+libunistring_la_SOURCES += mbiter.h
+
+## end gnulib module mbiter
+
+## begin gnulib module mbrtowc
+
+
+EXTRA_DIST += mbrtowc.c
+
+EXTRA_libunistring_la_SOURCES += mbrtowc.c
+
+## end gnulib module mbrtowc
+
+## begin gnulib module mbsinit
+
+
+EXTRA_DIST += mbsinit.c
+
+EXTRA_libunistring_la_SOURCES += mbsinit.c
+
+## end gnulib module mbsinit
+
+## begin gnulib module mbsnlen
+
+libunistring_la_SOURCES += mbsnlen.c
+
+## end gnulib module mbsnlen
+
+## begin gnulib module memchr
+
+
+EXTRA_DIST += memchr.c memchr.valgrind
+
+EXTRA_libunistring_la_SOURCES += memchr.c
+
+## end gnulib module memchr
+
+## begin gnulib module memcmp2
+
+libunistring_la_SOURCES += memcmp2.c
+
+EXTRA_DIST += memcmp2.h
+
+## end gnulib module memcmp2
+
+## begin gnulib module memxfrm
+
+libunistring_la_SOURCES += memxfrm.c
+
+EXTRA_DIST += memxfrm.h
+
+## end gnulib module memxfrm
+
+## begin gnulib module minmax
+
+libunistring_la_SOURCES += minmax.h
+
+## end gnulib module minmax
+
+## begin gnulib module printf-frexp
+
+libunistring_la_SOURCES += printf-frexp.c
+
+EXTRA_DIST += printf-frexp.h
+
+## end gnulib module printf-frexp
+
+## begin gnulib module printf-frexpl
+
+libunistring_la_SOURCES += printf-frexpl.c
+
+EXTRA_DIST += printf-frexp.c printf-frexpl.h
+
+EXTRA_libunistring_la_SOURCES += printf-frexp.c
+
+## end gnulib module printf-frexpl
+
+## begin gnulib module relocatable-lib-lgpl
+
+DEFS += -DNO_XMALLOC
+
+EXTRA_DIST += relocatable.c relocatable.h
+
+EXTRA_libunistring_la_SOURCES += relocatable.c
+
+## end gnulib module relocatable-lib-lgpl
+
+## begin gnulib module signbit
+
+
+EXTRA_DIST += float+.h signbitd.c signbitf.c signbitl.c
+
+EXTRA_libunistring_la_SOURCES += signbitd.c signbitf.c signbitl.c
+
+## end gnulib module signbit
+
+## begin gnulib module size_max
+
+libunistring_la_SOURCES += size_max.h
+
+## end gnulib module size_max
+
+## begin gnulib module stdbool
+
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+stdbool.h: stdbool.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+EXTRA_DIST += stdbool.in.h
+
+## end gnulib module stdbool
+
+## begin gnulib module stdint
+
+BUILT_SOURCES += $(STDINT_H)
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+ < $(srcdir)/stdint.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint.in.h
+
+## end gnulib module stdint
+
+## begin gnulib module stdlib
+
+BUILT_SOURCES += stdlib.h
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib.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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
+ -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
+ -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
+ -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+ -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+ -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+ -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+ -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
+ -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
+ -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+ -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
+ -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
+ -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
+ -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
+ -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+ -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+ -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
+ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
+ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
+ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
+ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+ -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
+ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
+ -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/stdlib.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib.in.h
+
+## end gnulib module stdlib
+
+## begin gnulib module streq
+
+
+EXTRA_DIST += streq.h
+
+## end gnulib module streq
+
+## begin gnulib module striconveh
+
+libunistring_la_SOURCES += striconveh.h striconveh.c
+if GL_COND_LIBTOOL
+libunistring_la_LDFLAGS += $(LTLIBICONV)
+endif
+
+EXTRA_DIST += iconveh.h
+
+## end gnulib module striconveh
+
+## begin gnulib module striconveha
+
+libunistring_la_SOURCES += striconveha.h striconveha.c
+
+## end gnulib module striconveha
+
+## begin gnulib module string
+
+BUILT_SOURCES += string.h
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.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_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+ -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+ -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+ -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+ -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+ -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+ -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+ -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+ -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+ -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+ -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+ -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+ -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+ -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+ -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
+ -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+ -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+ -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+ -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
+ -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+ -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+ -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+ -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+ -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+ -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+ -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+ -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+ -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+ -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+ -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+ -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+ -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+ -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
+ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+ -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+ -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
+ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
+ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
+ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/string.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += string.h string.h-t
+
+EXTRA_DIST += string.in.h
+
+## end gnulib module string
+
+## begin gnulib module unicase/base
+
+
+EXTRA_DIST += unicase.h
+
+## end gnulib module unicase/base
+
+## begin gnulib module unicase/cased
+
+libunistring_la_SOURCES += unicase/cased.c
+
+EXTRA_DIST += unicase/cased.h unicase/caseprop.h unictype/bitmap.h
+
+## end gnulib module unicase/cased
+
+## begin gnulib module unicase/empty-prefix-context
+
+libunistring_la_SOURCES += unicase/empty-prefix-context.c
+
+## end gnulib module unicase/empty-prefix-context
+
+## begin gnulib module unicase/empty-suffix-context
+
+libunistring_la_SOURCES += unicase/empty-suffix-context.c
+
+## end gnulib module unicase/empty-suffix-context
+
+## begin gnulib module unicase/ignorable
+
+libunistring_la_SOURCES += unicase/ignorable.c
+
+EXTRA_DIST += unicase/caseprop.h unicase/ignorable.h unictype/bitmap.h
+
+## end gnulib module unicase/ignorable
+
+## begin gnulib module unicase/locale-language
+
+libunistring_la_SOURCES += unicase/locale-language.c
+
+unicase/locale-languages.h: $(srcdir)/unicase/locale-languages.gperf
+ $(GPERF) -m 10 $(srcdir)/unicase/locale-languages.gperf > $(srcdir)/unicase/locale-languages.h-t
+ mv $(srcdir)/unicase/locale-languages.h-t $(srcdir)/unicase/locale-languages.h
+BUILT_SOURCES += unicase/locale-languages.h
+MOSTLYCLEANFILES += unicase/locale-languages.h-t
+MAINTAINERCLEANFILES += unicase/locale-languages.h
+EXTRA_DIST += unicase/locale-languages.h
+
+EXTRA_DIST += unicase/locale-languages.gperf
+
+## end gnulib module unicase/locale-language
+
+## begin gnulib module unicase/special-casing
+
+libunistring_la_SOURCES += unicase/special-casing.c
+
+unicase/special-casing-table.h: $(srcdir)/unicase/special-casing-table.gperf
+ $(GPERF) -m 10 $(srcdir)/unicase/special-casing-table.gperf > $(srcdir)/unicase/special-casing-table.h-t
+ mv $(srcdir)/unicase/special-casing-table.h-t $(srcdir)/unicase/special-casing-table.h
+BUILT_SOURCES += unicase/special-casing-table.h
+MOSTLYCLEANFILES += unicase/special-casing-table.h-t
+MAINTAINERCLEANFILES += unicase/special-casing-table.h
+EXTRA_DIST += unicase/special-casing-table.h
+
+EXTRA_DIST += unicase/special-casing-table.gperf unicase/special-casing.h
+
+## end gnulib module unicase/special-casing
+
+## begin gnulib module unicase/tocasefold
+
+libunistring_la_SOURCES += unicase/tocasefold.c
+
+EXTRA_DIST += unicase/casefold.h unicase/simple-mapping.h unicase/tocasefold.h
+
+## end gnulib module unicase/tocasefold
+
+## begin gnulib module unicase/tolower
+
+libunistring_la_SOURCES += unicase/tolower.c
+
+EXTRA_DIST += unicase/simple-mapping.h unicase/tolower.h
+
+## end gnulib module unicase/tolower
+
+## begin gnulib module unicase/totitle
+
+libunistring_la_SOURCES += unicase/totitle.c
+
+EXTRA_DIST += unicase/simple-mapping.h unicase/totitle.h
+
+## end gnulib module unicase/totitle
+
+## begin gnulib module unicase/toupper
+
+libunistring_la_SOURCES += unicase/toupper.c
+
+EXTRA_DIST += unicase/simple-mapping.h unicase/toupper.h
+
+## end gnulib module unicase/toupper
+
+## begin gnulib module unicase/u16-casecmp
+
+libunistring_la_SOURCES += unicase/u16-casecmp.c
+
+EXTRA_DIST += unicase/u-casecmp.h
+
+## end gnulib module unicase/u16-casecmp
+
+## begin gnulib module unicase/u16-casecoll
+
+libunistring_la_SOURCES += unicase/u16-casecoll.c
+
+EXTRA_DIST += unicase/u-casecoll.h
+
+## end gnulib module unicase/u16-casecoll
+
+## begin gnulib module unicase/u16-casefold
+
+libunistring_la_SOURCES += unicase/u16-casefold.c
+
+EXTRA_DIST += unicase/u-casefold.h
+
+## end gnulib module unicase/u16-casefold
+
+## begin gnulib module unicase/u16-casemap
+
+libunistring_la_SOURCES += unicase/u16-casemap.c
+
+EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
+
+## end gnulib module unicase/u16-casemap
+
+## begin gnulib module unicase/u16-casexfrm
+
+libunistring_la_SOURCES += unicase/u16-casexfrm.c
+
+EXTRA_DIST += unicase/u-casexfrm.h
+
+## end gnulib module unicase/u16-casexfrm
+
+## begin gnulib module unicase/u16-ct-casefold
+
+libunistring_la_SOURCES += unicase/u16-ct-casefold.c
+
+EXTRA_DIST += unicase/u-ct-casefold.h
+
+## end gnulib module unicase/u16-ct-casefold
+
+## begin gnulib module unicase/u16-ct-tolower
+
+libunistring_la_SOURCES += unicase/u16-ct-tolower.c
+
+## end gnulib module unicase/u16-ct-tolower
+
+## begin gnulib module unicase/u16-ct-totitle
+
+libunistring_la_SOURCES += unicase/u16-ct-totitle.c
+
+EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
+
+## end gnulib module unicase/u16-ct-totitle
+
+## begin gnulib module unicase/u16-ct-toupper
+
+libunistring_la_SOURCES += unicase/u16-ct-toupper.c
+
+## end gnulib module unicase/u16-ct-toupper
+
+## begin gnulib module unicase/u16-is-cased
+
+libunistring_la_SOURCES += unicase/u16-is-cased.c
+
+EXTRA_DIST += unicase/u-is-cased.h
+
+## end gnulib module unicase/u16-is-cased
+
+## begin gnulib module unicase/u16-is-casefolded
+
+libunistring_la_SOURCES += unicase/u16-is-casefolded.c
+
+## end gnulib module unicase/u16-is-casefolded
+
+## begin gnulib module unicase/u16-is-invariant
+
+libunistring_la_SOURCES += unicase/u16-is-invariant.c
+
+EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
+
+## end gnulib module unicase/u16-is-invariant
+
+## begin gnulib module unicase/u16-is-lowercase
+
+libunistring_la_SOURCES += unicase/u16-is-lowercase.c
+
+## end gnulib module unicase/u16-is-lowercase
+
+## begin gnulib module unicase/u16-is-titlecase
+
+libunistring_la_SOURCES += unicase/u16-is-titlecase.c
+
+## end gnulib module unicase/u16-is-titlecase
+
+## begin gnulib module unicase/u16-is-uppercase
+
+libunistring_la_SOURCES += unicase/u16-is-uppercase.c
+
+## end gnulib module unicase/u16-is-uppercase
+
+## begin gnulib module unicase/u16-tolower
+
+libunistring_la_SOURCES += unicase/u16-tolower.c
+
+## end gnulib module unicase/u16-tolower
+
+## begin gnulib module unicase/u16-totitle
+
+libunistring_la_SOURCES += unicase/u16-totitle.c
+
+EXTRA_DIST += unicase/u-totitle.h
+
+## end gnulib module unicase/u16-totitle
+
+## begin gnulib module unicase/u16-toupper
+
+libunistring_la_SOURCES += unicase/u16-toupper.c
+
+## end gnulib module unicase/u16-toupper
+
+## begin gnulib module unicase/u32-casecmp
+
+libunistring_la_SOURCES += unicase/u32-casecmp.c
+
+EXTRA_DIST += unicase/u-casecmp.h
+
+## end gnulib module unicase/u32-casecmp
+
+## begin gnulib module unicase/u32-casecoll
+
+libunistring_la_SOURCES += unicase/u32-casecoll.c
+
+EXTRA_DIST += unicase/u-casecoll.h
+
+## end gnulib module unicase/u32-casecoll
+
+## begin gnulib module unicase/u32-casefold
+
+libunistring_la_SOURCES += unicase/u32-casefold.c
+
+EXTRA_DIST += unicase/u-casefold.h
+
+## end gnulib module unicase/u32-casefold
+
+## begin gnulib module unicase/u32-casemap
+
+libunistring_la_SOURCES += unicase/u32-casemap.c
+
+EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
+
+## end gnulib module unicase/u32-casemap
+
+## begin gnulib module unicase/u32-casexfrm
+
+libunistring_la_SOURCES += unicase/u32-casexfrm.c
+
+EXTRA_DIST += unicase/u-casexfrm.h
+
+## end gnulib module unicase/u32-casexfrm
+
+## begin gnulib module unicase/u32-ct-casefold
+
+libunistring_la_SOURCES += unicase/u32-ct-casefold.c
+
+EXTRA_DIST += unicase/u-ct-casefold.h
+
+## end gnulib module unicase/u32-ct-casefold
+
+## begin gnulib module unicase/u32-ct-tolower
+
+libunistring_la_SOURCES += unicase/u32-ct-tolower.c
+
+## end gnulib module unicase/u32-ct-tolower
+
+## begin gnulib module unicase/u32-ct-totitle
+
+libunistring_la_SOURCES += unicase/u32-ct-totitle.c
+
+EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
+
+## end gnulib module unicase/u32-ct-totitle
+
+## begin gnulib module unicase/u32-ct-toupper
+
+libunistring_la_SOURCES += unicase/u32-ct-toupper.c
+
+## end gnulib module unicase/u32-ct-toupper
+
+## begin gnulib module unicase/u32-is-cased
+
+libunistring_la_SOURCES += unicase/u32-is-cased.c
+
+EXTRA_DIST += unicase/u-is-cased.h
+
+## end gnulib module unicase/u32-is-cased
+
+## begin gnulib module unicase/u32-is-casefolded
+
+libunistring_la_SOURCES += unicase/u32-is-casefolded.c
+
+## end gnulib module unicase/u32-is-casefolded
+
+## begin gnulib module unicase/u32-is-invariant
+
+libunistring_la_SOURCES += unicase/u32-is-invariant.c
+
+EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
+
+## end gnulib module unicase/u32-is-invariant
+
+## begin gnulib module unicase/u32-is-lowercase
+
+libunistring_la_SOURCES += unicase/u32-is-lowercase.c
+
+## end gnulib module unicase/u32-is-lowercase
+
+## begin gnulib module unicase/u32-is-titlecase
+
+libunistring_la_SOURCES += unicase/u32-is-titlecase.c
+
+## end gnulib module unicase/u32-is-titlecase
+
+## begin gnulib module unicase/u32-is-uppercase
+
+libunistring_la_SOURCES += unicase/u32-is-uppercase.c
+
+## end gnulib module unicase/u32-is-uppercase
+
+## begin gnulib module unicase/u32-tolower
+
+libunistring_la_SOURCES += unicase/u32-tolower.c
+
+## end gnulib module unicase/u32-tolower
+
+## begin gnulib module unicase/u32-totitle
+
+libunistring_la_SOURCES += unicase/u32-totitle.c
+
+EXTRA_DIST += unicase/u-totitle.h
+
+## end gnulib module unicase/u32-totitle
+
+## begin gnulib module unicase/u32-toupper
+
+libunistring_la_SOURCES += unicase/u32-toupper.c
+
+## end gnulib module unicase/u32-toupper
+
+## begin gnulib module unicase/u8-casecmp
+
+libunistring_la_SOURCES += unicase/u8-casecmp.c
+
+EXTRA_DIST += unicase/u-casecmp.h
+
+## end gnulib module unicase/u8-casecmp
+
+## begin gnulib module unicase/u8-casecoll
+
+libunistring_la_SOURCES += unicase/u8-casecoll.c
+
+EXTRA_DIST += unicase/u-casecoll.h
+
+## end gnulib module unicase/u8-casecoll
+
+## begin gnulib module unicase/u8-casefold
+
+libunistring_la_SOURCES += unicase/u8-casefold.c
+
+EXTRA_DIST += unicase/u-casefold.h
+
+## end gnulib module unicase/u8-casefold
+
+## begin gnulib module unicase/u8-casemap
+
+libunistring_la_SOURCES += unicase/u8-casemap.c
+
+EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
+
+## end gnulib module unicase/u8-casemap
+
+## begin gnulib module unicase/u8-casexfrm
+
+libunistring_la_SOURCES += unicase/u8-casexfrm.c
+
+EXTRA_DIST += unicase/u-casexfrm.h
+
+## end gnulib module unicase/u8-casexfrm
+
+## begin gnulib module unicase/u8-ct-casefold
+
+libunistring_la_SOURCES += unicase/u8-ct-casefold.c
+
+EXTRA_DIST += unicase/u-ct-casefold.h
+
+## end gnulib module unicase/u8-ct-casefold
+
+## begin gnulib module unicase/u8-ct-tolower
+
+libunistring_la_SOURCES += unicase/u8-ct-tolower.c
+
+## end gnulib module unicase/u8-ct-tolower
+
+## begin gnulib module unicase/u8-ct-totitle
+
+libunistring_la_SOURCES += unicase/u8-ct-totitle.c
+
+EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
+
+## end gnulib module unicase/u8-ct-totitle
+
+## begin gnulib module unicase/u8-ct-toupper
+
+libunistring_la_SOURCES += unicase/u8-ct-toupper.c
+
+## end gnulib module unicase/u8-ct-toupper
+
+## begin gnulib module unicase/u8-is-cased
+
+libunistring_la_SOURCES += unicase/u8-is-cased.c
+
+EXTRA_DIST += unicase/u-is-cased.h
+
+## end gnulib module unicase/u8-is-cased
+
+## begin gnulib module unicase/u8-is-casefolded
+
+libunistring_la_SOURCES += unicase/u8-is-casefolded.c
+
+## end gnulib module unicase/u8-is-casefolded
+
+## begin gnulib module unicase/u8-is-invariant
+
+libunistring_la_SOURCES += unicase/u8-is-invariant.c
+
+EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
+
+## end gnulib module unicase/u8-is-invariant
+
+## begin gnulib module unicase/u8-is-lowercase
+
+libunistring_la_SOURCES += unicase/u8-is-lowercase.c
+
+## end gnulib module unicase/u8-is-lowercase
+
+## begin gnulib module unicase/u8-is-titlecase
+
+libunistring_la_SOURCES += unicase/u8-is-titlecase.c
+
+## end gnulib module unicase/u8-is-titlecase
+
+## begin gnulib module unicase/u8-is-uppercase
+
+libunistring_la_SOURCES += unicase/u8-is-uppercase.c
+
+## end gnulib module unicase/u8-is-uppercase
+
+## begin gnulib module unicase/u8-tolower
+
+libunistring_la_SOURCES += unicase/u8-tolower.c
+
+## end gnulib module unicase/u8-tolower
+
+## begin gnulib module unicase/u8-totitle
+
+libunistring_la_SOURCES += unicase/u8-totitle.c
+
+EXTRA_DIST += unicase/u-totitle.h
+
+## end gnulib module unicase/u8-totitle
+
+## begin gnulib module unicase/u8-toupper
+
+libunistring_la_SOURCES += unicase/u8-toupper.c
+
+## end gnulib module unicase/u8-toupper
+
+## begin gnulib module unicase/ulc-casecmp
+
+libunistring_la_SOURCES += unicase/ulc-casecmp.c
+
+EXTRA_DIST += unicase/u-casecmp.h
+
+## end gnulib module unicase/ulc-casecmp
+
+## begin gnulib module unicase/ulc-casecoll
+
+libunistring_la_SOURCES += unicase/ulc-casecoll.c
+
+EXTRA_DIST += unicase/u-casecoll.h
+
+## end gnulib module unicase/ulc-casecoll
+
+## begin gnulib module unicase/ulc-casexfrm
+
+libunistring_la_SOURCES += unicase/ulc-casexfrm.c
+
+## end gnulib module unicase/ulc-casexfrm
+
+## begin gnulib module uniconv/base
+
+
+EXTRA_DIST += iconveh.h localcharset.h striconveha.h uniconv.h
+
+## end gnulib module uniconv/base
+
+## begin gnulib module uniconv/u16-conv-from-enc
+
+libunistring_la_SOURCES += uniconv/u16-conv-from-enc.c
+
+EXTRA_DIST += uniconv/u-conv-from-enc.h
+
+## end gnulib module uniconv/u16-conv-from-enc
+
+## begin gnulib module uniconv/u16-conv-to-enc
+
+libunistring_la_SOURCES += uniconv/u16-conv-to-enc.c
+
+EXTRA_DIST += uniconv/u-conv-to-enc.h
+
+## end gnulib module uniconv/u16-conv-to-enc
+
+## begin gnulib module uniconv/u16-strconv-from-enc
+
+libunistring_la_SOURCES += uniconv/u16-strconv-from-enc.c
+
+EXTRA_DIST += uniconv/u-strconv-from-enc.h
+
+## end gnulib module uniconv/u16-strconv-from-enc
+
+## begin gnulib module uniconv/u16-strconv-from-locale
+
+libunistring_la_SOURCES += uniconv/u16-strconv-from-locale.c
+
+## end gnulib module uniconv/u16-strconv-from-locale
+
+## begin gnulib module uniconv/u16-strconv-to-enc
+
+libunistring_la_SOURCES += uniconv/u16-strconv-to-enc.c
+
+EXTRA_DIST += uniconv/u-strconv-to-enc.h
+
+## end gnulib module uniconv/u16-strconv-to-enc
+
+## begin gnulib module uniconv/u16-strconv-to-locale
+
+libunistring_la_SOURCES += uniconv/u16-strconv-to-locale.c
+
+## end gnulib module uniconv/u16-strconv-to-locale
+
+## begin gnulib module uniconv/u32-conv-from-enc
+
+libunistring_la_SOURCES += uniconv/u32-conv-from-enc.c
+
+EXTRA_DIST += uniconv/u-conv-from-enc.h
+
+## end gnulib module uniconv/u32-conv-from-enc
+
+## begin gnulib module uniconv/u32-conv-to-enc
+
+libunistring_la_SOURCES += uniconv/u32-conv-to-enc.c
+
+EXTRA_DIST += uniconv/u-conv-to-enc.h
+
+## end gnulib module uniconv/u32-conv-to-enc
+
+## begin gnulib module uniconv/u32-strconv-from-enc
+
+libunistring_la_SOURCES += uniconv/u32-strconv-from-enc.c
+
+EXTRA_DIST += uniconv/u-strconv-from-enc.h
+
+## end gnulib module uniconv/u32-strconv-from-enc
+
+## begin gnulib module uniconv/u32-strconv-from-locale
+
+libunistring_la_SOURCES += uniconv/u32-strconv-from-locale.c
+
+## end gnulib module uniconv/u32-strconv-from-locale
+
+## begin gnulib module uniconv/u32-strconv-to-enc
+
+libunistring_la_SOURCES += uniconv/u32-strconv-to-enc.c
+
+EXTRA_DIST += uniconv/u-strconv-to-enc.h
+
+## end gnulib module uniconv/u32-strconv-to-enc
+
+## begin gnulib module uniconv/u32-strconv-to-locale
+
+libunistring_la_SOURCES += uniconv/u32-strconv-to-locale.c
+
+## end gnulib module uniconv/u32-strconv-to-locale
+
+## begin gnulib module uniconv/u8-conv-from-enc
+
+libunistring_la_SOURCES += uniconv/u8-conv-from-enc.c
+
+## end gnulib module uniconv/u8-conv-from-enc
+
+## begin gnulib module uniconv/u8-conv-to-enc
+
+libunistring_la_SOURCES += uniconv/u8-conv-to-enc.c
+
+## end gnulib module uniconv/u8-conv-to-enc
+
+## begin gnulib module uniconv/u8-strconv-from-enc
+
+libunistring_la_SOURCES += uniconv/u8-strconv-from-enc.c
+
+EXTRA_DIST += uniconv/u-strconv-from-enc.h
+
+## end gnulib module uniconv/u8-strconv-from-enc
+
+## begin gnulib module uniconv/u8-strconv-from-locale
+
+libunistring_la_SOURCES += uniconv/u8-strconv-from-locale.c
+
+## end gnulib module uniconv/u8-strconv-from-locale
+
+## begin gnulib module uniconv/u8-strconv-to-enc
+
+libunistring_la_SOURCES += uniconv/u8-strconv-to-enc.c
+
+## end gnulib module uniconv/u8-strconv-to-enc
+
+## begin gnulib module uniconv/u8-strconv-to-locale
+
+libunistring_la_SOURCES += uniconv/u8-strconv-to-locale.c
+
+## end gnulib module uniconv/u8-strconv-to-locale
+
+## begin gnulib module unictype/base
+
+
+EXTRA_DIST += unictype.h
+
+## end gnulib module unictype/base
+
+## begin gnulib module unictype/bidicategory-byname
+
+libunistring_la_SOURCES += unictype/bidi_byname.c
+
+## end gnulib module unictype/bidicategory-byname
+
+## begin gnulib module unictype/bidicategory-name
+
+libunistring_la_SOURCES += unictype/bidi_name.c
+
+## end gnulib module unictype/bidicategory-name
+
+## begin gnulib module unictype/bidicategory-of
+
+libunistring_la_SOURCES += unictype/bidi_of.c
+
+EXTRA_DIST += unictype/bidi_of.h
+
+## end gnulib module unictype/bidicategory-of
+
+## begin gnulib module unictype/bidicategory-test
+
+libunistring_la_SOURCES += unictype/bidi_test.c
+
+## end gnulib module unictype/bidicategory-test
+
+## begin gnulib module unictype/block-list
+
+libunistring_la_SOURCES += unictype/blocks.c
+
+EXTRA_DIST += unictype/blocks.h
+
+## end gnulib module unictype/block-list
+
+## begin gnulib module unictype/block-test
+
+libunistring_la_SOURCES += unictype/block_test.c
+
+## end gnulib module unictype/block-test
+
+## begin gnulib module unictype/category-C
+
+libunistring_la_SOURCES += unictype/categ_C.c
+
+EXTRA_DIST += unictype/categ_C.h
+
+## end gnulib module unictype/category-C
+
+## begin gnulib module unictype/category-Cc
+
+libunistring_la_SOURCES += unictype/categ_Cc.c
+
+EXTRA_DIST += unictype/categ_Cc.h
+
+## end gnulib module unictype/category-Cc
+
+## begin gnulib module unictype/category-Cf
+
+libunistring_la_SOURCES += unictype/categ_Cf.c
+
+EXTRA_DIST += unictype/categ_Cf.h
+
+## end gnulib module unictype/category-Cf
+
+## begin gnulib module unictype/category-Cn
+
+libunistring_la_SOURCES += unictype/categ_Cn.c
+
+EXTRA_DIST += unictype/categ_Cn.h
+
+## end gnulib module unictype/category-Cn
+
+## begin gnulib module unictype/category-Co
+
+libunistring_la_SOURCES += unictype/categ_Co.c
+
+EXTRA_DIST += unictype/categ_Co.h
+
+## end gnulib module unictype/category-Co
+
+## begin gnulib module unictype/category-Cs
+
+libunistring_la_SOURCES += unictype/categ_Cs.c
+
+EXTRA_DIST += unictype/categ_Cs.h
+
+## end gnulib module unictype/category-Cs
+
+## begin gnulib module unictype/category-L
+
+libunistring_la_SOURCES += unictype/categ_L.c
+
+EXTRA_DIST += unictype/categ_L.h
+
+## end gnulib module unictype/category-L
+
+## begin gnulib module unictype/category-Ll
+
+libunistring_la_SOURCES += unictype/categ_Ll.c
+
+EXTRA_DIST += unictype/categ_Ll.h
+
+## end gnulib module unictype/category-Ll
+
+## begin gnulib module unictype/category-Lm
+
+libunistring_la_SOURCES += unictype/categ_Lm.c
+
+EXTRA_DIST += unictype/categ_Lm.h
+
+## end gnulib module unictype/category-Lm
+
+## begin gnulib module unictype/category-Lo
+
+libunistring_la_SOURCES += unictype/categ_Lo.c
+
+EXTRA_DIST += unictype/categ_Lo.h
+
+## end gnulib module unictype/category-Lo
+
+## begin gnulib module unictype/category-Lt
+
+libunistring_la_SOURCES += unictype/categ_Lt.c
+
+EXTRA_DIST += unictype/categ_Lt.h
+
+## end gnulib module unictype/category-Lt
+
+## begin gnulib module unictype/category-Lu
+
+libunistring_la_SOURCES += unictype/categ_Lu.c
+
+EXTRA_DIST += unictype/categ_Lu.h
+
+## end gnulib module unictype/category-Lu
+
+## begin gnulib module unictype/category-M
+
+libunistring_la_SOURCES += unictype/categ_M.c
+
+EXTRA_DIST += unictype/categ_M.h
+
+## end gnulib module unictype/category-M
+
+## begin gnulib module unictype/category-Mc
+
+libunistring_la_SOURCES += unictype/categ_Mc.c
+
+EXTRA_DIST += unictype/categ_Mc.h
+
+## end gnulib module unictype/category-Mc
+
+## begin gnulib module unictype/category-Me
+
+libunistring_la_SOURCES += unictype/categ_Me.c
+
+EXTRA_DIST += unictype/categ_Me.h
+
+## end gnulib module unictype/category-Me
+
+## begin gnulib module unictype/category-Mn
+
+libunistring_la_SOURCES += unictype/categ_Mn.c
+
+EXTRA_DIST += unictype/categ_Mn.h
+
+## end gnulib module unictype/category-Mn
+
+## begin gnulib module unictype/category-N
+
+libunistring_la_SOURCES += unictype/categ_N.c
+
+EXTRA_DIST += unictype/categ_N.h
+
+## end gnulib module unictype/category-N
+
+## begin gnulib module unictype/category-Nd
+
+libunistring_la_SOURCES += unictype/categ_Nd.c
+
+EXTRA_DIST += unictype/categ_Nd.h
+
+## end gnulib module unictype/category-Nd
+
+## begin gnulib module unictype/category-Nl
+
+libunistring_la_SOURCES += unictype/categ_Nl.c
+
+EXTRA_DIST += unictype/categ_Nl.h
+
+## end gnulib module unictype/category-Nl
+
+## begin gnulib module unictype/category-No
+
+libunistring_la_SOURCES += unictype/categ_No.c
+
+EXTRA_DIST += unictype/categ_No.h
+
+## end gnulib module unictype/category-No
+
+## begin gnulib module unictype/category-P
+
+libunistring_la_SOURCES += unictype/categ_P.c
+
+EXTRA_DIST += unictype/categ_P.h
+
+## end gnulib module unictype/category-P
+
+## begin gnulib module unictype/category-Pc
+
+libunistring_la_SOURCES += unictype/categ_Pc.c
+
+EXTRA_DIST += unictype/categ_Pc.h
+
+## end gnulib module unictype/category-Pc
+
+## begin gnulib module unictype/category-Pd
+
+libunistring_la_SOURCES += unictype/categ_Pd.c
+
+EXTRA_DIST += unictype/categ_Pd.h
+
+## end gnulib module unictype/category-Pd
+
+## begin gnulib module unictype/category-Pe
+
+libunistring_la_SOURCES += unictype/categ_Pe.c
+
+EXTRA_DIST += unictype/categ_Pe.h
+
+## end gnulib module unictype/category-Pe
+
+## begin gnulib module unictype/category-Pf
+
+libunistring_la_SOURCES += unictype/categ_Pf.c
+
+EXTRA_DIST += unictype/categ_Pf.h
+
+## end gnulib module unictype/category-Pf
+
+## begin gnulib module unictype/category-Pi
+
+libunistring_la_SOURCES += unictype/categ_Pi.c
+
+EXTRA_DIST += unictype/categ_Pi.h
+
+## end gnulib module unictype/category-Pi
+
+## begin gnulib module unictype/category-Po
+
+libunistring_la_SOURCES += unictype/categ_Po.c
+
+EXTRA_DIST += unictype/categ_Po.h
+
+## end gnulib module unictype/category-Po
+
+## begin gnulib module unictype/category-Ps
+
+libunistring_la_SOURCES += unictype/categ_Ps.c
+
+EXTRA_DIST += unictype/categ_Ps.h
+
+## end gnulib module unictype/category-Ps
+
+## begin gnulib module unictype/category-S
+
+libunistring_la_SOURCES += unictype/categ_S.c
+
+EXTRA_DIST += unictype/categ_S.h
+
+## end gnulib module unictype/category-S
+
+## begin gnulib module unictype/category-Sc
+
+libunistring_la_SOURCES += unictype/categ_Sc.c
+
+EXTRA_DIST += unictype/categ_Sc.h
+
+## end gnulib module unictype/category-Sc
+
+## begin gnulib module unictype/category-Sk
+
+libunistring_la_SOURCES += unictype/categ_Sk.c
+
+EXTRA_DIST += unictype/categ_Sk.h
+
+## end gnulib module unictype/category-Sk
+
+## begin gnulib module unictype/category-Sm
+
+libunistring_la_SOURCES += unictype/categ_Sm.c
+
+EXTRA_DIST += unictype/categ_Sm.h
+
+## end gnulib module unictype/category-Sm
+
+## begin gnulib module unictype/category-So
+
+libunistring_la_SOURCES += unictype/categ_So.c
+
+EXTRA_DIST += unictype/categ_So.h
+
+## end gnulib module unictype/category-So
+
+## begin gnulib module unictype/category-Z
+
+libunistring_la_SOURCES += unictype/categ_Z.c
+
+EXTRA_DIST += unictype/categ_Z.h
+
+## end gnulib module unictype/category-Z
+
+## begin gnulib module unictype/category-Zl
+
+libunistring_la_SOURCES += unictype/categ_Zl.c
+
+EXTRA_DIST += unictype/categ_Zl.h
+
+## end gnulib module unictype/category-Zl
+
+## begin gnulib module unictype/category-Zp
+
+libunistring_la_SOURCES += unictype/categ_Zp.c
+
+EXTRA_DIST += unictype/categ_Zp.h
+
+## end gnulib module unictype/category-Zp
+
+## begin gnulib module unictype/category-Zs
+
+libunistring_la_SOURCES += unictype/categ_Zs.c
+
+EXTRA_DIST += unictype/categ_Zs.h
+
+## end gnulib module unictype/category-Zs
+
+## begin gnulib module unictype/category-and
+
+libunistring_la_SOURCES += unictype/categ_and.c
+
+## end gnulib module unictype/category-and
+
+## begin gnulib module unictype/category-and-not
+
+libunistring_la_SOURCES += unictype/categ_and_not.c
+
+## end gnulib module unictype/category-and-not
+
+## begin gnulib module unictype/category-byname
+
+libunistring_la_SOURCES += unictype/categ_byname.c
+
+## end gnulib module unictype/category-byname
+
+## begin gnulib module unictype/category-name
+
+libunistring_la_SOURCES += unictype/categ_name.c
+
+## end gnulib module unictype/category-name
+
+## begin gnulib module unictype/category-none
+
+libunistring_la_SOURCES += unictype/categ_none.c
+
+## end gnulib module unictype/category-none
+
+## begin gnulib module unictype/category-of
+
+libunistring_la_SOURCES += unictype/categ_of.c
+
+EXTRA_DIST += unictype/categ_of.h
+
+## end gnulib module unictype/category-of
+
+## begin gnulib module unictype/category-or
+
+libunistring_la_SOURCES += unictype/categ_or.c
+
+## end gnulib module unictype/category-or
+
+## begin gnulib module unictype/category-test
+
+libunistring_la_SOURCES += unictype/categ_test.c
+
+EXTRA_DIST += unictype/bitmap.h
+
+## end gnulib module unictype/category-test
+
+## begin gnulib module unictype/combining-class
+
+libunistring_la_SOURCES += unictype/combining.c
+
+EXTRA_DIST += unictype/combining.h
+
+## end gnulib module unictype/combining-class
+
+## begin gnulib module unictype/ctype-alnum
+
+libunistring_la_SOURCES += unictype/ctype_alnum.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_alnum.h
+
+## end gnulib module unictype/ctype-alnum
+
+## begin gnulib module unictype/ctype-alpha
+
+libunistring_la_SOURCES += unictype/ctype_alpha.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_alpha.h
+
+## end gnulib module unictype/ctype-alpha
+
+## begin gnulib module unictype/ctype-blank
+
+libunistring_la_SOURCES += unictype/ctype_blank.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_blank.h
+
+## end gnulib module unictype/ctype-blank
+
+## begin gnulib module unictype/ctype-cntrl
+
+libunistring_la_SOURCES += unictype/ctype_cntrl.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_cntrl.h
+
+## end gnulib module unictype/ctype-cntrl
+
+## begin gnulib module unictype/ctype-digit
+
+libunistring_la_SOURCES += unictype/ctype_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_digit.h
+
+## end gnulib module unictype/ctype-digit
+
+## begin gnulib module unictype/ctype-graph
+
+libunistring_la_SOURCES += unictype/ctype_graph.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_graph.h
+
+## end gnulib module unictype/ctype-graph
+
+## begin gnulib module unictype/ctype-lower
+
+libunistring_la_SOURCES += unictype/ctype_lower.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_lower.h
+
+## end gnulib module unictype/ctype-lower
+
+## begin gnulib module unictype/ctype-print
+
+libunistring_la_SOURCES += unictype/ctype_print.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_print.h
+
+## end gnulib module unictype/ctype-print
+
+## begin gnulib module unictype/ctype-punct
+
+libunistring_la_SOURCES += unictype/ctype_punct.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_punct.h
+
+## end gnulib module unictype/ctype-punct
+
+## begin gnulib module unictype/ctype-space
+
+libunistring_la_SOURCES += unictype/ctype_space.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_space.h
+
+## end gnulib module unictype/ctype-space
+
+## begin gnulib module unictype/ctype-upper
+
+libunistring_la_SOURCES += unictype/ctype_upper.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_upper.h
+
+## end gnulib module unictype/ctype-upper
+
+## begin gnulib module unictype/ctype-xdigit
+
+libunistring_la_SOURCES += unictype/ctype_xdigit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/ctype_xdigit.h
+
+## end gnulib module unictype/ctype-xdigit
+
+## begin gnulib module unictype/decimal-digit
+
+libunistring_la_SOURCES += unictype/decdigit.c
+
+EXTRA_DIST += unictype/decdigit.h
+
+## end gnulib module unictype/decimal-digit
+
+## begin gnulib module unictype/digit
+
+libunistring_la_SOURCES += unictype/digit.c
+
+EXTRA_DIST += unictype/digit.h
+
+## end gnulib module unictype/digit
+
+## begin gnulib module unictype/mirror
+
+libunistring_la_SOURCES += unictype/mirror.c
+
+EXTRA_DIST += unictype/mirror.h
+
+## end gnulib module unictype/mirror
+
+## begin gnulib module unictype/numeric
+
+libunistring_la_SOURCES += unictype/numeric.c
+
+EXTRA_DIST += unictype/numeric.h
+
+## end gnulib module unictype/numeric
+
+## begin gnulib module unictype/property-alphabetic
+
+libunistring_la_SOURCES += unictype/pr_alphabetic.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_alphabetic.h
+
+## end gnulib module unictype/property-alphabetic
+
+## begin gnulib module unictype/property-ascii-hex-digit
+
+libunistring_la_SOURCES += unictype/pr_ascii_hex_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_ascii_hex_digit.h
+
+## end gnulib module unictype/property-ascii-hex-digit
+
+## begin gnulib module unictype/property-bidi-arabic-digit
+
+libunistring_la_SOURCES += unictype/pr_bidi_arabic_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_digit.h
+
+## end gnulib module unictype/property-bidi-arabic-digit
+
+## begin gnulib module unictype/property-bidi-arabic-right-to-left
+
+libunistring_la_SOURCES += unictype/pr_bidi_arabic_right_to_left.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_right_to_left.h
+
+## end gnulib module unictype/property-bidi-arabic-right-to-left
+
+## begin gnulib module unictype/property-bidi-block-separator
+
+libunistring_la_SOURCES += unictype/pr_bidi_block_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_block_separator.h
+
+## end gnulib module unictype/property-bidi-block-separator
+
+## begin gnulib module unictype/property-bidi-boundary-neutral
+
+libunistring_la_SOURCES += unictype/pr_bidi_boundary_neutral.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_boundary_neutral.h
+
+## end gnulib module unictype/property-bidi-boundary-neutral
+
+## begin gnulib module unictype/property-bidi-common-separator
+
+libunistring_la_SOURCES += unictype/pr_bidi_common_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_common_separator.h
+
+## end gnulib module unictype/property-bidi-common-separator
+
+## begin gnulib module unictype/property-bidi-control
+
+libunistring_la_SOURCES += unictype/pr_bidi_control.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_control.h
+
+## end gnulib module unictype/property-bidi-control
+
+## begin gnulib module unictype/property-bidi-embedding-or-override
+
+libunistring_la_SOURCES += unictype/pr_bidi_embedding_or_override.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_embedding_or_override.h
+
+## end gnulib module unictype/property-bidi-embedding-or-override
+
+## begin gnulib module unictype/property-bidi-eur-num-separator
+
+libunistring_la_SOURCES += unictype/pr_bidi_eur_num_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_separator.h
+
+## end gnulib module unictype/property-bidi-eur-num-separator
+
+## begin gnulib module unictype/property-bidi-eur-num-terminator
+
+libunistring_la_SOURCES += unictype/pr_bidi_eur_num_terminator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_terminator.h
+
+## end gnulib module unictype/property-bidi-eur-num-terminator
+
+## begin gnulib module unictype/property-bidi-european-digit
+
+libunistring_la_SOURCES += unictype/pr_bidi_european_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_european_digit.h
+
+## end gnulib module unictype/property-bidi-european-digit
+
+## begin gnulib module unictype/property-bidi-hebrew-right-to-left
+
+libunistring_la_SOURCES += unictype/pr_bidi_hebrew_right_to_left.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_hebrew_right_to_left.h
+
+## end gnulib module unictype/property-bidi-hebrew-right-to-left
+
+## begin gnulib module unictype/property-bidi-left-to-right
+
+libunistring_la_SOURCES += unictype/pr_bidi_left_to_right.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_left_to_right.h
+
+## end gnulib module unictype/property-bidi-left-to-right
+
+## begin gnulib module unictype/property-bidi-non-spacing-mark
+
+libunistring_la_SOURCES += unictype/pr_bidi_non_spacing_mark.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_non_spacing_mark.h
+
+## end gnulib module unictype/property-bidi-non-spacing-mark
+
+## begin gnulib module unictype/property-bidi-other-neutral
+
+libunistring_la_SOURCES += unictype/pr_bidi_other_neutral.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_other_neutral.h
+
+## end gnulib module unictype/property-bidi-other-neutral
+
+## begin gnulib module unictype/property-bidi-pdf
+
+libunistring_la_SOURCES += unictype/pr_bidi_pdf.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_pdf.h
+
+## end gnulib module unictype/property-bidi-pdf
+
+## begin gnulib module unictype/property-bidi-segment-separator
+
+libunistring_la_SOURCES += unictype/pr_bidi_segment_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_segment_separator.h
+
+## end gnulib module unictype/property-bidi-segment-separator
+
+## begin gnulib module unictype/property-bidi-whitespace
+
+libunistring_la_SOURCES += unictype/pr_bidi_whitespace.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_whitespace.h
+
+## end gnulib module unictype/property-bidi-whitespace
+
+## begin gnulib module unictype/property-byname
+
+libunistring_la_SOURCES += unictype/pr_byname.c
+
+unictype/pr_byname.h: unictype/pr_byname.gperf
+ $(GPERF) -m 10 $(srcdir)/unictype/pr_byname.gperf > $(srcdir)/unictype/pr_byname.h-t
+ mv $(srcdir)/unictype/pr_byname.h-t $(srcdir)/unictype/pr_byname.h
+BUILT_SOURCES += unictype/pr_byname.h
+MOSTLYCLEANFILES += unictype/pr_byname.h-t
+MAINTAINERCLEANFILES += unictype/pr_byname.h
+EXTRA_DIST += unictype/pr_byname.h
+
+EXTRA_DIST += unictype/pr_byname.gperf
+
+## end gnulib module unictype/property-byname
+
+## begin gnulib module unictype/property-combining
+
+libunistring_la_SOURCES += unictype/pr_combining.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_combining.h
+
+## end gnulib module unictype/property-combining
+
+## begin gnulib module unictype/property-composite
+
+libunistring_la_SOURCES += unictype/pr_composite.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_composite.h
+
+## end gnulib module unictype/property-composite
+
+## begin gnulib module unictype/property-currency-symbol
+
+libunistring_la_SOURCES += unictype/pr_currency_symbol.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_currency_symbol.h
+
+## end gnulib module unictype/property-currency-symbol
+
+## begin gnulib module unictype/property-dash
+
+libunistring_la_SOURCES += unictype/pr_dash.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_dash.h
+
+## end gnulib module unictype/property-dash
+
+## begin gnulib module unictype/property-decimal-digit
+
+libunistring_la_SOURCES += unictype/pr_decimal_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_decimal_digit.h
+
+## end gnulib module unictype/property-decimal-digit
+
+## begin gnulib module unictype/property-default-ignorable-code-point
+
+libunistring_la_SOURCES += unictype/pr_default_ignorable_code_point.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_default_ignorable_code_point.h
+
+## end gnulib module unictype/property-default-ignorable-code-point
+
+## begin gnulib module unictype/property-deprecated
+
+libunistring_la_SOURCES += unictype/pr_deprecated.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_deprecated.h
+
+## end gnulib module unictype/property-deprecated
+
+## begin gnulib module unictype/property-diacritic
+
+libunistring_la_SOURCES += unictype/pr_diacritic.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_diacritic.h
+
+## end gnulib module unictype/property-diacritic
+
+## begin gnulib module unictype/property-extender
+
+libunistring_la_SOURCES += unictype/pr_extender.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_extender.h
+
+## end gnulib module unictype/property-extender
+
+## begin gnulib module unictype/property-format-control
+
+libunistring_la_SOURCES += unictype/pr_format_control.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_format_control.h
+
+## end gnulib module unictype/property-format-control
+
+## begin gnulib module unictype/property-grapheme-base
+
+libunistring_la_SOURCES += unictype/pr_grapheme_base.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_base.h
+
+## end gnulib module unictype/property-grapheme-base
+
+## begin gnulib module unictype/property-grapheme-extend
+
+libunistring_la_SOURCES += unictype/pr_grapheme_extend.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_extend.h
+
+## end gnulib module unictype/property-grapheme-extend
+
+## begin gnulib module unictype/property-grapheme-link
+
+libunistring_la_SOURCES += unictype/pr_grapheme_link.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_link.h
+
+## end gnulib module unictype/property-grapheme-link
+
+## begin gnulib module unictype/property-hex-digit
+
+libunistring_la_SOURCES += unictype/pr_hex_digit.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_hex_digit.h
+
+## end gnulib module unictype/property-hex-digit
+
+## begin gnulib module unictype/property-hyphen
+
+libunistring_la_SOURCES += unictype/pr_hyphen.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_hyphen.h
+
+## end gnulib module unictype/property-hyphen
+
+## begin gnulib module unictype/property-id-continue
+
+libunistring_la_SOURCES += unictype/pr_id_continue.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_id_continue.h
+
+## end gnulib module unictype/property-id-continue
+
+## begin gnulib module unictype/property-id-start
+
+libunistring_la_SOURCES += unictype/pr_id_start.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_id_start.h
+
+## end gnulib module unictype/property-id-start
+
+## begin gnulib module unictype/property-ideographic
+
+libunistring_la_SOURCES += unictype/pr_ideographic.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_ideographic.h
+
+## end gnulib module unictype/property-ideographic
+
+## begin gnulib module unictype/property-ids-binary-operator
+
+libunistring_la_SOURCES += unictype/pr_ids_binary_operator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_binary_operator.h
+
+## end gnulib module unictype/property-ids-binary-operator
+
+## begin gnulib module unictype/property-ids-trinary-operator
+
+libunistring_la_SOURCES += unictype/pr_ids_trinary_operator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_trinary_operator.h
+
+## end gnulib module unictype/property-ids-trinary-operator
+
+## begin gnulib module unictype/property-ignorable-control
+
+libunistring_la_SOURCES += unictype/pr_ignorable_control.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_ignorable_control.h
+
+## end gnulib module unictype/property-ignorable-control
+
+## begin gnulib module unictype/property-iso-control
+
+libunistring_la_SOURCES += unictype/pr_iso_control.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_iso_control.h
+
+## end gnulib module unictype/property-iso-control
+
+## begin gnulib module unictype/property-join-control
+
+libunistring_la_SOURCES += unictype/pr_join_control.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_join_control.h
+
+## end gnulib module unictype/property-join-control
+
+## begin gnulib module unictype/property-left-of-pair
+
+libunistring_la_SOURCES += unictype/pr_left_of_pair.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_left_of_pair.h
+
+## end gnulib module unictype/property-left-of-pair
+
+## begin gnulib module unictype/property-line-separator
+
+libunistring_la_SOURCES += unictype/pr_line_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_line_separator.h
+
+## end gnulib module unictype/property-line-separator
+
+## begin gnulib module unictype/property-logical-order-exception
+
+libunistring_la_SOURCES += unictype/pr_logical_order_exception.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_logical_order_exception.h
+
+## end gnulib module unictype/property-logical-order-exception
+
+## begin gnulib module unictype/property-lowercase
+
+libunistring_la_SOURCES += unictype/pr_lowercase.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_lowercase.h
+
+## end gnulib module unictype/property-lowercase
+
+## begin gnulib module unictype/property-math
+
+libunistring_la_SOURCES += unictype/pr_math.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_math.h
+
+## end gnulib module unictype/property-math
+
+## begin gnulib module unictype/property-non-break
+
+libunistring_la_SOURCES += unictype/pr_non_break.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_non_break.h
+
+## end gnulib module unictype/property-non-break
+
+## begin gnulib module unictype/property-not-a-character
+
+libunistring_la_SOURCES += unictype/pr_not_a_character.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_not_a_character.h
+
+## end gnulib module unictype/property-not-a-character
+
+## begin gnulib module unictype/property-numeric
+
+libunistring_la_SOURCES += unictype/pr_numeric.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_numeric.h
+
+## end gnulib module unictype/property-numeric
+
+## begin gnulib module unictype/property-other-alphabetic
+
+libunistring_la_SOURCES += unictype/pr_other_alphabetic.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_alphabetic.h
+
+## end gnulib module unictype/property-other-alphabetic
+
+## begin gnulib module unictype/property-other-default-ignorable-code-point
+
+libunistring_la_SOURCES += unictype/pr_other_default_ignorable_code_point.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_default_ignorable_code_point.h
+
+## end gnulib module unictype/property-other-default-ignorable-code-point
+
+## begin gnulib module unictype/property-other-grapheme-extend
+
+libunistring_la_SOURCES += unictype/pr_other_grapheme_extend.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_grapheme_extend.h
+
+## end gnulib module unictype/property-other-grapheme-extend
+
+## begin gnulib module unictype/property-other-id-continue
+
+libunistring_la_SOURCES += unictype/pr_other_id_continue.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_continue.h
+
+## end gnulib module unictype/property-other-id-continue
+
+## begin gnulib module unictype/property-other-id-start
+
+libunistring_la_SOURCES += unictype/pr_other_id_start.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_start.h
+
+## end gnulib module unictype/property-other-id-start
+
+## begin gnulib module unictype/property-other-lowercase
+
+libunistring_la_SOURCES += unictype/pr_other_lowercase.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_lowercase.h
+
+## end gnulib module unictype/property-other-lowercase
+
+## begin gnulib module unictype/property-other-math
+
+libunistring_la_SOURCES += unictype/pr_other_math.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_math.h
+
+## end gnulib module unictype/property-other-math
+
+## begin gnulib module unictype/property-other-uppercase
+
+libunistring_la_SOURCES += unictype/pr_other_uppercase.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_other_uppercase.h
+
+## end gnulib module unictype/property-other-uppercase
+
+## begin gnulib module unictype/property-paired-punctuation
+
+libunistring_la_SOURCES += unictype/pr_paired_punctuation.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_paired_punctuation.h
+
+## end gnulib module unictype/property-paired-punctuation
+
+## begin gnulib module unictype/property-paragraph-separator
+
+libunistring_la_SOURCES += unictype/pr_paragraph_separator.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_paragraph_separator.h
+
+## end gnulib module unictype/property-paragraph-separator
+
+## begin gnulib module unictype/property-pattern-syntax
+
+libunistring_la_SOURCES += unictype/pr_pattern_syntax.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_syntax.h
+
+## end gnulib module unictype/property-pattern-syntax
+
+## begin gnulib module unictype/property-pattern-white-space
+
+libunistring_la_SOURCES += unictype/pr_pattern_white_space.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_white_space.h
+
+## end gnulib module unictype/property-pattern-white-space
+
+## begin gnulib module unictype/property-private-use
+
+libunistring_la_SOURCES += unictype/pr_private_use.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_private_use.h
+
+## end gnulib module unictype/property-private-use
+
+## begin gnulib module unictype/property-punctuation
+
+libunistring_la_SOURCES += unictype/pr_punctuation.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_punctuation.h
+
+## end gnulib module unictype/property-punctuation
+
+## begin gnulib module unictype/property-quotation-mark
+
+libunistring_la_SOURCES += unictype/pr_quotation_mark.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_quotation_mark.h
+
+## end gnulib module unictype/property-quotation-mark
+
+## begin gnulib module unictype/property-radical
+
+libunistring_la_SOURCES += unictype/pr_radical.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_radical.h
+
+## end gnulib module unictype/property-radical
+
+## begin gnulib module unictype/property-sentence-terminal
+
+libunistring_la_SOURCES += unictype/pr_sentence_terminal.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_sentence_terminal.h
+
+## end gnulib module unictype/property-sentence-terminal
+
+## begin gnulib module unictype/property-soft-dotted
+
+libunistring_la_SOURCES += unictype/pr_soft_dotted.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_soft_dotted.h
+
+## end gnulib module unictype/property-soft-dotted
+
+## begin gnulib module unictype/property-space
+
+libunistring_la_SOURCES += unictype/pr_space.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_space.h
+
+## end gnulib module unictype/property-space
+
+## begin gnulib module unictype/property-terminal-punctuation
+
+libunistring_la_SOURCES += unictype/pr_terminal_punctuation.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_terminal_punctuation.h
+
+## end gnulib module unictype/property-terminal-punctuation
+
+## begin gnulib module unictype/property-test
+
+libunistring_la_SOURCES += unictype/pr_test.c
+
+## end gnulib module unictype/property-test
+
+## begin gnulib module unictype/property-titlecase
+
+libunistring_la_SOURCES += unictype/pr_titlecase.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_titlecase.h
+
+## end gnulib module unictype/property-titlecase
+
+## begin gnulib module unictype/property-unassigned-code-value
+
+libunistring_la_SOURCES += unictype/pr_unassigned_code_value.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_unassigned_code_value.h
+
+## end gnulib module unictype/property-unassigned-code-value
+
+## begin gnulib module unictype/property-unified-ideograph
+
+libunistring_la_SOURCES += unictype/pr_unified_ideograph.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_unified_ideograph.h
+
+## end gnulib module unictype/property-unified-ideograph
+
+## begin gnulib module unictype/property-uppercase
+
+libunistring_la_SOURCES += unictype/pr_uppercase.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_uppercase.h
+
+## end gnulib module unictype/property-uppercase
+
+## begin gnulib module unictype/property-variation-selector
+
+libunistring_la_SOURCES += unictype/pr_variation_selector.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_variation_selector.h
+
+## end gnulib module unictype/property-variation-selector
+
+## begin gnulib module unictype/property-white-space
+
+libunistring_la_SOURCES += unictype/pr_white_space.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_white_space.h
+
+## end gnulib module unictype/property-white-space
+
+## begin gnulib module unictype/property-xid-continue
+
+libunistring_la_SOURCES += unictype/pr_xid_continue.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_continue.h
+
+## end gnulib module unictype/property-xid-continue
+
+## begin gnulib module unictype/property-xid-start
+
+libunistring_la_SOURCES += unictype/pr_xid_start.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_start.h
+
+## end gnulib module unictype/property-xid-start
+
+## begin gnulib module unictype/property-zero-width
+
+libunistring_la_SOURCES += unictype/pr_zero_width.c
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_zero_width.h
+
+## end gnulib module unictype/property-zero-width
+
+## begin gnulib module unictype/scripts
+
+libunistring_la_SOURCES += unictype/scripts.c
+
+unictype/scripts_byname.h: unictype/scripts_byname.gperf
+ $(GPERF) -m 10 $(srcdir)/unictype/scripts_byname.gperf > $(srcdir)/unictype/scripts_byname.h-t
+ mv $(srcdir)/unictype/scripts_byname.h-t $(srcdir)/unictype/scripts_byname.h
+BUILT_SOURCES += unictype/scripts_byname.h
+MOSTLYCLEANFILES += unictype/scripts_byname.h-t
+MAINTAINERCLEANFILES += unictype/scripts_byname.h
+EXTRA_DIST += unictype/scripts_byname.h
+
+EXTRA_DIST += unictype/scripts.h unictype/scripts_byname.gperf
+
+## end gnulib module unictype/scripts
+
+## begin gnulib module unictype/syntax-c-ident
+
+libunistring_la_SOURCES += unictype/sy_c_ident.c
+
+EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_c_ident.h
+
+## end gnulib module unictype/syntax-c-ident
+
+## begin gnulib module unictype/syntax-c-whitespace
+
+libunistring_la_SOURCES += unictype/sy_c_whitespace.c
+
+## end gnulib module unictype/syntax-c-whitespace
+
+## begin gnulib module unictype/syntax-java-ident
+
+libunistring_la_SOURCES += unictype/sy_java_ident.c
+
+EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_java_ident.h
+
+## end gnulib module unictype/syntax-java-ident
+
+## begin gnulib module unictype/syntax-java-whitespace
+
+libunistring_la_SOURCES += unictype/sy_java_whitespace.c
+
+## end gnulib module unictype/syntax-java-whitespace
+
+## begin gnulib module unilbrk/base
+
+
+EXTRA_DIST += unilbrk.h
+
+## end gnulib module unilbrk/base
+
+## begin gnulib module unilbrk/tables
+
+libunistring_la_SOURCES += unilbrk/lbrktables.c
+
+EXTRA_DIST += unilbrk/lbrkprop1.h unilbrk/lbrkprop2.h unilbrk/lbrktables.h
+
+## end gnulib module unilbrk/tables
+
+## begin gnulib module unilbrk/u16-possible-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u16-possible-linebreaks.c
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end gnulib module unilbrk/u16-possible-linebreaks
+
+## begin gnulib module unilbrk/u16-width-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u16-width-linebreaks.c
+
+## end gnulib module unilbrk/u16-width-linebreaks
+
+## begin gnulib module unilbrk/u32-possible-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u32-possible-linebreaks.c
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end gnulib module unilbrk/u32-possible-linebreaks
+
+## begin gnulib module unilbrk/u32-width-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u32-width-linebreaks.c
+
+## end gnulib module unilbrk/u32-width-linebreaks
+
+## begin gnulib module unilbrk/u8-possible-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u8-possible-linebreaks.c
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end gnulib module unilbrk/u8-possible-linebreaks
+
+## begin gnulib module unilbrk/u8-width-linebreaks
+
+libunistring_la_SOURCES += unilbrk/u8-width-linebreaks.c
+
+## end gnulib module unilbrk/u8-width-linebreaks
+
+## begin gnulib module unilbrk/ulc-common
+
+libunistring_la_SOURCES += unilbrk/ulc-common.c
+
+EXTRA_DIST += unilbrk/ulc-common.h
+
+## end gnulib module unilbrk/ulc-common
+
+## begin gnulib module unilbrk/ulc-possible-linebreaks
+
+libunistring_la_SOURCES += unilbrk/ulc-possible-linebreaks.c
+
+## end gnulib module unilbrk/ulc-possible-linebreaks
+
+## begin gnulib module unilbrk/ulc-width-linebreaks
+
+libunistring_la_SOURCES += unilbrk/ulc-width-linebreaks.c
+
+## end gnulib module unilbrk/ulc-width-linebreaks
+
+## begin gnulib module uniname/base
+
+
+EXTRA_DIST += uniname.h
+
+## end gnulib module uniname/base
+
+## begin gnulib module uniname/uniname
+
+libunistring_la_SOURCES += uniname/uniname.c
+
+EXTRA_DIST += uniname/gen-uninames.lisp uniname/uninames.h
+
+## end gnulib module uniname/uniname
+
+## begin gnulib module uninorm/base
+
+
+EXTRA_DIST += uninorm.h
+
+## end gnulib module uninorm/base
+
+## begin gnulib module uninorm/canonical-decomposition
+
+libunistring_la_SOURCES += uninorm/canonical-decomposition.c
+
+## end gnulib module uninorm/canonical-decomposition
+
+## begin gnulib module uninorm/compat-decomposition
+
+libunistring_la_SOURCES += uninorm/compat-decomposition.c
+
+EXTRA_DIST += uninorm/decompose-internal.h
+
+## end gnulib module uninorm/compat-decomposition
+
+## begin gnulib module uninorm/composition
+
+libunistring_la_SOURCES += uninorm/composition.c
+
+uninorm/composition-table.h: $(srcdir)/uninorm/composition-table.gperf
+ $(GPERF) -m 1 $(srcdir)/uninorm/composition-table.gperf > $(srcdir)/uninorm/composition-table.h-t
+ mv $(srcdir)/uninorm/composition-table.h-t $(srcdir)/uninorm/composition-table.h
+BUILT_SOURCES += uninorm/composition-table.h
+MOSTLYCLEANFILES += uninorm/composition-table.h-t
+MAINTAINERCLEANFILES += uninorm/composition-table.h
+EXTRA_DIST += uninorm/composition-table.h
+
+EXTRA_DIST += uninorm/composition-table.gperf
+
+## end gnulib module uninorm/composition
+
+## begin gnulib module uninorm/decompose-internal
+
+libunistring_la_SOURCES += uninorm/decompose-internal.c
+
+EXTRA_DIST += uninorm/decompose-internal.h
+
+## end gnulib module uninorm/decompose-internal
+
+## begin gnulib module uninorm/decomposing-form
+
+libunistring_la_SOURCES += uninorm/decomposing-form.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/decomposing-form
+
+## begin gnulib module uninorm/decomposition
+
+libunistring_la_SOURCES += uninorm/decomposition.c
+
+## end gnulib module uninorm/decomposition
+
+## begin gnulib module uninorm/decomposition-table
+
+libunistring_la_SOURCES += uninorm/decomposition-table.c
+
+EXTRA_DIST += uninorm/decomposition-table.h uninorm/decomposition-table1.h uninorm/decomposition-table2.h
+
+## end gnulib module uninorm/decomposition-table
+
+## begin gnulib module uninorm/filter
+
+libunistring_la_SOURCES += uninorm/uninorm-filter.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/filter
+
+## begin gnulib module uninorm/nfc
+
+libunistring_la_SOURCES += uninorm/nfc.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/nfc
+
+## begin gnulib module uninorm/nfd
+
+libunistring_la_SOURCES += uninorm/nfd.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/nfd
+
+## begin gnulib module uninorm/nfkc
+
+libunistring_la_SOURCES += uninorm/nfkc.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/nfkc
+
+## begin gnulib module uninorm/nfkd
+
+libunistring_la_SOURCES += uninorm/nfkd.c
+
+EXTRA_DIST += uninorm/normalize-internal.h
+
+## end gnulib module uninorm/nfkd
+
+## begin gnulib module uninorm/u16-normalize
+
+libunistring_la_SOURCES += uninorm/u16-normalize.c
+
+EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
+
+## end gnulib module uninorm/u16-normalize
+
+## begin gnulib module uninorm/u16-normcmp
+
+libunistring_la_SOURCES += uninorm/u16-normcmp.c
+
+EXTRA_DIST += uninorm/u-normcmp.h
+
+## end gnulib module uninorm/u16-normcmp
+
+## begin gnulib module uninorm/u16-normcoll
+
+libunistring_la_SOURCES += uninorm/u16-normcoll.c
+
+EXTRA_DIST += uninorm/u-normcoll.h
+
+## end gnulib module uninorm/u16-normcoll
+
+## begin gnulib module uninorm/u16-normxfrm
+
+libunistring_la_SOURCES += uninorm/u16-normxfrm.c
+
+EXTRA_DIST += uninorm/u-normxfrm.h
+
+## end gnulib module uninorm/u16-normxfrm
+
+## begin gnulib module uninorm/u32-normalize
+
+libunistring_la_SOURCES += uninorm/u32-normalize.c
+
+EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
+
+## end gnulib module uninorm/u32-normalize
+
+## begin gnulib module uninorm/u32-normcmp
+
+libunistring_la_SOURCES += uninorm/u32-normcmp.c
+
+EXTRA_DIST += uninorm/u-normcmp.h
+
+## end gnulib module uninorm/u32-normcmp
+
+## begin gnulib module uninorm/u32-normcoll
+
+libunistring_la_SOURCES += uninorm/u32-normcoll.c
+
+EXTRA_DIST += uninorm/u-normcoll.h
+
+## end gnulib module uninorm/u32-normcoll
+
+## begin gnulib module uninorm/u32-normxfrm
+
+libunistring_la_SOURCES += uninorm/u32-normxfrm.c
+
+EXTRA_DIST += uninorm/u-normxfrm.h
+
+## end gnulib module uninorm/u32-normxfrm
+
+## begin gnulib module uninorm/u8-normalize
+
+libunistring_la_SOURCES += uninorm/u8-normalize.c
+
+EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
+
+## end gnulib module uninorm/u8-normalize
+
+## begin gnulib module uninorm/u8-normcmp
+
+libunistring_la_SOURCES += uninorm/u8-normcmp.c
+
+EXTRA_DIST += uninorm/u-normcmp.h
+
+## end gnulib module uninorm/u8-normcmp
+
+## begin gnulib module uninorm/u8-normcoll
+
+libunistring_la_SOURCES += uninorm/u8-normcoll.c
+
+EXTRA_DIST += uninorm/u-normcoll.h
+
+## end gnulib module uninorm/u8-normcoll
+
+## begin gnulib module uninorm/u8-normxfrm
+
+libunistring_la_SOURCES += uninorm/u8-normxfrm.c
+
+EXTRA_DIST += uninorm/u-normxfrm.h
+
+## end gnulib module uninorm/u8-normxfrm
+
+## begin gnulib module unistd
+
+BUILT_SOURCES += unistd.h
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+ -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
+ -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+ -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
+ -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
+ -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+ -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
+ -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+ -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+ -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
+ -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
+ -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
+ -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+ -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+ -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
+ -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+ -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
+ -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+ -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+ -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+ -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
+ -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
+ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
+ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+ -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
+ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
+ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
+ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \
+ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
+ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
+ -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
+ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/unistd.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += unistd.h unistd.h-t
+
+EXTRA_DIST += unistd.in.h
+
+## end gnulib module unistd
+
+## begin gnulib module unistdio/base
+
+
+EXTRA_DIST += unistdio.h
+
+## end gnulib module unistdio/base
+
+## begin gnulib module unistdio/u-printf-args
+
+libunistring_la_SOURCES += unistdio/u-printf-args.c
+
+EXTRA_DIST += printf-args.c printf-args.h unistdio/u-printf-args.h
+
+EXTRA_libunistring_la_SOURCES += printf-args.c
+
+## end gnulib module unistdio/u-printf-args
+
+## begin gnulib module unistdio/u16-asnprintf
+
+libunistring_la_SOURCES += unistdio/u16-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u16-asnprintf
+
+## begin gnulib module unistdio/u16-asprintf
+
+libunistring_la_SOURCES += unistdio/u16-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u16-asprintf
+
+## begin gnulib module unistdio/u16-printf-parse
+
+libunistring_la_SOURCES += unistdio/u16-printf-parse.c
+
+EXTRA_DIST += printf-parse.c printf-parse.h unistdio/u-printf-parse.h
+
+EXTRA_libunistring_la_SOURCES += printf-parse.c
+
+## end gnulib module unistdio/u16-printf-parse
+
+## begin gnulib module unistdio/u16-snprintf
+
+libunistring_la_SOURCES += unistdio/u16-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u16-snprintf
+
+## begin gnulib module unistdio/u16-sprintf
+
+libunistring_la_SOURCES += unistdio/u16-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u16-sprintf
+
+## begin gnulib module unistdio/u16-u16-asnprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u16-u16-asnprintf
+
+## begin gnulib module unistdio/u16-u16-asprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u16-u16-asprintf
+
+## begin gnulib module unistdio/u16-u16-snprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u16-u16-snprintf
+
+## begin gnulib module unistdio/u16-u16-sprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u16-u16-sprintf
+
+## begin gnulib module unistdio/u16-u16-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u16-u16-vasnprintf
+
+## begin gnulib module unistdio/u16-u16-vasprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u16-u16-vasprintf
+
+## begin gnulib module unistdio/u16-u16-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u16-u16-vsnprintf
+
+## begin gnulib module unistdio/u16-u16-vsprintf
+
+libunistring_la_SOURCES += unistdio/u16-u16-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u16-u16-vsprintf
+
+## begin gnulib module unistdio/u16-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u16-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u16-vasnprintf
+
+## begin gnulib module unistdio/u16-vasprintf
+
+libunistring_la_SOURCES += unistdio/u16-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u16-vasprintf
+
+## begin gnulib module unistdio/u16-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u16-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u16-vsnprintf
+
+## begin gnulib module unistdio/u16-vsprintf
+
+libunistring_la_SOURCES += unistdio/u16-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u16-vsprintf
+
+## begin gnulib module unistdio/u32-asnprintf
+
+libunistring_la_SOURCES += unistdio/u32-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u32-asnprintf
+
+## begin gnulib module unistdio/u32-asprintf
+
+libunistring_la_SOURCES += unistdio/u32-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u32-asprintf
+
+## begin gnulib module unistdio/u32-printf-parse
+
+libunistring_la_SOURCES += unistdio/u32-printf-parse.c
+
+EXTRA_DIST += printf-parse.c printf-parse.h unistdio/u-printf-parse.h
+
+EXTRA_libunistring_la_SOURCES += printf-parse.c
+
+## end gnulib module unistdio/u32-printf-parse
+
+## begin gnulib module unistdio/u32-snprintf
+
+libunistring_la_SOURCES += unistdio/u32-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u32-snprintf
+
+## begin gnulib module unistdio/u32-sprintf
+
+libunistring_la_SOURCES += unistdio/u32-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u32-sprintf
+
+## begin gnulib module unistdio/u32-u32-asnprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u32-u32-asnprintf
+
+## begin gnulib module unistdio/u32-u32-asprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u32-u32-asprintf
+
+## begin gnulib module unistdio/u32-u32-snprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u32-u32-snprintf
+
+## begin gnulib module unistdio/u32-u32-sprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u32-u32-sprintf
+
+## begin gnulib module unistdio/u32-u32-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u32-u32-vasnprintf
+
+## begin gnulib module unistdio/u32-u32-vasprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u32-u32-vasprintf
+
+## begin gnulib module unistdio/u32-u32-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u32-u32-vsnprintf
+
+## begin gnulib module unistdio/u32-u32-vsprintf
+
+libunistring_la_SOURCES += unistdio/u32-u32-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u32-u32-vsprintf
+
+## begin gnulib module unistdio/u32-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u32-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u32-vasnprintf
+
+## begin gnulib module unistdio/u32-vasprintf
+
+libunistring_la_SOURCES += unistdio/u32-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u32-vasprintf
+
+## begin gnulib module unistdio/u32-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u32-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u32-vsnprintf
+
+## begin gnulib module unistdio/u32-vsprintf
+
+libunistring_la_SOURCES += unistdio/u32-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u32-vsprintf
+
+## begin gnulib module unistdio/u8-asnprintf
+
+libunistring_la_SOURCES += unistdio/u8-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u8-asnprintf
+
+## begin gnulib module unistdio/u8-asprintf
+
+libunistring_la_SOURCES += unistdio/u8-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u8-asprintf
+
+## begin gnulib module unistdio/u8-printf-parse
+
+libunistring_la_SOURCES += unistdio/u8-printf-parse.c
+
+EXTRA_DIST += printf-parse.c printf-parse.h unistdio/u-printf-parse.h
+
+EXTRA_libunistring_la_SOURCES += printf-parse.c
+
+## end gnulib module unistdio/u8-printf-parse
+
+## begin gnulib module unistdio/u8-snprintf
+
+libunistring_la_SOURCES += unistdio/u8-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u8-snprintf
+
+## begin gnulib module unistdio/u8-sprintf
+
+libunistring_la_SOURCES += unistdio/u8-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u8-sprintf
+
+## begin gnulib module unistdio/u8-u8-asnprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/u8-u8-asnprintf
+
+## begin gnulib module unistdio/u8-u8-asprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/u8-u8-asprintf
+
+## begin gnulib module unistdio/u8-u8-snprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/u8-u8-snprintf
+
+## begin gnulib module unistdio/u8-u8-sprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/u8-u8-sprintf
+
+## begin gnulib module unistdio/u8-u8-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u8-u8-vasnprintf
+
+## begin gnulib module unistdio/u8-u8-vasprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u8-u8-vasprintf
+
+## begin gnulib module unistdio/u8-u8-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u8-u8-vsnprintf
+
+## begin gnulib module unistdio/u8-u8-vsprintf
+
+libunistring_la_SOURCES += unistdio/u8-u8-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u8-u8-vsprintf
+
+## begin gnulib module unistdio/u8-vasnprintf
+
+libunistring_la_SOURCES += unistdio/u8-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/u8-vasnprintf
+
+## begin gnulib module unistdio/u8-vasprintf
+
+libunistring_la_SOURCES += unistdio/u8-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/u8-vasprintf
+
+## begin gnulib module unistdio/u8-vsnprintf
+
+libunistring_la_SOURCES += unistdio/u8-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/u8-vsnprintf
+
+## begin gnulib module unistdio/u8-vsprintf
+
+libunistring_la_SOURCES += unistdio/u8-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/u8-vsprintf
+
+## begin gnulib module unistdio/ulc-asnprintf
+
+libunistring_la_SOURCES += unistdio/ulc-asnprintf.c
+
+EXTRA_DIST += unistdio/u-asnprintf.h
+
+## end gnulib module unistdio/ulc-asnprintf
+
+## begin gnulib module unistdio/ulc-asprintf
+
+libunistring_la_SOURCES += unistdio/ulc-asprintf.c
+
+EXTRA_DIST += unistdio/u-asprintf.h
+
+## end gnulib module unistdio/ulc-asprintf
+
+## begin gnulib module unistdio/ulc-fprintf
+
+libunistring_la_SOURCES += unistdio/ulc-fprintf.c
+
+## end gnulib module unistdio/ulc-fprintf
+
+## begin gnulib module unistdio/ulc-printf-parse
+
+libunistring_la_SOURCES += unistdio/ulc-printf-parse.c
+
+EXTRA_DIST += printf-parse.c printf-parse.h unistdio/u-printf-parse.h
+
+EXTRA_libunistring_la_SOURCES += printf-parse.c
+
+## end gnulib module unistdio/ulc-printf-parse
+
+## begin gnulib module unistdio/ulc-snprintf
+
+libunistring_la_SOURCES += unistdio/ulc-snprintf.c
+
+EXTRA_DIST += unistdio/u-snprintf.h
+
+## end gnulib module unistdio/ulc-snprintf
+
+## begin gnulib module unistdio/ulc-sprintf
+
+libunistring_la_SOURCES += unistdio/ulc-sprintf.c
+
+EXTRA_DIST += unistdio/u-sprintf.h
+
+## end gnulib module unistdio/ulc-sprintf
+
+## begin gnulib module unistdio/ulc-vasnprintf
+
+libunistring_la_SOURCES += unistdio/ulc-vasnprintf.c
+
+EXTRA_DIST += vasnprintf.c
+
+EXTRA_libunistring_la_SOURCES += vasnprintf.c
+
+## end gnulib module unistdio/ulc-vasnprintf
+
+## begin gnulib module unistdio/ulc-vasprintf
+
+libunistring_la_SOURCES += unistdio/ulc-vasprintf.c
+
+EXTRA_DIST += unistdio/u-vasprintf.h
+
+## end gnulib module unistdio/ulc-vasprintf
+
+## begin gnulib module unistdio/ulc-vfprintf
+
+libunistring_la_SOURCES += unistdio/ulc-vfprintf.c
+
+## end gnulib module unistdio/ulc-vfprintf
+
+## begin gnulib module unistdio/ulc-vsnprintf
+
+libunistring_la_SOURCES += unistdio/ulc-vsnprintf.c
+
+EXTRA_DIST += unistdio/u-vsnprintf.h
+
+## end gnulib module unistdio/ulc-vsnprintf
+
+## begin gnulib module unistdio/ulc-vsprintf
+
+libunistring_la_SOURCES += unistdio/ulc-vsprintf.c
+
+EXTRA_DIST += unistdio/u-vsprintf.h
+
+## end gnulib module unistdio/ulc-vsprintf
+
+## begin gnulib module unistr/base
+
+
+EXTRA_DIST += unistr.h
+
+## end gnulib module unistr/base
+
+## begin gnulib module unistr/u16-check
+
+libunistring_la_SOURCES += unistr/u16-check.c
+
+## end gnulib module unistr/u16-check
+
+## begin gnulib module unistr/u16-chr
+
+libunistring_la_SOURCES += unistr/u16-chr.c
+
+## end gnulib module unistr/u16-chr
+
+## begin gnulib module unistr/u16-cmp
+
+libunistring_la_SOURCES += unistr/u16-cmp.c
+
+## end gnulib module unistr/u16-cmp
+
+## begin gnulib module unistr/u16-cmp2
+
+libunistring_la_SOURCES += unistr/u16-cmp2.c
+
+EXTRA_DIST += unistr/u-cmp2.h
+
+## end gnulib module unistr/u16-cmp2
+
+## begin gnulib module unistr/u16-cpy
+
+libunistring_la_SOURCES += unistr/u16-cpy.c
+
+EXTRA_DIST += unistr/u-cpy.h
+
+## end gnulib module unistr/u16-cpy
+
+## begin gnulib module unistr/u16-cpy-alloc
+
+libunistring_la_SOURCES += unistr/u16-cpy-alloc.c
+
+EXTRA_DIST += unistr/u-cpy-alloc.h
+
+## end gnulib module unistr/u16-cpy-alloc
+
+## begin gnulib module unistr/u16-endswith
+
+libunistring_la_SOURCES += unistr/u16-endswith.c
+
+EXTRA_DIST += unistr/u-endswith.h
+
+## end gnulib module unistr/u16-endswith
+
+## begin gnulib module unistr/u16-mblen
+
+libunistring_la_SOURCES += unistr/u16-mblen.c
+
+## end gnulib module unistr/u16-mblen
+
+## begin gnulib module unistr/u16-mbsnlen
+
+libunistring_la_SOURCES += unistr/u16-mbsnlen.c
+
+## end gnulib module unistr/u16-mbsnlen
+
+## begin gnulib module unistr/u16-mbtouc
+
+libunistring_la_SOURCES += unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
+
+## end gnulib module unistr/u16-mbtouc
+
+## begin gnulib module unistr/u16-mbtouc-unsafe
+
+libunistring_la_SOURCES += unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
+
+## end gnulib module unistr/u16-mbtouc-unsafe
+
+## begin gnulib module unistr/u16-mbtoucr
+
+libunistring_la_SOURCES += unistr/u16-mbtoucr.c
+
+## end gnulib module unistr/u16-mbtoucr
+
+## begin gnulib module unistr/u16-move
+
+libunistring_la_SOURCES += unistr/u16-move.c
+
+EXTRA_DIST += unistr/u-move.h
+
+## end gnulib module unistr/u16-move
+
+## begin gnulib module unistr/u16-next
+
+libunistring_la_SOURCES += unistr/u16-next.c
+
+## end gnulib module unistr/u16-next
+
+## begin gnulib module unistr/u16-prev
+
+libunistring_la_SOURCES += unistr/u16-prev.c
+
+## end gnulib module unistr/u16-prev
+
+## begin gnulib module unistr/u16-set
+
+libunistring_la_SOURCES += unistr/u16-set.c
+
+EXTRA_DIST += unistr/u-set.h
+
+## end gnulib module unistr/u16-set
+
+## begin gnulib module unistr/u16-startswith
+
+libunistring_la_SOURCES += unistr/u16-startswith.c
+
+EXTRA_DIST += unistr/u-startswith.h
+
+## end gnulib module unistr/u16-startswith
+
+## begin gnulib module unistr/u16-stpcpy
+
+libunistring_la_SOURCES += unistr/u16-stpcpy.c
+
+EXTRA_DIST += unistr/u-stpcpy.h
+
+## end gnulib module unistr/u16-stpcpy
+
+## begin gnulib module unistr/u16-stpncpy
+
+libunistring_la_SOURCES += unistr/u16-stpncpy.c
+
+EXTRA_DIST += unistr/u-stpncpy.h
+
+## end gnulib module unistr/u16-stpncpy
+
+## begin gnulib module unistr/u16-strcat
+
+libunistring_la_SOURCES += unistr/u16-strcat.c
+
+EXTRA_DIST += unistr/u-strcat.h
+
+## end gnulib module unistr/u16-strcat
+
+## begin gnulib module unistr/u16-strchr
+
+libunistring_la_SOURCES += unistr/u16-strchr.c
+
+## end gnulib module unistr/u16-strchr
+
+## begin gnulib module unistr/u16-strcmp
+
+libunistring_la_SOURCES += unistr/u16-strcmp.c
+
+## end gnulib module unistr/u16-strcmp
+
+## begin gnulib module unistr/u16-strcoll
+
+libunistring_la_SOURCES += unistr/u16-strcoll.c
+
+EXTRA_DIST += unistr/u-strcoll.h
+
+## end gnulib module unistr/u16-strcoll
+
+## begin gnulib module unistr/u16-strcpy
+
+libunistring_la_SOURCES += unistr/u16-strcpy.c
+
+EXTRA_DIST += unistr/u-strcpy.h
+
+## end gnulib module unistr/u16-strcpy
+
+## begin gnulib module unistr/u16-strcspn
+
+libunistring_la_SOURCES += unistr/u16-strcspn.c
+
+EXTRA_DIST += unistr/u-strcspn.h
+
+## end gnulib module unistr/u16-strcspn
+
+## begin gnulib module unistr/u16-strdup
+
+libunistring_la_SOURCES += unistr/u16-strdup.c
+
+EXTRA_DIST += unistr/u-strdup.h
+
+## end gnulib module unistr/u16-strdup
+
+## begin gnulib module unistr/u16-strlen
+
+libunistring_la_SOURCES += unistr/u16-strlen.c
+
+EXTRA_DIST += unistr/u-strlen.h
+
+## end gnulib module unistr/u16-strlen
+
+## begin gnulib module unistr/u16-strmblen
+
+libunistring_la_SOURCES += unistr/u16-strmblen.c
+
+## end gnulib module unistr/u16-strmblen
+
+## begin gnulib module unistr/u16-strmbtouc
+
+libunistring_la_SOURCES += unistr/u16-strmbtouc.c
+
+## end gnulib module unistr/u16-strmbtouc
+
+## begin gnulib module unistr/u16-strncat
+
+libunistring_la_SOURCES += unistr/u16-strncat.c
+
+EXTRA_DIST += unistr/u-strncat.h
+
+## end gnulib module unistr/u16-strncat
+
+## begin gnulib module unistr/u16-strncmp
+
+libunistring_la_SOURCES += unistr/u16-strncmp.c
+
+## end gnulib module unistr/u16-strncmp
+
+## begin gnulib module unistr/u16-strncpy
+
+libunistring_la_SOURCES += unistr/u16-strncpy.c
+
+EXTRA_DIST += unistr/u-strncpy.h
+
+## end gnulib module unistr/u16-strncpy
+
+## begin gnulib module unistr/u16-strnlen
+
+libunistring_la_SOURCES += unistr/u16-strnlen.c
+
+EXTRA_DIST += unistr/u-strnlen.h
+
+## end gnulib module unistr/u16-strnlen
+
+## begin gnulib module unistr/u16-strpbrk
+
+libunistring_la_SOURCES += unistr/u16-strpbrk.c
+
+EXTRA_DIST += unistr/u-strpbrk.h
+
+## end gnulib module unistr/u16-strpbrk
+
+## begin gnulib module unistr/u16-strrchr
+
+libunistring_la_SOURCES += unistr/u16-strrchr.c
+
+## end gnulib module unistr/u16-strrchr
+
+## begin gnulib module unistr/u16-strspn
+
+libunistring_la_SOURCES += unistr/u16-strspn.c
+
+EXTRA_DIST += unistr/u-strspn.h
+
+## end gnulib module unistr/u16-strspn
+
+## begin gnulib module unistr/u16-strstr
+
+libunistring_la_SOURCES += unistr/u16-strstr.c
+
+EXTRA_DIST += unistr/u-strstr.h
+
+## end gnulib module unistr/u16-strstr
+
+## begin gnulib module unistr/u16-strtok
+
+libunistring_la_SOURCES += unistr/u16-strtok.c
+
+EXTRA_DIST += unistr/u-strtok.h
+
+## end gnulib module unistr/u16-strtok
+
+## begin gnulib module unistr/u16-to-u32
+
+libunistring_la_SOURCES += unistr/u16-to-u32.c
+
+## end gnulib module unistr/u16-to-u32
+
+## begin gnulib module unistr/u16-to-u8
+
+libunistring_la_SOURCES += unistr/u16-to-u8.c
+
+## end gnulib module unistr/u16-to-u8
+
+## begin gnulib module unistr/u16-uctomb
+
+libunistring_la_SOURCES += unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
+
+## end gnulib module unistr/u16-uctomb
+
+## begin gnulib module unistr/u32-check
+
+libunistring_la_SOURCES += unistr/u32-check.c
+
+## end gnulib module unistr/u32-check
+
+## begin gnulib module unistr/u32-chr
+
+libunistring_la_SOURCES += unistr/u32-chr.c
+
+## end gnulib module unistr/u32-chr
+
+## begin gnulib module unistr/u32-cmp
+
+libunistring_la_SOURCES += unistr/u32-cmp.c
+
+## end gnulib module unistr/u32-cmp
+
+## begin gnulib module unistr/u32-cmp2
+
+libunistring_la_SOURCES += unistr/u32-cmp2.c
+
+EXTRA_DIST += unistr/u-cmp2.h
+
+## end gnulib module unistr/u32-cmp2
+
+## begin gnulib module unistr/u32-cpy
+
+libunistring_la_SOURCES += unistr/u32-cpy.c
+
+EXTRA_DIST += unistr/u-cpy.h
+
+## end gnulib module unistr/u32-cpy
+
+## begin gnulib module unistr/u32-cpy-alloc
+
+libunistring_la_SOURCES += unistr/u32-cpy-alloc.c
+
+EXTRA_DIST += unistr/u-cpy-alloc.h
+
+## end gnulib module unistr/u32-cpy-alloc
+
+## begin gnulib module unistr/u32-endswith
+
+libunistring_la_SOURCES += unistr/u32-endswith.c
+
+EXTRA_DIST += unistr/u-endswith.h
+
+## end gnulib module unistr/u32-endswith
+
+## begin gnulib module unistr/u32-mblen
+
+libunistring_la_SOURCES += unistr/u32-mblen.c
+
+## end gnulib module unistr/u32-mblen
+
+## begin gnulib module unistr/u32-mbsnlen
+
+libunistring_la_SOURCES += unistr/u32-mbsnlen.c
+
+## end gnulib module unistr/u32-mbsnlen
+
+## begin gnulib module unistr/u32-mbtouc
+
+libunistring_la_SOURCES += unistr/u32-mbtouc.c
+
+## end gnulib module unistr/u32-mbtouc
+
+## begin gnulib module unistr/u32-mbtouc-unsafe
+
+libunistring_la_SOURCES += unistr/u32-mbtouc-unsafe.c
+
+## end gnulib module unistr/u32-mbtouc-unsafe
+
+## begin gnulib module unistr/u32-mbtoucr
+
+libunistring_la_SOURCES += unistr/u32-mbtoucr.c
+
+## end gnulib module unistr/u32-mbtoucr
+
+## begin gnulib module unistr/u32-move
+
+libunistring_la_SOURCES += unistr/u32-move.c
+
+EXTRA_DIST += unistr/u-move.h
+
+## end gnulib module unistr/u32-move
+
+## begin gnulib module unistr/u32-next
+
+libunistring_la_SOURCES += unistr/u32-next.c
+
+## end gnulib module unistr/u32-next
+
+## begin gnulib module unistr/u32-prev
+
+libunistring_la_SOURCES += unistr/u32-prev.c
+
+## end gnulib module unistr/u32-prev
+
+## begin gnulib module unistr/u32-set
+
+libunistring_la_SOURCES += unistr/u32-set.c
+
+EXTRA_DIST += unistr/u-set.h
+
+## end gnulib module unistr/u32-set
+
+## begin gnulib module unistr/u32-startswith
+
+libunistring_la_SOURCES += unistr/u32-startswith.c
+
+EXTRA_DIST += unistr/u-startswith.h
+
+## end gnulib module unistr/u32-startswith
+
+## begin gnulib module unistr/u32-stpcpy
+
+libunistring_la_SOURCES += unistr/u32-stpcpy.c
+
+EXTRA_DIST += unistr/u-stpcpy.h
+
+## end gnulib module unistr/u32-stpcpy
+
+## begin gnulib module unistr/u32-stpncpy
+
+libunistring_la_SOURCES += unistr/u32-stpncpy.c
+
+EXTRA_DIST += unistr/u-stpncpy.h
+
+## end gnulib module unistr/u32-stpncpy
+
+## begin gnulib module unistr/u32-strcat
+
+libunistring_la_SOURCES += unistr/u32-strcat.c
+
+EXTRA_DIST += unistr/u-strcat.h
+
+## end gnulib module unistr/u32-strcat
+
+## begin gnulib module unistr/u32-strchr
+
+libunistring_la_SOURCES += unistr/u32-strchr.c
+
+## end gnulib module unistr/u32-strchr
+
+## begin gnulib module unistr/u32-strcmp
+
+libunistring_la_SOURCES += unistr/u32-strcmp.c
+
+## end gnulib module unistr/u32-strcmp
+
+## begin gnulib module unistr/u32-strcoll
+
+libunistring_la_SOURCES += unistr/u32-strcoll.c
+
+EXTRA_DIST += unistr/u-strcoll.h
+
+## end gnulib module unistr/u32-strcoll
+
+## begin gnulib module unistr/u32-strcpy
+
+libunistring_la_SOURCES += unistr/u32-strcpy.c
+
+EXTRA_DIST += unistr/u-strcpy.h
+
+## end gnulib module unistr/u32-strcpy
+
+## begin gnulib module unistr/u32-strcspn
+
+libunistring_la_SOURCES += unistr/u32-strcspn.c
+
+## end gnulib module unistr/u32-strcspn
+
+## begin gnulib module unistr/u32-strdup
+
+libunistring_la_SOURCES += unistr/u32-strdup.c
+
+EXTRA_DIST += unistr/u-strdup.h
+
+## end gnulib module unistr/u32-strdup
+
+## begin gnulib module unistr/u32-strlen
+
+libunistring_la_SOURCES += unistr/u32-strlen.c
+
+EXTRA_DIST += unistr/u-strlen.h
+
+## end gnulib module unistr/u32-strlen
+
+## begin gnulib module unistr/u32-strmblen
+
+libunistring_la_SOURCES += unistr/u32-strmblen.c
+
+## end gnulib module unistr/u32-strmblen
+
+## begin gnulib module unistr/u32-strmbtouc
+
+libunistring_la_SOURCES += unistr/u32-strmbtouc.c
+
+## end gnulib module unistr/u32-strmbtouc
+
+## begin gnulib module unistr/u32-strncat
+
+libunistring_la_SOURCES += unistr/u32-strncat.c
+
+EXTRA_DIST += unistr/u-strncat.h
+
+## end gnulib module unistr/u32-strncat
+
+## begin gnulib module unistr/u32-strncmp
+
+libunistring_la_SOURCES += unistr/u32-strncmp.c
+
+## end gnulib module unistr/u32-strncmp
+
+## begin gnulib module unistr/u32-strncpy
+
+libunistring_la_SOURCES += unistr/u32-strncpy.c
+
+EXTRA_DIST += unistr/u-strncpy.h
+
+## end gnulib module unistr/u32-strncpy
+
+## begin gnulib module unistr/u32-strnlen
+
+libunistring_la_SOURCES += unistr/u32-strnlen.c
+
+EXTRA_DIST += unistr/u-strnlen.h
+
+## end gnulib module unistr/u32-strnlen
+
+## begin gnulib module unistr/u32-strpbrk
+
+libunistring_la_SOURCES += unistr/u32-strpbrk.c
+
+## end gnulib module unistr/u32-strpbrk
+
+## begin gnulib module unistr/u32-strrchr
+
+libunistring_la_SOURCES += unistr/u32-strrchr.c
+
+## end gnulib module unistr/u32-strrchr
+
+## begin gnulib module unistr/u32-strspn
+
+libunistring_la_SOURCES += unistr/u32-strspn.c
+
+## end gnulib module unistr/u32-strspn
+
+## begin gnulib module unistr/u32-strstr
+
+libunistring_la_SOURCES += unistr/u32-strstr.c
+
+EXTRA_DIST += unistr/u-strstr.h
+
+## end gnulib module unistr/u32-strstr
+
+## begin gnulib module unistr/u32-strtok
+
+libunistring_la_SOURCES += unistr/u32-strtok.c
+
+EXTRA_DIST += unistr/u-strtok.h
+
+## end gnulib module unistr/u32-strtok
+
+## begin gnulib module unistr/u32-to-u16
+
+libunistring_la_SOURCES += unistr/u32-to-u16.c
+
+## end gnulib module unistr/u32-to-u16
+
+## begin gnulib module unistr/u32-to-u8
+
+libunistring_la_SOURCES += unistr/u32-to-u8.c
+
+## end gnulib module unistr/u32-to-u8
+
+## begin gnulib module unistr/u32-uctomb
+
+libunistring_la_SOURCES += unistr/u32-uctomb.c
+
+## end gnulib module unistr/u32-uctomb
+
+## begin gnulib module unistr/u8-check
+
+libunistring_la_SOURCES += unistr/u8-check.c
+
+## end gnulib module unistr/u8-check
+
+## begin gnulib module unistr/u8-chr
+
+libunistring_la_SOURCES += unistr/u8-chr.c
+
+## end gnulib module unistr/u8-chr
+
+## begin gnulib module unistr/u8-cmp
+
+libunistring_la_SOURCES += unistr/u8-cmp.c
+
+## end gnulib module unistr/u8-cmp
+
+## begin gnulib module unistr/u8-cmp2
+
+libunistring_la_SOURCES += unistr/u8-cmp2.c
+
+EXTRA_DIST += unistr/u-cmp2.h
+
+## end gnulib module unistr/u8-cmp2
+
+## begin gnulib module unistr/u8-cpy
+
+libunistring_la_SOURCES += unistr/u8-cpy.c
+
+EXTRA_DIST += unistr/u-cpy.h
+
+## end gnulib module unistr/u8-cpy
+
+## begin gnulib module unistr/u8-cpy-alloc
+
+libunistring_la_SOURCES += unistr/u8-cpy-alloc.c
+
+EXTRA_DIST += unistr/u-cpy-alloc.h
+
+## end gnulib module unistr/u8-cpy-alloc
+
+## begin gnulib module unistr/u8-endswith
+
+libunistring_la_SOURCES += unistr/u8-endswith.c
+
+EXTRA_DIST += unistr/u-endswith.h
+
+## end gnulib module unistr/u8-endswith
+
+## begin gnulib module unistr/u8-mblen
+
+libunistring_la_SOURCES += unistr/u8-mblen.c
+
+## end gnulib module unistr/u8-mblen
+
+## begin gnulib module unistr/u8-mbsnlen
+
+libunistring_la_SOURCES += unistr/u8-mbsnlen.c
+
+## end gnulib module unistr/u8-mbsnlen
+
+## begin gnulib module unistr/u8-mbtouc
+
+libunistring_la_SOURCES += unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
+
+## end gnulib module unistr/u8-mbtouc
+
+## begin gnulib module unistr/u8-mbtouc-unsafe
+
+libunistring_la_SOURCES += unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
+
+## end gnulib module unistr/u8-mbtouc-unsafe
+
+## begin gnulib module unistr/u8-mbtoucr
+
+libunistring_la_SOURCES += unistr/u8-mbtoucr.c
+
+## end gnulib module unistr/u8-mbtoucr
+
+## begin gnulib module unistr/u8-move
+
+libunistring_la_SOURCES += unistr/u8-move.c
+
+EXTRA_DIST += unistr/u-move.h
+
+## end gnulib module unistr/u8-move
+
+## begin gnulib module unistr/u8-next
+
+libunistring_la_SOURCES += unistr/u8-next.c
+
+## end gnulib module unistr/u8-next
+
+## begin gnulib module unistr/u8-prev
+
+libunistring_la_SOURCES += unistr/u8-prev.c
+
+## end gnulib module unistr/u8-prev
+
+## begin gnulib module unistr/u8-set
+
+libunistring_la_SOURCES += unistr/u8-set.c
+
+## end gnulib module unistr/u8-set
+
+## begin gnulib module unistr/u8-startswith
+
+libunistring_la_SOURCES += unistr/u8-startswith.c
+
+EXTRA_DIST += unistr/u-startswith.h
+
+## end gnulib module unistr/u8-startswith
+
+## begin gnulib module unistr/u8-stpcpy
+
+libunistring_la_SOURCES += unistr/u8-stpcpy.c
+
+EXTRA_DIST += unistr/u-stpcpy.h
+
+## end gnulib module unistr/u8-stpcpy
+
+## begin gnulib module unistr/u8-stpncpy
+
+libunistring_la_SOURCES += unistr/u8-stpncpy.c
+
+EXTRA_DIST += unistr/u-stpncpy.h
+
+## end gnulib module unistr/u8-stpncpy
+
+## begin gnulib module unistr/u8-strcat
+
+libunistring_la_SOURCES += unistr/u8-strcat.c
+
+## end gnulib module unistr/u8-strcat
+
+## begin gnulib module unistr/u8-strchr
+
+libunistring_la_SOURCES += unistr/u8-strchr.c
+
+## end gnulib module unistr/u8-strchr
+
+## begin gnulib module unistr/u8-strcmp
+
+libunistring_la_SOURCES += unistr/u8-strcmp.c
+
+## end gnulib module unistr/u8-strcmp
+
+## begin gnulib module unistr/u8-strcoll
+
+libunistring_la_SOURCES += unistr/u8-strcoll.c
+
+EXTRA_DIST += unistr/u-strcoll.h
+
+## end gnulib module unistr/u8-strcoll
+
+## begin gnulib module unistr/u8-strcpy
+
+libunistring_la_SOURCES += unistr/u8-strcpy.c
+
+## end gnulib module unistr/u8-strcpy
+
+## begin gnulib module unistr/u8-strcspn
+
+libunistring_la_SOURCES += unistr/u8-strcspn.c
+
+EXTRA_DIST += unistr/u-strcspn.h
+
+## end gnulib module unistr/u8-strcspn
+
+## begin gnulib module unistr/u8-strdup
+
+libunistring_la_SOURCES += unistr/u8-strdup.c
+
+EXTRA_DIST += unistr/u-strdup.h
+
+## end gnulib module unistr/u8-strdup
+
+## begin gnulib module unistr/u8-strlen
+
+libunistring_la_SOURCES += unistr/u8-strlen.c
+
+## end gnulib module unistr/u8-strlen
+
+## begin gnulib module unistr/u8-strmblen
+
+libunistring_la_SOURCES += unistr/u8-strmblen.c
+
+## end gnulib module unistr/u8-strmblen
+
+## begin gnulib module unistr/u8-strmbtouc
+
+libunistring_la_SOURCES += unistr/u8-strmbtouc.c
+
+## end gnulib module unistr/u8-strmbtouc
+
+## begin gnulib module unistr/u8-strncat
+
+libunistring_la_SOURCES += unistr/u8-strncat.c
+
+## end gnulib module unistr/u8-strncat
+
+## begin gnulib module unistr/u8-strncmp
+
+libunistring_la_SOURCES += unistr/u8-strncmp.c
+
+## end gnulib module unistr/u8-strncmp
+
+## begin gnulib module unistr/u8-strncpy
+
+libunistring_la_SOURCES += unistr/u8-strncpy.c
+
+## end gnulib module unistr/u8-strncpy
+
+## begin gnulib module unistr/u8-strnlen
+
+libunistring_la_SOURCES += unistr/u8-strnlen.c
+
+EXTRA_DIST += unistr/u-strnlen.h
+
+## end gnulib module unistr/u8-strnlen
+
+## begin gnulib module unistr/u8-strpbrk
+
+libunistring_la_SOURCES += unistr/u8-strpbrk.c
+
+EXTRA_DIST += unistr/u-strpbrk.h
+
+## end gnulib module unistr/u8-strpbrk
+
+## begin gnulib module unistr/u8-strrchr
+
+libunistring_la_SOURCES += unistr/u8-strrchr.c
+
+## end gnulib module unistr/u8-strrchr
+
+## begin gnulib module unistr/u8-strspn
+
+libunistring_la_SOURCES += unistr/u8-strspn.c
+
+EXTRA_DIST += unistr/u-strspn.h
+
+## end gnulib module unistr/u8-strspn
+
+## begin gnulib module unistr/u8-strstr
+
+libunistring_la_SOURCES += unistr/u8-strstr.c
+
+EXTRA_DIST += unistr/u-strstr.h
+
+## end gnulib module unistr/u8-strstr
+
+## begin gnulib module unistr/u8-strtok
+
+libunistring_la_SOURCES += unistr/u8-strtok.c
+
+EXTRA_DIST += unistr/u-strtok.h
+
+## end gnulib module unistr/u8-strtok
+
+## begin gnulib module unistr/u8-to-u16
+
+libunistring_la_SOURCES += unistr/u8-to-u16.c
+
+## end gnulib module unistr/u8-to-u16
+
+## begin gnulib module unistr/u8-to-u32
+
+libunistring_la_SOURCES += unistr/u8-to-u32.c
+
+## end gnulib module unistr/u8-to-u32
+
+## begin gnulib module unistr/u8-uctomb
+
+libunistring_la_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+
+## end gnulib module unistr/u8-uctomb
+
+## begin gnulib module unitypes
+
+
+EXTRA_DIST += unitypes.h
+
+## end gnulib module unitypes
+
+## begin gnulib module uniwbrk/base
+
+
+EXTRA_DIST += uniwbrk.h
+
+## end gnulib module uniwbrk/base
+
+## begin gnulib module uniwbrk/table
+
+libunistring_la_SOURCES += uniwbrk/wbrktable.c
+
+EXTRA_DIST += uniwbrk/wbrktable.h
+
+## end gnulib module uniwbrk/table
+
+## begin gnulib module uniwbrk/u16-wordbreaks
+
+libunistring_la_SOURCES += uniwbrk/u16-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/u-wordbreaks.h
+
+## end gnulib module uniwbrk/u16-wordbreaks
+
+## begin gnulib module uniwbrk/u32-wordbreaks
+
+libunistring_la_SOURCES += uniwbrk/u32-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/u-wordbreaks.h
+
+## end gnulib module uniwbrk/u32-wordbreaks
+
+## begin gnulib module uniwbrk/u8-wordbreaks
+
+libunistring_la_SOURCES += uniwbrk/u8-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/u-wordbreaks.h
+
+## end gnulib module uniwbrk/u8-wordbreaks
+
+## begin gnulib module uniwbrk/ulc-wordbreaks
+
+libunistring_la_SOURCES += uniwbrk/ulc-wordbreaks.c
+
+## end gnulib module uniwbrk/ulc-wordbreaks
+
+## begin gnulib module uniwbrk/wordbreak-property
+
+libunistring_la_SOURCES += uniwbrk/wordbreak-property.c
+
+EXTRA_DIST += uniwbrk/wbrkprop.h
+
+## end gnulib module uniwbrk/wordbreak-property
+
+## begin gnulib module uniwidth/base
+
+
+EXTRA_DIST += localcharset.h uniwidth.h
+
+## end gnulib module uniwidth/base
+
+## begin gnulib module uniwidth/u16-strwidth
+
+libunistring_la_SOURCES += uniwidth/u16-strwidth.c
+
+## end gnulib module uniwidth/u16-strwidth
+
+## begin gnulib module uniwidth/u16-width
+
+libunistring_la_SOURCES += uniwidth/u16-width.c
+
+## end gnulib module uniwidth/u16-width
+
+## begin gnulib module uniwidth/u32-strwidth
+
+libunistring_la_SOURCES += uniwidth/u32-strwidth.c
+
+## end gnulib module uniwidth/u32-strwidth
+
+## begin gnulib module uniwidth/u32-width
+
+libunistring_la_SOURCES += uniwidth/u32-width.c
+
+## end gnulib module uniwidth/u32-width
+
+## begin gnulib module uniwidth/u8-strwidth
+
+libunistring_la_SOURCES += uniwidth/u8-strwidth.c
+
+## end gnulib module uniwidth/u8-strwidth
+
+## begin gnulib module uniwidth/u8-width
+
+libunistring_la_SOURCES += uniwidth/u8-width.c
+
+## end gnulib module uniwidth/u8-width
+
+## begin gnulib module uniwidth/width
+
+libunistring_la_SOURCES += uniwidth/width.c
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end gnulib module uniwidth/width
+
+## begin gnulib module verify
+
+libunistring_la_SOURCES += verify.h
+
+## end gnulib module verify
+
+## begin gnulib module wchar
+
+BUILT_SOURCES += $(WCHAR_H)
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar.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_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
+ -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
+ -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
+ -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
+ -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
+ -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
+ -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
+ -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
+ -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
+ -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
+ -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
+ -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+ -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
+ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
+ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
+ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
+ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
+ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
+ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
+ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
+ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
+ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
+ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
+ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
+ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
+ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
+ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
+ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
+ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
+ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/wchar.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar.in.h
+
+## end gnulib module wchar
+
+## begin gnulib module wctype
+
+BUILT_SOURCES += $(WCTYPE_H)
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ < $(srcdir)/wctype.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += wctype.h wctype.h-t
+
+EXTRA_DIST += wctype.in.h
+
+## end gnulib module wctype
+
+## begin gnulib module wcwidth
+
+
+EXTRA_DIST += wcwidth.c
+
+EXTRA_libunistring_la_SOURCES += wcwidth.c
+
+## end gnulib module wcwidth
+
+## begin gnulib module xsize
+
+libunistring_la_SOURCES += xsize.h
+
+## end gnulib module xsize
+
+
+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/lib/Makefile.in b/lib/Makefile.in
new file mode 100644
index 0000000..a8cc568
--- /dev/null
+++ b/lib/Makefile.in
@@ -0,0 +1,4285 @@
+# 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 = $(nobase_include_HEADERS) $(noinst_HEADERS) \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.gnulib \
+ $(srcdir)/Makefile.in $(srcdir)/exported.sh.in
+@GL_COND_LIBTOOL_TRUE@am__append_1 = $(LTLIBICONV)
+
+# Tell the mingw or Cygwin linker which symbols to export.
+@WOE32DLL_TRUE@am__append_2 = ../woe32dll/unistring-exports.c
+@WOE32DLL_TRUE@am__append_3 = -Wl,--export-all-symbols
+@WOE32_TRUE@am__append_4 = libunistring.res.lo
+subdir = lib
+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 = exported.sh
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
+ "$(DESTDIR)$(includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+@WOE32_TRUE@am__DEPENDENCIES_2 = libunistring.res.lo
+am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
+ c-strcasecmp.c c-strncasecmp.c fseterr.c localcharset.h \
+ localcharset.c localename.c malloca.c mbchar.c mbiter.h \
+ mbsnlen.c memcmp2.c memxfrm.c minmax.h printf-frexp.c \
+ printf-frexpl.c size_max.h striconveh.h striconveh.c \
+ striconveha.h striconveha.c unicase/cased.c \
+ unicase/empty-prefix-context.c unicase/empty-suffix-context.c \
+ unicase/ignorable.c unicase/locale-language.c \
+ unicase/special-casing.c unicase/tocasefold.c \
+ unicase/tolower.c unicase/totitle.c unicase/toupper.c \
+ unicase/u16-casecmp.c unicase/u16-casecoll.c \
+ unicase/u16-casefold.c unicase/u16-casemap.c \
+ unicase/u16-casexfrm.c unicase/u16-ct-casefold.c \
+ unicase/u16-ct-tolower.c unicase/u16-ct-totitle.c \
+ unicase/u16-ct-toupper.c unicase/u16-is-cased.c \
+ unicase/u16-is-casefolded.c unicase/u16-is-invariant.c \
+ unicase/u16-is-lowercase.c unicase/u16-is-titlecase.c \
+ unicase/u16-is-uppercase.c unicase/u16-tolower.c \
+ unicase/u16-totitle.c unicase/u16-toupper.c \
+ unicase/u32-casecmp.c unicase/u32-casecoll.c \
+ unicase/u32-casefold.c unicase/u32-casemap.c \
+ unicase/u32-casexfrm.c unicase/u32-ct-casefold.c \
+ unicase/u32-ct-tolower.c unicase/u32-ct-totitle.c \
+ unicase/u32-ct-toupper.c unicase/u32-is-cased.c \
+ unicase/u32-is-casefolded.c unicase/u32-is-invariant.c \
+ unicase/u32-is-lowercase.c unicase/u32-is-titlecase.c \
+ unicase/u32-is-uppercase.c unicase/u32-tolower.c \
+ unicase/u32-totitle.c unicase/u32-toupper.c \
+ unicase/u8-casecmp.c unicase/u8-casecoll.c \
+ unicase/u8-casefold.c unicase/u8-casemap.c \
+ unicase/u8-casexfrm.c unicase/u8-ct-casefold.c \
+ unicase/u8-ct-tolower.c unicase/u8-ct-totitle.c \
+ unicase/u8-ct-toupper.c unicase/u8-is-cased.c \
+ unicase/u8-is-casefolded.c unicase/u8-is-invariant.c \
+ unicase/u8-is-lowercase.c unicase/u8-is-titlecase.c \
+ unicase/u8-is-uppercase.c unicase/u8-tolower.c \
+ unicase/u8-totitle.c unicase/u8-toupper.c \
+ unicase/ulc-casecmp.c unicase/ulc-casecoll.c \
+ unicase/ulc-casexfrm.c uniconv/u16-conv-from-enc.c \
+ uniconv/u16-conv-to-enc.c uniconv/u16-strconv-from-enc.c \
+ uniconv/u16-strconv-from-locale.c uniconv/u16-strconv-to-enc.c \
+ uniconv/u16-strconv-to-locale.c uniconv/u32-conv-from-enc.c \
+ uniconv/u32-conv-to-enc.c uniconv/u32-strconv-from-enc.c \
+ uniconv/u32-strconv-from-locale.c uniconv/u32-strconv-to-enc.c \
+ uniconv/u32-strconv-to-locale.c uniconv/u8-conv-from-enc.c \
+ uniconv/u8-conv-to-enc.c uniconv/u8-strconv-from-enc.c \
+ uniconv/u8-strconv-from-locale.c uniconv/u8-strconv-to-enc.c \
+ uniconv/u8-strconv-to-locale.c unictype/bidi_byname.c \
+ unictype/bidi_name.c unictype/bidi_of.c unictype/bidi_test.c \
+ unictype/blocks.c unictype/block_test.c unictype/categ_C.c \
+ unictype/categ_Cc.c unictype/categ_Cf.c unictype/categ_Cn.c \
+ unictype/categ_Co.c unictype/categ_Cs.c unictype/categ_L.c \
+ unictype/categ_Ll.c unictype/categ_Lm.c unictype/categ_Lo.c \
+ unictype/categ_Lt.c unictype/categ_Lu.c unictype/categ_M.c \
+ unictype/categ_Mc.c unictype/categ_Me.c unictype/categ_Mn.c \
+ unictype/categ_N.c unictype/categ_Nd.c unictype/categ_Nl.c \
+ unictype/categ_No.c unictype/categ_P.c unictype/categ_Pc.c \
+ unictype/categ_Pd.c unictype/categ_Pe.c unictype/categ_Pf.c \
+ unictype/categ_Pi.c unictype/categ_Po.c unictype/categ_Ps.c \
+ unictype/categ_S.c unictype/categ_Sc.c unictype/categ_Sk.c \
+ unictype/categ_Sm.c unictype/categ_So.c unictype/categ_Z.c \
+ unictype/categ_Zl.c unictype/categ_Zp.c unictype/categ_Zs.c \
+ unictype/categ_and.c unictype/categ_and_not.c \
+ unictype/categ_byname.c unictype/categ_name.c \
+ unictype/categ_none.c unictype/categ_of.c unictype/categ_or.c \
+ unictype/categ_test.c unictype/combining.c \
+ unictype/ctype_alnum.c unictype/ctype_alpha.c \
+ unictype/ctype_blank.c unictype/ctype_cntrl.c \
+ unictype/ctype_digit.c unictype/ctype_graph.c \
+ unictype/ctype_lower.c unictype/ctype_print.c \
+ unictype/ctype_punct.c unictype/ctype_space.c \
+ unictype/ctype_upper.c unictype/ctype_xdigit.c \
+ unictype/decdigit.c unictype/digit.c unictype/mirror.c \
+ unictype/numeric.c unictype/pr_alphabetic.c \
+ unictype/pr_ascii_hex_digit.c unictype/pr_bidi_arabic_digit.c \
+ unictype/pr_bidi_arabic_right_to_left.c \
+ unictype/pr_bidi_block_separator.c \
+ unictype/pr_bidi_boundary_neutral.c \
+ unictype/pr_bidi_common_separator.c unictype/pr_bidi_control.c \
+ unictype/pr_bidi_embedding_or_override.c \
+ unictype/pr_bidi_eur_num_separator.c \
+ unictype/pr_bidi_eur_num_terminator.c \
+ unictype/pr_bidi_european_digit.c \
+ unictype/pr_bidi_hebrew_right_to_left.c \
+ unictype/pr_bidi_left_to_right.c \
+ unictype/pr_bidi_non_spacing_mark.c \
+ unictype/pr_bidi_other_neutral.c unictype/pr_bidi_pdf.c \
+ unictype/pr_bidi_segment_separator.c \
+ unictype/pr_bidi_whitespace.c unictype/pr_byname.c \
+ unictype/pr_combining.c unictype/pr_composite.c \
+ unictype/pr_currency_symbol.c unictype/pr_dash.c \
+ unictype/pr_decimal_digit.c \
+ unictype/pr_default_ignorable_code_point.c \
+ unictype/pr_deprecated.c unictype/pr_diacritic.c \
+ unictype/pr_extender.c unictype/pr_format_control.c \
+ unictype/pr_grapheme_base.c unictype/pr_grapheme_extend.c \
+ unictype/pr_grapheme_link.c unictype/pr_hex_digit.c \
+ unictype/pr_hyphen.c unictype/pr_id_continue.c \
+ unictype/pr_id_start.c unictype/pr_ideographic.c \
+ unictype/pr_ids_binary_operator.c \
+ unictype/pr_ids_trinary_operator.c \
+ unictype/pr_ignorable_control.c unictype/pr_iso_control.c \
+ unictype/pr_join_control.c unictype/pr_left_of_pair.c \
+ unictype/pr_line_separator.c \
+ unictype/pr_logical_order_exception.c unictype/pr_lowercase.c \
+ unictype/pr_math.c unictype/pr_non_break.c \
+ unictype/pr_not_a_character.c unictype/pr_numeric.c \
+ unictype/pr_other_alphabetic.c \
+ unictype/pr_other_default_ignorable_code_point.c \
+ unictype/pr_other_grapheme_extend.c \
+ unictype/pr_other_id_continue.c unictype/pr_other_id_start.c \
+ unictype/pr_other_lowercase.c unictype/pr_other_math.c \
+ unictype/pr_other_uppercase.c unictype/pr_paired_punctuation.c \
+ unictype/pr_paragraph_separator.c unictype/pr_pattern_syntax.c \
+ unictype/pr_pattern_white_space.c unictype/pr_private_use.c \
+ unictype/pr_punctuation.c unictype/pr_quotation_mark.c \
+ unictype/pr_radical.c unictype/pr_sentence_terminal.c \
+ unictype/pr_soft_dotted.c unictype/pr_space.c \
+ unictype/pr_terminal_punctuation.c unictype/pr_test.c \
+ unictype/pr_titlecase.c unictype/pr_unassigned_code_value.c \
+ unictype/pr_unified_ideograph.c unictype/pr_uppercase.c \
+ unictype/pr_variation_selector.c unictype/pr_white_space.c \
+ unictype/pr_xid_continue.c unictype/pr_xid_start.c \
+ unictype/pr_zero_width.c unictype/scripts.c \
+ unictype/sy_c_ident.c unictype/sy_c_whitespace.c \
+ unictype/sy_java_ident.c unictype/sy_java_whitespace.c \
+ unilbrk/lbrktables.c unilbrk/u16-possible-linebreaks.c \
+ unilbrk/u16-width-linebreaks.c \
+ unilbrk/u32-possible-linebreaks.c \
+ unilbrk/u32-width-linebreaks.c \
+ unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c \
+ unilbrk/ulc-common.c unilbrk/ulc-possible-linebreaks.c \
+ unilbrk/ulc-width-linebreaks.c uniname/uniname.c \
+ uninorm/canonical-decomposition.c \
+ uninorm/compat-decomposition.c uninorm/composition.c \
+ uninorm/decompose-internal.c uninorm/decomposing-form.c \
+ uninorm/decomposition.c uninorm/decomposition-table.c \
+ uninorm/uninorm-filter.c uninorm/nfc.c uninorm/nfd.c \
+ uninorm/nfkc.c uninorm/nfkd.c uninorm/u16-normalize.c \
+ uninorm/u16-normcmp.c uninorm/u16-normcoll.c \
+ uninorm/u16-normxfrm.c uninorm/u32-normalize.c \
+ uninorm/u32-normcmp.c uninorm/u32-normcoll.c \
+ uninorm/u32-normxfrm.c uninorm/u8-normalize.c \
+ uninorm/u8-normcmp.c uninorm/u8-normcoll.c \
+ uninorm/u8-normxfrm.c unistdio/u-printf-args.c \
+ unistdio/u16-asnprintf.c unistdio/u16-asprintf.c \
+ unistdio/u16-printf-parse.c unistdio/u16-snprintf.c \
+ unistdio/u16-sprintf.c unistdio/u16-u16-asnprintf.c \
+ unistdio/u16-u16-asprintf.c unistdio/u16-u16-snprintf.c \
+ unistdio/u16-u16-sprintf.c unistdio/u16-u16-vasnprintf.c \
+ unistdio/u16-u16-vasprintf.c unistdio/u16-u16-vsnprintf.c \
+ unistdio/u16-u16-vsprintf.c unistdio/u16-vasnprintf.c \
+ unistdio/u16-vasprintf.c unistdio/u16-vsnprintf.c \
+ unistdio/u16-vsprintf.c unistdio/u32-asnprintf.c \
+ unistdio/u32-asprintf.c unistdio/u32-printf-parse.c \
+ unistdio/u32-snprintf.c unistdio/u32-sprintf.c \
+ unistdio/u32-u32-asnprintf.c unistdio/u32-u32-asprintf.c \
+ unistdio/u32-u32-snprintf.c unistdio/u32-u32-sprintf.c \
+ unistdio/u32-u32-vasnprintf.c unistdio/u32-u32-vasprintf.c \
+ unistdio/u32-u32-vsnprintf.c unistdio/u32-u32-vsprintf.c \
+ unistdio/u32-vasnprintf.c unistdio/u32-vasprintf.c \
+ unistdio/u32-vsnprintf.c unistdio/u32-vsprintf.c \
+ unistdio/u8-asnprintf.c unistdio/u8-asprintf.c \
+ unistdio/u8-printf-parse.c unistdio/u8-snprintf.c \
+ unistdio/u8-sprintf.c unistdio/u8-u8-asnprintf.c \
+ unistdio/u8-u8-asprintf.c unistdio/u8-u8-snprintf.c \
+ unistdio/u8-u8-sprintf.c unistdio/u8-u8-vasnprintf.c \
+ unistdio/u8-u8-vasprintf.c unistdio/u8-u8-vsnprintf.c \
+ unistdio/u8-u8-vsprintf.c unistdio/u8-vasnprintf.c \
+ unistdio/u8-vasprintf.c unistdio/u8-vsnprintf.c \
+ unistdio/u8-vsprintf.c unistdio/ulc-asnprintf.c \
+ unistdio/ulc-asprintf.c unistdio/ulc-fprintf.c \
+ unistdio/ulc-printf-parse.c unistdio/ulc-snprintf.c \
+ unistdio/ulc-sprintf.c unistdio/ulc-vasnprintf.c \
+ unistdio/ulc-vasprintf.c unistdio/ulc-vfprintf.c \
+ unistdio/ulc-vsnprintf.c unistdio/ulc-vsprintf.c \
+ unistr/u16-check.c unistr/u16-chr.c unistr/u16-cmp.c \
+ unistr/u16-cmp2.c unistr/u16-cpy.c unistr/u16-cpy-alloc.c \
+ unistr/u16-endswith.c unistr/u16-mblen.c unistr/u16-mbsnlen.c \
+ unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c \
+ unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c \
+ unistr/u16-mbtoucr.c unistr/u16-move.c unistr/u16-next.c \
+ unistr/u16-prev.c unistr/u16-set.c unistr/u16-startswith.c \
+ unistr/u16-stpcpy.c unistr/u16-stpncpy.c unistr/u16-strcat.c \
+ unistr/u16-strchr.c unistr/u16-strcmp.c unistr/u16-strcoll.c \
+ unistr/u16-strcpy.c unistr/u16-strcspn.c unistr/u16-strdup.c \
+ unistr/u16-strlen.c unistr/u16-strmblen.c \
+ unistr/u16-strmbtouc.c unistr/u16-strncat.c \
+ unistr/u16-strncmp.c unistr/u16-strncpy.c unistr/u16-strnlen.c \
+ unistr/u16-strpbrk.c unistr/u16-strrchr.c unistr/u16-strspn.c \
+ unistr/u16-strstr.c unistr/u16-strtok.c unistr/u16-to-u32.c \
+ unistr/u16-to-u8.c unistr/u16-uctomb.c unistr/u16-uctomb-aux.c \
+ unistr/u32-check.c unistr/u32-chr.c unistr/u32-cmp.c \
+ unistr/u32-cmp2.c unistr/u32-cpy.c unistr/u32-cpy-alloc.c \
+ unistr/u32-endswith.c unistr/u32-mblen.c unistr/u32-mbsnlen.c \
+ unistr/u32-mbtouc.c unistr/u32-mbtouc-unsafe.c \
+ unistr/u32-mbtoucr.c unistr/u32-move.c unistr/u32-next.c \
+ unistr/u32-prev.c unistr/u32-set.c unistr/u32-startswith.c \
+ unistr/u32-stpcpy.c unistr/u32-stpncpy.c unistr/u32-strcat.c \
+ unistr/u32-strchr.c unistr/u32-strcmp.c unistr/u32-strcoll.c \
+ unistr/u32-strcpy.c unistr/u32-strcspn.c unistr/u32-strdup.c \
+ unistr/u32-strlen.c unistr/u32-strmblen.c \
+ unistr/u32-strmbtouc.c unistr/u32-strncat.c \
+ unistr/u32-strncmp.c unistr/u32-strncpy.c unistr/u32-strnlen.c \
+ unistr/u32-strpbrk.c unistr/u32-strrchr.c unistr/u32-strspn.c \
+ unistr/u32-strstr.c unistr/u32-strtok.c unistr/u32-to-u16.c \
+ unistr/u32-to-u8.c unistr/u32-uctomb.c unistr/u8-check.c \
+ unistr/u8-chr.c unistr/u8-cmp.c unistr/u8-cmp2.c \
+ unistr/u8-cpy.c unistr/u8-cpy-alloc.c unistr/u8-endswith.c \
+ unistr/u8-mblen.c unistr/u8-mbsnlen.c unistr/u8-mbtouc.c \
+ unistr/u8-mbtouc-aux.c unistr/u8-mbtouc-unsafe.c \
+ unistr/u8-mbtouc-unsafe-aux.c unistr/u8-mbtoucr.c \
+ unistr/u8-move.c unistr/u8-next.c unistr/u8-prev.c \
+ unistr/u8-set.c unistr/u8-startswith.c unistr/u8-stpcpy.c \
+ unistr/u8-stpncpy.c unistr/u8-strcat.c unistr/u8-strchr.c \
+ unistr/u8-strcmp.c unistr/u8-strcoll.c unistr/u8-strcpy.c \
+ unistr/u8-strcspn.c unistr/u8-strdup.c unistr/u8-strlen.c \
+ unistr/u8-strmblen.c unistr/u8-strmbtouc.c unistr/u8-strncat.c \
+ unistr/u8-strncmp.c unistr/u8-strncpy.c unistr/u8-strnlen.c \
+ unistr/u8-strpbrk.c unistr/u8-strrchr.c unistr/u8-strspn.c \
+ unistr/u8-strstr.c unistr/u8-strtok.c unistr/u8-to-u16.c \
+ unistr/u8-to-u32.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c \
+ uniwbrk/wbrktable.c uniwbrk/u16-wordbreaks.c \
+ uniwbrk/u32-wordbreaks.c uniwbrk/u8-wordbreaks.c \
+ uniwbrk/ulc-wordbreaks.c uniwbrk/wordbreak-property.c \
+ uniwidth/u16-strwidth.c uniwidth/u16-width.c \
+ uniwidth/u32-strwidth.c uniwidth/u32-width.c \
+ uniwidth/u8-strwidth.c uniwidth/u8-width.c uniwidth/width.c \
+ verify.h xsize.h version.c ../woe32dll/unistring-exports.c
+am__dirstamp = $(am__leading_dot)dirstamp
+@WOE32DLL_TRUE@am__objects_1 = ../woe32dll/unistring-exports.lo
+am_libunistring_la_OBJECTS = c-ctype.lo c-strcasecmp.lo \
+ c-strncasecmp.lo fseterr.lo localcharset.lo localename.lo \
+ malloca.lo mbchar.lo mbsnlen.lo memcmp2.lo memxfrm.lo \
+ printf-frexp.lo printf-frexpl.lo striconveh.lo striconveha.lo \
+ unicase/cased.lo unicase/empty-prefix-context.lo \
+ unicase/empty-suffix-context.lo unicase/ignorable.lo \
+ unicase/locale-language.lo unicase/special-casing.lo \
+ unicase/tocasefold.lo unicase/tolower.lo unicase/totitle.lo \
+ unicase/toupper.lo unicase/u16-casecmp.lo \
+ unicase/u16-casecoll.lo unicase/u16-casefold.lo \
+ unicase/u16-casemap.lo unicase/u16-casexfrm.lo \
+ unicase/u16-ct-casefold.lo unicase/u16-ct-tolower.lo \
+ unicase/u16-ct-totitle.lo unicase/u16-ct-toupper.lo \
+ unicase/u16-is-cased.lo unicase/u16-is-casefolded.lo \
+ unicase/u16-is-invariant.lo unicase/u16-is-lowercase.lo \
+ unicase/u16-is-titlecase.lo unicase/u16-is-uppercase.lo \
+ unicase/u16-tolower.lo unicase/u16-totitle.lo \
+ unicase/u16-toupper.lo unicase/u32-casecmp.lo \
+ unicase/u32-casecoll.lo unicase/u32-casefold.lo \
+ unicase/u32-casemap.lo unicase/u32-casexfrm.lo \
+ unicase/u32-ct-casefold.lo unicase/u32-ct-tolower.lo \
+ unicase/u32-ct-totitle.lo unicase/u32-ct-toupper.lo \
+ unicase/u32-is-cased.lo unicase/u32-is-casefolded.lo \
+ unicase/u32-is-invariant.lo unicase/u32-is-lowercase.lo \
+ unicase/u32-is-titlecase.lo unicase/u32-is-uppercase.lo \
+ unicase/u32-tolower.lo unicase/u32-totitle.lo \
+ unicase/u32-toupper.lo unicase/u8-casecmp.lo \
+ unicase/u8-casecoll.lo unicase/u8-casefold.lo \
+ unicase/u8-casemap.lo unicase/u8-casexfrm.lo \
+ unicase/u8-ct-casefold.lo unicase/u8-ct-tolower.lo \
+ unicase/u8-ct-totitle.lo unicase/u8-ct-toupper.lo \
+ unicase/u8-is-cased.lo unicase/u8-is-casefolded.lo \
+ unicase/u8-is-invariant.lo unicase/u8-is-lowercase.lo \
+ unicase/u8-is-titlecase.lo unicase/u8-is-uppercase.lo \
+ unicase/u8-tolower.lo unicase/u8-totitle.lo \
+ unicase/u8-toupper.lo unicase/ulc-casecmp.lo \
+ unicase/ulc-casecoll.lo unicase/ulc-casexfrm.lo \
+ uniconv/u16-conv-from-enc.lo uniconv/u16-conv-to-enc.lo \
+ uniconv/u16-strconv-from-enc.lo \
+ uniconv/u16-strconv-from-locale.lo \
+ uniconv/u16-strconv-to-enc.lo uniconv/u16-strconv-to-locale.lo \
+ uniconv/u32-conv-from-enc.lo uniconv/u32-conv-to-enc.lo \
+ uniconv/u32-strconv-from-enc.lo \
+ uniconv/u32-strconv-from-locale.lo \
+ uniconv/u32-strconv-to-enc.lo uniconv/u32-strconv-to-locale.lo \
+ uniconv/u8-conv-from-enc.lo uniconv/u8-conv-to-enc.lo \
+ uniconv/u8-strconv-from-enc.lo \
+ uniconv/u8-strconv-from-locale.lo uniconv/u8-strconv-to-enc.lo \
+ uniconv/u8-strconv-to-locale.lo unictype/bidi_byname.lo \
+ unictype/bidi_name.lo unictype/bidi_of.lo \
+ unictype/bidi_test.lo unictype/blocks.lo \
+ unictype/block_test.lo unictype/categ_C.lo \
+ unictype/categ_Cc.lo unictype/categ_Cf.lo unictype/categ_Cn.lo \
+ unictype/categ_Co.lo unictype/categ_Cs.lo unictype/categ_L.lo \
+ unictype/categ_Ll.lo unictype/categ_Lm.lo unictype/categ_Lo.lo \
+ unictype/categ_Lt.lo unictype/categ_Lu.lo unictype/categ_M.lo \
+ unictype/categ_Mc.lo unictype/categ_Me.lo unictype/categ_Mn.lo \
+ unictype/categ_N.lo unictype/categ_Nd.lo unictype/categ_Nl.lo \
+ unictype/categ_No.lo unictype/categ_P.lo unictype/categ_Pc.lo \
+ unictype/categ_Pd.lo unictype/categ_Pe.lo unictype/categ_Pf.lo \
+ unictype/categ_Pi.lo unictype/categ_Po.lo unictype/categ_Ps.lo \
+ unictype/categ_S.lo unictype/categ_Sc.lo unictype/categ_Sk.lo \
+ unictype/categ_Sm.lo unictype/categ_So.lo unictype/categ_Z.lo \
+ unictype/categ_Zl.lo unictype/categ_Zp.lo unictype/categ_Zs.lo \
+ unictype/categ_and.lo unictype/categ_and_not.lo \
+ unictype/categ_byname.lo unictype/categ_name.lo \
+ unictype/categ_none.lo unictype/categ_of.lo \
+ unictype/categ_or.lo unictype/categ_test.lo \
+ unictype/combining.lo unictype/ctype_alnum.lo \
+ unictype/ctype_alpha.lo unictype/ctype_blank.lo \
+ unictype/ctype_cntrl.lo unictype/ctype_digit.lo \
+ unictype/ctype_graph.lo unictype/ctype_lower.lo \
+ unictype/ctype_print.lo unictype/ctype_punct.lo \
+ unictype/ctype_space.lo unictype/ctype_upper.lo \
+ unictype/ctype_xdigit.lo unictype/decdigit.lo \
+ unictype/digit.lo unictype/mirror.lo unictype/numeric.lo \
+ unictype/pr_alphabetic.lo unictype/pr_ascii_hex_digit.lo \
+ unictype/pr_bidi_arabic_digit.lo \
+ unictype/pr_bidi_arabic_right_to_left.lo \
+ unictype/pr_bidi_block_separator.lo \
+ unictype/pr_bidi_boundary_neutral.lo \
+ unictype/pr_bidi_common_separator.lo \
+ unictype/pr_bidi_control.lo \
+ unictype/pr_bidi_embedding_or_override.lo \
+ unictype/pr_bidi_eur_num_separator.lo \
+ unictype/pr_bidi_eur_num_terminator.lo \
+ unictype/pr_bidi_european_digit.lo \
+ unictype/pr_bidi_hebrew_right_to_left.lo \
+ unictype/pr_bidi_left_to_right.lo \
+ unictype/pr_bidi_non_spacing_mark.lo \
+ unictype/pr_bidi_other_neutral.lo unictype/pr_bidi_pdf.lo \
+ unictype/pr_bidi_segment_separator.lo \
+ unictype/pr_bidi_whitespace.lo unictype/pr_byname.lo \
+ unictype/pr_combining.lo unictype/pr_composite.lo \
+ unictype/pr_currency_symbol.lo unictype/pr_dash.lo \
+ unictype/pr_decimal_digit.lo \
+ unictype/pr_default_ignorable_code_point.lo \
+ unictype/pr_deprecated.lo unictype/pr_diacritic.lo \
+ unictype/pr_extender.lo unictype/pr_format_control.lo \
+ unictype/pr_grapheme_base.lo unictype/pr_grapheme_extend.lo \
+ unictype/pr_grapheme_link.lo unictype/pr_hex_digit.lo \
+ unictype/pr_hyphen.lo unictype/pr_id_continue.lo \
+ unictype/pr_id_start.lo unictype/pr_ideographic.lo \
+ unictype/pr_ids_binary_operator.lo \
+ unictype/pr_ids_trinary_operator.lo \
+ unictype/pr_ignorable_control.lo unictype/pr_iso_control.lo \
+ unictype/pr_join_control.lo unictype/pr_left_of_pair.lo \
+ unictype/pr_line_separator.lo \
+ unictype/pr_logical_order_exception.lo \
+ unictype/pr_lowercase.lo unictype/pr_math.lo \
+ unictype/pr_non_break.lo unictype/pr_not_a_character.lo \
+ unictype/pr_numeric.lo unictype/pr_other_alphabetic.lo \
+ unictype/pr_other_default_ignorable_code_point.lo \
+ unictype/pr_other_grapheme_extend.lo \
+ unictype/pr_other_id_continue.lo unictype/pr_other_id_start.lo \
+ unictype/pr_other_lowercase.lo unictype/pr_other_math.lo \
+ unictype/pr_other_uppercase.lo \
+ unictype/pr_paired_punctuation.lo \
+ unictype/pr_paragraph_separator.lo \
+ unictype/pr_pattern_syntax.lo \
+ unictype/pr_pattern_white_space.lo unictype/pr_private_use.lo \
+ unictype/pr_punctuation.lo unictype/pr_quotation_mark.lo \
+ unictype/pr_radical.lo unictype/pr_sentence_terminal.lo \
+ unictype/pr_soft_dotted.lo unictype/pr_space.lo \
+ unictype/pr_terminal_punctuation.lo unictype/pr_test.lo \
+ unictype/pr_titlecase.lo unictype/pr_unassigned_code_value.lo \
+ unictype/pr_unified_ideograph.lo unictype/pr_uppercase.lo \
+ unictype/pr_variation_selector.lo unictype/pr_white_space.lo \
+ unictype/pr_xid_continue.lo unictype/pr_xid_start.lo \
+ unictype/pr_zero_width.lo unictype/scripts.lo \
+ unictype/sy_c_ident.lo unictype/sy_c_whitespace.lo \
+ unictype/sy_java_ident.lo unictype/sy_java_whitespace.lo \
+ unilbrk/lbrktables.lo unilbrk/u16-possible-linebreaks.lo \
+ unilbrk/u16-width-linebreaks.lo \
+ unilbrk/u32-possible-linebreaks.lo \
+ unilbrk/u32-width-linebreaks.lo \
+ unilbrk/u8-possible-linebreaks.lo \
+ unilbrk/u8-width-linebreaks.lo unilbrk/ulc-common.lo \
+ unilbrk/ulc-possible-linebreaks.lo \
+ unilbrk/ulc-width-linebreaks.lo uniname/uniname.lo \
+ uninorm/canonical-decomposition.lo \
+ uninorm/compat-decomposition.lo uninorm/composition.lo \
+ uninorm/decompose-internal.lo uninorm/decomposing-form.lo \
+ uninorm/decomposition.lo uninorm/decomposition-table.lo \
+ uninorm/uninorm-filter.lo uninorm/nfc.lo uninorm/nfd.lo \
+ uninorm/nfkc.lo uninorm/nfkd.lo uninorm/u16-normalize.lo \
+ uninorm/u16-normcmp.lo uninorm/u16-normcoll.lo \
+ uninorm/u16-normxfrm.lo uninorm/u32-normalize.lo \
+ uninorm/u32-normcmp.lo uninorm/u32-normcoll.lo \
+ uninorm/u32-normxfrm.lo uninorm/u8-normalize.lo \
+ uninorm/u8-normcmp.lo uninorm/u8-normcoll.lo \
+ uninorm/u8-normxfrm.lo unistdio/u-printf-args.lo \
+ unistdio/u16-asnprintf.lo unistdio/u16-asprintf.lo \
+ unistdio/u16-printf-parse.lo unistdio/u16-snprintf.lo \
+ unistdio/u16-sprintf.lo unistdio/u16-u16-asnprintf.lo \
+ unistdio/u16-u16-asprintf.lo unistdio/u16-u16-snprintf.lo \
+ unistdio/u16-u16-sprintf.lo unistdio/u16-u16-vasnprintf.lo \
+ unistdio/u16-u16-vasprintf.lo unistdio/u16-u16-vsnprintf.lo \
+ unistdio/u16-u16-vsprintf.lo unistdio/u16-vasnprintf.lo \
+ unistdio/u16-vasprintf.lo unistdio/u16-vsnprintf.lo \
+ unistdio/u16-vsprintf.lo unistdio/u32-asnprintf.lo \
+ unistdio/u32-asprintf.lo unistdio/u32-printf-parse.lo \
+ unistdio/u32-snprintf.lo unistdio/u32-sprintf.lo \
+ unistdio/u32-u32-asnprintf.lo unistdio/u32-u32-asprintf.lo \
+ unistdio/u32-u32-snprintf.lo unistdio/u32-u32-sprintf.lo \
+ unistdio/u32-u32-vasnprintf.lo unistdio/u32-u32-vasprintf.lo \
+ unistdio/u32-u32-vsnprintf.lo unistdio/u32-u32-vsprintf.lo \
+ unistdio/u32-vasnprintf.lo unistdio/u32-vasprintf.lo \
+ unistdio/u32-vsnprintf.lo unistdio/u32-vsprintf.lo \
+ unistdio/u8-asnprintf.lo unistdio/u8-asprintf.lo \
+ unistdio/u8-printf-parse.lo unistdio/u8-snprintf.lo \
+ unistdio/u8-sprintf.lo unistdio/u8-u8-asnprintf.lo \
+ unistdio/u8-u8-asprintf.lo unistdio/u8-u8-snprintf.lo \
+ unistdio/u8-u8-sprintf.lo unistdio/u8-u8-vasnprintf.lo \
+ unistdio/u8-u8-vasprintf.lo unistdio/u8-u8-vsnprintf.lo \
+ unistdio/u8-u8-vsprintf.lo unistdio/u8-vasnprintf.lo \
+ unistdio/u8-vasprintf.lo unistdio/u8-vsnprintf.lo \
+ unistdio/u8-vsprintf.lo unistdio/ulc-asnprintf.lo \
+ unistdio/ulc-asprintf.lo unistdio/ulc-fprintf.lo \
+ unistdio/ulc-printf-parse.lo unistdio/ulc-snprintf.lo \
+ unistdio/ulc-sprintf.lo unistdio/ulc-vasnprintf.lo \
+ unistdio/ulc-vasprintf.lo unistdio/ulc-vfprintf.lo \
+ unistdio/ulc-vsnprintf.lo unistdio/ulc-vsprintf.lo \
+ unistr/u16-check.lo unistr/u16-chr.lo unistr/u16-cmp.lo \
+ unistr/u16-cmp2.lo unistr/u16-cpy.lo unistr/u16-cpy-alloc.lo \
+ unistr/u16-endswith.lo unistr/u16-mblen.lo \
+ unistr/u16-mbsnlen.lo unistr/u16-mbtouc.lo \
+ unistr/u16-mbtouc-aux.lo unistr/u16-mbtouc-unsafe.lo \
+ unistr/u16-mbtouc-unsafe-aux.lo unistr/u16-mbtoucr.lo \
+ unistr/u16-move.lo unistr/u16-next.lo unistr/u16-prev.lo \
+ unistr/u16-set.lo unistr/u16-startswith.lo \
+ unistr/u16-stpcpy.lo unistr/u16-stpncpy.lo \
+ unistr/u16-strcat.lo unistr/u16-strchr.lo unistr/u16-strcmp.lo \
+ unistr/u16-strcoll.lo unistr/u16-strcpy.lo \
+ unistr/u16-strcspn.lo unistr/u16-strdup.lo \
+ unistr/u16-strlen.lo unistr/u16-strmblen.lo \
+ unistr/u16-strmbtouc.lo unistr/u16-strncat.lo \
+ unistr/u16-strncmp.lo unistr/u16-strncpy.lo \
+ unistr/u16-strnlen.lo unistr/u16-strpbrk.lo \
+ unistr/u16-strrchr.lo unistr/u16-strspn.lo \
+ unistr/u16-strstr.lo unistr/u16-strtok.lo unistr/u16-to-u32.lo \
+ unistr/u16-to-u8.lo unistr/u16-uctomb.lo \
+ unistr/u16-uctomb-aux.lo unistr/u32-check.lo unistr/u32-chr.lo \
+ unistr/u32-cmp.lo unistr/u32-cmp2.lo unistr/u32-cpy.lo \
+ unistr/u32-cpy-alloc.lo unistr/u32-endswith.lo \
+ unistr/u32-mblen.lo unistr/u32-mbsnlen.lo unistr/u32-mbtouc.lo \
+ unistr/u32-mbtouc-unsafe.lo unistr/u32-mbtoucr.lo \
+ unistr/u32-move.lo unistr/u32-next.lo unistr/u32-prev.lo \
+ unistr/u32-set.lo unistr/u32-startswith.lo \
+ unistr/u32-stpcpy.lo unistr/u32-stpncpy.lo \
+ unistr/u32-strcat.lo unistr/u32-strchr.lo unistr/u32-strcmp.lo \
+ unistr/u32-strcoll.lo unistr/u32-strcpy.lo \
+ unistr/u32-strcspn.lo unistr/u32-strdup.lo \
+ unistr/u32-strlen.lo unistr/u32-strmblen.lo \
+ unistr/u32-strmbtouc.lo unistr/u32-strncat.lo \
+ unistr/u32-strncmp.lo unistr/u32-strncpy.lo \
+ unistr/u32-strnlen.lo unistr/u32-strpbrk.lo \
+ unistr/u32-strrchr.lo unistr/u32-strspn.lo \
+ unistr/u32-strstr.lo unistr/u32-strtok.lo unistr/u32-to-u16.lo \
+ unistr/u32-to-u8.lo unistr/u32-uctomb.lo unistr/u8-check.lo \
+ unistr/u8-chr.lo unistr/u8-cmp.lo unistr/u8-cmp2.lo \
+ unistr/u8-cpy.lo unistr/u8-cpy-alloc.lo unistr/u8-endswith.lo \
+ unistr/u8-mblen.lo unistr/u8-mbsnlen.lo unistr/u8-mbtouc.lo \
+ unistr/u8-mbtouc-aux.lo unistr/u8-mbtouc-unsafe.lo \
+ unistr/u8-mbtouc-unsafe-aux.lo unistr/u8-mbtoucr.lo \
+ unistr/u8-move.lo unistr/u8-next.lo unistr/u8-prev.lo \
+ unistr/u8-set.lo unistr/u8-startswith.lo unistr/u8-stpcpy.lo \
+ unistr/u8-stpncpy.lo unistr/u8-strcat.lo unistr/u8-strchr.lo \
+ unistr/u8-strcmp.lo unistr/u8-strcoll.lo unistr/u8-strcpy.lo \
+ unistr/u8-strcspn.lo unistr/u8-strdup.lo unistr/u8-strlen.lo \
+ unistr/u8-strmblen.lo unistr/u8-strmbtouc.lo \
+ unistr/u8-strncat.lo unistr/u8-strncmp.lo unistr/u8-strncpy.lo \
+ unistr/u8-strnlen.lo unistr/u8-strpbrk.lo unistr/u8-strrchr.lo \
+ unistr/u8-strspn.lo unistr/u8-strstr.lo unistr/u8-strtok.lo \
+ unistr/u8-to-u16.lo unistr/u8-to-u32.lo unistr/u8-uctomb.lo \
+ unistr/u8-uctomb-aux.lo uniwbrk/wbrktable.lo \
+ uniwbrk/u16-wordbreaks.lo uniwbrk/u32-wordbreaks.lo \
+ uniwbrk/u8-wordbreaks.lo uniwbrk/ulc-wordbreaks.lo \
+ uniwbrk/wordbreak-property.lo uniwidth/u16-strwidth.lo \
+ uniwidth/u16-width.lo uniwidth/u32-strwidth.lo \
+ uniwidth/u32-width.lo uniwidth/u8-strwidth.lo \
+ uniwidth/u8-width.lo uniwidth/width.lo version.lo \
+ $(am__objects_1)
+libunistring_la_OBJECTS = $(am_libunistring_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libunistring_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libunistring_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp =
+am__depfiles_maybe =
+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 " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+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 = $(libunistring_la_SOURCES) $(EXTRA_libunistring_la_SOURCES)
+DIST_SOURCES = $(am__libunistring_la_SOURCES_DIST) \
+ $(EXTRA_libunistring_la_SOURCES)
+HEADERS = $(nobase_include_HEADERS) $(nobase_nodist_include_HEADERS) \
+ $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+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@ -DNO_XMALLOC
+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@
+AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies
+
+# Version information according to Woe32 conventions.
+EXTRA_DIST = alloca.in.h array-mergesort.h c-strcaseeq.h errno.in.h \
+ float.in.h fpucw.h frexp.c frexpl.c fseterr.h stdio-impl.h \
+ getpagesize.c $(top_srcdir)/build-aux/config.rpath \
+ iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \
+ iconv_open-osf.h iconv.in.h iconv_open-aix.gperf \
+ iconv_open-hpux.gperf iconv_open-irix.gperf \
+ iconv_open-osf.gperf iconv_open.c float+.h isnan.c \
+ isnand-nolibm.h isnand.c float+.h isnan.c isnanf-nolibm.h \
+ isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c \
+ $(top_srcdir)/build-aux/link-warning.h config.charset \
+ ref-add.sin ref-del.sin localename.h malloc.c malloca.h \
+ malloca.valgrind math.in.h mbchar.h mbrtowc.c mbsinit.c \
+ memchr.c memchr.valgrind memcmp2.h memxfrm.h printf-frexp.h \
+ printf-frexp.c printf-frexpl.h relocatable.c relocatable.h \
+ float+.h signbitd.c signbitf.c signbitl.c stdbool.in.h \
+ stdint.in.h stdlib.in.h streq.h iconveh.h string.in.h \
+ unicase.h unicase/cased.h unicase/caseprop.h unictype/bitmap.h \
+ unicase/caseprop.h unicase/ignorable.h unictype/bitmap.h \
+ unicase/locale-languages.h unicase/locale-languages.gperf \
+ unicase/special-casing-table.h \
+ unicase/special-casing-table.gperf unicase/special-casing.h \
+ unicase/casefold.h unicase/simple-mapping.h \
+ unicase/tocasefold.h unicase/simple-mapping.h \
+ unicase/tolower.h unicase/simple-mapping.h unicase/totitle.h \
+ unicase/simple-mapping.h unicase/toupper.h unicase/u-casecmp.h \
+ unicase/u-casecoll.h unicase/u-casefold.h unicase/context.h \
+ unicase/u-casemap.h unicase/unicasemap.h unicase/u-casexfrm.h \
+ unicase/u-ct-casefold.h unicase/context.h \
+ unicase/u-ct-totitle.h unicase/u-is-cased.h \
+ unicase/invariant.h unicase/u-is-invariant.h \
+ unicase/u-totitle.h unicase/u-casecmp.h unicase/u-casecoll.h \
+ unicase/u-casefold.h unicase/context.h unicase/u-casemap.h \
+ unicase/unicasemap.h unicase/u-casexfrm.h \
+ unicase/u-ct-casefold.h unicase/context.h \
+ unicase/u-ct-totitle.h unicase/u-is-cased.h \
+ unicase/invariant.h unicase/u-is-invariant.h \
+ unicase/u-totitle.h unicase/u-casecmp.h unicase/u-casecoll.h \
+ unicase/u-casefold.h unicase/context.h unicase/u-casemap.h \
+ unicase/unicasemap.h unicase/u-casexfrm.h \
+ unicase/u-ct-casefold.h unicase/context.h \
+ unicase/u-ct-totitle.h unicase/u-is-cased.h \
+ unicase/invariant.h unicase/u-is-invariant.h \
+ unicase/u-totitle.h unicase/u-casecmp.h unicase/u-casecoll.h \
+ iconveh.h localcharset.h striconveha.h uniconv.h \
+ uniconv/u-conv-from-enc.h uniconv/u-conv-to-enc.h \
+ uniconv/u-strconv-from-enc.h uniconv/u-strconv-to-enc.h \
+ uniconv/u-conv-from-enc.h uniconv/u-conv-to-enc.h \
+ uniconv/u-strconv-from-enc.h uniconv/u-strconv-to-enc.h \
+ uniconv/u-strconv-from-enc.h unictype.h unictype/bidi_of.h \
+ unictype/blocks.h unictype/categ_C.h unictype/categ_Cc.h \
+ unictype/categ_Cf.h unictype/categ_Cn.h unictype/categ_Co.h \
+ unictype/categ_Cs.h unictype/categ_L.h unictype/categ_Ll.h \
+ unictype/categ_Lm.h unictype/categ_Lo.h unictype/categ_Lt.h \
+ unictype/categ_Lu.h unictype/categ_M.h unictype/categ_Mc.h \
+ unictype/categ_Me.h unictype/categ_Mn.h unictype/categ_N.h \
+ unictype/categ_Nd.h unictype/categ_Nl.h unictype/categ_No.h \
+ unictype/categ_P.h unictype/categ_Pc.h unictype/categ_Pd.h \
+ unictype/categ_Pe.h unictype/categ_Pf.h unictype/categ_Pi.h \
+ unictype/categ_Po.h unictype/categ_Ps.h unictype/categ_S.h \
+ unictype/categ_Sc.h unictype/categ_Sk.h unictype/categ_Sm.h \
+ unictype/categ_So.h unictype/categ_Z.h unictype/categ_Zl.h \
+ unictype/categ_Zp.h unictype/categ_Zs.h unictype/categ_of.h \
+ unictype/bitmap.h unictype/combining.h unictype/bitmap.h \
+ unictype/ctype_alnum.h unictype/bitmap.h \
+ unictype/ctype_alpha.h unictype/bitmap.h \
+ unictype/ctype_blank.h unictype/bitmap.h \
+ unictype/ctype_cntrl.h unictype/bitmap.h \
+ unictype/ctype_digit.h unictype/bitmap.h \
+ unictype/ctype_graph.h unictype/bitmap.h \
+ unictype/ctype_lower.h unictype/bitmap.h \
+ unictype/ctype_print.h unictype/bitmap.h \
+ unictype/ctype_punct.h unictype/bitmap.h \
+ unictype/ctype_space.h unictype/bitmap.h \
+ unictype/ctype_upper.h unictype/bitmap.h \
+ unictype/ctype_xdigit.h unictype/decdigit.h unictype/digit.h \
+ unictype/mirror.h unictype/numeric.h unictype/bitmap.h \
+ unictype/pr_alphabetic.h unictype/bitmap.h \
+ unictype/pr_ascii_hex_digit.h unictype/bitmap.h \
+ unictype/pr_bidi_arabic_digit.h unictype/bitmap.h \
+ unictype/pr_bidi_arabic_right_to_left.h unictype/bitmap.h \
+ unictype/pr_bidi_block_separator.h unictype/bitmap.h \
+ unictype/pr_bidi_boundary_neutral.h unictype/bitmap.h \
+ unictype/pr_bidi_common_separator.h unictype/bitmap.h \
+ unictype/pr_bidi_control.h unictype/bitmap.h \
+ unictype/pr_bidi_embedding_or_override.h unictype/bitmap.h \
+ unictype/pr_bidi_eur_num_separator.h unictype/bitmap.h \
+ unictype/pr_bidi_eur_num_terminator.h unictype/bitmap.h \
+ unictype/pr_bidi_european_digit.h unictype/bitmap.h \
+ unictype/pr_bidi_hebrew_right_to_left.h unictype/bitmap.h \
+ unictype/pr_bidi_left_to_right.h unictype/bitmap.h \
+ unictype/pr_bidi_non_spacing_mark.h unictype/bitmap.h \
+ unictype/pr_bidi_other_neutral.h unictype/bitmap.h \
+ unictype/pr_bidi_pdf.h unictype/bitmap.h \
+ unictype/pr_bidi_segment_separator.h unictype/bitmap.h \
+ unictype/pr_bidi_whitespace.h unictype/pr_byname.h \
+ unictype/pr_byname.gperf unictype/bitmap.h \
+ unictype/pr_combining.h unictype/bitmap.h \
+ unictype/pr_composite.h unictype/bitmap.h \
+ unictype/pr_currency_symbol.h unictype/bitmap.h \
+ unictype/pr_dash.h unictype/bitmap.h \
+ unictype/pr_decimal_digit.h unictype/bitmap.h \
+ unictype/pr_default_ignorable_code_point.h unictype/bitmap.h \
+ unictype/pr_deprecated.h unictype/bitmap.h \
+ unictype/pr_diacritic.h unictype/bitmap.h \
+ unictype/pr_extender.h unictype/bitmap.h \
+ unictype/pr_format_control.h unictype/bitmap.h \
+ unictype/pr_grapheme_base.h unictype/bitmap.h \
+ unictype/pr_grapheme_extend.h unictype/bitmap.h \
+ unictype/pr_grapheme_link.h unictype/bitmap.h \
+ unictype/pr_hex_digit.h unictype/bitmap.h unictype/pr_hyphen.h \
+ unictype/bitmap.h unictype/pr_id_continue.h unictype/bitmap.h \
+ unictype/pr_id_start.h unictype/bitmap.h \
+ unictype/pr_ideographic.h unictype/bitmap.h \
+ unictype/pr_ids_binary_operator.h unictype/bitmap.h \
+ unictype/pr_ids_trinary_operator.h unictype/bitmap.h \
+ unictype/pr_ignorable_control.h unictype/bitmap.h \
+ unictype/pr_iso_control.h unictype/bitmap.h \
+ unictype/pr_join_control.h unictype/bitmap.h \
+ unictype/pr_left_of_pair.h unictype/bitmap.h \
+ unictype/pr_line_separator.h unictype/bitmap.h \
+ unictype/pr_logical_order_exception.h unictype/bitmap.h \
+ unictype/pr_lowercase.h unictype/bitmap.h unictype/pr_math.h \
+ unictype/bitmap.h unictype/pr_non_break.h unictype/bitmap.h \
+ unictype/pr_not_a_character.h unictype/bitmap.h \
+ unictype/pr_numeric.h unictype/bitmap.h \
+ unictype/pr_other_alphabetic.h unictype/bitmap.h \
+ unictype/pr_other_default_ignorable_code_point.h \
+ unictype/bitmap.h unictype/pr_other_grapheme_extend.h \
+ unictype/bitmap.h unictype/pr_other_id_continue.h \
+ unictype/bitmap.h unictype/pr_other_id_start.h \
+ unictype/bitmap.h unictype/pr_other_lowercase.h \
+ unictype/bitmap.h unictype/pr_other_math.h unictype/bitmap.h \
+ unictype/pr_other_uppercase.h unictype/bitmap.h \
+ unictype/pr_paired_punctuation.h unictype/bitmap.h \
+ unictype/pr_paragraph_separator.h unictype/bitmap.h \
+ unictype/pr_pattern_syntax.h unictype/bitmap.h \
+ unictype/pr_pattern_white_space.h unictype/bitmap.h \
+ unictype/pr_private_use.h unictype/bitmap.h \
+ unictype/pr_punctuation.h unictype/bitmap.h \
+ unictype/pr_quotation_mark.h unictype/bitmap.h \
+ unictype/pr_radical.h unictype/bitmap.h \
+ unictype/pr_sentence_terminal.h unictype/bitmap.h \
+ unictype/pr_soft_dotted.h unictype/bitmap.h \
+ unictype/pr_space.h unictype/bitmap.h \
+ unictype/pr_terminal_punctuation.h unictype/bitmap.h \
+ unictype/pr_titlecase.h unictype/bitmap.h \
+ unictype/pr_unassigned_code_value.h unictype/bitmap.h \
+ unictype/pr_unified_ideograph.h unictype/bitmap.h \
+ unictype/pr_uppercase.h unictype/bitmap.h \
+ unictype/pr_variation_selector.h unictype/bitmap.h \
+ unictype/pr_white_space.h unictype/bitmap.h \
+ unictype/pr_xid_continue.h unictype/bitmap.h \
+ unictype/pr_xid_start.h unictype/bitmap.h \
+ unictype/pr_zero_width.h unictype/scripts_byname.h \
+ unictype/scripts.h unictype/scripts_byname.gperf \
+ unictype/identsyntaxmap.h unictype/sy_c_ident.h \
+ unictype/identsyntaxmap.h unictype/sy_java_ident.h unilbrk.h \
+ unilbrk/lbrkprop1.h unilbrk/lbrkprop2.h unilbrk/lbrktables.h \
+ uniwidth/cjk.h uniwidth/cjk.h uniwidth/cjk.h \
+ unilbrk/ulc-common.h uniname.h uniname/gen-uninames.lisp \
+ uniname/uninames.h uninorm.h uninorm/decompose-internal.h \
+ uninorm/composition-table.h uninorm/composition-table.gperf \
+ uninorm/decompose-internal.h uninorm/normalize-internal.h \
+ uninorm/decomposition-table.h uninorm/decomposition-table1.h \
+ uninorm/decomposition-table2.h uninorm/normalize-internal.h \
+ uninorm/normalize-internal.h uninorm/normalize-internal.h \
+ uninorm/normalize-internal.h uninorm/normalize-internal.h \
+ uninorm/normalize-internal.h uninorm/u-normalize-internal.h \
+ uninorm/u-normcmp.h uninorm/u-normcoll.h uninorm/u-normxfrm.h \
+ uninorm/normalize-internal.h uninorm/u-normalize-internal.h \
+ uninorm/u-normcmp.h uninorm/u-normcoll.h uninorm/u-normxfrm.h \
+ uninorm/normalize-internal.h uninorm/u-normalize-internal.h \
+ uninorm/u-normcmp.h uninorm/u-normcoll.h uninorm/u-normxfrm.h \
+ unistd.in.h unistdio.h printf-args.c printf-args.h \
+ unistdio/u-printf-args.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h printf-parse.c printf-parse.h \
+ unistdio/u-printf-parse.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h vasnprintf.c unistdio/u-vasprintf.h \
+ unistdio/u-vsnprintf.h unistdio/u-vsprintf.h vasnprintf.c \
+ unistdio/u-vasprintf.h unistdio/u-vsnprintf.h \
+ unistdio/u-vsprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h printf-parse.c printf-parse.h \
+ unistdio/u-printf-parse.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h vasnprintf.c unistdio/u-vasprintf.h \
+ unistdio/u-vsnprintf.h unistdio/u-vsprintf.h vasnprintf.c \
+ unistdio/u-vasprintf.h unistdio/u-vsnprintf.h \
+ unistdio/u-vsprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h printf-parse.c printf-parse.h \
+ unistdio/u-printf-parse.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h vasnprintf.c unistdio/u-vasprintf.h \
+ unistdio/u-vsnprintf.h unistdio/u-vsprintf.h vasnprintf.c \
+ unistdio/u-vasprintf.h unistdio/u-vsnprintf.h \
+ unistdio/u-vsprintf.h unistdio/u-asnprintf.h \
+ unistdio/u-asprintf.h printf-parse.c printf-parse.h \
+ unistdio/u-printf-parse.h unistdio/u-snprintf.h \
+ unistdio/u-sprintf.h vasnprintf.c unistdio/u-vasprintf.h \
+ unistdio/u-vsnprintf.h unistdio/u-vsprintf.h unistr.h \
+ unistr/u-cmp2.h unistr/u-cpy.h unistr/u-cpy-alloc.h \
+ unistr/u-endswith.h unistr/u-move.h unistr/u-set.h \
+ unistr/u-startswith.h unistr/u-stpcpy.h unistr/u-stpncpy.h \
+ unistr/u-strcat.h unistr/u-strcoll.h unistr/u-strcpy.h \
+ unistr/u-strcspn.h unistr/u-strdup.h unistr/u-strlen.h \
+ unistr/u-strncat.h unistr/u-strncpy.h unistr/u-strnlen.h \
+ unistr/u-strpbrk.h unistr/u-strspn.h unistr/u-strstr.h \
+ unistr/u-strtok.h unistr/u-cmp2.h unistr/u-cpy.h \
+ unistr/u-cpy-alloc.h unistr/u-endswith.h unistr/u-move.h \
+ unistr/u-set.h unistr/u-startswith.h unistr/u-stpcpy.h \
+ unistr/u-stpncpy.h unistr/u-strcat.h unistr/u-strcoll.h \
+ unistr/u-strcpy.h unistr/u-strdup.h unistr/u-strlen.h \
+ unistr/u-strncat.h unistr/u-strncpy.h unistr/u-strnlen.h \
+ unistr/u-strstr.h unistr/u-strtok.h unistr/u-cmp2.h \
+ unistr/u-cpy.h unistr/u-cpy-alloc.h unistr/u-endswith.h \
+ unistr/u-move.h unistr/u-startswith.h unistr/u-stpcpy.h \
+ unistr/u-stpncpy.h unistr/u-strcoll.h unistr/u-strcspn.h \
+ unistr/u-strdup.h unistr/u-strnlen.h unistr/u-strpbrk.h \
+ unistr/u-strspn.h unistr/u-strstr.h unistr/u-strtok.h \
+ unitypes.h uniwbrk.h uniwbrk/wbrktable.h \
+ uniwbrk/u-wordbreaks.h uniwbrk/u-wordbreaks.h \
+ uniwbrk/u-wordbreaks.h uniwbrk/wbrkprop.h localcharset.h \
+ uniwidth.h uniwidth/cjk.h wchar.in.h wctype.in.h wcwidth.c \
+ stdint.mini.h libunistring.sym declared.sh libunistring.rc
+BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) $(FLOAT_H) \
+ $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \
+ iconv_open-irix.h iconv_open-osf.h math.h $(STDBOOL_H) \
+ $(STDINT_H) stdlib.h string.h unicase/locale-languages.h \
+ unicase/special-casing-table.h unictype/pr_byname.h \
+ unictype/scripts_byname.h uninorm/composition-table.h unistd.h \
+ $(WCHAR_H) $(WCTYPE_H) unistring/stdbool.h unistring/stdint.h \
+ unistring/localcharset.h unistring/iconveh.h
+# We distribute it because declared.sh relies on GNU sed.
+MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \
+ alloca.h-t errno.h errno.h-t float.h float.h-t iconv.h \
+ iconv.h-t iconv_open-aix.h-t iconv_open-hpux.h-t \
+ iconv_open-irix.h-t iconv_open-osf.h-t math.h math.h-t \
+ stdbool.h stdbool.h-t stdint.h stdint.h-t stdlib.h stdlib.h-t \
+ string.h string.h-t unicase/locale-languages.h-t \
+ unicase/special-casing-table.h-t unictype/pr_byname.h-t \
+ unictype/scripts_byname.h-t uninorm/composition-table.h-t \
+ unistd.h unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t \
+ unistring/stdbool.h-t unistring/stdint.h-t \
+ unistring/localcharset.h-t unistring/iconveh.h-t \
+ libunistring.sym-t config.h config.h-t $(am__append_4)
+CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
+ ref-del.sed unistring/stdbool.h unistring/stdint.h \
+ unistring/localcharset.h unistring/iconveh.h
+DISTCLEANFILES =
+MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \
+ iconv_open-irix.h iconv_open-osf.h unicase/locale-languages.h \
+ unicase/special-casing-table.h unictype/pr_byname.h \
+ unictype/scripts_byname.h uninorm/composition-table.h \
+ libunistring.sym
+SUFFIXES = .sed .sin
+lib_LTLIBRARIES = libunistring.la
+nobase_include_HEADERS = \
+ unitypes.h \
+ unistr.h \
+ uniconv.h \
+ unistdio.h \
+ uniname.h \
+ unictype.h \
+ uniwidth.h \
+ uniwbrk.h \
+ unilbrk.h \
+ uninorm.h \
+ unicase.h \
+ unistring/inline.h
+
+noinst_HEADERS = \
+ unistring-notinline.h
+
+
+# Parametrization of the 'relocatable-lib-lgpl' module.
+AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_builddir) -I$(top_srcdir) \
+ -DIN_LIBUNISTRING -DDEPENDS_ON_LIBICONV=1
+
+# Rules generated and collected by gnulib-tool.
+
+# Additional source files.
+libunistring_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h \
+ c-strcasecmp.c c-strncasecmp.c fseterr.c localcharset.h \
+ localcharset.c localename.c malloca.c mbchar.c mbiter.h \
+ mbsnlen.c memcmp2.c memxfrm.c minmax.h printf-frexp.c \
+ printf-frexpl.c size_max.h striconveh.h striconveh.c \
+ striconveha.h striconveha.c unicase/cased.c \
+ unicase/empty-prefix-context.c unicase/empty-suffix-context.c \
+ unicase/ignorable.c unicase/locale-language.c \
+ unicase/special-casing.c unicase/tocasefold.c \
+ unicase/tolower.c unicase/totitle.c unicase/toupper.c \
+ unicase/u16-casecmp.c unicase/u16-casecoll.c \
+ unicase/u16-casefold.c unicase/u16-casemap.c \
+ unicase/u16-casexfrm.c unicase/u16-ct-casefold.c \
+ unicase/u16-ct-tolower.c unicase/u16-ct-totitle.c \
+ unicase/u16-ct-toupper.c unicase/u16-is-cased.c \
+ unicase/u16-is-casefolded.c unicase/u16-is-invariant.c \
+ unicase/u16-is-lowercase.c unicase/u16-is-titlecase.c \
+ unicase/u16-is-uppercase.c unicase/u16-tolower.c \
+ unicase/u16-totitle.c unicase/u16-toupper.c \
+ unicase/u32-casecmp.c unicase/u32-casecoll.c \
+ unicase/u32-casefold.c unicase/u32-casemap.c \
+ unicase/u32-casexfrm.c unicase/u32-ct-casefold.c \
+ unicase/u32-ct-tolower.c unicase/u32-ct-totitle.c \
+ unicase/u32-ct-toupper.c unicase/u32-is-cased.c \
+ unicase/u32-is-casefolded.c unicase/u32-is-invariant.c \
+ unicase/u32-is-lowercase.c unicase/u32-is-titlecase.c \
+ unicase/u32-is-uppercase.c unicase/u32-tolower.c \
+ unicase/u32-totitle.c unicase/u32-toupper.c \
+ unicase/u8-casecmp.c unicase/u8-casecoll.c \
+ unicase/u8-casefold.c unicase/u8-casemap.c \
+ unicase/u8-casexfrm.c unicase/u8-ct-casefold.c \
+ unicase/u8-ct-tolower.c unicase/u8-ct-totitle.c \
+ unicase/u8-ct-toupper.c unicase/u8-is-cased.c \
+ unicase/u8-is-casefolded.c unicase/u8-is-invariant.c \
+ unicase/u8-is-lowercase.c unicase/u8-is-titlecase.c \
+ unicase/u8-is-uppercase.c unicase/u8-tolower.c \
+ unicase/u8-totitle.c unicase/u8-toupper.c \
+ unicase/ulc-casecmp.c unicase/ulc-casecoll.c \
+ unicase/ulc-casexfrm.c uniconv/u16-conv-from-enc.c \
+ uniconv/u16-conv-to-enc.c uniconv/u16-strconv-from-enc.c \
+ uniconv/u16-strconv-from-locale.c uniconv/u16-strconv-to-enc.c \
+ uniconv/u16-strconv-to-locale.c uniconv/u32-conv-from-enc.c \
+ uniconv/u32-conv-to-enc.c uniconv/u32-strconv-from-enc.c \
+ uniconv/u32-strconv-from-locale.c uniconv/u32-strconv-to-enc.c \
+ uniconv/u32-strconv-to-locale.c uniconv/u8-conv-from-enc.c \
+ uniconv/u8-conv-to-enc.c uniconv/u8-strconv-from-enc.c \
+ uniconv/u8-strconv-from-locale.c uniconv/u8-strconv-to-enc.c \
+ uniconv/u8-strconv-to-locale.c unictype/bidi_byname.c \
+ unictype/bidi_name.c unictype/bidi_of.c unictype/bidi_test.c \
+ unictype/blocks.c unictype/block_test.c unictype/categ_C.c \
+ unictype/categ_Cc.c unictype/categ_Cf.c unictype/categ_Cn.c \
+ unictype/categ_Co.c unictype/categ_Cs.c unictype/categ_L.c \
+ unictype/categ_Ll.c unictype/categ_Lm.c unictype/categ_Lo.c \
+ unictype/categ_Lt.c unictype/categ_Lu.c unictype/categ_M.c \
+ unictype/categ_Mc.c unictype/categ_Me.c unictype/categ_Mn.c \
+ unictype/categ_N.c unictype/categ_Nd.c unictype/categ_Nl.c \
+ unictype/categ_No.c unictype/categ_P.c unictype/categ_Pc.c \
+ unictype/categ_Pd.c unictype/categ_Pe.c unictype/categ_Pf.c \
+ unictype/categ_Pi.c unictype/categ_Po.c unictype/categ_Ps.c \
+ unictype/categ_S.c unictype/categ_Sc.c unictype/categ_Sk.c \
+ unictype/categ_Sm.c unictype/categ_So.c unictype/categ_Z.c \
+ unictype/categ_Zl.c unictype/categ_Zp.c unictype/categ_Zs.c \
+ unictype/categ_and.c unictype/categ_and_not.c \
+ unictype/categ_byname.c unictype/categ_name.c \
+ unictype/categ_none.c unictype/categ_of.c unictype/categ_or.c \
+ unictype/categ_test.c unictype/combining.c \
+ unictype/ctype_alnum.c unictype/ctype_alpha.c \
+ unictype/ctype_blank.c unictype/ctype_cntrl.c \
+ unictype/ctype_digit.c unictype/ctype_graph.c \
+ unictype/ctype_lower.c unictype/ctype_print.c \
+ unictype/ctype_punct.c unictype/ctype_space.c \
+ unictype/ctype_upper.c unictype/ctype_xdigit.c \
+ unictype/decdigit.c unictype/digit.c unictype/mirror.c \
+ unictype/numeric.c unictype/pr_alphabetic.c \
+ unictype/pr_ascii_hex_digit.c unictype/pr_bidi_arabic_digit.c \
+ unictype/pr_bidi_arabic_right_to_left.c \
+ unictype/pr_bidi_block_separator.c \
+ unictype/pr_bidi_boundary_neutral.c \
+ unictype/pr_bidi_common_separator.c unictype/pr_bidi_control.c \
+ unictype/pr_bidi_embedding_or_override.c \
+ unictype/pr_bidi_eur_num_separator.c \
+ unictype/pr_bidi_eur_num_terminator.c \
+ unictype/pr_bidi_european_digit.c \
+ unictype/pr_bidi_hebrew_right_to_left.c \
+ unictype/pr_bidi_left_to_right.c \
+ unictype/pr_bidi_non_spacing_mark.c \
+ unictype/pr_bidi_other_neutral.c unictype/pr_bidi_pdf.c \
+ unictype/pr_bidi_segment_separator.c \
+ unictype/pr_bidi_whitespace.c unictype/pr_byname.c \
+ unictype/pr_combining.c unictype/pr_composite.c \
+ unictype/pr_currency_symbol.c unictype/pr_dash.c \
+ unictype/pr_decimal_digit.c \
+ unictype/pr_default_ignorable_code_point.c \
+ unictype/pr_deprecated.c unictype/pr_diacritic.c \
+ unictype/pr_extender.c unictype/pr_format_control.c \
+ unictype/pr_grapheme_base.c unictype/pr_grapheme_extend.c \
+ unictype/pr_grapheme_link.c unictype/pr_hex_digit.c \
+ unictype/pr_hyphen.c unictype/pr_id_continue.c \
+ unictype/pr_id_start.c unictype/pr_ideographic.c \
+ unictype/pr_ids_binary_operator.c \
+ unictype/pr_ids_trinary_operator.c \
+ unictype/pr_ignorable_control.c unictype/pr_iso_control.c \
+ unictype/pr_join_control.c unictype/pr_left_of_pair.c \
+ unictype/pr_line_separator.c \
+ unictype/pr_logical_order_exception.c unictype/pr_lowercase.c \
+ unictype/pr_math.c unictype/pr_non_break.c \
+ unictype/pr_not_a_character.c unictype/pr_numeric.c \
+ unictype/pr_other_alphabetic.c \
+ unictype/pr_other_default_ignorable_code_point.c \
+ unictype/pr_other_grapheme_extend.c \
+ unictype/pr_other_id_continue.c unictype/pr_other_id_start.c \
+ unictype/pr_other_lowercase.c unictype/pr_other_math.c \
+ unictype/pr_other_uppercase.c unictype/pr_paired_punctuation.c \
+ unictype/pr_paragraph_separator.c unictype/pr_pattern_syntax.c \
+ unictype/pr_pattern_white_space.c unictype/pr_private_use.c \
+ unictype/pr_punctuation.c unictype/pr_quotation_mark.c \
+ unictype/pr_radical.c unictype/pr_sentence_terminal.c \
+ unictype/pr_soft_dotted.c unictype/pr_space.c \
+ unictype/pr_terminal_punctuation.c unictype/pr_test.c \
+ unictype/pr_titlecase.c unictype/pr_unassigned_code_value.c \
+ unictype/pr_unified_ideograph.c unictype/pr_uppercase.c \
+ unictype/pr_variation_selector.c unictype/pr_white_space.c \
+ unictype/pr_xid_continue.c unictype/pr_xid_start.c \
+ unictype/pr_zero_width.c unictype/scripts.c \
+ unictype/sy_c_ident.c unictype/sy_c_whitespace.c \
+ unictype/sy_java_ident.c unictype/sy_java_whitespace.c \
+ unilbrk/lbrktables.c unilbrk/u16-possible-linebreaks.c \
+ unilbrk/u16-width-linebreaks.c \
+ unilbrk/u32-possible-linebreaks.c \
+ unilbrk/u32-width-linebreaks.c \
+ unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c \
+ unilbrk/ulc-common.c unilbrk/ulc-possible-linebreaks.c \
+ unilbrk/ulc-width-linebreaks.c uniname/uniname.c \
+ uninorm/canonical-decomposition.c \
+ uninorm/compat-decomposition.c uninorm/composition.c \
+ uninorm/decompose-internal.c uninorm/decomposing-form.c \
+ uninorm/decomposition.c uninorm/decomposition-table.c \
+ uninorm/uninorm-filter.c uninorm/nfc.c uninorm/nfd.c \
+ uninorm/nfkc.c uninorm/nfkd.c uninorm/u16-normalize.c \
+ uninorm/u16-normcmp.c uninorm/u16-normcoll.c \
+ uninorm/u16-normxfrm.c uninorm/u32-normalize.c \
+ uninorm/u32-normcmp.c uninorm/u32-normcoll.c \
+ uninorm/u32-normxfrm.c uninorm/u8-normalize.c \
+ uninorm/u8-normcmp.c uninorm/u8-normcoll.c \
+ uninorm/u8-normxfrm.c unistdio/u-printf-args.c \
+ unistdio/u16-asnprintf.c unistdio/u16-asprintf.c \
+ unistdio/u16-printf-parse.c unistdio/u16-snprintf.c \
+ unistdio/u16-sprintf.c unistdio/u16-u16-asnprintf.c \
+ unistdio/u16-u16-asprintf.c unistdio/u16-u16-snprintf.c \
+ unistdio/u16-u16-sprintf.c unistdio/u16-u16-vasnprintf.c \
+ unistdio/u16-u16-vasprintf.c unistdio/u16-u16-vsnprintf.c \
+ unistdio/u16-u16-vsprintf.c unistdio/u16-vasnprintf.c \
+ unistdio/u16-vasprintf.c unistdio/u16-vsnprintf.c \
+ unistdio/u16-vsprintf.c unistdio/u32-asnprintf.c \
+ unistdio/u32-asprintf.c unistdio/u32-printf-parse.c \
+ unistdio/u32-snprintf.c unistdio/u32-sprintf.c \
+ unistdio/u32-u32-asnprintf.c unistdio/u32-u32-asprintf.c \
+ unistdio/u32-u32-snprintf.c unistdio/u32-u32-sprintf.c \
+ unistdio/u32-u32-vasnprintf.c unistdio/u32-u32-vasprintf.c \
+ unistdio/u32-u32-vsnprintf.c unistdio/u32-u32-vsprintf.c \
+ unistdio/u32-vasnprintf.c unistdio/u32-vasprintf.c \
+ unistdio/u32-vsnprintf.c unistdio/u32-vsprintf.c \
+ unistdio/u8-asnprintf.c unistdio/u8-asprintf.c \
+ unistdio/u8-printf-parse.c unistdio/u8-snprintf.c \
+ unistdio/u8-sprintf.c unistdio/u8-u8-asnprintf.c \
+ unistdio/u8-u8-asprintf.c unistdio/u8-u8-snprintf.c \
+ unistdio/u8-u8-sprintf.c unistdio/u8-u8-vasnprintf.c \
+ unistdio/u8-u8-vasprintf.c unistdio/u8-u8-vsnprintf.c \
+ unistdio/u8-u8-vsprintf.c unistdio/u8-vasnprintf.c \
+ unistdio/u8-vasprintf.c unistdio/u8-vsnprintf.c \
+ unistdio/u8-vsprintf.c unistdio/ulc-asnprintf.c \
+ unistdio/ulc-asprintf.c unistdio/ulc-fprintf.c \
+ unistdio/ulc-printf-parse.c unistdio/ulc-snprintf.c \
+ unistdio/ulc-sprintf.c unistdio/ulc-vasnprintf.c \
+ unistdio/ulc-vasprintf.c unistdio/ulc-vfprintf.c \
+ unistdio/ulc-vsnprintf.c unistdio/ulc-vsprintf.c \
+ unistr/u16-check.c unistr/u16-chr.c unistr/u16-cmp.c \
+ unistr/u16-cmp2.c unistr/u16-cpy.c unistr/u16-cpy-alloc.c \
+ unistr/u16-endswith.c unistr/u16-mblen.c unistr/u16-mbsnlen.c \
+ unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c \
+ unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c \
+ unistr/u16-mbtoucr.c unistr/u16-move.c unistr/u16-next.c \
+ unistr/u16-prev.c unistr/u16-set.c unistr/u16-startswith.c \
+ unistr/u16-stpcpy.c unistr/u16-stpncpy.c unistr/u16-strcat.c \
+ unistr/u16-strchr.c unistr/u16-strcmp.c unistr/u16-strcoll.c \
+ unistr/u16-strcpy.c unistr/u16-strcspn.c unistr/u16-strdup.c \
+ unistr/u16-strlen.c unistr/u16-strmblen.c \
+ unistr/u16-strmbtouc.c unistr/u16-strncat.c \
+ unistr/u16-strncmp.c unistr/u16-strncpy.c unistr/u16-strnlen.c \
+ unistr/u16-strpbrk.c unistr/u16-strrchr.c unistr/u16-strspn.c \
+ unistr/u16-strstr.c unistr/u16-strtok.c unistr/u16-to-u32.c \
+ unistr/u16-to-u8.c unistr/u16-uctomb.c unistr/u16-uctomb-aux.c \
+ unistr/u32-check.c unistr/u32-chr.c unistr/u32-cmp.c \
+ unistr/u32-cmp2.c unistr/u32-cpy.c unistr/u32-cpy-alloc.c \
+ unistr/u32-endswith.c unistr/u32-mblen.c unistr/u32-mbsnlen.c \
+ unistr/u32-mbtouc.c unistr/u32-mbtouc-unsafe.c \
+ unistr/u32-mbtoucr.c unistr/u32-move.c unistr/u32-next.c \
+ unistr/u32-prev.c unistr/u32-set.c unistr/u32-startswith.c \
+ unistr/u32-stpcpy.c unistr/u32-stpncpy.c unistr/u32-strcat.c \
+ unistr/u32-strchr.c unistr/u32-strcmp.c unistr/u32-strcoll.c \
+ unistr/u32-strcpy.c unistr/u32-strcspn.c unistr/u32-strdup.c \
+ unistr/u32-strlen.c unistr/u32-strmblen.c \
+ unistr/u32-strmbtouc.c unistr/u32-strncat.c \
+ unistr/u32-strncmp.c unistr/u32-strncpy.c unistr/u32-strnlen.c \
+ unistr/u32-strpbrk.c unistr/u32-strrchr.c unistr/u32-strspn.c \
+ unistr/u32-strstr.c unistr/u32-strtok.c unistr/u32-to-u16.c \
+ unistr/u32-to-u8.c unistr/u32-uctomb.c unistr/u8-check.c \
+ unistr/u8-chr.c unistr/u8-cmp.c unistr/u8-cmp2.c \
+ unistr/u8-cpy.c unistr/u8-cpy-alloc.c unistr/u8-endswith.c \
+ unistr/u8-mblen.c unistr/u8-mbsnlen.c unistr/u8-mbtouc.c \
+ unistr/u8-mbtouc-aux.c unistr/u8-mbtouc-unsafe.c \
+ unistr/u8-mbtouc-unsafe-aux.c unistr/u8-mbtoucr.c \
+ unistr/u8-move.c unistr/u8-next.c unistr/u8-prev.c \
+ unistr/u8-set.c unistr/u8-startswith.c unistr/u8-stpcpy.c \
+ unistr/u8-stpncpy.c unistr/u8-strcat.c unistr/u8-strchr.c \
+ unistr/u8-strcmp.c unistr/u8-strcoll.c unistr/u8-strcpy.c \
+ unistr/u8-strcspn.c unistr/u8-strdup.c unistr/u8-strlen.c \
+ unistr/u8-strmblen.c unistr/u8-strmbtouc.c unistr/u8-strncat.c \
+ unistr/u8-strncmp.c unistr/u8-strncpy.c unistr/u8-strnlen.c \
+ unistr/u8-strpbrk.c unistr/u8-strrchr.c unistr/u8-strspn.c \
+ unistr/u8-strstr.c unistr/u8-strtok.c unistr/u8-to-u16.c \
+ unistr/u8-to-u32.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c \
+ uniwbrk/wbrktable.c uniwbrk/u16-wordbreaks.c \
+ uniwbrk/u32-wordbreaks.c uniwbrk/u8-wordbreaks.c \
+ uniwbrk/ulc-wordbreaks.c uniwbrk/wordbreak-property.c \
+ uniwidth/u16-strwidth.c uniwidth/u16-width.c \
+ uniwidth/u32-strwidth.c uniwidth/u32-width.c \
+ uniwidth/u8-strwidth.c uniwidth/u8-width.c uniwidth/width.c \
+ verify.h xsize.h version.c $(am__append_2)
+libunistring_la_LIBADD = $(gl_LTLIBOBJS) $(WOE32_LIBADD)
+libunistring_la_DEPENDENCIES = $(gl_LTLIBOBJS) $(WOE32_LIBADD)
+EXTRA_libunistring_la_SOURCES = frexp.c frexpl.c getpagesize.c \
+ iconv_open.c isnan.c isnand.c isnan.c isnanf.c isnan.c \
+ isnanl.c malloc.c mbrtowc.c mbsinit.c memchr.c printf-frexp.c \
+ relocatable.c signbitd.c signbitf.c signbitl.c printf-args.c \
+ printf-parse.c vasnprintf.c vasnprintf.c printf-parse.c \
+ vasnprintf.c vasnprintf.c printf-parse.c vasnprintf.c \
+ vasnprintf.c printf-parse.c vasnprintf.c wcwidth.c
+
+# How to build libunistring.la.
+libunistring_la_LDFLAGS = $(AM_LDFLAGS) $(am__append_1) \
+ $(am__append_3) -version-info \
+ $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) -rpath $(libdir) \
+ @INTL_MACOSX_LIBS@ -no-undefined
+GPERF = gperf
+LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+
+# The <stdbool.h> and <stdint.h> replacements that can be installed.
+
+# localcharset.h is not public, but its contents is documented.
+
+# iconveh.h is not public, but its contents is documented.
+
+# unistring/version.h is public.
+
+# unistring/woe32dll.h is not public, but is included by other header files.
+nobase_nodist_include_HEADERS = unistring/stdbool.h unistring/stdint.h \
+ unistring/localcharset.h unistring/iconveh.h \
+ unistring/version.h unistring/woe32dll.h
+
+# Directories that contain some CLEANFILES.
+CLEANDIRS =
+CLEANDIRS_NOT_IN_SRCDIR = unistring
+
+# List of header files that get installed and that declare 'extern' symbols.
+HEADERS_WITH_EXTERNS = \
+ unitypes.h \
+ unistr.h \
+ uniconv.h \
+ unistdio.h \
+ uniname.h \
+ unictype.h \
+ uniwidth.h \
+ uniwbrk.h \
+ unilbrk.h \
+ uninorm.h \
+ unicase.h \
+ localcharset.h \
+ iconveh.h \
+ unistring/version.in.h
+
+@WOE32_FALSE@WOE32_LIBADD =
+@WOE32_TRUE@WOE32_LIBADD = libunistring.res.lo
+
+# Libtool's library version information for libunistring.
+# See the libtool documentation, section "Library interface versions".
+LTV_CURRENT = 1
+LTV_REVISION = 0
+LTV_AGE = 1
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .sed .sin .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) --gnits lib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits lib/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):
+exported.sh: $(top_builddir)/config.status $(srcdir)/exported.sh.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+unicase/$(am__dirstamp):
+ @$(MKDIR_P) unicase
+ @: > unicase/$(am__dirstamp)
+unicase/cased.lo: unicase/$(am__dirstamp)
+unicase/empty-prefix-context.lo: unicase/$(am__dirstamp)
+unicase/empty-suffix-context.lo: unicase/$(am__dirstamp)
+unicase/ignorable.lo: unicase/$(am__dirstamp)
+unicase/locale-language.lo: unicase/$(am__dirstamp)
+unicase/special-casing.lo: unicase/$(am__dirstamp)
+unicase/tocasefold.lo: unicase/$(am__dirstamp)
+unicase/tolower.lo: unicase/$(am__dirstamp)
+unicase/totitle.lo: unicase/$(am__dirstamp)
+unicase/toupper.lo: unicase/$(am__dirstamp)
+unicase/u16-casecmp.lo: unicase/$(am__dirstamp)
+unicase/u16-casecoll.lo: unicase/$(am__dirstamp)
+unicase/u16-casefold.lo: unicase/$(am__dirstamp)
+unicase/u16-casemap.lo: unicase/$(am__dirstamp)
+unicase/u16-casexfrm.lo: unicase/$(am__dirstamp)
+unicase/u16-ct-casefold.lo: unicase/$(am__dirstamp)
+unicase/u16-ct-tolower.lo: unicase/$(am__dirstamp)
+unicase/u16-ct-totitle.lo: unicase/$(am__dirstamp)
+unicase/u16-ct-toupper.lo: unicase/$(am__dirstamp)
+unicase/u16-is-cased.lo: unicase/$(am__dirstamp)
+unicase/u16-is-casefolded.lo: unicase/$(am__dirstamp)
+unicase/u16-is-invariant.lo: unicase/$(am__dirstamp)
+unicase/u16-is-lowercase.lo: unicase/$(am__dirstamp)
+unicase/u16-is-titlecase.lo: unicase/$(am__dirstamp)
+unicase/u16-is-uppercase.lo: unicase/$(am__dirstamp)
+unicase/u16-tolower.lo: unicase/$(am__dirstamp)
+unicase/u16-totitle.lo: unicase/$(am__dirstamp)
+unicase/u16-toupper.lo: unicase/$(am__dirstamp)
+unicase/u32-casecmp.lo: unicase/$(am__dirstamp)
+unicase/u32-casecoll.lo: unicase/$(am__dirstamp)
+unicase/u32-casefold.lo: unicase/$(am__dirstamp)
+unicase/u32-casemap.lo: unicase/$(am__dirstamp)
+unicase/u32-casexfrm.lo: unicase/$(am__dirstamp)
+unicase/u32-ct-casefold.lo: unicase/$(am__dirstamp)
+unicase/u32-ct-tolower.lo: unicase/$(am__dirstamp)
+unicase/u32-ct-totitle.lo: unicase/$(am__dirstamp)
+unicase/u32-ct-toupper.lo: unicase/$(am__dirstamp)
+unicase/u32-is-cased.lo: unicase/$(am__dirstamp)
+unicase/u32-is-casefolded.lo: unicase/$(am__dirstamp)
+unicase/u32-is-invariant.lo: unicase/$(am__dirstamp)
+unicase/u32-is-lowercase.lo: unicase/$(am__dirstamp)
+unicase/u32-is-titlecase.lo: unicase/$(am__dirstamp)
+unicase/u32-is-uppercase.lo: unicase/$(am__dirstamp)
+unicase/u32-tolower.lo: unicase/$(am__dirstamp)
+unicase/u32-totitle.lo: unicase/$(am__dirstamp)
+unicase/u32-toupper.lo: unicase/$(am__dirstamp)
+unicase/u8-casecmp.lo: unicase/$(am__dirstamp)
+unicase/u8-casecoll.lo: unicase/$(am__dirstamp)
+unicase/u8-casefold.lo: unicase/$(am__dirstamp)
+unicase/u8-casemap.lo: unicase/$(am__dirstamp)
+unicase/u8-casexfrm.lo: unicase/$(am__dirstamp)
+unicase/u8-ct-casefold.lo: unicase/$(am__dirstamp)
+unicase/u8-ct-tolower.lo: unicase/$(am__dirstamp)
+unicase/u8-ct-totitle.lo: unicase/$(am__dirstamp)
+unicase/u8-ct-toupper.lo: unicase/$(am__dirstamp)
+unicase/u8-is-cased.lo: unicase/$(am__dirstamp)
+unicase/u8-is-casefolded.lo: unicase/$(am__dirstamp)
+unicase/u8-is-invariant.lo: unicase/$(am__dirstamp)
+unicase/u8-is-lowercase.lo: unicase/$(am__dirstamp)
+unicase/u8-is-titlecase.lo: unicase/$(am__dirstamp)
+unicase/u8-is-uppercase.lo: unicase/$(am__dirstamp)
+unicase/u8-tolower.lo: unicase/$(am__dirstamp)
+unicase/u8-totitle.lo: unicase/$(am__dirstamp)
+unicase/u8-toupper.lo: unicase/$(am__dirstamp)
+unicase/ulc-casecmp.lo: unicase/$(am__dirstamp)
+unicase/ulc-casecoll.lo: unicase/$(am__dirstamp)
+unicase/ulc-casexfrm.lo: unicase/$(am__dirstamp)
+uniconv/$(am__dirstamp):
+ @$(MKDIR_P) uniconv
+ @: > uniconv/$(am__dirstamp)
+uniconv/u16-conv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u16-conv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u16-strconv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u16-strconv-from-locale.lo: uniconv/$(am__dirstamp)
+uniconv/u16-strconv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u16-strconv-to-locale.lo: uniconv/$(am__dirstamp)
+uniconv/u32-conv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u32-conv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u32-strconv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u32-strconv-from-locale.lo: uniconv/$(am__dirstamp)
+uniconv/u32-strconv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u32-strconv-to-locale.lo: uniconv/$(am__dirstamp)
+uniconv/u8-conv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u8-conv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u8-strconv-from-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u8-strconv-from-locale.lo: uniconv/$(am__dirstamp)
+uniconv/u8-strconv-to-enc.lo: uniconv/$(am__dirstamp)
+uniconv/u8-strconv-to-locale.lo: uniconv/$(am__dirstamp)
+unictype/$(am__dirstamp):
+ @$(MKDIR_P) unictype
+ @: > unictype/$(am__dirstamp)
+unictype/bidi_byname.lo: unictype/$(am__dirstamp)
+unictype/bidi_name.lo: unictype/$(am__dirstamp)
+unictype/bidi_of.lo: unictype/$(am__dirstamp)
+unictype/bidi_test.lo: unictype/$(am__dirstamp)
+unictype/blocks.lo: unictype/$(am__dirstamp)
+unictype/block_test.lo: unictype/$(am__dirstamp)
+unictype/categ_C.lo: unictype/$(am__dirstamp)
+unictype/categ_Cc.lo: unictype/$(am__dirstamp)
+unictype/categ_Cf.lo: unictype/$(am__dirstamp)
+unictype/categ_Cn.lo: unictype/$(am__dirstamp)
+unictype/categ_Co.lo: unictype/$(am__dirstamp)
+unictype/categ_Cs.lo: unictype/$(am__dirstamp)
+unictype/categ_L.lo: unictype/$(am__dirstamp)
+unictype/categ_Ll.lo: unictype/$(am__dirstamp)
+unictype/categ_Lm.lo: unictype/$(am__dirstamp)
+unictype/categ_Lo.lo: unictype/$(am__dirstamp)
+unictype/categ_Lt.lo: unictype/$(am__dirstamp)
+unictype/categ_Lu.lo: unictype/$(am__dirstamp)
+unictype/categ_M.lo: unictype/$(am__dirstamp)
+unictype/categ_Mc.lo: unictype/$(am__dirstamp)
+unictype/categ_Me.lo: unictype/$(am__dirstamp)
+unictype/categ_Mn.lo: unictype/$(am__dirstamp)
+unictype/categ_N.lo: unictype/$(am__dirstamp)
+unictype/categ_Nd.lo: unictype/$(am__dirstamp)
+unictype/categ_Nl.lo: unictype/$(am__dirstamp)
+unictype/categ_No.lo: unictype/$(am__dirstamp)
+unictype/categ_P.lo: unictype/$(am__dirstamp)
+unictype/categ_Pc.lo: unictype/$(am__dirstamp)
+unictype/categ_Pd.lo: unictype/$(am__dirstamp)
+unictype/categ_Pe.lo: unictype/$(am__dirstamp)
+unictype/categ_Pf.lo: unictype/$(am__dirstamp)
+unictype/categ_Pi.lo: unictype/$(am__dirstamp)
+unictype/categ_Po.lo: unictype/$(am__dirstamp)
+unictype/categ_Ps.lo: unictype/$(am__dirstamp)
+unictype/categ_S.lo: unictype/$(am__dirstamp)
+unictype/categ_Sc.lo: unictype/$(am__dirstamp)
+unictype/categ_Sk.lo: unictype/$(am__dirstamp)
+unictype/categ_Sm.lo: unictype/$(am__dirstamp)
+unictype/categ_So.lo: unictype/$(am__dirstamp)
+unictype/categ_Z.lo: unictype/$(am__dirstamp)
+unictype/categ_Zl.lo: unictype/$(am__dirstamp)
+unictype/categ_Zp.lo: unictype/$(am__dirstamp)
+unictype/categ_Zs.lo: unictype/$(am__dirstamp)
+unictype/categ_and.lo: unictype/$(am__dirstamp)
+unictype/categ_and_not.lo: unictype/$(am__dirstamp)
+unictype/categ_byname.lo: unictype/$(am__dirstamp)
+unictype/categ_name.lo: unictype/$(am__dirstamp)
+unictype/categ_none.lo: unictype/$(am__dirstamp)
+unictype/categ_of.lo: unictype/$(am__dirstamp)
+unictype/categ_or.lo: unictype/$(am__dirstamp)
+unictype/categ_test.lo: unictype/$(am__dirstamp)
+unictype/combining.lo: unictype/$(am__dirstamp)
+unictype/ctype_alnum.lo: unictype/$(am__dirstamp)
+unictype/ctype_alpha.lo: unictype/$(am__dirstamp)
+unictype/ctype_blank.lo: unictype/$(am__dirstamp)
+unictype/ctype_cntrl.lo: unictype/$(am__dirstamp)
+unictype/ctype_digit.lo: unictype/$(am__dirstamp)
+unictype/ctype_graph.lo: unictype/$(am__dirstamp)
+unictype/ctype_lower.lo: unictype/$(am__dirstamp)
+unictype/ctype_print.lo: unictype/$(am__dirstamp)
+unictype/ctype_punct.lo: unictype/$(am__dirstamp)
+unictype/ctype_space.lo: unictype/$(am__dirstamp)
+unictype/ctype_upper.lo: unictype/$(am__dirstamp)
+unictype/ctype_xdigit.lo: unictype/$(am__dirstamp)
+unictype/decdigit.lo: unictype/$(am__dirstamp)
+unictype/digit.lo: unictype/$(am__dirstamp)
+unictype/mirror.lo: unictype/$(am__dirstamp)
+unictype/numeric.lo: unictype/$(am__dirstamp)
+unictype/pr_alphabetic.lo: unictype/$(am__dirstamp)
+unictype/pr_ascii_hex_digit.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_arabic_digit.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_arabic_right_to_left.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_block_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_boundary_neutral.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_common_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_control.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_embedding_or_override.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_eur_num_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_eur_num_terminator.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_european_digit.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_hebrew_right_to_left.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_left_to_right.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_non_spacing_mark.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_other_neutral.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_pdf.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_segment_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_bidi_whitespace.lo: unictype/$(am__dirstamp)
+unictype/pr_byname.lo: unictype/$(am__dirstamp)
+unictype/pr_combining.lo: unictype/$(am__dirstamp)
+unictype/pr_composite.lo: unictype/$(am__dirstamp)
+unictype/pr_currency_symbol.lo: unictype/$(am__dirstamp)
+unictype/pr_dash.lo: unictype/$(am__dirstamp)
+unictype/pr_decimal_digit.lo: unictype/$(am__dirstamp)
+unictype/pr_default_ignorable_code_point.lo: unictype/$(am__dirstamp)
+unictype/pr_deprecated.lo: unictype/$(am__dirstamp)
+unictype/pr_diacritic.lo: unictype/$(am__dirstamp)
+unictype/pr_extender.lo: unictype/$(am__dirstamp)
+unictype/pr_format_control.lo: unictype/$(am__dirstamp)
+unictype/pr_grapheme_base.lo: unictype/$(am__dirstamp)
+unictype/pr_grapheme_extend.lo: unictype/$(am__dirstamp)
+unictype/pr_grapheme_link.lo: unictype/$(am__dirstamp)
+unictype/pr_hex_digit.lo: unictype/$(am__dirstamp)
+unictype/pr_hyphen.lo: unictype/$(am__dirstamp)
+unictype/pr_id_continue.lo: unictype/$(am__dirstamp)
+unictype/pr_id_start.lo: unictype/$(am__dirstamp)
+unictype/pr_ideographic.lo: unictype/$(am__dirstamp)
+unictype/pr_ids_binary_operator.lo: unictype/$(am__dirstamp)
+unictype/pr_ids_trinary_operator.lo: unictype/$(am__dirstamp)
+unictype/pr_ignorable_control.lo: unictype/$(am__dirstamp)
+unictype/pr_iso_control.lo: unictype/$(am__dirstamp)
+unictype/pr_join_control.lo: unictype/$(am__dirstamp)
+unictype/pr_left_of_pair.lo: unictype/$(am__dirstamp)
+unictype/pr_line_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_logical_order_exception.lo: unictype/$(am__dirstamp)
+unictype/pr_lowercase.lo: unictype/$(am__dirstamp)
+unictype/pr_math.lo: unictype/$(am__dirstamp)
+unictype/pr_non_break.lo: unictype/$(am__dirstamp)
+unictype/pr_not_a_character.lo: unictype/$(am__dirstamp)
+unictype/pr_numeric.lo: unictype/$(am__dirstamp)
+unictype/pr_other_alphabetic.lo: unictype/$(am__dirstamp)
+unictype/pr_other_default_ignorable_code_point.lo: \
+ unictype/$(am__dirstamp)
+unictype/pr_other_grapheme_extend.lo: unictype/$(am__dirstamp)
+unictype/pr_other_id_continue.lo: unictype/$(am__dirstamp)
+unictype/pr_other_id_start.lo: unictype/$(am__dirstamp)
+unictype/pr_other_lowercase.lo: unictype/$(am__dirstamp)
+unictype/pr_other_math.lo: unictype/$(am__dirstamp)
+unictype/pr_other_uppercase.lo: unictype/$(am__dirstamp)
+unictype/pr_paired_punctuation.lo: unictype/$(am__dirstamp)
+unictype/pr_paragraph_separator.lo: unictype/$(am__dirstamp)
+unictype/pr_pattern_syntax.lo: unictype/$(am__dirstamp)
+unictype/pr_pattern_white_space.lo: unictype/$(am__dirstamp)
+unictype/pr_private_use.lo: unictype/$(am__dirstamp)
+unictype/pr_punctuation.lo: unictype/$(am__dirstamp)
+unictype/pr_quotation_mark.lo: unictype/$(am__dirstamp)
+unictype/pr_radical.lo: unictype/$(am__dirstamp)
+unictype/pr_sentence_terminal.lo: unictype/$(am__dirstamp)
+unictype/pr_soft_dotted.lo: unictype/$(am__dirstamp)
+unictype/pr_space.lo: unictype/$(am__dirstamp)
+unictype/pr_terminal_punctuation.lo: unictype/$(am__dirstamp)
+unictype/pr_test.lo: unictype/$(am__dirstamp)
+unictype/pr_titlecase.lo: unictype/$(am__dirstamp)
+unictype/pr_unassigned_code_value.lo: unictype/$(am__dirstamp)
+unictype/pr_unified_ideograph.lo: unictype/$(am__dirstamp)
+unictype/pr_uppercase.lo: unictype/$(am__dirstamp)
+unictype/pr_variation_selector.lo: unictype/$(am__dirstamp)
+unictype/pr_white_space.lo: unictype/$(am__dirstamp)
+unictype/pr_xid_continue.lo: unictype/$(am__dirstamp)
+unictype/pr_xid_start.lo: unictype/$(am__dirstamp)
+unictype/pr_zero_width.lo: unictype/$(am__dirstamp)
+unictype/scripts.lo: unictype/$(am__dirstamp)
+unictype/sy_c_ident.lo: unictype/$(am__dirstamp)
+unictype/sy_c_whitespace.lo: unictype/$(am__dirstamp)
+unictype/sy_java_ident.lo: unictype/$(am__dirstamp)
+unictype/sy_java_whitespace.lo: unictype/$(am__dirstamp)
+unilbrk/$(am__dirstamp):
+ @$(MKDIR_P) unilbrk
+ @: > unilbrk/$(am__dirstamp)
+unilbrk/lbrktables.lo: unilbrk/$(am__dirstamp)
+unilbrk/u16-possible-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/u16-width-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/u32-possible-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/u32-width-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/u8-possible-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/u8-width-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/ulc-common.lo: unilbrk/$(am__dirstamp)
+unilbrk/ulc-possible-linebreaks.lo: unilbrk/$(am__dirstamp)
+unilbrk/ulc-width-linebreaks.lo: unilbrk/$(am__dirstamp)
+uniname/$(am__dirstamp):
+ @$(MKDIR_P) uniname
+ @: > uniname/$(am__dirstamp)
+uniname/uniname.lo: uniname/$(am__dirstamp)
+uninorm/$(am__dirstamp):
+ @$(MKDIR_P) uninorm
+ @: > uninorm/$(am__dirstamp)
+uninorm/canonical-decomposition.lo: uninorm/$(am__dirstamp)
+uninorm/compat-decomposition.lo: uninorm/$(am__dirstamp)
+uninorm/composition.lo: uninorm/$(am__dirstamp)
+uninorm/decompose-internal.lo: uninorm/$(am__dirstamp)
+uninorm/decomposing-form.lo: uninorm/$(am__dirstamp)
+uninorm/decomposition.lo: uninorm/$(am__dirstamp)
+uninorm/decomposition-table.lo: uninorm/$(am__dirstamp)
+uninorm/uninorm-filter.lo: uninorm/$(am__dirstamp)
+uninorm/nfc.lo: uninorm/$(am__dirstamp)
+uninorm/nfd.lo: uninorm/$(am__dirstamp)
+uninorm/nfkc.lo: uninorm/$(am__dirstamp)
+uninorm/nfkd.lo: uninorm/$(am__dirstamp)
+uninorm/u16-normalize.lo: uninorm/$(am__dirstamp)
+uninorm/u16-normcmp.lo: uninorm/$(am__dirstamp)
+uninorm/u16-normcoll.lo: uninorm/$(am__dirstamp)
+uninorm/u16-normxfrm.lo: uninorm/$(am__dirstamp)
+uninorm/u32-normalize.lo: uninorm/$(am__dirstamp)
+uninorm/u32-normcmp.lo: uninorm/$(am__dirstamp)
+uninorm/u32-normcoll.lo: uninorm/$(am__dirstamp)
+uninorm/u32-normxfrm.lo: uninorm/$(am__dirstamp)
+uninorm/u8-normalize.lo: uninorm/$(am__dirstamp)
+uninorm/u8-normcmp.lo: uninorm/$(am__dirstamp)
+uninorm/u8-normcoll.lo: uninorm/$(am__dirstamp)
+uninorm/u8-normxfrm.lo: uninorm/$(am__dirstamp)
+unistdio/$(am__dirstamp):
+ @$(MKDIR_P) unistdio
+ @: > unistdio/$(am__dirstamp)
+unistdio/u-printf-args.lo: unistdio/$(am__dirstamp)
+unistdio/u16-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-printf-parse.lo: unistdio/$(am__dirstamp)
+unistdio/u16-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-u16-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u16-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-printf-parse.lo: unistdio/$(am__dirstamp)
+unistdio/u32-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-u32-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u32-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-printf-parse.lo: unistdio/$(am__dirstamp)
+unistdio/u8-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-u8-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/u8-vsprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-asnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-asprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-fprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-printf-parse.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-snprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-sprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-vasnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-vasprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-vfprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-vsnprintf.lo: unistdio/$(am__dirstamp)
+unistdio/ulc-vsprintf.lo: unistdio/$(am__dirstamp)
+unistr/$(am__dirstamp):
+ @$(MKDIR_P) unistr
+ @: > unistr/$(am__dirstamp)
+unistr/u16-check.lo: unistr/$(am__dirstamp)
+unistr/u16-chr.lo: unistr/$(am__dirstamp)
+unistr/u16-cmp.lo: unistr/$(am__dirstamp)
+unistr/u16-cmp2.lo: unistr/$(am__dirstamp)
+unistr/u16-cpy.lo: unistr/$(am__dirstamp)
+unistr/u16-cpy-alloc.lo: unistr/$(am__dirstamp)
+unistr/u16-endswith.lo: unistr/$(am__dirstamp)
+unistr/u16-mblen.lo: unistr/$(am__dirstamp)
+unistr/u16-mbsnlen.lo: unistr/$(am__dirstamp)
+unistr/u16-mbtouc.lo: unistr/$(am__dirstamp)
+unistr/u16-mbtouc-aux.lo: unistr/$(am__dirstamp)
+unistr/u16-mbtouc-unsafe.lo: unistr/$(am__dirstamp)
+unistr/u16-mbtouc-unsafe-aux.lo: unistr/$(am__dirstamp)
+unistr/u16-mbtoucr.lo: unistr/$(am__dirstamp)
+unistr/u16-move.lo: unistr/$(am__dirstamp)
+unistr/u16-next.lo: unistr/$(am__dirstamp)
+unistr/u16-prev.lo: unistr/$(am__dirstamp)
+unistr/u16-set.lo: unistr/$(am__dirstamp)
+unistr/u16-startswith.lo: unistr/$(am__dirstamp)
+unistr/u16-stpcpy.lo: unistr/$(am__dirstamp)
+unistr/u16-stpncpy.lo: unistr/$(am__dirstamp)
+unistr/u16-strcat.lo: unistr/$(am__dirstamp)
+unistr/u16-strchr.lo: unistr/$(am__dirstamp)
+unistr/u16-strcmp.lo: unistr/$(am__dirstamp)
+unistr/u16-strcoll.lo: unistr/$(am__dirstamp)
+unistr/u16-strcpy.lo: unistr/$(am__dirstamp)
+unistr/u16-strcspn.lo: unistr/$(am__dirstamp)
+unistr/u16-strdup.lo: unistr/$(am__dirstamp)
+unistr/u16-strlen.lo: unistr/$(am__dirstamp)
+unistr/u16-strmblen.lo: unistr/$(am__dirstamp)
+unistr/u16-strmbtouc.lo: unistr/$(am__dirstamp)
+unistr/u16-strncat.lo: unistr/$(am__dirstamp)
+unistr/u16-strncmp.lo: unistr/$(am__dirstamp)
+unistr/u16-strncpy.lo: unistr/$(am__dirstamp)
+unistr/u16-strnlen.lo: unistr/$(am__dirstamp)
+unistr/u16-strpbrk.lo: unistr/$(am__dirstamp)
+unistr/u16-strrchr.lo: unistr/$(am__dirstamp)
+unistr/u16-strspn.lo: unistr/$(am__dirstamp)
+unistr/u16-strstr.lo: unistr/$(am__dirstamp)
+unistr/u16-strtok.lo: unistr/$(am__dirstamp)
+unistr/u16-to-u32.lo: unistr/$(am__dirstamp)
+unistr/u16-to-u8.lo: unistr/$(am__dirstamp)
+unistr/u16-uctomb.lo: unistr/$(am__dirstamp)
+unistr/u16-uctomb-aux.lo: unistr/$(am__dirstamp)
+unistr/u32-check.lo: unistr/$(am__dirstamp)
+unistr/u32-chr.lo: unistr/$(am__dirstamp)
+unistr/u32-cmp.lo: unistr/$(am__dirstamp)
+unistr/u32-cmp2.lo: unistr/$(am__dirstamp)
+unistr/u32-cpy.lo: unistr/$(am__dirstamp)
+unistr/u32-cpy-alloc.lo: unistr/$(am__dirstamp)
+unistr/u32-endswith.lo: unistr/$(am__dirstamp)
+unistr/u32-mblen.lo: unistr/$(am__dirstamp)
+unistr/u32-mbsnlen.lo: unistr/$(am__dirstamp)
+unistr/u32-mbtouc.lo: unistr/$(am__dirstamp)
+unistr/u32-mbtouc-unsafe.lo: unistr/$(am__dirstamp)
+unistr/u32-mbtoucr.lo: unistr/$(am__dirstamp)
+unistr/u32-move.lo: unistr/$(am__dirstamp)
+unistr/u32-next.lo: unistr/$(am__dirstamp)
+unistr/u32-prev.lo: unistr/$(am__dirstamp)
+unistr/u32-set.lo: unistr/$(am__dirstamp)
+unistr/u32-startswith.lo: unistr/$(am__dirstamp)
+unistr/u32-stpcpy.lo: unistr/$(am__dirstamp)
+unistr/u32-stpncpy.lo: unistr/$(am__dirstamp)
+unistr/u32-strcat.lo: unistr/$(am__dirstamp)
+unistr/u32-strchr.lo: unistr/$(am__dirstamp)
+unistr/u32-strcmp.lo: unistr/$(am__dirstamp)
+unistr/u32-strcoll.lo: unistr/$(am__dirstamp)
+unistr/u32-strcpy.lo: unistr/$(am__dirstamp)
+unistr/u32-strcspn.lo: unistr/$(am__dirstamp)
+unistr/u32-strdup.lo: unistr/$(am__dirstamp)
+unistr/u32-strlen.lo: unistr/$(am__dirstamp)
+unistr/u32-strmblen.lo: unistr/$(am__dirstamp)
+unistr/u32-strmbtouc.lo: unistr/$(am__dirstamp)
+unistr/u32-strncat.lo: unistr/$(am__dirstamp)
+unistr/u32-strncmp.lo: unistr/$(am__dirstamp)
+unistr/u32-strncpy.lo: unistr/$(am__dirstamp)
+unistr/u32-strnlen.lo: unistr/$(am__dirstamp)
+unistr/u32-strpbrk.lo: unistr/$(am__dirstamp)
+unistr/u32-strrchr.lo: unistr/$(am__dirstamp)
+unistr/u32-strspn.lo: unistr/$(am__dirstamp)
+unistr/u32-strstr.lo: unistr/$(am__dirstamp)
+unistr/u32-strtok.lo: unistr/$(am__dirstamp)
+unistr/u32-to-u16.lo: unistr/$(am__dirstamp)
+unistr/u32-to-u8.lo: unistr/$(am__dirstamp)
+unistr/u32-uctomb.lo: unistr/$(am__dirstamp)
+unistr/u8-check.lo: unistr/$(am__dirstamp)
+unistr/u8-chr.lo: unistr/$(am__dirstamp)
+unistr/u8-cmp.lo: unistr/$(am__dirstamp)
+unistr/u8-cmp2.lo: unistr/$(am__dirstamp)
+unistr/u8-cpy.lo: unistr/$(am__dirstamp)
+unistr/u8-cpy-alloc.lo: unistr/$(am__dirstamp)
+unistr/u8-endswith.lo: unistr/$(am__dirstamp)
+unistr/u8-mblen.lo: unistr/$(am__dirstamp)
+unistr/u8-mbsnlen.lo: unistr/$(am__dirstamp)
+unistr/u8-mbtouc.lo: unistr/$(am__dirstamp)
+unistr/u8-mbtouc-aux.lo: unistr/$(am__dirstamp)
+unistr/u8-mbtouc-unsafe.lo: unistr/$(am__dirstamp)
+unistr/u8-mbtouc-unsafe-aux.lo: unistr/$(am__dirstamp)
+unistr/u8-mbtoucr.lo: unistr/$(am__dirstamp)
+unistr/u8-move.lo: unistr/$(am__dirstamp)
+unistr/u8-next.lo: unistr/$(am__dirstamp)
+unistr/u8-prev.lo: unistr/$(am__dirstamp)
+unistr/u8-set.lo: unistr/$(am__dirstamp)
+unistr/u8-startswith.lo: unistr/$(am__dirstamp)
+unistr/u8-stpcpy.lo: unistr/$(am__dirstamp)
+unistr/u8-stpncpy.lo: unistr/$(am__dirstamp)
+unistr/u8-strcat.lo: unistr/$(am__dirstamp)
+unistr/u8-strchr.lo: unistr/$(am__dirstamp)
+unistr/u8-strcmp.lo: unistr/$(am__dirstamp)
+unistr/u8-strcoll.lo: unistr/$(am__dirstamp)
+unistr/u8-strcpy.lo: unistr/$(am__dirstamp)
+unistr/u8-strcspn.lo: unistr/$(am__dirstamp)
+unistr/u8-strdup.lo: unistr/$(am__dirstamp)
+unistr/u8-strlen.lo: unistr/$(am__dirstamp)
+unistr/u8-strmblen.lo: unistr/$(am__dirstamp)
+unistr/u8-strmbtouc.lo: unistr/$(am__dirstamp)
+unistr/u8-strncat.lo: unistr/$(am__dirstamp)
+unistr/u8-strncmp.lo: unistr/$(am__dirstamp)
+unistr/u8-strncpy.lo: unistr/$(am__dirstamp)
+unistr/u8-strnlen.lo: unistr/$(am__dirstamp)
+unistr/u8-strpbrk.lo: unistr/$(am__dirstamp)
+unistr/u8-strrchr.lo: unistr/$(am__dirstamp)
+unistr/u8-strspn.lo: unistr/$(am__dirstamp)
+unistr/u8-strstr.lo: unistr/$(am__dirstamp)
+unistr/u8-strtok.lo: unistr/$(am__dirstamp)
+unistr/u8-to-u16.lo: unistr/$(am__dirstamp)
+unistr/u8-to-u32.lo: unistr/$(am__dirstamp)
+unistr/u8-uctomb.lo: unistr/$(am__dirstamp)
+unistr/u8-uctomb-aux.lo: unistr/$(am__dirstamp)
+uniwbrk/$(am__dirstamp):
+ @$(MKDIR_P) uniwbrk
+ @: > uniwbrk/$(am__dirstamp)
+uniwbrk/wbrktable.lo: uniwbrk/$(am__dirstamp)
+uniwbrk/u16-wordbreaks.lo: uniwbrk/$(am__dirstamp)
+uniwbrk/u32-wordbreaks.lo: uniwbrk/$(am__dirstamp)
+uniwbrk/u8-wordbreaks.lo: uniwbrk/$(am__dirstamp)
+uniwbrk/ulc-wordbreaks.lo: uniwbrk/$(am__dirstamp)
+uniwbrk/wordbreak-property.lo: uniwbrk/$(am__dirstamp)
+uniwidth/$(am__dirstamp):
+ @$(MKDIR_P) uniwidth
+ @: > uniwidth/$(am__dirstamp)
+uniwidth/u16-strwidth.lo: uniwidth/$(am__dirstamp)
+uniwidth/u16-width.lo: uniwidth/$(am__dirstamp)
+uniwidth/u32-strwidth.lo: uniwidth/$(am__dirstamp)
+uniwidth/u32-width.lo: uniwidth/$(am__dirstamp)
+uniwidth/u8-strwidth.lo: uniwidth/$(am__dirstamp)
+uniwidth/u8-width.lo: uniwidth/$(am__dirstamp)
+uniwidth/width.lo: uniwidth/$(am__dirstamp)
+../woe32dll/$(am__dirstamp):
+ @$(MKDIR_P) ../woe32dll
+ @: > ../woe32dll/$(am__dirstamp)
+../woe32dll/unistring-exports.lo: ../woe32dll/$(am__dirstamp)
+libunistring.la: $(libunistring_la_OBJECTS) $(libunistring_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libunistring_la_LINK) -rpath $(libdir) $(libunistring_la_OBJECTS) $(libunistring_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f ../woe32dll/unistring-exports.$(OBJEXT)
+ -rm -f ../woe32dll/unistring-exports.lo
+ -rm -f unicase/cased.$(OBJEXT)
+ -rm -f unicase/cased.lo
+ -rm -f unicase/empty-prefix-context.$(OBJEXT)
+ -rm -f unicase/empty-prefix-context.lo
+ -rm -f unicase/empty-suffix-context.$(OBJEXT)
+ -rm -f unicase/empty-suffix-context.lo
+ -rm -f unicase/ignorable.$(OBJEXT)
+ -rm -f unicase/ignorable.lo
+ -rm -f unicase/locale-language.$(OBJEXT)
+ -rm -f unicase/locale-language.lo
+ -rm -f unicase/special-casing.$(OBJEXT)
+ -rm -f unicase/special-casing.lo
+ -rm -f unicase/tocasefold.$(OBJEXT)
+ -rm -f unicase/tocasefold.lo
+ -rm -f unicase/tolower.$(OBJEXT)
+ -rm -f unicase/tolower.lo
+ -rm -f unicase/totitle.$(OBJEXT)
+ -rm -f unicase/totitle.lo
+ -rm -f unicase/toupper.$(OBJEXT)
+ -rm -f unicase/toupper.lo
+ -rm -f unicase/u16-casecmp.$(OBJEXT)
+ -rm -f unicase/u16-casecmp.lo
+ -rm -f unicase/u16-casecoll.$(OBJEXT)
+ -rm -f unicase/u16-casecoll.lo
+ -rm -f unicase/u16-casefold.$(OBJEXT)
+ -rm -f unicase/u16-casefold.lo
+ -rm -f unicase/u16-casemap.$(OBJEXT)
+ -rm -f unicase/u16-casemap.lo
+ -rm -f unicase/u16-casexfrm.$(OBJEXT)
+ -rm -f unicase/u16-casexfrm.lo
+ -rm -f unicase/u16-ct-casefold.$(OBJEXT)
+ -rm -f unicase/u16-ct-casefold.lo
+ -rm -f unicase/u16-ct-tolower.$(OBJEXT)
+ -rm -f unicase/u16-ct-tolower.lo
+ -rm -f unicase/u16-ct-totitle.$(OBJEXT)
+ -rm -f unicase/u16-ct-totitle.lo
+ -rm -f unicase/u16-ct-toupper.$(OBJEXT)
+ -rm -f unicase/u16-ct-toupper.lo
+ -rm -f unicase/u16-is-cased.$(OBJEXT)
+ -rm -f unicase/u16-is-cased.lo
+ -rm -f unicase/u16-is-casefolded.$(OBJEXT)
+ -rm -f unicase/u16-is-casefolded.lo
+ -rm -f unicase/u16-is-invariant.$(OBJEXT)
+ -rm -f unicase/u16-is-invariant.lo
+ -rm -f unicase/u16-is-lowercase.$(OBJEXT)
+ -rm -f unicase/u16-is-lowercase.lo
+ -rm -f unicase/u16-is-titlecase.$(OBJEXT)
+ -rm -f unicase/u16-is-titlecase.lo
+ -rm -f unicase/u16-is-uppercase.$(OBJEXT)
+ -rm -f unicase/u16-is-uppercase.lo
+ -rm -f unicase/u16-tolower.$(OBJEXT)
+ -rm -f unicase/u16-tolower.lo
+ -rm -f unicase/u16-totitle.$(OBJEXT)
+ -rm -f unicase/u16-totitle.lo
+ -rm -f unicase/u16-toupper.$(OBJEXT)
+ -rm -f unicase/u16-toupper.lo
+ -rm -f unicase/u32-casecmp.$(OBJEXT)
+ -rm -f unicase/u32-casecmp.lo
+ -rm -f unicase/u32-casecoll.$(OBJEXT)
+ -rm -f unicase/u32-casecoll.lo
+ -rm -f unicase/u32-casefold.$(OBJEXT)
+ -rm -f unicase/u32-casefold.lo
+ -rm -f unicase/u32-casemap.$(OBJEXT)
+ -rm -f unicase/u32-casemap.lo
+ -rm -f unicase/u32-casexfrm.$(OBJEXT)
+ -rm -f unicase/u32-casexfrm.lo
+ -rm -f unicase/u32-ct-casefold.$(OBJEXT)
+ -rm -f unicase/u32-ct-casefold.lo
+ -rm -f unicase/u32-ct-tolower.$(OBJEXT)
+ -rm -f unicase/u32-ct-tolower.lo
+ -rm -f unicase/u32-ct-totitle.$(OBJEXT)
+ -rm -f unicase/u32-ct-totitle.lo
+ -rm -f unicase/u32-ct-toupper.$(OBJEXT)
+ -rm -f unicase/u32-ct-toupper.lo
+ -rm -f unicase/u32-is-cased.$(OBJEXT)
+ -rm -f unicase/u32-is-cased.lo
+ -rm -f unicase/u32-is-casefolded.$(OBJEXT)
+ -rm -f unicase/u32-is-casefolded.lo
+ -rm -f unicase/u32-is-invariant.$(OBJEXT)
+ -rm -f unicase/u32-is-invariant.lo
+ -rm -f unicase/u32-is-lowercase.$(OBJEXT)
+ -rm -f unicase/u32-is-lowercase.lo
+ -rm -f unicase/u32-is-titlecase.$(OBJEXT)
+ -rm -f unicase/u32-is-titlecase.lo
+ -rm -f unicase/u32-is-uppercase.$(OBJEXT)
+ -rm -f unicase/u32-is-uppercase.lo
+ -rm -f unicase/u32-tolower.$(OBJEXT)
+ -rm -f unicase/u32-tolower.lo
+ -rm -f unicase/u32-totitle.$(OBJEXT)
+ -rm -f unicase/u32-totitle.lo
+ -rm -f unicase/u32-toupper.$(OBJEXT)
+ -rm -f unicase/u32-toupper.lo
+ -rm -f unicase/u8-casecmp.$(OBJEXT)
+ -rm -f unicase/u8-casecmp.lo
+ -rm -f unicase/u8-casecoll.$(OBJEXT)
+ -rm -f unicase/u8-casecoll.lo
+ -rm -f unicase/u8-casefold.$(OBJEXT)
+ -rm -f unicase/u8-casefold.lo
+ -rm -f unicase/u8-casemap.$(OBJEXT)
+ -rm -f unicase/u8-casemap.lo
+ -rm -f unicase/u8-casexfrm.$(OBJEXT)
+ -rm -f unicase/u8-casexfrm.lo
+ -rm -f unicase/u8-ct-casefold.$(OBJEXT)
+ -rm -f unicase/u8-ct-casefold.lo
+ -rm -f unicase/u8-ct-tolower.$(OBJEXT)
+ -rm -f unicase/u8-ct-tolower.lo
+ -rm -f unicase/u8-ct-totitle.$(OBJEXT)
+ -rm -f unicase/u8-ct-totitle.lo
+ -rm -f unicase/u8-ct-toupper.$(OBJEXT)
+ -rm -f unicase/u8-ct-toupper.lo
+ -rm -f unicase/u8-is-cased.$(OBJEXT)
+ -rm -f unicase/u8-is-cased.lo
+ -rm -f unicase/u8-is-casefolded.$(OBJEXT)
+ -rm -f unicase/u8-is-casefolded.lo
+ -rm -f unicase/u8-is-invariant.$(OBJEXT)
+ -rm -f unicase/u8-is-invariant.lo
+ -rm -f unicase/u8-is-lowercase.$(OBJEXT)
+ -rm -f unicase/u8-is-lowercase.lo
+ -rm -f unicase/u8-is-titlecase.$(OBJEXT)
+ -rm -f unicase/u8-is-titlecase.lo
+ -rm -f unicase/u8-is-uppercase.$(OBJEXT)
+ -rm -f unicase/u8-is-uppercase.lo
+ -rm -f unicase/u8-tolower.$(OBJEXT)
+ -rm -f unicase/u8-tolower.lo
+ -rm -f unicase/u8-totitle.$(OBJEXT)
+ -rm -f unicase/u8-totitle.lo
+ -rm -f unicase/u8-toupper.$(OBJEXT)
+ -rm -f unicase/u8-toupper.lo
+ -rm -f unicase/ulc-casecmp.$(OBJEXT)
+ -rm -f unicase/ulc-casecmp.lo
+ -rm -f unicase/ulc-casecoll.$(OBJEXT)
+ -rm -f unicase/ulc-casecoll.lo
+ -rm -f unicase/ulc-casexfrm.$(OBJEXT)
+ -rm -f unicase/ulc-casexfrm.lo
+ -rm -f uniconv/u16-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u16-conv-from-enc.lo
+ -rm -f uniconv/u16-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u16-conv-to-enc.lo
+ -rm -f uniconv/u16-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u16-strconv-from-enc.lo
+ -rm -f uniconv/u16-strconv-from-locale.$(OBJEXT)
+ -rm -f uniconv/u16-strconv-from-locale.lo
+ -rm -f uniconv/u16-strconv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u16-strconv-to-enc.lo
+ -rm -f uniconv/u16-strconv-to-locale.$(OBJEXT)
+ -rm -f uniconv/u16-strconv-to-locale.lo
+ -rm -f uniconv/u32-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u32-conv-from-enc.lo
+ -rm -f uniconv/u32-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u32-conv-to-enc.lo
+ -rm -f uniconv/u32-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u32-strconv-from-enc.lo
+ -rm -f uniconv/u32-strconv-from-locale.$(OBJEXT)
+ -rm -f uniconv/u32-strconv-from-locale.lo
+ -rm -f uniconv/u32-strconv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u32-strconv-to-enc.lo
+ -rm -f uniconv/u32-strconv-to-locale.$(OBJEXT)
+ -rm -f uniconv/u32-strconv-to-locale.lo
+ -rm -f uniconv/u8-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u8-conv-from-enc.lo
+ -rm -f uniconv/u8-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u8-conv-to-enc.lo
+ -rm -f uniconv/u8-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/u8-strconv-from-enc.lo
+ -rm -f uniconv/u8-strconv-from-locale.$(OBJEXT)
+ -rm -f uniconv/u8-strconv-from-locale.lo
+ -rm -f uniconv/u8-strconv-to-enc.$(OBJEXT)
+ -rm -f uniconv/u8-strconv-to-enc.lo
+ -rm -f uniconv/u8-strconv-to-locale.$(OBJEXT)
+ -rm -f uniconv/u8-strconv-to-locale.lo
+ -rm -f unictype/bidi_byname.$(OBJEXT)
+ -rm -f unictype/bidi_byname.lo
+ -rm -f unictype/bidi_name.$(OBJEXT)
+ -rm -f unictype/bidi_name.lo
+ -rm -f unictype/bidi_of.$(OBJEXT)
+ -rm -f unictype/bidi_of.lo
+ -rm -f unictype/bidi_test.$(OBJEXT)
+ -rm -f unictype/bidi_test.lo
+ -rm -f unictype/block_test.$(OBJEXT)
+ -rm -f unictype/block_test.lo
+ -rm -f unictype/blocks.$(OBJEXT)
+ -rm -f unictype/blocks.lo
+ -rm -f unictype/categ_C.$(OBJEXT)
+ -rm -f unictype/categ_C.lo
+ -rm -f unictype/categ_Cc.$(OBJEXT)
+ -rm -f unictype/categ_Cc.lo
+ -rm -f unictype/categ_Cf.$(OBJEXT)
+ -rm -f unictype/categ_Cf.lo
+ -rm -f unictype/categ_Cn.$(OBJEXT)
+ -rm -f unictype/categ_Cn.lo
+ -rm -f unictype/categ_Co.$(OBJEXT)
+ -rm -f unictype/categ_Co.lo
+ -rm -f unictype/categ_Cs.$(OBJEXT)
+ -rm -f unictype/categ_Cs.lo
+ -rm -f unictype/categ_L.$(OBJEXT)
+ -rm -f unictype/categ_L.lo
+ -rm -f unictype/categ_Ll.$(OBJEXT)
+ -rm -f unictype/categ_Ll.lo
+ -rm -f unictype/categ_Lm.$(OBJEXT)
+ -rm -f unictype/categ_Lm.lo
+ -rm -f unictype/categ_Lo.$(OBJEXT)
+ -rm -f unictype/categ_Lo.lo
+ -rm -f unictype/categ_Lt.$(OBJEXT)
+ -rm -f unictype/categ_Lt.lo
+ -rm -f unictype/categ_Lu.$(OBJEXT)
+ -rm -f unictype/categ_Lu.lo
+ -rm -f unictype/categ_M.$(OBJEXT)
+ -rm -f unictype/categ_M.lo
+ -rm -f unictype/categ_Mc.$(OBJEXT)
+ -rm -f unictype/categ_Mc.lo
+ -rm -f unictype/categ_Me.$(OBJEXT)
+ -rm -f unictype/categ_Me.lo
+ -rm -f unictype/categ_Mn.$(OBJEXT)
+ -rm -f unictype/categ_Mn.lo
+ -rm -f unictype/categ_N.$(OBJEXT)
+ -rm -f unictype/categ_N.lo
+ -rm -f unictype/categ_Nd.$(OBJEXT)
+ -rm -f unictype/categ_Nd.lo
+ -rm -f unictype/categ_Nl.$(OBJEXT)
+ -rm -f unictype/categ_Nl.lo
+ -rm -f unictype/categ_No.$(OBJEXT)
+ -rm -f unictype/categ_No.lo
+ -rm -f unictype/categ_P.$(OBJEXT)
+ -rm -f unictype/categ_P.lo
+ -rm -f unictype/categ_Pc.$(OBJEXT)
+ -rm -f unictype/categ_Pc.lo
+ -rm -f unictype/categ_Pd.$(OBJEXT)
+ -rm -f unictype/categ_Pd.lo
+ -rm -f unictype/categ_Pe.$(OBJEXT)
+ -rm -f unictype/categ_Pe.lo
+ -rm -f unictype/categ_Pf.$(OBJEXT)
+ -rm -f unictype/categ_Pf.lo
+ -rm -f unictype/categ_Pi.$(OBJEXT)
+ -rm -f unictype/categ_Pi.lo
+ -rm -f unictype/categ_Po.$(OBJEXT)
+ -rm -f unictype/categ_Po.lo
+ -rm -f unictype/categ_Ps.$(OBJEXT)
+ -rm -f unictype/categ_Ps.lo
+ -rm -f unictype/categ_S.$(OBJEXT)
+ -rm -f unictype/categ_S.lo
+ -rm -f unictype/categ_Sc.$(OBJEXT)
+ -rm -f unictype/categ_Sc.lo
+ -rm -f unictype/categ_Sk.$(OBJEXT)
+ -rm -f unictype/categ_Sk.lo
+ -rm -f unictype/categ_Sm.$(OBJEXT)
+ -rm -f unictype/categ_Sm.lo
+ -rm -f unictype/categ_So.$(OBJEXT)
+ -rm -f unictype/categ_So.lo
+ -rm -f unictype/categ_Z.$(OBJEXT)
+ -rm -f unictype/categ_Z.lo
+ -rm -f unictype/categ_Zl.$(OBJEXT)
+ -rm -f unictype/categ_Zl.lo
+ -rm -f unictype/categ_Zp.$(OBJEXT)
+ -rm -f unictype/categ_Zp.lo
+ -rm -f unictype/categ_Zs.$(OBJEXT)
+ -rm -f unictype/categ_Zs.lo
+ -rm -f unictype/categ_and.$(OBJEXT)
+ -rm -f unictype/categ_and.lo
+ -rm -f unictype/categ_and_not.$(OBJEXT)
+ -rm -f unictype/categ_and_not.lo
+ -rm -f unictype/categ_byname.$(OBJEXT)
+ -rm -f unictype/categ_byname.lo
+ -rm -f unictype/categ_name.$(OBJEXT)
+ -rm -f unictype/categ_name.lo
+ -rm -f unictype/categ_none.$(OBJEXT)
+ -rm -f unictype/categ_none.lo
+ -rm -f unictype/categ_of.$(OBJEXT)
+ -rm -f unictype/categ_of.lo
+ -rm -f unictype/categ_or.$(OBJEXT)
+ -rm -f unictype/categ_or.lo
+ -rm -f unictype/categ_test.$(OBJEXT)
+ -rm -f unictype/categ_test.lo
+ -rm -f unictype/combining.$(OBJEXT)
+ -rm -f unictype/combining.lo
+ -rm -f unictype/ctype_alnum.$(OBJEXT)
+ -rm -f unictype/ctype_alnum.lo
+ -rm -f unictype/ctype_alpha.$(OBJEXT)
+ -rm -f unictype/ctype_alpha.lo
+ -rm -f unictype/ctype_blank.$(OBJEXT)
+ -rm -f unictype/ctype_blank.lo
+ -rm -f unictype/ctype_cntrl.$(OBJEXT)
+ -rm -f unictype/ctype_cntrl.lo
+ -rm -f unictype/ctype_digit.$(OBJEXT)
+ -rm -f unictype/ctype_digit.lo
+ -rm -f unictype/ctype_graph.$(OBJEXT)
+ -rm -f unictype/ctype_graph.lo
+ -rm -f unictype/ctype_lower.$(OBJEXT)
+ -rm -f unictype/ctype_lower.lo
+ -rm -f unictype/ctype_print.$(OBJEXT)
+ -rm -f unictype/ctype_print.lo
+ -rm -f unictype/ctype_punct.$(OBJEXT)
+ -rm -f unictype/ctype_punct.lo
+ -rm -f unictype/ctype_space.$(OBJEXT)
+ -rm -f unictype/ctype_space.lo
+ -rm -f unictype/ctype_upper.$(OBJEXT)
+ -rm -f unictype/ctype_upper.lo
+ -rm -f unictype/ctype_xdigit.$(OBJEXT)
+ -rm -f unictype/ctype_xdigit.lo
+ -rm -f unictype/decdigit.$(OBJEXT)
+ -rm -f unictype/decdigit.lo
+ -rm -f unictype/digit.$(OBJEXT)
+ -rm -f unictype/digit.lo
+ -rm -f unictype/mirror.$(OBJEXT)
+ -rm -f unictype/mirror.lo
+ -rm -f unictype/numeric.$(OBJEXT)
+ -rm -f unictype/numeric.lo
+ -rm -f unictype/pr_alphabetic.$(OBJEXT)
+ -rm -f unictype/pr_alphabetic.lo
+ -rm -f unictype/pr_ascii_hex_digit.$(OBJEXT)
+ -rm -f unictype/pr_ascii_hex_digit.lo
+ -rm -f unictype/pr_bidi_arabic_digit.$(OBJEXT)
+ -rm -f unictype/pr_bidi_arabic_digit.lo
+ -rm -f unictype/pr_bidi_arabic_right_to_left.$(OBJEXT)
+ -rm -f unictype/pr_bidi_arabic_right_to_left.lo
+ -rm -f unictype/pr_bidi_block_separator.$(OBJEXT)
+ -rm -f unictype/pr_bidi_block_separator.lo
+ -rm -f unictype/pr_bidi_boundary_neutral.$(OBJEXT)
+ -rm -f unictype/pr_bidi_boundary_neutral.lo
+ -rm -f unictype/pr_bidi_common_separator.$(OBJEXT)
+ -rm -f unictype/pr_bidi_common_separator.lo
+ -rm -f unictype/pr_bidi_control.$(OBJEXT)
+ -rm -f unictype/pr_bidi_control.lo
+ -rm -f unictype/pr_bidi_embedding_or_override.$(OBJEXT)
+ -rm -f unictype/pr_bidi_embedding_or_override.lo
+ -rm -f unictype/pr_bidi_eur_num_separator.$(OBJEXT)
+ -rm -f unictype/pr_bidi_eur_num_separator.lo
+ -rm -f unictype/pr_bidi_eur_num_terminator.$(OBJEXT)
+ -rm -f unictype/pr_bidi_eur_num_terminator.lo
+ -rm -f unictype/pr_bidi_european_digit.$(OBJEXT)
+ -rm -f unictype/pr_bidi_european_digit.lo
+ -rm -f unictype/pr_bidi_hebrew_right_to_left.$(OBJEXT)
+ -rm -f unictype/pr_bidi_hebrew_right_to_left.lo
+ -rm -f unictype/pr_bidi_left_to_right.$(OBJEXT)
+ -rm -f unictype/pr_bidi_left_to_right.lo
+ -rm -f unictype/pr_bidi_non_spacing_mark.$(OBJEXT)
+ -rm -f unictype/pr_bidi_non_spacing_mark.lo
+ -rm -f unictype/pr_bidi_other_neutral.$(OBJEXT)
+ -rm -f unictype/pr_bidi_other_neutral.lo
+ -rm -f unictype/pr_bidi_pdf.$(OBJEXT)
+ -rm -f unictype/pr_bidi_pdf.lo
+ -rm -f unictype/pr_bidi_segment_separator.$(OBJEXT)
+ -rm -f unictype/pr_bidi_segment_separator.lo
+ -rm -f unictype/pr_bidi_whitespace.$(OBJEXT)
+ -rm -f unictype/pr_bidi_whitespace.lo
+ -rm -f unictype/pr_byname.$(OBJEXT)
+ -rm -f unictype/pr_byname.lo
+ -rm -f unictype/pr_combining.$(OBJEXT)
+ -rm -f unictype/pr_combining.lo
+ -rm -f unictype/pr_composite.$(OBJEXT)
+ -rm -f unictype/pr_composite.lo
+ -rm -f unictype/pr_currency_symbol.$(OBJEXT)
+ -rm -f unictype/pr_currency_symbol.lo
+ -rm -f unictype/pr_dash.$(OBJEXT)
+ -rm -f unictype/pr_dash.lo
+ -rm -f unictype/pr_decimal_digit.$(OBJEXT)
+ -rm -f unictype/pr_decimal_digit.lo
+ -rm -f unictype/pr_default_ignorable_code_point.$(OBJEXT)
+ -rm -f unictype/pr_default_ignorable_code_point.lo
+ -rm -f unictype/pr_deprecated.$(OBJEXT)
+ -rm -f unictype/pr_deprecated.lo
+ -rm -f unictype/pr_diacritic.$(OBJEXT)
+ -rm -f unictype/pr_diacritic.lo
+ -rm -f unictype/pr_extender.$(OBJEXT)
+ -rm -f unictype/pr_extender.lo
+ -rm -f unictype/pr_format_control.$(OBJEXT)
+ -rm -f unictype/pr_format_control.lo
+ -rm -f unictype/pr_grapheme_base.$(OBJEXT)
+ -rm -f unictype/pr_grapheme_base.lo
+ -rm -f unictype/pr_grapheme_extend.$(OBJEXT)
+ -rm -f unictype/pr_grapheme_extend.lo
+ -rm -f unictype/pr_grapheme_link.$(OBJEXT)
+ -rm -f unictype/pr_grapheme_link.lo
+ -rm -f unictype/pr_hex_digit.$(OBJEXT)
+ -rm -f unictype/pr_hex_digit.lo
+ -rm -f unictype/pr_hyphen.$(OBJEXT)
+ -rm -f unictype/pr_hyphen.lo
+ -rm -f unictype/pr_id_continue.$(OBJEXT)
+ -rm -f unictype/pr_id_continue.lo
+ -rm -f unictype/pr_id_start.$(OBJEXT)
+ -rm -f unictype/pr_id_start.lo
+ -rm -f unictype/pr_ideographic.$(OBJEXT)
+ -rm -f unictype/pr_ideographic.lo
+ -rm -f unictype/pr_ids_binary_operator.$(OBJEXT)
+ -rm -f unictype/pr_ids_binary_operator.lo
+ -rm -f unictype/pr_ids_trinary_operator.$(OBJEXT)
+ -rm -f unictype/pr_ids_trinary_operator.lo
+ -rm -f unictype/pr_ignorable_control.$(OBJEXT)
+ -rm -f unictype/pr_ignorable_control.lo
+ -rm -f unictype/pr_iso_control.$(OBJEXT)
+ -rm -f unictype/pr_iso_control.lo
+ -rm -f unictype/pr_join_control.$(OBJEXT)
+ -rm -f unictype/pr_join_control.lo
+ -rm -f unictype/pr_left_of_pair.$(OBJEXT)
+ -rm -f unictype/pr_left_of_pair.lo
+ -rm -f unictype/pr_line_separator.$(OBJEXT)
+ -rm -f unictype/pr_line_separator.lo
+ -rm -f unictype/pr_logical_order_exception.$(OBJEXT)
+ -rm -f unictype/pr_logical_order_exception.lo
+ -rm -f unictype/pr_lowercase.$(OBJEXT)
+ -rm -f unictype/pr_lowercase.lo
+ -rm -f unictype/pr_math.$(OBJEXT)
+ -rm -f unictype/pr_math.lo
+ -rm -f unictype/pr_non_break.$(OBJEXT)
+ -rm -f unictype/pr_non_break.lo
+ -rm -f unictype/pr_not_a_character.$(OBJEXT)
+ -rm -f unictype/pr_not_a_character.lo
+ -rm -f unictype/pr_numeric.$(OBJEXT)
+ -rm -f unictype/pr_numeric.lo
+ -rm -f unictype/pr_other_alphabetic.$(OBJEXT)
+ -rm -f unictype/pr_other_alphabetic.lo
+ -rm -f unictype/pr_other_default_ignorable_code_point.$(OBJEXT)
+ -rm -f unictype/pr_other_default_ignorable_code_point.lo
+ -rm -f unictype/pr_other_grapheme_extend.$(OBJEXT)
+ -rm -f unictype/pr_other_grapheme_extend.lo
+ -rm -f unictype/pr_other_id_continue.$(OBJEXT)
+ -rm -f unictype/pr_other_id_continue.lo
+ -rm -f unictype/pr_other_id_start.$(OBJEXT)
+ -rm -f unictype/pr_other_id_start.lo
+ -rm -f unictype/pr_other_lowercase.$(OBJEXT)
+ -rm -f unictype/pr_other_lowercase.lo
+ -rm -f unictype/pr_other_math.$(OBJEXT)
+ -rm -f unictype/pr_other_math.lo
+ -rm -f unictype/pr_other_uppercase.$(OBJEXT)
+ -rm -f unictype/pr_other_uppercase.lo
+ -rm -f unictype/pr_paired_punctuation.$(OBJEXT)
+ -rm -f unictype/pr_paired_punctuation.lo
+ -rm -f unictype/pr_paragraph_separator.$(OBJEXT)
+ -rm -f unictype/pr_paragraph_separator.lo
+ -rm -f unictype/pr_pattern_syntax.$(OBJEXT)
+ -rm -f unictype/pr_pattern_syntax.lo
+ -rm -f unictype/pr_pattern_white_space.$(OBJEXT)
+ -rm -f unictype/pr_pattern_white_space.lo
+ -rm -f unictype/pr_private_use.$(OBJEXT)
+ -rm -f unictype/pr_private_use.lo
+ -rm -f unictype/pr_punctuation.$(OBJEXT)
+ -rm -f unictype/pr_punctuation.lo
+ -rm -f unictype/pr_quotation_mark.$(OBJEXT)
+ -rm -f unictype/pr_quotation_mark.lo
+ -rm -f unictype/pr_radical.$(OBJEXT)
+ -rm -f unictype/pr_radical.lo
+ -rm -f unictype/pr_sentence_terminal.$(OBJEXT)
+ -rm -f unictype/pr_sentence_terminal.lo
+ -rm -f unictype/pr_soft_dotted.$(OBJEXT)
+ -rm -f unictype/pr_soft_dotted.lo
+ -rm -f unictype/pr_space.$(OBJEXT)
+ -rm -f unictype/pr_space.lo
+ -rm -f unictype/pr_terminal_punctuation.$(OBJEXT)
+ -rm -f unictype/pr_terminal_punctuation.lo
+ -rm -f unictype/pr_test.$(OBJEXT)
+ -rm -f unictype/pr_test.lo
+ -rm -f unictype/pr_titlecase.$(OBJEXT)
+ -rm -f unictype/pr_titlecase.lo
+ -rm -f unictype/pr_unassigned_code_value.$(OBJEXT)
+ -rm -f unictype/pr_unassigned_code_value.lo
+ -rm -f unictype/pr_unified_ideograph.$(OBJEXT)
+ -rm -f unictype/pr_unified_ideograph.lo
+ -rm -f unictype/pr_uppercase.$(OBJEXT)
+ -rm -f unictype/pr_uppercase.lo
+ -rm -f unictype/pr_variation_selector.$(OBJEXT)
+ -rm -f unictype/pr_variation_selector.lo
+ -rm -f unictype/pr_white_space.$(OBJEXT)
+ -rm -f unictype/pr_white_space.lo
+ -rm -f unictype/pr_xid_continue.$(OBJEXT)
+ -rm -f unictype/pr_xid_continue.lo
+ -rm -f unictype/pr_xid_start.$(OBJEXT)
+ -rm -f unictype/pr_xid_start.lo
+ -rm -f unictype/pr_zero_width.$(OBJEXT)
+ -rm -f unictype/pr_zero_width.lo
+ -rm -f unictype/scripts.$(OBJEXT)
+ -rm -f unictype/scripts.lo
+ -rm -f unictype/sy_c_ident.$(OBJEXT)
+ -rm -f unictype/sy_c_ident.lo
+ -rm -f unictype/sy_c_whitespace.$(OBJEXT)
+ -rm -f unictype/sy_c_whitespace.lo
+ -rm -f unictype/sy_java_ident.$(OBJEXT)
+ -rm -f unictype/sy_java_ident.lo
+ -rm -f unictype/sy_java_whitespace.$(OBJEXT)
+ -rm -f unictype/sy_java_whitespace.lo
+ -rm -f unilbrk/lbrktables.$(OBJEXT)
+ -rm -f unilbrk/lbrktables.lo
+ -rm -f unilbrk/u16-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u16-possible-linebreaks.lo
+ -rm -f unilbrk/u16-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u16-width-linebreaks.lo
+ -rm -f unilbrk/u32-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u32-possible-linebreaks.lo
+ -rm -f unilbrk/u32-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u32-width-linebreaks.lo
+ -rm -f unilbrk/u8-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u8-possible-linebreaks.lo
+ -rm -f unilbrk/u8-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/u8-width-linebreaks.lo
+ -rm -f unilbrk/ulc-common.$(OBJEXT)
+ -rm -f unilbrk/ulc-common.lo
+ -rm -f unilbrk/ulc-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/ulc-possible-linebreaks.lo
+ -rm -f unilbrk/ulc-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/ulc-width-linebreaks.lo
+ -rm -f uniname/uniname.$(OBJEXT)
+ -rm -f uniname/uniname.lo
+ -rm -f uninorm/canonical-decomposition.$(OBJEXT)
+ -rm -f uninorm/canonical-decomposition.lo
+ -rm -f uninorm/compat-decomposition.$(OBJEXT)
+ -rm -f uninorm/compat-decomposition.lo
+ -rm -f uninorm/composition.$(OBJEXT)
+ -rm -f uninorm/composition.lo
+ -rm -f uninorm/decompose-internal.$(OBJEXT)
+ -rm -f uninorm/decompose-internal.lo
+ -rm -f uninorm/decomposing-form.$(OBJEXT)
+ -rm -f uninorm/decomposing-form.lo
+ -rm -f uninorm/decomposition-table.$(OBJEXT)
+ -rm -f uninorm/decomposition-table.lo
+ -rm -f uninorm/decomposition.$(OBJEXT)
+ -rm -f uninorm/decomposition.lo
+ -rm -f uninorm/nfc.$(OBJEXT)
+ -rm -f uninorm/nfc.lo
+ -rm -f uninorm/nfd.$(OBJEXT)
+ -rm -f uninorm/nfd.lo
+ -rm -f uninorm/nfkc.$(OBJEXT)
+ -rm -f uninorm/nfkc.lo
+ -rm -f uninorm/nfkd.$(OBJEXT)
+ -rm -f uninorm/nfkd.lo
+ -rm -f uninorm/u16-normalize.$(OBJEXT)
+ -rm -f uninorm/u16-normalize.lo
+ -rm -f uninorm/u16-normcmp.$(OBJEXT)
+ -rm -f uninorm/u16-normcmp.lo
+ -rm -f uninorm/u16-normcoll.$(OBJEXT)
+ -rm -f uninorm/u16-normcoll.lo
+ -rm -f uninorm/u16-normxfrm.$(OBJEXT)
+ -rm -f uninorm/u16-normxfrm.lo
+ -rm -f uninorm/u32-normalize.$(OBJEXT)
+ -rm -f uninorm/u32-normalize.lo
+ -rm -f uninorm/u32-normcmp.$(OBJEXT)
+ -rm -f uninorm/u32-normcmp.lo
+ -rm -f uninorm/u32-normcoll.$(OBJEXT)
+ -rm -f uninorm/u32-normcoll.lo
+ -rm -f uninorm/u32-normxfrm.$(OBJEXT)
+ -rm -f uninorm/u32-normxfrm.lo
+ -rm -f uninorm/u8-normalize.$(OBJEXT)
+ -rm -f uninorm/u8-normalize.lo
+ -rm -f uninorm/u8-normcmp.$(OBJEXT)
+ -rm -f uninorm/u8-normcmp.lo
+ -rm -f uninorm/u8-normcoll.$(OBJEXT)
+ -rm -f uninorm/u8-normcoll.lo
+ -rm -f uninorm/u8-normxfrm.$(OBJEXT)
+ -rm -f uninorm/u8-normxfrm.lo
+ -rm -f uninorm/uninorm-filter.$(OBJEXT)
+ -rm -f uninorm/uninorm-filter.lo
+ -rm -f unistdio/u-printf-args.$(OBJEXT)
+ -rm -f unistdio/u-printf-args.lo
+ -rm -f unistdio/u16-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-asnprintf.lo
+ -rm -f unistdio/u16-asprintf.$(OBJEXT)
+ -rm -f unistdio/u16-asprintf.lo
+ -rm -f unistdio/u16-printf-parse.$(OBJEXT)
+ -rm -f unistdio/u16-printf-parse.lo
+ -rm -f unistdio/u16-snprintf.$(OBJEXT)
+ -rm -f unistdio/u16-snprintf.lo
+ -rm -f unistdio/u16-sprintf.$(OBJEXT)
+ -rm -f unistdio/u16-sprintf.lo
+ -rm -f unistdio/u16-u16-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-asnprintf.lo
+ -rm -f unistdio/u16-u16-asprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-asprintf.lo
+ -rm -f unistdio/u16-u16-snprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-snprintf.lo
+ -rm -f unistdio/u16-u16-sprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-sprintf.lo
+ -rm -f unistdio/u16-u16-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-vasnprintf.lo
+ -rm -f unistdio/u16-u16-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-vasprintf.lo
+ -rm -f unistdio/u16-u16-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-vsnprintf.lo
+ -rm -f unistdio/u16-u16-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u16-u16-vsprintf.lo
+ -rm -f unistdio/u16-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-vasnprintf.lo
+ -rm -f unistdio/u16-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u16-vasprintf.lo
+ -rm -f unistdio/u16-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u16-vsnprintf.lo
+ -rm -f unistdio/u16-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u16-vsprintf.lo
+ -rm -f unistdio/u32-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-asnprintf.lo
+ -rm -f unistdio/u32-asprintf.$(OBJEXT)
+ -rm -f unistdio/u32-asprintf.lo
+ -rm -f unistdio/u32-printf-parse.$(OBJEXT)
+ -rm -f unistdio/u32-printf-parse.lo
+ -rm -f unistdio/u32-snprintf.$(OBJEXT)
+ -rm -f unistdio/u32-snprintf.lo
+ -rm -f unistdio/u32-sprintf.$(OBJEXT)
+ -rm -f unistdio/u32-sprintf.lo
+ -rm -f unistdio/u32-u32-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-asnprintf.lo
+ -rm -f unistdio/u32-u32-asprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-asprintf.lo
+ -rm -f unistdio/u32-u32-snprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-snprintf.lo
+ -rm -f unistdio/u32-u32-sprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-sprintf.lo
+ -rm -f unistdio/u32-u32-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-vasnprintf.lo
+ -rm -f unistdio/u32-u32-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-vasprintf.lo
+ -rm -f unistdio/u32-u32-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-vsnprintf.lo
+ -rm -f unistdio/u32-u32-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u32-u32-vsprintf.lo
+ -rm -f unistdio/u32-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-vasnprintf.lo
+ -rm -f unistdio/u32-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u32-vasprintf.lo
+ -rm -f unistdio/u32-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u32-vsnprintf.lo
+ -rm -f unistdio/u32-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u32-vsprintf.lo
+ -rm -f unistdio/u8-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-asnprintf.lo
+ -rm -f unistdio/u8-asprintf.$(OBJEXT)
+ -rm -f unistdio/u8-asprintf.lo
+ -rm -f unistdio/u8-printf-parse.$(OBJEXT)
+ -rm -f unistdio/u8-printf-parse.lo
+ -rm -f unistdio/u8-snprintf.$(OBJEXT)
+ -rm -f unistdio/u8-snprintf.lo
+ -rm -f unistdio/u8-sprintf.$(OBJEXT)
+ -rm -f unistdio/u8-sprintf.lo
+ -rm -f unistdio/u8-u8-asnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-asnprintf.lo
+ -rm -f unistdio/u8-u8-asprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-asprintf.lo
+ -rm -f unistdio/u8-u8-snprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-snprintf.lo
+ -rm -f unistdio/u8-u8-sprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-sprintf.lo
+ -rm -f unistdio/u8-u8-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-vasnprintf.lo
+ -rm -f unistdio/u8-u8-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-vasprintf.lo
+ -rm -f unistdio/u8-u8-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-vsnprintf.lo
+ -rm -f unistdio/u8-u8-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u8-u8-vsprintf.lo
+ -rm -f unistdio/u8-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-vasnprintf.lo
+ -rm -f unistdio/u8-vasprintf.$(OBJEXT)
+ -rm -f unistdio/u8-vasprintf.lo
+ -rm -f unistdio/u8-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/u8-vsnprintf.lo
+ -rm -f unistdio/u8-vsprintf.$(OBJEXT)
+ -rm -f unistdio/u8-vsprintf.lo
+ -rm -f unistdio/ulc-asnprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-asnprintf.lo
+ -rm -f unistdio/ulc-asprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-asprintf.lo
+ -rm -f unistdio/ulc-fprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-fprintf.lo
+ -rm -f unistdio/ulc-printf-parse.$(OBJEXT)
+ -rm -f unistdio/ulc-printf-parse.lo
+ -rm -f unistdio/ulc-snprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-snprintf.lo
+ -rm -f unistdio/ulc-sprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-sprintf.lo
+ -rm -f unistdio/ulc-vasnprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-vasnprintf.lo
+ -rm -f unistdio/ulc-vasprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-vasprintf.lo
+ -rm -f unistdio/ulc-vfprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-vfprintf.lo
+ -rm -f unistdio/ulc-vsnprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-vsnprintf.lo
+ -rm -f unistdio/ulc-vsprintf.$(OBJEXT)
+ -rm -f unistdio/ulc-vsprintf.lo
+ -rm -f unistr/u16-check.$(OBJEXT)
+ -rm -f unistr/u16-check.lo
+ -rm -f unistr/u16-chr.$(OBJEXT)
+ -rm -f unistr/u16-chr.lo
+ -rm -f unistr/u16-cmp.$(OBJEXT)
+ -rm -f unistr/u16-cmp.lo
+ -rm -f unistr/u16-cmp2.$(OBJEXT)
+ -rm -f unistr/u16-cmp2.lo
+ -rm -f unistr/u16-cpy-alloc.$(OBJEXT)
+ -rm -f unistr/u16-cpy-alloc.lo
+ -rm -f unistr/u16-cpy.$(OBJEXT)
+ -rm -f unistr/u16-cpy.lo
+ -rm -f unistr/u16-endswith.$(OBJEXT)
+ -rm -f unistr/u16-endswith.lo
+ -rm -f unistr/u16-mblen.$(OBJEXT)
+ -rm -f unistr/u16-mblen.lo
+ -rm -f unistr/u16-mbsnlen.$(OBJEXT)
+ -rm -f unistr/u16-mbsnlen.lo
+ -rm -f unistr/u16-mbtouc-aux.$(OBJEXT)
+ -rm -f unistr/u16-mbtouc-aux.lo
+ -rm -f unistr/u16-mbtouc-unsafe-aux.$(OBJEXT)
+ -rm -f unistr/u16-mbtouc-unsafe-aux.lo
+ -rm -f unistr/u16-mbtouc-unsafe.$(OBJEXT)
+ -rm -f unistr/u16-mbtouc-unsafe.lo
+ -rm -f unistr/u16-mbtouc.$(OBJEXT)
+ -rm -f unistr/u16-mbtouc.lo
+ -rm -f unistr/u16-mbtoucr.$(OBJEXT)
+ -rm -f unistr/u16-mbtoucr.lo
+ -rm -f unistr/u16-move.$(OBJEXT)
+ -rm -f unistr/u16-move.lo
+ -rm -f unistr/u16-next.$(OBJEXT)
+ -rm -f unistr/u16-next.lo
+ -rm -f unistr/u16-prev.$(OBJEXT)
+ -rm -f unistr/u16-prev.lo
+ -rm -f unistr/u16-set.$(OBJEXT)
+ -rm -f unistr/u16-set.lo
+ -rm -f unistr/u16-startswith.$(OBJEXT)
+ -rm -f unistr/u16-startswith.lo
+ -rm -f unistr/u16-stpcpy.$(OBJEXT)
+ -rm -f unistr/u16-stpcpy.lo
+ -rm -f unistr/u16-stpncpy.$(OBJEXT)
+ -rm -f unistr/u16-stpncpy.lo
+ -rm -f unistr/u16-strcat.$(OBJEXT)
+ -rm -f unistr/u16-strcat.lo
+ -rm -f unistr/u16-strchr.$(OBJEXT)
+ -rm -f unistr/u16-strchr.lo
+ -rm -f unistr/u16-strcmp.$(OBJEXT)
+ -rm -f unistr/u16-strcmp.lo
+ -rm -f unistr/u16-strcoll.$(OBJEXT)
+ -rm -f unistr/u16-strcoll.lo
+ -rm -f unistr/u16-strcpy.$(OBJEXT)
+ -rm -f unistr/u16-strcpy.lo
+ -rm -f unistr/u16-strcspn.$(OBJEXT)
+ -rm -f unistr/u16-strcspn.lo
+ -rm -f unistr/u16-strdup.$(OBJEXT)
+ -rm -f unistr/u16-strdup.lo
+ -rm -f unistr/u16-strlen.$(OBJEXT)
+ -rm -f unistr/u16-strlen.lo
+ -rm -f unistr/u16-strmblen.$(OBJEXT)
+ -rm -f unistr/u16-strmblen.lo
+ -rm -f unistr/u16-strmbtouc.$(OBJEXT)
+ -rm -f unistr/u16-strmbtouc.lo
+ -rm -f unistr/u16-strncat.$(OBJEXT)
+ -rm -f unistr/u16-strncat.lo
+ -rm -f unistr/u16-strncmp.$(OBJEXT)
+ -rm -f unistr/u16-strncmp.lo
+ -rm -f unistr/u16-strncpy.$(OBJEXT)
+ -rm -f unistr/u16-strncpy.lo
+ -rm -f unistr/u16-strnlen.$(OBJEXT)
+ -rm -f unistr/u16-strnlen.lo
+ -rm -f unistr/u16-strpbrk.$(OBJEXT)
+ -rm -f unistr/u16-strpbrk.lo
+ -rm -f unistr/u16-strrchr.$(OBJEXT)
+ -rm -f unistr/u16-strrchr.lo
+ -rm -f unistr/u16-strspn.$(OBJEXT)
+ -rm -f unistr/u16-strspn.lo
+ -rm -f unistr/u16-strstr.$(OBJEXT)
+ -rm -f unistr/u16-strstr.lo
+ -rm -f unistr/u16-strtok.$(OBJEXT)
+ -rm -f unistr/u16-strtok.lo
+ -rm -f unistr/u16-to-u32.$(OBJEXT)
+ -rm -f unistr/u16-to-u32.lo
+ -rm -f unistr/u16-to-u8.$(OBJEXT)
+ -rm -f unistr/u16-to-u8.lo
+ -rm -f unistr/u16-uctomb-aux.$(OBJEXT)
+ -rm -f unistr/u16-uctomb-aux.lo
+ -rm -f unistr/u16-uctomb.$(OBJEXT)
+ -rm -f unistr/u16-uctomb.lo
+ -rm -f unistr/u32-check.$(OBJEXT)
+ -rm -f unistr/u32-check.lo
+ -rm -f unistr/u32-chr.$(OBJEXT)
+ -rm -f unistr/u32-chr.lo
+ -rm -f unistr/u32-cmp.$(OBJEXT)
+ -rm -f unistr/u32-cmp.lo
+ -rm -f unistr/u32-cmp2.$(OBJEXT)
+ -rm -f unistr/u32-cmp2.lo
+ -rm -f unistr/u32-cpy-alloc.$(OBJEXT)
+ -rm -f unistr/u32-cpy-alloc.lo
+ -rm -f unistr/u32-cpy.$(OBJEXT)
+ -rm -f unistr/u32-cpy.lo
+ -rm -f unistr/u32-endswith.$(OBJEXT)
+ -rm -f unistr/u32-endswith.lo
+ -rm -f unistr/u32-mblen.$(OBJEXT)
+ -rm -f unistr/u32-mblen.lo
+ -rm -f unistr/u32-mbsnlen.$(OBJEXT)
+ -rm -f unistr/u32-mbsnlen.lo
+ -rm -f unistr/u32-mbtouc-unsafe.$(OBJEXT)
+ -rm -f unistr/u32-mbtouc-unsafe.lo
+ -rm -f unistr/u32-mbtouc.$(OBJEXT)
+ -rm -f unistr/u32-mbtouc.lo
+ -rm -f unistr/u32-mbtoucr.$(OBJEXT)
+ -rm -f unistr/u32-mbtoucr.lo
+ -rm -f unistr/u32-move.$(OBJEXT)
+ -rm -f unistr/u32-move.lo
+ -rm -f unistr/u32-next.$(OBJEXT)
+ -rm -f unistr/u32-next.lo
+ -rm -f unistr/u32-prev.$(OBJEXT)
+ -rm -f unistr/u32-prev.lo
+ -rm -f unistr/u32-set.$(OBJEXT)
+ -rm -f unistr/u32-set.lo
+ -rm -f unistr/u32-startswith.$(OBJEXT)
+ -rm -f unistr/u32-startswith.lo
+ -rm -f unistr/u32-stpcpy.$(OBJEXT)
+ -rm -f unistr/u32-stpcpy.lo
+ -rm -f unistr/u32-stpncpy.$(OBJEXT)
+ -rm -f unistr/u32-stpncpy.lo
+ -rm -f unistr/u32-strcat.$(OBJEXT)
+ -rm -f unistr/u32-strcat.lo
+ -rm -f unistr/u32-strchr.$(OBJEXT)
+ -rm -f unistr/u32-strchr.lo
+ -rm -f unistr/u32-strcmp.$(OBJEXT)
+ -rm -f unistr/u32-strcmp.lo
+ -rm -f unistr/u32-strcoll.$(OBJEXT)
+ -rm -f unistr/u32-strcoll.lo
+ -rm -f unistr/u32-strcpy.$(OBJEXT)
+ -rm -f unistr/u32-strcpy.lo
+ -rm -f unistr/u32-strcspn.$(OBJEXT)
+ -rm -f unistr/u32-strcspn.lo
+ -rm -f unistr/u32-strdup.$(OBJEXT)
+ -rm -f unistr/u32-strdup.lo
+ -rm -f unistr/u32-strlen.$(OBJEXT)
+ -rm -f unistr/u32-strlen.lo
+ -rm -f unistr/u32-strmblen.$(OBJEXT)
+ -rm -f unistr/u32-strmblen.lo
+ -rm -f unistr/u32-strmbtouc.$(OBJEXT)
+ -rm -f unistr/u32-strmbtouc.lo
+ -rm -f unistr/u32-strncat.$(OBJEXT)
+ -rm -f unistr/u32-strncat.lo
+ -rm -f unistr/u32-strncmp.$(OBJEXT)
+ -rm -f unistr/u32-strncmp.lo
+ -rm -f unistr/u32-strncpy.$(OBJEXT)
+ -rm -f unistr/u32-strncpy.lo
+ -rm -f unistr/u32-strnlen.$(OBJEXT)
+ -rm -f unistr/u32-strnlen.lo
+ -rm -f unistr/u32-strpbrk.$(OBJEXT)
+ -rm -f unistr/u32-strpbrk.lo
+ -rm -f unistr/u32-strrchr.$(OBJEXT)
+ -rm -f unistr/u32-strrchr.lo
+ -rm -f unistr/u32-strspn.$(OBJEXT)
+ -rm -f unistr/u32-strspn.lo
+ -rm -f unistr/u32-strstr.$(OBJEXT)
+ -rm -f unistr/u32-strstr.lo
+ -rm -f unistr/u32-strtok.$(OBJEXT)
+ -rm -f unistr/u32-strtok.lo
+ -rm -f unistr/u32-to-u16.$(OBJEXT)
+ -rm -f unistr/u32-to-u16.lo
+ -rm -f unistr/u32-to-u8.$(OBJEXT)
+ -rm -f unistr/u32-to-u8.lo
+ -rm -f unistr/u32-uctomb.$(OBJEXT)
+ -rm -f unistr/u32-uctomb.lo
+ -rm -f unistr/u8-check.$(OBJEXT)
+ -rm -f unistr/u8-check.lo
+ -rm -f unistr/u8-chr.$(OBJEXT)
+ -rm -f unistr/u8-chr.lo
+ -rm -f unistr/u8-cmp.$(OBJEXT)
+ -rm -f unistr/u8-cmp.lo
+ -rm -f unistr/u8-cmp2.$(OBJEXT)
+ -rm -f unistr/u8-cmp2.lo
+ -rm -f unistr/u8-cpy-alloc.$(OBJEXT)
+ -rm -f unistr/u8-cpy-alloc.lo
+ -rm -f unistr/u8-cpy.$(OBJEXT)
+ -rm -f unistr/u8-cpy.lo
+ -rm -f unistr/u8-endswith.$(OBJEXT)
+ -rm -f unistr/u8-endswith.lo
+ -rm -f unistr/u8-mblen.$(OBJEXT)
+ -rm -f unistr/u8-mblen.lo
+ -rm -f unistr/u8-mbsnlen.$(OBJEXT)
+ -rm -f unistr/u8-mbsnlen.lo
+ -rm -f unistr/u8-mbtouc-aux.$(OBJEXT)
+ -rm -f unistr/u8-mbtouc-aux.lo
+ -rm -f unistr/u8-mbtouc-unsafe-aux.$(OBJEXT)
+ -rm -f unistr/u8-mbtouc-unsafe-aux.lo
+ -rm -f unistr/u8-mbtouc-unsafe.$(OBJEXT)
+ -rm -f unistr/u8-mbtouc-unsafe.lo
+ -rm -f unistr/u8-mbtouc.$(OBJEXT)
+ -rm -f unistr/u8-mbtouc.lo
+ -rm -f unistr/u8-mbtoucr.$(OBJEXT)
+ -rm -f unistr/u8-mbtoucr.lo
+ -rm -f unistr/u8-move.$(OBJEXT)
+ -rm -f unistr/u8-move.lo
+ -rm -f unistr/u8-next.$(OBJEXT)
+ -rm -f unistr/u8-next.lo
+ -rm -f unistr/u8-prev.$(OBJEXT)
+ -rm -f unistr/u8-prev.lo
+ -rm -f unistr/u8-set.$(OBJEXT)
+ -rm -f unistr/u8-set.lo
+ -rm -f unistr/u8-startswith.$(OBJEXT)
+ -rm -f unistr/u8-startswith.lo
+ -rm -f unistr/u8-stpcpy.$(OBJEXT)
+ -rm -f unistr/u8-stpcpy.lo
+ -rm -f unistr/u8-stpncpy.$(OBJEXT)
+ -rm -f unistr/u8-stpncpy.lo
+ -rm -f unistr/u8-strcat.$(OBJEXT)
+ -rm -f unistr/u8-strcat.lo
+ -rm -f unistr/u8-strchr.$(OBJEXT)
+ -rm -f unistr/u8-strchr.lo
+ -rm -f unistr/u8-strcmp.$(OBJEXT)
+ -rm -f unistr/u8-strcmp.lo
+ -rm -f unistr/u8-strcoll.$(OBJEXT)
+ -rm -f unistr/u8-strcoll.lo
+ -rm -f unistr/u8-strcpy.$(OBJEXT)
+ -rm -f unistr/u8-strcpy.lo
+ -rm -f unistr/u8-strcspn.$(OBJEXT)
+ -rm -f unistr/u8-strcspn.lo
+ -rm -f unistr/u8-strdup.$(OBJEXT)
+ -rm -f unistr/u8-strdup.lo
+ -rm -f unistr/u8-strlen.$(OBJEXT)
+ -rm -f unistr/u8-strlen.lo
+ -rm -f unistr/u8-strmblen.$(OBJEXT)
+ -rm -f unistr/u8-strmblen.lo
+ -rm -f unistr/u8-strmbtouc.$(OBJEXT)
+ -rm -f unistr/u8-strmbtouc.lo
+ -rm -f unistr/u8-strncat.$(OBJEXT)
+ -rm -f unistr/u8-strncat.lo
+ -rm -f unistr/u8-strncmp.$(OBJEXT)
+ -rm -f unistr/u8-strncmp.lo
+ -rm -f unistr/u8-strncpy.$(OBJEXT)
+ -rm -f unistr/u8-strncpy.lo
+ -rm -f unistr/u8-strnlen.$(OBJEXT)
+ -rm -f unistr/u8-strnlen.lo
+ -rm -f unistr/u8-strpbrk.$(OBJEXT)
+ -rm -f unistr/u8-strpbrk.lo
+ -rm -f unistr/u8-strrchr.$(OBJEXT)
+ -rm -f unistr/u8-strrchr.lo
+ -rm -f unistr/u8-strspn.$(OBJEXT)
+ -rm -f unistr/u8-strspn.lo
+ -rm -f unistr/u8-strstr.$(OBJEXT)
+ -rm -f unistr/u8-strstr.lo
+ -rm -f unistr/u8-strtok.$(OBJEXT)
+ -rm -f unistr/u8-strtok.lo
+ -rm -f unistr/u8-to-u16.$(OBJEXT)
+ -rm -f unistr/u8-to-u16.lo
+ -rm -f unistr/u8-to-u32.$(OBJEXT)
+ -rm -f unistr/u8-to-u32.lo
+ -rm -f unistr/u8-uctomb-aux.$(OBJEXT)
+ -rm -f unistr/u8-uctomb-aux.lo
+ -rm -f unistr/u8-uctomb.$(OBJEXT)
+ -rm -f unistr/u8-uctomb.lo
+ -rm -f uniwbrk/u16-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/u16-wordbreaks.lo
+ -rm -f uniwbrk/u32-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/u32-wordbreaks.lo
+ -rm -f uniwbrk/u8-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/u8-wordbreaks.lo
+ -rm -f uniwbrk/ulc-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/ulc-wordbreaks.lo
+ -rm -f uniwbrk/wbrktable.$(OBJEXT)
+ -rm -f uniwbrk/wbrktable.lo
+ -rm -f uniwbrk/wordbreak-property.$(OBJEXT)
+ -rm -f uniwbrk/wordbreak-property.lo
+ -rm -f uniwidth/u16-strwidth.$(OBJEXT)
+ -rm -f uniwidth/u16-strwidth.lo
+ -rm -f uniwidth/u16-width.$(OBJEXT)
+ -rm -f uniwidth/u16-width.lo
+ -rm -f uniwidth/u32-strwidth.$(OBJEXT)
+ -rm -f uniwidth/u32-strwidth.lo
+ -rm -f uniwidth/u32-width.$(OBJEXT)
+ -rm -f uniwidth/u32-width.lo
+ -rm -f uniwidth/u8-strwidth.$(OBJEXT)
+ -rm -f uniwidth/u8-strwidth.lo
+ -rm -f uniwidth/u8-width.$(OBJEXT)
+ -rm -f uniwidth/u8-width.lo
+ -rm -f uniwidth/width.$(OBJEXT)
+ -rm -f uniwidth/width.lo
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(AM_V_CC) @AM_BACKSLASH@
+ $(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC) @AM_BACKSLASH@
+ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(AM_V_CC) @AM_BACKSLASH@
+ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf ../woe32dll/.libs ../woe32dll/_libs
+ -rm -rf unicase/.libs unicase/_libs
+ -rm -rf uniconv/.libs uniconv/_libs
+ -rm -rf unictype/.libs unictype/_libs
+ -rm -rf unilbrk/.libs unilbrk/_libs
+ -rm -rf uniname/.libs uniname/_libs
+ -rm -rf uninorm/.libs uninorm/_libs
+ -rm -rf unistdio/.libs unistdio/_libs
+ -rm -rf unistr/.libs unistr/_libs
+ -rm -rf uniwbrk/.libs uniwbrk/_libs
+ -rm -rf uniwidth/.libs uniwidth/_libs
+install-nobase_includeHEADERS: $(nobase_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+ @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ $(am__nobase_list) | while read dir files; do \
+ xfiles=; for file in $$files; do \
+ if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+ test -z "$$xfiles" || { \
+ test "x$$dir" = x. || { \
+ echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
+ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
+ done
+
+uninstall-nobase_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(includedir)" && rm -f $$files
+install-nobase_nodist_includeHEADERS: $(nobase_nodist_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+ @list='$(nobase_nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ $(am__nobase_list) | while read dir files; do \
+ xfiles=; for file in $$files; do \
+ if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+ test -z "$$xfiles" || { \
+ test "x$$dir" = x. || { \
+ echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
+ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
+ done
+
+uninstall-nobase_nodist_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nobase_nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(includedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS) all-local
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -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 ../woe32dll/$(am__dirstamp)
+ -rm -f unicase/$(am__dirstamp)
+ -rm -f uniconv/$(am__dirstamp)
+ -rm -f unictype/$(am__dirstamp)
+ -rm -f unilbrk/$(am__dirstamp)
+ -rm -f uniname/$(am__dirstamp)
+ -rm -f uninorm/$(am__dirstamp)
+ -rm -f unistdio/$(am__dirstamp)
+ -rm -f unistr/$(am__dirstamp)
+ -rm -f uniwbrk/$(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-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-nobase_includeHEADERS \
+ install-nobase_nodist_includeHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-exec-local install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-local
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
+ uninstall-nobase_includeHEADERS \
+ uninstall-nobase_nodist_includeHEADERS
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+ clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-exec-local install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man \
+ install-nobase_includeHEADERS \
+ install-nobase_nodist_includeHEADERS install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-libLTLIBRARIES uninstall-local \
+ uninstall-nobase_includeHEADERS \
+ uninstall-nobase_nodist_includeHEADERS
+
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+alloca.h: alloca.in.h
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/alloca.in.h; \
+ } > $@-t
+ mv -f $@-t $@
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+ rm -f $@-t
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#define PREFIX "$(prefix)"'; \
+ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+ echo '#define BINDIR "$(bindir)"'; \
+ echo '#define SBINDIR "$(sbindir)"'; \
+ echo '#define LIBEXECDIR "$(libexecdir)"'; \
+ echo '#define DATAROOTDIR "$(datarootdir)"'; \
+ echo '#define DATADIR "$(datadir)"'; \
+ echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+ echo '#define INCLUDEDIR "$(includedir)"'; \
+ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+ echo '#define DOCDIR "$(docdir)"'; \
+ echo '#define INFODIR "$(infodir)"'; \
+ echo '#define HTMLDIR "$(htmldir)"'; \
+ echo '#define DVIDIR "$(dvidir)"'; \
+ echo '#define PDFDIR "$(pdfdir)"'; \
+ echo '#define PSDIR "$(psdir)"'; \
+ echo '#define LIBDIR "$(libdir)"'; \
+ echo '#define LISPDIR "$(lispdir)"'; \
+ echo '#define LOCALEDIR "$(localedir)"'; \
+ echo '#define MANDIR "$(mandir)"'; \
+ echo '#define MANEXT "$(manext)"'; \
+ echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+ echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+ } | sed '/""/d' > $@-t
+ if test -f $@ && cmp $@-t $@ > /dev/null; then \
+ rm -f $@-t; \
+ else \
+ rm -f $@; mv $@-t $@; \
+ fi
+
+# We need the following in order to create <errno.h> when the system
+# doesn't have one that is POSIX compliant.
+errno.h: errno.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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+ < $(srcdir)/errno.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+float.h: float.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_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+ < $(srcdir)/float.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <iconv.h> when the system
+# doesn't have one that works with the given compiler.
+iconv.h: iconv.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_ICONV_H''@|$(NEXT_ICONV_H)|g' \
+ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
+ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
+ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
+ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \
+ < $(srcdir)/iconv.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+iconv_open-aix.h: iconv_open-aix.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
+ mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
+iconv_open-hpux.h: iconv_open-hpux.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t
+ mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
+iconv_open-irix.h: iconv_open-irix.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t
+ mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
+iconv_open-osf.h: iconv_open-osf.gperf
+ $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t
+ mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+install-exec-local: install-exec-localcharset
+install-exec-localcharset: all-local
+ if test $(GLIBC21) = no; then \
+ case '$(host_os)' in \
+ darwin[56]*) \
+ need_charset_alias=true ;; \
+ darwin* | cygwin* | mingw* | pw32* | cegcc*) \
+ need_charset_alias=false ;; \
+ *) \
+ need_charset_alias=true ;; \
+ esac ; \
+ else \
+ need_charset_alias=false ; \
+ fi ; \
+ if $$need_charset_alias; then \
+ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
+ fi ; \
+ if test -f $(charset_alias); then \
+ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ rm -f $(charset_tmp) ; \
+ else \
+ if $$need_charset_alias; then \
+ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ rm -f $(charset_tmp) ; \
+ fi ; \
+ fi
+
+uninstall-local: uninstall-localcharset
+uninstall-localcharset: all-local
+ if test -f $(charset_alias); then \
+ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+ if grep '^# Packages using this file: $$' $(charset_tmp) \
+ > /dev/null; then \
+ rm -f $(charset_alias); \
+ else \
+ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+ fi; \
+ rm -f $(charset_tmp); \
+ fi
+
+charset.alias: config.charset
+ rm -f t-$@ $@
+ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+ mv t-$@ $@
+.sin.sed:
+ rm -f t-$@ $@
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+ mv t-$@ $@
+
+# We need the following in order to create <math.h> when the system
+# doesn't have one that works with the given compiler.
+math.h: math.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
+ -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
+ -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
+ -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
+ -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
+ -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
+ -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
+ -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
+ -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \
+ -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \
+ -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \
+ -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \
+ -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \
+ -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
+ -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \
+ -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
+ -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
+ -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
+ -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
+ -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
+ -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
+ -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+ -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
+ -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
+ -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
+ -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
+ -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
+ -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+ -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
+ -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+ -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
+ -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
+ -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+ -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \
+ -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \
+ -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \
+ -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
+ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
+ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
+ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+ -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
+ -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+ -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
+ -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
+ -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
+ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
+ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
+ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
+ -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+ -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \
+ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
+ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
+ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
+ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
+ -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/math.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+stdbool.h: stdbool.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+ < $(srcdir)/stdint.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib.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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
+ -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+ -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
+ -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
+ -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+ -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+ -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+ -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+ -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
+ -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
+ -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+ -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
+ -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
+ -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
+ -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
+ -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+ -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+ -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
+ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
+ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
+ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
+ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+ -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
+ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
+ -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/stdlib.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.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_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+ -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+ -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+ -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+ -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+ -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+ -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+ -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+ -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+ -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+ -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+ -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+ -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+ -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+ -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
+ -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+ -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+ -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+ -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
+ -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+ -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+ -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+ -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+ -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+ -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+ -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+ -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+ -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+ -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+ -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+ -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+ -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+ -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
+ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+ -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+ -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
+ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
+ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
+ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/string.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+unicase/locale-languages.h: $(srcdir)/unicase/locale-languages.gperf
+ $(GPERF) -m 10 $(srcdir)/unicase/locale-languages.gperf > $(srcdir)/unicase/locale-languages.h-t
+ mv $(srcdir)/unicase/locale-languages.h-t $(srcdir)/unicase/locale-languages.h
+
+unicase/special-casing-table.h: $(srcdir)/unicase/special-casing-table.gperf
+ $(GPERF) -m 10 $(srcdir)/unicase/special-casing-table.gperf > $(srcdir)/unicase/special-casing-table.h-t
+ mv $(srcdir)/unicase/special-casing-table.h-t $(srcdir)/unicase/special-casing-table.h
+
+unictype/pr_byname.h: unictype/pr_byname.gperf
+ $(GPERF) -m 10 $(srcdir)/unictype/pr_byname.gperf > $(srcdir)/unictype/pr_byname.h-t
+ mv $(srcdir)/unictype/pr_byname.h-t $(srcdir)/unictype/pr_byname.h
+
+unictype/scripts_byname.h: unictype/scripts_byname.gperf
+ $(GPERF) -m 10 $(srcdir)/unictype/scripts_byname.gperf > $(srcdir)/unictype/scripts_byname.h-t
+ mv $(srcdir)/unictype/scripts_byname.h-t $(srcdir)/unictype/scripts_byname.h
+
+uninorm/composition-table.h: $(srcdir)/uninorm/composition-table.gperf
+ $(GPERF) -m 1 $(srcdir)/uninorm/composition-table.gperf > $(srcdir)/uninorm/composition-table.h-t
+ mv $(srcdir)/uninorm/composition-table.h-t $(srcdir)/uninorm/composition-table.h
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+ -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
+ -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+ -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
+ -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
+ -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+ -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
+ -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+ -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+ -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
+ -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
+ -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
+ -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+ -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+ -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
+ -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+ -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
+ -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+ -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+ -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+ -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
+ -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
+ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
+ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+ -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
+ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
+ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
+ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \
+ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
+ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
+ -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
+ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/unistd.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar.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_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
+ -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
+ -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
+ -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
+ -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
+ -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
+ -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
+ -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
+ -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
+ -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
+ -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
+ -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+ -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
+ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
+ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
+ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
+ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
+ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
+ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
+ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
+ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
+ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
+ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
+ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
+ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
+ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
+ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
+ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
+ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
+ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+ -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ < $(srcdir)/wchar.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ < $(srcdir)/wctype.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+mostlyclean-local: mostlyclean-generic
+ @for dir in '' $(MOSTLYCLEANDIRS); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ :
+
+# Produce an unistring/stdbool.h that is not compiler dependent.
+# GCC >= 2.95 has <stdbool.h>.
+# AIX >= 5.3 has <stdbool.h>.
+# Solaris 10 and some HP-UX 11 versions have <stdbool.h> but it does not
+# necessarily work.
+unistring/stdbool.h : $(STDBOOL_H)
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#if !defined _GL_STDBOOL_H'; \
+ if test -f /usr/include/stdbool.h; then \
+ echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || defined _AIX'; \
+ else \
+ echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))'; \
+ fi; \
+ echo '#include <stdbool.h>'; \
+ echo '#else'; \
+ cat $(srcdir)/stdbool.mini.h; \
+ echo '#endif'; \
+ echo '#endif'; \
+ } > $@-t
+ mv $@-t $@
+
+# Produce an unistring/stdint.h that is not compiler dependent.
+# Glibc >= 2 has <stdint.h>.
+# On most other platforms that have it, it is buggy in one way or the other.
+unistring/stdint.h : $(STDINT_H) stdint.mini.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ echo '#include <stddef.h>'; \
+ echo '#if __GLIBC__ >= 2'; \
+ echo '#include <stdint.h>'; \
+ echo '#else'; \
+ if test -f /usr/include/stdint.h; then \
+ HAVE_STDINT_H='1'; \
+ else \
+ HAVE_STDINT_H='defined __MINGW32__ || defined __HAIKU__'; \
+ fi; \
+ if test -f /usr/include/inttypes.h; then \
+ HAVE_INTTYPES_H='1'; \
+ else \
+ HAVE_INTTYPES_H='defined __MINGW32__ || defined __HAIKU__'; \
+ fi; \
+ if test -f /usr/include/sys/inttypes.h; then \
+ HAVE_SYS_INTTYPES_H='1'; \
+ else \
+ HAVE_SYS_INTTYPES_H='0'; \
+ fi; \
+ sed -e 's/@''HAVE_STDINT_H''@/'"$$HAVE_STDINT_H"'/g' \
+ -e 's|@''INCLUDE_NEXT''@|include|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@||g' \
+ -e 's|@''NEXT_STDINT_H''@|<stdint.h>|g' \
+ -e 's/@''HAVE_SYS_TYPES_H''@/1/g' \
+ -e 's/@''HAVE_INTTYPES_H''@/'"$$HAVE_INTTYPES_H"'/g' \
+ -e 's/@''HAVE_SYS_INTTYPES_H''@/'"$$HAVE_SYS_INTTYPES_H"'/g' \
+ -e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
+ < $(srcdir)/stdint.mini.h; \
+ echo '#endif'; \
+ } > $@-t
+ mv $@-t $@
+unistring/localcharset.h : localcharset.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ cp $(srcdir)/localcharset.h $@-t
+ mv $@-t $@
+unistring/iconveh.h : iconveh.h
+ @MKDIR_P@ unistring
+ rm -f $@-t $@
+ cp $(srcdir)/iconveh.h $@-t
+ mv $@-t $@
+clean-local: clean-generic
+ @for dir in '' $(CLEANDIRS); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ if test '$(srcdir)' != '.'; then \
+ for dir in '' $(CLEANDIRS_NOT_IN_SRCDIR); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ fi; \
+ :
+
+# List of exported symbols.
+# We extract it from the header files that get installed, removing symbols
+# start with "_UC".
+# This file has the same format as the one expected by the libtool option
+# '-export-symbols', but we don't use this option, because it would prevent us
+# from building some of the gnulib unit tests.
+libunistring.sym : $(HEADERS_WITH_EXTERNS)
+ for f in $(HEADERS_WITH_EXTERNS); do cat $(srcdir)/$$f; done \
+ | $(srcdir)/declared.sh | LC_ALL=C sort | LC_ALL=C uniq \
+ | grep -v '^_UC' \
+ > $@-t
+ mv $@-t $@
+
+# Hide undesired symbols that are defined by libunistring_la_SOURCES or
+# libunistring_la_LIBADD from the global namespace, by prefixing them with
+# "libunistring_".
+all check install: config.h
+config.h: $(BUILT_SOURCES) libunistring.sym
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ : "Avoid double inclusion, to avoid a warning about redefinitions."; \
+ echo '#ifndef UNISTRING_CONFIG_H'; \
+ echo '#define UNISTRING_CONFIG_H'; \
+ echo; \
+ echo '#include "../config.h"'; \
+ echo; \
+ echo '#endif /* UNISTRING_CONFIG_H */'; \
+ } > config.h && \
+ if test -n "$(NAMESPACING)" && test -n "$(HAVE_GLOBAL_SYMBOL_PIPE)"; then \
+ { \
+ { \
+ for f in $(libunistring_la_SOURCES) $(libunistring_la_LIBADD); do \
+ case $$f in \
+ *.res.lo ) ;; \
+ *.c | *.$(OBJEXT) | *.lo ) \
+ sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \
+ test -f $$sf || sf=$(srcdir)/$$sf; \
+ of=`echo "$$f" | sed -e 's,^.*/,,' -e 's,\\.[^.]*$$,,'`.$(OBJEXT); \
+ echo "$(COMPILE) -c $$sf" 1>&6; \
+ $(COMPILE) -c $$sf || { rm -f config.h; exit 1; }; \
+ sh ./exported.sh $$of 1>&5; \
+ rm -f $$of `echo "$$of" | sed -e 's,\\.$(OBJEXT)$$,.lo,'`; \
+ ;; \
+ esac; \
+ done; \
+ } 5>&1 \
+ | sed -e 's,.* ,,' | LC_ALL=C sort | LC_ALL=C uniq \
+ | { \
+ if test -f libunistring.sym; then \
+ symfile='libunistring.sym'; \
+ else \
+ symfile='$(srcdir)/libunistring.sym'; \
+ fi; \
+ LC_ALL=C join -v 1 - $$symfile; \
+ } \
+ | sed -e 's,^\(.*\)$$,#define \1 libunistring_\1,' > config.h-t; \
+ } 6>&1 && \
+ if test -f config.h; then \
+ cat config.h-t >> config.h; \
+ rm -f config.h-t; \
+ else \
+ rm -f config.h-t; \
+ exit 1; \
+ fi \
+ fi
+@WOE32_TRUE@libunistring.res.lo : $(srcdir)/libunistring.rc
+@WOE32_TRUE@ $(LIBTOOL) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) `$(SHELL) $(top_srcdir)/build-aux/windres-options --escape $(VERSION)` -i $(srcdir)/libunistring.rc -o libunistring.res.lo --output-format=coff
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/alloca.in.h b/lib/alloca.in.h
new file mode 100644
index 0000000..3d4f88b
--- /dev/null
+++ b/lib/alloca.in.h
@@ -0,0 +1,56 @@
+/* Memory allocation on the stack.
+
+ Copyright (C) 1995, 1999, 2001-2004, 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 Lesser General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser 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. */
+
+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+ means there is a real alloca function. */
+#ifndef _GL_ALLOCA_H
+#define _GL_ALLOCA_H
+
+/* alloca (N) returns a pointer to N bytes of memory
+ allocated on the stack, which will last until the function returns.
+ Use of alloca should be avoided:
+ - inside arguments of function calls - undefined behaviour,
+ - in inline functions - the allocation may actually last until the
+ calling function returns,
+ - for huge N (say, N >= 65536) - you never know how large (or small)
+ the stack is, and when the stack cannot fulfill the memory allocation
+ request, the program just crashes.
+ */
+
+#ifndef alloca
+# ifdef __GNUC__
+# define alloca __builtin_alloca
+# elif defined _AIX
+# define alloca __alloca
+# elif defined _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# elif defined __DECC && defined __VMS
+# define alloca __ALLOCA
+# else
+# include <stddef.h>
+# ifdef __cplusplus
+extern "C"
+# endif
+void *alloca (size_t);
+# endif
+#endif
+
+#endif /* _GL_ALLOCA_H */
diff --git a/lib/array-mergesort.h b/lib/array-mergesort.h
new file mode 100644
index 0000000..3988d28
--- /dev/null
+++ b/lib/array-mergesort.h
@@ -0,0 +1,274 @@
+/* Stable-sorting of an array using mergesort.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+/* This file implements stable sorting of an array, using the mergesort
+ algorithm.
+ Worst-case running time for an array of length N is O(N log N).
+ Unlike the mpsort module, the algorithm here attempts to minimize not
+ only the number of comparisons, but also the number of copying operations.
+
+ Before including this file, you need to define
+ ELEMENT The type of every array element.
+ COMPARE A two-argument macro that takes two 'const ELEMENT *'
+ pointers and returns a negative, zero, or positive 'int'
+ value if the element pointed to by the first argument is,
+ respectively, less, equal, or greater than the element
+ pointed to by the second argument.
+ STATIC The storage class of the functions being defined.
+ Before including this file, you also need to include:
+ #include <stddef.h>
+ */
+
+/* Merge the sorted arrays src1[0..n1-1] and src2[0..n2-1] into
+ dst[0..n1+n2-1]. In case of ambiguity, put the elements of src1
+ before the elements of src2.
+ n1 and n2 must be > 0.
+ The arrays src1 and src2 must not overlap the dst array, except that
+ src1 may be dst[n2..n1+n2-1], or src2 may be dst[n1..n1+n2-1]. */
+static void
+merge (const ELEMENT *src1, size_t n1,
+ const ELEMENT *src2, size_t n2,
+ ELEMENT *dst)
+{
+ for (;;) /* while (n1 > 0 && n2 > 0) */
+ {
+ if (COMPARE (src1, src2) <= 0)
+ {
+ *dst++ = *src1++;
+ n1--;
+ if (n1 == 0)
+ break;
+ }
+ else
+ {
+ *dst++ = *src2++;
+ n2--;
+ if (n2 == 0)
+ break;
+ }
+ }
+ /* Here n1 == 0 || n2 == 0 but also n1 > 0 || n2 > 0. */
+ if (n1 > 0)
+ {
+ if (dst != src1)
+ do
+ {
+ *dst++ = *src1++;
+ n1--;
+ }
+ while (n1 > 0);
+ }
+ else /* n2 > 0 */
+ {
+ if (dst != src2)
+ do
+ {
+ *dst++ = *src2++;
+ n2--;
+ }
+ while (n2 > 0);
+ }
+}
+
+/* Sort src[0..n-1] into dst[0..n-1], using tmp[0..n/2-1] as temporary
+ (scratch) storage.
+ The arrays src, dst, tmp must not overlap. */
+STATIC void
+merge_sort_fromto (const ELEMENT *src, ELEMENT *dst, size_t n, ELEMENT *tmp)
+{
+ switch (n)
+ {
+ case 0:
+ return;
+ case 1:
+ /* Nothing to do. */
+ dst[0] = src[0];
+ return;
+ case 2:
+ /* Trivial case. */
+ if (COMPARE (&src[0], &src[1]) <= 0)
+ {
+ /* src[0] <= src[1] */
+ dst[0] = src[0];
+ dst[1] = src[1];
+ }
+ else
+ {
+ dst[0] = src[1];
+ dst[1] = src[0];
+ }
+ break;
+ case 3:
+ /* Simple case. */
+ if (COMPARE (&src[0], &src[1]) <= 0)
+ {
+ if (COMPARE (&src[1], &src[2]) <= 0)
+ {
+ /* src[0] <= src[1] <= src[2] */
+ dst[0] = src[0];
+ dst[1] = src[1];
+ dst[2] = src[2];
+ }
+ else if (COMPARE (&src[0], &src[2]) <= 0)
+ {
+ /* src[0] <= src[2] < src[1] */
+ dst[0] = src[0];
+ dst[1] = src[2];
+ dst[2] = src[1];
+ }
+ else
+ {
+ /* src[2] < src[0] <= src[1] */
+ dst[0] = src[2];
+ dst[1] = src[0];
+ dst[2] = src[1];
+ }
+ }
+ else
+ {
+ if (COMPARE (&src[0], &src[2]) <= 0)
+ {
+ /* src[1] < src[0] <= src[2] */
+ dst[0] = src[1];
+ dst[1] = src[0];
+ dst[2] = src[2];
+ }
+ else if (COMPARE (&src[1], &src[2]) <= 0)
+ {
+ /* src[1] <= src[2] < src[0] */
+ dst[0] = src[1];
+ dst[1] = src[2];
+ dst[2] = src[0];
+ }
+ else
+ {
+ /* src[2] < src[1] < src[0] */
+ dst[0] = src[2];
+ dst[1] = src[1];
+ dst[2] = src[0];
+ }
+ }
+ break;
+ default:
+ {
+ size_t n1 = n / 2;
+ size_t n2 = (n + 1) / 2;
+ /* Note: n1 + n2 = n, n1 <= n2. */
+ /* Sort src[n1..n-1] into dst[n1..n-1], scratching tmp[0..n2/2-1]. */
+ merge_sort_fromto (src + n1, dst + n1, n2, tmp);
+ /* Sort src[0..n1-1] into tmp[0..n1-1], scratching dst[0..n1-1]. */
+ merge_sort_fromto (src, tmp, n1, dst);
+ /* Merge the two half results. */
+ merge (tmp, n1, dst + n1, n2, dst);
+ }
+ break;
+ }
+}
+
+/* Sort src[0..n-1], using tmp[0..n-1] as temporary (scratch) storage.
+ The arrays src, tmp must not overlap. */
+STATIC void
+merge_sort_inplace (ELEMENT *src, size_t n, ELEMENT *tmp)
+{
+ switch (n)
+ {
+ case 0:
+ case 1:
+ /* Nothing to do. */
+ return;
+ case 2:
+ /* Trivial case. */
+ if (COMPARE (&src[0], &src[1]) <= 0)
+ {
+ /* src[0] <= src[1] */
+ }
+ else
+ {
+ ELEMENT t = src[0];
+ src[0] = src[1];
+ src[1] = t;
+ }
+ break;
+ case 3:
+ /* Simple case. */
+ if (COMPARE (&src[0], &src[1]) <= 0)
+ {
+ if (COMPARE (&src[1], &src[2]) <= 0)
+ {
+ /* src[0] <= src[1] <= src[2] */
+ }
+ else if (COMPARE (&src[0], &src[2]) <= 0)
+ {
+ /* src[0] <= src[2] < src[1] */
+ ELEMENT t = src[1];
+ src[1] = src[2];
+ src[2] = t;
+ }
+ else
+ {
+ /* src[2] < src[0] <= src[1] */
+ ELEMENT t = src[0];
+ src[0] = src[2];
+ src[2] = src[1];
+ src[1] = t;
+ }
+ }
+ else
+ {
+ if (COMPARE (&src[0], &src[2]) <= 0)
+ {
+ /* src[1] < src[0] <= src[2] */
+ ELEMENT t = src[0];
+ src[0] = src[1];
+ src[1] = t;
+ }
+ else if (COMPARE (&src[1], &src[2]) <= 0)
+ {
+ /* src[1] <= src[2] < src[0] */
+ ELEMENT t = src[0];
+ src[0] = src[1];
+ src[1] = src[2];
+ src[2] = t;
+ }
+ else
+ {
+ /* src[2] < src[1] < src[0] */
+ ELEMENT t = src[0];
+ src[0] = src[2];
+ src[2] = t;
+ }
+ }
+ break;
+ default:
+ {
+ size_t n1 = n / 2;
+ size_t n2 = (n + 1) / 2;
+ /* Note: n1 + n2 = n, n1 <= n2. */
+ /* Sort src[n1..n-1], scratching tmp[0..n2-1]. */
+ merge_sort_inplace (src + n1, n2, tmp);
+ /* Sort src[0..n1-1] into tmp[0..n1-1], scratching tmp[n1..2*n1-1]. */
+ merge_sort_fromto (src, tmp, n1, tmp + n1);
+ /* Merge the two half results. */
+ merge (tmp, n1, src + n1, n2, src);
+ }
+ break;
+ }
+}
+
+#undef ELEMENT
+#undef COMPARE
+#undef STATIC
diff --git a/lib/c-ctype.c b/lib/c-ctype.c
new file mode 100644
index 0000000..e36a513
--- /dev/null
+++ b/lib/c-ctype.c
@@ -0,0 +1,396 @@
+/* Character handling in C locale.
+
+ Copyright 2000-2003, 2006 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 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU 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, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#define NO_C_CTYPE_MACROS
+#include "c-ctype.h"
+
+/* The function isascii is not locale dependent. Its use in EBCDIC is
+ questionable. */
+bool
+c_isascii (int c)
+{
+ return (c >= 0x00 && c <= 0x7f);
+}
+
+bool
+c_isalnum (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
+#else
+ return ((c >= '0' && c <= '9')
+ || (c >= 'A' && c <= 'Z')
+ || (c >= 'a' && c <= 'z'));
+#endif
+#else
+ 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 '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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isalpha (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
+#else
+ return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
+#endif
+#else
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isblank (int c)
+{
+ return (c == ' ' || c == '\t');
+}
+
+bool
+c_iscntrl (int c)
+{
+#if C_CTYPE_ASCII
+ return ((c & ~0x1f) == 0 || c == 0x7f);
+#else
+ switch (c)
+ {
+ case ' ': 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 '@':
+ 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 '`':
+ 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 '~':
+ return 0;
+ default:
+ return 1;
+ }
+#endif
+}
+
+bool
+c_isdigit (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS
+ return (c >= '0' && c <= '9');
+#else
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_islower (int c)
+{
+#if C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'a' && c <= 'z');
+#else
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isgraph (int c)
+{
+#if C_CTYPE_ASCII
+ return (c >= '!' && c <= '~');
+#else
+ switch (c)
+ {
+ 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 '@':
+ 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 '`':
+ 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 '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isprint (int c)
+{
+#if C_CTYPE_ASCII
+ return (c >= ' ' && c <= '~');
+#else
+ switch (c)
+ {
+ case ' ': 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 '@':
+ 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 '`':
+ 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 '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_ispunct (int c)
+{
+#if C_CTYPE_ASCII
+ return ((c >= '!' && c <= '~')
+ && !((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
+#else
+ switch (c)
+ {
+ case '!': case '"': case '#': case '$': case '%': case '&':
+ case '\'': case '(': case ')': case '*': case '+': case ',':
+ case '-': case '.': case '/':
+ case ':': case ';': case '<': case '=': case '>': case '?':
+ case '@':
+ case '[': case '\\': case ']': case '^': case '_': case '`':
+ case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isspace (int c)
+{
+ return (c == ' ' || c == '\t'
+ || c == '\n' || c == '\v' || c == '\f' || c == '\r');
+}
+
+bool
+c_isupper (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE
+ return (c >= 'A' && c <= 'Z');
+#else
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isxdigit (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
+#else
+ return ((c >= '0' && c <= '9')
+ || (c >= 'A' && c <= 'F')
+ || (c >= 'a' && c <= 'f'));
+#endif
+#else
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+int
+c_tolower (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
+#else
+ switch (c)
+ {
+ case 'A': return 'a';
+ case 'B': return 'b';
+ case 'C': return 'c';
+ case 'D': return 'd';
+ case 'E': return 'e';
+ case 'F': return 'f';
+ case 'G': return 'g';
+ case 'H': return 'h';
+ case 'I': return 'i';
+ case 'J': return 'j';
+ case 'K': return 'k';
+ case 'L': return 'l';
+ case 'M': return 'm';
+ case 'N': return 'n';
+ case 'O': return 'o';
+ case 'P': return 'p';
+ case 'Q': return 'q';
+ case 'R': return 'r';
+ case 'S': return 's';
+ case 'T': return 't';
+ case 'U': return 'u';
+ case 'V': return 'v';
+ case 'W': return 'w';
+ case 'X': return 'x';
+ case 'Y': return 'y';
+ case 'Z': return 'z';
+ default: return c;
+ }
+#endif
+}
+
+int
+c_toupper (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
+#else
+ switch (c)
+ {
+ case 'a': return 'A';
+ case 'b': return 'B';
+ case 'c': return 'C';
+ case 'd': return 'D';
+ case 'e': return 'E';
+ case 'f': return 'F';
+ case 'g': return 'G';
+ case 'h': return 'H';
+ case 'i': return 'I';
+ case 'j': return 'J';
+ case 'k': return 'K';
+ case 'l': return 'L';
+ case 'm': return 'M';
+ case 'n': return 'N';
+ case 'o': return 'O';
+ case 'p': return 'P';
+ case 'q': return 'Q';
+ case 'r': return 'R';
+ case 's': return 'S';
+ case 't': return 'T';
+ case 'u': return 'U';
+ case 'v': return 'V';
+ case 'w': return 'W';
+ case 'x': return 'X';
+ case 'y': return 'Y';
+ case 'z': return 'Z';
+ default: return c;
+ }
+#endif
+}
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
new file mode 100644
index 0000000..d7b067e
--- /dev/null
+++ b/lib/c-ctype.h
@@ -0,0 +1,295 @@
+/* Character handling in C locale.
+
+ These functions work like the corresponding functions in <ctype.h>,
+ except that they have the C (POSIX) locale hardwired, whereas the
+ <ctype.h> functions' behaviour depends on the current locale set via
+ setlocale.
+
+ Copyright (C) 2000-2003, 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 Lesser General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU 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, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef C_CTYPE_H
+#define C_CTYPE_H
+
+#include <stdbool.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* The functions defined in this file assume the "C" locale and a character
+ set without diacritics (ASCII-US or EBCDIC-US or something like that).
+ Even if the "C" locale on a particular system is an extension of the ASCII
+ character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+ is ISO-8859-1), the functions in this file recognize only the ASCII
+ characters. */
+
+
+/* Check whether the ASCII optimizations apply. */
+
+/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that
+ '0', '1', ..., '9' have consecutive integer values. */
+#define C_CTYPE_CONSECUTIVE_DIGITS 1
+
+#if ('A' <= 'Z') \
+ && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \
+ && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \
+ && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \
+ && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \
+ && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \
+ && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \
+ && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \
+ && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \
+ && ('Y' + 1 == 'Z')
+#define C_CTYPE_CONSECUTIVE_UPPERCASE 1
+#endif
+
+#if ('a' <= 'z') \
+ && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \
+ && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \
+ && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \
+ && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \
+ && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \
+ && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \
+ && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \
+ && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \
+ && ('y' + 1 == 'z')
+#define C_CTYPE_CONSECUTIVE_LOWERCASE 1
+#endif
+
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ASCII or one of its variants or extensions, not EBCDIC.
+ Testing the value of '\n' and '\r' is not relevant. */
+#define C_CTYPE_ASCII 1
+#endif
+
+
+/* Function declarations. */
+
+/* Unlike the functions in <ctype.h>, which require an argument in the range
+ of the 'unsigned char' type, the functions here operate on values that are
+ in the 'unsigned char' range or in the 'char' range. In other words,
+ when you have a 'char' value, you need to cast it before using it as
+ argument to a <ctype.h> function:
+
+ const char *s = ...;
+ if (isalpha ((unsigned char) *s)) ...
+
+ but you don't need to cast it for the functions defined in this file:
+
+ const char *s = ...;
+ if (c_isalpha (*s)) ...
+ */
+
+extern bool c_isascii (int c); /* not locale dependent */
+
+extern bool c_isalnum (int c);
+extern bool c_isalpha (int c);
+extern bool c_isblank (int c);
+extern bool c_iscntrl (int c);
+extern bool c_isdigit (int c);
+extern bool c_islower (int c);
+extern bool c_isgraph (int c);
+extern bool c_isprint (int c);
+extern bool c_ispunct (int c);
+extern bool c_isspace (int c);
+extern bool c_isupper (int c);
+extern bool c_isxdigit (int c);
+
+extern int c_tolower (int c);
+extern int c_toupper (int c);
+
+
+#if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS
+
+/* ASCII optimizations. */
+
+#undef c_isascii
+#define c_isascii(c) \
+ ({ int __c = (c); \
+ (__c >= 0x00 && __c <= 0x7f); \
+ })
+
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isalnum
+#define c_isalnum(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \
+ })
+#else
+#undef c_isalnum
+#define c_isalnum(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || (__c >= 'A' && __c <= 'Z') \
+ || (__c >= 'a' && __c <= 'z')); \
+ })
+#endif
+#endif
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isalpha
+#define c_isalpha(c) \
+ ({ int __c = (c); \
+ ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \
+ })
+#else
+#undef c_isalpha
+#define c_isalpha(c) \
+ ({ int __c = (c); \
+ ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \
+ })
+#endif
+#endif
+
+#undef c_isblank
+#define c_isblank(c) \
+ ({ int __c = (c); \
+ (__c == ' ' || __c == '\t'); \
+ })
+
+#if C_CTYPE_ASCII
+#undef c_iscntrl
+#define c_iscntrl(c) \
+ ({ int __c = (c); \
+ ((__c & ~0x1f) == 0 || __c == 0x7f); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_DIGITS
+#undef c_isdigit
+#define c_isdigit(c) \
+ ({ int __c = (c); \
+ (__c >= '0' && __c <= '9'); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_LOWERCASE
+#undef c_islower
+#define c_islower(c) \
+ ({ int __c = (c); \
+ (__c >= 'a' && __c <= 'z'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_isgraph
+#define c_isgraph(c) \
+ ({ int __c = (c); \
+ (__c >= '!' && __c <= '~'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_isprint
+#define c_isprint(c) \
+ ({ int __c = (c); \
+ (__c >= ' ' && __c <= '~'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_ispunct
+#define c_ispunct(c) \
+ ({ int _c = (c); \
+ (c_isgraph (_c) && ! c_isalnum (_c)); \
+ })
+#endif
+
+#undef c_isspace
+#define c_isspace(c) \
+ ({ int __c = (c); \
+ (__c == ' ' || __c == '\t' \
+ || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \
+ })
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE
+#undef c_isupper
+#define c_isupper(c) \
+ ({ int __c = (c); \
+ (__c >= 'A' && __c <= 'Z'); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isxdigit
+#define c_isxdigit(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \
+ })
+#else
+#undef c_isxdigit
+#define c_isxdigit(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || (__c >= 'A' && __c <= 'F') \
+ || (__c >= 'a' && __c <= 'f')); \
+ })
+#endif
+#endif
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#undef c_tolower
+#define c_tolower(c) \
+ ({ int __c = (c); \
+ (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \
+ })
+#undef c_toupper
+#define c_toupper(c) \
+ ({ int __c = (c); \
+ (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \
+ })
+#endif
+
+#endif /* optimizing for speed */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* C_CTYPE_H */
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
new file mode 100644
index 0000000..714a3c6
--- /dev/null
+++ b/lib/c-strcase.h
@@ -0,0 +1,55 @@
+/* Case-insensitive string comparison functions in C locale.
+ Copyright (C) 1995-1996, 2001, 2003, 2005 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef C_STRCASE_H
+#define C_STRCASE_H
+
+#include <stddef.h>
+
+
+/* The functions defined in this file assume the "C" locale and a character
+ set without diacritics (ASCII-US or EBCDIC-US or something like that).
+ Even if the "C" locale on a particular system is an extension of the ASCII
+ character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+ is ISO-8859-1), the functions in this file recognize only the ASCII
+ characters. More precisely, one of the string arguments must be an ASCII
+ string; the other one can also contain non-ASCII characters (but then
+ the comparison result will be nonzero). */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+ greater than zero if S1 is lexicographically less than, equal to or greater
+ than S2. */
+extern int c_strcasecmp (const char *s1, const char *s2);
+
+/* Compare no more than N characters of strings S1 and S2, ignoring case,
+ returning less than, equal to or greater than zero if S1 is
+ lexicographically less than, equal to or greater than S2. */
+extern int c_strncasecmp (const char *s1, const char *s2, size_t n);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* C_STRCASE_H */
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
new file mode 100644
index 0000000..a523898
--- /dev/null
+++ b/lib/c-strcasecmp.c
@@ -0,0 +1,57 @@
+/* c-strcasecmp.c -- case insensitive string comparator in C locale
+ Copyright (C) 1998-1999, 2005-2006 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#include "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strcasecmp (const char *s1, const char *s2)
+{
+ register const unsigned char *p1 = (const unsigned char *) s1;
+ register const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ c1 = c_tolower (*p1);
+ c2 = c_tolower (*p2);
+
+ if (c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ return c1 - c2;
+ else
+ /* On machines where 'char' and 'int' are types of the same size, the
+ difference of two 'unsigned char' values - including the sign bit -
+ doesn't fit in an 'int'. */
+ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/lib/c-strcaseeq.h b/lib/c-strcaseeq.h
new file mode 100644
index 0000000..cd29b66
--- /dev/null
+++ b/lib/c-strcaseeq.h
@@ -0,0 +1,184 @@
+/* Optimized case-insensitive string comparison in C locale.
+ Copyright (C) 2001-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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include "c-strcase.h"
+#include "c-ctype.h"
+
+/* STRCASEEQ allows to optimize string comparison with a small literal string.
+ STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0)
+ is semantically equivalent to
+ c_strcasecmp (s, "UTF-8") == 0
+ just faster. */
+
+/* Help GCC to generate good code for string comparisons with
+ immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+/* Case insensitive comparison of ASCII characters. */
+# if C_CTYPE_ASCII
+# define CASEEQ(other,upper) \
+ (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper))
+# elif C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+# define CASEEQ(other,upper) \
+ (c_isupper (upper) ? (other) == (upper) || (other) == (upper) - 'A' + 'a' : (other) == (upper))
+# else
+# define CASEEQ(other,upper) \
+ (c_toupper (other) == (upper))
+# endif
+
+static inline int
+strcaseeq9 (const char *s1, const char *s2)
+{
+ return c_strcasecmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+strcaseeq8 (const char *s1, const char *s2, char s28)
+{
+ if (CASEEQ (s1[8], s28))
+ {
+ if (s28 == 0)
+ return 1;
+ else
+ return strcaseeq9 (s1, s2);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq7 (const char *s1, const char *s2, char s27, char s28)
+{
+ if (CASEEQ (s1[7], s27))
+ {
+ if (s27 == 0)
+ return 1;
+ else
+ return strcaseeq8 (s1, s2, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[6], s26))
+ {
+ if (s26 == 0)
+ return 1;
+ else
+ return strcaseeq7 (s1, s2, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[5], s25))
+ {
+ if (s25 == 0)
+ return 1;
+ else
+ return strcaseeq6 (s1, s2, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[4], s24))
+ {
+ if (s24 == 0)
+ return 1;
+ else
+ return strcaseeq5 (s1, s2, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[3], s23))
+ {
+ if (s23 == 0)
+ return 1;
+ else
+ return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[2], s22))
+ {
+ if (s22 == 0)
+ return 1;
+ else
+ return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[1], s21))
+ {
+ if (s21 == 0)
+ return 1;
+ else
+ return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[0], s20))
+ {
+ if (s20 == 0)
+ return 1;
+ else
+ return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ (c_strcasecmp (s1, s2) == 0)
+
+#endif
diff --git a/lib/c-strncasecmp.c b/lib/c-strncasecmp.c
new file mode 100644
index 0000000..c1496ca
--- /dev/null
+++ b/lib/c-strncasecmp.c
@@ -0,0 +1,57 @@
+/* c-strncasecmp.c -- case insensitive string comparator in C locale
+ Copyright (C) 1998-1999, 2005-2006 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#include "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strncasecmp (const char *s1, const char *s2, size_t n)
+{
+ register const unsigned char *p1 = (const unsigned char *) s1;
+ register const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2 || n == 0)
+ return 0;
+
+ do
+ {
+ c1 = c_tolower (*p1);
+ c2 = c_tolower (*p2);
+
+ if (--n == 0 || c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ return c1 - c2;
+ else
+ /* On machines where 'char' and 'int' are types of the same size, the
+ difference of two 'unsigned char' values - including the sign bit -
+ doesn't fit in an 'int'. */
+ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/lib/config.charset b/lib/config.charset
new file mode 100755
index 0000000..c1a7f5d
--- /dev/null
+++ b/lib/config.charset
@@ -0,0 +1,683 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-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 Lesser General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU 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, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The table consists of lines of the form
+# ALIAS CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+# name MIME? used by which systems
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin
+# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+# ISO-8859-3 Y glibc solaris
+# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin
+# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+# ISO-8859-6 Y glibc aix hpux solaris
+# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin
+# ISO-8859-8 Y glibc aix hpux osf solaris
+# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin
+# ISO-8859-13 glibc netbsd openbsd darwin
+# ISO-8859-14 glibc
+# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin
+# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin
+# KOI8-U Y glibc freebsd netbsd openbsd darwin
+# KOI8-T glibc
+# CP437 dos
+# CP775 dos
+# CP850 aix osf dos
+# CP852 dos
+# CP855 dos
+# CP856 aix
+# CP857 dos
+# CP861 dos
+# CP862 dos
+# CP864 dos
+# CP865 dos
+# CP866 freebsd netbsd openbsd darwin dos
+# CP869 dos
+# CP874 woe32 dos
+# CP922 aix
+# CP932 aix woe32 dos
+# CP943 aix
+# CP949 osf darwin woe32 dos
+# CP950 woe32 dos
+# CP1046 aix
+# CP1124 aix
+# CP1125 dos
+# CP1129 aix
+# CP1131 darwin
+# CP1250 woe32
+# CP1251 glibc solaris netbsd openbsd darwin woe32
+# CP1252 aix woe32
+# CP1253 woe32
+# CP1254 woe32
+# CP1255 glibc woe32
+# CP1256 woe32
+# CP1257 woe32
+# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
+# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# EUC-TW glibc aix hpux irix osf solaris netbsd
+# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin
+# BIG5-HKSCS glibc solaris darwin
+# GBK glibc aix osf solaris darwin woe32 dos
+# GB18030 glibc solaris netbsd darwin
+# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
+# JOHAB glibc solaris woe32
+# TIS-620 glibc aix hpux osf solaris
+# VISCII Y glibc
+# TCVN5712-1 glibc
+# ARMSCII-8 glibc darwin
+# GEORGIAN-PS glibc
+# PT154 glibc
+# HP-ROMAN8 hpux
+# HP-ARABIC8 hpux
+# HP-GREEK8 hpux
+# HP-HEBREW8 hpux
+# HP-TURKISH8 hpux
+# HP-KANA8 hpux
+# DEC-KANJI osf
+# DEC-HANYU osf
+# UTF-8 Y glibc aix hpux osf solaris netbsd darwin
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+ linux-gnulibc1*)
+ # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ echo "POSIX ASCII"
+ for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+ sv_FI sv_SE; do
+ echo "$l ISO-8859-1"
+ echo "$l.iso-8859-1 ISO-8859-1"
+ echo "$l.iso-8859-15 ISO-8859-15"
+ echo "$l.iso-8859-15@euro ISO-8859-15"
+ echo "$l@euro ISO-8859-15"
+ echo "$l.cp-437 CP437"
+ echo "$l.cp-850 CP850"
+ echo "$l.cp-1252 CP1252"
+ echo "$l.cp-1252@euro CP1252"
+ #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+ echo "$l.utf-8 UTF-8"
+ echo "$l.utf-8@euro UTF-8"
+ done
+ for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+ sl_SI sr sr_CS sr_YU; do
+ echo "$l ISO-8859-2"
+ echo "$l.iso-8859-2 ISO-8859-2"
+ echo "$l.cp-852 CP852"
+ echo "$l.cp-1250 CP1250"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in mk mk_MK ru ru_RU; do
+ echo "$l ISO-8859-5"
+ echo "$l.iso-8859-5 ISO-8859-5"
+ echo "$l.koi8-r KOI8-R"
+ echo "$l.cp-866 CP866"
+ echo "$l.cp-1251 CP1251"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in ar ar_SA; do
+ echo "$l ISO-8859-6"
+ echo "$l.iso-8859-6 ISO-8859-6"
+ echo "$l.cp-864 CP864"
+ #echo "$l.cp-868 CP868" # not a commonly used encoding
+ echo "$l.cp-1256 CP1256"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in el el_GR gr gr_GR; do
+ echo "$l ISO-8859-7"
+ echo "$l.iso-8859-7 ISO-8859-7"
+ echo "$l.cp-869 CP869"
+ echo "$l.cp-1253 CP1253"
+ echo "$l.cp-1253@euro CP1253"
+ echo "$l.utf-8 UTF-8"
+ echo "$l.utf-8@euro UTF-8"
+ done
+ for l in he he_IL iw iw_IL; do
+ echo "$l ISO-8859-8"
+ echo "$l.iso-8859-8 ISO-8859-8"
+ echo "$l.cp-862 CP862"
+ echo "$l.cp-1255 CP1255"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in tr tr_TR; do
+ echo "$l ISO-8859-9"
+ echo "$l.iso-8859-9 ISO-8859-9"
+ echo "$l.cp-857 CP857"
+ echo "$l.cp-1254 CP1254"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in lt lt_LT lv lv_LV; do
+ #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+ echo "$l ISO-8859-13"
+ done
+ for l in ru_UA uk uk_UA; do
+ echo "$l KOI8-U"
+ done
+ for l in zh zh_CN; do
+ #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+ echo "$l GB2312"
+ done
+ for l in ja ja_JP ja_JP.EUC; do
+ echo "$l EUC-JP"
+ done
+ for l in ko ko_KR; do
+ echo "$l EUC-KR"
+ done
+ for l in th th_TH; do
+ echo "$l TIS-620"
+ done
+ for l in fa fa_IR; do
+ #echo "$l ISIRI-3342" # a broken encoding
+ echo "$l.utf-8 UTF-8"
+ done
+ ;;
+ linux* | *-gnu*)
+ # With glibc-2.1 or newer, we don't need any canonicalization,
+ # because glibc has iconv and both glibc and libiconv support all
+ # GNU canonical names directly. Therefore, the Makefile does not
+ # need to install the alias file at all.
+ # The following applies only to glibc-2.0.x and older libcs.
+ echo "ISO_646.IRV:1983 ASCII"
+ ;;
+ aix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "IBM-850 CP850"
+ echo "IBM-856 CP856"
+ echo "IBM-921 ISO-8859-13"
+ echo "IBM-922 CP922"
+ echo "IBM-932 CP932"
+ echo "IBM-943 CP943"
+ echo "IBM-1046 CP1046"
+ echo "IBM-1124 CP1124"
+ echo "IBM-1129 CP1129"
+ echo "IBM-1252 CP1252"
+ echo "IBM-eucCN GB2312"
+ echo "IBM-eucJP EUC-JP"
+ echo "IBM-eucKR EUC-KR"
+ echo "IBM-eucTW EUC-TW"
+ echo "big5 BIG5"
+ echo "GBK GBK"
+ echo "TIS-620 TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ hpux*)
+ echo "iso88591 ISO-8859-1"
+ echo "iso88592 ISO-8859-2"
+ echo "iso88595 ISO-8859-5"
+ echo "iso88596 ISO-8859-6"
+ echo "iso88597 ISO-8859-7"
+ echo "iso88598 ISO-8859-8"
+ echo "iso88599 ISO-8859-9"
+ echo "iso885915 ISO-8859-15"
+ echo "roman8 HP-ROMAN8"
+ echo "arabic8 HP-ARABIC8"
+ echo "greek8 HP-GREEK8"
+ echo "hebrew8 HP-HEBREW8"
+ echo "turkish8 HP-TURKISH8"
+ echo "kana8 HP-KANA8"
+ echo "tis620 TIS-620"
+ echo "big5 BIG5"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "hp15CN GB2312"
+ #echo "ccdc ?" # what is this?
+ echo "SJIS SHIFT_JIS"
+ echo "utf8 UTF-8"
+ ;;
+ irix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ ;;
+ osf*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "cp850 CP850"
+ echo "big5 BIG5"
+ echo "dechanyu DEC-HANYU"
+ echo "dechanzi GB2312"
+ echo "deckanji DEC-KANJI"
+ echo "deckorean EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "GBK GBK"
+ echo "KSC5601 CP949"
+ echo "sdeckanji EUC-JP"
+ echo "SJIS SHIFT_JIS"
+ echo "TACTIS TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ solaris*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-3 ISO-8859-3"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "koi8-r KOI8-R"
+ echo "ansi-1251 CP1251"
+ echo "BIG5 BIG5"
+ echo "Big5-HKSCS BIG5-HKSCS"
+ echo "gb2312 GB2312"
+ echo "GBK GBK"
+ echo "GB18030 GB18030"
+ echo "cns11643 EUC-TW"
+ echo "5601 EUC-KR"
+ echo "ko_KR.johap92 JOHAB"
+ echo "eucJP EUC-JP"
+ echo "PCK SHIFT_JIS"
+ echo "TIS620.2533 TIS-620"
+ #echo "sun_eu_greek ?" # what is this?
+ echo "UTF-8 UTF-8"
+ ;;
+ freebsd* | os2*)
+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+ # reuse FreeBSD's locale data for OS/2.
+ echo "C ASCII"
+ echo "US-ASCII ASCII"
+ for l in la_LN lt_LN; do
+ echo "$l.ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+ echo "$l.ISO_8859-1 ISO-8859-1"
+ echo "$l.DIS_8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+ echo "$l.ISO_8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO_8859-4 ISO-8859-4"
+ done
+ for l in ru_RU ru_SU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO_8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ja_JP.Shift_JIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ netbsd*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-13 ISO-8859-13"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "BIG5 BIG5"
+ echo "SJIS SHIFT_JIS"
+ ;;
+ openbsd*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-13 ISO-8859-13"
+ echo "ISO8859-15 ISO-8859-15"
+ ;;
+ darwin[56]*)
+ # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ for l in en_AU en_CA en_GB en_US la_LN; do
+ echo "$l.US-ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+ nl_NL no_NO pt_PT sv_SE; do
+ echo "$l ISO-8859-1"
+ echo "$l.ISO8859-1 ISO-8859-1"
+ echo "$l.ISO8859-15 ISO-8859-15"
+ done
+ for l in la_LN; do
+ echo "$l.ISO8859-1 ISO-8859-1"
+ echo "$l.ISO8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+ echo "$l.ISO8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO8859-4 ISO-8859-4"
+ done
+ for l in ru_RU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ for l in bg_BG; do
+ echo "$l.CP1251 CP1251"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ darwin*)
+ # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
+ # useless:
+ # - It returns the empty string when LANG is set to a locale of the
+ # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+ # LC_CTYPE file.
+ # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+ # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+ # - The documentation says:
+ # "... all code that calls BSD system routines should ensure
+ # that the const *char parameters of these routines are in UTF-8
+ # encoding. All BSD system functions expect their string
+ # parameters to be in UTF-8 encoding and nothing else."
+ # It also says
+ # "An additional caveat is that string parameters for files,
+ # paths, and other file-system entities must be in canonical
+ # UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+ # characters are decomposed ..."
+ # but this is not true: You can pass non-decomposed UTF-8 strings
+ # to file system functions, and it is the OS which will convert
+ # them to decomposed UTF-8 before accessing the file system.
+ # - The Apple Terminal application displays UTF-8 by default.
+ # - However, other applications are free to use different encodings:
+ # - xterm uses ISO-8859-1 by default.
+ # - TextEdit uses MacRoman by default.
+ # We prefer UTF-8 over decomposed UTF-8-MAC because one should
+ # minimize the use of decomposed Unicode. Unfortunately, through the
+ # Darwin file system, decomposed UTF-8 strings are leaked into user
+ # space nevertheless.
+ # Then there are also the locales with encodings other than US-ASCII
+ # and UTF-8. These locales can be occasionally useful to users (e.g.
+ # when grepping through ISO-8859-1 encoded text files), when all their
+ # file names are in US-ASCII.
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-13 ISO-8859-13"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "KOI8-R KOI8-R"
+ echo "KOI8-U KOI8-U"
+ echo "CP866 CP866"
+ echo "CP949 CP949"
+ echo "CP1131 CP1131"
+ echo "CP1251 CP1251"
+ echo "eucCN GB2312"
+ echo "GB2312 GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "Big5 BIG5"
+ echo "Big5HKSCS BIG5-HKSCS"
+ echo "GBK GBK"
+ echo "GB18030 GB18030"
+ echo "SJIS SHIFT_JIS"
+ echo "ARMSCII-8 ARMSCII-8"
+ echo "PT154 PT154"
+ #echo "ISCII-DEV ?"
+ echo "* UTF-8"
+ ;;
+ beos* | haiku*)
+ # BeOS and Haiku have a single locale, and it has UTF-8 encoding.
+ echo "* UTF-8"
+ ;;
+ msdosdjgpp*)
+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "#"
+ echo "# The encodings given here may not all be correct."
+ echo "# If you find that the encoding given for your language and"
+ echo "# country is not the one your DOS machine actually uses, just"
+ echo "# correct it in this file, and send a mail to"
+ echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
+ echo "# and Bruno Haible <bruno@clisp.org>."
+ echo "#"
+ echo "C ASCII"
+ # ISO-8859-1 languages
+ echo "ca CP850"
+ echo "ca_ES CP850"
+ echo "da CP865" # not CP850 ??
+ echo "da_DK CP865" # not CP850 ??
+ echo "de CP850"
+ echo "de_AT CP850"
+ echo "de_CH CP850"
+ echo "de_DE CP850"
+ echo "en CP850"
+ echo "en_AU CP850" # not CP437 ??
+ echo "en_CA CP850"
+ echo "en_GB CP850"
+ echo "en_NZ CP437"
+ echo "en_US CP437"
+ echo "en_ZA CP850" # not CP437 ??
+ echo "es CP850"
+ echo "es_AR CP850"
+ echo "es_BO CP850"
+ echo "es_CL CP850"
+ echo "es_CO CP850"
+ echo "es_CR CP850"
+ echo "es_CU CP850"
+ echo "es_DO CP850"
+ echo "es_EC CP850"
+ echo "es_ES CP850"
+ echo "es_GT CP850"
+ echo "es_HN CP850"
+ echo "es_MX CP850"
+ echo "es_NI CP850"
+ echo "es_PA CP850"
+ echo "es_PY CP850"
+ echo "es_PE CP850"
+ echo "es_SV CP850"
+ echo "es_UY CP850"
+ echo "es_VE CP850"
+ echo "et CP850"
+ echo "et_EE CP850"
+ echo "eu CP850"
+ echo "eu_ES CP850"
+ echo "fi CP850"
+ echo "fi_FI CP850"
+ echo "fr CP850"
+ echo "fr_BE CP850"
+ echo "fr_CA CP850"
+ echo "fr_CH CP850"
+ echo "fr_FR CP850"
+ echo "ga CP850"
+ echo "ga_IE CP850"
+ echo "gd CP850"
+ echo "gd_GB CP850"
+ echo "gl CP850"
+ echo "gl_ES CP850"
+ echo "id CP850" # not CP437 ??
+ echo "id_ID CP850" # not CP437 ??
+ echo "is CP861" # not CP850 ??
+ echo "is_IS CP861" # not CP850 ??
+ echo "it CP850"
+ echo "it_CH CP850"
+ echo "it_IT CP850"
+ echo "lt CP775"
+ echo "lt_LT CP775"
+ echo "lv CP775"
+ echo "lv_LV CP775"
+ echo "nb CP865" # not CP850 ??
+ echo "nb_NO CP865" # not CP850 ??
+ echo "nl CP850"
+ echo "nl_BE CP850"
+ echo "nl_NL CP850"
+ echo "nn CP865" # not CP850 ??
+ echo "nn_NO CP865" # not CP850 ??
+ echo "no CP865" # not CP850 ??
+ echo "no_NO CP865" # not CP850 ??
+ echo "pt CP850"
+ echo "pt_BR CP850"
+ echo "pt_PT CP850"
+ echo "sv CP850"
+ echo "sv_SE CP850"
+ # ISO-8859-2 languages
+ echo "cs CP852"
+ echo "cs_CZ CP852"
+ echo "hr CP852"
+ echo "hr_HR CP852"
+ echo "hu CP852"
+ echo "hu_HU CP852"
+ echo "pl CP852"
+ echo "pl_PL CP852"
+ echo "ro CP852"
+ echo "ro_RO CP852"
+ echo "sk CP852"
+ echo "sk_SK CP852"
+ echo "sl CP852"
+ echo "sl_SI CP852"
+ echo "sq CP852"
+ echo "sq_AL CP852"
+ echo "sr CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+ # ISO-8859-3 languages
+ echo "mt CP850"
+ echo "mt_MT CP850"
+ # ISO-8859-5 languages
+ echo "be CP866"
+ echo "be_BE CP866"
+ echo "bg CP866" # not CP855 ??
+ echo "bg_BG CP866" # not CP855 ??
+ echo "mk CP866" # not CP855 ??
+ echo "mk_MK CP866" # not CP855 ??
+ echo "ru CP866"
+ echo "ru_RU CP866"
+ echo "uk CP1125"
+ echo "uk_UA CP1125"
+ # ISO-8859-6 languages
+ echo "ar CP864"
+ echo "ar_AE CP864"
+ echo "ar_DZ CP864"
+ echo "ar_EG CP864"
+ echo "ar_IQ CP864"
+ echo "ar_IR CP864"
+ echo "ar_JO CP864"
+ echo "ar_KW CP864"
+ echo "ar_MA CP864"
+ echo "ar_OM CP864"
+ echo "ar_QA CP864"
+ echo "ar_SA CP864"
+ echo "ar_SY CP864"
+ # ISO-8859-7 languages
+ echo "el CP869"
+ echo "el_GR CP869"
+ # ISO-8859-8 languages
+ echo "he CP862"
+ echo "he_IL CP862"
+ # ISO-8859-9 languages
+ echo "tr CP857"
+ echo "tr_TR CP857"
+ # Japanese
+ echo "ja CP932"
+ echo "ja_JP CP932"
+ # Chinese
+ echo "zh_CN GBK"
+ echo "zh_TW CP950" # not CP938 ??
+ # Korean
+ echo "kr CP949" # not CP934 ??
+ echo "kr_KR CP949" # not CP934 ??
+ # Thai
+ echo "th CP874"
+ echo "th_TH CP874"
+ # Other
+ echo "eo CP850"
+ echo "eo_EO CP850"
+ ;;
+esac
diff --git a/lib/declared.sh b/lib/declared.sh
new file mode 100755
index 0000000..fbd5996
--- /dev/null
+++ b/lib/declared.sh
@@ -0,0 +1,135 @@
+#! /bin/sh
+#
+# 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/>.
+#
+
+# This script determines the declared global symbols in a C header file.
+# Assumptions:
+# - The header files are in C, with only C89 comments.
+# - No use of macros with parameters.
+# - All global declarations are marked with 'extern'.
+# - All declarations end in ';' on the same line.
+# - Not more than one symbol is declared in a declaration.
+
+# func_usage
+# outputs to stdout the --help usage message.
+func_usage ()
+{
+ echo "\
+Usage: declared.sh [OPTION]... < SOURCE.h
+
+Extracts the declared global symbols of a C header file.
+
+Options:
+ --help print this help and exit
+ --version print version information and exit
+
+Report bugs to <bruno@clisp.org>."
+}
+
+# func_version
+# outputs to stdout the --version message.
+func_version ()
+{
+ echo "declared.sh (GNU libunistring)"
+ echo "Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo "Written by" "Bruno Haible"
+}
+
+# func_fatal_error message
+# outputs to stderr a fatal error message, and terminates the program.
+func_fatal_error ()
+{
+ echo "declared.sh: *** $1" 1>&2
+ echo "declared.sh: *** Stop." 1>&2
+ exit 1
+}
+
+# Command-line option processing.
+while test $# -gt 0; do
+ case "$1" in
+ --help | --hel | --he | --h )
+ func_usage
+ exit 0 ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version
+ exit 0 ;;
+ -- ) # Stop option prcessing
+ shift; break ;;
+ -* )
+ func_fatal_error "unrecognized option: $option"
+ ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# -gt 0; then
+ func_fatal_error "too many arguments"
+fi
+
+# A sed expression that removes ANSI C and ISO C99 comments.
+sed_remove_comments="
+/[/][/*]/{
+ ta
+ :a
+ s,^\\(\\([^\"'/]\\|\"\\([^\\\"]\\|[\\].\\)*\"\\|'\\([^\\']\\|[\\].\\)*'\\|[/][^\"'/*]\\|[/]\"\\([^\\\"]\\|[\\].\\)*\"\\|[/]'\\([^\\']\\|[\\].\\)*'\\)*\\)//.*,\\1,
+ te
+ s,^\\(\\([^\"'/]\\|\"\\([^\\\"]\\|[\\].\\)*\"\\|'\\([^\\']\\|[\\].\\)*'\\|[/][^\"'/*]\\|[/]\"\\([^\\\"]\\|[\\].\\)*\"\\|[/]'\\([^\\']\\|[\\].\\)*'\\)*\\)/[*]\\([^*]\\|[*][^/*]\\)*[*][*]*/,\\1 ,
+ ta
+ /^\\([^\"'/]\\|\"\\([^\\\"]\\|[\\].\\)*\"\\|'\\([^\\']\\|[\\].\\)*'\\|[/][^\"'/*]\\|[/]\"\\([^\\\"]\\|[\\].\\)*\"\\|[/]'\\([^\\']\\|[\\].\\)*'\\)*[/][*]/{
+ s,^\\(\\([^\"'/]\\|\"\\([^\\\"]\\|[\\].\\)*\"\\|'\\([^\\']\\|[\\].\\)*'\\|[/][^\"'/*]\\|[/]\"\\([^\\\"]\\|[\\].\\)*\"\\|[/]'\\([^\\']\\|[\\].\\)*'\\)*\\)/[*].*,\\1 ,
+ tu
+ :u
+ n
+ s,^\\([^*]\\|[*][^/*]\\)*[*][*]*/,,
+ tv
+ s,^.*\$,,
+ bu
+ :v
+ }
+ :e
+}"
+
+# Check that 'sed' supports the kind of regular expressions used in
+# sed_remove_comments. The use of \| meaning alternation of basic regular
+# expressions is a GNU extension.
+sed_test='s,^\(\(a\|X\)*\)//.*,\1,'
+sed_result=`echo 'aaa//bcd' | sed -e "$sed_test"`
+test "$sed_result" = 'aaa' \
+ || func_fatal_error "The 'sed' program is not GNU sed. Try installing GNU sed."
+
+# A sed expression that joins 'extern' declarations that are broken over
+# several lines.
+sed_join_multiline_externs='
+/^extern [^;]*$/{
+ :a
+ N
+ s/\n/ /g
+ /^extern [^;]*$/{
+ ba
+ }
+}'
+
+# A sed expression that extracts the identifier of each 'extern' declaration.
+sed_extract_extern_declared='s/^extern [^()]* \([A-Za-z_][A-Za-z0-9_]*\) *[;(].*$/\1/p'
+
+sed -e "$sed_remove_comments" \
+ | sed -e "$sed_join_multiline_externs" \
+ | sed -n -e "$sed_extract_extern_declared"
diff --git a/lib/errno.in.h b/lib/errno.in.h
new file mode 100644
index 0000000..a9b81d5
--- /dev/null
+++ b/lib/errno.in.h
@@ -0,0 +1,160 @@
+/* A POSIX-like <errno.h>.
+
+ Copyright (C) 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_ERRNO_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_ERRNO_H@
+
+#ifndef _GL_ERRNO_H
+#define _GL_ERRNO_H
+
+
+/* On native Windows platforms, many macros are not defined. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* POSIX says that EAGAIN and EWOULDBLOCK may have the same value. */
+# define EWOULDBLOCK EAGAIN
+
+/* Values >= 100 seem safe to use. */
+# define ETXTBSY 100
+# define GNULIB_defined_ETXTBSY 1
+
+/* These are intentionally the same values as the WSA* error numbers, defined
+ in <winsock2.h>. */
+# define EINPROGRESS 10036
+# define EALREADY 10037
+# define ENOTSOCK 10038
+# define EDESTADDRREQ 10039
+# define EMSGSIZE 10040
+# define EPROTOTYPE 10041
+# define ENOPROTOOPT 10042
+# define EPROTONOSUPPORT 10043
+# define ESOCKTNOSUPPORT 10044 /* not required by POSIX */
+# define EOPNOTSUPP 10045
+# define EPFNOSUPPORT 10046 /* not required by POSIX */
+# define EAFNOSUPPORT 10047
+# define EADDRINUSE 10048
+# define EADDRNOTAVAIL 10049
+# define ENETDOWN 10050
+# define ENETUNREACH 10051
+# define ENETRESET 10052
+# define ECONNABORTED 10053
+# define ECONNRESET 10054
+# define ENOBUFS 10055
+# define EISCONN 10056
+# define ENOTCONN 10057
+# define ESHUTDOWN 10058 /* not required by POSIX */
+# define ETOOMANYREFS 10059 /* not required by POSIX */
+# define ETIMEDOUT 10060
+# define ECONNREFUSED 10061
+# define ELOOP 10062
+# define EHOSTDOWN 10064 /* not required by POSIX */
+# define EHOSTUNREACH 10065
+# define EPROCLIM 10067 /* not required by POSIX */
+# define EUSERS 10068 /* not required by POSIX */
+# define EDQUOT 10069
+# define ESTALE 10070
+# define EREMOTE 10071 /* not required by POSIX */
+# define GNULIB_defined_ESOCK 1
+
+# endif
+
+
+/* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros
+ EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */
+# if @EMULTIHOP_HIDDEN@
+# define EMULTIHOP @EMULTIHOP_VALUE@
+# define GNULIB_defined_EMULTIHOP 1
+# endif
+# if @ENOLINK_HIDDEN@
+# define ENOLINK @ENOLINK_VALUE@
+# define GNULIB_defined_ENOLINK 1
+# endif
+# if @EOVERFLOW_HIDDEN@
+# define EOVERFLOW @EOVERFLOW_VALUE@
+# define GNULIB_defined_EOVERFLOW 1
+# endif
+
+
+/* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK,
+ EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined.
+ Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151,
+ HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133.
+
+ Note: When one of these systems defines some of these macros some day,
+ binaries will have to be recompiled so that they recognizes the new
+ errno values from the system. */
+
+# ifndef ENOMSG
+# define ENOMSG 2000
+# define GNULIB_defined_ENOMSG 1
+# endif
+
+# ifndef EIDRM
+# define EIDRM 2001
+# define GNULIB_defined_EIDRM 1
+# endif
+
+# ifndef ENOLINK
+# define ENOLINK 2002
+# define GNULIB_defined_ENOLINK 1
+# endif
+
+# ifndef EPROTO
+# define EPROTO 2003
+# define GNULIB_defined_EPROTO 1
+# endif
+
+# ifndef EMULTIHOP
+# define EMULTIHOP 2004
+# define GNULIB_defined_EMULTIHOP 1
+# endif
+
+# ifndef EBADMSG
+# define EBADMSG 2005
+# define GNULIB_defined_EBADMSG 1
+# endif
+
+# ifndef EOVERFLOW
+# define EOVERFLOW 2006
+# define GNULIB_defined_EOVERFLOW 1
+# endif
+
+# ifndef ENOTSUP
+# define ENOTSUP 2007
+# define GNULIB_defined_ENOTSUP 1
+# endif
+
+# ifndef ESTALE
+# define ESTALE 2009
+# define GNULIB_defined_ESTALE 1
+# endif
+
+# ifndef ECANCELED
+# define ECANCELED 2008
+# define GNULIB_defined_ECANCELED 1
+# endif
+
+
+#endif /* _GL_ERRNO_H */
+#endif /* _GL_ERRNO_H */
diff --git a/lib/exported.sh.in b/lib/exported.sh.in
new file mode 100644
index 0000000..7bd3b1e
--- /dev/null
+++ b/lib/exported.sh.in
@@ -0,0 +1,24 @@
+#! /bin/sh
+#
+# Copyright (C) 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 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# This is a script that determines the exported symbols of an object file.
+# This is a separate script because $(GLOBAL_SYMBOL_PIPE) cannot be used in a
+# Makefile, since it may contain dollar signs.
+
+nm_cmd="@NM@ \"\$1\" | @GLOBAL_SYMBOL_PIPE@"
+eval $nm_cmd
diff --git a/lib/float+.h b/lib/float+.h
new file mode 100644
index 0000000..2288e3d
--- /dev/null
+++ b/lib/float+.h
@@ -0,0 +1,148 @@
+/* Supplemental information about the floating-point formats.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _FLOATPLUS_H
+#define _FLOATPLUS_H
+
+#include <float.h>
+#include <limits.h>
+
+/* Number of bits in the mantissa of a floating-point number, including the
+ "hidden bit". */
+#if FLT_RADIX == 2
+# define FLT_MANT_BIT FLT_MANT_DIG
+# define DBL_MANT_BIT DBL_MANT_DIG
+# define LDBL_MANT_BIT LDBL_MANT_DIG
+#elif FLT_RADIX == 4
+# define FLT_MANT_BIT (FLT_MANT_DIG * 2)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 2)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2)
+#elif FLT_RADIX == 16
+# define FLT_MANT_BIT (FLT_MANT_DIG * 4)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 4)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4)
+#endif
+
+/* Bit mask that can be used to mask the exponent, as an unsigned number. */
+#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7)
+#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7)
+
+/* Number of bits used for the exponent of a floating-point number, including
+ the exponent's sign. */
+#define FLT_EXP_BIT \
+ (FLT_EXP_MASK < 0x100 ? 8 : \
+ FLT_EXP_MASK < 0x200 ? 9 : \
+ FLT_EXP_MASK < 0x400 ? 10 : \
+ FLT_EXP_MASK < 0x800 ? 11 : \
+ FLT_EXP_MASK < 0x1000 ? 12 : \
+ FLT_EXP_MASK < 0x2000 ? 13 : \
+ FLT_EXP_MASK < 0x4000 ? 14 : \
+ FLT_EXP_MASK < 0x8000 ? 15 : \
+ FLT_EXP_MASK < 0x10000 ? 16 : \
+ FLT_EXP_MASK < 0x20000 ? 17 : \
+ FLT_EXP_MASK < 0x40000 ? 18 : \
+ FLT_EXP_MASK < 0x80000 ? 19 : \
+ FLT_EXP_MASK < 0x100000 ? 20 : \
+ FLT_EXP_MASK < 0x200000 ? 21 : \
+ FLT_EXP_MASK < 0x400000 ? 22 : \
+ FLT_EXP_MASK < 0x800000 ? 23 : \
+ FLT_EXP_MASK < 0x1000000 ? 24 : \
+ FLT_EXP_MASK < 0x2000000 ? 25 : \
+ FLT_EXP_MASK < 0x4000000 ? 26 : \
+ FLT_EXP_MASK < 0x8000000 ? 27 : \
+ FLT_EXP_MASK < 0x10000000 ? 28 : \
+ FLT_EXP_MASK < 0x20000000 ? 29 : \
+ FLT_EXP_MASK < 0x40000000 ? 30 : \
+ FLT_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+#define DBL_EXP_BIT \
+ (DBL_EXP_MASK < 0x100 ? 8 : \
+ DBL_EXP_MASK < 0x200 ? 9 : \
+ DBL_EXP_MASK < 0x400 ? 10 : \
+ DBL_EXP_MASK < 0x800 ? 11 : \
+ DBL_EXP_MASK < 0x1000 ? 12 : \
+ DBL_EXP_MASK < 0x2000 ? 13 : \
+ DBL_EXP_MASK < 0x4000 ? 14 : \
+ DBL_EXP_MASK < 0x8000 ? 15 : \
+ DBL_EXP_MASK < 0x10000 ? 16 : \
+ DBL_EXP_MASK < 0x20000 ? 17 : \
+ DBL_EXP_MASK < 0x40000 ? 18 : \
+ DBL_EXP_MASK < 0x80000 ? 19 : \
+ DBL_EXP_MASK < 0x100000 ? 20 : \
+ DBL_EXP_MASK < 0x200000 ? 21 : \
+ DBL_EXP_MASK < 0x400000 ? 22 : \
+ DBL_EXP_MASK < 0x800000 ? 23 : \
+ DBL_EXP_MASK < 0x1000000 ? 24 : \
+ DBL_EXP_MASK < 0x2000000 ? 25 : \
+ DBL_EXP_MASK < 0x4000000 ? 26 : \
+ DBL_EXP_MASK < 0x8000000 ? 27 : \
+ DBL_EXP_MASK < 0x10000000 ? 28 : \
+ DBL_EXP_MASK < 0x20000000 ? 29 : \
+ DBL_EXP_MASK < 0x40000000 ? 30 : \
+ DBL_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+#define LDBL_EXP_BIT \
+ (LDBL_EXP_MASK < 0x100 ? 8 : \
+ LDBL_EXP_MASK < 0x200 ? 9 : \
+ LDBL_EXP_MASK < 0x400 ? 10 : \
+ LDBL_EXP_MASK < 0x800 ? 11 : \
+ LDBL_EXP_MASK < 0x1000 ? 12 : \
+ LDBL_EXP_MASK < 0x2000 ? 13 : \
+ LDBL_EXP_MASK < 0x4000 ? 14 : \
+ LDBL_EXP_MASK < 0x8000 ? 15 : \
+ LDBL_EXP_MASK < 0x10000 ? 16 : \
+ LDBL_EXP_MASK < 0x20000 ? 17 : \
+ LDBL_EXP_MASK < 0x40000 ? 18 : \
+ LDBL_EXP_MASK < 0x80000 ? 19 : \
+ LDBL_EXP_MASK < 0x100000 ? 20 : \
+ LDBL_EXP_MASK < 0x200000 ? 21 : \
+ LDBL_EXP_MASK < 0x400000 ? 22 : \
+ LDBL_EXP_MASK < 0x800000 ? 23 : \
+ LDBL_EXP_MASK < 0x1000000 ? 24 : \
+ LDBL_EXP_MASK < 0x2000000 ? 25 : \
+ LDBL_EXP_MASK < 0x4000000 ? 26 : \
+ LDBL_EXP_MASK < 0x8000000 ? 27 : \
+ LDBL_EXP_MASK < 0x10000000 ? 28 : \
+ LDBL_EXP_MASK < 0x20000000 ? 29 : \
+ LDBL_EXP_MASK < 0x40000000 ? 30 : \
+ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+
+/* Number of bits used for a floating-point number: the mantissa (not
+ counting the "hidden bit", since it may or may not be explicit), the
+ exponent, and the sign. */
+#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1)
+#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1)
+#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1)
+
+/* Number of bytes used for a floating-point number.
+ This can be smaller than the 'sizeof'. For example, on i386 systems,
+ 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence
+ LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but
+ sizeof (long double) = 12 or = 16. */
+#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+
+/* Verify that SIZEOF_FLT <= sizeof (float) etc. */
+typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1];
+typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1];
+typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1];
+
+#endif /* _FLOATPLUS_H */
diff --git a/lib/float.in.h b/lib/float.in.h
new file mode 100644
index 0000000..63d55f8
--- /dev/null
+++ b/lib/float.in.h
@@ -0,0 +1,62 @@
+/* A correct <float.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 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/>. */
+
+#ifndef _GL_FLOAT_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
+
+#ifndef _GL_FLOAT_H
+#define _GL_FLOAT_H
+
+/* 'long double' properties. */
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+/* Number of mantissa units, in base FLT_RADIX. */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 64
+/* Number of decimal digits that is sufficient for representing a number. */
+# undef LDBL_DIG
+# define LDBL_DIG 18
+/* x-1 where x is the smallest representable number > 1. */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.0842021724855044340E-19L
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP 16384
+/* Minimum positive normalized number. */
+# undef LDBL_MIN
+# define LDBL_MIN 3.3621031431120935063E-4932L
+/* Maximum representable finite number. */
+# undef LDBL_MAX
+# define LDBL_MAX 1.1897314953572317650E+4932L
+/* Minimum e such that 10^e is in the range of normalized numbers. */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers. */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+#endif /* _GL_FLOAT_H */
+#endif /* _GL_FLOAT_H */
diff --git a/lib/fpucw.h b/lib/fpucw.h
new file mode 100644
index 0000000..4bd0081
--- /dev/null
+++ b/lib/fpucw.h
@@ -0,0 +1,107 @@
+/* Manipulating the FPU control word.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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/>. */
+
+#ifndef _FPUCW_H
+#define _FPUCW_H
+
+/* The i386 floating point hardware (the 387 compatible FPU, not the modern
+ SSE/SSE2 hardware) has a controllable rounding precision. It is specified
+ through the 'PC' bits in the FPU control word ('fctrl' register). (See
+ the GNU libc i386 <fpu_control.h> header for details.)
+
+ On some platforms, such as Linux or Solaris, the default precision setting
+ is set to "extended precision". This means that 'long double' instructions
+ operate correctly, but 'double' computations often produce slightly
+ different results as on strictly IEEE 754 conforming systems.
+
+ On some platforms, such as NetBSD, the default precision is set to
+ "double precision". This means that 'long double' instructions will operate
+ only as 'double', i.e. lead wrong results.
+
+ The FPU control word is under control of the application, i.e. it is
+ not required to be set either way by the ABI. (In fact, the i386 ABI
+ http://refspecs.freestandards.org/elf/abi386-4.pdf page 3-12 = page 38
+ is not clear about it. But in any case, gcc treats the control word
+ like a "preserved" register: it emits code that assumes that the control
+ word is preserved across calls, and it restores the control word at the
+ end of functions that modify it.)
+
+ See Vincent Lefèvre's page http://www.vinc17.org/research/extended.en.html
+ for a good explanation.
+ See http://www.uwsg.iu.edu/hypermail/linux/kernel/0103.0/0453.html for
+ some argumentation which setting should be the default. */
+
+/* This header file provides the following facilities:
+ fpucw_t integral type holding the value of 'fctrl'
+ FPU_PC_MASK bit mask denoting the precision control
+ FPU_PC_DOUBLE precision control for 53 bits mantissa
+ FPU_PC_EXTENDED precision control for 64 bits mantissa
+ GET_FPUCW () yields the current FPU control word
+ SET_FPUCW (word) sets the FPU control word
+ DECL_LONG_DOUBLE_ROUNDING variable declaration for
+ BEGIN/END_LONG_DOUBLE_ROUNDING
+ BEGIN_LONG_DOUBLE_ROUNDING () starts a sequence of instructions with
+ 'long double' safe operation precision
+ END_LONG_DOUBLE_ROUNDING () ends a sequence of instructions with
+ 'long double' safe operation precision
+ */
+
+/* Inline assembler like this works only with GNU C. */
+#if (defined __i386__ || defined __x86_64__) && defined __GNUC__
+
+typedef unsigned short fpucw_t; /* glibc calls this fpu_control_t */
+
+# define FPU_PC_MASK 0x0300
+# define FPU_PC_DOUBLE 0x200 /* glibc calls this _FPU_DOUBLE */
+# define FPU_PC_EXTENDED 0x300 /* glibc calls this _FPU_EXTENDED */
+
+# define GET_FPUCW() \
+ ({ fpucw_t _cw; \
+ __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_cw)); \
+ _cw; \
+ })
+# define SET_FPUCW(word) \
+ (void)({ fpucw_t _ncw = (word); \
+ __asm__ __volatile__ ("fldcw %0" : : "m" (*&_ncw)); \
+ })
+
+# define DECL_LONG_DOUBLE_ROUNDING \
+ fpucw_t oldcw;
+# define BEGIN_LONG_DOUBLE_ROUNDING() \
+ (void)(oldcw = GET_FPUCW (), \
+ SET_FPUCW ((oldcw & ~FPU_PC_MASK) | FPU_PC_EXTENDED))
+# define END_LONG_DOUBLE_ROUNDING() \
+ SET_FPUCW (oldcw)
+
+#else
+
+typedef unsigned int fpucw_t;
+
+# define FPU_PC_MASK 0
+# define FPU_PC_DOUBLE 0
+# define FPU_PC_EXTENDED 0
+
+# define GET_FPUCW() 0
+# define SET_FPUCW(word) (void)(word)
+
+# define DECL_LONG_DOUBLE_ROUNDING
+# define BEGIN_LONG_DOUBLE_ROUNDING()
+# define END_LONG_DOUBLE_ROUNDING()
+
+#endif
+
+#endif /* _FPUCW_H */
diff --git a/lib/frexp.c b/lib/frexp.c
new file mode 100644
index 0000000..8c72660
--- /dev/null
+++ b/lib/frexp.c
@@ -0,0 +1,166 @@
+/* Split 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 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/>. */
+
+/* Written by Paolo Bonzini <bonzini@gnu.org>, 2003, and
+ Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+/* Specification. */
+#include <math.h>
+
+#include <float.h>
+#ifdef USE_LONG_DOUBLE
+# include "isnanl-nolibm.h"
+# include "fpucw.h"
+#else
+# include "isnand-nolibm.h"
+#endif
+
+/* This file assumes FLT_RADIX = 2. If FLT_RADIX is a power of 2 greater
+ than 2, or not even a power of 2, some rounding errors can occur, so that
+ then the returned mantissa is only guaranteed to be <= 1.0, not < 1.0. */
+
+#ifdef USE_LONG_DOUBLE
+# define FUNC frexpl
+# define DOUBLE long double
+# define ISNAN isnanl
+# define DECL_ROUNDING DECL_LONG_DOUBLE_ROUNDING
+# define BEGIN_ROUNDING() BEGIN_LONG_DOUBLE_ROUNDING ()
+# define END_ROUNDING() END_LONG_DOUBLE_ROUNDING ()
+# define L_(literal) literal##L
+#else
+# define FUNC frexp
+# define DOUBLE double
+# define ISNAN isnand
+# define DECL_ROUNDING
+# define BEGIN_ROUNDING()
+# define END_ROUNDING()
+# define L_(literal) literal
+#endif
+
+DOUBLE
+FUNC (DOUBLE x, int *expptr)
+{
+ int sign;
+ int exponent;
+ DECL_ROUNDING
+
+ /* Test for NaN, infinity, and zero. */
+ if (ISNAN (x) || x + x == x)
+ {
+ *expptr = 0;
+ return x;
+ }
+
+ sign = 0;
+ if (x < 0)
+ {
+ x = - x;
+ sign = -1;
+ }
+
+ BEGIN_ROUNDING ();
+
+ {
+ /* Since the exponent is an 'int', it fits in 64 bits. Therefore the
+ loops are executed no more than 64 times. */
+ DOUBLE pow2[64]; /* pow2[i] = 2^2^i */
+ DOUBLE powh[64]; /* powh[i] = 2^-2^i */
+ int i;
+
+ exponent = 0;
+ if (x >= L_(1.0))
+ {
+ /* A positive exponent. */
+ DOUBLE pow2_i; /* = pow2[i] */
+ DOUBLE powh_i; /* = powh[i] */
+
+ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i,
+ x * 2^exponent = argument, x >= 1.0. */
+ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5);
+ ;
+ i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i)
+ {
+ if (x >= pow2_i)
+ {
+ exponent += (1 << i);
+ x *= powh_i;
+ }
+ else
+ break;
+
+ pow2[i] = pow2_i;
+ powh[i] = powh_i;
+ }
+ /* Avoid making x too small, as it could become a denormalized
+ number and thus lose precision. */
+ while (i > 0 && x < pow2[i - 1])
+ {
+ i--;
+ powh_i = powh[i];
+ }
+ exponent += (1 << i);
+ x *= powh_i;
+ /* Here 2^-2^i <= x < 1.0. */
+ }
+ else
+ {
+ /* A negative or zero exponent. */
+ DOUBLE pow2_i; /* = pow2[i] */
+ DOUBLE powh_i; /* = powh[i] */
+
+ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i,
+ x * 2^exponent = argument, x < 1.0. */
+ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5);
+ ;
+ i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i)
+ {
+ if (x < powh_i)
+ {
+ exponent -= (1 << i);
+ x *= pow2_i;
+ }
+ else
+ break;
+
+ pow2[i] = pow2_i;
+ powh[i] = powh_i;
+ }
+ /* Here 2^-2^i <= x < 1.0. */
+ }
+
+ /* Invariants: x * 2^exponent = argument, and 2^-2^i <= x < 1.0. */
+ while (i > 0)
+ {
+ i--;
+ if (x < powh[i])
+ {
+ exponent -= (1 << i);
+ x *= pow2[i];
+ }
+ }
+ /* Here 0.5 <= x < 1.0. */
+ }
+
+ if (sign < 0)
+ x = - x;
+
+ END_ROUNDING ();
+
+ *expptr = exponent;
+ return x;
+}
diff --git a/lib/frexpl.c b/lib/frexpl.c
new file mode 100644
index 0000000..08f489c
--- /dev/null
+++ b/lib/frexpl.c
@@ -0,0 +1,18 @@
+/* Split a 'long double' into fraction and mantissa.
+ 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 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/>. */
+
+#define USE_LONG_DOUBLE
+#include "frexp.c"
diff --git a/lib/fseterr.c b/lib/fseterr.c
new file mode 100644
index 0000000..6c31eeb
--- /dev/null
+++ b/lib/fseterr.c
@@ -0,0 +1,74 @@
+/* Set the error indicator of a stream.
+ 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 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>
+
+/* Specification. */
+#include "fseterr.h"
+
+#include <errno.h>
+
+#include "stdio-impl.h"
+
+void
+fseterr (FILE *fp)
+{
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_flags |= _IO_ERR_SEEN;
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+ fp_->_flags |= __SERR;
+#elif defined __EMX__ /* emx+gcc */
+ fp->_flags |= _IOERR;
+#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */
+ fp_->_flag |= _IOERR;
+#elif defined __UCLIBC__ /* uClibc */
+ fp->__modeflags |= __FLAG_ERROR;
+#elif defined __QNX__ /* QNX */
+ fp->_Mode |= 0x200 /* _MERR */;
+#elif defined __MINT__ /* Atari FreeMiNT */
+ fp->__error = 1;
+#elif 0 /* unknown */
+ /* Portable fallback, based on an idea by Rich Felker.
+ Wow! 6 system calls for something that is just a bit operation!
+ Not activated on any system, because there is no way to repair FP when
+ the sequence of system calls fails, and library code should not call
+ abort(). */
+ int saved_errno;
+ int fd;
+ int fd2;
+
+ saved_errno = errno;
+ fflush (fp);
+ fd = fileno (fp);
+ fd2 = dup (fd);
+ if (fd2 >= 0)
+ {
+ close (fd);
+ fputc ('\0', fp); /* This should set the error indicator. */
+ fflush (fp); /* Or this. */
+ if (dup2 (fd2, fd) < 0)
+ /* Whee... we botched the stream and now cannot restore it! */
+ abort ();
+ close (fd2);
+ }
+ errno = saved_errno;
+#else
+ #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."
+#endif
+}
diff --git a/lib/fseterr.h b/lib/fseterr.h
new file mode 100644
index 0000000..0adadc3
--- /dev/null
+++ b/lib/fseterr.h
@@ -0,0 +1,37 @@
+/* Set 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 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/>. */
+
+#ifndef _FSETERR_H
+#define _FSETERR_H
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Set the error indicator of the stream FP.
+ The "error indicator" is set when an I/O operation on the stream fails, and
+ is cleared (together with the "end-of-file" indicator) by clearerr (FP). */
+extern void fseterr (FILE *fp);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FSETERR_H */
diff --git a/lib/getpagesize.c b/lib/getpagesize.c
new file mode 100644
index 0000000..82238df
--- /dev/null
+++ b/lib/getpagesize.c
@@ -0,0 +1,39 @@
+/* getpagesize emulation for systems where it cannot be done in a C macro.
+
+ 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 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/>. */
+
+/* Written by Bruno Haible and Martin Lambers. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unistd.h>
+
+/* This implementation is only for native Win32 systems. */
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+int
+getpagesize (void)
+{
+ SYSTEM_INFO system_info;
+ GetSystemInfo (&system_info);
+ return system_info.dwPageSize;
+}
+
+#endif
diff --git a/lib/iconv.in.h b/lib/iconv.in.h
new file mode 100644
index 0000000..915dce2
--- /dev/null
+++ b/lib/iconv.in.h
@@ -0,0 +1,71 @@
+/* A GNU-like <iconv.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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_ICONV_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_ICONV_H@
+
+#ifndef _GL_ICONV_H
+#define _GL_ICONV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @REPLACE_ICONV_OPEN@
+/* An iconv_open wrapper that supports the IANA standardized encoding names
+ ("ISO-8859-1" etc.) as far as possible. */
+# define iconv_open rpl_iconv_open
+extern iconv_t iconv_open (const char *tocode, const char *fromcode);
+#endif
+
+#if @REPLACE_ICONV_UTF@
+/* Special constants for supporting UTF-{16,32}{BE,LE} encodings.
+ Not public. */
+# define _ICONV_UTF8_UTF16BE (iconv_t)(-161)
+# define _ICONV_UTF8_UTF16LE (iconv_t)(-162)
+# define _ICONV_UTF8_UTF32BE (iconv_t)(-163)
+# define _ICONV_UTF8_UTF32LE (iconv_t)(-164)
+# define _ICONV_UTF16BE_UTF8 (iconv_t)(-165)
+# define _ICONV_UTF16LE_UTF8 (iconv_t)(-166)
+# define _ICONV_UTF32BE_UTF8 (iconv_t)(-167)
+# define _ICONV_UTF32LE_UTF8 (iconv_t)(-168)
+#endif
+
+#if @REPLACE_ICONV@
+# define iconv rpl_iconv
+extern size_t iconv (iconv_t cd,
+ @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft);
+# define iconv_close rpl_iconv_close
+extern int iconv_close (iconv_t cd);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_ICONV_H */
+#endif /* _GL_ICONV_H */
diff --git a/lib/iconv_open-aix.gperf b/lib/iconv_open-aix.gperf
new file mode 100644
index 0000000..6782b99
--- /dev/null
+++ b/lib/iconv_open-aix.gperf
@@ -0,0 +1,44 @@
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+%struct-type
+%language=ANSI-C
+%define slot-name standard_name
+%define hash-function-name mapping_hash
+%define lookup-function-name mapping_lookup
+%readonly-tables
+%global-table
+%define word-array-name mappings
+%pic
+%%
+# On AIX 5.1, look in /usr/lib/nls/loc/uconvTable.
+ISO-8859-1, "ISO8859-1"
+ISO-8859-2, "ISO8859-2"
+ISO-8859-3, "ISO8859-3"
+ISO-8859-4, "ISO8859-4"
+ISO-8859-5, "ISO8859-5"
+ISO-8859-6, "ISO8859-6"
+ISO-8859-7, "ISO8859-7"
+ISO-8859-8, "ISO8859-8"
+ISO-8859-9, "ISO8859-9"
+ISO-8859-15, "ISO8859-15"
+CP437, "IBM-437"
+CP850, "IBM-850"
+CP852, "IBM-852"
+CP856, "IBM-856"
+CP857, "IBM-857"
+CP861, "IBM-861"
+CP865, "IBM-865"
+CP869, "IBM-869"
+ISO-8859-13, "IBM-921"
+CP922, "IBM-922"
+CP932, "IBM-932"
+CP943, "IBM-943"
+CP1046, "IBM-1046"
+CP1124, "IBM-1124"
+CP1125, "IBM-1125"
+CP1129, "IBM-1129"
+CP1252, "IBM-1252"
+GB2312, "IBM-eucCN"
+EUC-JP, "IBM-eucJP"
+EUC-KR, "IBM-eucKR"
+EUC-TW, "IBM-eucTW"
+BIG5, "big5"
diff --git a/lib/iconv_open-aix.h b/lib/iconv_open-aix.h
new file mode 100644
index 0000000..129e030
--- /dev/null
+++ b/lib/iconv_open-aix.h
@@ -0,0 +1,256 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./iconv_open-aix.gperf */
+/* Computed positions: -k'4,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "./iconv_open-aix.gperf"
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+
+#define TOTAL_KEYWORDS 32
+#define MIN_WORD_LENGTH 4
+#define MAX_WORD_LENGTH 11
+#define MIN_HASH_VALUE 6
+#define MAX_HASH_VALUE 44
+/* maximum key range = 39, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+mapping_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 0, 4, 25,
+ 0, 11, 24, 9, 17, 3, 14, 21, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 3, 45, 1, 45, 45, 45, 45, 0, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45
+ };
+ return len + asso_values[(unsigned char)str[3]+2] + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct stringpool_t
+ {
+ char stringpool_str6[sizeof("EUC-TW")];
+ char stringpool_str7[sizeof("EUC-KR")];
+ char stringpool_str8[sizeof("CP852")];
+ char stringpool_str9[sizeof("EUC-JP")];
+ char stringpool_str10[sizeof("ISO-8859-2")];
+ char stringpool_str11[sizeof("CP857")];
+ char stringpool_str12[sizeof("CP850")];
+ char stringpool_str13[sizeof("ISO-8859-7")];
+ char stringpool_str14[sizeof("CP932")];
+ char stringpool_str15[sizeof("GB2312")];
+ char stringpool_str16[sizeof("BIG5")];
+ char stringpool_str17[sizeof("CP437")];
+ char stringpool_str19[sizeof("ISO-8859-5")];
+ char stringpool_str20[sizeof("ISO-8859-15")];
+ char stringpool_str21[sizeof("ISO-8859-3")];
+ char stringpool_str22[sizeof("ISO-8859-13")];
+ char stringpool_str23[sizeof("CP1046")];
+ char stringpool_str24[sizeof("ISO-8859-8")];
+ char stringpool_str25[sizeof("CP856")];
+ char stringpool_str26[sizeof("CP1125")];
+ char stringpool_str27[sizeof("ISO-8859-6")];
+ char stringpool_str28[sizeof("CP865")];
+ char stringpool_str29[sizeof("CP922")];
+ char stringpool_str30[sizeof("CP1252")];
+ char stringpool_str31[sizeof("ISO-8859-9")];
+ char stringpool_str33[sizeof("CP943")];
+ char stringpool_str34[sizeof("ISO-8859-4")];
+ char stringpool_str35[sizeof("ISO-8859-1")];
+ char stringpool_str38[sizeof("CP1129")];
+ char stringpool_str40[sizeof("CP869")];
+ char stringpool_str41[sizeof("CP1124")];
+ char stringpool_str44[sizeof("CP861")];
+ };
+static const struct stringpool_t stringpool_contents =
+ {
+ "EUC-TW",
+ "EUC-KR",
+ "CP852",
+ "EUC-JP",
+ "ISO-8859-2",
+ "CP857",
+ "CP850",
+ "ISO-8859-7",
+ "CP932",
+ "GB2312",
+ "BIG5",
+ "CP437",
+ "ISO-8859-5",
+ "ISO-8859-15",
+ "ISO-8859-3",
+ "ISO-8859-13",
+ "CP1046",
+ "ISO-8859-8",
+ "CP856",
+ "CP1125",
+ "ISO-8859-6",
+ "CP865",
+ "CP922",
+ "CP1252",
+ "ISO-8859-9",
+ "CP943",
+ "ISO-8859-4",
+ "ISO-8859-1",
+ "CP1129",
+ "CP869",
+ "CP1124",
+ "CP861"
+ };
+#define stringpool ((const char *) &stringpool_contents)
+
+static const struct mapping mappings[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 43 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"},
+#line 42 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"},
+#line 25 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"},
+#line 41 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"},
+#line 14 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"},
+#line 27 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"},
+#line 24 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"},
+#line 19 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"},
+#line 33 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"},
+#line 40 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"},
+#line 44 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "big5"},
+#line 23 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"},
+ {-1},
+#line 17 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"},
+#line 22 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"},
+#line 15 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"},
+#line 31 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"},
+#line 35 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"},
+#line 20 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"},
+#line 26 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"},
+#line 37 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"},
+#line 18 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
+#line 29 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"},
+#line 32 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"},
+#line 39 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"},
+#line 21 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"},
+ {-1},
+#line 34 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"},
+#line 16 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"},
+#line 13 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"},
+ {-1}, {-1},
+#line 38 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"},
+ {-1},
+#line 30 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"},
+#line 36 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"},
+ {-1}, {-1},
+#line 28 "./iconv_open-aix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct mapping *
+mapping_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = mapping_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register int o = mappings[key].standard_name;
+ if (o >= 0)
+ {
+ register const char *s = o + stringpool;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &mappings[key];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/iconv_open-hpux.gperf b/lib/iconv_open-hpux.gperf
new file mode 100644
index 0000000..5a35c83
--- /dev/null
+++ b/lib/iconv_open-hpux.gperf
@@ -0,0 +1,56 @@
+struct mapping { int standard_name; const char vendor_name[9 + 1]; };
+%struct-type
+%language=ANSI-C
+%define slot-name standard_name
+%define hash-function-name mapping_hash
+%define lookup-function-name mapping_lookup
+%readonly-tables
+%global-table
+%define word-array-name mappings
+%pic
+%%
+# On HP-UX 11.11, look in /usr/lib/nls/iconv.
+ISO-8859-1, "iso88591"
+ISO-8859-2, "iso88592"
+ISO-8859-5, "iso88595"
+ISO-8859-6, "iso88596"
+ISO-8859-7, "iso88597"
+ISO-8859-8, "iso88598"
+ISO-8859-9, "iso88599"
+ISO-8859-15, "iso885915"
+CP437, "cp437"
+CP775, "cp775"
+CP850, "cp850"
+CP852, "cp852"
+CP855, "cp855"
+CP857, "cp857"
+CP861, "cp861"
+CP862, "cp862"
+CP864, "cp864"
+CP865, "cp865"
+CP866, "cp866"
+CP869, "cp869"
+CP874, "cp874"
+CP1250, "cp1250"
+CP1251, "cp1251"
+CP1252, "cp1252"
+CP1253, "cp1253"
+CP1254, "cp1254"
+CP1255, "cp1255"
+CP1256, "cp1256"
+CP1257, "cp1257"
+CP1258, "cp1258"
+HP-ROMAN8, "roman8"
+HP-ARABIC8, "arabic8"
+HP-GREEK8, "greek8"
+HP-HEBREW8, "hebrew8"
+HP-TURKISH8, "turkish8"
+HP-KANA8, "kana8"
+TIS-620, "tis620"
+GB2312, "hp15CN"
+EUC-JP, "eucJP"
+EUC-KR, "eucKR"
+EUC-TW, "eucTW"
+BIG5, "big5"
+SHIFT_JIS, "sjis"
+UTF-8, "utf8"
diff --git a/lib/iconv_open-hpux.h b/lib/iconv_open-hpux.h
new file mode 100644
index 0000000..3bcff76
--- /dev/null
+++ b/lib/iconv_open-hpux.h
@@ -0,0 +1,299 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */
+/* Computed positions: -k'4,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "./iconv_open-hpux.gperf"
+struct mapping { int standard_name; const char vendor_name[9 + 1]; };
+
+#define TOTAL_KEYWORDS 44
+#define MIN_WORD_LENGTH 4
+#define MAX_WORD_LENGTH 11
+#define MIN_HASH_VALUE 6
+#define MAX_HASH_VALUE 49
+/* maximum key range = 44, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+mapping_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 1, 2,
+ 24, 43, 5, 10, 0, 13, 32, 3, 19, 18,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 5,
+ 50, 50, 50, 50, 14, 5, 0, 50, 50, 0,
+ 27, 50, 12, 14, 50, 50, 0, 5, 2, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50
+ };
+ return len + asso_values[(unsigned char)str[3]+4] + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct stringpool_t
+ {
+ char stringpool_str6[sizeof("CP1256")];
+ char stringpool_str7[sizeof("CP1250")];
+ char stringpool_str8[sizeof("CP1251")];
+ char stringpool_str9[sizeof("CP850")];
+ char stringpool_str10[sizeof("TIS-620")];
+ char stringpool_str11[sizeof("CP1254")];
+ char stringpool_str12[sizeof("ISO-8859-6")];
+ char stringpool_str13[sizeof("EUC-TW")];
+ char stringpool_str14[sizeof("ISO-8859-1")];
+ char stringpool_str15[sizeof("ISO-8859-9")];
+ char stringpool_str16[sizeof("CP1255")];
+ char stringpool_str17[sizeof("BIG5")];
+ char stringpool_str18[sizeof("CP855")];
+ char stringpool_str19[sizeof("CP1257")];
+ char stringpool_str20[sizeof("EUC-KR")];
+ char stringpool_str21[sizeof("CP857")];
+ char stringpool_str22[sizeof("ISO-8859-5")];
+ char stringpool_str23[sizeof("ISO-8859-15")];
+ char stringpool_str24[sizeof("CP866")];
+ char stringpool_str25[sizeof("ISO-8859-7")];
+ char stringpool_str26[sizeof("CP861")];
+ char stringpool_str27[sizeof("CP869")];
+ char stringpool_str28[sizeof("CP874")];
+ char stringpool_str29[sizeof("CP864")];
+ char stringpool_str30[sizeof("CP1252")];
+ char stringpool_str31[sizeof("CP437")];
+ char stringpool_str32[sizeof("CP852")];
+ char stringpool_str33[sizeof("CP775")];
+ char stringpool_str34[sizeof("CP865")];
+ char stringpool_str35[sizeof("EUC-JP")];
+ char stringpool_str36[sizeof("ISO-8859-2")];
+ char stringpool_str37[sizeof("SHIFT_JIS")];
+ char stringpool_str38[sizeof("CP1258")];
+ char stringpool_str39[sizeof("UTF-8")];
+ char stringpool_str40[sizeof("HP-KANA8")];
+ char stringpool_str41[sizeof("HP-ROMAN8")];
+ char stringpool_str42[sizeof("HP-HEBREW8")];
+ char stringpool_str43[sizeof("GB2312")];
+ char stringpool_str44[sizeof("ISO-8859-8")];
+ char stringpool_str45[sizeof("HP-TURKISH8")];
+ char stringpool_str46[sizeof("HP-GREEK8")];
+ char stringpool_str47[sizeof("HP-ARABIC8")];
+ char stringpool_str48[sizeof("CP862")];
+ char stringpool_str49[sizeof("CP1253")];
+ };
+static const struct stringpool_t stringpool_contents =
+ {
+ "CP1256",
+ "CP1250",
+ "CP1251",
+ "CP850",
+ "TIS-620",
+ "CP1254",
+ "ISO-8859-6",
+ "EUC-TW",
+ "ISO-8859-1",
+ "ISO-8859-9",
+ "CP1255",
+ "BIG5",
+ "CP855",
+ "CP1257",
+ "EUC-KR",
+ "CP857",
+ "ISO-8859-5",
+ "ISO-8859-15",
+ "CP866",
+ "ISO-8859-7",
+ "CP861",
+ "CP869",
+ "CP874",
+ "CP864",
+ "CP1252",
+ "CP437",
+ "CP852",
+ "CP775",
+ "CP865",
+ "EUC-JP",
+ "ISO-8859-2",
+ "SHIFT_JIS",
+ "CP1258",
+ "UTF-8",
+ "HP-KANA8",
+ "HP-ROMAN8",
+ "HP-HEBREW8",
+ "GB2312",
+ "ISO-8859-8",
+ "HP-TURKISH8",
+ "HP-GREEK8",
+ "HP-ARABIC8",
+ "CP862",
+ "CP1253"
+ };
+#define stringpool ((const char *) &stringpool_contents)
+
+static const struct mapping mappings[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 40 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"},
+#line 34 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"},
+#line 35 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"},
+#line 23 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "cp850"},
+#line 49 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "tis620"},
+#line 38 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"},
+#line 16 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"},
+#line 53 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"},
+#line 13 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"},
+#line 19 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"},
+#line 39 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"},
+#line 54 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "big5"},
+#line 25 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp855"},
+#line 41 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"},
+#line 52 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"},
+#line 26 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp857"},
+#line 15 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"},
+#line 20 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"},
+#line 31 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "cp866"},
+#line 17 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"},
+#line 27 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "cp861"},
+#line 32 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "cp869"},
+#line 33 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "cp874"},
+#line 29 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp864"},
+#line 36 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
+#line 21 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp437"},
+#line 24 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "cp852"},
+#line 22 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp775"},
+#line 30 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp865"},
+#line 51 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"},
+#line 14 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"},
+#line 55 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "sjis"},
+#line 42 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"},
+#line 56 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "utf8"},
+#line 48 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "kana8"},
+#line 43 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "roman8"},
+#line 46 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"},
+#line 50 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"},
+#line 18 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"},
+#line 47 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"},
+#line 45 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "greek8"},
+#line 44 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"},
+#line 28 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, "cp862"},
+#line 37 "./iconv_open-hpux.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct mapping *
+mapping_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = mapping_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register int o = mappings[key].standard_name;
+ if (o >= 0)
+ {
+ register const char *s = o + stringpool;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &mappings[key];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/iconv_open-irix.gperf b/lib/iconv_open-irix.gperf
new file mode 100644
index 0000000..3672a80
--- /dev/null
+++ b/lib/iconv_open-irix.gperf
@@ -0,0 +1,31 @@
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+%struct-type
+%language=ANSI-C
+%define slot-name standard_name
+%define hash-function-name mapping_hash
+%define lookup-function-name mapping_lookup
+%readonly-tables
+%global-table
+%define word-array-name mappings
+%pic
+%%
+# On IRIX 6.5, look in /usr/lib/iconv and /usr/lib/international/encodings.
+ISO-8859-1, "ISO8859-1"
+ISO-8859-2, "ISO8859-2"
+ISO-8859-3, "ISO8859-3"
+ISO-8859-4, "ISO8859-4"
+ISO-8859-5, "ISO8859-5"
+ISO-8859-6, "ISO8859-6"
+ISO-8859-7, "ISO8859-7"
+ISO-8859-8, "ISO8859-8"
+ISO-8859-9, "ISO8859-9"
+ISO-8859-15, "ISO8859-15"
+KOI8-R, "KOI8"
+CP855, "DOS855"
+CP1251, "WIN1251"
+GB2312, "eucCN"
+EUC-JP, "eucJP"
+EUC-KR, "eucKR"
+EUC-TW, "eucTW"
+SHIFT_JIS, "sjis"
+TIS-620, "TIS620"
diff --git a/lib/iconv_open-irix.h b/lib/iconv_open-irix.h
new file mode 100644
index 0000000..74ceb8f
--- /dev/null
+++ b/lib/iconv_open-irix.h
@@ -0,0 +1,199 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./iconv_open-irix.gperf */
+/* Computed positions: -k'1,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "./iconv_open-irix.gperf"
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+
+#define TOTAL_KEYWORDS 19
+#define MIN_WORD_LENGTH 5
+#define MAX_WORD_LENGTH 11
+#define MIN_HASH_VALUE 5
+#define MAX_HASH_VALUE 23
+/* maximum key range = 19, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+mapping_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 8, 2,
+ 5, 12, 11, 0, 10, 9, 8, 7, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 0, 24, 0,
+ 24, 5, 24, 0, 24, 7, 24, 24, 24, 24,
+ 7, 24, 1, 0, 8, 24, 24, 0, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24
+ };
+ return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
+}
+
+struct stringpool_t
+ {
+ char stringpool_str5[sizeof("CP855")];
+ char stringpool_str6[sizeof("EUC-TW")];
+ char stringpool_str7[sizeof("EUC-KR")];
+ char stringpool_str8[sizeof("CP1251")];
+ char stringpool_str9[sizeof("SHIFT_JIS")];
+ char stringpool_str10[sizeof("ISO-8859-5")];
+ char stringpool_str11[sizeof("ISO-8859-15")];
+ char stringpool_str12[sizeof("ISO-8859-1")];
+ char stringpool_str13[sizeof("EUC-JP")];
+ char stringpool_str14[sizeof("KOI8-R")];
+ char stringpool_str15[sizeof("ISO-8859-2")];
+ char stringpool_str16[sizeof("GB2312")];
+ char stringpool_str17[sizeof("ISO-8859-9")];
+ char stringpool_str18[sizeof("ISO-8859-8")];
+ char stringpool_str19[sizeof("ISO-8859-7")];
+ char stringpool_str20[sizeof("ISO-8859-6")];
+ char stringpool_str21[sizeof("ISO-8859-4")];
+ char stringpool_str22[sizeof("ISO-8859-3")];
+ char stringpool_str23[sizeof("TIS-620")];
+ };
+static const struct stringpool_t stringpool_contents =
+ {
+ "CP855",
+ "EUC-TW",
+ "EUC-KR",
+ "CP1251",
+ "SHIFT_JIS",
+ "ISO-8859-5",
+ "ISO-8859-15",
+ "ISO-8859-1",
+ "EUC-JP",
+ "KOI8-R",
+ "ISO-8859-2",
+ "GB2312",
+ "ISO-8859-9",
+ "ISO-8859-8",
+ "ISO-8859-7",
+ "ISO-8859-6",
+ "ISO-8859-4",
+ "ISO-8859-3",
+ "TIS-620"
+ };
+#define stringpool ((const char *) &stringpool_contents)
+
+static const struct mapping mappings[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1},
+#line 24 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"},
+#line 29 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"},
+#line 28 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"},
+#line 25 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"},
+#line 30 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "sjis"},
+#line 17 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"},
+#line 22 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"},
+#line 13 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"},
+#line 27 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"},
+#line 23 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"},
+#line 14 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"},
+#line 26 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"},
+#line 21 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"},
+#line 20 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"},
+#line 19 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"},
+#line 18 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"},
+#line 16 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"},
+#line 15 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"},
+#line 31 "./iconv_open-irix.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct mapping *
+mapping_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = mapping_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register int o = mappings[key].standard_name;
+ if (o >= 0)
+ {
+ register const char *s = o + stringpool;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &mappings[key];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/iconv_open-osf.gperf b/lib/iconv_open-osf.gperf
new file mode 100644
index 0000000..f468ff6
--- /dev/null
+++ b/lib/iconv_open-osf.gperf
@@ -0,0 +1,50 @@
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+%struct-type
+%language=ANSI-C
+%define slot-name standard_name
+%define hash-function-name mapping_hash
+%define lookup-function-name mapping_lookup
+%readonly-tables
+%global-table
+%define word-array-name mappings
+%pic
+%%
+# On OSF/1 5.1, look in /usr/lib/nls/loc/iconv.
+ISO-8859-1, "ISO8859-1"
+ISO-8859-2, "ISO8859-2"
+ISO-8859-3, "ISO8859-3"
+ISO-8859-4, "ISO8859-4"
+ISO-8859-5, "ISO8859-5"
+ISO-8859-6, "ISO8859-6"
+ISO-8859-7, "ISO8859-7"
+ISO-8859-8, "ISO8859-8"
+ISO-8859-9, "ISO8859-9"
+ISO-8859-15, "ISO8859-15"
+CP437, "cp437"
+CP775, "cp775"
+CP850, "cp850"
+CP852, "cp852"
+CP855, "cp855"
+CP857, "cp857"
+CP861, "cp861"
+CP862, "cp862"
+CP865, "cp865"
+CP866, "cp866"
+CP869, "cp869"
+CP874, "cp874"
+CP949, "KSC5601"
+CP1250, "cp1250"
+CP1251, "cp1251"
+CP1252, "cp1252"
+CP1253, "cp1253"
+CP1254, "cp1254"
+CP1255, "cp1255"
+CP1256, "cp1256"
+CP1257, "cp1257"
+CP1258, "cp1258"
+EUC-JP, "eucJP"
+EUC-KR, "eucKR"
+EUC-TW, "eucTW"
+BIG5, "big5"
+SHIFT_JIS, "SJIS"
+TIS-620, "TACTIS"
diff --git a/lib/iconv_open-osf.h b/lib/iconv_open-osf.h
new file mode 100644
index 0000000..4d35764
--- /dev/null
+++ b/lib/iconv_open-osf.h
@@ -0,0 +1,278 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./iconv_open-osf.gperf */
+/* Computed positions: -k'4,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "./iconv_open-osf.gperf"
+struct mapping { int standard_name; const char vendor_name[10 + 1]; };
+
+#define TOTAL_KEYWORDS 38
+#define MIN_WORD_LENGTH 4
+#define MAX_WORD_LENGTH 11
+#define MIN_HASH_VALUE 6
+#define MAX_HASH_VALUE 47
+/* maximum key range = 42, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+mapping_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 2, 29,
+ 24, 34, 31, 0, 15, 14, 10, 13, 2, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 7, 48, 48, 48, 48, 48, 48,
+ 11, 48, 2, 7, 48, 48, 48, 1, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48
+ };
+ return len + asso_values[(unsigned char)str[3]+3] + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct stringpool_t
+ {
+ char stringpool_str6[sizeof("CP1255")];
+ char stringpool_str7[sizeof("CP775")];
+ char stringpool_str8[sizeof("CP1250")];
+ char stringpool_str9[sizeof("EUC-TW")];
+ char stringpool_str10[sizeof("EUC-KR")];
+ char stringpool_str11[sizeof("TIS-620")];
+ char stringpool_str12[sizeof("ISO-8859-5")];
+ char stringpool_str13[sizeof("ISO-8859-15")];
+ char stringpool_str14[sizeof("BIG5")];
+ char stringpool_str15[sizeof("CP855")];
+ char stringpool_str16[sizeof("CP1258")];
+ char stringpool_str17[sizeof("CP850")];
+ char stringpool_str18[sizeof("CP865")];
+ char stringpool_str19[sizeof("EUC-JP")];
+ char stringpool_str20[sizeof("CP1257")];
+ char stringpool_str21[sizeof("CP1256")];
+ char stringpool_str22[sizeof("ISO-8859-8")];
+ char stringpool_str23[sizeof("SHIFT_JIS")];
+ char stringpool_str25[sizeof("ISO-8859-9")];
+ char stringpool_str26[sizeof("ISO-8859-7")];
+ char stringpool_str27[sizeof("ISO-8859-6")];
+ char stringpool_str29[sizeof("CP857")];
+ char stringpool_str30[sizeof("CP1252")];
+ char stringpool_str31[sizeof("CP869")];
+ char stringpool_str32[sizeof("CP949")];
+ char stringpool_str33[sizeof("CP866")];
+ char stringpool_str34[sizeof("CP437")];
+ char stringpool_str35[sizeof("CP1251")];
+ char stringpool_str36[sizeof("ISO-8859-2")];
+ char stringpool_str37[sizeof("CP1254")];
+ char stringpool_str38[sizeof("CP874")];
+ char stringpool_str39[sizeof("CP852")];
+ char stringpool_str40[sizeof("CP1253")];
+ char stringpool_str41[sizeof("ISO-8859-1")];
+ char stringpool_str42[sizeof("CP862")];
+ char stringpool_str43[sizeof("ISO-8859-4")];
+ char stringpool_str46[sizeof("ISO-8859-3")];
+ char stringpool_str47[sizeof("CP861")];
+ };
+static const struct stringpool_t stringpool_contents =
+ {
+ "CP1255",
+ "CP775",
+ "CP1250",
+ "EUC-TW",
+ "EUC-KR",
+ "TIS-620",
+ "ISO-8859-5",
+ "ISO-8859-15",
+ "BIG5",
+ "CP855",
+ "CP1258",
+ "CP850",
+ "CP865",
+ "EUC-JP",
+ "CP1257",
+ "CP1256",
+ "ISO-8859-8",
+ "SHIFT_JIS",
+ "ISO-8859-9",
+ "ISO-8859-7",
+ "ISO-8859-6",
+ "CP857",
+ "CP1252",
+ "CP869",
+ "CP949",
+ "CP866",
+ "CP437",
+ "CP1251",
+ "ISO-8859-2",
+ "CP1254",
+ "CP874",
+ "CP852",
+ "CP1253",
+ "ISO-8859-1",
+ "CP862",
+ "ISO-8859-4",
+ "ISO-8859-3",
+ "CP861"
+ };
+#define stringpool ((const char *) &stringpool_contents)
+
+static const struct mapping mappings[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 41 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"},
+#line 24 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp775"},
+#line 36 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"},
+#line 47 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"},
+#line 46 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"},
+#line 50 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"},
+#line 17 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"},
+#line 22 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"},
+#line 48 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "big5"},
+#line 27 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "cp855"},
+#line 44 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"},
+#line 25 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "cp850"},
+#line 31 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp865"},
+#line 45 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"},
+#line 43 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"},
+#line 42 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"},
+#line 20 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"},
+#line 49 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"},
+ {-1},
+#line 21 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"},
+#line 19 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"},
+#line 18 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
+ {-1},
+#line 28 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp857"},
+#line 38 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
+#line 33 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp869"},
+#line 35 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"},
+#line 32 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp866"},
+#line 23 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp437"},
+#line 37 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"},
+#line 14 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"},
+#line 40 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"},
+#line 34 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp874"},
+#line 26 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "cp852"},
+#line 39 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"},
+#line 13 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"},
+#line 30 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "cp862"},
+#line 16 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"},
+ {-1}, {-1},
+#line 15 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"},
+#line 29 "./iconv_open-osf.gperf"
+ {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "cp861"}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct mapping *
+mapping_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = mapping_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register int o = mappings[key].standard_name;
+ if (o >= 0)
+ {
+ register const char *s = o + stringpool;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &mappings[key];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/iconv_open.c b/lib/iconv_open.c
new file mode 100644
index 0000000..3d873ac
--- /dev/null
+++ b/lib/iconv_open.c
@@ -0,0 +1,172 @@
+/* Character set conversion.
+ 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#include <iconv.h>
+
+#include <errno.h>
+#include <string.h>
+#include "c-ctype.h"
+#include "c-strcase.h"
+
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+/* Namespace cleanliness. */
+#define mapping_lookup rpl_iconv_open_mapping_lookup
+
+/* The macro ICONV_FLAVOR is defined to one of these or undefined. */
+
+#define ICONV_FLAVOR_AIX "iconv_open-aix.h"
+#define ICONV_FLAVOR_HPUX "iconv_open-hpux.h"
+#define ICONV_FLAVOR_IRIX "iconv_open-irix.h"
+#define ICONV_FLAVOR_OSF "iconv_open-osf.h"
+
+#ifdef ICONV_FLAVOR
+# include ICONV_FLAVOR
+#endif
+
+iconv_t
+rpl_iconv_open (const char *tocode, const char *fromcode)
+#undef iconv_open
+{
+ char fromcode_upper[32];
+ char tocode_upper[32];
+ char *fromcode_upper_end;
+ char *tocode_upper_end;
+
+#if REPLACE_ICONV_UTF
+ /* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}.
+ Do this here, before calling the real iconv_open(), because OSF/1 5.1
+ iconv() to these encoding inserts a BOM, which is wrong.
+ We do not need to handle conversion between arbitrary encodings and
+ UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step
+ conversion throough UTF-8.
+ The _ICONV_* constants are chosen to be disjoint from any iconv_t
+ returned by the system's iconv_open() functions. Recall that iconv_t
+ is a scalar type. */
+ if (c_toupper (fromcode[0]) == 'U'
+ && c_toupper (fromcode[1]) == 'T'
+ && c_toupper (fromcode[2]) == 'F'
+ && fromcode[3] == '-')
+ {
+ if (c_toupper (tocode[0]) == 'U'
+ && c_toupper (tocode[1]) == 'T'
+ && c_toupper (tocode[2]) == 'F'
+ && tocode[3] == '-')
+ {
+ if (strcmp (fromcode + 4, "8") == 0)
+ {
+ if (c_strcasecmp (tocode + 4, "16BE") == 0)
+ return _ICONV_UTF8_UTF16BE;
+ if (c_strcasecmp (tocode + 4, "16LE") == 0)
+ return _ICONV_UTF8_UTF16LE;
+ if (c_strcasecmp (tocode + 4, "32BE") == 0)
+ return _ICONV_UTF8_UTF32BE;
+ if (c_strcasecmp (tocode + 4, "32LE") == 0)
+ return _ICONV_UTF8_UTF32LE;
+ }
+ else if (strcmp (tocode + 4, "8") == 0)
+ {
+ if (c_strcasecmp (fromcode + 4, "16BE") == 0)
+ return _ICONV_UTF16BE_UTF8;
+ if (c_strcasecmp (fromcode + 4, "16LE") == 0)
+ return _ICONV_UTF16LE_UTF8;
+ if (c_strcasecmp (fromcode + 4, "32BE") == 0)
+ return _ICONV_UTF32BE_UTF8;
+ if (c_strcasecmp (fromcode + 4, "32LE") == 0)
+ return _ICONV_UTF32LE_UTF8;
+ }
+ }
+ }
+#endif
+
+ /* Do *not* add special support for 8-bit encodings like ASCII or ISO-8859-1
+ here. This would lead to programs that work in some locales (such as the
+ "C" or "en_US" locales) but do not work in East Asian locales. It is
+ better if programmers make their programs depend on GNU libiconv (except
+ on glibc systems), e.g. by using the AM_ICONV macro and documenting the
+ dependency in an INSTALL or DEPENDENCIES file. */
+
+ /* Try with the original names first.
+ This covers the case when fromcode or tocode is a lowercase encoding name
+ that is understood by the system's iconv_open but not listed in our
+ mappings table. */
+ {
+ iconv_t cd = iconv_open (tocode, fromcode);
+ if (cd != (iconv_t)(-1))
+ return cd;
+ }
+
+ /* Convert the encodings to upper case, because
+ 1. in the arguments of iconv_open() on AIX, HP-UX, and OSF/1 the case
+ matters,
+ 2. it makes searching in the table faster. */
+ {
+ const char *p = fromcode;
+ char *q = fromcode_upper;
+ while ((*q = c_toupper (*p)) != '\0')
+ {
+ p++;
+ q++;
+ if (q == &fromcode_upper[SIZEOF (fromcode_upper)])
+ {
+ errno = EINVAL;
+ return (iconv_t)(-1);
+ }
+ }
+ fromcode_upper_end = q;
+ }
+
+ {
+ const char *p = tocode;
+ char *q = tocode_upper;
+ while ((*q = c_toupper (*p)) != '\0')
+ {
+ p++;
+ q++;
+ if (q == &tocode_upper[SIZEOF (tocode_upper)])
+ {
+ errno = EINVAL;
+ return (iconv_t)(-1);
+ }
+ }
+ tocode_upper_end = q;
+ }
+
+#ifdef ICONV_FLAVOR
+ /* Apply the mappings. */
+ {
+ const struct mapping *m =
+ mapping_lookup (fromcode_upper, fromcode_upper_end - fromcode_upper);
+
+ fromcode = (m != NULL ? m->vendor_name : fromcode_upper);
+ }
+ {
+ const struct mapping *m =
+ mapping_lookup (tocode_upper, tocode_upper_end - tocode_upper);
+
+ tocode = (m != NULL ? m->vendor_name : tocode_upper);
+ }
+#else
+ fromcode = fromcode_upper;
+ tocode = tocode_upper;
+#endif
+
+ return iconv_open (tocode, fromcode);
+}
diff --git a/lib/iconveh.h b/lib/iconveh.h
new file mode 100644
index 0000000..06cda52
--- /dev/null
+++ b/lib/iconveh.h
@@ -0,0 +1,41 @@
+/* Character set conversion handler type.
+ Copyright (C) 2001-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible.
+
+ 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/>. */
+
+#ifndef _ICONVEH_H
+#define _ICONVEH_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Handling of unconvertible characters. */
+enum iconv_ilseq_handler
+{
+ iconveh_error, /* return and set errno = EILSEQ */
+ iconveh_question_mark, /* use one '?' per unconvertible character */
+ iconveh_escape_sequence /* use escape sequence \uxxxx or \Uxxxxxxxx */
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _ICONVEH_H */
diff --git a/lib/isnan.c b/lib/isnan.c
new file mode 100644
index 0000000..f24f576
--- /dev/null
+++ b/lib/isnan.c
@@ -0,0 +1,161 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <float.h>
+#include <string.h>
+
+#include "float+.h"
+
+#ifdef USE_LONG_DOUBLE
+# define FUNC rpl_isnanl
+# define DOUBLE long double
+# define MAX_EXP LDBL_MAX_EXP
+# define MIN_EXP LDBL_MIN_EXP
+# if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
+# define KNOWN_EXPBIT0_LOCATION
+# define EXPBIT0_WORD LDBL_EXPBIT0_WORD
+# define EXPBIT0_BIT LDBL_EXPBIT0_BIT
+# endif
+# define SIZE SIZEOF_LDBL
+# define L_(literal) literal##L
+#elif ! defined USE_FLOAT
+# define FUNC rpl_isnand
+# define DOUBLE double
+# define MAX_EXP DBL_MAX_EXP
+# define MIN_EXP DBL_MIN_EXP
+# if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+# define KNOWN_EXPBIT0_LOCATION
+# define EXPBIT0_WORD DBL_EXPBIT0_WORD
+# define EXPBIT0_BIT DBL_EXPBIT0_BIT
+# endif
+# define SIZE SIZEOF_DBL
+# define L_(literal) literal
+#else /* defined USE_FLOAT */
+# define FUNC rpl_isnanf
+# define DOUBLE float
+# define MAX_EXP FLT_MAX_EXP
+# define MIN_EXP FLT_MIN_EXP
+# if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
+# define KNOWN_EXPBIT0_LOCATION
+# define EXPBIT0_WORD FLT_EXPBIT0_WORD
+# define EXPBIT0_BIT FLT_EXPBIT0_BIT
+# endif
+# define SIZE SIZEOF_FLT
+# define L_(literal) literal##f
+#endif
+
+#define EXP_MASK ((MAX_EXP - MIN_EXP) | 7)
+
+#define NWORDS \
+ ((sizeof (DOUBLE) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { DOUBLE value; unsigned int word[NWORDS]; } memory_double;
+
+int
+FUNC (DOUBLE x)
+{
+#ifdef KNOWN_EXPBIT0_LOCATION
+# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+ /* Special CPU dependent code is needed to treat bit patterns outside the
+ IEEE 754 specification (such as Pseudo-NaNs, Pseudo-Infinities,
+ Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals) as NaNs.
+ These bit patterns are:
+ - exponent = 0x0001..0x7FFF, mantissa bit 63 = 0,
+ - exponent = 0x0000, mantissa bit 63 = 1.
+ The NaN bit pattern is:
+ - exponent = 0x7FFF, mantissa >= 0x8000000000000001. */
+ memory_double m;
+ unsigned int exponent;
+
+ m.value = x;
+ exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK;
+# ifdef WORDS_BIGENDIAN
+ /* Big endian: EXPBIT0_WORD = 0, EXPBIT0_BIT = 16. */
+ if (exponent == 0)
+ return 1 & (m.word[0] >> 15);
+ else if (exponent == EXP_MASK)
+ return (((m.word[0] ^ 0x8000U) << 16) | m.word[1] | (m.word[2] >> 16)) != 0;
+ else
+ return 1 & ~(m.word[0] >> 15);
+# else
+ /* Little endian: EXPBIT0_WORD = 2, EXPBIT0_BIT = 0. */
+ if (exponent == 0)
+ return (m.word[1] >> 31);
+ else if (exponent == EXP_MASK)
+ return ((m.word[1] ^ 0x80000000U) | m.word[0]) != 0;
+ else
+ return (m.word[1] >> 31) ^ 1;
+# endif
+# else
+ /* Be careful to not do any floating-point operation on x, such as x == x,
+ because x may be a signaling NaN. */
+# if defined __SUNPRO_C || defined __DECC || (defined __sgi && !defined __GNUC__)
+ /* The Sun C 5.0 compilers and the Compaq (ex-DEC) 6.4 compilers don't
+ recognize the initializers as constant expressions. The latter compiler
+ also fails when constant-folding 0.0 / 0.0 even when constant-folding is
+ not required. The SGI MIPSpro C compiler complains about "floating-point
+ operation result is out of range". */
+ static DOUBLE zero = L_(0.0);
+ memory_double nan;
+ DOUBLE plus_inf = L_(1.0) / L_(0.0);
+ DOUBLE minus_inf = -L_(1.0) / L_(0.0);
+ nan.value = zero / zero;
+# else
+ static memory_double nan = { L_(0.0) / L_(0.0) };
+ static DOUBLE plus_inf = L_(1.0) / L_(0.0);
+ static DOUBLE minus_inf = -L_(1.0) / L_(0.0);
+# endif
+ {
+ memory_double m;
+
+ /* A NaN can be recognized through its exponent. But exclude +Infinity and
+ -Infinity, which have the same exponent. */
+ m.value = x;
+ if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD])
+ & (EXP_MASK << EXPBIT0_BIT))
+ == 0)
+ return (memcmp (&m.value, &plus_inf, SIZE) != 0
+ && memcmp (&m.value, &minus_inf, SIZE) != 0);
+ else
+ return 0;
+ }
+# endif
+#else
+ /* The configuration did not find sufficient information. Give up about
+ the signaling NaNs, handle only the quiet NaNs. */
+ if (x == x)
+ {
+# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+ /* Detect any special bit patterns that pass ==; see comment above. */
+ memory_double m1;
+ memory_double m2;
+
+ memset (&m1.value, 0, SIZE);
+ memset (&m2.value, 0, SIZE);
+ m1.value = x;
+ m2.value = x + (x ? 0.0L : -0.0L);
+ if (memcmp (&m1.value, &m2.value, SIZE) != 0)
+ return 1;
+# endif
+ return 0;
+ }
+ else
+ return 1;
+#endif
+}
diff --git a/lib/isnand-nolibm.h b/lib/isnand-nolibm.h
new file mode 100644
index 0000000..0a1c6ab
--- /dev/null
+++ b/lib/isnand-nolibm.h
@@ -0,0 +1,33 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+#if HAVE_ISNAND_IN_LIBC
+/* Get declaration of isnan macro. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnand
+# define isnand(x) __builtin_isnan ((double)(x))
+# else
+# undef isnand
+# define isnand(x) isnan ((double)(x))
+# endif
+#else
+/* Test whether X is a NaN. */
+# undef isnand
+# define isnand rpl_isnand
+extern int isnand (double x);
+#endif
diff --git a/lib/isnand.c b/lib/isnand.c
new file mode 100644
index 0000000..d5220cb
--- /dev/null
+++ b/lib/isnand.c
@@ -0,0 +1,19 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include "isnan.c"
diff --git a/lib/isnanf-nolibm.h b/lib/isnanf-nolibm.h
new file mode 100644
index 0000000..cb2263e
--- /dev/null
+++ b/lib/isnanf-nolibm.h
@@ -0,0 +1,33 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+#if HAVE_ISNANF_IN_LIBC
+/* Get declaration of isnan macro or (older) isnanf function. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnanf
+# define isnanf(x) __builtin_isnanf ((float)(x))
+# elif defined isnan
+# undef isnanf
+# define isnanf(x) isnan ((float)(x))
+# endif
+#else
+/* Test whether X is a NaN. */
+# undef isnanf
+# define isnanf rpl_isnanf
+extern int isnanf (float x);
+#endif
diff --git a/lib/isnanf.c b/lib/isnanf.c
new file mode 100644
index 0000000..6e39706
--- /dev/null
+++ b/lib/isnanf.c
@@ -0,0 +1,20 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#define USE_FLOAT
+#include "isnan.c"
diff --git a/lib/isnanl-nolibm.h b/lib/isnanl-nolibm.h
new file mode 100644
index 0000000..7fd46f8
--- /dev/null
+++ b/lib/isnanl-nolibm.h
@@ -0,0 +1,33 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+#if HAVE_ISNANL_IN_LIBC
+/* Get declaration of isnan macro or (older) isnanl function. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnanl
+# define isnanl(x) __builtin_isnanl ((long double)(x))
+# elif defined isnan
+# undef isnanl
+# define isnanl(x) isnan ((long double)(x))
+# endif
+#else
+/* Test whether X is a NaN. */
+# undef isnanl
+# define isnanl rpl_isnanl
+extern int isnanl (long double x);
+#endif
diff --git a/lib/isnanl.c b/lib/isnanl.c
new file mode 100644
index 0000000..b7d899b
--- /dev/null
+++ b/lib/isnanl.c
@@ -0,0 +1,20 @@
+/* Test for NaN that does not need libm.
+ 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#define USE_LONG_DOUBLE
+#include "isnan.c"
diff --git a/lib/libunistring.rc b/lib/libunistring.rc
new file mode 100644
index 0000000..f1b51af
--- /dev/null
+++ b/lib/libunistring.rc
@@ -0,0 +1,38 @@
+/* Resources for unistring.dll */
+
+#include <winver.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0
+ PRODUCTVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0
+ FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */
+#ifdef _DEBUG
+ FILEFLAGS 0x1L /* VS_FF_DEBUG */
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */
+ FILETYPE 0x2L /* VFT_DLL */
+ FILESUBTYPE 0x0L /* VFT2_UNKNOWN */
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "04090000" /* Lang = US English, Charset = ASCII */
+ BEGIN
+ VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 or later. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see <http://www.gnu.org/licenses/>\0"
+ VALUE "CompanyName", "Free Software Foundation\0"
+ VALUE "FileDescription", "LGPLed libunistring for Windows NT/2000/XP/Vista and Windows 95/98/ME\0"
+ VALUE "FileVersion", PACKAGE_VERSION_STRING "\0"
+ VALUE "InternalName", "unistring.dll\0"
+ VALUE "LegalCopyright", "Copyright (C) 2001-2009\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "unistring.dll\0"
+ VALUE "ProductName", "libunistring: Unicode string library\0"
+ VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0 /* US English, ASCII */
+ END
+END
diff --git a/lib/libunistring.sym b/lib/libunistring.sym
new file mode 100644
index 0000000..b7e824f
--- /dev/null
+++ b/lib/libunistring.sym
@@ -0,0 +1,559 @@
+UC_CATEGORY_C
+UC_CATEGORY_Cc
+UC_CATEGORY_Cf
+UC_CATEGORY_Cn
+UC_CATEGORY_Co
+UC_CATEGORY_Cs
+UC_CATEGORY_L
+UC_CATEGORY_Ll
+UC_CATEGORY_Lm
+UC_CATEGORY_Lo
+UC_CATEGORY_Lt
+UC_CATEGORY_Lu
+UC_CATEGORY_M
+UC_CATEGORY_Mc
+UC_CATEGORY_Me
+UC_CATEGORY_Mn
+UC_CATEGORY_N
+UC_CATEGORY_Nd
+UC_CATEGORY_Nl
+UC_CATEGORY_No
+UC_CATEGORY_P
+UC_CATEGORY_Pc
+UC_CATEGORY_Pd
+UC_CATEGORY_Pe
+UC_CATEGORY_Pf
+UC_CATEGORY_Pi
+UC_CATEGORY_Po
+UC_CATEGORY_Ps
+UC_CATEGORY_S
+UC_CATEGORY_Sc
+UC_CATEGORY_Sk
+UC_CATEGORY_Sm
+UC_CATEGORY_So
+UC_CATEGORY_Z
+UC_CATEGORY_Zl
+UC_CATEGORY_Zp
+UC_CATEGORY_Zs
+UC_PROPERTY_ALPHABETIC
+UC_PROPERTY_ASCII_HEX_DIGIT
+UC_PROPERTY_BIDI_ARABIC_DIGIT
+UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT
+UC_PROPERTY_BIDI_BLOCK_SEPARATOR
+UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL
+UC_PROPERTY_BIDI_COMMON_SEPARATOR
+UC_PROPERTY_BIDI_CONTROL
+UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE
+UC_PROPERTY_BIDI_EUROPEAN_DIGIT
+UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR
+UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR
+UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT
+UC_PROPERTY_BIDI_LEFT_TO_RIGHT
+UC_PROPERTY_BIDI_NON_SPACING_MARK
+UC_PROPERTY_BIDI_OTHER_NEUTRAL
+UC_PROPERTY_BIDI_PDF
+UC_PROPERTY_BIDI_SEGMENT_SEPARATOR
+UC_PROPERTY_BIDI_WHITESPACE
+UC_PROPERTY_COMBINING
+UC_PROPERTY_COMPOSITE
+UC_PROPERTY_CURRENCY_SYMBOL
+UC_PROPERTY_DASH
+UC_PROPERTY_DECIMAL_DIGIT
+UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
+UC_PROPERTY_DEPRECATED
+UC_PROPERTY_DIACRITIC
+UC_PROPERTY_EXTENDER
+UC_PROPERTY_FORMAT_CONTROL
+UC_PROPERTY_GRAPHEME_BASE
+UC_PROPERTY_GRAPHEME_EXTEND
+UC_PROPERTY_GRAPHEME_LINK
+UC_PROPERTY_HEX_DIGIT
+UC_PROPERTY_HYPHEN
+UC_PROPERTY_IDEOGRAPHIC
+UC_PROPERTY_IDS_BINARY_OPERATOR
+UC_PROPERTY_IDS_TRINARY_OPERATOR
+UC_PROPERTY_ID_CONTINUE
+UC_PROPERTY_ID_START
+UC_PROPERTY_IGNORABLE_CONTROL
+UC_PROPERTY_ISO_CONTROL
+UC_PROPERTY_JOIN_CONTROL
+UC_PROPERTY_LEFT_OF_PAIR
+UC_PROPERTY_LINE_SEPARATOR
+UC_PROPERTY_LOGICAL_ORDER_EXCEPTION
+UC_PROPERTY_LOWERCASE
+UC_PROPERTY_MATH
+UC_PROPERTY_NON_BREAK
+UC_PROPERTY_NOT_A_CHARACTER
+UC_PROPERTY_NUMERIC
+UC_PROPERTY_OTHER_ALPHABETIC
+UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
+UC_PROPERTY_OTHER_GRAPHEME_EXTEND
+UC_PROPERTY_OTHER_ID_CONTINUE
+UC_PROPERTY_OTHER_ID_START
+UC_PROPERTY_OTHER_LOWERCASE
+UC_PROPERTY_OTHER_MATH
+UC_PROPERTY_OTHER_UPPERCASE
+UC_PROPERTY_PAIRED_PUNCTUATION
+UC_PROPERTY_PARAGRAPH_SEPARATOR
+UC_PROPERTY_PATTERN_SYNTAX
+UC_PROPERTY_PATTERN_WHITE_SPACE
+UC_PROPERTY_PRIVATE_USE
+UC_PROPERTY_PUNCTUATION
+UC_PROPERTY_QUOTATION_MARK
+UC_PROPERTY_RADICAL
+UC_PROPERTY_SENTENCE_TERMINAL
+UC_PROPERTY_SOFT_DOTTED
+UC_PROPERTY_SPACE
+UC_PROPERTY_TERMINAL_PUNCTUATION
+UC_PROPERTY_TITLECASE
+UC_PROPERTY_UNASSIGNED_CODE_VALUE
+UC_PROPERTY_UNIFIED_IDEOGRAPH
+UC_PROPERTY_UPPERCASE
+UC_PROPERTY_VARIATION_SELECTOR
+UC_PROPERTY_WHITE_SPACE
+UC_PROPERTY_XID_CONTINUE
+UC_PROPERTY_XID_START
+UC_PROPERTY_ZERO_WIDTH
+_libunistring_version
+locale_charset
+u16_asnprintf
+u16_asprintf
+u16_casecmp
+u16_casecoll
+u16_casefold
+u16_casexfrm
+u16_casing_prefix_context
+u16_casing_prefixes_context
+u16_casing_suffix_context
+u16_casing_suffixes_context
+u16_check
+u16_chr
+u16_cmp
+u16_cmp2
+u16_conv_from_encoding
+u16_conv_to_encoding
+u16_cpy
+u16_cpy_alloc
+u16_ct_casefold
+u16_ct_tolower
+u16_ct_totitle
+u16_ct_toupper
+u16_endswith
+u16_is_cased
+u16_is_casefolded
+u16_is_lowercase
+u16_is_titlecase
+u16_is_uppercase
+u16_mblen
+u16_mbsnlen
+u16_mbtouc
+u16_mbtouc_aux
+u16_mbtouc_unsafe
+u16_mbtouc_unsafe_aux
+u16_mbtoucr
+u16_move
+u16_next
+u16_normalize
+u16_normcmp
+u16_normcoll
+u16_normxfrm
+u16_possible_linebreaks
+u16_prev
+u16_set
+u16_snprintf
+u16_sprintf
+u16_startswith
+u16_stpcpy
+u16_stpncpy
+u16_strcat
+u16_strchr
+u16_strcmp
+u16_strcoll
+u16_strconv_from_encoding
+u16_strconv_from_locale
+u16_strconv_to_encoding
+u16_strconv_to_locale
+u16_strcpy
+u16_strcspn
+u16_strdup
+u16_strlen
+u16_strmblen
+u16_strmbtouc
+u16_strncat
+u16_strncmp
+u16_strncpy
+u16_strnlen
+u16_strpbrk
+u16_strrchr
+u16_strspn
+u16_strstr
+u16_strtok
+u16_strwidth
+u16_to_u32
+u16_to_u8
+u16_tolower
+u16_totitle
+u16_toupper
+u16_u16_asnprintf
+u16_u16_asprintf
+u16_u16_snprintf
+u16_u16_sprintf
+u16_u16_vasnprintf
+u16_u16_vasprintf
+u16_u16_vsnprintf
+u16_u16_vsprintf
+u16_uctomb
+u16_uctomb_aux
+u16_vasnprintf
+u16_vasprintf
+u16_vsnprintf
+u16_vsprintf
+u16_width
+u16_width_linebreaks
+u16_wordbreaks
+u32_asnprintf
+u32_asprintf
+u32_casecmp
+u32_casecoll
+u32_casefold
+u32_casexfrm
+u32_casing_prefix_context
+u32_casing_prefixes_context
+u32_casing_suffix_context
+u32_casing_suffixes_context
+u32_check
+u32_chr
+u32_cmp
+u32_cmp2
+u32_conv_from_encoding
+u32_conv_to_encoding
+u32_cpy
+u32_cpy_alloc
+u32_ct_casefold
+u32_ct_tolower
+u32_ct_totitle
+u32_ct_toupper
+u32_endswith
+u32_is_cased
+u32_is_casefolded
+u32_is_lowercase
+u32_is_titlecase
+u32_is_uppercase
+u32_mblen
+u32_mbsnlen
+u32_mbtouc
+u32_mbtouc_unsafe
+u32_mbtoucr
+u32_move
+u32_next
+u32_normalize
+u32_normcmp
+u32_normcoll
+u32_normxfrm
+u32_possible_linebreaks
+u32_prev
+u32_set
+u32_snprintf
+u32_sprintf
+u32_startswith
+u32_stpcpy
+u32_stpncpy
+u32_strcat
+u32_strchr
+u32_strcmp
+u32_strcoll
+u32_strconv_from_encoding
+u32_strconv_from_locale
+u32_strconv_to_encoding
+u32_strconv_to_locale
+u32_strcpy
+u32_strcspn
+u32_strdup
+u32_strlen
+u32_strmblen
+u32_strmbtouc
+u32_strncat
+u32_strncmp
+u32_strncpy
+u32_strnlen
+u32_strpbrk
+u32_strrchr
+u32_strspn
+u32_strstr
+u32_strtok
+u32_strwidth
+u32_to_u16
+u32_to_u8
+u32_tolower
+u32_totitle
+u32_toupper
+u32_u32_asnprintf
+u32_u32_asprintf
+u32_u32_snprintf
+u32_u32_sprintf
+u32_u32_vasnprintf
+u32_u32_vasprintf
+u32_u32_vsnprintf
+u32_u32_vsprintf
+u32_uctomb
+u32_vasnprintf
+u32_vasprintf
+u32_vsnprintf
+u32_vsprintf
+u32_width
+u32_width_linebreaks
+u32_wordbreaks
+u8_asnprintf
+u8_asprintf
+u8_casecmp
+u8_casecoll
+u8_casefold
+u8_casexfrm
+u8_casing_prefix_context
+u8_casing_prefixes_context
+u8_casing_suffix_context
+u8_casing_suffixes_context
+u8_check
+u8_chr
+u8_cmp
+u8_cmp2
+u8_conv_from_encoding
+u8_conv_to_encoding
+u8_cpy
+u8_cpy_alloc
+u8_ct_casefold
+u8_ct_tolower
+u8_ct_totitle
+u8_ct_toupper
+u8_endswith
+u8_is_cased
+u8_is_casefolded
+u8_is_lowercase
+u8_is_titlecase
+u8_is_uppercase
+u8_mblen
+u8_mbsnlen
+u8_mbtouc
+u8_mbtouc_aux
+u8_mbtouc_unsafe
+u8_mbtouc_unsafe_aux
+u8_mbtoucr
+u8_move
+u8_next
+u8_normalize
+u8_normcmp
+u8_normcoll
+u8_normxfrm
+u8_possible_linebreaks
+u8_prev
+u8_set
+u8_snprintf
+u8_sprintf
+u8_startswith
+u8_stpcpy
+u8_stpncpy
+u8_strcat
+u8_strchr
+u8_strcmp
+u8_strcoll
+u8_strconv_from_encoding
+u8_strconv_from_locale
+u8_strconv_to_encoding
+u8_strconv_to_locale
+u8_strcpy
+u8_strcspn
+u8_strdup
+u8_strlen
+u8_strmblen
+u8_strmbtouc
+u8_strncat
+u8_strncmp
+u8_strncpy
+u8_strnlen
+u8_strpbrk
+u8_strrchr
+u8_strspn
+u8_strstr
+u8_strtok
+u8_strwidth
+u8_to_u16
+u8_to_u32
+u8_tolower
+u8_totitle
+u8_toupper
+u8_u8_asnprintf
+u8_u8_asprintf
+u8_u8_snprintf
+u8_u8_sprintf
+u8_u8_vasnprintf
+u8_u8_vasprintf
+u8_u8_vsnprintf
+u8_u8_vsprintf
+u8_uctomb
+u8_uctomb_aux
+u8_vasnprintf
+u8_vasprintf
+u8_vsnprintf
+u8_vsprintf
+u8_width
+u8_width_linebreaks
+u8_wordbreaks
+uc_all_blocks
+uc_all_scripts
+uc_bidi_category
+uc_bidi_category_byname
+uc_bidi_category_name
+uc_block
+uc_c_ident_category
+uc_canonical_decomposition
+uc_combining_class
+uc_composition
+uc_decimal_value
+uc_decomposition
+uc_digit_value
+uc_general_category
+uc_general_category_and
+uc_general_category_and_not
+uc_general_category_byname
+uc_general_category_name
+uc_general_category_or
+uc_is_alnum
+uc_is_alpha
+uc_is_bidi_category
+uc_is_blank
+uc_is_block
+uc_is_c_whitespace
+uc_is_cntrl
+uc_is_digit
+uc_is_general_category
+uc_is_general_category_withtable
+uc_is_graph
+uc_is_java_whitespace
+uc_is_lower
+uc_is_print
+uc_is_property
+uc_is_property_alphabetic
+uc_is_property_ascii_hex_digit
+uc_is_property_bidi_arabic_digit
+uc_is_property_bidi_arabic_right_to_left
+uc_is_property_bidi_block_separator
+uc_is_property_bidi_boundary_neutral
+uc_is_property_bidi_common_separator
+uc_is_property_bidi_control
+uc_is_property_bidi_embedding_or_override
+uc_is_property_bidi_eur_num_separator
+uc_is_property_bidi_eur_num_terminator
+uc_is_property_bidi_european_digit
+uc_is_property_bidi_hebrew_right_to_left
+uc_is_property_bidi_left_to_right
+uc_is_property_bidi_non_spacing_mark
+uc_is_property_bidi_other_neutral
+uc_is_property_bidi_pdf
+uc_is_property_bidi_segment_separator
+uc_is_property_bidi_whitespace
+uc_is_property_combining
+uc_is_property_composite
+uc_is_property_currency_symbol
+uc_is_property_dash
+uc_is_property_decimal_digit
+uc_is_property_default_ignorable_code_point
+uc_is_property_deprecated
+uc_is_property_diacritic
+uc_is_property_extender
+uc_is_property_format_control
+uc_is_property_grapheme_base
+uc_is_property_grapheme_extend
+uc_is_property_grapheme_link
+uc_is_property_hex_digit
+uc_is_property_hyphen
+uc_is_property_id_continue
+uc_is_property_id_start
+uc_is_property_ideographic
+uc_is_property_ids_binary_operator
+uc_is_property_ids_trinary_operator
+uc_is_property_ignorable_control
+uc_is_property_iso_control
+uc_is_property_join_control
+uc_is_property_left_of_pair
+uc_is_property_line_separator
+uc_is_property_logical_order_exception
+uc_is_property_lowercase
+uc_is_property_math
+uc_is_property_non_break
+uc_is_property_not_a_character
+uc_is_property_numeric
+uc_is_property_other_alphabetic
+uc_is_property_other_default_ignorable_code_point
+uc_is_property_other_grapheme_extend
+uc_is_property_other_id_continue
+uc_is_property_other_id_start
+uc_is_property_other_lowercase
+uc_is_property_other_math
+uc_is_property_other_uppercase
+uc_is_property_paired_punctuation
+uc_is_property_paragraph_separator
+uc_is_property_pattern_syntax
+uc_is_property_pattern_white_space
+uc_is_property_private_use
+uc_is_property_punctuation
+uc_is_property_quotation_mark
+uc_is_property_radical
+uc_is_property_sentence_terminal
+uc_is_property_soft_dotted
+uc_is_property_space
+uc_is_property_terminal_punctuation
+uc_is_property_titlecase
+uc_is_property_unassigned_code_value
+uc_is_property_unified_ideograph
+uc_is_property_uppercase
+uc_is_property_variation_selector
+uc_is_property_white_space
+uc_is_property_xid_continue
+uc_is_property_xid_start
+uc_is_property_zero_width
+uc_is_punct
+uc_is_script
+uc_is_space
+uc_is_upper
+uc_is_xdigit
+uc_java_ident_category
+uc_locale_language
+uc_mirror_char
+uc_numeric_value
+uc_property_byname
+uc_script
+uc_script_byname
+uc_tolower
+uc_totitle
+uc_toupper
+uc_width
+uc_wordbreak_property
+ulc_asnprintf
+ulc_asprintf
+ulc_casecmp
+ulc_casecoll
+ulc_casexfrm
+ulc_fprintf
+ulc_possible_linebreaks
+ulc_snprintf
+ulc_sprintf
+ulc_vasnprintf
+ulc_vasprintf
+ulc_vfprintf
+ulc_vsnprintf
+ulc_vsprintf
+ulc_width_linebreaks
+ulc_wordbreaks
+unicase_empty_prefix_context
+unicase_empty_suffix_context
+unicode_character_name
+unicode_name_character
+uninorm_decomposing_form
+uninorm_filter_create
+uninorm_filter_flush
+uninorm_filter_free
+uninorm_filter_write
+uninorm_nfc
+uninorm_nfd
+uninorm_nfkc
+uninorm_nfkd
diff --git a/lib/localcharset.c b/lib/localcharset.c
new file mode 100644
index 0000000..93da170
--- /dev/null
+++ b/lib/localcharset.c
@@ -0,0 +1,499 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+ Copyright (C) 2000-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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "localcharset.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
+# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS. */
+# ifndef OS2
+# define OS2
+# endif
+#endif
+
+#if !defined WIN32_NATIVE
+# if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+# else
+# if 0 /* see comment below */
+# include <locale.h>
+# endif
+# endif
+# ifdef __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# endif
+#elif defined WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* Get LIBDIR. */
+#ifndef LIBDIR
+# include "configmake.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc getc_unlocked
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+ possible multithread problem in the function get_charset_aliases. If we
+ are running in a threaded environment, and if two threads initialize
+ 'charset_aliases' simultaneously, both will produce the same value,
+ and everything will be ok if the two assignments to 'charset_aliases'
+ are atomic. But I don't know what will happen if the two assignments mix. */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+ read, else NULL. Its format is:
+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file. */
+static const char *
+get_charset_aliases (void)
+{
+ const char *cp;
+
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+ FILE *fp;
+ const char *dir;
+ const char *base = "charset.alias";
+ char *file_name;
+
+ /* Make it possible to override the charset.alias location. This is
+ necessary for running the testsuite before "make install". */
+ dir = getenv ("CHARSETALIASDIR");
+ if (dir == NULL || dir[0] == '\0')
+ dir = relocate (LIBDIR);
+
+ /* Concatenate dir and base into freshly allocated file_name. */
+ {
+ size_t dir_len = strlen (dir);
+ size_t base_len = strlen (base);
+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+ if (file_name != NULL)
+ {
+ memcpy (file_name, dir, dir_len);
+ if (add_slash)
+ file_name[dir_len] = DIRECTORY_SEPARATOR;
+ memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+ }
+ }
+
+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+ /* Out of memory or file not found, treat it as empty. */
+ cp = "";
+ else
+ {
+ /* Parse the file's contents. */
+ char *res_ptr = NULL;
+ size_t res_size = 0;
+
+ for (;;)
+ {
+ int c;
+ char buf1[50+1];
+ char buf2[50+1];
+ size_t l1, l2;
+ char *old_res_ptr;
+
+ c = getc (fp);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#')
+ {
+ /* Skip comment, to end of line. */
+ do
+ c = getc (fp);
+ while (!(c == EOF || c == '\n'));
+ if (c == EOF)
+ break;
+ continue;
+ }
+ ungetc (c, fp);
+ if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+ break;
+ l1 = strlen (buf1);
+ l2 = strlen (buf2);
+ old_res_ptr = res_ptr;
+ if (res_size == 0)
+ {
+ res_size = l1 + 1 + l2 + 1;
+ res_ptr = (char *) malloc (res_size + 1);
+ }
+ else
+ {
+ res_size += l1 + 1 + l2 + 1;
+ res_ptr = (char *) realloc (res_ptr, res_size + 1);
+ }
+ if (res_ptr == NULL)
+ {
+ /* Out of memory. */
+ res_size = 0;
+ if (old_res_ptr != NULL)
+ free (old_res_ptr);
+ break;
+ }
+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+ strcpy (res_ptr + res_size - (l2 + 1), buf2);
+ }
+ fclose (fp);
+ if (res_size == 0)
+ cp = "";
+ else
+ {
+ *(res_ptr + res_size) = '\0';
+ cp = res_ptr;
+ }
+ }
+
+ if (file_name != NULL)
+ free (file_name);
+
+#else
+
+# if defined DARWIN7
+ /* To avoid the trouble of installing a file that is shared by many
+ GNU packages -- many packaging systems have problems with this --,
+ simply inline the aliases here. */
+ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+ "ISO8859-2" "\0" "ISO-8859-2" "\0"
+ "ISO8859-4" "\0" "ISO-8859-4" "\0"
+ "ISO8859-5" "\0" "ISO-8859-5" "\0"
+ "ISO8859-7" "\0" "ISO-8859-7" "\0"
+ "ISO8859-9" "\0" "ISO-8859-9" "\0"
+ "ISO8859-13" "\0" "ISO-8859-13" "\0"
+ "ISO8859-15" "\0" "ISO-8859-15" "\0"
+ "KOI8-R" "\0" "KOI8-R" "\0"
+ "KOI8-U" "\0" "KOI8-U" "\0"
+ "CP866" "\0" "CP866" "\0"
+ "CP949" "\0" "CP949" "\0"
+ "CP1131" "\0" "CP1131" "\0"
+ "CP1251" "\0" "CP1251" "\0"
+ "eucCN" "\0" "GB2312" "\0"
+ "GB2312" "\0" "GB2312" "\0"
+ "eucJP" "\0" "EUC-JP" "\0"
+ "eucKR" "\0" "EUC-KR" "\0"
+ "Big5" "\0" "BIG5" "\0"
+ "Big5HKSCS" "\0" "BIG5-HKSCS" "\0"
+ "GBK" "\0" "GBK" "\0"
+ "GB18030" "\0" "GB18030" "\0"
+ "SJIS" "\0" "SHIFT_JIS" "\0"
+ "ARMSCII-8" "\0" "ARMSCII-8" "\0"
+ "PT154" "\0" "PT154" "\0"
+ /*"ISCII-DEV" "\0" "?" "\0"*/
+ "*" "\0" "UTF-8" "\0";
+# endif
+
+# if defined VMS
+ /* To avoid the troubles of an extra file charset.alias_vms in the
+ sources of many GNU packages, simply inline the aliases here. */
+ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+ "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+ section 10.7 "Handling Different Character Sets". */
+ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+ "ISO8859-2" "\0" "ISO-8859-2" "\0"
+ "ISO8859-5" "\0" "ISO-8859-5" "\0"
+ "ISO8859-7" "\0" "ISO-8859-7" "\0"
+ "ISO8859-8" "\0" "ISO-8859-8" "\0"
+ "ISO8859-9" "\0" "ISO-8859-9" "\0"
+ /* Japanese */
+ "eucJP" "\0" "EUC-JP" "\0"
+ "SJIS" "\0" "SHIFT_JIS" "\0"
+ "DECKANJI" "\0" "DEC-KANJI" "\0"
+ "SDECKANJI" "\0" "EUC-JP" "\0"
+ /* Chinese */
+ "eucTW" "\0" "EUC-TW" "\0"
+ "DECHANYU" "\0" "DEC-HANYU" "\0"
+ "DECHANZI" "\0" "GB2312" "\0"
+ /* Korean */
+ "DECKOREAN" "\0" "EUC-KR" "\0";
+# endif
+
+# if defined WIN32_NATIVE || defined __CYGWIN__
+ /* To avoid the troubles of installing a separate file in the same
+ directory as the DLL and of retrieving the DLL's directory at
+ runtime, simply inline the aliases here. */
+
+ cp = "CP936" "\0" "GBK" "\0"
+ "CP1361" "\0" "JOHAB" "\0"
+ "CP20127" "\0" "ASCII" "\0"
+ "CP20866" "\0" "KOI8-R" "\0"
+ "CP20936" "\0" "GB2312" "\0"
+ "CP21866" "\0" "KOI8-RU" "\0"
+ "CP28591" "\0" "ISO-8859-1" "\0"
+ "CP28592" "\0" "ISO-8859-2" "\0"
+ "CP28593" "\0" "ISO-8859-3" "\0"
+ "CP28594" "\0" "ISO-8859-4" "\0"
+ "CP28595" "\0" "ISO-8859-5" "\0"
+ "CP28596" "\0" "ISO-8859-6" "\0"
+ "CP28597" "\0" "ISO-8859-7" "\0"
+ "CP28598" "\0" "ISO-8859-8" "\0"
+ "CP28599" "\0" "ISO-8859-9" "\0"
+ "CP28605" "\0" "ISO-8859-15" "\0"
+ "CP38598" "\0" "ISO-8859-8" "\0"
+ "CP51932" "\0" "EUC-JP" "\0"
+ "CP51936" "\0" "GB2312" "\0"
+ "CP51949" "\0" "EUC-KR" "\0"
+ "CP51950" "\0" "EUC-TW" "\0"
+ "CP54936" "\0" "GB18030" "\0"
+ "CP65001" "\0" "UTF-8" "\0";
+# endif
+#endif
+
+ charset_aliases = cp;
+ }
+
+ return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset (void)
+{
+ const char *codeset;
+ const char *aliases;
+
+#if !(defined WIN32_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# ifdef __CYGWIN__
+ /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always
+ returns "US-ASCII". As long as this is not fixed, return the suffix
+ of the locale name from the environment variables (if present) or
+ the codepage as a number. */
+ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+ {
+ const char *locale;
+ static char buf[2 + 10 + 1];
+
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ if (locale != NULL && locale[0] != '\0')
+ {
+ /* If the locale name contains an encoding after the dot, return
+ it. */
+ const char *dot = strchr (locale, '.');
+
+ if (dot != NULL)
+ {
+ const char *modifier;
+
+ dot++;
+ /* Look for the possible @... trailer and remove it, if any. */
+ modifier = strchr (dot, '@');
+ if (modifier == NULL)
+ return dot;
+ if (modifier - dot < sizeof (buf))
+ {
+ memcpy (buf, dot, modifier - dot);
+ buf [modifier - dot] = '\0';
+ return buf;
+ }
+ }
+ }
+
+ /* Woe32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+ }
+# endif
+
+# else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+ const char *locale = NULL;
+
+ /* But most old systems don't have a complete set of locales. Some
+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
+ use setlocale here; it would return "C" when it doesn't support the
+ locale name the user has set. */
+# if 0
+ locale = setlocale (LC_CTYPE, NULL);
+# endif
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ }
+
+ /* On some old systems, one used to set locale = "iso8859_1". On others,
+ you set it to "language_COUNTRY.charset". In any case, we resolve it
+ through the charset.alias file. */
+ codeset = locale;
+
+# endif
+
+#elif defined WIN32_NATIVE
+
+ static char buf[2 + 10 + 1];
+
+ /* Woe32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+
+#elif defined OS2
+
+ const char *locale;
+ static char buf[2 + 10 + 1];
+ ULONG cp[3];
+ ULONG cplen;
+
+ /* Allow user to override the codeset, as set in the operating system,
+ with standard language environment variables. */
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ if (locale != NULL && locale[0] != '\0')
+ {
+ /* If the locale name contains an encoding after the dot, return it. */
+ const char *dot = strchr (locale, '.');
+
+ if (dot != NULL)
+ {
+ const char *modifier;
+
+ dot++;
+ /* Look for the possible @... trailer and remove it, if any. */
+ modifier = strchr (dot, '@');
+ if (modifier == NULL)
+ return dot;
+ if (modifier - dot < sizeof (buf))
+ {
+ memcpy (buf, dot, modifier - dot);
+ buf [modifier - dot] = '\0';
+ return buf;
+ }
+ }
+
+ /* Resolve through the charset.alias file. */
+ codeset = locale;
+ }
+ else
+ {
+ /* OS/2 has a function returning the locale's codepage as a number. */
+ if (DosQueryCp (sizeof (cp), cp, &cplen))
+ codeset = "";
+ else
+ {
+ sprintf (buf, "CP%u", cp[0]);
+ codeset = buf;
+ }
+ }
+
+#endif
+
+ if (codeset == NULL)
+ /* The canonical name cannot be determined. */
+ codeset = "";
+
+ /* Resolve alias. */
+ for (aliases = get_charset_aliases ();
+ *aliases != '\0';
+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+ if (strcmp (codeset, aliases) == 0
+ || (aliases[0] == '*' && aliases[1] == '\0'))
+ {
+ codeset = aliases + strlen (aliases) + 1;
+ break;
+ }
+
+ /* Don't return an empty string. GNU libc and GNU libiconv interpret
+ the empty string as denoting "the locale's character encoding",
+ thus GNU libiconv would call this function a second time. */
+ if (codeset[0] == '\0')
+ codeset = "ASCII";
+
+ return codeset;
+}
diff --git a/lib/localcharset.h b/lib/localcharset.h
new file mode 100644
index 0000000..1772a50
--- /dev/null
+++ b/lib/localcharset.h
@@ -0,0 +1,41 @@
+/* Determine a canonical name for the current locale's character encoding.
+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
+ This file is part of the GNU CHARSET Library.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/lib/localename.c b/lib/localename.c
new file mode 100644
index 0000000..9f4c181
--- /dev/null
+++ b/lib/localename.c
@@ -0,0 +1,1692 @@
+/* Determine name of the currently selected locale.
+ Copyright (C) 1995-1999, 2000-2008 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library 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 Ulrich Drepper <drepper@gnu.org>, 1995. */
+/* Win32 code written by Tor Lillqvist <tml@iki.fi>. */
+/* MacOS X code written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#ifdef IN_LIBINTL
+# include "gettextP.h"
+#else
+# include "localename.h"
+#endif
+
+#include <stdlib.h>
+#include <locale.h>
+
+#if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <string.h>
+# include <CoreFoundation/CFString.h>
+# if HAVE_CFLOCALECOPYCURRENT
+# include <CoreFoundation/CFLocale.h>
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <CoreFoundation/CFPreferences.h>
+# endif
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#ifdef WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* List of language codes, sorted by value:
+ 0x01 LANG_ARABIC
+ 0x02 LANG_BULGARIAN
+ 0x03 LANG_CATALAN
+ 0x04 LANG_CHINESE
+ 0x05 LANG_CZECH
+ 0x06 LANG_DANISH
+ 0x07 LANG_GERMAN
+ 0x08 LANG_GREEK
+ 0x09 LANG_ENGLISH
+ 0x0a LANG_SPANISH
+ 0x0b LANG_FINNISH
+ 0x0c LANG_FRENCH
+ 0x0d LANG_HEBREW
+ 0x0e LANG_HUNGARIAN
+ 0x0f LANG_ICELANDIC
+ 0x10 LANG_ITALIAN
+ 0x11 LANG_JAPANESE
+ 0x12 LANG_KOREAN
+ 0x13 LANG_DUTCH
+ 0x14 LANG_NORWEGIAN
+ 0x15 LANG_POLISH
+ 0x16 LANG_PORTUGUESE
+ 0x17 LANG_RHAETO_ROMANCE
+ 0x18 LANG_ROMANIAN
+ 0x19 LANG_RUSSIAN
+ 0x1a LANG_CROATIAN == LANG_SERBIAN
+ 0x1b LANG_SLOVAK
+ 0x1c LANG_ALBANIAN
+ 0x1d LANG_SWEDISH
+ 0x1e LANG_THAI
+ 0x1f LANG_TURKISH
+ 0x20 LANG_URDU
+ 0x21 LANG_INDONESIAN
+ 0x22 LANG_UKRAINIAN
+ 0x23 LANG_BELARUSIAN
+ 0x24 LANG_SLOVENIAN
+ 0x25 LANG_ESTONIAN
+ 0x26 LANG_LATVIAN
+ 0x27 LANG_LITHUANIAN
+ 0x28 LANG_TAJIK
+ 0x29 LANG_FARSI
+ 0x2a LANG_VIETNAMESE
+ 0x2b LANG_ARMENIAN
+ 0x2c LANG_AZERI
+ 0x2d LANG_BASQUE
+ 0x2e LANG_SORBIAN
+ 0x2f LANG_MACEDONIAN
+ 0x30 LANG_SUTU
+ 0x31 LANG_TSONGA
+ 0x32 LANG_TSWANA
+ 0x33 LANG_VENDA
+ 0x34 LANG_XHOSA
+ 0x35 LANG_ZULU
+ 0x36 LANG_AFRIKAANS
+ 0x37 LANG_GEORGIAN
+ 0x38 LANG_FAEROESE
+ 0x39 LANG_HINDI
+ 0x3a LANG_MALTESE
+ 0x3b LANG_SAAMI
+ 0x3c LANG_GAELIC
+ 0x3d LANG_YIDDISH
+ 0x3e LANG_MALAY
+ 0x3f LANG_KAZAK
+ 0x40 LANG_KYRGYZ
+ 0x41 LANG_SWAHILI
+ 0x42 LANG_TURKMEN
+ 0x43 LANG_UZBEK
+ 0x44 LANG_TATAR
+ 0x45 LANG_BENGALI
+ 0x46 LANG_PUNJABI
+ 0x47 LANG_GUJARATI
+ 0x48 LANG_ORIYA
+ 0x49 LANG_TAMIL
+ 0x4a LANG_TELUGU
+ 0x4b LANG_KANNADA
+ 0x4c LANG_MALAYALAM
+ 0x4d LANG_ASSAMESE
+ 0x4e LANG_MARATHI
+ 0x4f LANG_SANSKRIT
+ 0x50 LANG_MONGOLIAN
+ 0x51 LANG_TIBETAN
+ 0x52 LANG_WELSH
+ 0x53 LANG_CAMBODIAN
+ 0x54 LANG_LAO
+ 0x55 LANG_BURMESE
+ 0x56 LANG_GALICIAN
+ 0x57 LANG_KONKANI
+ 0x58 LANG_MANIPURI
+ 0x59 LANG_SINDHI
+ 0x5a LANG_SYRIAC
+ 0x5b LANG_SINHALESE
+ 0x5c LANG_CHEROKEE
+ 0x5d LANG_INUKTITUT
+ 0x5e LANG_AMHARIC
+ 0x5f LANG_TAMAZIGHT
+ 0x60 LANG_KASHMIRI
+ 0x61 LANG_NEPALI
+ 0x62 LANG_FRISIAN
+ 0x63 LANG_PASHTO
+ 0x64 LANG_TAGALOG
+ 0x65 LANG_DIVEHI
+ 0x66 LANG_EDO
+ 0x67 LANG_FULFULDE
+ 0x68 LANG_HAUSA
+ 0x69 LANG_IBIBIO
+ 0x6a LANG_YORUBA
+ 0x70 LANG_IGBO
+ 0x71 LANG_KANURI
+ 0x72 LANG_OROMO
+ 0x73 LANG_TIGRINYA
+ 0x74 LANG_GUARANI
+ 0x75 LANG_HAWAIIAN
+ 0x76 LANG_LATIN
+ 0x77 LANG_SOMALI
+ 0x78 LANG_YI
+ 0x79 LANG_PAPIAMENTU
+*/
+/* Mingw headers don't have latest language and sublanguage codes. */
+# ifndef LANG_AFRIKAANS
+# define LANG_AFRIKAANS 0x36
+# endif
+# ifndef LANG_ALBANIAN
+# define LANG_ALBANIAN 0x1c
+# endif
+# ifndef LANG_AMHARIC
+# define LANG_AMHARIC 0x5e
+# endif
+# ifndef LANG_ARABIC
+# define LANG_ARABIC 0x01
+# endif
+# ifndef LANG_ARMENIAN
+# define LANG_ARMENIAN 0x2b
+# endif
+# ifndef LANG_ASSAMESE
+# define LANG_ASSAMESE 0x4d
+# endif
+# ifndef LANG_AZERI
+# define LANG_AZERI 0x2c
+# endif
+# ifndef LANG_BASQUE
+# define LANG_BASQUE 0x2d
+# endif
+# ifndef LANG_BELARUSIAN
+# define LANG_BELARUSIAN 0x23
+# endif
+# ifndef LANG_BENGALI
+# define LANG_BENGALI 0x45
+# endif
+# ifndef LANG_BURMESE
+# define LANG_BURMESE 0x55
+# endif
+# ifndef LANG_CAMBODIAN
+# define LANG_CAMBODIAN 0x53
+# endif
+# ifndef LANG_CATALAN
+# define LANG_CATALAN 0x03
+# endif
+# ifndef LANG_CHEROKEE
+# define LANG_CHEROKEE 0x5c
+# endif
+# ifndef LANG_DIVEHI
+# define LANG_DIVEHI 0x65
+# endif
+# ifndef LANG_EDO
+# define LANG_EDO 0x66
+# endif
+# ifndef LANG_ESTONIAN
+# define LANG_ESTONIAN 0x25
+# endif
+# ifndef LANG_FAEROESE
+# define LANG_FAEROESE 0x38
+# endif
+# ifndef LANG_FARSI
+# define LANG_FARSI 0x29
+# endif
+# ifndef LANG_FRISIAN
+# define LANG_FRISIAN 0x62
+# endif
+# ifndef LANG_FULFULDE
+# define LANG_FULFULDE 0x67
+# endif
+# ifndef LANG_GAELIC
+# define LANG_GAELIC 0x3c
+# endif
+# ifndef LANG_GALICIAN
+# define LANG_GALICIAN 0x56
+# endif
+# ifndef LANG_GEORGIAN
+# define LANG_GEORGIAN 0x37
+# endif
+# ifndef LANG_GUARANI
+# define LANG_GUARANI 0x74
+# endif
+# ifndef LANG_GUJARATI
+# define LANG_GUJARATI 0x47
+# endif
+# ifndef LANG_HAUSA
+# define LANG_HAUSA 0x68
+# endif
+# ifndef LANG_HAWAIIAN
+# define LANG_HAWAIIAN 0x75
+# endif
+# ifndef LANG_HEBREW
+# define LANG_HEBREW 0x0d
+# endif
+# ifndef LANG_HINDI
+# define LANG_HINDI 0x39
+# endif
+# ifndef LANG_IBIBIO
+# define LANG_IBIBIO 0x69
+# endif
+# ifndef LANG_IGBO
+# define LANG_IGBO 0x70
+# endif
+# ifndef LANG_INDONESIAN
+# define LANG_INDONESIAN 0x21
+# endif
+# ifndef LANG_INUKTITUT
+# define LANG_INUKTITUT 0x5d
+# endif
+# ifndef LANG_KANNADA
+# define LANG_KANNADA 0x4b
+# endif
+# ifndef LANG_KANURI
+# define LANG_KANURI 0x71
+# endif
+# ifndef LANG_KASHMIRI
+# define LANG_KASHMIRI 0x60
+# endif
+# ifndef LANG_KAZAK
+# define LANG_KAZAK 0x3f
+# endif
+# ifndef LANG_KONKANI
+# define LANG_KONKANI 0x57
+# endif
+# ifndef LANG_KYRGYZ
+# define LANG_KYRGYZ 0x40
+# endif
+# ifndef LANG_LAO
+# define LANG_LAO 0x54
+# endif
+# ifndef LANG_LATIN
+# define LANG_LATIN 0x76
+# endif
+# ifndef LANG_LATVIAN
+# define LANG_LATVIAN 0x26
+# endif
+# ifndef LANG_LITHUANIAN
+# define LANG_LITHUANIAN 0x27
+# endif
+# ifndef LANG_MACEDONIAN
+# define LANG_MACEDONIAN 0x2f
+# endif
+# ifndef LANG_MALAY
+# define LANG_MALAY 0x3e
+# endif
+# ifndef LANG_MALAYALAM
+# define LANG_MALAYALAM 0x4c
+# endif
+# ifndef LANG_MALTESE
+# define LANG_MALTESE 0x3a
+# endif
+# ifndef LANG_MANIPURI
+# define LANG_MANIPURI 0x58
+# endif
+# ifndef LANG_MAORI
+# define LANG_MAORI 0x81
+# endif
+# ifndef LANG_MARATHI
+# define LANG_MARATHI 0x4e
+# endif
+# ifndef LANG_MONGOLIAN
+# define LANG_MONGOLIAN 0x50
+# endif
+# ifndef LANG_NEPALI
+# define LANG_NEPALI 0x61
+# endif
+# ifndef LANG_ORIYA
+# define LANG_ORIYA 0x48
+# endif
+# ifndef LANG_OROMO
+# define LANG_OROMO 0x72
+# endif
+# ifndef LANG_PAPIAMENTU
+# define LANG_PAPIAMENTU 0x79
+# endif
+# ifndef LANG_PASHTO
+# define LANG_PASHTO 0x63
+# endif
+# ifndef LANG_PUNJABI
+# define LANG_PUNJABI 0x46
+# endif
+# ifndef LANG_QUECHUA
+# define LANG_QUECHUA 0x6b
+# endif
+# ifndef LANG_RHAETO_ROMANCE
+# define LANG_RHAETO_ROMANCE 0x17
+# endif
+# ifndef LANG_SAAMI
+# define LANG_SAAMI 0x3b
+# endif
+# ifndef LANG_SANSKRIT
+# define LANG_SANSKRIT 0x4f
+# endif
+# ifndef LANG_SERBIAN
+# define LANG_SERBIAN 0x1a
+# endif
+# ifndef LANG_SINDHI
+# define LANG_SINDHI 0x59
+# endif
+# ifndef LANG_SINHALESE
+# define LANG_SINHALESE 0x5b
+# endif
+# ifndef LANG_SLOVAK
+# define LANG_SLOVAK 0x1b
+# endif
+# ifndef LANG_SOMALI
+# define LANG_SOMALI 0x77
+# endif
+# ifndef LANG_SORBIAN
+# define LANG_SORBIAN 0x2e
+# endif
+# ifndef LANG_SOTHO
+# define LANG_SOTHO 0x6c
+# endif
+# ifndef LANG_SUTU
+# define LANG_SUTU 0x30
+# endif
+# ifndef LANG_SWAHILI
+# define LANG_SWAHILI 0x41
+# endif
+# ifndef LANG_SYRIAC
+# define LANG_SYRIAC 0x5a
+# endif
+# ifndef LANG_TAGALOG
+# define LANG_TAGALOG 0x64
+# endif
+# ifndef LANG_TAJIK
+# define LANG_TAJIK 0x28
+# endif
+# ifndef LANG_TAMAZIGHT
+# define LANG_TAMAZIGHT 0x5f
+# endif
+# ifndef LANG_TAMIL
+# define LANG_TAMIL 0x49
+# endif
+# ifndef LANG_TATAR
+# define LANG_TATAR 0x44
+# endif
+# ifndef LANG_TELUGU
+# define LANG_TELUGU 0x4a
+# endif
+# ifndef LANG_THAI
+# define LANG_THAI 0x1e
+# endif
+# ifndef LANG_TIBETAN
+# define LANG_TIBETAN 0x51
+# endif
+# ifndef LANG_TIGRINYA
+# define LANG_TIGRINYA 0x73
+# endif
+# ifndef LANG_TSONGA
+# define LANG_TSONGA 0x31
+# endif
+# ifndef LANG_TSWANA
+# define LANG_TSWANA 0x32
+# endif
+# ifndef LANG_TURKMEN
+# define LANG_TURKMEN 0x42
+# endif
+# ifndef LANG_UIGHUR
+# define LANG_UIGHUR 0x80
+# endif
+# ifndef LANG_UKRAINIAN
+# define LANG_UKRAINIAN 0x22
+# endif
+# ifndef LANG_URDU
+# define LANG_URDU 0x20
+# endif
+# ifndef LANG_UZBEK
+# define LANG_UZBEK 0x43
+# endif
+# ifndef LANG_VENDA
+# define LANG_VENDA 0x33
+# endif
+# ifndef LANG_VIETNAMESE
+# define LANG_VIETNAMESE 0x2a
+# endif
+# ifndef LANG_WELSH
+# define LANG_WELSH 0x52
+# endif
+# ifndef LANG_XHOSA
+# define LANG_XHOSA 0x34
+# endif
+# ifndef LANG_YI
+# define LANG_YI 0x78
+# endif
+# ifndef LANG_YIDDISH
+# define LANG_YIDDISH 0x3d
+# endif
+# ifndef LANG_YORUBA
+# define LANG_YORUBA 0x6a
+# endif
+# ifndef LANG_ZULU
+# define LANG_ZULU 0x35
+# endif
+# ifndef SUBLANG_ARABIC_SAUDI_ARABIA
+# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+# endif
+# ifndef SUBLANG_ARABIC_IRAQ
+# define SUBLANG_ARABIC_IRAQ 0x02
+# endif
+# ifndef SUBLANG_ARABIC_EGYPT
+# define SUBLANG_ARABIC_EGYPT 0x03
+# endif
+# ifndef SUBLANG_ARABIC_LIBYA
+# define SUBLANG_ARABIC_LIBYA 0x04
+# endif
+# ifndef SUBLANG_ARABIC_ALGERIA
+# define SUBLANG_ARABIC_ALGERIA 0x05
+# endif
+# ifndef SUBLANG_ARABIC_MOROCCO
+# define SUBLANG_ARABIC_MOROCCO 0x06
+# endif
+# ifndef SUBLANG_ARABIC_TUNISIA
+# define SUBLANG_ARABIC_TUNISIA 0x07
+# endif
+# ifndef SUBLANG_ARABIC_OMAN
+# define SUBLANG_ARABIC_OMAN 0x08
+# endif
+# ifndef SUBLANG_ARABIC_YEMEN
+# define SUBLANG_ARABIC_YEMEN 0x09
+# endif
+# ifndef SUBLANG_ARABIC_SYRIA
+# define SUBLANG_ARABIC_SYRIA 0x0a
+# endif
+# ifndef SUBLANG_ARABIC_JORDAN
+# define SUBLANG_ARABIC_JORDAN 0x0b
+# endif
+# ifndef SUBLANG_ARABIC_LEBANON
+# define SUBLANG_ARABIC_LEBANON 0x0c
+# endif
+# ifndef SUBLANG_ARABIC_KUWAIT
+# define SUBLANG_ARABIC_KUWAIT 0x0d
+# endif
+# ifndef SUBLANG_ARABIC_UAE
+# define SUBLANG_ARABIC_UAE 0x0e
+# endif
+# ifndef SUBLANG_ARABIC_BAHRAIN
+# define SUBLANG_ARABIC_BAHRAIN 0x0f
+# endif
+# ifndef SUBLANG_ARABIC_QATAR
+# define SUBLANG_ARABIC_QATAR 0x10
+# endif
+# ifndef SUBLANG_AZERI_LATIN
+# define SUBLANG_AZERI_LATIN 0x01
+# endif
+# ifndef SUBLANG_AZERI_CYRILLIC
+# define SUBLANG_AZERI_CYRILLIC 0x02
+# endif
+# ifndef SUBLANG_BENGALI_INDIA
+# define SUBLANG_BENGALI_INDIA 0x01
+# endif
+# ifndef SUBLANG_BENGALI_BANGLADESH
+# define SUBLANG_BENGALI_BANGLADESH 0x02
+# endif
+# ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN
+# define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
+# endif
+# ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC
+# define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
+# endif
+# ifndef SUBLANG_CROATIAN_CROATIA
+# define SUBLANG_CROATIAN_CROATIA 0x01
+# endif
+# ifndef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN
+# define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
+# endif
+# ifndef SUBLANG_CHINESE_MACAU
+# define SUBLANG_CHINESE_MACAU 0x05
+# endif
+# ifndef SUBLANG_ENGLISH_SOUTH_AFRICA
+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
+# endif
+# ifndef SUBLANG_ENGLISH_JAMAICA
+# define SUBLANG_ENGLISH_JAMAICA 0x08
+# endif
+# ifndef SUBLANG_ENGLISH_CARIBBEAN
+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
+# endif
+# ifndef SUBLANG_ENGLISH_BELIZE
+# define SUBLANG_ENGLISH_BELIZE 0x0a
+# endif
+# ifndef SUBLANG_ENGLISH_TRINIDAD
+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
+# endif
+# ifndef SUBLANG_ENGLISH_ZIMBABWE
+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
+# endif
+# ifndef SUBLANG_ENGLISH_PHILIPPINES
+# define SUBLANG_ENGLISH_PHILIPPINES 0x0d
+# endif
+# ifndef SUBLANG_ENGLISH_INDONESIA
+# define SUBLANG_ENGLISH_INDONESIA 0x0e
+# endif
+# ifndef SUBLANG_ENGLISH_HONGKONG
+# define SUBLANG_ENGLISH_HONGKONG 0x0f
+# endif
+# ifndef SUBLANG_ENGLISH_INDIA
+# define SUBLANG_ENGLISH_INDIA 0x10
+# endif
+# ifndef SUBLANG_ENGLISH_MALAYSIA
+# define SUBLANG_ENGLISH_MALAYSIA 0x11
+# endif
+# ifndef SUBLANG_ENGLISH_SINGAPORE
+# define SUBLANG_ENGLISH_SINGAPORE 0x12
+# endif
+# ifndef SUBLANG_FRENCH_LUXEMBOURG
+# define SUBLANG_FRENCH_LUXEMBOURG 0x05
+# endif
+# ifndef SUBLANG_FRENCH_MONACO
+# define SUBLANG_FRENCH_MONACO 0x06
+# endif
+# ifndef SUBLANG_FRENCH_WESTINDIES
+# define SUBLANG_FRENCH_WESTINDIES 0x07
+# endif
+# ifndef SUBLANG_FRENCH_REUNION
+# define SUBLANG_FRENCH_REUNION 0x08
+# endif
+# ifndef SUBLANG_FRENCH_CONGO
+# define SUBLANG_FRENCH_CONGO 0x09
+# endif
+# ifndef SUBLANG_FRENCH_SENEGAL
+# define SUBLANG_FRENCH_SENEGAL 0x0a
+# endif
+# ifndef SUBLANG_FRENCH_CAMEROON
+# define SUBLANG_FRENCH_CAMEROON 0x0b
+# endif
+# ifndef SUBLANG_FRENCH_COTEDIVOIRE
+# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
+# endif
+# ifndef SUBLANG_FRENCH_MALI
+# define SUBLANG_FRENCH_MALI 0x0d
+# endif
+# ifndef SUBLANG_FRENCH_MOROCCO
+# define SUBLANG_FRENCH_MOROCCO 0x0e
+# endif
+# ifndef SUBLANG_FRENCH_HAITI
+# define SUBLANG_FRENCH_HAITI 0x0f
+# endif
+# ifndef SUBLANG_GERMAN_LUXEMBOURG
+# define SUBLANG_GERMAN_LUXEMBOURG 0x04
+# endif
+# ifndef SUBLANG_GERMAN_LIECHTENSTEIN
+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+# endif
+# ifndef SUBLANG_KASHMIRI_INDIA
+# define SUBLANG_KASHMIRI_INDIA 0x02
+# endif
+# ifndef SUBLANG_MALAY_MALAYSIA
+# define SUBLANG_MALAY_MALAYSIA 0x01
+# endif
+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+# endif
+# ifndef SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA
+# define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
+# endif
+# ifndef SUBLANG_MONGOLIAN_PRC
+# define SUBLANG_MONGOLIAN_PRC 0x02
+# endif
+# ifndef SUBLANG_NEPALI_INDIA
+# define SUBLANG_NEPALI_INDIA 0x02
+# endif
+# ifndef SUBLANG_PUNJABI_INDIA
+# define SUBLANG_PUNJABI_INDIA 0x01
+# endif
+# ifndef SUBLANG_PUNJABI_PAKISTAN
+# define SUBLANG_PUNJABI_PAKISTAN 0x02
+# endif
+# ifndef SUBLANG_QUECHUA_BOLIVIA
+# define SUBLANG_QUECHUA_BOLIVIA 0x01
+# endif
+# ifndef SUBLANG_QUECHUA_ECUADOR
+# define SUBLANG_QUECHUA_ECUADOR 0x02
+# endif
+# ifndef SUBLANG_QUECHUA_PERU
+# define SUBLANG_QUECHUA_PERU 0x03
+# endif
+# ifndef SUBLANG_ROMANIAN_ROMANIA
+# define SUBLANG_ROMANIAN_ROMANIA 0x01
+# endif
+# ifndef SUBLANG_ROMANIAN_MOLDOVA
+# define SUBLANG_ROMANIAN_MOLDOVA 0x02
+# endif
+# ifndef SUBLANG_RUSSIAN_RUSSIA
+# define SUBLANG_RUSSIAN_RUSSIA 0x01
+# endif
+# ifndef SUBLANG_RUSSIAN_MOLDAVIA
+# define SUBLANG_RUSSIAN_MOLDAVIA 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_LATIN
+# define SUBLANG_SERBIAN_LATIN 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_CYRILLIC
+# define SUBLANG_SERBIAN_CYRILLIC 0x03
+# endif
+# ifndef SUBLANG_SINDHI_INDIA
+# define SUBLANG_SINDHI_INDIA 0x01
+# endif
+# undef SUBLANG_SINDHI_PAKISTAN
+# define SUBLANG_SINDHI_PAKISTAN 0x02
+# ifndef SUBLANG_SINDHI_AFGHANISTAN
+# define SUBLANG_SINDHI_AFGHANISTAN 0x02
+# endif
+# ifndef SUBLANG_SPANISH_GUATEMALA
+# define SUBLANG_SPANISH_GUATEMALA 0x04
+# endif
+# ifndef SUBLANG_SPANISH_COSTA_RICA
+# define SUBLANG_SPANISH_COSTA_RICA 0x05
+# endif
+# ifndef SUBLANG_SPANISH_PANAMA
+# define SUBLANG_SPANISH_PANAMA 0x06
+# endif
+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+# endif
+# ifndef SUBLANG_SPANISH_VENEZUELA
+# define SUBLANG_SPANISH_VENEZUELA 0x08
+# endif
+# ifndef SUBLANG_SPANISH_COLOMBIA
+# define SUBLANG_SPANISH_COLOMBIA 0x09
+# endif
+# ifndef SUBLANG_SPANISH_PERU
+# define SUBLANG_SPANISH_PERU 0x0a
+# endif
+# ifndef SUBLANG_SPANISH_ARGENTINA
+# define SUBLANG_SPANISH_ARGENTINA 0x0b
+# endif
+# ifndef SUBLANG_SPANISH_ECUADOR
+# define SUBLANG_SPANISH_ECUADOR 0x0c
+# endif
+# ifndef SUBLANG_SPANISH_CHILE
+# define SUBLANG_SPANISH_CHILE 0x0d
+# endif
+# ifndef SUBLANG_SPANISH_URUGUAY
+# define SUBLANG_SPANISH_URUGUAY 0x0e
+# endif
+# ifndef SUBLANG_SPANISH_PARAGUAY
+# define SUBLANG_SPANISH_PARAGUAY 0x0f
+# endif
+# ifndef SUBLANG_SPANISH_BOLIVIA
+# define SUBLANG_SPANISH_BOLIVIA 0x10
+# endif
+# ifndef SUBLANG_SPANISH_EL_SALVADOR
+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
+# endif
+# ifndef SUBLANG_SPANISH_HONDURAS
+# define SUBLANG_SPANISH_HONDURAS 0x12
+# endif
+# ifndef SUBLANG_SPANISH_NICARAGUA
+# define SUBLANG_SPANISH_NICARAGUA 0x13
+# endif
+# ifndef SUBLANG_SPANISH_PUERTO_RICO
+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
+# endif
+# ifndef SUBLANG_SPANISH_US
+# define SUBLANG_SPANISH_US 0x15
+# endif
+# ifndef SUBLANG_SWEDISH_FINLAND
+# define SUBLANG_SWEDISH_FINLAND 0x02
+# endif
+# ifndef SUBLANG_TAMAZIGHT_ARABIC
+# define SUBLANG_TAMAZIGHT_ARABIC 0x01
+# endif
+# ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN
+# define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
+# endif
+# ifndef SUBLANG_TIBETAN_PRC
+# define SUBLANG_TIBETAN_PRC 0x01
+# endif
+# undef SUBLANG_TIBETAN_BHUTAN
+# define SUBLANG_TIBETAN_BHUTAN 0x02
+# ifndef SUBLANG_TIGRINYA_ETHIOPIA
+# define SUBLANG_TIGRINYA_ETHIOPIA 0x01
+# endif
+# ifndef SUBLANG_TIGRINYA_ERITREA
+# define SUBLANG_TIGRINYA_ERITREA 0x02
+# endif
+# ifndef SUBLANG_UIGHUR_PRC
+# define SUBLANG_UIGHUR_PRC 0x01
+# endif
+# ifndef SUBLANG_URDU_PAKISTAN
+# define SUBLANG_URDU_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_URDU_INDIA
+# define SUBLANG_URDU_INDIA 0x02
+# endif
+# ifndef SUBLANG_UZBEK_LATIN
+# define SUBLANG_UZBEK_LATIN 0x01
+# endif
+# ifndef SUBLANG_UZBEK_CYRILLIC
+# define SUBLANG_UZBEK_CYRILLIC 0x02
+# endif
+/* GetLocaleInfoA operations. */
+# ifndef LOCALE_SNAME
+# define LOCALE_SNAME 0x5c
+# endif
+#endif
+
+
+#if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+/* MacOS X 10.2 or newer */
+
+/* Canonicalize a MacOS X locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+ On input, it contains the MacOS X locale name.
+ On output, it contains the Unix locale name. */
+# if !defined IN_LIBINTL
+static
+# endif
+void
+gl_locale_name_canonicalize (char *name)
+{
+ /* This conversion is based on a posting by
+ Deborah GoldSmith <goldsmit@apple.com> on 2005-03-08,
+ http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
+
+ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
+ ISO 3166) names. Prior to MacOS X 10.3, there is no API for doing this.
+ Therefore we do it ourselves, using a table based on the results of the
+ MacOS X 10.3.8 function
+ CFLocaleCreateCanonicalLocaleIdentifierFromString(). */
+ typedef struct { const char legacy[21+1]; const char unixy[5+1]; }
+ legacy_entry;
+ static const legacy_entry legacy_table[] = {
+ { "Afrikaans", "af" },
+ { "Albanian", "sq" },
+ { "Amharic", "am" },
+ { "Arabic", "ar" },
+ { "Armenian", "hy" },
+ { "Assamese", "as" },
+ { "Aymara", "ay" },
+ { "Azerbaijani", "az" },
+ { "Basque", "eu" },
+ { "Belarusian", "be" },
+ { "Belorussian", "be" },
+ { "Bengali", "bn" },
+ { "Brazilian Portugese", "pt_BR" },
+ { "Brazilian Portuguese", "pt_BR" },
+ { "Breton", "br" },
+ { "Bulgarian", "bg" },
+ { "Burmese", "my" },
+ { "Byelorussian", "be" },
+ { "Catalan", "ca" },
+ { "Chewa", "ny" },
+ { "Chichewa", "ny" },
+ { "Chinese", "zh" },
+ { "Chinese, Simplified", "zh_CN" },
+ { "Chinese, Traditional", "zh_TW" },
+ { "Chinese, Tradtional", "zh_TW" },
+ { "Croatian", "hr" },
+ { "Czech", "cs" },
+ { "Danish", "da" },
+ { "Dutch", "nl" },
+ { "Dzongkha", "dz" },
+ { "English", "en" },
+ { "Esperanto", "eo" },
+ { "Estonian", "et" },
+ { "Faroese", "fo" },
+ { "Farsi", "fa" },
+ { "Finnish", "fi" },
+ { "Flemish", "nl_BE" },
+ { "French", "fr" },
+ { "Galician", "gl" },
+ { "Gallegan", "gl" },
+ { "Georgian", "ka" },
+ { "German", "de" },
+ { "Greek", "el" },
+ { "Greenlandic", "kl" },
+ { "Guarani", "gn" },
+ { "Gujarati", "gu" },
+ { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */
+ { "Hebrew", "he" },
+ { "Hindi", "hi" },
+ { "Hungarian", "hu" },
+ { "Icelandic", "is" },
+ { "Indonesian", "id" },
+ { "Inuktitut", "iu" },
+ { "Irish", "ga" },
+ { "Italian", "it" },
+ { "Japanese", "ja" },
+ { "Javanese", "jv" },
+ { "Kalaallisut", "kl" },
+ { "Kannada", "kn" },
+ { "Kashmiri", "ks" },
+ { "Kazakh", "kk" },
+ { "Khmer", "km" },
+ { "Kinyarwanda", "rw" },
+ { "Kirghiz", "ky" },
+ { "Korean", "ko" },
+ { "Kurdish", "ku" },
+ { "Latin", "la" },
+ { "Latvian", "lv" },
+ { "Lithuanian", "lt" },
+ { "Macedonian", "mk" },
+ { "Malagasy", "mg" },
+ { "Malay", "ms" },
+ { "Malayalam", "ml" },
+ { "Maltese", "mt" },
+ { "Manx", "gv" },
+ { "Marathi", "mr" },
+ { "Moldavian", "mo" },
+ { "Mongolian", "mn" },
+ { "Nepali", "ne" },
+ { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */
+ { "Nyanja", "ny" },
+ { "Nynorsk", "nn" },
+ { "Oriya", "or" },
+ { "Oromo", "om" },
+ { "Panjabi", "pa" },
+ { "Pashto", "ps" },
+ { "Persian", "fa" },
+ { "Polish", "pl" },
+ { "Portuguese", "pt" },
+ { "Portuguese, Brazilian", "pt_BR" },
+ { "Punjabi", "pa" },
+ { "Pushto", "ps" },
+ { "Quechua", "qu" },
+ { "Romanian", "ro" },
+ { "Ruanda", "rw" },
+ { "Rundi", "rn" },
+ { "Russian", "ru" },
+ { "Sami", "se_NO" }, /* Not just "se". */
+ { "Sanskrit", "sa" },
+ { "Scottish", "gd" },
+ { "Serbian", "sr" },
+ { "Simplified Chinese", "zh_CN" },
+ { "Sindhi", "sd" },
+ { "Sinhalese", "si" },
+ { "Slovak", "sk" },
+ { "Slovenian", "sl" },
+ { "Somali", "so" },
+ { "Spanish", "es" },
+ { "Sundanese", "su" },
+ { "Swahili", "sw" },
+ { "Swedish", "sv" },
+ { "Tagalog", "tl" },
+ { "Tajik", "tg" },
+ { "Tajiki", "tg" },
+ { "Tamil", "ta" },
+ { "Tatar", "tt" },
+ { "Telugu", "te" },
+ { "Thai", "th" },
+ { "Tibetan", "bo" },
+ { "Tigrinya", "ti" },
+ { "Tongan", "to" },
+ { "Traditional Chinese", "zh_TW" },
+ { "Turkish", "tr" },
+ { "Turkmen", "tk" },
+ { "Uighur", "ug" },
+ { "Ukrainian", "uk" },
+ { "Urdu", "ur" },
+ { "Uzbek", "uz" },
+ { "Vietnamese", "vi" },
+ { "Welsh", "cy" },
+ { "Yiddish", "yi" }
+ };
+
+ /* Convert new-style locale names with language tags (ISO 639 and ISO 15924)
+ to Unix (ISO 639 and ISO 3166) names. */
+ typedef struct { const char langtag[7+1]; const char unixy[12+1]; }
+ langtag_entry;
+ static const langtag_entry langtag_table[] = {
+ /* MacOS X has "az-Arab", "az-Cyrl", "az-Latn".
+ The default script for az on Unix is Latin. */
+ { "az-Latn", "az" },
+ /* MacOS X has "ga-dots". Does not yet exist on Unix. */
+ { "ga-dots", "ga" },
+ /* MacOS X has "kk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "mn-Cyrl", "mn-Mong".
+ The default script for mn on Unix is Cyrillic. */
+ { "mn-Cyrl", "mn" },
+ /* MacOS X has "ms-Arab", "ms-Latn".
+ The default script for ms on Unix is Latin. */
+ { "ms-Latn", "ms" },
+ /* MacOS X has "tg-Cyrl".
+ The default script for tg on Unix is Cyrillic. */
+ { "tg-Cyrl", "tg" },
+ /* MacOS X has "tk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "tt-Cyrl".
+ The default script for tt on Unix is Cyrillic. */
+ { "tt-Cyrl", "tt" },
+ /* MacOS X has "zh-Hans", "zh-Hant".
+ Country codes are used to distinguish these on Unix. */
+ { "zh-Hans", "zh_CN" },
+ { "zh-Hant", "zh_TW" }
+ };
+
+ /* Convert script names (ISO 15924) to Unix conventions.
+ See http://www.unicode.org/iso15924/iso15924-codes.html */
+ typedef struct { const char script[4+1]; const char unixy[9+1]; }
+ script_entry;
+ static const script_entry script_table[] = {
+ { "Arab", "arabic" },
+ { "Cyrl", "cyrillic" },
+ { "Mong", "mongolian" }
+ };
+
+ /* Step 1: Convert using legacy_table. */
+ if (name[0] >= 'A' && name[0] <= 'Z')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (legacy_table) / sizeof (legacy_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in legacy_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const legacy_entry *p = &legacy_table[i];
+ if (strcmp (name, p->legacy) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, legacy_table[i1].legacy) == 0)
+ {
+ strcpy (name, legacy_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 2: Convert using langtag_table and script_table. */
+ if (strlen (name) == 7 && name[2] == '-')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (langtag_table) / sizeof (langtag_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in langtag_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const langtag_entry *p = &langtag_table[i];
+ if (strcmp (name, p->langtag) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, langtag_table[i1].langtag) == 0)
+ {
+ strcpy (name, langtag_table[i1].unixy);
+ return;
+ }
+
+ i1 = 0;
+ i2 = sizeof (script_table) / sizeof (script_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if (name + 3) occurs in script_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const script_entry *p = &script_table[i];
+ if (strcmp (name + 3, p->script) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name + 3, script_table[i1].script) == 0)
+ {
+ name[2] = '@';
+ strcpy (name + 3, script_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 3: Convert new-style dash to Unix underscore. */
+ {
+ char *p;
+ for (p = name; *p != '\0'; p++)
+ if (*p == '-')
+ *p = '_';
+ }
+}
+
+#endif
+
+
+#ifdef WIN32_NATIVE
+
+/* Canonicalize a Win32 native locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+ On input, it contains the Win32 locale name.
+ On output, it contains the Unix locale name. */
+# if !defined IN_LIBINTL
+static
+# endif
+void
+gl_locale_name_canonicalize (char *name)
+{
+ /* FIXME: This is probably incomplete: it does not handle "zh-Hans" and
+ "zh-Hant". */
+ char *p;
+
+ for (p = name; *p != '\0'; p++)
+ if (*p == '-')
+ {
+ *p = '_';
+ p++;
+ for (; *p != '\0'; p++)
+ {
+ if (*p >= 'a' && *p <= 'z')
+ *p += 'A' - 'a';
+ if (*p == '-')
+ {
+ *p = '\0';
+ return;
+ }
+ }
+ return;
+ }
+}
+
+# if !defined IN_LIBINTL
+static
+# endif
+const char *
+gl_locale_name_from_win32_LANGID (LANGID langid)
+{
+ /* Activate the new code only when the GETTEXT_MUI environment variable is
+ set, for the time being, since the new code is not well tested. */
+ if (getenv ("GETTEXT_MUI") != NULL)
+ {
+ static char namebuf[256];
+
+ /* Query the system's notion of locale name.
+ On Windows95/98/ME, GetLocaleInfoA returns some incorrect results.
+ But we don't need to support systems that are so old. */
+ if (GetLocaleInfoA (MAKELCID (langid, SORT_DEFAULT), LOCALE_SNAME,
+ namebuf, sizeof (namebuf) - 1))
+ {
+ /* Convert it to a Unix locale name. */
+ gl_locale_name_canonicalize (namebuf);
+ return namebuf;
+ }
+ }
+ /* Internet Explorer has an LCID to RFC3066 name mapping stored in
+ HKEY_CLASSES_ROOT\Mime\Database\Rfc1766. But we better don't use that
+ since IE's i18n subsystem is known to be inconsistent with the Win32 base
+ (e.g. they have different character conversion facilities that produce
+ different results). */
+ /* Use our own table. */
+ {
+ int primary, sub;
+
+ /* Split into language and territory part. */
+ primary = PRIMARYLANGID (langid);
+ sub = SUBLANGID (langid);
+
+ /* Dispatch on language.
+ See also http://www.unicode.org/unicode/onlinedat/languages.html .
+ For details about languages, see http://www.ethnologue.com/ . */
+ switch (primary)
+ {
+ case LANG_AFRIKAANS: return "af_ZA";
+ case LANG_ALBANIAN: return "sq_AL";
+ case LANG_AMHARIC: return "am_ET";
+ case LANG_ARABIC:
+ switch (sub)
+ {
+ case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
+ case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
+ case SUBLANG_ARABIC_EGYPT: return "ar_EG";
+ case SUBLANG_ARABIC_LIBYA: return "ar_LY";
+ case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
+ case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
+ case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
+ case SUBLANG_ARABIC_OMAN: return "ar_OM";
+ case SUBLANG_ARABIC_YEMEN: return "ar_YE";
+ case SUBLANG_ARABIC_SYRIA: return "ar_SY";
+ case SUBLANG_ARABIC_JORDAN: return "ar_JO";
+ case SUBLANG_ARABIC_LEBANON: return "ar_LB";
+ case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
+ case SUBLANG_ARABIC_UAE: return "ar_AE";
+ case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
+ case SUBLANG_ARABIC_QATAR: return "ar_QA";
+ }
+ return "ar";
+ case LANG_ARMENIAN: return "hy_AM";
+ case LANG_ASSAMESE: return "as_IN";
+ case LANG_AZERI:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */
+ case SUBLANG_AZERI_LATIN: return "az_AZ@latin";
+ case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic";
+ }
+ return "az";
+ case LANG_BASQUE:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "eu_ES";
+ }
+ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
+ case LANG_BELARUSIAN: return "be_BY";
+ case LANG_BENGALI:
+ switch (sub)
+ {
+ case SUBLANG_BENGALI_INDIA: return "bn_IN";
+ case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
+ }
+ return "bn";
+ case LANG_BULGARIAN: return "bg_BG";
+ case LANG_BURMESE: return "my_MM";
+ case LANG_CAMBODIAN: return "km_KH";
+ case LANG_CATALAN: return "ca_ES";
+ case LANG_CHEROKEE: return "chr_US";
+ case LANG_CHINESE:
+ switch (sub)
+ {
+ case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
+ case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
+ case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
+ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
+ case SUBLANG_CHINESE_MACAU: return "zh_MO";
+ }
+ return "zh";
+ case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN
+ * What used to be called Serbo-Croatian
+ * should really now be two separate
+ * languages because of political reasons.
+ * (Says tml, who knows nothing about Serbian
+ * or Croatian.)
+ * (I can feel those flames coming already.)
+ */
+ switch (sub)
+ {
+ case SUBLANG_CROATIAN_CROATIA: return "hr_HR";
+ case SUBLANG_SERBIAN_LATIN: return "sr_CS";
+ case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic";
+ case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: return "hr_BA";
+ case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: return "bs_BA";
+ case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: return "bs_BA@cyrillic";
+ }
+ return "hr";
+ case LANG_CZECH: return "cs_CZ";
+ case LANG_DANISH: return "da_DK";
+ case LANG_DIVEHI: return "dv_MV";
+ case LANG_DUTCH:
+ switch (sub)
+ {
+ case SUBLANG_DUTCH: return "nl_NL";
+ case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
+ }
+ return "nl";
+ case LANG_EDO: return "bin_NG";
+ case LANG_ENGLISH:
+ switch (sub)
+ {
+ /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
+ * English was the language spoken in England.
+ * Oh well.
+ */
+ case SUBLANG_ENGLISH_US: return "en_US";
+ case SUBLANG_ENGLISH_UK: return "en_GB";
+ case SUBLANG_ENGLISH_AUS: return "en_AU";
+ case SUBLANG_ENGLISH_CAN: return "en_CA";
+ case SUBLANG_ENGLISH_NZ: return "en_NZ";
+ case SUBLANG_ENGLISH_EIRE: return "en_IE";
+ case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
+ case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
+ case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
+ case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
+ case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
+ case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
+ case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
+ case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
+ case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
+ case SUBLANG_ENGLISH_INDIA: return "en_IN";
+ case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
+ case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
+ }
+ return "en";
+ case LANG_ESTONIAN: return "et_EE";
+ case LANG_FAEROESE: return "fo_FO";
+ case LANG_FARSI: return "fa_IR";
+ case LANG_FINNISH: return "fi_FI";
+ case LANG_FRENCH:
+ switch (sub)
+ {
+ case SUBLANG_FRENCH: return "fr_FR";
+ case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE";
+ case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
+ case SUBLANG_FRENCH_SWISS: return "fr_CH";
+ case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
+ case SUBLANG_FRENCH_MONACO: return "fr_MC";
+ case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
+ case SUBLANG_FRENCH_REUNION: return "fr_RE";
+ case SUBLANG_FRENCH_CONGO: return "fr_CG";
+ case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
+ case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
+ case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
+ case SUBLANG_FRENCH_MALI: return "fr_ML";
+ case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
+ case SUBLANG_FRENCH_HAITI: return "fr_HT";
+ }
+ return "fr";
+ case LANG_FRISIAN: return "fy_NL";
+ case LANG_FULFULDE:
+ /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
+ return "ff_NG";
+ case LANG_GAELIC:
+ switch (sub)
+ {
+ case 0x01: /* SCOTTISH */ return "gd_GB";
+ case 0x02: /* IRISH */ return "ga_IE";
+ }
+ return "C";
+ case LANG_GALICIAN: return "gl_ES";
+ case LANG_GEORGIAN: return "ka_GE";
+ case LANG_GERMAN:
+ switch (sub)
+ {
+ case SUBLANG_GERMAN: return "de_DE";
+ case SUBLANG_GERMAN_SWISS: return "de_CH";
+ case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
+ case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
+ case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
+ }
+ return "de";
+ case LANG_GREEK: return "el_GR";
+ case LANG_GUARANI: return "gn_PY";
+ case LANG_GUJARATI: return "gu_IN";
+ case LANG_HAUSA: return "ha_NG";
+ case LANG_HAWAIIAN:
+ /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
+ or Hawaii Creole English ("cpe_US", 600000 speakers)? */
+ return "cpe_US";
+ case LANG_HEBREW: return "he_IL";
+ case LANG_HINDI: return "hi_IN";
+ case LANG_HUNGARIAN: return "hu_HU";
+ case LANG_IBIBIO: return "nic_NG";
+ case LANG_ICELANDIC: return "is_IS";
+ case LANG_IGBO: return "ig_NG";
+ case LANG_INDONESIAN: return "id_ID";
+ case LANG_INUKTITUT: return "iu_CA";
+ case LANG_ITALIAN:
+ switch (sub)
+ {
+ case SUBLANG_ITALIAN: return "it_IT";
+ case SUBLANG_ITALIAN_SWISS: return "it_CH";
+ }
+ return "it";
+ case LANG_JAPANESE: return "ja_JP";
+ case LANG_KANNADA: return "kn_IN";
+ case LANG_KANURI: return "kr_NG";
+ case LANG_KASHMIRI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ks_PK";
+ case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
+ }
+ return "ks";
+ case LANG_KAZAK: return "kk_KZ";
+ case LANG_KONKANI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "kok_IN";
+ case LANG_KOREAN: return "ko_KR";
+ case LANG_KYRGYZ: return "ky_KG";
+ case LANG_LAO: return "lo_LA";
+ case LANG_LATIN: return "la_VA";
+ case LANG_LATVIAN: return "lv_LV";
+ case LANG_LITHUANIAN: return "lt_LT";
+ case LANG_MACEDONIAN: return "mk_MK";
+ case LANG_MALAY:
+ switch (sub)
+ {
+ case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
+ case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
+ }
+ return "ms";
+ case LANG_MALAYALAM: return "ml_IN";
+ case LANG_MALTESE: return "mt_MT";
+ case LANG_MANIPURI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "mni_IN";
+ case LANG_MAORI: return "mi_NZ";
+ case LANG_MARATHI: return "mr_IN";
+ case LANG_MONGOLIAN:
+ switch (sub)
+ {
+ case SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: return "mn_MN";
+ case SUBLANG_MONGOLIAN_PRC: return "mn_CN";
+ }
+ return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */
+ case LANG_NEPALI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ne_NP";
+ case SUBLANG_NEPALI_INDIA: return "ne_IN";
+ }
+ return "ne";
+ case LANG_NORWEGIAN:
+ switch (sub)
+ {
+ case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO";
+ case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
+ }
+ return "no";
+ case LANG_ORIYA: return "or_IN";
+ case LANG_OROMO: return "om_ET";
+ case LANG_PAPIAMENTU: return "pap_AN";
+ case LANG_PASHTO:
+ return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */
+ case LANG_POLISH: return "pl_PL";
+ case LANG_PORTUGUESE:
+ switch (sub)
+ {
+ case SUBLANG_PORTUGUESE: return "pt_PT";
+ /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
+ Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
+ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
+ }
+ return "pt";
+ case LANG_PUNJABI:
+ switch (sub)
+ {
+ case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
+ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
+ }
+ return "pa";
+ case LANG_QUECHUA:
+ switch (sub)
+ {
+ case SUBLANG_QUECHUA_BOLIVIA: return "qu_BO";
+ case SUBLANG_QUECHUA_ECUADOR: return "qu_EC";
+ case SUBLANG_QUECHUA_PERU: return "qu_PE";
+ }
+ return "qu";
+ case LANG_RHAETO_ROMANCE: return "rm_CH";
+ case LANG_ROMANIAN:
+ switch (sub)
+ {
+ case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
+ case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
+ }
+ return "ro";
+ case LANG_RUSSIAN:
+ switch (sub)
+ {
+ case SUBLANG_RUSSIAN_RUSSIA: return "ru_RU";
+ case SUBLANG_RUSSIAN_MOLDAVIA: return "ru_MD";
+ }
+ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
+ case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
+ case LANG_SANSKRIT: return "sa_IN";
+ case LANG_SINDHI:
+ switch (sub)
+ {
+ case SUBLANG_SINDHI_INDIA: return "sd_IN";
+ case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
+ /*case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF";*/
+ }
+ return "sd";
+ case LANG_SINHALESE: return "si_LK";
+ case LANG_SLOVAK: return "sk_SK";
+ case LANG_SLOVENIAN: return "sl_SI";
+ case LANG_SOMALI: return "so_SO";
+ case LANG_SORBIAN:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "wen_DE";
+ case LANG_SOTHO:
+ /* <http://www.microsoft.com/globaldev/reference/lcid-all.mspx> calls
+ it "Sepedi"; according to
+ <http://www.ethnologue.com/show_language.asp?code=nso>
+ <http://www.ethnologue.com/show_language.asp?code=sot>
+ it's the same as Northern Sotho. */
+ return "nso_ZA";
+ case LANG_SPANISH:
+ switch (sub)
+ {
+ case SUBLANG_SPANISH: return "es_ES";
+ case SUBLANG_SPANISH_MEXICAN: return "es_MX";
+ case SUBLANG_SPANISH_MODERN:
+ return "es_ES@modern"; /* not seen on Unix */
+ case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
+ case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
+ case SUBLANG_SPANISH_PANAMA: return "es_PA";
+ case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
+ case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
+ case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
+ case SUBLANG_SPANISH_PERU: return "es_PE";
+ case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
+ case SUBLANG_SPANISH_ECUADOR: return "es_EC";
+ case SUBLANG_SPANISH_CHILE: return "es_CL";
+ case SUBLANG_SPANISH_URUGUAY: return "es_UY";
+ case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
+ case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
+ case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
+ case SUBLANG_SPANISH_HONDURAS: return "es_HN";
+ case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
+ case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
+ case SUBLANG_SPANISH_US: return "es_US";
+ }
+ return "es";
+ case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
+ case LANG_SWAHILI: return "sw_KE";
+ case LANG_SWEDISH:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "sv_SE";
+ case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
+ }
+ return "sv";
+ case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */
+ case LANG_TAGALOG: return "tl_PH";
+ case LANG_TAJIK: return "tg_TJ";
+ case LANG_TAMAZIGHT:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Tamazight locales appear on Unix. */
+ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic";
+ case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "ber_DZ@latin";
+ }
+ return "ber_MA";
+ case LANG_TAMIL:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ta_IN";
+ }
+ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
+ case LANG_TATAR: return "tt_RU";
+ case LANG_TELUGU: return "te_IN";
+ case LANG_THAI: return "th_TH";
+ case LANG_TIBETAN:
+ switch (sub)
+ {
+ case SUBLANG_TIBETAN_PRC:
+ /* Most Tibetans would not like "bo_CN". But Tibet does not yet
+ have a country code of its own. */
+ return "bo";
+ case SUBLANG_TIBETAN_BHUTAN: return "bo_BT";
+ }
+ return "bo";
+ case LANG_TIGRINYA:
+ switch (sub)
+ {
+ case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
+ case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
+ }
+ return "ti";
+ case LANG_TSONGA: return "ts_ZA";
+ case LANG_TSWANA: return "tn_BW";
+ case LANG_TURKISH: return "tr_TR";
+ case LANG_TURKMEN: return "tk_TM";
+ case LANG_UIGHUR:
+ switch (sub)
+ {
+ case SUBLANG_UIGHUR_PRC: return "ug_CN";
+ }
+ return "ug";
+ case LANG_UKRAINIAN: return "uk_UA";
+ case LANG_URDU:
+ switch (sub)
+ {
+ case SUBLANG_URDU_PAKISTAN: return "ur_PK";
+ case SUBLANG_URDU_INDIA: return "ur_IN";
+ }
+ return "ur";
+ case LANG_UZBEK:
+ switch (sub)
+ {
+ case SUBLANG_UZBEK_LATIN: return "uz_UZ";
+ case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
+ }
+ return "uz";
+ case LANG_VENDA: return "ve_ZA";
+ case LANG_VIETNAMESE: return "vi_VN";
+ case LANG_WELSH: return "cy_GB";
+ case LANG_XHOSA: return "xh_ZA";
+ case LANG_YI: return "sit_CN";
+ case LANG_YIDDISH: return "yi_IL";
+ case LANG_YORUBA: return "yo_NG";
+ case LANG_ZULU: return "zu_ZA";
+ default: return "C";
+ }
+ }
+}
+
+# if !defined IN_LIBINTL
+static
+# endif
+const char *
+gl_locale_name_from_win32_LCID (LCID lcid)
+{
+ LANGID langid;
+
+ /* Strip off the sorting rules, keep only the language part. */
+ langid = LANGIDFROMLCID (lcid);
+
+ return gl_locale_name_from_win32_LANGID (langid);
+}
+
+#endif
+
+
+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
+ "Directs 'setlocale()' to query 'category' and return the current
+ setting of 'local'."
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Determine the current locale's name, and canonicalize it into XPG syntax
+ language[_territory][.codeset][@modifier]
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+
+const char *
+gl_locale_name_posix (int category, const char *categoryname)
+{
+ /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
+ On some systems this can be done by the 'setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ const char *retval;
+
+ /* Setting of LC_ALL overrides all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ return NULL;
+#endif
+}
+
+const char *
+gl_locale_name_default (void)
+{
+ /* POSIX:2001 says:
+ "All implementations shall define a locale as the default locale, to be
+ invoked when no environment variables are set, or set to the empty
+ string. This default locale can be the POSIX locale or any other
+ implementation-defined locale. Some implementations may provide
+ facilities for local installation administrators to set the default
+ locale, customizing it for each location. POSIX:2001 does not require
+ such a facility. */
+
+#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined(WIN32_NATIVE))
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+ return "C";
+
+#else
+
+ /* Return an XPG style locale name language[_territory][@modifier].
+ Don't even bother determining the codeset; it's not useful in this
+ context, because message catalogs are not specific to a single
+ codeset. */
+
+# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+ /* MacOS X 10.2 or newer */
+ {
+ /* Cache the locale name, since CoreFoundation calls are expensive. */
+ static const char *cached_localename;
+
+ if (cached_localename == NULL)
+ {
+ char namebuf[256];
+# if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */
+ CFLocaleRef locale = CFLocaleCopyCurrent ();
+ CFStringRef name = CFLocaleGetIdentifier (locale);
+
+ if (CFStringGetCString (name, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ gl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+ CFRelease (locale);
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
+ CFTypeRef value =
+ CFPreferencesCopyAppValue (CFSTR ("AppleLocale"),
+ kCFPreferencesCurrentApplication);
+ if (value != NULL
+ && CFGetTypeID (value) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)value, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ gl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+# endif
+ if (cached_localename == NULL)
+ cached_localename = "C";
+ }
+ return cached_localename;
+ }
+
+# endif
+
+# if defined(WIN32_NATIVE) /* WIN32, not Cygwin */
+ {
+ LCID lcid;
+
+ /* Use native Win32 API locale ID. */
+ lcid = GetThreadLocale ();
+
+ return gl_locale_name_from_win32_LCID (lcid);
+ }
+# endif
+#endif
+}
+
+const char *
+gl_locale_name (int category, const char *categoryname)
+{
+ const char *retval;
+
+ retval = gl_locale_name_posix (category, categoryname);
+ if (retval != NULL)
+ return retval;
+
+ return gl_locale_name_default ();
+}
diff --git a/lib/localename.h b/lib/localename.h
new file mode 100644
index 0000000..f633ad8
--- /dev/null
+++ b/lib/localename.h
@@ -0,0 +1,77 @@
+/* Determine name of the currently selected locale.
+ 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 Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library 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 _GL_LOCALENAME_H
+#define _GL_LOCALENAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's name.
+ It considers both the POSIX notion of locale name (see function
+ gl_locale_name_posix) and the system notion of locale name (see function
+ gl_locale_name_default).
+ CATEGORY is a locale category abbreviation, as defined in <locale.h>,
+ but not LC_ALL. E.g. LC_MESSAGES.
+ CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES".
+ Return the locale category's name, canonicalized into XPG syntax
+ language[_territory][.codeset][@modifier]
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+extern const char * gl_locale_name (int category, const char *categoryname);
+
+/* Determine the current locale's name, as specified by setlocale() calls
+ or by environment variables.
+ CATEGORY is a locale category abbreviation, as defined in <locale.h>,
+ but not LC_ALL. E.g. LC_MESSAGES.
+ CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES".
+ Return the locale category's name, canonicalized into XPG syntax
+ language[_territory][.codeset][@modifier]
+ or NULL if no locale has been specified to setlocale() or by environment
+ variables.
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+extern const char * gl_locale_name_posix (int category, const char *categoryname);
+
+/* Determine the default locale's name. This is the current locale's name,
+ if not specified by setlocale() calls or by environment variables. This
+ locale name is usually determined by systems settings that the user can
+ manipulate through a GUI.
+
+ Quoting POSIX:2001:
+ "All implementations shall define a locale as the default locale,
+ to be invoked when no environment variables are set, or set to the
+ empty string. This default locale can be the C locale or any other
+ implementation-defined locale. Some implementations may provide
+ facilities for local installation administrators to set the default
+ locale, customizing it for each location. IEEE Std 1003.1-2001 does
+ not require such a facility."
+
+ The result must not be freed; it is statically allocated. */
+extern const char * gl_locale_name_default (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_LOCALENAME_H */
diff --git a/lib/malloc.c b/lib/malloc.c
new file mode 100644
index 0000000..9111c7a
--- /dev/null
+++ b/lib/malloc.c
@@ -0,0 +1,57 @@
+/* malloc() function that is glibc compatible.
+
+ Copyright (C) 1997, 1998, 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* written by Jim Meyering and Bruno Haible */
+
+#include <config.h>
+/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */
+#ifdef malloc
+# define NEED_MALLOC_GNU
+# undef malloc
+#endif
+
+/* Specification. */
+#include <stdlib.h>
+
+#include <errno.h>
+
+/* Call the system's malloc below. */
+#undef malloc
+
+/* Allocate an N-byte block of memory from the heap.
+ If N is zero, allocate a 1-byte block. */
+
+void *
+rpl_malloc (size_t n)
+{
+ void *result;
+
+#ifdef NEED_MALLOC_GNU
+ if (n == 0)
+ n = 1;
+#endif
+
+ result = malloc (n);
+
+#if !HAVE_MALLOC_POSIX
+ if (result == NULL)
+ errno = ENOMEM;
+#endif
+
+ return result;
+}
diff --git a/lib/malloca.c b/lib/malloca.c
new file mode 100644
index 0000000..7905e61
--- /dev/null
+++ b/lib/malloca.c
@@ -0,0 +1,137 @@
+/* Safe automatic memory allocation.
+ Copyright (C) 2003, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#include "malloca.h"
+
+/* The speed critical point in this file is freea() applied to an alloca()
+ result: it must be fast, to match the speed of alloca(). The speed of
+ mmalloca() and freea() in the other case are not critical, because they
+ are only invoked for big memory sizes. */
+
+#if HAVE_ALLOCA
+
+/* Store the mmalloca() results in a hash table. This is needed to reliably
+ distinguish a mmalloca() result and an alloca() result.
+
+ Although it is possible that the same pointer is returned by alloca() and
+ by mmalloca() at different times in the same application, it does not lead
+ to a bug in freea(), because:
+ - Before a pointer returned by alloca() can point into malloc()ed memory,
+ the function must return, and once this has happened the programmer must
+ not call freea() on it anyway.
+ - Before a pointer returned by mmalloca() can point into the stack, it
+ must be freed. The only function that can free it is freea(), and
+ when freea() frees it, it also removes it from the hash table. */
+
+#define MAGIC_NUMBER 0x1415fb4a
+#define MAGIC_SIZE sizeof (int)
+/* This is how the header info would look like without any alignment
+ considerations. */
+struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+/* But the header's size must be a multiple of sa_alignment_max. */
+#define HEADER_SIZE \
+ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
+struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
+/* Verify that HEADER_SIZE == sizeof (struct header). */
+typedef int verify1[2 * (HEADER_SIZE == sizeof (struct header)) - 1];
+/* We make the hash table quite big, so that during lookups the probability
+ of empty hash buckets is quite high. There is no need to make the hash
+ table resizable, because when the hash table gets filled so much that the
+ lookup becomes slow, it means that the application has memory leaks. */
+#define HASH_TABLE_SIZE 257
+static void * mmalloca_results[HASH_TABLE_SIZE];
+
+#endif
+
+void *
+mmalloca (size_t n)
+{
+#if HAVE_ALLOCA
+ /* Allocate one more word, that serves as an indicator for malloc()ed
+ memory, so that freea() of an alloca() result is fast. */
+ size_t nplus = n + HEADER_SIZE;
+
+ if (nplus >= n)
+ {
+ char *p = (char *) malloc (nplus);
+
+ if (p != NULL)
+ {
+ size_t slot;
+
+ p += HEADER_SIZE;
+
+ /* Put a magic number into the indicator word. */
+ ((int *) p)[-1] = MAGIC_NUMBER;
+
+ /* Enter p into the hash table. */
+ slot = (unsigned long) p % HASH_TABLE_SIZE;
+ ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+ mmalloca_results[slot] = p;
+
+ return p;
+ }
+ }
+ /* Out of memory. */
+ return NULL;
+#else
+# if !MALLOC_0_IS_NONNULL
+ if (n == 0)
+ n = 1;
+# endif
+ return malloc (n);
+#endif
+}
+
+#if HAVE_ALLOCA
+void
+freea (void *p)
+{
+ /* mmalloca() may have returned NULL. */
+ if (p != NULL)
+ {
+ /* Attempt to quickly distinguish the mmalloca() result - which has
+ a magic indicator word - and the alloca() result - which has an
+ uninitialized indicator word. It is for this test that sa_increment
+ additional bytes are allocated in the alloca() case. */
+ if (((int *) p)[-1] == MAGIC_NUMBER)
+ {
+ /* Looks like a mmalloca() result. To see whether it really is one,
+ perform a lookup in the hash table. */
+ size_t slot = (unsigned long) p % HASH_TABLE_SIZE;
+ void **chain = &mmalloca_results[slot];
+ for (; *chain != NULL;)
+ {
+ if (*chain == p)
+ {
+ /* Found it. Remove it from the hash table and free it. */
+ char *p_begin = (char *) p - HEADER_SIZE;
+ *chain = ((struct header *) p_begin)->next;
+ free (p_begin);
+ return;
+ }
+ chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next;
+ }
+ }
+ /* At this point, we know it was not a mmalloca() result. */
+ }
+}
+#endif
diff --git a/lib/malloca.h b/lib/malloca.h
new file mode 100644
index 0000000..7d92b0a
--- /dev/null
+++ b/lib/malloca.h
@@ -0,0 +1,134 @@
+/* Safe automatic memory allocation.
+ Copyright (C) 2003-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _MALLOCA_H
+#define _MALLOCA_H
+
+#include <alloca.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* safe_alloca(N) is equivalent to alloca(N) when it is safe to call
+ alloca(N); otherwise it returns NULL. It either returns N bytes of
+ memory allocated on the stack, that lasts until the function returns,
+ or NULL.
+ Use of safe_alloca should be avoided:
+ - inside arguments of function calls - undefined behaviour,
+ - in inline functions - the allocation may actually last until the
+ calling function returns.
+*/
+#if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ allocate anything larger than 4096 bytes. Also care for the possibility
+ of a few compiler-allocated temporary stack slots.
+ This must be a macro, not an inline function. */
+# define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
+#else
+# define safe_alloca(N) ((void) (N), NULL)
+#endif
+
+/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of
+ memory allocated on the stack, that must be freed using freea() before
+ the function returns. Upon failure, it returns NULL. */
+#if HAVE_ALLOCA
+# define malloca(N) \
+ ((N) < 4032 - sa_increment \
+ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \
+ : mmalloca (N))
+#else
+# define malloca(N) \
+ mmalloca (N)
+#endif
+extern void * mmalloca (size_t n);
+
+/* Free a block of memory allocated through malloca(). */
+#if HAVE_ALLOCA
+extern void freea (void *p);
+#else
+# define freea free
+#endif
+
+/* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
+ It allocates an array of N objects, each with S bytes of memory,
+ on the stack. S must be positive and N must be nonnegative.
+ The array must be freed using freea() before the function returns. */
+#if 1
+/* Cf. the definition of xalloc_oversized. */
+# define nmalloca(n, s) \
+ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \
+ ? NULL \
+ : malloca ((n) * (s)))
+#else
+extern void * nmalloca (size_t n, size_t s);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+/* ------------------- Auxiliary, non-public definitions ------------------- */
+
+/* Determine the alignment of a type at compile time. */
+#if defined __GNUC__
+# define sa_alignof __alignof__
+#elif defined __cplusplus
+ template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
+# define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2)
+#elif defined __hpux
+ /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof
+ values. */
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+#elif defined _AIX
+ /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof
+ values. */
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+#else
+# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
+#endif
+
+enum
+{
+/* The desired alignment of memory allocations is the maximum alignment
+ among all elementary types. */
+ sa_alignment_long = sa_alignof (long),
+ sa_alignment_double = sa_alignof (double),
+#if HAVE_LONG_LONG_INT
+ sa_alignment_longlong = sa_alignof (long long),
+#endif
+ sa_alignment_longdouble = sa_alignof (long double),
+ sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1)
+#if HAVE_LONG_LONG_INT
+ | (sa_alignment_longlong - 1)
+#endif
+ | (sa_alignment_longdouble - 1)
+ ) + 1,
+/* The increment that guarantees room for a magic word must be >= sizeof (int)
+ and a multiple of sa_alignment_max. */
+ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max
+};
+
+#endif /* _MALLOCA_H */
diff --git a/lib/malloca.valgrind b/lib/malloca.valgrind
new file mode 100644
index 0000000..52f0a50
--- /dev/null
+++ b/lib/malloca.valgrind
@@ -0,0 +1,7 @@
+# Suppress a valgrind message about use of uninitialized memory in freea().
+# This use is OK because it provides only a speedup.
+{
+ freea
+ Memcheck:Cond
+ fun:freea
+}
diff --git a/lib/math.in.h b/lib/math.in.h
new file mode 100644
index 0000000..efca0f0
--- /dev/null
+++ b/lib/math.in.h
@@ -0,0 +1,567 @@
+/* A GNU-like <math.h>.
+
+ Copyright (C) 2002-2003, 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 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/>. */
+
+#ifndef _GL_MATH_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
+
+#ifndef _GL_MATH_H
+#define _GL_MATH_H
+
+
+/* The definition of GL_LINK_WARNING is copied here. */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* POSIX allows platforms that don't support NAN. But all major
+ machines in the past 15 years have supported something close to
+ IEEE NaN, so we define this unconditionally. We also must define
+ it on platforms like Solaris 10, where NAN is present but defined
+ as a function pointer rather than a floating point constant. */
+#if !defined NAN || @REPLACE_NAN@
+# undef NAN
+ /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
+# ifdef __DECC
+static float
+_NaN ()
+{
+ static float zero = 0.0f;
+ return zero / zero;
+}
+# define NAN (_NaN())
+# else
+# define NAN (0.0f / 0.0f)
+# endif
+#endif
+
+/* Solaris 10 defines HUGE_VAL, but as a function pointer rather
+ than a floating point constant. */
+#if @REPLACE_HUGE_VAL@
+# undef HUGE_VAL
+# define HUGE_VAL (1.0 / 0.0)
+#endif
+
+/* Write x as
+ x = mantissa * 2^exp
+ where
+ If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+ If x is zero: mantissa = x, exp = 0.
+ If x is infinite or NaN: mantissa = x, exp unspecified.
+ Store exp in *EXPPTR and return mantissa. */
+#if @GNULIB_FREXP@
+# if @REPLACE_FREXP@
+# define frexp rpl_frexp
+extern double frexp (double x, int *expptr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef frexp
+# define frexp(x,e) \
+ (GL_LINK_WARNING ("frexp is unportable - " \
+ "use gnulib module frexp for portability"), \
+ frexp (x, e))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ACOSL@
+extern long double acosl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef acosl
+# define acosl(x) \
+ (GL_LINK_WARNING ("acosl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ acosl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ASINL@
+extern long double asinl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef asinl
+# define asinl(x) \
+ (GL_LINK_WARNING ("asinl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ asinl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_ATANL@
+extern long double atanl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef atanl
+# define atanl(x) \
+ (GL_LINK_WARNING ("atanl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ atanl (x))
+#endif
+
+
+#if @GNULIB_CEILF@
+# if @REPLACE_CEILF@
+# define ceilf rpl_ceilf
+extern float ceilf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ceilf
+# define ceilf(x) \
+ (GL_LINK_WARNING ("ceilf is unportable - " \
+ "use gnulib module ceilf for portability"), \
+ ceilf (x))
+#endif
+
+#if @GNULIB_CEILL@
+# if @REPLACE_CEILL@
+# define ceill rpl_ceill
+extern long double ceill (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ceill
+# define ceill(x) \
+ (GL_LINK_WARNING ("ceill is unportable - " \
+ "use gnulib module ceill for portability"), \
+ ceill (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_COSL@
+extern long double cosl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef cosl
+# define cosl(x) \
+ (GL_LINK_WARNING ("cosl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ cosl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_EXPL@
+extern long double expl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef expl
+# define expl(x) \
+ (GL_LINK_WARNING ("expl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ expl (x))
+#endif
+
+
+#if @GNULIB_FLOORF@
+# if @REPLACE_FLOORF@
+# define floorf rpl_floorf
+extern float floorf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef floorf
+# define floorf(x) \
+ (GL_LINK_WARNING ("floorf is unportable - " \
+ "use gnulib module floorf for portability"), \
+ floorf (x))
+#endif
+
+#if @GNULIB_FLOORL@
+# if @REPLACE_FLOORL@
+# define floorl rpl_floorl
+extern long double floorl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef floorl
+# define floorl(x) \
+ (GL_LINK_WARNING ("floorl is unportable - " \
+ "use gnulib module floorl for portability"), \
+ floorl (x))
+#endif
+
+
+/* Write x as
+ x = mantissa * 2^exp
+ where
+ If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+ If x is zero: mantissa = x, exp = 0.
+ If x is infinite or NaN: mantissa = x, exp unspecified.
+ Store exp in *EXPPTR and return mantissa. */
+#if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
+# define frexpl rpl_frexpl
+#endif
+#if (@GNULIB_FREXPL@ && @REPLACE_FREXPL@) || !@HAVE_DECL_FREXPL@
+extern long double frexpl (long double x, int *expptr);
+#endif
+#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
+# undef frexpl
+# define frexpl(x,e) \
+ (GL_LINK_WARNING ("frexpl is unportable - " \
+ "use gnulib module frexpl for portability"), \
+ frexpl (x, e))
+#endif
+
+
+/* Return x * 2^exp. */
+#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
+# define ldexpl rpl_ldexpl
+#endif
+#if (@GNULIB_LDEXPL@ && @REPLACE_LDEXPL@) || !@HAVE_DECL_LDEXPL@
+extern long double ldexpl (long double x, int exp);
+#endif
+#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
+# undef ldexpl
+# define ldexpl(x,e) \
+ (GL_LINK_WARNING ("ldexpl is unportable - " \
+ "use gnulib module ldexpl for portability"), \
+ ldexpl (x, e))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_LOGL@
+extern long double logl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef logl
+# define logl(x) \
+ (GL_LINK_WARNING ("logl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ logl (x))
+#endif
+
+
+#if @GNULIB_ROUNDF@
+# if @REPLACE_ROUNDF@
+# undef roundf
+# define roundf rpl_roundf
+extern float roundf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef roundf
+# define roundf(x) \
+ (GL_LINK_WARNING ("roundf is unportable - " \
+ "use gnulib module roundf for portability"), \
+ roundf (x))
+#endif
+
+#if @GNULIB_ROUND@
+# if @REPLACE_ROUND@
+# undef round
+# define round rpl_round
+extern double round (double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef round
+# define round(x) \
+ (GL_LINK_WARNING ("round is unportable - " \
+ "use gnulib module round for portability"), \
+ round (x))
+#endif
+
+#if @GNULIB_ROUNDL@
+# if @REPLACE_ROUNDL@
+# undef roundl
+# define roundl rpl_roundl
+extern long double roundl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef roundl
+# define roundl(x) \
+ (GL_LINK_WARNING ("roundl is unportable - " \
+ "use gnulib module roundl for portability"), \
+ roundl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_SINL@
+extern long double sinl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef sinl
+# define sinl(x) \
+ (GL_LINK_WARNING ("sinl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ sinl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_SQRTL@
+extern long double sqrtl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef sqrtl
+# define sqrtl(x) \
+ (GL_LINK_WARNING ("sqrtl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ sqrtl (x))
+#endif
+
+
+#if @GNULIB_MATHL@ || !@HAVE_DECL_TANL@
+extern long double tanl (long double x);
+#endif
+#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK
+# undef tanl
+# define tanl(x) \
+ (GL_LINK_WARNING ("tanl is unportable - " \
+ "use gnulib module mathl for portability"), \
+ tanl (x))
+#endif
+
+
+#if @GNULIB_TRUNCF@
+# if !@HAVE_DECL_TRUNCF@
+# define truncf rpl_truncf
+extern float truncf (float x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef truncf
+# define truncf(x) \
+ (GL_LINK_WARNING ("truncf is unportable - " \
+ "use gnulib module truncf for portability"), \
+ truncf (x))
+#endif
+
+#if @GNULIB_TRUNC@
+# if !@HAVE_DECL_TRUNC@
+# define trunc rpl_trunc
+extern double trunc (double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef trunc
+# define trunc(x) \
+ (GL_LINK_WARNING ("trunc is unportable - " \
+ "use gnulib module trunc for portability"), \
+ trunc (x))
+#endif
+
+#if @GNULIB_TRUNCL@
+# if @REPLACE_TRUNCL@
+# undef truncl
+# define truncl rpl_truncl
+extern long double truncl (long double x);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef truncl
+# define truncl(x) \
+ (GL_LINK_WARNING ("truncl is unportable - " \
+ "use gnulib module truncl for portability"), \
+ truncl (x))
+#endif
+
+
+#if @GNULIB_ISFINITE@
+# if @REPLACE_ISFINITE@
+extern int gl_isfinitef (float x);
+extern int gl_isfinited (double x);
+extern int gl_isfinitel (long double x);
+# undef isfinite
+# define isfinite(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
+ sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
+ gl_isfinitef (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+ /* How to override a macro? */
+#endif
+
+
+#if @GNULIB_ISINF@
+# if @REPLACE_ISINF@
+extern int gl_isinff (float x);
+extern int gl_isinfd (double x);
+extern int gl_isinfl (long double x);
+# undef isinf
+# define isinf(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
+ sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
+ gl_isinff (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+ /* How to override a macro? */
+#endif
+
+
+#if @GNULIB_ISNANF@
+/* Test for NaN for 'float' numbers. */
+# if @HAVE_ISNANF@
+/* The original <math.h> included above provides a declaration of isnan macro
+ or (older) isnanf function. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnanf
+# define isnanf(x) __builtin_isnanf ((float)(x))
+# elif defined isnan
+# undef isnanf
+# define isnanf(x) isnan ((float)(x))
+# endif
+# else
+/* Test whether X is a NaN. */
+# undef isnanf
+# define isnanf rpl_isnanf
+extern int isnanf (float x);
+# endif
+#endif
+
+#if @GNULIB_ISNAND@
+/* Test for NaN for 'double' numbers.
+ This function is a gnulib extension, unlike isnan() which applied only
+ to 'double' numbers earlier but now is a type-generic macro. */
+# if @HAVE_ISNAND@
+/* The original <math.h> included above provides a declaration of isnan macro. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnand
+# define isnand(x) __builtin_isnan ((double)(x))
+# else
+# undef isnand
+# define isnand(x) isnan ((double)(x))
+# endif
+# else
+/* Test whether X is a NaN. */
+# undef isnand
+# define isnand rpl_isnand
+extern int isnand (double x);
+# endif
+#endif
+
+#if @GNULIB_ISNANL@
+/* Test for NaN for 'long double' numbers. */
+# if @HAVE_ISNANL@
+/* The original <math.h> included above provides a declaration of isnan macro or (older) isnanl function. */
+# include <math.h>
+# if __GNUC__ >= 4
+ /* GCC 4.0 and newer provides three built-ins for isnan. */
+# undef isnanl
+# define isnanl(x) __builtin_isnanl ((long double)(x))
+# elif defined isnan
+# undef isnanl
+# define isnanl(x) isnan ((long double)(x))
+# endif
+# else
+/* Test whether X is a NaN. */
+# undef isnanl
+# define isnanl rpl_isnanl
+extern int isnanl (long double x);
+# endif
+#endif
+
+/* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
+#if @GNULIB_ISNAN@
+# if @REPLACE_ISNAN@
+/* We can't just use the isnanf macro (e.g.) as exposed by
+ isnanf.h (e.g.) here, because those may end up being macros
+ that recursively expand back to isnan. So use the gnulib
+ replacements for them directly. */
+# if @HAVE_ISNANF@ && __GNUC__ >= 4
+# define gl_isnan_f(x) __builtin_isnan ((float)(x))
+# else
+extern int rpl_isnanf (float x);
+# define gl_isnan_f(x) rpl_isnanf (x)
+# endif
+# if @HAVE_ISNAND@ && __GNUC__ >= 4
+# define gl_isnan_d(x) __builtin_isnan ((double)(x))
+# else
+extern int rpl_isnand (double x);
+# define gl_isnan_d(x) rpl_isnand (x)
+# endif
+# if @HAVE_ISNANL@ && __GNUC__ >= 4
+# define gl_isnan_l(x) __builtin_isnan ((long double)(x))
+# else
+extern int rpl_isnanl (long double x);
+# define gl_isnan_l(x) rpl_isnanl (x)
+# endif
+# undef isnan
+# define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
+ sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
+ gl_isnan_f (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+ /* How to override a macro? */
+#endif
+
+
+#if @GNULIB_SIGNBIT@
+# if @REPLACE_SIGNBIT_USING_GCC@
+# undef signbit
+ /* GCC 4.0 and newer provides three built-ins for signbit. */
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
+ __builtin_signbitf (x))
+# endif
+# if @REPLACE_SIGNBIT@
+# undef signbit
+extern int gl_signbitf (float arg);
+extern int gl_signbitd (double arg);
+extern int gl_signbitl (long double arg);
+# if __GNUC__ >= 2 && !__STRICT_ANSI__
+# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
+# define gl_signbitf_OPTIMIZED_MACRO
+# define gl_signbitf(arg) \
+ ({ union { float _value; \
+ unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+ } _m; \
+ _m._value = (arg); \
+ (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
+ })
+# endif
+# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
+# define gl_signbitd_OPTIMIZED_MACRO
+# define gl_signbitd(arg) \
+ ({ union { double _value; \
+ unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+ } _m; \
+ _m._value = (arg); \
+ (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
+ })
+# endif
+# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
+# define gl_signbitl_OPTIMIZED_MACRO
+# define gl_signbitl(arg) \
+ ({ union { long double _value; \
+ unsigned int _word[(sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+ } _m; \
+ _m._value = (arg); \
+ (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
+ })
+# endif
+# endif
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
+ gl_signbitf (x))
+# endif
+#elif defined GNULIB_POSIXCHECK
+ /* How to override a macro? */
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_MATH_H */
+#endif /* _GL_MATH_H */
diff --git a/lib/mbchar.c b/lib/mbchar.c
new file mode 100644
index 0000000..0851d8a
--- /dev/null
+++ b/lib/mbchar.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2001, 2006 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 <limits.h>
+
+#include "mbchar.h"
+
+#if IS_BASIC_ASCII
+
+/* Bit table of characters in the ISO C "basic character set". */
+const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] =
+{
+ 0x00001a00, /* '\t' '\v' '\f' */
+ 0xffffffef, /* ' '...'#' '%'...'?' */
+ 0xfffffffe, /* 'A'...'Z' '[' '\\' ']' '^' '_' */
+ 0x7ffffffe /* 'a'...'z' '{' '|' '}' '~' */
+ /* The remaining bits are 0. */
+};
+
+#endif /* IS_BASIC_ASCII */
diff --git a/lib/mbchar.h b/lib/mbchar.h
new file mode 100644
index 0000000..e184dd0
--- /dev/null
+++ b/lib/mbchar.h
@@ -0,0 +1,350 @@
+/* Multibyte character data type.
+ Copyright (C) 2001, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+/* A multibyte character is a short subsequence of a char* string,
+ representing a single wide character.
+
+ We use multibyte characters instead of wide characters because of
+ the following goals:
+ 1) correct multibyte handling, i.e. operate according to the LC_CTYPE
+ locale,
+ 2) ease of maintenance, i.e. the maintainer needs not know all details
+ of the ISO C 99 standard,
+ 3) don't fail grossly if the input is not in the encoding set by the
+ locale, because often different encodings are in use in the same
+ countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
+ 4) fast in the case of ASCII characters,
+ 5) portability, i.e. don't make unportable assumptions about wchar_t.
+
+ Multibyte characters are only accessed through the mb* macros.
+
+ mb_ptr (mbc)
+ return a pointer to the beginning of the multibyte sequence.
+
+ mb_len (mbc)
+ returns the number of bytes occupied by the multibyte sequence.
+ Always > 0.
+
+ mb_iseq (mbc, sc)
+ returns true if mbc is the standard ASCII character sc.
+
+ mb_isnul (mbc)
+ returns true if mbc is the nul character.
+
+ mb_cmp (mbc1, mbc2)
+ returns a positive, zero, or negative value depending on whether mbc1
+ sorts after, same or before mbc2.
+
+ mb_casecmp (mbc1, mbc2)
+ returns a positive, zero, or negative value depending on whether mbc1
+ sorts after, same or before mbc2, modulo upper/lowercase conversion.
+
+ mb_equal (mbc1, mbc2)
+ returns true if mbc1 and mbc2 are equal.
+
+ mb_caseequal (mbc1, mbc2)
+ returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
+
+ mb_isalnum (mbc)
+ returns true if mbc is alphanumeric.
+
+ mb_isalpha (mbc)
+ returns true if mbc is alphabetic.
+
+ mb_isascii(mbc)
+ returns true if mbc is plain ASCII.
+
+ mb_isblank (mbc)
+ returns true if mbc is a blank.
+
+ mb_iscntrl (mbc)
+ returns true if mbc is a control character.
+
+ mb_isdigit (mbc)
+ returns true if mbc is a decimal digit.
+
+ mb_isgraph (mbc)
+ returns true if mbc is a graphic character.
+
+ mb_islower (mbc)
+ returns true if mbc is lowercase.
+
+ mb_isprint (mbc)
+ returns true if mbc is a printable character.
+
+ mb_ispunct (mbc)
+ returns true if mbc is a punctuation character.
+
+ mb_isspace (mbc)
+ returns true if mbc is a space character.
+
+ mb_isupper (mbc)
+ returns true if mbc is uppercase.
+
+ mb_isxdigit (mbc)
+ returns true if mbc is a hexadecimal digit.
+
+ mb_width (mbc)
+ returns the number of columns on the output device occupied by mbc.
+ Always >= 0.
+
+ mb_putc (mbc, stream)
+ outputs mbc on stream, a byte oriented FILE stream opened for output.
+
+ mb_setascii (&mbc, sc)
+ assigns the standard ASCII character sc to mbc.
+
+ mb_copy (&destmbc, &srcmbc)
+ copies srcmbc to destmbc.
+
+ Here are the function prototypes of the macros.
+
+ extern const char * mb_ptr (const mbchar_t mbc);
+ extern size_t mb_len (const mbchar_t mbc);
+ extern bool mb_iseq (const mbchar_t mbc, char sc);
+ extern bool mb_isnul (const mbchar_t mbc);
+ extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2);
+ extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2);
+ extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2);
+ extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2);
+ extern bool mb_isalnum (const mbchar_t mbc);
+ extern bool mb_isalpha (const mbchar_t mbc);
+ extern bool mb_isascii (const mbchar_t mbc);
+ extern bool mb_isblank (const mbchar_t mbc);
+ extern bool mb_iscntrl (const mbchar_t mbc);
+ extern bool mb_isdigit (const mbchar_t mbc);
+ extern bool mb_isgraph (const mbchar_t mbc);
+ extern bool mb_islower (const mbchar_t mbc);
+ extern bool mb_isprint (const mbchar_t mbc);
+ extern bool mb_ispunct (const mbchar_t mbc);
+ extern bool mb_isspace (const mbchar_t mbc);
+ extern bool mb_isupper (const mbchar_t mbc);
+ extern bool mb_isxdigit (const mbchar_t mbc);
+ extern int mb_width (const mbchar_t mbc);
+ extern void mb_putc (const mbchar_t mbc, FILE *stream);
+ extern void mb_setascii (mbchar_t *new, char sc);
+ extern void mb_copy (mbchar_t *new, const mbchar_t *old);
+ */
+
+#ifndef _MBCHAR_H
+#define _MBCHAR_H 1
+
+#include <stdbool.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+ <wchar.h>. */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#define MBCHAR_BUF_SIZE 24
+
+struct mbchar
+{
+ const char *ptr; /* pointer to current character */
+ size_t bytes; /* number of bytes of current character, > 0 */
+ bool wc_valid; /* true if wc is a valid wide character */
+ wchar_t wc; /* if wc_valid: the current character */
+ char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */
+};
+
+/* EOF (not a real character) is represented with bytes = 0 and
+ wc_valid = false. */
+
+typedef struct mbchar mbchar_t;
+
+/* Access the current character. */
+#define mb_ptr(mbc) ((mbc).ptr)
+#define mb_len(mbc) ((mbc).bytes)
+
+/* Comparison of characters. */
+#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc))
+#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0)
+#define mb_cmp(mbc1, mbc2) \
+ ((mbc1).wc_valid \
+ ? ((mbc2).wc_valid \
+ ? (int) (mbc1).wc - (int) (mbc2).wc \
+ : -1) \
+ : ((mbc2).wc_valid \
+ ? 1 \
+ : (mbc1).bytes == (mbc2).bytes \
+ ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \
+ : (mbc1).bytes < (mbc2).bytes \
+ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_casecmp(mbc1, mbc2) \
+ ((mbc1).wc_valid \
+ ? ((mbc2).wc_valid \
+ ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc) \
+ : -1) \
+ : ((mbc2).wc_valid \
+ ? 1 \
+ : (mbc1).bytes == (mbc2).bytes \
+ ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \
+ : (mbc1).bytes < (mbc2).bytes \
+ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_equal(mbc1, mbc2) \
+ ((mbc1).wc_valid && (mbc2).wc_valid \
+ ? (mbc1).wc == (mbc2).wc \
+ : (mbc1).bytes == (mbc2).bytes \
+ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+#define mb_caseequal(mbc1, mbc2) \
+ ((mbc1).wc_valid && (mbc2).wc_valid \
+ ? towlower ((mbc1).wc) == towlower ((mbc2).wc) \
+ : (mbc1).bytes == (mbc2).bytes \
+ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+
+/* <ctype.h>, <wctype.h> classification. */
+#define mb_isascii(mbc) \
+ ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
+#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
+#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
+#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
+#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
+#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
+#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
+#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
+#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
+#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
+#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
+#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
+#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
+
+/* Extra <wchar.h> function. */
+
+/* Unprintable characters appear as a small box of width 1. */
+#define MB_UNPRINTABLE_WIDTH 1
+
+static inline int
+mb_width_aux (wint_t wc)
+{
+ int w = wcwidth (wc);
+ /* For unprintable characters, arbitrarily return 0 for control characters
+ and MB_UNPRINTABLE_WIDTH otherwise. */
+ return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH);
+}
+
+#define mb_width(mbc) \
+ ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
+
+/* Output. */
+#define mb_putc(mbc, stream) fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
+
+/* Assignment. */
+#define mb_setascii(mbc, sc) \
+ ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
+ (mbc)->wc = (mbc)->buf[0] = (sc))
+
+/* Copying a character. */
+static inline void
+mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
+{
+ if (old_mbc->ptr == &old_mbc->buf[0])
+ {
+ memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes);
+ new_mbc->ptr = &new_mbc->buf[0];
+ }
+ else
+ new_mbc->ptr = old_mbc->ptr;
+ new_mbc->bytes = old_mbc->bytes;
+ if ((new_mbc->wc_valid = old_mbc->wc_valid))
+ new_mbc->wc = old_mbc->wc;
+}
+
+
+/* is_basic(c) tests whether the single-byte character c is in the
+ ISO C "basic character set".
+ This is a convenience function, and is in this file only to share code
+ between mbiter_multi.h and mbfile_multi.h. */
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ISO-646, not EBCDIC. */
+# define IS_BASIC_ASCII 1
+
+extern const unsigned int is_basic_table[];
+
+static inline bool
+is_basic (char c)
+{
+ return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
+ & 1;
+}
+
+#else
+
+static inline bool
+is_basic (char 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 '~':
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+#endif
+
+#endif /* _MBCHAR_H */
diff --git a/lib/mbiter.h b/lib/mbiter.h
new file mode 100644
index 0000000..a4782d4
--- /dev/null
+++ b/lib/mbiter.h
@@ -0,0 +1,215 @@
+/* Iterating through multibyte strings: macros for multi-byte encodings.
+ Copyright (C) 2001, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+/* The macros in this file implement forward iteration through a
+ multi-byte string.
+
+ With these macros, an iteration loop that looks like
+
+ char *iter;
+ for (iter = buf; iter < buf + buflen; iter++)
+ {
+ do_something (*iter);
+ }
+
+ becomes
+
+ mbi_iterator_t iter;
+ for (mbi_init (iter, buf, buflen); mbi_avail (iter); mbi_advance (iter))
+ {
+ do_something (mbi_cur_ptr (iter), mb_len (mbi_cur (iter)));
+ }
+
+ The benefit of these macros over plain use of mbrtowc is:
+ - Handling of invalid multibyte sequences is possible without
+ making the code more complicated, while still preserving the
+ invalid multibyte sequences.
+
+ mbi_iterator_t
+ is a type usable for variable declarations.
+
+ mbi_init (iter, startptr, length)
+ initializes the iterator, starting at startptr and crossing length bytes.
+
+ mbi_avail (iter)
+ returns true if there are more multibyte chracters available before
+ the end of string is reached. In this case, mbi_cur (iter) is
+ initialized to the next multibyte chracter.
+
+ mbi_advance (iter)
+ advances the iterator by one multibyte character.
+
+ mbi_cur (iter)
+ returns the current multibyte character, of type mbchar_t. All the
+ macros defined in mbchar.h can be used on it.
+
+ mbi_cur_ptr (iter)
+ return a pointer to the beginning of the current multibyte character.
+
+ mbi_reloc (iter, ptrdiff)
+ relocates iterator when the string is moved by ptrdiff bytes.
+
+ mbi_copy (&destiter, &srciter)
+ copies srciter to destiter.
+
+ Here are the function prototypes of the macros.
+
+ extern void mbi_init (mbi_iterator_t iter,
+ const char *startptr, size_t length);
+ extern bool mbi_avail (mbi_iterator_t iter);
+ extern void mbi_advance (mbi_iterator_t iter);
+ extern mbchar_t mbi_cur (mbi_iterator_t iter);
+ extern const char * mbi_cur_ptr (mbi_iterator_t iter);
+ extern void mbi_reloc (mbi_iterator_t iter, ptrdiff_t ptrdiff);
+ extern void mbi_copy (mbi_iterator_t *new, const mbi_iterator_t *old);
+ */
+
+#ifndef _MBITER_H
+#define _MBITER_H 1
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+ <wchar.h>. */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include "mbchar.h"
+
+struct mbiter_multi
+{
+ const char *limit; /* pointer to end of string */
+ bool in_shift; /* true if next byte may not be interpreted as ASCII */
+ mbstate_t state; /* if in_shift: current shift state */
+ bool next_done; /* true if mbi_avail has already filled the following */
+ struct mbchar cur; /* the current character:
+ const char *cur.ptr pointer to current character
+ The following are only valid after mbi_avail.
+ size_t cur.bytes number of bytes of current character
+ bool cur.wc_valid true if wc is a valid wide character
+ wchar_t cur.wc if wc_valid: the current character
+ */
+};
+
+static inline void
+mbiter_multi_next (struct mbiter_multi *iter)
+{
+ if (iter->next_done)
+ return;
+ if (iter->in_shift)
+ goto with_shift;
+ /* Handle most ASCII characters quickly, without calling mbrtowc(). */
+ if (is_basic (*iter->cur.ptr))
+ {
+ /* These characters are part of the basic character set. ISO C 99
+ guarantees that their wide character code is identical to their
+ char code. */
+ iter->cur.bytes = 1;
+ iter->cur.wc = *iter->cur.ptr;
+ iter->cur.wc_valid = true;
+ }
+ else
+ {
+ assert (mbsinit (&iter->state));
+ iter->in_shift = true;
+ with_shift:
+ iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr,
+ iter->limit - iter->cur.ptr, &iter->state);
+ if (iter->cur.bytes == (size_t) -1)
+ {
+ /* An invalid multibyte sequence was encountered. */
+ iter->cur.bytes = 1;
+ iter->cur.wc_valid = false;
+ /* Whether to set iter->in_shift = false and reset iter->state
+ or not is not very important; the string is bogus anyway. */
+ }
+ else if (iter->cur.bytes == (size_t) -2)
+ {
+ /* An incomplete multibyte character at the end. */
+ iter->cur.bytes = iter->limit - iter->cur.ptr;
+ iter->cur.wc_valid = false;
+ /* Whether to set iter->in_shift = false and reset iter->state
+ or not is not important; the string end is reached anyway. */
+ }
+ else
+ {
+ if (iter->cur.bytes == 0)
+ {
+ /* A null wide character was encountered. */
+ iter->cur.bytes = 1;
+ assert (*iter->cur.ptr == '\0');
+ assert (iter->cur.wc == 0);
+ }
+ iter->cur.wc_valid = true;
+
+ /* When in the initial state, we can go back treating ASCII
+ characters more quickly. */
+ if (mbsinit (&iter->state))
+ iter->in_shift = false;
+ }
+ }
+ iter->next_done = true;
+}
+
+static inline void
+mbiter_multi_reloc (struct mbiter_multi *iter, ptrdiff_t ptrdiff)
+{
+ iter->cur.ptr += ptrdiff;
+ iter->limit += ptrdiff;
+}
+
+static inline void
+mbiter_multi_copy (struct mbiter_multi *new_iter, const struct mbiter_multi *old_iter)
+{
+ new_iter->limit = old_iter->limit;
+ if ((new_iter->in_shift = old_iter->in_shift))
+ memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t));
+ else
+ memset (&new_iter->state, 0, sizeof (mbstate_t));
+ new_iter->next_done = old_iter->next_done;
+ mb_copy (&new_iter->cur, &old_iter->cur);
+}
+
+/* Iteration macros. */
+typedef struct mbiter_multi mbi_iterator_t;
+#define mbi_init(iter, startptr, length) \
+ ((iter).cur.ptr = (startptr), (iter).limit = (iter).cur.ptr + (length), \
+ (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+ (iter).next_done = false)
+#define mbi_avail(iter) \
+ ((iter).cur.ptr < (iter).limit && (mbiter_multi_next (&(iter)), true))
+#define mbi_advance(iter) \
+ ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+
+/* Access to the current character. */
+#define mbi_cur(iter) (iter).cur
+#define mbi_cur_ptr(iter) (iter).cur.ptr
+
+/* Relocation. */
+#define mbi_reloc(iter, ptrdiff) mbiter_multi_reloc (&iter, ptrdiff)
+
+/* Copying an iterator. */
+#define mbi_copy mbiter_multi_copy
+
+#endif /* _MBITER_H */
diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c
new file mode 100644
index 0000000..7b528e8
--- /dev/null
+++ b/lib/mbrtowc.c
@@ -0,0 +1,386 @@
+/* Convert multibyte character to wide character.
+ Copyright (C) 1999-2002, 2005-2009 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 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>
+
+/* Specification. */
+#include <wchar.h>
+
+#if GNULIB_defined_mbstate_t
+/* Implement mbrtowc() on top of mbtowc(). */
+
+# include <errno.h>
+# include <stdlib.h>
+
+# include "localcharset.h"
+# include "streq.h"
+# include "verify.h"
+
+
+verify (sizeof (mbstate_t) >= 4);
+
+static char internal_state[4];
+
+size_t
+mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
+{
+ char *pstate = (char *)ps;
+
+ if (pstate == NULL)
+ pstate = internal_state;
+
+ if (s == NULL)
+ {
+ pwc = NULL;
+ s = "";
+ n = 1;
+ }
+
+ if (n == 0)
+ return (size_t)(-2);
+
+ /* Here n > 0. */
+ {
+ size_t nstate = pstate[0];
+ char buf[4];
+ const char *p;
+ size_t m;
+
+ switch (nstate)
+ {
+ case 0:
+ p = s;
+ m = n;
+ break;
+ case 3:
+ buf[2] = pstate[3];
+ /*FALLTHROUGH*/
+ case 2:
+ buf[1] = pstate[2];
+ /*FALLTHROUGH*/
+ case 1:
+ buf[0] = pstate[1];
+ p = buf;
+ m = nstate;
+ buf[m++] = s[0];
+ if (n >= 2 && m < 4)
+ {
+ buf[m++] = s[1];
+ if (n >= 3 && m < 4)
+ buf[m++] = s[2];
+ }
+ break;
+ default:
+ errno = EINVAL;
+ return (size_t)(-1);
+ }
+
+ /* Here m > 0. */
+
+# if __GLIBC__
+ /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
+ mbtowc (NULL, NULL, 0);
+# endif
+ {
+ int res = mbtowc (pwc, p, m);
+
+ if (res >= 0)
+ {
+ if (pwc != NULL && ((*pwc == 0) != (res == 0)))
+ abort ();
+ if (nstate >= (res > 0 ? res : 1))
+ abort ();
+ res -= nstate;
+ pstate[0] = 0;
+ return res;
+ }
+
+ /* mbtowc does not distinguish between invalid and incomplete multibyte
+ sequences. But mbrtowc needs to make this distinction.
+ There are two possible approaches:
+ - Use iconv() and its return value.
+ - Use built-in knowledge about the possible encodings.
+ Given the low quality of implementation of iconv() on the systems that
+ lack mbrtowc(), we use the second approach.
+ The possible encodings are:
+ - 8-bit encodings,
+ - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS,
+ - UTF-8.
+ Use specialized code for each. */
+ if (m >= 4 || m >= MB_CUR_MAX)
+ goto invalid;
+ /* Here MB_CUR_MAX > 1 and 0 < m < 4. */
+ {
+ const char *encoding = locale_charset ();
+
+ if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+ {
+ /* Cf. unistr/u8-mblen.c. */
+ unsigned char c = (unsigned char) p[0];
+
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (m == 1)
+ goto incomplete;
+ }
+ else if (c < 0xf0)
+ {
+ if (m == 1)
+ goto incomplete;
+ if (m == 2)
+ {
+ unsigned char c2 = (unsigned char) p[1];
+
+ if ((c2 ^ 0x80) < 0x40
+ && (c >= 0xe1 || c2 >= 0xa0)
+ && (c != 0xed || c2 < 0xa0))
+ goto incomplete;
+ }
+ }
+ else if (c <= 0xf4)
+ {
+ if (m == 1)
+ goto incomplete;
+ else /* m == 2 || m == 3 */
+ {
+ unsigned char c2 = (unsigned char) p[1];
+
+ if ((c2 ^ 0x80) < 0x40
+ && (c >= 0xf1 || c2 >= 0x90)
+ && (c < 0xf4 || (c == 0xf4 && c2 < 0x90)))
+ {
+ if (m == 2)
+ goto incomplete;
+ else /* m == 3 */
+ {
+ unsigned char c3 = (unsigned char) p[2];
+
+ if ((c3 ^ 0x80) < 0x40)
+ goto incomplete;
+ }
+ }
+ }
+ }
+ }
+ goto invalid;
+ }
+
+ /* As a reference for this code, you can use the GNU libiconv
+ implementation. Look for uses of the RET_TOOFEW macro. */
+
+ if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
+ {
+ if (m == 1)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f)
+ goto incomplete;
+ }
+ if (m == 2)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if (c == 0x8f)
+ {
+ unsigned char c2 = (unsigned char) p[1];
+
+ if (c2 >= 0xa1 && c2 < 0xff)
+ goto incomplete;
+ }
+ }
+ goto invalid;
+ }
+ if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
+ {
+ if (m == 1)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if (c >= 0xa1 && c < 0xff)
+ goto incomplete;
+ }
+ goto invalid;
+ }
+ if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
+ {
+ if (m == 1)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if ((c >= 0xa1 && c < 0xff) || c == 0x8e)
+ goto incomplete;
+ }
+ else /* m == 2 || m == 3 */
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if (c == 0x8e)
+ goto incomplete;
+ }
+ goto invalid;
+ }
+ if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+ {
+ if (m == 1)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe))
+ goto incomplete;
+ }
+ else /* m == 2 || m == 3 */
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if (c >= 0x90 && c <= 0xe3)
+ {
+ unsigned char c2 = (unsigned char) p[1];
+
+ if (c2 >= 0x30 && c2 <= 0x39)
+ {
+ if (m == 2)
+ goto incomplete;
+ else /* m == 3 */
+ {
+ unsigned char c3 = (unsigned char) p[2];
+
+ if (c3 >= 0x81 && c3 <= 0xfe)
+ goto incomplete;
+ }
+ }
+ }
+ }
+ goto invalid;
+ }
+ if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
+ {
+ if (m == 1)
+ {
+ unsigned char c = (unsigned char) p[0];
+
+ if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)
+ || (c >= 0xf0 && c <= 0xf9))
+ goto incomplete;
+ }
+ goto invalid;
+ }
+
+ /* An unknown multibyte encoding. */
+ goto incomplete;
+ }
+
+ incomplete:
+ {
+ size_t k = nstate;
+ /* Here 0 <= k < m < 4. */
+ pstate[++k] = s[0];
+ if (k < m)
+ {
+ pstate[++k] = s[1];
+ if (k < m)
+ pstate[++k] = s[2];
+ }
+ if (k != m)
+ abort ();
+ }
+ pstate[0] = m;
+ return (size_t)(-2);
+
+ invalid:
+ errno = EILSEQ;
+ /* The conversion state is undefined, says POSIX. */
+ return (size_t)(-1);
+ }
+ }
+}
+
+#else
+/* Override the system's mbrtowc() function. */
+
+# undef mbrtowc
+
+size_t
+rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
+{
+# if MBRTOWC_NULL_ARG_BUG || MBRTOWC_RETVAL_BUG
+ if (s == NULL)
+ {
+ pwc = NULL;
+ s = "";
+ n = 1;
+ }
+# endif
+
+# if MBRTOWC_RETVAL_BUG
+ {
+ static mbstate_t internal_state;
+
+ /* Override mbrtowc's internal state. We can not call mbsinit() on the
+ hidden internal state, but we can call it on our variable. */
+ if (ps == NULL)
+ ps = &internal_state;
+
+ if (!mbsinit (ps))
+ {
+ /* Parse the rest of the multibyte character byte for byte. */
+ size_t count = 0;
+ for (; n > 0; s++, n--)
+ {
+ wchar_t wc;
+ size_t ret = mbrtowc (&wc, s, 1, ps);
+
+ if (ret == (size_t)(-1))
+ return (size_t)(-1);
+ count++;
+ if (ret != (size_t)(-2))
+ {
+ /* The multibyte character has been completed. */
+ if (pwc != NULL)
+ *pwc = wc;
+ return (wc == 0 ? 0 : count);
+ }
+ }
+ return (size_t)(-2);
+ }
+ }
+# endif
+
+# if MBRTOWC_NUL_RETVAL_BUG
+ {
+ wchar_t wc;
+ size_t ret = mbrtowc (&wc, s, n, ps);
+
+ if (ret != (size_t)(-1) && ret != (size_t)(-2))
+ {
+ if (pwc != NULL)
+ *pwc = wc;
+ if (wc == 0)
+ ret = 0;
+ }
+ return ret;
+ }
+# else
+ return mbrtowc (pwc, s, n, ps);
+# endif
+}
+
+#endif
diff --git a/lib/mbsinit.c b/lib/mbsinit.c
new file mode 100644
index 0000000..7495794
--- /dev/null
+++ b/lib/mbsinit.c
@@ -0,0 +1,47 @@
+/* Test for initial conversion state.
+ 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 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>
+
+/* Specification. */
+#include <wchar.h>
+
+#include "verify.h"
+
+/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
+ and wcrtomb(), wcsrtombs().
+ We assume that
+ - sizeof (mbstate_t) >= 4,
+ - only stateless encodings are supported (such as UTF-8 and EUC-JP, but
+ not ISO-2022 variants),
+ - for each encoding, the number of bytes for a wide character is <= 4.
+ (This maximum is attained for UTF-8, GB18030, EUC-TW.)
+ We define the meaning of mbstate_t as follows:
+ - In mb -> wc direction, mbstate_t's first byte contains the number of
+ buffered bytes (in the range 0..3), followed by up to 3 buffered bytes.
+ - In wc -> mb direction, mbstate_t contains no information. In other
+ words, it is always in the initial state. */
+
+verify (sizeof (mbstate_t) >= 4);
+
+int
+mbsinit (const mbstate_t *ps)
+{
+ const char *pstate = (const char *)ps;
+
+ return pstate[0] == 0;
+}
diff --git a/lib/mbsnlen.c b/lib/mbsnlen.c
new file mode 100644
index 0000000..5ed5556
--- /dev/null
+++ b/lib/mbsnlen.c
@@ -0,0 +1,45 @@
+/* Counting the multibyte characters in a string.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include <string.h>
+
+#include <stdlib.h>
+
+#include "mbiter.h"
+
+/* Return the number of multibyte characters in the character string starting
+ at STRING and ending at STRING + LEN. */
+size_t
+mbsnlen (const char *string, size_t len)
+{
+ if (MB_CUR_MAX > 1)
+ {
+ size_t count;
+ mbi_iterator_t iter;
+
+ count = 0;
+ for (mbi_init (iter, string, len); mbi_avail (iter); mbi_advance (iter))
+ count++;
+
+ return count;
+ }
+ else
+ return len;
+}
diff --git a/lib/memchr.c b/lib/memchr.c
new file mode 100644
index 0000000..3ea1d5b
--- /dev/null
+++ b/lib/memchr.c
@@ -0,0 +1,172 @@
+/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2006, 2008
+ Free Software Foundation, Inc.
+
+ Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
+ with help from Dan Sahlin (dan@sics.se) and
+ commentary by Jim Blandy (jimb@ai.mit.edu);
+ adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+ and implemented by Roland McGrath (roland@ai.mit.edu).
+
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+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 any
+later version.
+
+This program is distributed in the hope that 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/>. */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#include <stddef.h>
+
+#if defined _LIBC
+# include <memcopy.h>
+#else
+# define reg_char char
+#endif
+
+#include <limits.h>
+
+#if HAVE_BP_SYM_H || defined _LIBC
+# include <bp-sym.h>
+#else
+# define BP_SYM(sym) sym
+#endif
+
+#undef __memchr
+#ifdef _LIBC
+# undef memchr
+#endif
+
+#ifndef weak_alias
+# define __memchr memchr
+#endif
+
+/* Search no more than N bytes of S for C. */
+void *
+__memchr (void const *s, int c_in, size_t n)
+{
+ /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
+ long instead of a 64-bit uintmax_t tends to give better
+ performance. On 64-bit hardware, unsigned long is generally 64
+ bits already. Change this typedef to experiment with
+ performance. */
+ typedef unsigned long int longword;
+
+ const unsigned char *char_ptr;
+ const longword *longword_ptr;
+ longword repeated_one;
+ longword repeated_c;
+ unsigned reg_char c;
+
+ c = (unsigned char) c_in;
+
+ /* Handle the first few bytes by reading one byte at a time.
+ Do this until CHAR_PTR is aligned on a longword boundary. */
+ for (char_ptr = (const unsigned char *) s;
+ n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+ --n, ++char_ptr)
+ if (*char_ptr == c)
+ return (void *) char_ptr;
+
+ longword_ptr = (const longword *) char_ptr;
+
+ /* All these elucidatory comments refer to 4-byte longwords,
+ but the theory applies equally well to any size longwords. */
+
+ /* Compute auxiliary longword values:
+ repeated_one is a value which has a 1 in every byte.
+ repeated_c has c in every byte. */
+ repeated_one = 0x01010101;
+ repeated_c = c | (c << 8);
+ repeated_c |= repeated_c << 16;
+ if (0xffffffffU < (longword) -1)
+ {
+ repeated_one |= repeated_one << 31 << 1;
+ repeated_c |= repeated_c << 31 << 1;
+ if (8 < sizeof (longword))
+ {
+ size_t i;
+
+ for (i = 64; i < sizeof (longword) * 8; i *= 2)
+ {
+ repeated_one |= repeated_one << i;
+ repeated_c |= repeated_c << i;
+ }
+ }
+ }
+
+ /* Instead of the traditional loop which tests each byte, we will test a
+ longword at a time. The tricky part is testing if *any of the four*
+ bytes in the longword in question are equal to c. We first use an xor
+ with repeated_c. This reduces the task to testing whether *any of the
+ four* bytes in longword1 is zero.
+
+ We compute tmp =
+ ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+ That is, we perform the following operations:
+ 1. Subtract repeated_one.
+ 2. & ~longword1.
+ 3. & a mask consisting of 0x80 in every byte.
+ Consider what happens in each byte:
+ - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+ and step 3 transforms it into 0x80. A carry can also be propagated
+ to more significant bytes.
+ - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+ position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
+ the byte ends in a single bit of value 0 and k bits of value 1.
+ After step 2, the result is just k bits of value 1: 2^k - 1. After
+ step 3, the result is 0. And no carry is produced.
+ So, if longword1 has only non-zero bytes, tmp is zero.
+ Whereas if longword1 has a zero byte, call j the position of the least
+ significant zero byte. Then the result has a zero at positions 0, ...,
+ j-1 and a 0x80 at position j. We cannot predict the result at the more
+ significant bytes (positions j+1..3), but it does not matter since we
+ already have a non-zero bit at position 8*j+7.
+
+ So, the test whether any byte in longword1 is zero is equivalent to
+ testing whether tmp is nonzero. */
+
+ while (n >= sizeof (longword))
+ {
+ longword longword1 = *longword_ptr ^ repeated_c;
+
+ if ((((longword1 - repeated_one) & ~longword1)
+ & (repeated_one << 7)) != 0)
+ break;
+ longword_ptr++;
+ n -= sizeof (longword);
+ }
+
+ char_ptr = (const unsigned char *) longword_ptr;
+
+ /* At this point, we know that either n < sizeof (longword), or one of the
+ sizeof (longword) bytes starting at char_ptr is == c. On little-endian
+ machines, we could determine the first such byte without any further
+ memory accesses, just by looking at the tmp result from the last loop
+ iteration. But this does not work on big-endian machines. Choose code
+ that works in both cases. */
+
+ for (; n > 0; --n, ++char_ptr)
+ {
+ if (*char_ptr == c)
+ return (void *) char_ptr;
+ }
+
+ return NULL;
+}
+#ifdef weak_alias
+weak_alias (__memchr, BP_SYM (memchr))
+#endif
diff --git a/lib/memchr.valgrind b/lib/memchr.valgrind
new file mode 100644
index 0000000..60f247e
--- /dev/null
+++ b/lib/memchr.valgrind
@@ -0,0 +1,14 @@
+# Suppress a valgrind message about use of uninitialized memory in memchr().
+# POSIX states that when the character is found, memchr must not read extra
+# bytes in an overestimated length (for example, where memchr is used to
+# implement strnlen). However, we use a safe word read to provide a speedup.
+{
+ memchr-value4
+ Memcheck:Value4
+ fun:rpl_memchr
+}
+{
+ memchr-value8
+ Memcheck:Value8
+ fun:rpl_memchr
+}
diff --git a/lib/memcmp2.c b/lib/memcmp2.c
new file mode 100644
index 0000000..7f8f604
--- /dev/null
+++ b/lib/memcmp2.c
@@ -0,0 +1,36 @@
+/* Compare two memory areas with possibly different lengths.
+ 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>
+
+/* Specification. */
+#include "memcmp2.h"
+
+#include <string.h>
+
+int
+memcmp2 (const char *s1, size_t n1, const char *s2, size_t n2)
+{
+ int cmp = memcmp (s1, s2, n1 <= n2 ? n1 : n2);
+ if (cmp == 0)
+ {
+ if (n1 < n2)
+ cmp = -1;
+ else if (n1 > n2)
+ cmp = 1;
+ }
+ return cmp;
+}
diff --git a/lib/memcmp2.h b/lib/memcmp2.h
new file mode 100644
index 0000000..f323055
--- /dev/null
+++ b/lib/memcmp2.h
@@ -0,0 +1,39 @@
+/* Compare two memory areas with possibly different lengths.
+ 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/>. */
+
+#ifndef MEMCMP2_H
+#define MEMCMP2_H
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare the memory regions S1 = [s1..s1+N1-1], S2 = [s2..s2+n2-1],
+ lexicographically.
+ This function's result is locale independent, unlike memcoll()'s.
+ Return a negative number if S1 < S2, a positive number if S1 > S2, or
+ 0 if S1 and S2 have the same contents. */
+extern int memcmp2 (const char *s1, size_t n1, const char *s2, size_t n2);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MEMCMP2_H */
diff --git a/lib/memxfrm.c b/lib/memxfrm.c
new file mode 100644
index 0000000..dc6eda1
--- /dev/null
+++ b/lib/memxfrm.c
@@ -0,0 +1,137 @@
+/* Locale dependent memory area transformation for comparison.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "memxfrm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+char *
+memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
+{
+ /* Result accumulator. */
+ char *result;
+ size_t length;
+ size_t allocated;
+
+ char orig_sentinel;
+
+ /* Initial memory allocation. */
+ if (resultbuf != NULL && *lengthp > 0)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ allocated = (n > 0 ? n : 1);
+ result = (char *) malloc (allocated);
+ if (result == NULL)
+ goto out_of_memory_2;
+ }
+ length = 0;
+
+ /* Add sentinel.byte. */
+ orig_sentinel = s[n];
+ s[n] = '\0';
+
+ /* Iterate through S, transforming each NUL terminated segment.
+ Accumulate the resulting transformed segments in result, separated by
+ NULs. */
+ {
+ const char *p_end = s + n + 1;
+ const char *p;
+
+ p = s;
+ for (;;)
+ {
+ /* Search next NUL byte. */
+ const char *q = p + strlen (p);
+
+ for (;;)
+ {
+ size_t k;
+
+ errno = 0;
+ k = strxfrm (result + length, p, allocated - length);
+ if (errno != 0)
+ goto fail;
+ if (k >= allocated - length)
+ {
+ /* Grow the result buffer. */
+ char *new_result;
+
+ allocated = 2 * allocated;
+ if (allocated < 64)
+ allocated = 64;
+ if (result == resultbuf)
+ new_result = (char *) malloc (allocated);
+ else
+ new_result = (char *) realloc (result, allocated);
+ if (new_result == NULL)
+ goto out_of_memory_1;
+ result = new_result;
+ }
+ else
+ {
+ length += k;
+ break;
+ }
+ }
+
+ p = q + 1;
+ if (p == p_end)
+ break;
+ result[length] = '\0';
+ length++;
+ }
+ }
+
+ /* Shrink the allocated memory if possible. */
+ if (result != resultbuf && (length > 0 ? length : 1) < allocated)
+ {
+ char *memory = (char *) realloc (result, length > 0 ? length : 1);
+ if (memory != NULL)
+ result = memory;
+ }
+
+ s[n] = orig_sentinel;
+ *lengthp = length;
+ return result;
+
+ fail:
+ {
+ int saved_errno = errno;
+ if (result != resultbuf)
+ free (result);
+ s[n] = orig_sentinel;
+ errno = saved_errno;
+ return NULL;
+ }
+
+ out_of_memory_1:
+ if (result != resultbuf)
+ free (result);
+ s[n] = orig_sentinel;
+ out_of_memory_2:
+ errno = ENOMEM;
+ return NULL;
+}
diff --git a/lib/memxfrm.h b/lib/memxfrm.h
new file mode 100644
index 0000000..d78900a
--- /dev/null
+++ b/lib/memxfrm.h
@@ -0,0 +1,48 @@
+/* Locale dependent memory area transformation for comparison.
+ 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/>. */
+
+#ifndef MEMXFRM_H
+#define MEMXFRM_H
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Generalization of strxfrm() to strings with embedded NUL bytes. */
+
+/* Transform the memory area [S..S+N-1] to a memory area, in such a way that
+ comparing (S1,N1) and (S2,N2) with memcoll() is equivalent to comparing
+ memxfrm(S1,N1) and memxfrm(S2,N2) with memcmp2().
+ The byte S[N] may be temporarily overwritten by this function, but will be
+ restored before this function returns.
+ The result of this function depends on the LC_COLLATE category of the
+ current locale.
+ If successful: If resultbuf is not NULL and the result fits into *lengthp
+ bytes, it is put in resultbuf, and resultbuf is returned. Otherwise, a
+ freshly allocated string is returned. In both cases, *lengthp is set to the
+ length of the returned string.
+ Upon failure, return NULL, with errno set. */
+extern char * memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MEMXFRM_H */
diff --git a/lib/minmax.h b/lib/minmax.h
new file mode 100644
index 0000000..4cafb2f
--- /dev/null
+++ b/lib/minmax.h
@@ -0,0 +1,60 @@
+/* MIN, MAX macros.
+ Copyright (C) 1995, 1998, 2001, 2003, 2005 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _MINMAX_H
+#define _MINMAX_H
+
+/* Note: MIN, MAX are also defined in <sys/param.h> on some systems
+ (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about
+ MIN, MAX macro redefinitions on some systems; the workaround is to
+ #include this file as the last one among the #include list. */
+
+/* Before we define the following symbols we get the <limits.h> file
+ since otherwise we get redefinitions on some systems if <limits.h> is
+ included after this file. Likewise for <sys/param.h>.
+ If more than one of these system headers define MIN and MAX, pick just
+ one of the headers (because the definitions most likely are the same). */
+#if HAVE_MINMAX_IN_LIMITS_H
+# include <limits.h>
+#elif HAVE_MINMAX_IN_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
+/* Note: MIN and MAX should be used with two arguments of the
+ same type. They might not return the minimum and maximum of their two
+ arguments, if the arguments have different types or have unusual
+ floating-point values. For example, on a typical host with 32-bit 'int',
+ 64-bit 'long long', and 64-bit IEEE 754 'double' types:
+
+ MAX (-1, 2147483648) returns 4294967295.
+ MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0.
+ MAX (NaN, 0.0) returns 0.0.
+ MAX (+0.0, -0.0) returns -0.0.
+
+ and in each case the answer is in some sense bogus. */
+
+/* MAX(a,b) returns the maximum of A and B. */
+#ifndef MAX
+# define MAX(a,b) ((a) > (b) ? (a) : (b))
+#endif
+
+/* MIN(a,b) returns the minimum of A and B. */
+#ifndef MIN
+# define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
+
+#endif /* _MINMAX_H */
diff --git a/lib/printf-args.c b/lib/printf-args.c
new file mode 100644
index 0000000..c31d204
--- /dev/null
+++ b/lib/printf-args.c
@@ -0,0 +1,187 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003, 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ PRINTF_FETCHARGS Name of the function to be defined.
+ STATIC Set to 'static' to declare the function static. */
+
+#ifndef PRINTF_FETCHARGS
+# include <config.h>
+#endif
+
+/* Specification. */
+#ifndef PRINTF_FETCHARGS
+# include "printf-args.h"
+#endif
+
+#ifdef STATIC
+STATIC
+#endif
+int
+PRINTF_FETCHARGS (va_list args, arguments *a)
+{
+ size_t i;
+ argument *ap;
+
+ for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
+ switch (ap->type)
+ {
+ case TYPE_SCHAR:
+ ap->a.a_schar = va_arg (args, /*signed char*/ int);
+ break;
+ case TYPE_UCHAR:
+ ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
+ break;
+ case TYPE_SHORT:
+ ap->a.a_short = va_arg (args, /*short*/ int);
+ break;
+ case TYPE_USHORT:
+ ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
+ break;
+ case TYPE_INT:
+ ap->a.a_int = va_arg (args, int);
+ break;
+ case TYPE_UINT:
+ ap->a.a_uint = va_arg (args, unsigned int);
+ break;
+ case TYPE_LONGINT:
+ ap->a.a_longint = va_arg (args, long int);
+ break;
+ case TYPE_ULONGINT:
+ ap->a.a_ulongint = va_arg (args, unsigned long int);
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ ap->a.a_longlongint = va_arg (args, long long int);
+ break;
+ case TYPE_ULONGLONGINT:
+ ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
+ break;
+#endif
+ case TYPE_DOUBLE:
+ ap->a.a_double = va_arg (args, double);
+ break;
+ case TYPE_LONGDOUBLE:
+ ap->a.a_longdouble = va_arg (args, long double);
+ break;
+ case TYPE_CHAR:
+ ap->a.a_char = va_arg (args, int);
+ break;
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+ /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
+ default argument promotions", this is not the case in mingw32,
+ where wint_t is 'unsigned short'. */
+ ap->a.a_wide_char =
+ (sizeof (wint_t) < sizeof (int)
+ ? va_arg (args, int)
+ : va_arg (args, wint_t));
+ break;
+#endif
+ case TYPE_STRING:
+ ap->a.a_string = va_arg (args, const char *);
+ /* A null pointer is an invalid argument for "%s", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_string == NULL)
+ ap->a.a_string = "(NULL)";
+ break;
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+ ap->a.a_wide_string = va_arg (args, const wchar_t *);
+ /* A null pointer is an invalid argument for "%ls", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_wide_string == NULL)
+ {
+ static const wchar_t wide_null_string[] =
+ {
+ (wchar_t)'(',
+ (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
+ (wchar_t)')',
+ (wchar_t)0
+ };
+ ap->a.a_wide_string = wide_null_string;
+ }
+ break;
+#endif
+ case TYPE_POINTER:
+ ap->a.a_pointer = va_arg (args, void *);
+ break;
+ case TYPE_COUNT_SCHAR_POINTER:
+ ap->a.a_count_schar_pointer = va_arg (args, signed char *);
+ break;
+ case TYPE_COUNT_SHORT_POINTER:
+ ap->a.a_count_short_pointer = va_arg (args, short *);
+ break;
+ case TYPE_COUNT_INT_POINTER:
+ ap->a.a_count_int_pointer = va_arg (args, int *);
+ break;
+ case TYPE_COUNT_LONGINT_POINTER:
+ ap->a.a_count_longint_pointer = va_arg (args, long int *);
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_COUNT_LONGLONGINT_POINTER:
+ ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
+ break;
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ case TYPE_U8_STRING:
+ ap->a.a_u8_string = va_arg (args, const uint8_t *);
+ /* A null pointer is an invalid argument for "%U", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u8_string == NULL)
+ {
+ static const uint8_t u8_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u8_string = u8_null_string;
+ }
+ break;
+ case TYPE_U16_STRING:
+ ap->a.a_u16_string = va_arg (args, const uint16_t *);
+ /* A null pointer is an invalid argument for "%lU", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u16_string == NULL)
+ {
+ static const uint16_t u16_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u16_string = u16_null_string;
+ }
+ break;
+ case TYPE_U32_STRING:
+ ap->a.a_u32_string = va_arg (args, const uint32_t *);
+ /* A null pointer is an invalid argument for "%llU", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u32_string == NULL)
+ {
+ static const uint32_t u32_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u32_string = u32_null_string;
+ }
+ break;
+#endif
+ default:
+ /* Unknown type. */
+ return -1;
+ }
+ return 0;
+}
diff --git a/lib/printf-args.h b/lib/printf-args.h
new file mode 100644
index 0000000..4c68f11
--- /dev/null
+++ b/lib/printf-args.h
@@ -0,0 +1,154 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003, 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _PRINTF_ARGS_H
+#define _PRINTF_ARGS_H
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ PRINTF_FETCHARGS Name of the function to be declared.
+ STATIC Set to 'static' to declare the function static. */
+
+/* Default parameters. */
+#ifndef PRINTF_FETCHARGS
+# define PRINTF_FETCHARGS printf_fetchargs
+#endif
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get wchar_t. */
+#if HAVE_WCHAR_T
+# include <stddef.h>
+#endif
+
+/* Get wint_t. */
+#if HAVE_WINT_T
+# include <wchar.h>
+#endif
+
+/* Get va_list. */
+#include <stdarg.h>
+
+
+/* Argument types */
+typedef enum
+{
+ TYPE_NONE,
+ TYPE_SCHAR,
+ TYPE_UCHAR,
+ TYPE_SHORT,
+ TYPE_USHORT,
+ TYPE_INT,
+ TYPE_UINT,
+ TYPE_LONGINT,
+ TYPE_ULONGINT,
+#if HAVE_LONG_LONG_INT
+ TYPE_LONGLONGINT,
+ TYPE_ULONGLONGINT,
+#endif
+ TYPE_DOUBLE,
+ TYPE_LONGDOUBLE,
+ TYPE_CHAR,
+#if HAVE_WINT_T
+ TYPE_WIDE_CHAR,
+#endif
+ TYPE_STRING,
+#if HAVE_WCHAR_T
+ TYPE_WIDE_STRING,
+#endif
+ TYPE_POINTER,
+ TYPE_COUNT_SCHAR_POINTER,
+ TYPE_COUNT_SHORT_POINTER,
+ TYPE_COUNT_INT_POINTER,
+ TYPE_COUNT_LONGINT_POINTER
+#if HAVE_LONG_LONG_INT
+, TYPE_COUNT_LONGLONGINT_POINTER
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+, TYPE_U8_STRING
+, TYPE_U16_STRING
+, TYPE_U32_STRING
+#endif
+} arg_type;
+
+/* Polymorphic argument */
+typedef struct
+{
+ arg_type type;
+ union
+ {
+ signed char a_schar;
+ unsigned char a_uchar;
+ short a_short;
+ unsigned short a_ushort;
+ int a_int;
+ unsigned int a_uint;
+ long int a_longint;
+ unsigned long int a_ulongint;
+#if HAVE_LONG_LONG_INT
+ long long int a_longlongint;
+ unsigned long long int a_ulonglongint;
+#endif
+ float a_float;
+ double a_double;
+ long double a_longdouble;
+ int a_char;
+#if HAVE_WINT_T
+ wint_t a_wide_char;
+#endif
+ const char* a_string;
+#if HAVE_WCHAR_T
+ const wchar_t* a_wide_string;
+#endif
+ void* a_pointer;
+ signed char * a_count_schar_pointer;
+ short * a_count_short_pointer;
+ int * a_count_int_pointer;
+ long int * a_count_longint_pointer;
+#if HAVE_LONG_LONG_INT
+ long long int * a_count_longlongint_pointer;
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ const uint8_t * a_u8_string;
+ const uint16_t * a_u16_string;
+ const uint32_t * a_u32_string;
+#endif
+ }
+ a;
+}
+argument;
+
+typedef struct
+{
+ size_t count;
+ argument *arg;
+}
+arguments;
+
+
+/* Fetch the arguments, putting them into a. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int PRINTF_FETCHARGS (va_list args, arguments *a);
+
+#endif /* _PRINTF_ARGS_H */
diff --git a/lib/printf-frexp.c b/lib/printf-frexp.c
new file mode 100644
index 0000000..014c853
--- /dev/null
+++ b/lib/printf-frexp.c
@@ -0,0 +1,188 @@
+/* Split a double into fraction and mantissa, for hexadecimal printf.
+ 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 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>
+
+/* Specification. */
+#ifdef USE_LONG_DOUBLE
+# include "printf-frexpl.h"
+#else
+# include "printf-frexp.h"
+#endif
+
+#include <float.h>
+#include <math.h>
+#ifdef USE_LONG_DOUBLE
+# include "fpucw.h"
+#endif
+
+/* This file assumes FLT_RADIX = 2. If FLT_RADIX is a power of 2 greater
+ than 2, or not even a power of 2, some rounding errors can occur, so that
+ then the returned mantissa is only guaranteed to be <= 2.0, not < 2.0. */
+
+#ifdef USE_LONG_DOUBLE
+# define FUNC printf_frexpl
+# define DOUBLE long double
+# define MIN_EXP LDBL_MIN_EXP
+# if HAVE_FREXPL_IN_LIBC && HAVE_LDEXPL_IN_LIBC
+# define USE_FREXP_LDEXP
+# define FREXP frexpl
+# define LDEXP ldexpl
+# endif
+# define DECL_ROUNDING DECL_LONG_DOUBLE_ROUNDING
+# define BEGIN_ROUNDING() BEGIN_LONG_DOUBLE_ROUNDING ()
+# define END_ROUNDING() END_LONG_DOUBLE_ROUNDING ()
+# define L_(literal) literal##L
+#else
+# define FUNC printf_frexp
+# define DOUBLE double
+# define MIN_EXP DBL_MIN_EXP
+# if HAVE_FREXP_IN_LIBC && HAVE_LDEXP_IN_LIBC
+# define USE_FREXP_LDEXP
+# define FREXP frexp
+# define LDEXP ldexp
+# endif
+# define DECL_ROUNDING
+# define BEGIN_ROUNDING()
+# define END_ROUNDING()
+# define L_(literal) literal
+#endif
+
+DOUBLE
+FUNC (DOUBLE x, int *expptr)
+{
+ int exponent;
+ DECL_ROUNDING
+
+ BEGIN_ROUNDING ();
+
+#ifdef USE_FREXP_LDEXP
+ /* frexp and ldexp are usually faster than the loop below. */
+ x = FREXP (x, &exponent);
+
+ x = x + x;
+ exponent -= 1;
+
+ if (exponent < MIN_EXP - 1)
+ {
+ x = LDEXP (x, exponent - (MIN_EXP - 1));
+ exponent = MIN_EXP - 1;
+ }
+#else
+ {
+ /* Since the exponent is an 'int', it fits in 64 bits. Therefore the
+ loops are executed no more than 64 times. */
+ DOUBLE pow2[64]; /* pow2[i] = 2^2^i */
+ DOUBLE powh[64]; /* powh[i] = 2^-2^i */
+ int i;
+
+ exponent = 0;
+ if (x >= L_(1.0))
+ {
+ /* A nonnegative exponent. */
+ {
+ DOUBLE pow2_i; /* = pow2[i] */
+ DOUBLE powh_i; /* = powh[i] */
+
+ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i,
+ x * 2^exponent = argument, x >= 1.0. */
+ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5);
+ ;
+ i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i)
+ {
+ if (x >= pow2_i)
+ {
+ exponent += (1 << i);
+ x *= powh_i;
+ }
+ else
+ break;
+
+ pow2[i] = pow2_i;
+ powh[i] = powh_i;
+ }
+ }
+ /* Here 1.0 <= x < 2^2^i. */
+ }
+ else
+ {
+ /* A negative exponent. */
+ {
+ DOUBLE pow2_i; /* = pow2[i] */
+ DOUBLE powh_i; /* = powh[i] */
+
+ /* Invariants: pow2_i = 2^2^i, powh_i = 2^-2^i,
+ x * 2^exponent = argument, x < 1.0, exponent >= MIN_EXP - 1. */
+ for (i = 0, pow2_i = L_(2.0), powh_i = L_(0.5);
+ ;
+ i++, pow2_i = pow2_i * pow2_i, powh_i = powh_i * powh_i)
+ {
+ if (exponent - (1 << i) < MIN_EXP - 1)
+ break;
+
+ exponent -= (1 << i);
+ x *= pow2_i;
+ if (x >= L_(1.0))
+ break;
+
+ pow2[i] = pow2_i;
+ powh[i] = powh_i;
+ }
+ }
+ /* Here either x < 1.0 and exponent - 2^i < MIN_EXP - 1 <= exponent,
+ or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */
+
+ if (x < L_(1.0))
+ /* Invariants: x * 2^exponent = argument, x < 1.0 and
+ exponent - 2^i < MIN_EXP - 1 <= exponent. */
+ while (i > 0)
+ {
+ i--;
+ if (exponent - (1 << i) >= MIN_EXP - 1)
+ {
+ exponent -= (1 << i);
+ x *= pow2[i];
+ if (x >= L_(1.0))
+ break;
+ }
+ }
+
+ /* Here either x < 1.0 and exponent = MIN_EXP - 1,
+ or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */
+ }
+
+ /* Invariants: x * 2^exponent = argument, and
+ either x < 1.0 and exponent = MIN_EXP - 1,
+ or 1.0 <= x < 2^2^i and exponent >= MIN_EXP - 1. */
+ while (i > 0)
+ {
+ i--;
+ if (x >= pow2[i])
+ {
+ exponent += (1 << i);
+ x *= powh[i];
+ }
+ }
+ /* Here either x < 1.0 and exponent = MIN_EXP - 1,
+ or 1.0 <= x < 2.0 and exponent >= MIN_EXP - 1. */
+ }
+#endif
+
+ END_ROUNDING ();
+
+ *expptr = exponent;
+ return x;
+}
diff --git a/lib/printf-frexp.h b/lib/printf-frexp.h
new file mode 100644
index 0000000..197898d
--- /dev/null
+++ b/lib/printf-frexp.h
@@ -0,0 +1,23 @@
+/* Split a double into fraction and mantissa, for hexadecimal printf.
+ 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 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/>. */
+
+/* Write a finite, positive number x as
+ x = mantissa * 2^exp
+ where exp >= DBL_MIN_EXP - 1,
+ mantissa < 2.0,
+ if x is not a denormalized number then mantissa >= 1.0.
+ Store exp in *EXPPTR and return mantissa. */
+extern double printf_frexp (double x, int *expptr);
diff --git a/lib/printf-frexpl.c b/lib/printf-frexpl.c
new file mode 100644
index 0000000..864b215
--- /dev/null
+++ b/lib/printf-frexpl.c
@@ -0,0 +1,18 @@
+/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
+ 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 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/>. */
+
+#define USE_LONG_DOUBLE
+#include "printf-frexp.c"
diff --git a/lib/printf-frexpl.h b/lib/printf-frexpl.h
new file mode 100644
index 0000000..718093d
--- /dev/null
+++ b/lib/printf-frexpl.h
@@ -0,0 +1,23 @@
+/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
+ 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 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/>. */
+
+/* Write a finite, positive number x as
+ x = mantissa * 2^exp
+ where exp >= LDBL_MIN_EXP - 1,
+ mantissa < 2.0,
+ if x is not a denormalized number then mantissa >= 1.0.
+ Store exp in *EXPPTR and return mantissa. */
+extern long double printf_frexpl (long double x, int *expptr);
diff --git a/lib/printf-parse.c b/lib/printf-parse.c
new file mode 100644
index 0000000..85c454b
--- /dev/null
+++ b/lib/printf-parse.c
@@ -0,0 +1,627 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002-2003, 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* This file can be parametrized with the following macros:
+ CHAR_T The element type of the format string.
+ CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
+ in the format string are ASCII.
+ DIRECTIVE Structure denoting a format directive.
+ Depends on CHAR_T.
+ DIRECTIVES Structure denoting the set of format directives of a
+ format string. Depends on CHAR_T.
+ PRINTF_PARSE Function that parses a format string.
+ Depends on CHAR_T.
+ STATIC Set to 'static' to declare the function static.
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */
+
+#ifndef PRINTF_PARSE
+# include <config.h>
+#endif
+
+/* Specification. */
+#ifndef PRINTF_PARSE
+# include "printf-parse.h"
+#endif
+
+/* Default parameters. */
+#ifndef PRINTF_PARSE
+# define PRINTF_PARSE printf_parse
+# define CHAR_T char
+# define DIRECTIVE char_directive
+# define DIRECTIVES char_directives
+#endif
+
+/* Get size_t, NULL. */
+#include <stddef.h>
+
+/* Get intmax_t. */
+#if defined IN_LIBINTL || defined IN_LIBASPRINTF
+# if HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+# endif
+# if HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+# endif
+#else
+# include <stdint.h>
+#endif
+
+/* malloc(), realloc(), free(). */
+#include <stdlib.h>
+
+/* errno. */
+#include <errno.h>
+
+/* Checked size_t computations. */
+#include "xsize.h"
+
+#if CHAR_T_ONLY_ASCII
+/* c_isascii(). */
+# include "c-ctype.h"
+#endif
+
+#ifdef STATIC
+STATIC
+#endif
+int
+PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
+{
+ const CHAR_T *cp = format; /* pointer into format */
+ size_t arg_posn = 0; /* number of regular arguments consumed */
+ size_t d_allocated; /* allocated elements of d->dir */
+ size_t a_allocated; /* allocated elements of a->arg */
+ size_t max_width_length = 0;
+ size_t max_precision_length = 0;
+
+ d->count = 0;
+ d_allocated = 1;
+ d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
+ if (d->dir == NULL)
+ /* Out of memory. */
+ goto out_of_memory_1;
+
+ a->count = 0;
+ a_allocated = 0;
+ a->arg = NULL;
+
+#define REGISTER_ARG(_index_,_type_) \
+ { \
+ size_t n = (_index_); \
+ if (n >= a_allocated) \
+ { \
+ size_t memory_size; \
+ argument *memory; \
+ \
+ a_allocated = xtimes (a_allocated, 2); \
+ if (a_allocated <= n) \
+ a_allocated = xsum (n, 1); \
+ memory_size = xtimes (a_allocated, sizeof (argument)); \
+ if (size_overflow_p (memory_size)) \
+ /* Overflow, would lead to out of memory. */ \
+ goto out_of_memory; \
+ memory = (argument *) (a->arg \
+ ? realloc (a->arg, memory_size) \
+ : malloc (memory_size)); \
+ if (memory == NULL) \
+ /* Out of memory. */ \
+ goto out_of_memory; \
+ a->arg = memory; \
+ } \
+ while (a->count <= n) \
+ a->arg[a->count++].type = TYPE_NONE; \
+ if (a->arg[n].type == TYPE_NONE) \
+ a->arg[n].type = (_type_); \
+ else if (a->arg[n].type != (_type_)) \
+ /* Ambiguous type for positional argument. */ \
+ goto error; \
+ }
+
+ while (*cp != '\0')
+ {
+ CHAR_T c = *cp++;
+ if (c == '%')
+ {
+ size_t arg_index = ARG_NONE;
+ DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */
+
+ /* Initialize the next directive. */
+ dp->dir_start = cp - 1;
+ dp->flags = 0;
+ dp->width_start = NULL;
+ dp->width_end = NULL;
+ dp->width_arg_index = ARG_NONE;
+ dp->precision_start = NULL;
+ dp->precision_end = NULL;
+ dp->precision_arg_index = ARG_NONE;
+ dp->arg_index = ARG_NONE;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory later. */
+ goto error;
+ arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+
+ /* Read the flags. */
+ for (;;)
+ {
+ if (*cp == '\'')
+ {
+ dp->flags |= FLAG_GROUP;
+ cp++;
+ }
+ else if (*cp == '-')
+ {
+ dp->flags |= FLAG_LEFT;
+ cp++;
+ }
+ else if (*cp == '+')
+ {
+ dp->flags |= FLAG_SHOWSIGN;
+ cp++;
+ }
+ else if (*cp == ' ')
+ {
+ dp->flags |= FLAG_SPACE;
+ cp++;
+ }
+ else if (*cp == '#')
+ {
+ dp->flags |= FLAG_ALT;
+ cp++;
+ }
+ else if (*cp == '0')
+ {
+ dp->flags |= FLAG_ZERO;
+ cp++;
+ }
+ else
+ break;
+ }
+
+ /* Parse the field width. */
+ if (*cp == '*')
+ {
+ dp->width_start = cp;
+ cp++;
+ dp->width_end = cp;
+ if (max_width_length < 1)
+ max_width_length = 1;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory later. */
+ goto error;
+ dp->width_arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+ if (dp->width_arg_index == ARG_NONE)
+ {
+ dp->width_arg_index = arg_posn++;
+ if (dp->width_arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->width_arg_index, TYPE_INT);
+ }
+ else if (*cp >= '0' && *cp <= '9')
+ {
+ size_t width_length;
+
+ dp->width_start = cp;
+ for (; *cp >= '0' && *cp <= '9'; cp++)
+ ;
+ dp->width_end = cp;
+ width_length = dp->width_end - dp->width_start;
+ if (max_width_length < width_length)
+ max_width_length = width_length;
+ }
+
+ /* Parse the precision. */
+ if (*cp == '.')
+ {
+ cp++;
+ if (*cp == '*')
+ {
+ dp->precision_start = cp - 1;
+ cp++;
+ dp->precision_end = cp;
+ if (max_precision_length < 2)
+ max_precision_length = 2;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory
+ later. */
+ goto error;
+ dp->precision_arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+ if (dp->precision_arg_index == ARG_NONE)
+ {
+ dp->precision_arg_index = arg_posn++;
+ if (dp->precision_arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
+ }
+ else
+ {
+ size_t precision_length;
+
+ dp->precision_start = cp - 1;
+ for (; *cp >= '0' && *cp <= '9'; cp++)
+ ;
+ dp->precision_end = cp;
+ precision_length = dp->precision_end - dp->precision_start;
+ if (max_precision_length < precision_length)
+ max_precision_length = precision_length;
+ }
+ }
+
+ {
+ arg_type type;
+
+ /* Parse argument type/size specifiers. */
+ {
+ int flags = 0;
+
+ for (;;)
+ {
+ if (*cp == 'h')
+ {
+ flags |= (1 << (flags & 1));
+ cp++;
+ }
+ else if (*cp == 'L')
+ {
+ flags |= 4;
+ cp++;
+ }
+ else if (*cp == 'l')
+ {
+ flags += 8;
+ cp++;
+ }
+ else if (*cp == 'j')
+ {
+ if (sizeof (intmax_t) > sizeof (long))
+ {
+ /* intmax_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (intmax_t) > sizeof (int))
+ {
+ /* intmax_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+ else if (*cp == 'z' || *cp == 'Z')
+ {
+ /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
+ because the warning facility in gcc-2.95.2 understands
+ only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */
+ if (sizeof (size_t) > sizeof (long))
+ {
+ /* size_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (size_t) > sizeof (int))
+ {
+ /* size_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+ else if (*cp == 't')
+ {
+ if (sizeof (ptrdiff_t) > sizeof (long))
+ {
+ /* ptrdiff_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (ptrdiff_t) > sizeof (int))
+ {
+ /* ptrdiff_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+#if defined __APPLE__ && defined __MACH__
+ /* On MacOS X 10.3, PRIdMAX is defined as "qd".
+ We cannot change it to "lld" because PRIdMAX must also
+ be understood by the system's printf routines. */
+ else if (*cp == 'q')
+ {
+ if (64 / 8 > sizeof (long))
+ {
+ /* int64_t = long long */
+ flags += 16;
+ }
+ else
+ {
+ /* int64_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* On native Win32, PRIdMAX is defined as "I64d".
+ We cannot change it to "lld" because PRIdMAX must also
+ be understood by the system's printf routines. */
+ else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
+ {
+ if (64 / 8 > sizeof (long))
+ {
+ /* __int64 = long long */
+ flags += 16;
+ }
+ else
+ {
+ /* __int64 = long */
+ flags += 8;
+ }
+ cp += 3;
+ }
+#endif
+ else
+ break;
+ }
+
+ /* Read the conversion character. */
+ c = *cp++;
+ switch (c)
+ {
+ case 'd': case 'i':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_LONGLONGINT;
+ else
+#endif
+ /* If 'long long' exists and is the same as 'long', we parse
+ "lld" into TYPE_LONGINT. */
+ if (flags >= 8)
+ type = TYPE_LONGINT;
+ else if (flags & 2)
+ type = TYPE_SCHAR;
+ else if (flags & 1)
+ type = TYPE_SHORT;
+ else
+ type = TYPE_INT;
+ break;
+ case 'o': case 'u': case 'x': case 'X':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_ULONGLONGINT;
+ else
+#endif
+ /* If 'unsigned long long' exists and is the same as
+ 'unsigned long', we parse "llu" into TYPE_ULONGINT. */
+ if (flags >= 8)
+ type = TYPE_ULONGINT;
+ else if (flags & 2)
+ type = TYPE_UCHAR;
+ else if (flags & 1)
+ type = TYPE_USHORT;
+ else
+ type = TYPE_UINT;
+ break;
+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+ case 'a': case 'A':
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_LONGDOUBLE;
+ else
+ type = TYPE_DOUBLE;
+ break;
+ case 'c':
+ if (flags >= 8)
+#if HAVE_WINT_T
+ type = TYPE_WIDE_CHAR;
+#else
+ goto error;
+#endif
+ else
+ type = TYPE_CHAR;
+ break;
+#if HAVE_WINT_T
+ case 'C':
+ type = TYPE_WIDE_CHAR;
+ c = 'c';
+ break;
+#endif
+ case 's':
+ if (flags >= 8)
+#if HAVE_WCHAR_T
+ type = TYPE_WIDE_STRING;
+#else
+ goto error;
+#endif
+ else
+ type = TYPE_STRING;
+ break;
+#if HAVE_WCHAR_T
+ case 'S':
+ type = TYPE_WIDE_STRING;
+ c = 's';
+ break;
+#endif
+ case 'p':
+ type = TYPE_POINTER;
+ break;
+ case 'n':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_COUNT_LONGLONGINT_POINTER;
+ else
+#endif
+ /* If 'long long' exists and is the same as 'long', we parse
+ "lln" into TYPE_COUNT_LONGINT_POINTER. */
+ if (flags >= 8)
+ type = TYPE_COUNT_LONGINT_POINTER;
+ else if (flags & 2)
+ type = TYPE_COUNT_SCHAR_POINTER;
+ else if (flags & 1)
+ type = TYPE_COUNT_SHORT_POINTER;
+ else
+ type = TYPE_COUNT_INT_POINTER;
+ break;
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ case 'U':
+ if (flags >= 16)
+ type = TYPE_U32_STRING;
+ else if (flags >= 8)
+ type = TYPE_U16_STRING;
+ else
+ type = TYPE_U8_STRING;
+ break;
+#endif
+ case '%':
+ type = TYPE_NONE;
+ break;
+ default:
+ /* Unknown conversion character. */
+ goto error;
+ }
+ }
+
+ if (type != TYPE_NONE)
+ {
+ dp->arg_index = arg_index;
+ if (dp->arg_index == ARG_NONE)
+ {
+ dp->arg_index = arg_posn++;
+ if (dp->arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->arg_index, type);
+ }
+ dp->conversion = c;
+ dp->dir_end = cp;
+ }
+
+ d->count++;
+ if (d->count >= d_allocated)
+ {
+ size_t memory_size;
+ DIRECTIVE *memory;
+
+ d_allocated = xtimes (d_allocated, 2);
+ memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
+ if (size_overflow_p (memory_size))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ memory = (DIRECTIVE *) realloc (d->dir, memory_size);
+ if (memory == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ d->dir = memory;
+ }
+ }
+#if CHAR_T_ONLY_ASCII
+ else if (!c_isascii (c))
+ {
+ /* Non-ASCII character. Not supported. */
+ goto error;
+ }
+#endif
+ }
+ d->dir[d->count].dir_start = cp;
+
+ d->max_width_length = max_width_length;
+ d->max_precision_length = max_precision_length;
+ return 0;
+
+error:
+ if (a->arg)
+ free (a->arg);
+ if (d->dir)
+ free (d->dir);
+ errno = EINVAL;
+ return -1;
+
+out_of_memory:
+ if (a->arg)
+ free (a->arg);
+ if (d->dir)
+ free (d->dir);
+out_of_memory_1:
+ errno = ENOMEM;
+ return -1;
+}
+
+#undef PRINTF_PARSE
+#undef DIRECTIVES
+#undef DIRECTIVE
+#undef CHAR_T_ONLY_ASCII
+#undef CHAR_T
diff --git a/lib/printf-parse.h b/lib/printf-parse.h
new file mode 100644
index 0000000..0a496cb
--- /dev/null
+++ b/lib/printf-parse.h
@@ -0,0 +1,179 @@
+/* Parse printf format string.
+ Copyright (C) 1999, 2002-2003, 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _PRINTF_PARSE_H
+#define _PRINTF_PARSE_H
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ STATIC Set to 'static' to declare the function static. */
+
+#include "printf-args.h"
+
+
+/* Flags */
+#define FLAG_GROUP 1 /* ' flag */
+#define FLAG_LEFT 2 /* - flag */
+#define FLAG_SHOWSIGN 4 /* + flag */
+#define FLAG_SPACE 8 /* space flag */
+#define FLAG_ALT 16 /* # flag */
+#define FLAG_ZERO 32
+
+/* arg_index value indicating that no argument is consumed. */
+#define ARG_NONE (~(size_t)0)
+
+/* xxx_directive: A parsed directive.
+ xxx_directives: A parsed format string. */
+
+/* A parsed directive. */
+typedef struct
+{
+ const char* dir_start;
+ const char* dir_end;
+ int flags;
+ const char* width_start;
+ const char* width_end;
+ size_t width_arg_index;
+ const char* precision_start;
+ const char* precision_end;
+ size_t precision_arg_index;
+ char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+char_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ char_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+char_directives;
+
+#if ENABLE_UNISTDIO
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint8_t* dir_start;
+ const uint8_t* dir_end;
+ int flags;
+ const uint8_t* width_start;
+ const uint8_t* width_end;
+ size_t width_arg_index;
+ const uint8_t* precision_start;
+ const uint8_t* precision_end;
+ size_t precision_arg_index;
+ uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u8_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u8_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+u8_directives;
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint16_t* dir_start;
+ const uint16_t* dir_end;
+ int flags;
+ const uint16_t* width_start;
+ const uint16_t* width_end;
+ size_t width_arg_index;
+ const uint16_t* precision_start;
+ const uint16_t* precision_end;
+ size_t precision_arg_index;
+ uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u16_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u16_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+u16_directives;
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint32_t* dir_start;
+ const uint32_t* dir_end;
+ int flags;
+ const uint32_t* width_start;
+ const uint32_t* width_end;
+ size_t width_arg_index;
+ const uint32_t* precision_start;
+ const uint32_t* precision_end;
+ size_t precision_arg_index;
+ uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u32_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u32_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+u32_directives;
+
+#endif
+
+
+/* Parses the format string. Fills in the number N of directives, and fills
+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
+ to the end of the format string. Also fills in the arg_type fields of the
+ arguments and the needed count of arguments. */
+#if ENABLE_UNISTDIO
+extern int
+ ulc_printf_parse (const char *format, char_directives *d, arguments *a);
+extern int
+ u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a);
+extern int
+ u16_printf_parse (const uint16_t *format, u16_directives *d,
+ arguments *a);
+extern int
+ u32_printf_parse (const uint32_t *format, u32_directives *d,
+ arguments *a);
+#else
+# ifdef STATIC
+STATIC
+# else
+extern
+# endif
+int printf_parse (const char *format, char_directives *d, arguments *a);
+#endif
+
+#endif /* _PRINTF_PARSE_H */
diff --git a/lib/ref-add.sin b/lib/ref-add.sin
new file mode 100644
index 0000000..3acdcc8
--- /dev/null
+++ b/lib/ref-add.sin
@@ -0,0 +1,30 @@
+# Add this package to a list of references stored in a text file.
+#
+# Copyright (C) 2000 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 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU 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, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ ta
+ :a
+ s/ @PACKAGE@ / @PACKAGE@ /
+ tb
+ s/ $/ @PACKAGE@ /
+ :b
+ s/^/# Packages using this file:/
+}
diff --git a/lib/ref-del.sin b/lib/ref-del.sin
new file mode 100644
index 0000000..7923d06
--- /dev/null
+++ b/lib/ref-del.sin
@@ -0,0 +1,25 @@
+# Remove this package from a list of references stored in a text file.
+#
+# Copyright (C) 2000 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 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU 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, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ s/ @PACKAGE@ / /
+ s/^/# Packages using this file:/
+}
diff --git a/lib/relocatable.c b/lib/relocatable.c
new file mode 100644
index 0000000..09ff8c9
--- /dev/null
+++ b/lib/relocatable.c
@@ -0,0 +1,493 @@
+/* Provide relocatable packages.
+ Copyright (C) 2003-2006, 2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library 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. */
+
+
+/* Tell glibc's <stdio.h> to provide a prototype for getline().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+
+/* Specification. */
+#include "relocatable.h"
+
+#if ENABLE_RELOCATABLE
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef NO_XMALLOC
+# define xmalloc malloc
+#else
+# include "xalloc.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#if DEPENDS_ON_LIBCHARSET
+# include <libcharset.h>
+#endif
+#if DEPENDS_ON_LIBICONV && HAVE_ICONV
+# include <iconv.h>
+#endif
+#if DEPENDS_ON_LIBINTL && ENABLE_NLS
+# include <libintl.h>
+#endif
+
+/* Faked cheap 'bool'. */
+#undef bool
+#undef false
+#undef true
+#define bool int
+#define false 0
+#define true 1
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+# define FILE_SYSTEM_PREFIX_LEN(P) 0
+#endif
+
+/* Original installation prefix. */
+static char *orig_prefix;
+static size_t orig_prefix_len;
+/* Current installation prefix. */
+static char *curr_prefix;
+static size_t curr_prefix_len;
+/* These prefixes do not end in a slash. Anything that will be concatenated
+ to them must start with a slash. */
+
+/* Sets the original and the current installation prefix of this module.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+static void
+set_this_relocation_prefix (const char *orig_prefix_arg,
+ const char *curr_prefix_arg)
+{
+ if (orig_prefix_arg != NULL && curr_prefix_arg != NULL
+ /* Optimization: if orig_prefix and curr_prefix are equal, the
+ relocation is a nop. */
+ && strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
+ {
+ /* Duplicate the argument strings. */
+ char *memory;
+
+ orig_prefix_len = strlen (orig_prefix_arg);
+ curr_prefix_len = strlen (curr_prefix_arg);
+ memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
+#ifdef NO_XMALLOC
+ if (memory != NULL)
+#endif
+ {
+ memcpy (memory, orig_prefix_arg, orig_prefix_len + 1);
+ orig_prefix = memory;
+ memory += orig_prefix_len + 1;
+ memcpy (memory, curr_prefix_arg, curr_prefix_len + 1);
+ curr_prefix = memory;
+ return;
+ }
+ }
+ orig_prefix = NULL;
+ curr_prefix = NULL;
+ /* Don't worry about wasted memory here - this function is usually only
+ called once. */
+}
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+void
+set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
+{
+ set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+
+ /* Now notify all dependent libraries. */
+#if DEPENDS_ON_LIBCHARSET
+ libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109
+ libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix
+ libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+}
+
+#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
+
+/* Convenience function:
+ Computes the current installation prefix, based on the original
+ installation prefix, the original installation directory of a particular
+ file, and the current pathname of this file.
+ Returns it, freshly allocated. Returns NULL upon failure. */
+#ifdef IN_LIBRARY
+#define compute_curr_prefix local_compute_curr_prefix
+static
+#endif
+char *
+compute_curr_prefix (const char *orig_installprefix,
+ const char *orig_installdir,
+ const char *curr_pathname)
+{
+ char *curr_installdir;
+ const char *rel_installdir;
+
+ if (curr_pathname == NULL)
+ return NULL;
+
+ /* Determine the relative installation directory, relative to the prefix.
+ This is simply the difference between orig_installprefix and
+ orig_installdir. */
+ if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix))
+ != 0)
+ /* Shouldn't happen - nothing should be installed outside $(prefix). */
+ return NULL;
+ rel_installdir = orig_installdir + strlen (orig_installprefix);
+
+ /* Determine the current installation directory. */
+ {
+ const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname);
+ const char *p = curr_pathname + strlen (curr_pathname);
+ char *q;
+
+ while (p > p_base)
+ {
+ p--;
+ if (ISSLASH (*p))
+ break;
+ }
+
+ q = (char *) xmalloc (p - curr_pathname + 1);
+#ifdef NO_XMALLOC
+ if (q == NULL)
+ return NULL;
+#endif
+ memcpy (q, curr_pathname, p - curr_pathname);
+ q[p - curr_pathname] = '\0';
+ curr_installdir = q;
+ }
+
+ /* Compute the current installation prefix by removing the trailing
+ rel_installdir from it. */
+ {
+ const char *rp = rel_installdir + strlen (rel_installdir);
+ const char *cp = curr_installdir + strlen (curr_installdir);
+ const char *cp_base =
+ curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir);
+
+ while (rp > rel_installdir && cp > cp_base)
+ {
+ bool same = false;
+ const char *rpi = rp;
+ const char *cpi = cp;
+
+ while (rpi > rel_installdir && cpi > cp_base)
+ {
+ rpi--;
+ cpi--;
+ if (ISSLASH (*rpi) || ISSLASH (*cpi))
+ {
+ if (ISSLASH (*rpi) && ISSLASH (*cpi))
+ same = true;
+ break;
+ }
+ /* Do case-insensitive comparison if the filesystem is always or
+ often case-insensitive. It's better to accept the comparison
+ if the difference is only in case, rather than to fail. */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS - case insignificant filesystem */
+ if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
+ != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
+ break;
+#else
+ if (*rpi != *cpi)
+ break;
+#endif
+ }
+ if (!same)
+ break;
+ /* The last pathname component was the same. opi and cpi now point
+ to the slash before it. */
+ rp = rpi;
+ cp = cpi;
+ }
+
+ if (rp > rel_installdir)
+ {
+ /* Unexpected: The curr_installdir does not end with rel_installdir. */
+ free (curr_installdir);
+ return NULL;
+ }
+
+ {
+ size_t curr_prefix_len = cp - curr_installdir;
+ char *curr_prefix;
+
+ curr_prefix = (char *) xmalloc (curr_prefix_len + 1);
+#ifdef NO_XMALLOC
+ if (curr_prefix == NULL)
+ {
+ free (curr_installdir);
+ return NULL;
+ }
+#endif
+ memcpy (curr_prefix, curr_installdir, curr_prefix_len);
+ curr_prefix[curr_prefix_len] = '\0';
+
+ free (curr_installdir);
+
+ return curr_prefix;
+ }
+ }
+}
+
+#endif /* !IN_LIBRARY || PIC */
+
+#if defined PIC && defined INSTALLDIR
+
+/* Full pathname of shared library, or NULL. */
+static char *shared_library_fullname;
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+
+/* Determine the full pathname of the shared library when it is loaded. */
+
+BOOL WINAPI
+DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
+{
+ (void) reserved;
+
+ if (event == DLL_PROCESS_ATTACH)
+ {
+ /* The DLL is being loaded into an application's address range. */
+ static char location[MAX_PATH];
+
+ if (!GetModuleFileName (module_handle, location, sizeof (location)))
+ /* Shouldn't happen. */
+ return FALSE;
+
+ if (!IS_PATH_WITH_DIR (location))
+ /* Shouldn't happen. */
+ return FALSE;
+
+ {
+#if defined __CYGWIN__
+ /* On Cygwin, we need to convert paths coming from Win32 system calls
+ to the Unix-like slashified notation. */
+ static char location_as_posix_path[2 * MAX_PATH];
+ /* There's no error return defined for cygwin_conv_to_posix_path.
+ See cygwin-api/func-cygwin-conv-to-posix-path.html.
+ Does it overflow the buffer of expected size MAX_PATH or does it
+ truncate the path? I don't know. Let's catch both. */
+ cygwin_conv_to_posix_path (location, location_as_posix_path);
+ location_as_posix_path[MAX_PATH - 1] = '\0';
+ if (strlen (location_as_posix_path) >= MAX_PATH - 1)
+ /* A sign of buffer overflow or path truncation. */
+ return FALSE;
+ shared_library_fullname = strdup (location_as_posix_path);
+#else
+ shared_library_fullname = strdup (location);
+#endif
+ }
+ }
+
+ return TRUE;
+}
+
+#else /* Unix except Cygwin */
+
+static void
+find_shared_library_fullname ()
+{
+#if defined __linux__ && __GLIBC__ >= 2
+ /* Linux has /proc/self/maps. glibc 2 has the getline() function. */
+ FILE *fp;
+
+ /* Open the current process' maps file. It describes one VMA per line. */
+ fp = fopen ("/proc/self/maps", "r");
+ if (fp)
+ {
+ unsigned long address = (unsigned long) &find_shared_library_fullname;
+ for (;;)
+ {
+ unsigned long start, end;
+ int c;
+
+ if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
+ break;
+ if (address >= start && address <= end - 1)
+ {
+ /* Found it. Now see if this line contains a filename. */
+ while (c = getc (fp), c != EOF && c != '\n' && c != '/')
+ continue;
+ if (c == '/')
+ {
+ size_t size;
+ int len;
+
+ ungetc (c, fp);
+ shared_library_fullname = NULL; size = 0;
+ len = getline (&shared_library_fullname, &size, fp);
+ if (len >= 0)
+ {
+ /* Success: filled shared_library_fullname. */
+ if (len > 0 && shared_library_fullname[len - 1] == '\n')
+ shared_library_fullname[len - 1] = '\0';
+ }
+ }
+ break;
+ }
+ while (c = getc (fp), c != EOF && c != '\n')
+ continue;
+ }
+ fclose (fp);
+ }
+#endif
+}
+
+#endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */
+
+/* Return the full pathname of the current shared library.
+ Return NULL if unknown.
+ Guaranteed to work only on Linux, Cygwin and Woe32. */
+static char *
+get_shared_library_fullname ()
+{
+#if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
+ static bool tried_find_shared_library_fullname;
+ if (!tried_find_shared_library_fullname)
+ {
+ find_shared_library_fullname ();
+ tried_find_shared_library_fullname = true;
+ }
+#endif
+ return shared_library_fullname;
+}
+
+#endif /* PIC */
+
+/* Returns the pathname, relocated according to the current installation
+ directory.
+ The returned string is either PATHNAME unmodified or a freshly allocated
+ string that you can free with free() after casting it to 'char *'. */
+const char *
+relocate (const char *pathname)
+{
+#if defined PIC && defined INSTALLDIR
+ static int initialized;
+
+ /* Initialization code for a shared library. */
+ if (!initialized)
+ {
+ /* At this point, orig_prefix and curr_prefix likely have already been
+ set through the main program's set_program_name_and_installdir
+ function. This is sufficient in the case that the library has
+ initially been installed in the same orig_prefix. But we can do
+ better, to also cover the cases that 1. it has been installed
+ in a different prefix before being moved to orig_prefix and (later)
+ to curr_prefix, 2. unlike the program, it has not moved away from
+ orig_prefix. */
+ const char *orig_installprefix = INSTALLPREFIX;
+ const char *orig_installdir = INSTALLDIR;
+ char *curr_prefix_better;
+
+ curr_prefix_better =
+ compute_curr_prefix (orig_installprefix, orig_installdir,
+ get_shared_library_fullname ());
+
+ set_relocation_prefix (orig_installprefix,
+ curr_prefix_better != NULL
+ ? curr_prefix_better
+ : curr_prefix);
+
+ if (curr_prefix_better != NULL)
+ free (curr_prefix_better);
+
+ initialized = 1;
+ }
+#endif
+
+ /* Note: It is not necessary to perform case insensitive comparison here,
+ even for DOS-like filesystems, because the pathname argument was
+ typically created from the same Makefile variable as orig_prefix came
+ from. */
+ if (orig_prefix != NULL && curr_prefix != NULL
+ && strncmp (pathname, orig_prefix, orig_prefix_len) == 0)
+ {
+ if (pathname[orig_prefix_len] == '\0')
+ {
+ /* pathname equals orig_prefix. */
+ char *result = (char *) xmalloc (strlen (curr_prefix) + 1);
+
+#ifdef NO_XMALLOC
+ if (result != NULL)
+#endif
+ {
+ strcpy (result, curr_prefix);
+ return result;
+ }
+ }
+ else if (ISSLASH (pathname[orig_prefix_len]))
+ {
+ /* pathname starts with orig_prefix. */
+ const char *pathname_tail = &pathname[orig_prefix_len];
+ char *result =
+ (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1);
+
+#ifdef NO_XMALLOC
+ if (result != NULL)
+#endif
+ {
+ memcpy (result, curr_prefix, curr_prefix_len);
+ strcpy (result + curr_prefix_len, pathname_tail);
+ return result;
+ }
+ }
+ }
+ /* Nothing to relocate. */
+ return pathname;
+}
+
+#endif
diff --git a/lib/relocatable.h b/lib/relocatable.h
new file mode 100644
index 0000000..5dfd710
--- /dev/null
+++ b/lib/relocatable.h
@@ -0,0 +1,83 @@
+/* Provide relocatable packages.
+ Copyright (C) 2003, 2005, 2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library 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 _RELOCATABLE_H
+#define _RELOCATABLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* This can be enabled through the configure --enable-relocatable option. */
+#if ENABLE_RELOCATABLE
+
+/* When building a DLL, we must export some functions. Note that because
+ this is a private .h file, we don't need to use __declspec(dllimport)
+ in any case. */
+#if HAVE_VISIBILITY && BUILDING_DLL
+# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default")))
+#elif defined _MSC_VER && BUILDING_DLL
+# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport)
+#else
+# define RELOCATABLE_DLL_EXPORTED
+#endif
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+extern RELOCATABLE_DLL_EXPORTED void
+ set_relocation_prefix (const char *orig_prefix,
+ const char *curr_prefix);
+
+/* Returns the pathname, relocated according to the current installation
+ directory.
+ The returned string is either PATHNAME unmodified or a freshly allocated
+ string that you can free with free() after casting it to 'char *'. */
+extern const char * relocate (const char *pathname);
+
+/* Memory management: relocate() potentially allocates memory, because it has
+ to construct a fresh pathname. If this is a problem because your program
+ calls relocate() frequently, think about caching the result. Or free the
+ return value if it was different from the argument pathname. */
+
+/* Convenience function:
+ Computes the current installation prefix, based on the original
+ installation prefix, the original installation directory of a particular
+ file, and the current pathname of this file.
+ Returns it, freshly allocated. Returns NULL upon failure. */
+extern char * compute_curr_prefix (const char *orig_installprefix,
+ const char *orig_installdir,
+ const char *curr_pathname);
+
+#else
+
+/* By default, we use the hardwired pathnames. */
+#define relocate(pathname) (pathname)
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RELOCATABLE_H */
diff --git a/lib/signbitd.c b/lib/signbitd.c
new file mode 100644
index 0000000..8d082b6
--- /dev/null
+++ b/lib/signbitd.c
@@ -0,0 +1,64 @@
+/* signbit() macro: Determine the sign bit of a floating-point 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 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>
+
+/* Specification. */
+#include <math.h>
+
+#include <string.h>
+#include "isnand-nolibm.h"
+#include "float+.h"
+
+#ifdef gl_signbitd_OPTIMIZED_MACRO
+# undef gl_signbitd
+#endif
+
+int
+gl_signbitd (double arg)
+{
+#if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT
+ /* The use of a union to extract the bits of the representation of a
+ 'long double' is safe in practice, despite of the "aliasing rules" of
+ C99, because the GCC docs say
+ "Even with '-fstrict-aliasing', type-punning is allowed, provided the
+ memory is accessed through the union type."
+ and similarly for other compilers. */
+# define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ union { double value; unsigned int word[NWORDS]; } m;
+ m.value = arg;
+ return (m.word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;
+#elif HAVE_COPYSIGN_IN_LIBC
+ return copysign (1.0, arg) < 0;
+#else
+ /* This does not do the right thing for NaN, but this is irrelevant for
+ most use cases. */
+ if (isnand (arg))
+ return 0;
+ if (arg < 0.0)
+ return 1;
+ else if (arg == 0.0)
+ {
+ /* Distinguish 0.0 and -0.0. */
+ static double plus_zero = 0.0;
+ double arg_mem = arg;
+ return (memcmp (&plus_zero, &arg_mem, SIZEOF_DBL) != 0);
+ }
+ else
+ return 0;
+#endif
+}
diff --git a/lib/signbitf.c b/lib/signbitf.c
new file mode 100644
index 0000000..e75f38c
--- /dev/null
+++ b/lib/signbitf.c
@@ -0,0 +1,64 @@
+/* signbit() macro: Determine the sign bit of a floating-point 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 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>
+
+/* Specification. */
+#include <math.h>
+
+#include <string.h>
+#include "isnanf-nolibm.h"
+#include "float+.h"
+
+#ifdef gl_signbitf_OPTIMIZED_MACRO
+# undef gl_signbitf
+#endif
+
+int
+gl_signbitf (float arg)
+{
+#if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT
+ /* The use of a union to extract the bits of the representation of a
+ 'long double' is safe in practice, despite of the "aliasing rules" of
+ C99, because the GCC docs say
+ "Even with '-fstrict-aliasing', type-punning is allowed, provided the
+ memory is accessed through the union type."
+ and similarly for other compilers. */
+# define NWORDS \
+ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ union { float value; unsigned int word[NWORDS]; } m;
+ m.value = arg;
+ return (m.word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;
+#elif HAVE_COPYSIGNF_IN_LIBC
+ return copysignf (1.0f, arg) < 0;
+#else
+ /* This does not do the right thing for NaN, but this is irrelevant for
+ most use cases. */
+ if (isnanf (arg))
+ return 0;
+ if (arg < 0.0f)
+ return 1;
+ else if (arg == 0.0f)
+ {
+ /* Distinguish 0.0f and -0.0f. */
+ static float plus_zero = 0.0f;
+ float arg_mem = arg;
+ return (memcmp (&plus_zero, &arg_mem, SIZEOF_FLT) != 0);
+ }
+ else
+ return 0;
+#endif
+}
diff --git a/lib/signbitl.c b/lib/signbitl.c
new file mode 100644
index 0000000..465937f
--- /dev/null
+++ b/lib/signbitl.c
@@ -0,0 +1,64 @@
+/* signbit() macro: Determine the sign bit of a floating-point 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 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>
+
+/* Specification. */
+#include <math.h>
+
+#include <string.h>
+#include "isnanl-nolibm.h"
+#include "float+.h"
+
+#ifdef gl_signbitl_OPTIMIZED_MACRO
+# undef gl_signbitl
+#endif
+
+int
+gl_signbitl (long double arg)
+{
+#if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT
+ /* The use of a union to extract the bits of the representation of a
+ 'long double' is safe in practice, despite of the "aliasing rules" of
+ C99, because the GCC docs say
+ "Even with '-fstrict-aliasing', type-punning is allowed, provided the
+ memory is accessed through the union type."
+ and similarly for other compilers. */
+# define NWORDS \
+ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ union { long double value; unsigned int word[NWORDS]; } m;
+ m.value = arg;
+ return (m.word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;
+#elif HAVE_COPYSIGNL_IN_LIBC
+ return copysignl (1.0L, arg) < 0;
+#else
+ /* This does not do the right thing for NaN, but this is irrelevant for
+ most use cases. */
+ if (isnanl (arg))
+ return 0;
+ if (arg < 0.0L)
+ return 1;
+ else if (arg == 0.0L)
+ {
+ /* Distinguish 0.0L and -0.0L. */
+ static long double plus_zero = 0.0L;
+ long double arg_mem = arg;
+ return (memcmp (&plus_zero, &arg_mem, SIZEOF_LDBL) != 0);
+ }
+ else
+ return 0;
+#endif
+}
diff --git a/lib/size_max.h b/lib/size_max.h
new file mode 100644
index 0000000..419d73a
--- /dev/null
+++ b/lib/size_max.h
@@ -0,0 +1,31 @@
+/* size_max.h -- declare SIZE_MAX through system headers
+ Copyright (C) 2005-2006 Free Software Foundation, Inc.
+ Written by Simon Josefsson.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef GNULIB_SIZE_MAX_H
+#define GNULIB_SIZE_MAX_H
+
+/* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */
+# include <limits.h>
+/* Get SIZE_MAX declaration on systems like glibc 2. */
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+/* On systems where these include files don't define it, SIZE_MAX is defined
+ in config.h. */
+
+#endif /* GNULIB_SIZE_MAX_H */
diff --git a/lib/stdbool.in.h b/lib/stdbool.in.h
new file mode 100644
index 0000000..3390484
--- /dev/null
+++ b/lib/stdbool.in.h
@@ -0,0 +1,119 @@
+/* Copyright (C) 2001-2003, 2006-2008 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_STDBOOL_H
+#define _GL_STDBOOL_H
+
+/* ISO C 99 <stdbool.h> for platforms that lack it. */
+
+/* Usage suggestions:
+
+ Programs that use <stdbool.h> should be aware of some limitations
+ and standards compliance issues.
+
+ Standards compliance:
+
+ - <stdbool.h> must be #included before 'bool', 'false', 'true'
+ can be used.
+
+ - You cannot assume that sizeof (bool) == 1.
+
+ - Programs should not undefine the macros bool, true, and false,
+ as C99 lists that as an "obsolescent feature".
+
+ Limitations of this substitute, when used in a C89 environment:
+
+ - <stdbool.h> must be #included before the '_Bool' type can be used.
+
+ - You cannot assume that _Bool is a typedef; it might be a macro.
+
+ - Bit-fields of type 'bool' are not supported. Portable code
+ should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+ - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+ performed in such a way that every nonzero value gets converted
+ to 'true', and zero gets converted to 'false'. This doesn't work
+ with this substitute. With this substitute, only the values 0 and 1
+ give the expected result when converted to _Bool' or 'bool'.
+
+ Also, it is suggested that programs use 'bool' rather than '_Bool';
+ this isn't required, but 'bool' is more common. */
+
+
+/* 7.16. Boolean type and values */
+
+/* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same
+ definitions below, but temporarily we have to #undef them. */
+#if defined __BEOS__ && !defined __HAIKU__
+# include <OS.h> /* defines bool but not _Bool */
+# undef false
+# undef true
+#endif
+
+/* For the sake of symbolic names in gdb, we define true and false as
+ enum constants, not only as macros.
+ It is tempting to write
+ typedef enum { false = 0, true = 1 } _Bool;
+ so that gdb prints values of type 'bool' symbolically. But if we do
+ this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+ (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+ (see ISO C 99 6.3.1.1.(2)). So we add a negative value to the
+ enum; this ensures that '_Bool' promotes to 'int'. */
+#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+ /* A compiler known to have 'bool'. */
+ /* If the compiler already has both 'bool' and '_Bool', we can assume they
+ are the same types. */
+# if !@HAVE__BOOL@
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+ /* If @HAVE__BOOL@:
+ Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+ the built-in _Bool type is used. See
+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ Similar bugs are likely with other compilers as well; this file
+ wouldn't be used if <stdbool.h> was working.
+ So we override the _Bool type.
+ If !@HAVE__BOOL@:
+ Need to define _Bool ourselves. As 'signed char' or as an enum type?
+ Use of a typedef, with SunPRO C, leads to a stupid
+ "warning: _Bool is a keyword in ISO C99".
+ Use of an enum type, with IRIX cc, leads to a stupid
+ "warning(1185): enumerated type mixed with another type".
+ Even the existence of an enum type, without a typedef,
+ "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+ The only benefit of the enum, debuggability, is not important
+ with these compilers. So use 'signed char' and no enum. */
+# define _Bool signed char
+# else
+ /* With this compiler, trust the _Bool type if the compiler has it. */
+# if !@HAVE__BOOL@
+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+# endif
+# endif
+#endif
+#define bool _Bool
+
+/* The other macros must be usable in preprocessor directives. */
+#define false 0
+#define true 1
+#define __bool_true_false_are_defined 1
+
+#endif /* _GL_STDBOOL_H */
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
new file mode 100644
index 0000000..11a2117
--- /dev/null
+++ b/lib/stdint.in.h
@@ -0,0 +1,567 @@
+/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
+ Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+ This file is part of gnulib.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/*
+ * ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+#ifndef _GL_STDINT_H
+
+/* When including a system file that in turn includes <inttypes.h>,
+ use the system <inttypes.h>, not our substitute. This avoids
+ problems with (for example) VMS, whose <sys/bitypes.h> includes
+ <inttypes.h>. */
+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Get those types that are already defined in other system include
+ files, so that we can "#define int8_t signed char" below without
+ worrying about a later system include file containing a "typedef
+ signed char int8_t;" that will get messed up by our macro. Our
+ macros should all be consistent with the system versions, except
+ for the "fast" types and macros, which we recommend against using
+ in public interfaces due to compiler differences. */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+ /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+ with "This header file is to be used only for c99 mode compilations"
+ diagnostics. */
+# define __STDINT_H__
+# endif
+ /* Other systems may have an incomplete or buggy <stdint.h>.
+ Include it before <inttypes.h>, since any "#include <stdint.h>"
+ in <inttypes.h> would reinclude us, skipping our contents because
+ _GL_STDINT_H is defined.
+ The include_next requires a split double-inclusion guard. */
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#endif
+
+#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _GL_STDINT_H
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+ IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+ AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+ MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+ relies on the system <stdint.h> definitions, so include
+ <sys/types.h> after @NEXT_STDINT_H@. */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+ int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+ <inttypes.h> also defines intptr_t and uintptr_t. */
+# include <inttypes.h>
+#elif @HAVE_SYS_INTTYPES_H@
+ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+ the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+ int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
+ included by <sys/types.h>. */
+# include <sys/bitypes.h>
+#endif
+
+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Minimum and maximum values for a integer type under the usual assumption.
+ Return an unspecified value if BITS == 0, adding a check to pacify
+ picky compilers. */
+
+#define _STDINT_MIN(signed, bits, zero) \
+ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+
+#define _STDINT_MAX(signed, bits, zero) \
+ ((signed) \
+ ? ~ _STDINT_MIN (signed, bits, zero) \
+ : /* The expression for the unsigned case. The subtraction of (signed) \
+ is a nop in the unsigned case and avoids "signed integer overflow" \
+ warnings in the signed case. */ \
+ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. */
+
+#undef int8_t
+#undef uint8_t
+typedef signed char gl_int8_t;
+typedef unsigned char gl_uint8_t;
+#define int8_t gl_int8_t
+#define uint8_t gl_uint8_t
+
+#undef int16_t
+#undef uint16_t
+typedef short int gl_int16_t;
+typedef unsigned short int gl_uint16_t;
+#define int16_t gl_int16_t
+#define uint16_t gl_uint16_t
+
+#undef int32_t
+#undef uint32_t
+typedef int gl_int32_t;
+typedef unsigned int gl_uint32_t;
+#define int32_t gl_int32_t
+#define uint32_t gl_uint32_t
+
+/* Do not undefine int64_t if gnulib is not being used with 64-bit
+ types, since otherwise it breaks platforms like Tandem/NSK. */
+#if LONG_MAX >> 31 >> 31 == 1
+# undef int64_t
+typedef long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#elif defined _MSC_VER
+# undef int64_t
+typedef __int64 gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#elif @HAVE_LONG_LONG_INT@
+# undef int64_t
+typedef long long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#endif
+
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# undef uint64_t
+typedef unsigned long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#elif defined _MSC_VER
+# undef uint64_t
+typedef unsigned __int64 gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# undef uint64_t
+typedef unsigned long long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#endif
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+/* 7.18.1.2. Minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+ are the same as the corresponding N_t types. */
+
+#undef int_least8_t
+#undef uint_least8_t
+#undef int_least16_t
+#undef uint_least16_t
+#undef int_least32_t
+#undef uint_least32_t
+#undef int_least64_t
+#undef uint_least64_t
+#define int_least8_t int8_t
+#define uint_least8_t uint8_t
+#define int_least16_t int16_t
+#define uint_least16_t uint16_t
+#define int_least32_t int32_t
+#define uint_least32_t uint32_t
+#ifdef GL_INT64_T
+# define int_least64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_least64_t uint64_t
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+
+/* Note: Other <stdint.h> substitutes may define these types differently.
+ It is not recommended to use these types in public header files. */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+ are taken from the same list of types. Assume that 'long int'
+ is fast enough for all narrower integers. */
+
+#undef int_fast8_t
+#undef uint_fast8_t
+#undef int_fast16_t
+#undef uint_fast16_t
+#undef int_fast32_t
+#undef uint_fast32_t
+#undef int_fast64_t
+#undef uint_fast64_t
+typedef long int gl_int_fast8_t;
+typedef unsigned long int gl_uint_fast8_t;
+typedef long int gl_int_fast16_t;
+typedef unsigned long int gl_uint_fast16_t;
+typedef long int gl_int_fast32_t;
+typedef unsigned long int gl_uint_fast32_t;
+#define int_fast8_t gl_int_fast8_t
+#define uint_fast8_t gl_uint_fast8_t
+#define int_fast16_t gl_int_fast16_t
+#define uint_fast16_t gl_uint_fast16_t
+#define int_fast32_t gl_int_fast32_t
+#define uint_fast32_t gl_uint_fast32_t
+#ifdef GL_INT64_T
+# define int_fast64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_fast64_t uint64_t
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+
+#undef intptr_t
+#undef uintptr_t
+typedef long int gl_intptr_t;
+typedef unsigned long int gl_uintptr_t;
+#define intptr_t gl_intptr_t
+#define uintptr_t gl_uintptr_t
+
+/* 7.18.1.5. Greatest-width integer types */
+
+/* Note: These types are compiler dependent. It may be unwise to use them in
+ public header files. */
+
+#undef intmax_t
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+typedef long long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+#elif defined GL_INT64_T
+# define intmax_t int64_t
+#else
+typedef long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+#endif
+
+#undef uintmax_t
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+typedef unsigned long long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+#elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+#else
+typedef unsigned long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+#endif
+
+/* Verify that intmax_t and uintmax_t have the same size. Too much code
+ breaks if this is not the case. If this check fails, the reason is likely
+ to be found in the autoconf macros. */
+typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
+
+/* 7.18.2. Limits of specified-width integer types */
+
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* 7.18.2.1. Limits of exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. */
+
+#undef INT8_MIN
+#undef INT8_MAX
+#undef UINT8_MAX
+#define INT8_MIN (~ INT8_MAX)
+#define INT8_MAX 127
+#define UINT8_MAX 255
+
+#undef INT16_MIN
+#undef INT16_MAX
+#undef UINT16_MAX
+#define INT16_MIN (~ INT16_MAX)
+#define INT16_MAX 32767
+#define UINT16_MAX 65535
+
+#undef INT32_MIN
+#undef INT32_MAX
+#undef UINT32_MAX
+#define INT32_MIN (~ INT32_MAX)
+#define INT32_MAX 2147483647
+#define UINT32_MAX 4294967295U
+
+#undef INT64_MIN
+#undef INT64_MAX
+#ifdef GL_INT64_T
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+ evaluates the latter incorrectly in preprocessor expressions. */
+# define INT64_MIN (- INTMAX_C (1) << 63)
+# define INT64_MAX INTMAX_C (9223372036854775807)
+#endif
+
+#undef UINT64_MAX
+#ifdef GL_UINT64_T
+# define UINT64_MAX UINTMAX_C (18446744073709551615)
+#endif
+
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+ are the same as the corresponding N_t types. */
+
+#undef INT_LEAST8_MIN
+#undef INT_LEAST8_MAX
+#undef UINT_LEAST8_MAX
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST8_MAX INT8_MAX
+#define UINT_LEAST8_MAX UINT8_MAX
+
+#undef INT_LEAST16_MIN
+#undef INT_LEAST16_MAX
+#undef UINT_LEAST16_MAX
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST16_MAX INT16_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+
+#undef INT_LEAST32_MIN
+#undef INT_LEAST32_MAX
+#undef UINT_LEAST32_MAX
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST32_MAX INT32_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+
+#undef INT_LEAST64_MIN
+#undef INT_LEAST64_MAX
+#ifdef GL_INT64_T
+# define INT_LEAST64_MIN INT64_MIN
+# define INT_LEAST64_MAX INT64_MAX
+#endif
+
+#undef UINT_LEAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_LEAST64_MAX UINT64_MAX
+#endif
+
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+ are taken from the same list of types. */
+
+#undef INT_FAST8_MIN
+#undef INT_FAST8_MAX
+#undef UINT_FAST8_MAX
+#define INT_FAST8_MIN LONG_MIN
+#define INT_FAST8_MAX LONG_MAX
+#define UINT_FAST8_MAX ULONG_MAX
+
+#undef INT_FAST16_MIN
+#undef INT_FAST16_MAX
+#undef UINT_FAST16_MAX
+#define INT_FAST16_MIN LONG_MIN
+#define INT_FAST16_MAX LONG_MAX
+#define UINT_FAST16_MAX ULONG_MAX
+
+#undef INT_FAST32_MIN
+#undef INT_FAST32_MAX
+#undef UINT_FAST32_MAX
+#define INT_FAST32_MIN LONG_MIN
+#define INT_FAST32_MAX LONG_MAX
+#define UINT_FAST32_MAX ULONG_MAX
+
+#undef INT_FAST64_MIN
+#undef INT_FAST64_MAX
+#ifdef GL_INT64_T
+# define INT_FAST64_MIN INT64_MIN
+# define INT_FAST64_MAX INT64_MAX
+#endif
+
+#undef UINT_FAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_FAST64_MAX UINT64_MAX
+#endif
+
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+#undef INTPTR_MIN
+#undef INTPTR_MAX
+#undef UINTPTR_MAX
+#define INTPTR_MIN LONG_MIN
+#define INTPTR_MAX LONG_MAX
+#define UINTPTR_MAX ULONG_MAX
+
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+#undef INTMAX_MIN
+#undef INTMAX_MAX
+#ifdef INT64_MAX
+# define INTMAX_MIN INT64_MIN
+# define INTMAX_MAX INT64_MAX
+#else
+# define INTMAX_MIN INT32_MIN
+# define INTMAX_MAX INT32_MAX
+#endif
+
+#undef UINTMAX_MAX
+#ifdef UINT64_MAX
+# define UINTMAX_MAX UINT64_MAX
+#else
+# define UINTMAX_MAX UINT32_MAX
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+/* ptrdiff_t limits */
+#undef PTRDIFF_MIN
+#undef PTRDIFF_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# ifdef _LP64
+# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l)
+# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l)
+# else
+# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0)
+# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0)
+# endif
+#else
+# define PTRDIFF_MIN \
+ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+# define PTRDIFF_MAX \
+ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+#endif
+
+/* sig_atomic_t limits */
+#undef SIG_ATOMIC_MIN
+#undef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+ 0@SIG_ATOMIC_T_SUFFIX@)
+#define SIG_ATOMIC_MAX \
+ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+ 0@SIG_ATOMIC_T_SUFFIX@)
+
+
+/* size_t limit */
+#undef SIZE_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# ifdef _LP64
+# define SIZE_MAX _STDINT_MAX (0, 64, 0ul)
+# else
+# define SIZE_MAX _STDINT_MAX (0, 32, 0ul)
+# endif
+#else
+# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+#endif
+
+/* wchar_t limits */
+/* Get WCHAR_MIN, WCHAR_MAX.
+ This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
+ includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
+ <stdint.h> and assumes its types are already defined. */
+#if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+# include <wchar.h>
+# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+#endif
+#undef WCHAR_MIN
+#undef WCHAR_MAX
+#define WCHAR_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+#define WCHAR_MAX \
+ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+
+/* wint_t limits */
+#undef WINT_MIN
+#undef WINT_MAX
+#define WINT_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+#define WINT_MAX \
+ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+
+#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
+
+/* 7.18.4. Macros for integer constants */
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* 7.18.4.1. Macros for minimum-width integer constants */
+/* According to ISO C 99 Technical Corrigendum 1 */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */
+
+#undef INT8_C
+#undef UINT8_C
+#define INT8_C(x) x
+#define UINT8_C(x) x
+
+#undef INT16_C
+#undef UINT16_C
+#define INT16_C(x) x
+#define UINT16_C(x) x
+
+#undef INT32_C
+#undef UINT32_C
+#define INT32_C(x) x
+#define UINT32_C(x) x ## U
+
+#undef INT64_C
+#undef UINT64_C
+#if LONG_MAX >> 31 >> 31 == 1
+# define INT64_C(x) x##L
+#elif defined _MSC_VER
+# define INT64_C(x) x##i64
+#elif @HAVE_LONG_LONG_INT@
+# define INT64_C(x) x##LL
+#endif
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# define UINT64_C(x) x##UL
+#elif defined _MSC_VER
+# define UINT64_C(x) x##ui64
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# define UINT64_C(x) x##ULL
+#endif
+
+/* 7.18.4.2. Macros for greatest-width integer constants */
+
+#undef INTMAX_C
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x) x##LL
+#elif defined GL_INT64_T
+# define INTMAX_C(x) INT64_C(x)
+#else
+# define INTMAX_C(x) x##L
+#endif
+
+#undef UINTMAX_C
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x) x##ULL
+#elif defined GL_UINT64_T
+# define UINTMAX_C(x) UINT64_C(x)
+#else
+# define UINTMAX_C(x) x##UL
+#endif
+
+#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
+
+#endif /* _GL_STDINT_H */
+#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
diff --git a/lib/stdint.mini.h b/lib/stdint.mini.h
new file mode 100644
index 0000000..d6f2cb0
--- /dev/null
+++ b/lib/stdint.mini.h
@@ -0,0 +1,128 @@
+/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
+ Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+ This file is part of gnulib.
+
+ 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/*
+ * Subset of ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+#ifndef _UNISTRING_STDINT_H
+
+/* When including a system file that in turn includes <inttypes.h>,
+ use the system <inttypes.h>, not our substitute. This avoids
+ problems with (for example) VMS, whose <sys/bitypes.h> includes
+ <inttypes.h>. */
+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Get those types that are already defined in other system include
+ files, so that we can "#define int8_t signed char" below without
+ worrying about a later system include file containing a "typedef
+ signed char int8_t;" that will get messed up by our macro. Our
+ macros should all be consistent with the system versions, except
+ for the "fast" types and macros, which we recommend against using
+ in public interfaces due to compiler differences. */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+ /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+ with "This header file is to be used only for c99 mode compilations"
+ diagnostics. */
+# define __STDINT_H__
+# endif
+ /* Other systems may have an incomplete or buggy <stdint.h>.
+ Include it before <inttypes.h>, since any "#include <stdint.h>"
+ in <inttypes.h> would reinclude us, skipping our contents because
+ _UNISTRING_STDINT_H is defined.
+ The include_next requires a split double-inclusion guard. */
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#endif
+
+#if ! defined _UNISTRING_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _UNISTRING_STDINT_H
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+ IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+ AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+ MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+ relies on the system <stdint.h> definitions, so include
+ <sys/types.h> after @NEXT_STDINT_H@. */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+ int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+ <inttypes.h> also defines intptr_t and uintptr_t. */
+# include <inttypes.h>
+#elif @HAVE_SYS_INTTYPES_H@
+ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+ the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+ int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
+ included by <sys/types.h>. */
+# include <sys/bitypes.h>
+#endif
+
+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. */
+
+#undef int8_t
+#undef uint8_t
+typedef signed char unistring_int8_t;
+typedef unsigned char unistring_uint8_t;
+#define int8_t unistring_int8_t
+#define uint8_t unistring_uint8_t
+
+#undef int16_t
+#undef uint16_t
+typedef short int unistring_int16_t;
+typedef unsigned short int unistring_uint16_t;
+#define int16_t unistring_int16_t
+#define uint16_t unistring_uint16_t
+
+#undef int32_t
+#undef uint32_t
+typedef int unistring_int32_t;
+typedef unsigned int unistring_uint32_t;
+#define int32_t unistring_int32_t
+#define uint32_t unistring_uint32_t
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+#endif /* _UNISTRING_STDINT_H */
+#endif /* !defined _UNISTRING_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
new file mode 100644
index 0000000..162d90d
--- /dev/null
+++ b/lib/stdio-impl.h
@@ -0,0 +1,94 @@
+/* Implementation details of FILE streams.
+ 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 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/>. */
+
+/* Many stdio implementations have the same logic and therefore can share
+ the same implementation of stdio extension API, except that some fields
+ have different naming conventions, or their access requires some casts. */
+
+
+/* BSD stdio derived implementations. */
+
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+
+# if defined __DragonFly__ /* DragonFly */
+ /* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */
+# define fp_ ((struct { struct __FILE_public pub; \
+ struct { unsigned char *_base; int _size; } _bf; \
+ void *cookie; \
+ void *_close; \
+ void *_read; \
+ void *_seek; \
+ void *_write; \
+ struct { unsigned char *_base; int _size; } _ub; \
+ int _ur; \
+ unsigned char _ubuf[3]; \
+ unsigned char _nbuf[1]; \
+ struct { unsigned char *_base; int _size; } _lb; \
+ int _blksize; \
+ fpos_t _offset; \
+ /* More fields, not relevant here. */ \
+ } *) fp)
+ /* See <http://www.dragonflybsd.org/cvsweb/src/include/stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */
+# define _p pub._p
+# define _flags pub._flags
+# define _r pub._r
+# define _w pub._w
+# else
+# define fp_ fp
+# endif
+
+# if defined __NetBSD__ || defined __OpenBSD__ /* NetBSD, OpenBSD */
+ /* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
+ and <http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */
+ struct __sfileext
+ {
+ struct __sbuf _ub; /* ungetc buffer */
+ /* More fields, not relevant here. */
+ };
+# define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
+# else /* FreeBSD, DragonFly, MacOS X, Cygwin */
+# define fp_ub fp_->_ub
+# endif
+
+# define HASUB(fp) (fp_ub._base != NULL)
+
+#endif
+
+
+/* SystemV derived implementations. */
+
+#if defined _IOERR
+
+# if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */
+# define fp_ ((struct { unsigned char *_ptr; \
+ unsigned char *_base; \
+ unsigned char *_end; \
+ long _cnt; \
+ int _file; \
+ unsigned int _flag; \
+ } *) fp)
+# else
+# define fp_ fp
+# endif
+
+# if defined _SCO_DS /* OpenServer */
+# define _cnt __cnt
+# define _ptr __ptr
+# define _base __base
+# define _flag __flag
+# endif
+
+#endif
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
new file mode 100644
index 0000000..23325b5
--- /dev/null
+++ b/lib/stdlib.in.h
@@ -0,0 +1,383 @@
+/* A GNU-like <stdlib.h>.
+
+ Copyright (C) 1995, 2001-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 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/>. */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+#if defined __need_malloc_and_calloc
+/* Special invocation convention inside glibc header files. */
+
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _GL_STDLIB_H
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#ifndef _GL_STDLIB_H
+#define _GL_STDLIB_H
+
+
+/* Solaris declares getloadavg() in <sys/loadavg.h>. */
+#if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@
+# include <sys/loadavg.h>
+#endif
+
+/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
+ from <stdlib.h> if _REENTRANT is defined. Include it always. */
+#if @HAVE_RANDOM_H@
+# include <random.h>
+#endif
+
+#if @GNULIB_RANDOM_R@ || !@HAVE_STRUCT_RANDOM_DATA@
+# include <stdint.h>
+#endif
+
+#if !@HAVE_STRUCT_RANDOM_DATA@
+struct random_data
+{
+ int32_t *fptr; /* Front pointer. */
+ int32_t *rptr; /* Rear pointer. */
+ int32_t *state; /* Array of state values. */
+ int rand_type; /* Type of random number generator. */
+ int rand_deg; /* Degree of random number generator. */
+ int rand_sep; /* Distance between front and rear. */
+ int32_t *end_ptr; /* Pointer behind state table. */
+};
+#endif
+
+/* The definition of GL_LINK_WARNING is copied here. */
+
+
+/* Some systems do not define EXIT_*, despite otherwise supporting C89. */
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
+ with proper operation of xargs. */
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#elif EXIT_FAILURE != 1
+# undef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_MALLOC_POSIX@
+# if !@HAVE_MALLOC_POSIX@
+# undef malloc
+# define malloc rpl_malloc
+extern void * malloc (size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef malloc
+# define malloc(s) \
+ (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
+ "use gnulib module malloc-posix for portability"), \
+ malloc (s))
+#endif
+
+
+#if @GNULIB_REALLOC_POSIX@
+# if !@HAVE_REALLOC_POSIX@
+# undef realloc
+# define realloc rpl_realloc
+extern void * realloc (void *ptr, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef realloc
+# define realloc(p,s) \
+ (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
+ "use gnulib module realloc-posix for portability"), \
+ realloc (p, s))
+#endif
+
+
+#if @GNULIB_CALLOC_POSIX@
+# if !@HAVE_CALLOC_POSIX@
+# undef calloc
+# define calloc rpl_calloc
+extern void * calloc (size_t nmemb, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef calloc
+# define calloc(n,s) \
+ (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
+ "use gnulib module calloc-posix for portability"), \
+ calloc (n, s))
+#endif
+
+
+#if @GNULIB_ATOLL@
+# if !@HAVE_ATOLL@
+/* Parse a signed decimal integer.
+ Returns the value of the integer. Errors are not detected. */
+extern long long atoll (const char *string);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef atoll
+# define atoll(s) \
+ (GL_LINK_WARNING ("atoll is unportable - " \
+ "use gnulib module atoll for portability"), \
+ atoll (s))
+#endif
+
+
+#if @GNULIB_GETLOADAVG@
+# if !@HAVE_DECL_GETLOADAVG@
+/* Store max(NELEM,3) load average numbers in LOADAVG[].
+ The three numbers are the load average of the last 1 minute, the last 5
+ minutes, and the last 15 minutes, respectively.
+ LOADAVG is an array of NELEM numbers. */
+extern int getloadavg (double loadavg[], int nelem);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getloadavg
+# define getloadavg(l,n) \
+ (GL_LINK_WARNING ("getloadavg is not portable - " \
+ "use gnulib module getloadavg for portability"), \
+ getloadavg (l, n))
+#endif
+
+
+#if @GNULIB_GETSUBOPT@
+/* Assuming *OPTIONP is a comma separated list of elements of the form
+ "token" or "token=value", getsubopt parses the first of these elements.
+ If the first element refers to a "token" that is member of the given
+ NULL-terminated array of tokens:
+ - It replaces the comma with a NUL byte, updates *OPTIONP to point past
+ the first option and the comma, sets *VALUEP to the value of the
+ element (or NULL if it doesn't contain an "=" sign),
+ - It returns the index of the "token" in the given array of tokens.
+ Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
+ For more details see the POSIX:2001 specification.
+ http://www.opengroup.org/susv3xsh/getsubopt.html */
+# if !@HAVE_GETSUBOPT@
+extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getsubopt
+# define getsubopt(o,t,v) \
+ (GL_LINK_WARNING ("getsubopt is unportable - " \
+ "use gnulib module getsubopt for portability"), \
+ getsubopt (o, t, v))
+#endif
+
+
+#if @GNULIB_MKDTEMP@
+# if !@HAVE_MKDTEMP@
+/* Create a unique temporary directory from TEMPLATE.
+ The last six characters of TEMPLATE must be "XXXXXX";
+ they are replaced with a string that makes the directory name unique.
+ Returns TEMPLATE, or a null pointer if it cannot get a unique name.
+ The directory is created mode 700. */
+extern char * mkdtemp (char * /*template*/);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkdtemp
+# define mkdtemp(t) \
+ (GL_LINK_WARNING ("mkdtemp is unportable - " \
+ "use gnulib module mkdtemp for portability"), \
+ mkdtemp (t))
+#endif
+
+
+#if @GNULIB_MKSTEMP@
+# if @REPLACE_MKSTEMP@
+/* Create a unique temporary file from TEMPLATE.
+ The last six characters of TEMPLATE must be "XXXXXX";
+ they are replaced with a string that makes the file name unique.
+ The file is then created, ensuring it didn't exist before.
+ The file is created read-write (mask at least 0600 & ~umask), but it may be
+ world-readable and world-writable (mask 0666 & ~umask), depending on the
+ implementation.
+ Returns the open file descriptor if successful, otherwise -1 and errno
+ set. */
+# define mkstemp rpl_mkstemp
+extern int mkstemp (char * /*template*/);
+# else
+/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */
+# include <unistd.h>
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkstemp
+# define mkstemp(t) \
+ (GL_LINK_WARNING ("mkstemp is unportable - " \
+ "use gnulib module mkstemp for portability"), \
+ mkstemp (t))
+#endif
+
+
+#if @GNULIB_PUTENV@
+# if @REPLACE_PUTENV@
+# undef putenv
+# define putenv rpl_putenv
+extern int putenv (char *string);
+# endif
+#endif
+
+
+#if @GNULIB_RANDOM_R@
+# if !@HAVE_RANDOM_R@
+
+# ifndef RAND_MAX
+# define RAND_MAX 2147483647
+# endif
+
+int srandom_r (unsigned int seed, struct random_data *rand_state);
+int initstate_r (unsigned int seed, char *buf, size_t buf_size,
+ struct random_data *rand_state);
+int setstate_r (char *arg_state, struct random_data *rand_state);
+int random_r (struct random_data *buf, int32_t *result);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef random_r
+# define random_r(b,r) \
+ (GL_LINK_WARNING ("random_r is unportable - " \
+ "use gnulib module random_r for portability"), \
+ random_r (b,r))
+# undef initstate_r
+# define initstate_r(s,b,sz,r) \
+ (GL_LINK_WARNING ("initstate_r is unportable - " \
+ "use gnulib module random_r for portability"), \
+ initstate_r (s,b,sz,r))
+# undef srandom_r
+# define srandom_r(s,r) \
+ (GL_LINK_WARNING ("srandom_r is unportable - " \
+ "use gnulib module random_r for portability"), \
+ srandom_r (s,r))
+# undef setstate_r
+# define setstate_r(a,r) \
+ (GL_LINK_WARNING ("setstate_r is unportable - " \
+ "use gnulib module random_r for portability"), \
+ setstate_r (a,r))
+#endif
+
+
+#if @GNULIB_RPMATCH@
+# if !@HAVE_RPMATCH@
+/* Test a user response to a question.
+ Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */
+extern int rpmatch (const char *response);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef rpmatch
+# define rpmatch(r) \
+ (GL_LINK_WARNING ("rpmatch is unportable - " \
+ "use gnulib module rpmatch for portability"), \
+ rpmatch (r))
+#endif
+
+
+#if @GNULIB_SETENV@
+# if !@HAVE_SETENV@
+/* Set NAME to VALUE in the environment.
+ If REPLACE is nonzero, overwrite an existing value. */
+extern int setenv (const char *name, const char *value, int replace);
+# endif
+#endif
+
+
+#if @GNULIB_UNSETENV@
+# if @HAVE_UNSETENV@
+# if @VOID_UNSETENV@
+/* On some systems, unsetenv() returns void.
+ This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */
+# define unsetenv(name) ((unsetenv)(name), 0)
+# endif
+# else
+/* Remove the variable NAME from the environment. */
+extern int unsetenv (const char *name);
+# endif
+#endif
+
+
+#if @GNULIB_STRTOD@
+# if @REPLACE_STRTOD@
+# define strtod rpl_strtod
+# endif
+# if !@HAVE_STRTOD@ || @REPLACE_STRTOD@
+ /* Parse a double from STRING, updating ENDP if appropriate. */
+extern double strtod (const char *str, char **endp);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtod
+# define strtod(s, e) \
+ (GL_LINK_WARNING ("strtod is unportable - " \
+ "use gnulib module strtod for portability"), \
+ strtod (s, e))
+#endif
+
+
+#if @GNULIB_STRTOLL@
+# if !@HAVE_STRTOLL@
+/* Parse a signed integer whose textual representation starts at STRING.
+ The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
+ it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
+ "0x").
+ If ENDPTR is not NULL, the address of the first byte after the integer is
+ stored in *ENDPTR.
+ Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
+ to ERANGE. */
+extern long long strtoll (const char *string, char **endptr, int base);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtoll
+# define strtoll(s,e,b) \
+ (GL_LINK_WARNING ("strtoll is unportable - " \
+ "use gnulib module strtoll for portability"), \
+ strtoll (s, e, b))
+#endif
+
+
+#if @GNULIB_STRTOULL@
+# if !@HAVE_STRTOULL@
+/* Parse an unsigned integer whose textual representation starts at STRING.
+ The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
+ it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
+ "0x").
+ If ENDPTR is not NULL, the address of the first byte after the integer is
+ stored in *ENDPTR.
+ Upon overflow, the return value is ULLONG_MAX, and errno is set to
+ ERANGE. */
+extern unsigned long long strtoull (const char *string, char **endptr, int base);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtoull
+# define strtoull(s,e,b) \
+ (GL_LINK_WARNING ("strtoull is unportable - " \
+ "use gnulib module strtoull for portability"), \
+ strtoull (s, e, b))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STDLIB_H */
+#endif /* _GL_STDLIB_H */
+#endif
diff --git a/lib/streq.h b/lib/streq.h
new file mode 100644
index 0000000..1b4b1c5
--- /dev/null
+++ b/lib/streq.h
@@ -0,0 +1,176 @@
+/* Optimized string comparison.
+ Copyright (C) 2001-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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#ifndef _GL_STREQ_H
+#define _GL_STREQ_H
+
+#include <string.h>
+
+/* STREQ allows to optimize string comparison with a small literal string.
+ STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ is semantically equivalent to
+ strcmp (s, "EUC-KR") == 0
+ just faster. */
+
+/* Help GCC to generate good code for string comparisons with
+ immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+static inline int
+streq9 (const char *s1, const char *s2)
+{
+ return strcmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+streq8 (const char *s1, const char *s2, char s28)
+{
+ if (s1[8] == s28)
+ {
+ if (s28 == 0)
+ return 1;
+ else
+ return streq9 (s1, s2);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq7 (const char *s1, const char *s2, char s27, char s28)
+{
+ if (s1[7] == s27)
+ {
+ if (s27 == 0)
+ return 1;
+ else
+ return streq8 (s1, s2, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+ if (s1[6] == s26)
+ {
+ if (s26 == 0)
+ return 1;
+ else
+ return streq7 (s1, s2, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+ if (s1[5] == s25)
+ {
+ if (s25 == 0)
+ return 1;
+ else
+ return streq6 (s1, s2, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[4] == s24)
+ {
+ if (s24 == 0)
+ return 1;
+ else
+ return streq5 (s1, s2, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[3] == s23)
+ {
+ if (s23 == 0)
+ return 1;
+ else
+ return streq4 (s1, s2, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[2] == s22)
+ {
+ if (s22 == 0)
+ return 1;
+ else
+ return streq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[1] == s21)
+ {
+ if (s21 == 0)
+ return 1;
+ else
+ return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[0] == s20)
+ {
+ if (s20 == 0)
+ return 1;
+ else
+ return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ (strcmp (s1, s2) == 0)
+
+#endif
+
+#endif /* _GL_STREQ_H */
diff --git a/lib/striconveh.c b/lib/striconveh.c
new file mode 100644
index 0000000..b39a01f
--- /dev/null
+++ b/lib/striconveh.c
@@ -0,0 +1,1251 @@
+/* Character set conversion with error handling.
+ Copyright (C) 2001-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible and Simon Josefsson.
+
+ 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>
+
+/* Specification. */
+#include "striconveh.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if HAVE_ICONV
+# include <iconv.h>
+# include "unistr.h"
+#endif
+
+#include "c-strcase.h"
+#include "c-strcaseeq.h"
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+
+#if HAVE_ICONV
+
+/* The caller must provide CD, CD1, CD2, not just CD, because when a conversion
+ error occurs, we may have to determine the Unicode representation of the
+ inconvertible character. */
+
+/* iconv_carefully is like iconv, except that it stops as soon as it encounters
+ a conversion error, and it returns in *INCREMENTED a boolean telling whether
+ it has incremented the input pointers past the error location. */
+# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+/* Irix iconv() inserts a NUL byte if it cannot convert.
+ NetBSD iconv() inserts a question mark if it cannot convert.
+ Only GNU libiconv and GNU libc are known to prefer to fail rather
+ than doing a lossy conversion. */
+static size_t
+iconv_carefully (iconv_t cd,
+ const char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft,
+ bool *incremented)
+{
+ const char *inptr = *inbuf;
+ const char *inptr_end = inptr + *inbytesleft;
+ char *outptr = *outbuf;
+ size_t outsize = *outbytesleft;
+ const char *inptr_before;
+ size_t res;
+
+ do
+ {
+ size_t insize;
+
+ inptr_before = inptr;
+ res = (size_t)(-1);
+
+ for (insize = 1; inptr + insize <= inptr_end; insize++)
+ {
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &insize,
+ &outptr, &outsize);
+ if (!(res == (size_t)(-1) && errno == EINVAL))
+ break;
+ /* iconv can eat up a shift sequence but give EINVAL while attempting
+ to convert the first character. E.g. libiconv does this. */
+ if (inptr > inptr_before)
+ {
+ res = 0;
+ break;
+ }
+ }
+
+ if (res == 0)
+ {
+ *outbuf = outptr;
+ *outbytesleft = outsize;
+ }
+ }
+ while (res == 0 && inptr < inptr_end);
+
+ *inbuf = inptr;
+ *inbytesleft = inptr_end - inptr;
+ if (res != (size_t)(-1) && res > 0)
+ {
+ /* iconv() has already incremented INPTR. We cannot go back to a
+ previous INPTR, otherwise the state inside CD would become invalid,
+ if FROM_CODESET is a stateful encoding. So, tell the caller that
+ *INBUF has already been incremented. */
+ *incremented = (inptr > inptr_before);
+ errno = EILSEQ;
+ return (size_t)(-1);
+ }
+ else
+ {
+ *incremented = false;
+ return res;
+ }
+}
+# else
+# define iconv_carefully(cd, inbuf, inbytesleft, outbuf, outbytesleft, incremented) \
+ (*(incremented) = false, \
+ iconv (cd, (ICONV_CONST char **) (inbuf), inbytesleft, outbuf, outbytesleft))
+# endif
+
+/* iconv_carefully_1 is like iconv_carefully, except that it stops after
+ converting one character or one shift sequence. */
+static size_t
+iconv_carefully_1 (iconv_t cd,
+ const char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft,
+ bool *incremented)
+{
+ const char *inptr_before = *inbuf;
+ const char *inptr = inptr_before;
+ const char *inptr_end = inptr_before + *inbytesleft;
+ char *outptr = *outbuf;
+ size_t outsize = *outbytesleft;
+ size_t res = (size_t)(-1);
+ size_t insize;
+
+ for (insize = 1; inptr_before + insize <= inptr_end; insize++)
+ {
+ inptr = inptr_before;
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &insize,
+ &outptr, &outsize);
+ if (!(res == (size_t)(-1) && errno == EINVAL))
+ break;
+ /* iconv can eat up a shift sequence but give EINVAL while attempting
+ to convert the first character. E.g. libiconv does this. */
+ if (inptr > inptr_before)
+ {
+ res = 0;
+ break;
+ }
+ }
+
+ *inbuf = inptr;
+ *inbytesleft = inptr_end - inptr;
+# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+ /* Irix iconv() inserts a NUL byte if it cannot convert.
+ NetBSD iconv() inserts a question mark if it cannot convert.
+ Only GNU libiconv and GNU libc are known to prefer to fail rather
+ than doing a lossy conversion. */
+ if (res != (size_t)(-1) && res > 0)
+ {
+ /* iconv() has already incremented INPTR. We cannot go back to a
+ previous INPTR, otherwise the state inside CD would become invalid,
+ if FROM_CODESET is a stateful encoding. So, tell the caller that
+ *INBUF has already been incremented. */
+ *incremented = (inptr > inptr_before);
+ errno = EILSEQ;
+ return (size_t)(-1);
+ }
+# endif
+
+ if (res != (size_t)(-1))
+ {
+ *outbuf = outptr;
+ *outbytesleft = outsize;
+ }
+ *incremented = false;
+ return res;
+}
+
+/* utf8conv_carefully is like iconv, except that
+ - it converts from UTF-8 to UTF-8,
+ - it stops as soon as it encounters a conversion error, and it returns
+ in *INCREMENTED a boolean telling whether it has incremented the input
+ pointers past the error location,
+ - if one_character_only is true, it stops after converting one
+ character. */
+static size_t
+utf8conv_carefully (bool one_character_only,
+ const char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft,
+ bool *incremented)
+{
+ const char *inptr = *inbuf;
+ size_t insize = *inbytesleft;
+ char *outptr = *outbuf;
+ size_t outsize = *outbytesleft;
+ size_t res;
+
+ res = 0;
+ do
+ {
+ ucs4_t uc;
+ int n;
+ int m;
+
+ n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize);
+ if (n < 0)
+ {
+ errno = (n == -2 ? EINVAL : EILSEQ);
+ n = u8_mbtouc (&uc, (const uint8_t *) inptr, insize);
+ inptr += n;
+ insize -= n;
+ res = (size_t)(-1);
+ *incremented = true;
+ break;
+ }
+ if (outsize == 0)
+ {
+ errno = E2BIG;
+ res = (size_t)(-1);
+ *incremented = false;
+ break;
+ }
+ m = u8_uctomb ((uint8_t *) outptr, uc, outsize);
+ if (m == -2)
+ {
+ errno = E2BIG;
+ res = (size_t)(-1);
+ *incremented = false;
+ break;
+ }
+ inptr += n;
+ insize -= n;
+ if (m == -1)
+ {
+ errno = EILSEQ;
+ res = (size_t)(-1);
+ *incremented = true;
+ break;
+ }
+ outptr += m;
+ outsize -= m;
+ }
+ while (!one_character_only && insize > 0);
+
+ *inbuf = inptr;
+ *inbytesleft = insize;
+ *outbuf = outptr;
+ *outbytesleft = outsize;
+ return res;
+}
+
+static int
+mem_cd_iconveh_internal (const char *src, size_t srclen,
+ iconv_t cd, iconv_t cd1, iconv_t cd2,
+ enum iconv_ilseq_handler handler,
+ size_t extra_alloc,
+ size_t *offsets,
+ char **resultp, size_t *lengthp)
+{
+ /* When a conversion error occurs, we cannot start using CD1 and CD2 at
+ this point: FROM_CODESET may be a stateful encoding like ISO-2022-KR.
+ Instead, we have to start afresh from the beginning of SRC. */
+ /* Use a temporary buffer, so that for small strings, a single malloc()
+ call will be sufficient. */
+# define tmpbufsize 4096
+ /* The alignment is needed when converting e.g. to glibc's WCHAR_T or
+ libiconv's UCS-4-INTERNAL encoding. */
+ union { unsigned int align; char buf[tmpbufsize]; } tmp;
+# define tmpbuf tmp.buf
+
+ char *initial_result;
+ char *result;
+ size_t allocated;
+ size_t length;
+ size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */
+
+ if (*resultp != NULL && *lengthp >= sizeof (tmpbuf))
+ {
+ initial_result = *resultp;
+ allocated = *lengthp;
+ }
+ else
+ {
+ initial_result = tmpbuf;
+ allocated = sizeof (tmpbuf);
+ }
+ result = initial_result;
+
+ /* Test whether a direct conversion is possible at all. */
+ if (cd == (iconv_t)(-1))
+ goto indirectly;
+
+ if (offsets != NULL)
+ {
+ size_t i;
+
+ for (i = 0; i < srclen; i++)
+ offsets[i] = (size_t)(-1);
+
+ last_length = (size_t)(-1);
+ }
+ length = 0;
+
+ /* First, try a direct conversion, and see whether a conversion error
+ occurs at all. */
+ {
+ const char *inptr = src;
+ size_t insize = srclen;
+
+ /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */
+# if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+ /* Set to the initial state. */
+ iconv (cd, NULL, NULL, NULL, NULL);
+# endif
+
+ while (insize > 0)
+ {
+ char *outptr = result + length;
+ size_t outsize = allocated - extra_alloc - length;
+ bool incremented;
+ size_t res;
+ bool grow;
+
+ if (offsets != NULL)
+ {
+ if (length != last_length) /* ensure that offset[] be increasing */
+ {
+ offsets[inptr - src] = length;
+ last_length = length;
+ }
+ res = iconv_carefully_1 (cd,
+ &inptr, &insize,
+ &outptr, &outsize,
+ &incremented);
+ }
+ else
+ /* Use iconv_carefully instead of iconv here, because:
+ - If TO_CODESET is UTF-8, we can do the error handling in this
+ loop, no need for a second loop,
+ - With iconv() implementations other than GNU libiconv and GNU
+ libc, if we use iconv() in a big swoop, checking for an E2BIG
+ return, we lose the number of irreversible conversions. */
+ res = iconv_carefully (cd,
+ &inptr, &insize,
+ &outptr, &outsize,
+ &incremented);
+
+ length = outptr - result;
+ grow = (length + extra_alloc > allocated / 2);
+ if (res == (size_t)(-1))
+ {
+ if (errno == E2BIG)
+ grow = true;
+ else if (errno == EINVAL)
+ break;
+ else if (errno == EILSEQ && handler != iconveh_error)
+ {
+ if (cd2 == (iconv_t)(-1))
+ {
+ /* TO_CODESET is UTF-8. */
+ /* Error handling can produce up to 1 byte of output. */
+ if (length + 1 + extra_alloc > allocated)
+ {
+ char *memory;
+
+ allocated = 2 * allocated;
+ if (length + 1 + extra_alloc > allocated)
+ abort ();
+ if (result == initial_result)
+ memory = (char *) malloc (allocated);
+ else
+ memory = (char *) realloc (result, allocated);
+ if (memory == NULL)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (result == initial_result)
+ memcpy (memory, initial_result, length);
+ result = memory;
+ grow = false;
+ }
+ /* The input is invalid in FROM_CODESET. Eat up one byte
+ and emit a question mark. */
+ if (!incremented)
+ {
+ if (insize == 0)
+ abort ();
+ inptr++;
+ insize--;
+ }
+ result[length] = '?';
+ length++;
+ }
+ else
+ goto indirectly;
+ }
+ else
+ {
+ if (result != initial_result)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ }
+ if (insize == 0)
+ break;
+ if (grow)
+ {
+ char *memory;
+
+ allocated = 2 * allocated;
+ if (result == initial_result)
+ memory = (char *) malloc (allocated);
+ else
+ memory = (char *) realloc (result, allocated);
+ if (memory == NULL)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (result == initial_result)
+ memcpy (memory, initial_result, length);
+ result = memory;
+ }
+ }
+ }
+
+ /* Now get the conversion state back to the initial state.
+ But avoid glibc-2.1 bug and Solaris 2.7 bug. */
+#if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+ for (;;)
+ {
+ char *outptr = result + length;
+ size_t outsize = allocated - extra_alloc - length;
+ size_t res;
+
+ res = iconv (cd, NULL, NULL, &outptr, &outsize);
+ length = outptr - result;
+ if (res == (size_t)(-1))
+ {
+ if (errno == E2BIG)
+ {
+ char *memory;
+
+ allocated = 2 * allocated;
+ if (result == initial_result)
+ memory = (char *) malloc (allocated);
+ else
+ memory = (char *) realloc (result, allocated);
+ if (memory == NULL)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (result == initial_result)
+ memcpy (memory, initial_result, length);
+ result = memory;
+ }
+ else
+ {
+ if (result != initial_result)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ }
+ else
+ break;
+ }
+#endif
+
+ /* The direct conversion succeeded. */
+ goto done;
+
+ indirectly:
+ /* The direct conversion failed.
+ Use a conversion through UTF-8. */
+ if (offsets != NULL)
+ {
+ size_t i;
+
+ for (i = 0; i < srclen; i++)
+ offsets[i] = (size_t)(-1);
+
+ last_length = (size_t)(-1);
+ }
+ length = 0;
+ {
+ const bool slowly = (offsets != NULL || handler == iconveh_error);
+# define utf8bufsize 4096 /* may also be smaller or larger than tmpbufsize */
+ char utf8buf[utf8bufsize + 1];
+ size_t utf8len = 0;
+ const char *in1ptr = src;
+ size_t in1size = srclen;
+ bool do_final_flush1 = true;
+ bool do_final_flush2 = true;
+
+ /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */
+# if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+ /* Set to the initial state. */
+ if (cd1 != (iconv_t)(-1))
+ iconv (cd1, NULL, NULL, NULL, NULL);
+ if (cd2 != (iconv_t)(-1))
+ iconv (cd2, NULL, NULL, NULL, NULL);
+# endif
+
+ while (in1size > 0 || do_final_flush1 || utf8len > 0 || do_final_flush2)
+ {
+ char *out1ptr = utf8buf + utf8len;
+ size_t out1size = utf8bufsize - utf8len;
+ bool incremented1;
+ size_t res1;
+ int errno1;
+
+ /* Conversion step 1: from FROM_CODESET to UTF-8. */
+ if (in1size > 0)
+ {
+ if (offsets != NULL
+ && length != last_length) /* ensure that offset[] be increasing */
+ {
+ offsets[in1ptr - src] = length;
+ last_length = length;
+ }
+ if (cd1 != (iconv_t)(-1))
+ {
+ if (slowly)
+ res1 = iconv_carefully_1 (cd1,
+ &in1ptr, &in1size,
+ &out1ptr, &out1size,
+ &incremented1);
+ else
+ res1 = iconv_carefully (cd1,
+ &in1ptr, &in1size,
+ &out1ptr, &out1size,
+ &incremented1);
+ }
+ else
+ {
+ /* FROM_CODESET is UTF-8. */
+ res1 = utf8conv_carefully (slowly,
+ &in1ptr, &in1size,
+ &out1ptr, &out1size,
+ &incremented1);
+ }
+ }
+ else if (do_final_flush1)
+ {
+ /* Now get the conversion state of CD1 back to the initial state.
+ But avoid glibc-2.1 bug and Solaris 2.7 bug. */
+# if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+ if (cd1 != (iconv_t)(-1))
+ res1 = iconv (cd1, NULL, NULL, &out1ptr, &out1size);
+ else
+# endif
+ res1 = 0;
+ do_final_flush1 = false;
+ incremented1 = true;
+ }
+ else
+ {
+ res1 = 0;
+ incremented1 = true;
+ }
+ if (res1 == (size_t)(-1)
+ && !(errno == E2BIG || errno == EINVAL || errno == EILSEQ))
+ {
+ if (result != initial_result)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ if (res1 == (size_t)(-1)
+ && errno == EILSEQ && handler != iconveh_error)
+ {
+ /* The input is invalid in FROM_CODESET. Eat up one byte and
+ emit a question mark. Room for the question mark was allocated
+ at the end of utf8buf. */
+ if (!incremented1)
+ {
+ if (in1size == 0)
+ abort ();
+ in1ptr++;
+ in1size--;
+ }
+ utf8buf[utf8len++] = '?';
+ }
+ errno1 = errno;
+ utf8len = out1ptr - utf8buf;
+
+ if (offsets != NULL
+ || in1size == 0
+ || utf8len > utf8bufsize / 2
+ || (res1 == (size_t)(-1) && errno1 == E2BIG))
+ {
+ /* Conversion step 2: from UTF-8 to TO_CODESET. */
+ const char *in2ptr = utf8buf;
+ size_t in2size = utf8len;
+
+ while (in2size > 0
+ || (in1size == 0 && !do_final_flush1 && do_final_flush2))
+ {
+ char *out2ptr = result + length;
+ size_t out2size = allocated - extra_alloc - length;
+ bool incremented2;
+ size_t res2;
+ bool grow;
+
+ if (in2size > 0)
+ {
+ if (cd2 != (iconv_t)(-1))
+ res2 = iconv_carefully (cd2,
+ &in2ptr, &in2size,
+ &out2ptr, &out2size,
+ &incremented2);
+ else
+ /* TO_CODESET is UTF-8. */
+ res2 = utf8conv_carefully (false,
+ &in2ptr, &in2size,
+ &out2ptr, &out2size,
+ &incremented2);
+ }
+ else /* in1size == 0 && !do_final_flush1
+ && in2size == 0 && do_final_flush2 */
+ {
+ /* Now get the conversion state of CD1 back to the initial
+ state. But avoid glibc-2.1 bug and Solaris 2.7 bug. */
+# if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+ if (cd2 != (iconv_t)(-1))
+ res2 = iconv (cd2, NULL, NULL, &out2ptr, &out2size);
+ else
+# endif
+ res2 = 0;
+ do_final_flush2 = false;
+ incremented2 = true;
+ }
+
+ length = out2ptr - result;
+ grow = (length + extra_alloc > allocated / 2);
+ if (res2 == (size_t)(-1))
+ {
+ if (errno == E2BIG)
+ grow = true;
+ else if (errno == EINVAL)
+ break;
+ else if (errno == EILSEQ && handler != iconveh_error)
+ {
+ /* Error handling can produce up to 10 bytes of ASCII
+ output. But TO_CODESET may be UCS-2, UTF-16 or
+ UCS-4, so use CD2 here as well. */
+ char scratchbuf[10];
+ size_t scratchlen;
+ ucs4_t uc;
+ const char *inptr;
+ size_t insize;
+ size_t res;
+
+ if (incremented2)
+ {
+ if (u8_prev (&uc, (const uint8_t *) in2ptr,
+ (const uint8_t *) utf8buf)
+ == NULL)
+ abort ();
+ }
+ else
+ {
+ int n;
+ if (in2size == 0)
+ abort ();
+ n = u8_mbtouc_unsafe (&uc, (const uint8_t *) in2ptr,
+ in2size);
+ in2ptr += n;
+ in2size -= n;
+ }
+
+ if (handler == iconveh_escape_sequence)
+ {
+ static char hex[16] = "0123456789ABCDEF";
+ scratchlen = 0;
+ scratchbuf[scratchlen++] = '\\';
+ if (uc < 0x10000)
+ scratchbuf[scratchlen++] = 'u';
+ else
+ {
+ scratchbuf[scratchlen++] = 'U';
+ scratchbuf[scratchlen++] = hex[(uc>>28) & 15];
+ scratchbuf[scratchlen++] = hex[(uc>>24) & 15];
+ scratchbuf[scratchlen++] = hex[(uc>>20) & 15];
+ scratchbuf[scratchlen++] = hex[(uc>>16) & 15];
+ }
+ scratchbuf[scratchlen++] = hex[(uc>>12) & 15];
+ scratchbuf[scratchlen++] = hex[(uc>>8) & 15];
+ scratchbuf[scratchlen++] = hex[(uc>>4) & 15];
+ scratchbuf[scratchlen++] = hex[uc & 15];
+ }
+ else
+ {
+ scratchbuf[0] = '?';
+ scratchlen = 1;
+ }
+
+ inptr = scratchbuf;
+ insize = scratchlen;
+ if (cd2 != (iconv_t)(-1))
+ res = iconv (cd2,
+ (ICONV_CONST char **) &inptr, &insize,
+ &out2ptr, &out2size);
+ else
+ {
+ /* TO_CODESET is UTF-8. */
+ if (out2size >= insize)
+ {
+ memcpy (out2ptr, inptr, insize);
+ out2ptr += insize;
+ out2size -= insize;
+ inptr += insize;
+ insize = 0;
+ res = 0;
+ }
+ else
+ {
+ errno = E2BIG;
+ res = (size_t)(-1);
+ }
+ }
+ length = out2ptr - result;
+ if (res == (size_t)(-1) && errno == E2BIG)
+ {
+ char *memory;
+
+ allocated = 2 * allocated;
+ if (length + 1 + extra_alloc > allocated)
+ abort ();
+ if (result == initial_result)
+ memory = (char *) malloc (allocated);
+ else
+ memory = (char *) realloc (result, allocated);
+ if (memory == NULL)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (result == initial_result)
+ memcpy (memory, initial_result, length);
+ result = memory;
+ grow = false;
+
+ out2ptr = result + length;
+ out2size = allocated - extra_alloc - length;
+ if (cd2 != (iconv_t)(-1))
+ res = iconv (cd2,
+ (ICONV_CONST char **) &inptr,
+ &insize,
+ &out2ptr, &out2size);
+ else
+ {
+ /* TO_CODESET is UTF-8. */
+ if (!(out2size >= insize))
+ abort ();
+ memcpy (out2ptr, inptr, insize);
+ out2ptr += insize;
+ out2size -= insize;
+ inptr += insize;
+ insize = 0;
+ res = 0;
+ }
+ length = out2ptr - result;
+ }
+# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+ /* Irix iconv() inserts a NUL byte if it cannot convert.
+ NetBSD iconv() inserts a question mark if it cannot
+ convert.
+ Only GNU libiconv and GNU libc are known to prefer
+ to fail rather than doing a lossy conversion. */
+ if (res != (size_t)(-1) && res > 0)
+ {
+ errno = EILSEQ;
+ res = (size_t)(-1);
+ }
+# endif
+ if (res == (size_t)(-1))
+ {
+ /* Failure converting the ASCII replacement. */
+ if (result != initial_result)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ }
+ else
+ {
+ if (result != initial_result)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ }
+ if (!(in2size > 0
+ || (in1size == 0 && !do_final_flush1 && do_final_flush2)))
+ break;
+ if (grow)
+ {
+ char *memory;
+
+ allocated = 2 * allocated;
+ if (result == initial_result)
+ memory = (char *) malloc (allocated);
+ else
+ memory = (char *) realloc (result, allocated);
+ if (memory == NULL)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (result == initial_result)
+ memcpy (memory, initial_result, length);
+ result = memory;
+ }
+ }
+
+ /* Move the remaining bytes to the beginning of utf8buf. */
+ if (in2size > 0)
+ memmove (utf8buf, in2ptr, in2size);
+ utf8len = in2size;
+ }
+
+ if (res1 == (size_t)(-1))
+ {
+ if (errno1 == EINVAL)
+ in1size = 0;
+ else if (errno1 == EILSEQ)
+ {
+ if (result != initial_result)
+ free (result);
+ errno = errno1;
+ return -1;
+ }
+ }
+ }
+# undef utf8bufsize
+ }
+
+ done:
+ /* Now the final memory allocation. */
+ if (result == tmpbuf)
+ {
+ size_t memsize = length + extra_alloc;
+ char *memory;
+
+ memory = (char *) malloc (memsize > 0 ? memsize : 1);
+ if (memory != NULL)
+ {
+ memcpy (memory, tmpbuf, length);
+ result = memory;
+ }
+ else
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ }
+ else if (result != *resultp && length + extra_alloc < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ size_t memsize = length + extra_alloc;
+ char *memory;
+
+ memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
+ if (memory != NULL)
+ result = memory;
+ }
+ *resultp = result;
+ *lengthp = length;
+ return 0;
+# undef tmpbuf
+# undef tmpbufsize
+}
+
+int
+mem_cd_iconveh (const char *src, size_t srclen,
+ iconv_t cd, iconv_t cd1, iconv_t cd2,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp)
+{
+ return mem_cd_iconveh_internal (src, srclen, cd, cd1, cd2, handler, 0,
+ offsets, resultp, lengthp);
+}
+
+char *
+str_cd_iconveh (const char *src,
+ iconv_t cd, iconv_t cd1, iconv_t cd2,
+ enum iconv_ilseq_handler handler)
+{
+ /* For most encodings, a trailing NUL byte in the input will be converted
+ to a trailing NUL byte in the output. But not for UTF-7. So that this
+ function is usable for UTF-7, we have to exclude the NUL byte from the
+ conversion and add it by hand afterwards. */
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh_internal (src, strlen (src),
+ cd, cd1, cd2, handler, 1, NULL,
+ &result, &length);
+
+ if (retval < 0)
+ {
+ if (result != NULL)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ /* Add the terminating NUL byte. */
+ result[length] = '\0';
+
+ return result;
+}
+
+#endif
+
+int
+mem_iconveh (const char *src, size_t srclen,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp)
+{
+ if (srclen == 0)
+ {
+ /* Nothing to convert. */
+ *lengthp = 0;
+ return 0;
+ }
+ else if (offsets == NULL && c_strcasecmp (from_codeset, to_codeset) == 0)
+ {
+ char *result;
+
+ if (*resultp != NULL && *lengthp >= srclen)
+ result = *resultp;
+ else
+ {
+ result = (char *) malloc (srclen);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ }
+ memcpy (result, src, srclen);
+ *resultp = result;
+ *lengthp = srclen;
+ return 0;
+ }
+ else
+ {
+#if HAVE_ICONV
+ iconv_t cd;
+ iconv_t cd1;
+ iconv_t cd2;
+ char *result;
+ size_t length;
+ int retval;
+
+ /* Avoid glibc-2.1 bug with EUC-KR. */
+# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+ if (c_strcasecmp (from_codeset, "EUC-KR") == 0
+ || c_strcasecmp (to_codeset, "EUC-KR") == 0)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+# endif
+
+ cd = iconv_open (to_codeset, from_codeset);
+
+ if (STRCASEEQ (from_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ cd1 = (iconv_t)(-1);
+ else
+ {
+ cd1 = iconv_open ("UTF-8", from_codeset);
+ if (cd1 == (iconv_t)(-1))
+ {
+ int saved_errno = errno;
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ return -1;
+ }
+ }
+
+ if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ || c_strcasecmp (to_codeset, "UTF-8//TRANSLIT") == 0
+# endif
+ )
+ cd2 = (iconv_t)(-1);
+ else
+ {
+ cd2 = iconv_open (to_codeset, "UTF-8");
+ if (cd2 == (iconv_t)(-1))
+ {
+ int saved_errno = errno;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ return -1;
+ }
+ }
+
+ result = *resultp;
+ length = *lengthp;
+ retval = mem_cd_iconveh (src, srclen, cd, cd1, cd2, handler, offsets,
+ &result, &length);
+
+ if (retval < 0)
+ {
+ /* Close cd, cd1, cd2, but preserve the errno from str_cd_iconv. */
+ int saved_errno = errno;
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ }
+ else
+ {
+ if (cd2 != (iconv_t)(-1) && iconv_close (cd2) < 0)
+ {
+ /* Return -1, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ if (result != *resultp && result != NULL)
+ free (result);
+ errno = saved_errno;
+ return -1;
+ }
+ if (cd1 != (iconv_t)(-1) && iconv_close (cd1) < 0)
+ {
+ /* Return -1, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ if (result != *resultp && result != NULL)
+ free (result);
+ errno = saved_errno;
+ return -1;
+ }
+ if (cd != (iconv_t)(-1) && iconv_close (cd) < 0)
+ {
+ /* Return -1, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ if (result != *resultp && result != NULL)
+ free (result);
+ errno = saved_errno;
+ return -1;
+ }
+ *resultp = result;
+ *lengthp = length;
+ }
+ return retval;
+#else
+ /* This is a different error code than if iconv_open existed but didn't
+ support from_codeset and to_codeset, so that the caller can emit
+ an error message such as
+ "iconv() is not supported. Installing GNU libiconv and
+ then reinstalling this package would fix this." */
+ errno = ENOSYS;
+ return -1;
+#endif
+ }
+}
+
+char *
+str_iconveh (const char *src,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler)
+{
+ if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0)
+ {
+ char *result = strdup (src);
+
+ if (result == NULL)
+ errno = ENOMEM;
+ return result;
+ }
+ else
+ {
+#if HAVE_ICONV
+ iconv_t cd;
+ iconv_t cd1;
+ iconv_t cd2;
+ char *result;
+
+ /* Avoid glibc-2.1 bug with EUC-KR. */
+# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+ if (c_strcasecmp (from_codeset, "EUC-KR") == 0
+ || c_strcasecmp (to_codeset, "EUC-KR") == 0)
+ {
+ errno = EINVAL;
+ return NULL;
+ }
+# endif
+
+ cd = iconv_open (to_codeset, from_codeset);
+
+ if (STRCASEEQ (from_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ cd1 = (iconv_t)(-1);
+ else
+ {
+ cd1 = iconv_open ("UTF-8", from_codeset);
+ if (cd1 == (iconv_t)(-1))
+ {
+ int saved_errno = errno;
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ return NULL;
+ }
+ }
+
+ if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ || c_strcasecmp (to_codeset, "UTF-8//TRANSLIT") == 0
+# endif
+ )
+ cd2 = (iconv_t)(-1);
+ else
+ {
+ cd2 = iconv_open (to_codeset, "UTF-8");
+ if (cd2 == (iconv_t)(-1))
+ {
+ int saved_errno = errno;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ return NULL;
+ }
+ }
+
+ result = str_cd_iconveh (src, cd, cd1, cd2, handler);
+
+ if (result == NULL)
+ {
+ /* Close cd, cd1, cd2, but preserve the errno from str_cd_iconv. */
+ int saved_errno = errno;
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ errno = saved_errno;
+ }
+ else
+ {
+ if (cd2 != (iconv_t)(-1) && iconv_close (cd2) < 0)
+ {
+ /* Return NULL, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ free (result);
+ errno = saved_errno;
+ return NULL;
+ }
+ if (cd1 != (iconv_t)(-1) && iconv_close (cd1) < 0)
+ {
+ /* Return NULL, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ if (cd != (iconv_t)(-1))
+ iconv_close (cd);
+ free (result);
+ errno = saved_errno;
+ return NULL;
+ }
+ if (cd != (iconv_t)(-1) && iconv_close (cd) < 0)
+ {
+ /* Return NULL, but free the allocated memory, and while doing
+ that, preserve the errno from iconv_close. */
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ return NULL;
+ }
+ }
+ return result;
+#else
+ /* This is a different error code than if iconv_open existed but didn't
+ support from_codeset and to_codeset, so that the caller can emit
+ an error message such as
+ "iconv() is not supported. Installing GNU libiconv and
+ then reinstalling this package would fix this." */
+ errno = ENOSYS;
+ return NULL;
+#endif
+ }
+}
diff --git a/lib/striconveh.h b/lib/striconveh.h
new file mode 100644
index 0000000..98b4d0c
--- /dev/null
+++ b/lib/striconveh.h
@@ -0,0 +1,120 @@
+/* Character set conversion with error handling.
+ Copyright (C) 2001-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible and Simon Josefsson.
+
+ 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/>. */
+
+#ifndef _STRICONVEH_H
+#define _STRICONVEH_H
+
+#include <stddef.h>
+#if HAVE_ICONV
+#include <iconv.h>
+#endif
+
+#include "iconveh.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if HAVE_ICONV
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is at [SRC,...,SRC+SRCLEN-1].
+ CD is the conversion descriptor from FROMCODE to TOCODE, or (iconv_t)(-1) if
+ the system does not support a direct conversion from FROMCODE to TOCODE.
+ CD1 is the conversion descriptor from FROM_CODESET to UTF-8 (or
+ (iconv_t)(-1) if FROM_CODESET is UTF-8).
+ CD2 is the conversion descriptor from UTF-8 to TO_CODESET (or (iconv_t)(-1)
+ if TO_CODESET is UTF-8).
+ If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+ array is filled with offsets into the result, i.e. the character starting
+ at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+ and other offsets are set to (size_t)(-1).
+ *RESULTP and *LENGTH should initially be a scratch buffer and its size,
+ or *RESULTP can initially be NULL.
+ May erase the contents of the memory at *RESULTP.
+ Return value: 0 if successful, otherwise -1 and errno set.
+ If successful: The resulting string is stored in *RESULTP and its length
+ in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is
+ unchanged if no dynamic memory allocation was necessary. */
+extern int
+ mem_cd_iconveh (const char *src, size_t srclen,
+ iconv_t cd, iconv_t cd1, iconv_t cd2,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp);
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is the NUL-terminated string starting at SRC.
+ CD is the conversion descriptor from FROMCODE to TOCODE, or (iconv_t)(-1) if
+ the system does not support a direct conversion from FROMCODE to TOCODE.
+ Both the "from" and the "to" encoding must use a single NUL byte at the end
+ of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32).
+ CD1 is the conversion descriptor from FROM_CODESET to UTF-8 (or
+ (iconv_t)(-1) if FROM_CODESET is UTF-8).
+ CD2 is the conversion descriptor from UTF-8 to TO_CODESET (or (iconv_t)(-1)
+ if TO_CODESET is UTF-8).
+ Allocate a malloced memory block for the result.
+ Return value: the freshly allocated resulting NUL-terminated string if
+ successful, otherwise NULL and errno set. */
+extern char *
+ str_cd_iconveh (const char *src,
+ iconv_t cd, iconv_t cd1, iconv_t cd2,
+ enum iconv_ilseq_handler handler);
+
+#endif
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is at [SRC,...,SRC+SRCLEN-1].
+ If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+ array is filled with offsets into the result, i.e. the character starting
+ at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+ and other offsets are set to (size_t)(-1).
+ *RESULTP and *LENGTH should initially be a scratch buffer and its size,
+ or *RESULTP can initially be NULL.
+ May erase the contents of the memory at *RESULTP.
+ Return value: 0 if successful, otherwise -1 and errno set.
+ If successful: The resulting string is stored in *RESULTP and its length
+ in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is
+ unchanged if no dynamic memory allocation was necessary. */
+extern int
+ mem_iconveh (const char *src, size_t srclen,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp);
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is the NUL-terminated string starting at SRC.
+ Both the "from" and the "to" encoding must use a single NUL byte at the
+ end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32).
+ Allocate a malloced memory block for the result.
+ Return value: the freshly allocated resulting NUL-terminated string if
+ successful, otherwise NULL and errno set. */
+extern char *
+ str_iconveh (const char *src,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _STRICONVEH_H */
diff --git a/lib/striconveha.c b/lib/striconveha.c
new file mode 100644
index 0000000..a0567b4
--- /dev/null
+++ b/lib/striconveha.c
@@ -0,0 +1,348 @@
+/* Character set conversion with error handling and autodetection.
+ Copyright (C) 2002, 2005, 2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible.
+
+ 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>
+
+/* Specification. */
+#include "striconveha.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "malloca.h"
+#include "c-strcase.h"
+#include "striconveh.h"
+
+#define SIZEOF(a) (sizeof(a)/sizeof(a[0]))
+
+
+/* Autodetection list. */
+
+struct autodetect_alias
+{
+ struct autodetect_alias *next;
+ const char *name;
+ const char * const *encodings_to_try;
+};
+
+static const char * const autodetect_utf8_try[] =
+{
+ /* Try UTF-8 first. There are very few ISO-8859-1 inputs that would
+ be valid UTF-8, but many UTF-8 inputs are valid ISO-8859-1. */
+ "UTF-8", "ISO-8859-1",
+ NULL
+};
+static const char * const autodetect_jp_try[] =
+{
+ /* Try 7-bit encoding first. If the input contains bytes >= 0x80,
+ it will fail.
+ Try EUC-JP next. Short SHIFT_JIS inputs may come out wrong. This
+ is unavoidable. People will condemn SHIFT_JIS.
+ If we tried SHIFT_JIS first, then some short EUC-JP inputs would
+ come out wrong, and people would condemn EUC-JP and Unix, which
+ would not be good.
+ Finally try SHIFT_JIS. */
+ "ISO-2022-JP-2", "EUC-JP", "SHIFT_JIS",
+ NULL
+};
+static const char * const autodetect_kr_try[] =
+{
+ /* Try 7-bit encoding first. If the input contains bytes >= 0x80,
+ it will fail.
+ Finally try EUC-KR. */
+ "ISO-2022-KR", "EUC-KR",
+ NULL
+};
+
+static struct autodetect_alias autodetect_predefined[] =
+{
+ { &autodetect_predefined[1], "autodetect_utf8", autodetect_utf8_try },
+ { &autodetect_predefined[2], "autodetect_jp", autodetect_jp_try },
+ { NULL, "autodetect_kr", autodetect_kr_try }
+};
+
+static struct autodetect_alias *autodetect_list = &autodetect_predefined[0];
+static struct autodetect_alias **autodetect_list_end =
+ &autodetect_predefined[SIZEOF(autodetect_predefined)-1].next;
+
+int
+uniconv_register_autodetect (const char *name,
+ const char * const *try_in_order)
+{
+ size_t namelen;
+ size_t listlen;
+ size_t memneed;
+ size_t i;
+ char *memory;
+ struct autodetect_alias *new_alias;
+ char *new_name;
+ const char **new_try_in_order;
+
+ /* The TRY_IN_ORDER list must not be empty. */
+ if (try_in_order[0] == NULL)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ /* We must deep-copy NAME and TRY_IN_ORDER, because they may be allocated
+ with dynamic extent. */
+ namelen = strlen (name) + 1;
+ memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *);
+ for (i = 0; try_in_order[i] != NULL; i++)
+ memneed += sizeof (char *) + strlen (try_in_order[i]) + 1;
+ listlen = i;
+
+ memory = (char *) malloc (memneed);
+ if (memory != NULL)
+ {
+ new_alias = (struct autodetect_alias *) memory;
+ memory += sizeof (struct autodetect_alias);
+
+ new_try_in_order = (const char **) memory;
+ memory += (listlen + 1) * sizeof (char *);
+
+ new_name = (char *) memory;
+ memcpy (new_name, name, namelen);
+ memory += namelen;
+
+ for (i = 0; i < listlen; i++)
+ {
+ size_t len = strlen (try_in_order[i]) + 1;
+ memcpy (memory, try_in_order[i], len);
+ new_try_in_order[i] = (const char *) memory;
+ memory += len;
+ }
+ new_try_in_order[i] = NULL;
+
+ /* Now insert the new alias. */
+ new_alias->name = new_name;
+ new_alias->encodings_to_try = new_try_in_order;
+ new_alias->next = NULL;
+ /* FIXME: Not multithread-safe. */
+ *autodetect_list_end = new_alias;
+ autodetect_list_end = &new_alias->next;
+ return 0;
+ }
+ else
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+}
+
+/* Like mem_iconveha, except no handling of transliteration. */
+static int
+mem_iconveha_notranslit (const char *src, size_t srclen,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp)
+{
+ int retval = mem_iconveh (src, srclen, from_codeset, to_codeset, handler,
+ offsets, resultp, lengthp);
+ if (retval >= 0 || errno != EINVAL)
+ return retval;
+ else
+ {
+ struct autodetect_alias *alias;
+
+ /* Unsupported from_codeset or to_codeset. Check whether the caller
+ requested autodetection. */
+ for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ if (strcmp (from_codeset, alias->name) == 0)
+ {
+ const char * const *encodings;
+
+ if (handler != iconveh_error)
+ {
+ /* First try all encodings without any forgiving. */
+ encodings = alias->encodings_to_try;
+ do
+ {
+ retval = mem_iconveha_notranslit (src, srclen,
+ *encodings, to_codeset,
+ iconveh_error, offsets,
+ resultp, lengthp);
+ if (!(retval < 0 && errno == EILSEQ))
+ return retval;
+ encodings++;
+ }
+ while (*encodings != NULL);
+ }
+
+ encodings = alias->encodings_to_try;
+ do
+ {
+ retval = mem_iconveha_notranslit (src, srclen,
+ *encodings, to_codeset,
+ handler, offsets,
+ resultp, lengthp);
+ if (!(retval < 0 && errno == EILSEQ))
+ return retval;
+ encodings++;
+ }
+ while (*encodings != NULL);
+
+ /* Return the last call's result. */
+ return -1;
+ }
+
+ /* It wasn't an autodetection name. */
+ errno = EINVAL;
+ return -1;
+ }
+}
+
+int
+mem_iconveha (const char *src, size_t srclen,
+ const char *from_codeset, const char *to_codeset,
+ bool transliterate,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp)
+{
+ if (srclen == 0)
+ {
+ /* Nothing to convert. */
+ *lengthp = 0;
+ return 0;
+ }
+
+ /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
+ we want to use transliteration. */
+#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ if (transliterate)
+ {
+ int retval;
+ size_t len = strlen (to_codeset);
+ char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
+ memcpy (to_codeset_suffixed, to_codeset, len);
+ memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
+
+ retval = mem_iconveha_notranslit (src, srclen,
+ from_codeset, to_codeset_suffixed,
+ handler, offsets, resultp, lengthp);
+
+ freea (to_codeset_suffixed);
+
+ return retval;
+ }
+ else
+#endif
+ return mem_iconveha_notranslit (src, srclen,
+ from_codeset, to_codeset,
+ handler, offsets, resultp, lengthp);
+}
+
+/* Like str_iconveha, except no handling of transliteration. */
+static char *
+str_iconveha_notranslit (const char *src,
+ const char *from_codeset, const char *to_codeset,
+ enum iconv_ilseq_handler handler)
+{
+ char *result = str_iconveh (src, from_codeset, to_codeset, handler);
+
+ if (result != NULL || errno != EINVAL)
+ return result;
+ else
+ {
+ struct autodetect_alias *alias;
+
+ /* Unsupported from_codeset or to_codeset. Check whether the caller
+ requested autodetection. */
+ for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ if (strcmp (from_codeset, alias->name) == 0)
+ {
+ const char * const *encodings;
+
+ if (handler != iconveh_error)
+ {
+ /* First try all encodings without any forgiving. */
+ encodings = alias->encodings_to_try;
+ do
+ {
+ result = str_iconveha_notranslit (src,
+ *encodings, to_codeset,
+ iconveh_error);
+ if (!(result == NULL && errno == EILSEQ))
+ return result;
+ encodings++;
+ }
+ while (*encodings != NULL);
+ }
+
+ encodings = alias->encodings_to_try;
+ do
+ {
+ result = str_iconveha_notranslit (src,
+ *encodings, to_codeset,
+ handler);
+ if (!(result == NULL && errno == EILSEQ))
+ return result;
+ encodings++;
+ }
+ while (*encodings != NULL);
+
+ /* Return the last call's result. */
+ return NULL;
+ }
+
+ /* It wasn't an autodetection name. */
+ errno = EINVAL;
+ return NULL;
+ }
+}
+
+char *
+str_iconveha (const char *src,
+ const char *from_codeset, const char *to_codeset,
+ bool transliterate,
+ enum iconv_ilseq_handler handler)
+{
+ if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0)
+ {
+ char *result = strdup (src);
+
+ if (result == NULL)
+ errno = ENOMEM;
+ return result;
+ }
+
+ /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
+ we want to use transliteration. */
+#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ if (transliterate)
+ {
+ char *result;
+ size_t len = strlen (to_codeset);
+ char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
+ memcpy (to_codeset_suffixed, to_codeset, len);
+ memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
+
+ result = str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed,
+ handler);
+
+ freea (to_codeset_suffixed);
+
+ return result;
+ }
+ else
+#endif
+ return str_iconveha_notranslit (src, from_codeset, to_codeset, handler);
+}
diff --git a/lib/striconveha.h b/lib/striconveha.h
new file mode 100644
index 0000000..c88eb52
--- /dev/null
+++ b/lib/striconveha.h
@@ -0,0 +1,95 @@
+/* Character set conversion with error handling and autodetection.
+ Copyright (C) 2002, 2005, 2007-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible.
+
+ 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/>. */
+
+#ifndef _STRICONVEHA_H
+#define _STRICONVEHA_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#include "iconveh.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is at [SRC,...,SRC+SRCLEN-1].
+ The "from" encoding can also be a name defined for autodetection.
+ If TRANSLITERATE is true, transliteration will attempted to avoid conversion
+ errors, for iconv implementations that support this. Usually you'll choose
+ TRANSLITERATE = true if HANDLER != iconveh_error.
+ If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+ array is filled with offsets into the result, i.e. the character starting
+ at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+ and other offsets are set to (size_t)(-1).
+ *RESULTP and *LENGTH should initially be a scratch buffer and its size,
+ or *RESULTP can initially be NULL.
+ May erase the contents of the memory at *RESULTP.
+ Return value: 0 if successful, otherwise -1 and errno set.
+ If successful: The resulting string is stored in *RESULTP and its length
+ in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is
+ unchanged if no dynamic memory allocation was necessary. */
+extern int
+ mem_iconveha (const char *src, size_t srclen,
+ const char *from_codeset, const char *to_codeset,
+ bool transliterate,
+ enum iconv_ilseq_handler handler,
+ size_t *offsets,
+ char **resultp, size_t *lengthp);
+
+/* Convert an entire string from one encoding to another, using iconv.
+ The original string is the NUL-terminated string starting at SRC.
+ Both the "from" and the "to" encoding must use a single NUL byte at the
+ end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32).
+ The "from" encoding can also be a name defined for autodetection.
+ If TRANSLITERATE is true, transliteration will attempted to avoid conversion
+ errors, for iconv implementations that support this. Usually you'll choose
+ TRANSLITERATE = true if HANDLER != iconveh_error.
+ Allocate a malloced memory block for the result.
+ Return value: the freshly allocated resulting NUL-terminated string if
+ successful, otherwise NULL and errno set. */
+extern char *
+ str_iconveha (const char *src,
+ const char *from_codeset, const char *to_codeset,
+ bool transliterate,
+ enum iconv_ilseq_handler handler);
+
+
+/* In the above, FROM_CODESET can also be one of the following values:
+ "autodetect_utf8" supports ISO-8859-1 and UTF-8
+ "autodetect_jp" supports EUC-JP, ISO-2022-JP-2 and SHIFT_JIS
+ "autodetect_kr" supports EUC-KR and ISO-2022-KR
+ More names can be defined for autodetection. */
+
+/* Registers an encoding name for autodetection.
+ TRY_IN_ORDER is a NULL terminated list of encodings to be tried.
+ Returns 0 upon success, or -1 (with errno set) in case of error.
+ Particular errno values: ENOMEM. */
+extern int
+ uniconv_register_autodetect (const char *name,
+ const char * const *try_in_order);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _STRICONVEHA_H */
diff --git a/lib/string.in.h b/lib/string.in.h
new file mode 100644
index 0000000..fe11425
--- /dev/null
+++ b/lib/string.in.h
@@ -0,0 +1,620 @@
+/* A GNU-like <string.h>.
+
+ Copyright (C) 1995-1996, 2001-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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_STRING_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STRING_H@
+
+#ifndef _GL_STRING_H
+#define _GL_STRING_H
+
+
+#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 attribute __pure__ was added in gcc 2.96. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
+# define __pure__ /* empty */
+# endif
+#endif
+
+
+/* The definition of GL_LINK_WARNING is copied here. */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Return the first instance of C within N bytes of S, or NULL. */
+#if @GNULIB_MEMCHR@
+# if @REPLACE_MEMCHR@
+# define memchr rpl_memchr
+extern void *memchr (void const *__s, int __c, size_t __n)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memchr
+# define memchr(s,c,n) \
+ (GL_LINK_WARNING ("memchr has platform-specific bugs - " \
+ "use gnulib module memchr for portability" ), \
+ memchr (s, c, n))
+#endif
+
+/* Return the first occurrence of NEEDLE in HAYSTACK. */
+#if @GNULIB_MEMMEM@
+# if @REPLACE_MEMMEM@
+# define memmem rpl_memmem
+# endif
+# if ! @HAVE_DECL_MEMMEM@ || @REPLACE_MEMMEM@
+extern void *memmem (void const *__haystack, size_t __haystack_len,
+ void const *__needle, size_t __needle_len)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memmem
+# define memmem(a,al,b,bl) \
+ (GL_LINK_WARNING ("memmem is unportable and often quadratic - " \
+ "use gnulib module memmem-simple for portability, " \
+ "and module memmem for speed" ), \
+ memmem (a, al, b, bl))
+#endif
+
+/* Copy N bytes of SRC to DEST, return pointer to bytes after the
+ last written byte. */
+#if @GNULIB_MEMPCPY@
+# if ! @HAVE_MEMPCPY@
+extern void *mempcpy (void *restrict __dest, void const *restrict __src,
+ size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mempcpy
+# define mempcpy(a,b,n) \
+ (GL_LINK_WARNING ("mempcpy is unportable - " \
+ "use gnulib module mempcpy for portability"), \
+ mempcpy (a, b, n))
+#endif
+
+/* Search backwards through a block for a byte (specified as an int). */
+#if @GNULIB_MEMRCHR@
+# if ! @HAVE_DECL_MEMRCHR@
+extern void *memrchr (void const *, int, size_t)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memrchr
+# define memrchr(a,b,c) \
+ (GL_LINK_WARNING ("memrchr is unportable - " \
+ "use gnulib module memrchr for portability"), \
+ memrchr (a, b, c))
+#endif
+
+/* Find the first occurrence of C in S. More efficient than
+ memchr(S,C,N), at the expense of undefined behavior if C does not
+ occur within N bytes. */
+#if @GNULIB_RAWMEMCHR@
+# if ! @HAVE_RAWMEMCHR@
+extern void *rawmemchr (void const *__s, int __c_in)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef rawmemchr
+# define rawmemchr(a,b) \
+ (GL_LINK_WARNING ("rawmemchr is unportable - " \
+ "use gnulib module rawmemchr for portability"), \
+ rawmemchr (a, b))
+#endif
+
+/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */
+#if @GNULIB_STPCPY@
+# if ! @HAVE_STPCPY@
+extern char *stpcpy (char *restrict __dst, char const *restrict __src);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpcpy
+# define stpcpy(a,b) \
+ (GL_LINK_WARNING ("stpcpy is unportable - " \
+ "use gnulib module stpcpy for portability"), \
+ stpcpy (a, b))
+#endif
+
+/* Copy no more than N bytes of SRC to DST, returning a pointer past the
+ last non-NUL byte written into DST. */
+#if @GNULIB_STPNCPY@
+# if ! @HAVE_STPNCPY@
+# define stpncpy gnu_stpncpy
+extern char *stpncpy (char *restrict __dst, char const *restrict __src,
+ size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpncpy
+# define stpncpy(a,b,n) \
+ (GL_LINK_WARNING ("stpncpy is unportable - " \
+ "use gnulib module stpncpy for portability"), \
+ stpncpy (a, b, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strchr() does not work with multibyte strings if the locale encoding is
+ GB18030 and the character to be searched is a digit. */
+# undef strchr
+# define strchr(s,c) \
+ (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \
+ "in some multibyte locales - " \
+ "use mbschr if you care about internationalization"), \
+ strchr (s, c))
+#endif
+
+/* Find the first occurrence of C in S or the final NUL byte. */
+#if @GNULIB_STRCHRNUL@
+# if ! @HAVE_STRCHRNUL@
+extern char *strchrnul (char const *__s, int __c_in)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strchrnul
+# define strchrnul(a,b) \
+ (GL_LINK_WARNING ("strchrnul is unportable - " \
+ "use gnulib module strchrnul for portability"), \
+ strchrnul (a, b))
+#endif
+
+/* Duplicate S, returning an identical malloc'd string. */
+#if @GNULIB_STRDUP@
+# if @REPLACE_STRDUP@
+# undef strdup
+# define strdup rpl_strdup
+# endif
+# if !(@HAVE_DECL_STRDUP@ || defined strdup) || @REPLACE_STRDUP@
+extern char *strdup (char const *__s);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strdup
+# define strdup(a) \
+ (GL_LINK_WARNING ("strdup is unportable - " \
+ "use gnulib module strdup for portability"), \
+ strdup (a))
+#endif
+
+/* Return a newly allocated copy of at most N bytes of STRING. */
+#if @GNULIB_STRNDUP@
+# if ! @HAVE_STRNDUP@
+# undef strndup
+# define strndup rpl_strndup
+# endif
+# if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@
+extern char *strndup (char const *__string, size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strndup
+# define strndup(a,n) \
+ (GL_LINK_WARNING ("strndup is unportable - " \
+ "use gnulib module strndup for portability"), \
+ strndup (a, n))
+#endif
+
+/* Find the length (number of bytes) of STRING, but scan at most
+ MAXLEN bytes. If no '\0' terminator is found in that many bytes,
+ return MAXLEN. */
+#if @GNULIB_STRNLEN@
+# if ! @HAVE_DECL_STRNLEN@
+extern size_t strnlen (char const *__string, size_t __maxlen)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strnlen
+# define strnlen(a,n) \
+ (GL_LINK_WARNING ("strnlen is unportable - " \
+ "use gnulib module strnlen for portability"), \
+ strnlen (a, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strcspn() assumes the second argument is a list of single-byte characters.
+ Even in this simple case, it does not work with multibyte strings if the
+ locale encoding is GB18030 and one of the characters to be searched is a
+ digit. */
+# undef strcspn
+# define strcspn(s,a) \
+ (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbscspn if you care about internationalization"), \
+ strcspn (s, a))
+#endif
+
+/* Find the first occurrence in S of any character in ACCEPT. */
+#if @GNULIB_STRPBRK@
+# if ! @HAVE_STRPBRK@
+extern char *strpbrk (char const *__s, char const *__accept)
+ __attribute__ ((__pure__));
+# endif
+# if defined GNULIB_POSIXCHECK
+/* strpbrk() assumes the second argument is a list of single-byte characters.
+ Even in this simple case, it does not work with multibyte strings if the
+ locale encoding is GB18030 and one of the characters to be searched is a
+ digit. */
+# undef strpbrk
+# define strpbrk(s,a) \
+ (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbspbrk if you care about internationalization"), \
+ strpbrk (s, a))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strpbrk
+# define strpbrk(s,a) \
+ (GL_LINK_WARNING ("strpbrk is unportable - " \
+ "use gnulib module strpbrk for portability"), \
+ strpbrk (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strspn() assumes the second argument is a list of single-byte characters.
+ Even in this simple case, it cannot work with multibyte strings. */
+# undef strspn
+# define strspn(s,a) \
+ (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbsspn if you care about internationalization"), \
+ strspn (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strrchr() does not work with multibyte strings if the locale encoding is
+ GB18030 and the character to be searched is a digit. */
+# undef strrchr
+# define strrchr(s,c) \
+ (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \
+ "in some multibyte locales - " \
+ "use mbsrchr if you care about internationalization"), \
+ strrchr (s, c))
+#endif
+
+/* Search the next delimiter (char listed in DELIM) starting at *STRINGP.
+ If one is found, overwrite it with a NUL, and advance *STRINGP
+ to point to the next char after it. Otherwise, set *STRINGP to NULL.
+ If *STRINGP was already NULL, nothing happens.
+ Return the old value of *STRINGP.
+
+ This is a variant of strtok() that is multithread-safe and supports
+ empty fields.
+
+ Caveat: It modifies the original string.
+ Caveat: These functions cannot be used on constant strings.
+ Caveat: The identity of the delimiting character is lost.
+ Caveat: It doesn't work with multibyte strings unless all of the delimiter
+ characters are ASCII characters < 0x30.
+
+ See also strtok_r(). */
+#if @GNULIB_STRSEP@
+# if ! @HAVE_STRSEP@
+extern char *strsep (char **restrict __stringp, char const *restrict __delim);
+# endif
+# if defined GNULIB_POSIXCHECK
+# undef strsep
+# define strsep(s,d) \
+ (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbssep if you care about internationalization"), \
+ strsep (s, d))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strsep
+# define strsep(s,d) \
+ (GL_LINK_WARNING ("strsep is unportable - " \
+ "use gnulib module strsep for portability"), \
+ strsep (s, d))
+#endif
+
+#if @GNULIB_STRSTR@
+# if @REPLACE_STRSTR@
+# define strstr rpl_strstr
+char *strstr (const char *haystack, const char *needle)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+/* strstr() does not work with multibyte strings if the locale encoding is
+ different from UTF-8:
+ POSIX says that it operates on "strings", and "string" in POSIX is defined
+ as a sequence of bytes, not of characters. */
+# undef strstr
+# define strstr(a,b) \
+ (GL_LINK_WARNING ("strstr is quadratic on many systems, and cannot " \
+ "work correctly on character strings in most " \
+ "multibyte locales - " \
+ "use mbsstr if you care about internationalization, " \
+ "or use strstr if you care about speed"), \
+ strstr (a, b))
+#endif
+
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+ comparison. */
+#if @GNULIB_STRCASESTR@
+# if @REPLACE_STRCASESTR@
+# define strcasestr rpl_strcasestr
+# endif
+# if ! @HAVE_STRCASESTR@ || @REPLACE_STRCASESTR@
+extern char *strcasestr (const char *haystack, const char *needle)
+ __attribute__ ((__pure__));
+# endif
+#elif defined GNULIB_POSIXCHECK
+/* strcasestr() does not work with multibyte strings:
+ It is a glibc extension, and glibc implements it only for unibyte
+ locales. */
+# undef strcasestr
+# define strcasestr(a,b) \
+ (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbscasestr if you care about " \
+ "internationalization, or use c-strcasestr if you want " \
+ "a locale independent function"), \
+ strcasestr (a, b))
+#endif
+
+/* Parse S into tokens separated by characters in DELIM.
+ If S is NULL, the saved pointer in SAVE_PTR is used as
+ the next starting point. For example:
+ char s[] = "-abc-=-def";
+ char *sp;
+ x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def"
+ x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL
+ x = strtok_r(NULL, "=", &sp); // x = NULL
+ // s = "abc\0-def\0"
+
+ This is a variant of strtok() that is multithread-safe.
+
+ For the POSIX documentation for this function, see:
+ http://www.opengroup.org/susv3xsh/strtok.html
+
+ Caveat: It modifies the original string.
+ Caveat: These functions cannot be used on constant strings.
+ Caveat: The identity of the delimiting character is lost.
+ Caveat: It doesn't work with multibyte strings unless all of the delimiter
+ characters are ASCII characters < 0x30.
+
+ See also strsep(). */
+#if @GNULIB_STRTOK_R@
+# if ! @HAVE_DECL_STRTOK_R@
+extern char *strtok_r (char *restrict s, char const *restrict delim,
+ char **restrict save_ptr);
+# endif
+# if defined GNULIB_POSIXCHECK
+# undef strtok_r
+# define strtok_r(s,d,p) \
+ (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \
+ "in multibyte locales - " \
+ "use mbstok_r if you care about internationalization"), \
+ strtok_r (s, d, p))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtok_r
+# define strtok_r(s,d,p) \
+ (GL_LINK_WARNING ("strtok_r is unportable - " \
+ "use gnulib module strtok_r for portability"), \
+ strtok_r (s, d, p))
+#endif
+
+
+/* The following functions are not specified by POSIX. They are gnulib
+ extensions. */
+
+#if @GNULIB_MBSLEN@
+/* Return the number of multibyte characters in the character string STRING.
+ This considers multibyte characters, unlike strlen, which counts bytes. */
+extern size_t mbslen (const char *string);
+#endif
+
+#if @GNULIB_MBSNLEN@
+/* Return the number of multibyte characters in the character string starting
+ at STRING and ending at STRING + LEN. */
+extern size_t mbsnlen (const char *string, size_t len);
+#endif
+
+#if @GNULIB_MBSCHR@
+/* Locate the first single-byte character C in the character string STRING,
+ and return a pointer to it. Return NULL if C is not found in STRING.
+ Unlike strchr(), this function works correctly in multibyte locales with
+ encodings such as GB18030. */
+# define mbschr rpl_mbschr /* avoid collision with HP-UX function */
+extern char * mbschr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSRCHR@
+/* Locate the last single-byte character C in the character string STRING,
+ and return a pointer to it. Return NULL if C is not found in STRING.
+ Unlike strrchr(), this function works correctly in multibyte locales with
+ encodings such as GB18030. */
+# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+extern char * mbsrchr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSSTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+ string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK.
+ Unlike strstr(), this function works correctly in multibyte locales with
+ encodings different from UTF-8. */
+extern char * mbsstr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCASECMP@
+/* Compare the character strings S1 and S2, ignoring case, returning less than,
+ equal to or greater than zero if S1 is lexicographically less than, equal to
+ or greater than S2.
+ Note: This function may, in multibyte locales, return 0 for strings of
+ different lengths!
+ Unlike strcasecmp(), this function works correctly in multibyte locales. */
+extern int mbscasecmp (const char *s1, const char *s2);
+#endif
+
+#if @GNULIB_MBSNCASECMP@
+/* Compare the initial segment of the character string S1 consisting of at most
+ N characters with the initial segment of the character string S2 consisting
+ of at most N characters, ignoring case, returning less than, equal to or
+ greater than zero if the initial segment of S1 is lexicographically less
+ than, equal to or greater than the initial segment of S2.
+ Note: This function may, in multibyte locales, return 0 for initial segments
+ of different lengths!
+ Unlike strncasecmp(), this function works correctly in multibyte locales.
+ But beware that N is not a byte count but a character count! */
+extern int mbsncasecmp (const char *s1, const char *s2, size_t n);
+#endif
+
+#if @GNULIB_MBSPCASECMP@
+/* Compare the initial segment of the character string STRING consisting of
+ at most mbslen (PREFIX) characters with the character string PREFIX,
+ ignoring case, returning less than, equal to or greater than zero if this
+ initial segment is lexicographically less than, equal to or greater than
+ PREFIX.
+ Note: This function may, in multibyte locales, return 0 if STRING is of
+ smaller length than PREFIX!
+ Unlike strncasecmp(), this function works correctly in multibyte
+ locales. */
+extern char * mbspcasecmp (const char *string, const char *prefix);
+#endif
+
+#if @GNULIB_MBSCASESTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+ string HAYSTACK, using case-insensitive comparison.
+ Note: This function may, in multibyte locales, return success even if
+ strlen (haystack) < strlen (needle) !
+ Unlike strcasestr(), this function works correctly in multibyte locales. */
+extern char * mbscasestr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCSPN@
+/* Find the first occurrence in the character string STRING of any character
+ in the character string ACCEPT. Return the number of bytes from the
+ beginning of the string to this occurrence, or to the end of the string
+ if none exists.
+ Unlike strcspn(), this function works correctly in multibyte locales. */
+extern size_t mbscspn (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSPBRK@
+/* Find the first occurrence in the character string STRING of any character
+ in the character string ACCEPT. Return the pointer to it, or NULL if none
+ exists.
+ Unlike strpbrk(), this function works correctly in multibyte locales. */
+# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
+extern char * mbspbrk (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSSPN@
+/* Find the first occurrence in the character string STRING of any character
+ not in the character string REJECT. Return the number of bytes from the
+ beginning of the string to this occurrence, or to the end of the string
+ if none exists.
+ Unlike strspn(), this function works correctly in multibyte locales. */
+extern size_t mbsspn (const char *string, const char *reject);
+#endif
+
+#if @GNULIB_MBSSEP@
+/* Search the next delimiter (multibyte character listed in the character
+ string DELIM) starting at the character string *STRINGP.
+ If one is found, overwrite it with a NUL, and advance *STRINGP to point
+ to the next multibyte character after it. Otherwise, set *STRINGP to NULL.
+ If *STRINGP was already NULL, nothing happens.
+ Return the old value of *STRINGP.
+
+ This is a variant of mbstok_r() that supports empty fields.
+
+ Caveat: It modifies the original string.
+ Caveat: These functions cannot be used on constant strings.
+ Caveat: The identity of the delimiting character is lost.
+
+ See also mbstok_r(). */
+extern char * mbssep (char **stringp, const char *delim);
+#endif
+
+#if @GNULIB_MBSTOK_R@
+/* Parse the character string STRING into tokens separated by characters in
+ the character string DELIM.
+ If STRING is NULL, the saved pointer in SAVE_PTR is used as
+ the next starting point. For example:
+ char s[] = "-abc-=-def";
+ char *sp;
+ x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def"
+ x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL
+ x = mbstok_r(NULL, "=", &sp); // x = NULL
+ // s = "abc\0-def\0"
+
+ Caveat: It modifies the original string.
+ Caveat: These functions cannot be used on constant strings.
+ Caveat: The identity of the delimiting character is lost.
+
+ See also mbssep(). */
+extern char * mbstok_r (char *string, const char *delim, char **save_ptr);
+#endif
+
+/* Map any int, typically from errno, into an error message. */
+#if @GNULIB_STRERROR@
+# if @REPLACE_STRERROR@
+# undef strerror
+# define strerror rpl_strerror
+extern char *strerror (int);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strerror
+# define strerror(e) \
+ (GL_LINK_WARNING ("strerror is unportable - " \
+ "use gnulib module strerror to guarantee non-NULL result"), \
+ strerror (e))
+#endif
+
+#if @GNULIB_STRSIGNAL@
+# if @REPLACE_STRSIGNAL@
+# define strsignal rpl_strsignal
+# endif
+# if ! @HAVE_DECL_STRSIGNAL@ || @REPLACE_STRSIGNAL@
+extern char *strsignal (int __sig);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strsignal
+# define strsignal(a) \
+ (GL_LINK_WARNING ("strsignal is unportable - " \
+ "use gnulib module strsignal for portability"), \
+ strsignal (a))
+#endif
+
+#if @GNULIB_STRVERSCMP@
+# if !@HAVE_STRVERSCMP@
+extern int strverscmp (const char *, const char *);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strverscmp
+# define strverscmp(a, b) \
+ (GL_LINK_WARNING ("strverscmp is unportable - " \
+ "use gnulib module strverscmp for portability"), \
+ strverscmp (a, b))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STRING_H */
+#endif /* _GL_STRING_H */
diff --git a/lib/unicase.h b/lib/unicase.h
new file mode 100644
index 0000000..e360ef4
--- /dev/null
+++ b/lib/unicase.h
@@ -0,0 +1,457 @@
+/* Unicode character case mappings.
+ Copyright (C) 2002, 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/>. */
+
+#ifndef _UNICASE_H
+#define _UNICASE_H
+
+#include "unitypes.h"
+
+/* Get bool. */
+#include <unistring/stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get uninorm_t. */
+#include "uninorm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Character case mappings.
+ These mappings are locale and context independent.
+ WARNING! These functions are not sufficient for languages such as German.
+ Better use the functions below that treat an entire string at once and are
+ language aware. */
+
+/* Return the uppercase mapping of a Unicode character. */
+extern ucs4_t
+ uc_toupper (ucs4_t uc);
+
+/* Return the lowercase mapping of a Unicode character. */
+extern ucs4_t
+ uc_tolower (ucs4_t uc);
+
+/* Return the titlecase mapping of a Unicode character. */
+extern ucs4_t
+ uc_totitle (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* String case mappings. */
+
+/* These functions are locale dependent. The iso639_language argument
+ identifies the language (e.g. "tr" for Turkish). NULL means to use
+ locale independent case mappings. */
+
+/* Return the ISO 639 language code of the current locale.
+ Return "" if it is unknown, or in the "C" locale. */
+extern const char *
+ uc_locale_language (void);
+
+/* Conventions:
+
+ All functions prefixed with u8_ operate on UTF-8 encoded strings.
+ Their unit is an uint8_t (1 byte).
+
+ All functions prefixed with u16_ operate on UTF-16 encoded strings.
+ Their unit is an uint16_t (a 2-byte word).
+
+ All functions prefixed with u32_ operate on UCS-4 encoded strings.
+ Their unit is an uint32_t (a 4-byte word).
+
+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+ n units.
+
+ Functions returning a string result take a (resultbuf, lengthp) argument
+ pair. If resultbuf is not NULL and the result fits into *lengthp units,
+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly
+ allocated string is returned. In both cases, *lengthp is set to the
+ length (number of units) of the returned string. In case of error,
+ NULL is returned and errno is set. */
+
+/* Return the uppercase mapping of a string.
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It can also be NULL, for no normalization. */
+extern uint8_t *
+ u8_toupper (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_toupper (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_toupper (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the lowercase mapping of a string.
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It can also be NULL, for no normalization. */
+extern uint8_t *
+ u8_tolower (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_tolower (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_tolower (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the titlecase mapping of a string.
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It can also be NULL, for no normalization. */
+extern uint8_t *
+ u8_totitle (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_totitle (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_totitle (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* The case-mapping context given by a prefix string. */
+typedef struct casing_prefix_context
+ {
+ /* These fields are private, undocumented. */
+ uint32_t last_char_except_ignorable;
+ uint32_t last_char_normal_or_above;
+ }
+ casing_prefix_context_t;
+/* The case-mapping context of the empty prefix string. */
+extern LIBUNISTRING_DLL_VARIABLE const casing_prefix_context_t unicase_empty_prefix_context;
+/* Return the case-mapping context of a given prefix string. */
+extern casing_prefix_context_t
+ u8_casing_prefix_context (const uint8_t *s, size_t n);
+extern casing_prefix_context_t
+ u16_casing_prefix_context (const uint16_t *s, size_t n);
+extern casing_prefix_context_t
+ u32_casing_prefix_context (const uint32_t *s, size_t n);
+/* Return the case-mapping context of the prefix concat(A, S), given the
+ case-mapping context of the prefix A. */
+extern casing_prefix_context_t
+ u8_casing_prefixes_context (const uint8_t *s, size_t n,
+ casing_prefix_context_t a_context);
+extern casing_prefix_context_t
+ u16_casing_prefixes_context (const uint16_t *s, size_t n,
+ casing_prefix_context_t a_context);
+extern casing_prefix_context_t
+ u32_casing_prefixes_context (const uint32_t *s, size_t n,
+ casing_prefix_context_t a_context);
+
+/* The case-mapping context given by a suffix string. */
+typedef struct casing_suffix_context
+ {
+ /* These fields are private, undocumented. */
+ uint32_t first_char_except_ignorable;
+ uint32_t bits;
+ }
+ casing_suffix_context_t;
+/* The case-mapping context of the empty suffix string. */
+extern LIBUNISTRING_DLL_VARIABLE const casing_suffix_context_t unicase_empty_suffix_context;
+/* Return the case-mapping context of a given suffix string. */
+extern casing_suffix_context_t
+ u8_casing_suffix_context (const uint8_t *s, size_t n);
+extern casing_suffix_context_t
+ u16_casing_suffix_context (const uint16_t *s, size_t n);
+extern casing_suffix_context_t
+ u32_casing_suffix_context (const uint32_t *s, size_t n);
+/* Return the case-mapping context of the suffix concat(S, A), given the
+ case-mapping context of the suffix A. */
+extern casing_suffix_context_t
+ u8_casing_suffixes_context (const uint8_t *s, size_t n,
+ casing_suffix_context_t a_context);
+extern casing_suffix_context_t
+ u16_casing_suffixes_context (const uint16_t *s, size_t n,
+ casing_suffix_context_t a_context);
+extern casing_suffix_context_t
+ u32_casing_suffixes_context (const uint32_t *s, size_t n,
+ casing_suffix_context_t a_context);
+
+/* Return the uppercase mapping of a string that is surrounded by a prefix
+ and a suffix. */
+extern uint8_t *
+ u8_ct_toupper (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_ct_toupper (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_ct_toupper (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the lowercase mapping of a string that is surrounded by a prefix
+ and a suffix. */
+extern uint8_t *
+ u8_ct_tolower (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_ct_tolower (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_ct_tolower (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the titlecase mapping of a string that is surrounded by a prefix
+ and a suffix. */
+extern uint8_t *
+ u8_ct_totitle (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_ct_totitle (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_ct_totitle (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the case folded string.
+ Comparing uN_casefold (S1) and uN_casefold (S2) with uN_cmp2() is equivalent
+ to comparing S1 and S2 with uN_casecmp().
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It can also be NULL, for no normalization. */
+extern uint8_t *
+ u8_casefold (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_casefold (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_casefold (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+/* Likewise, for a string that is surrounded by a prefix and a suffix. */
+extern uint8_t *
+ u8_ct_casefold (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_ct_casefold (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_ct_casefold (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Compare S1 and S2, ignoring differences in case and normalization.
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It can also be NULL, for no normalization.
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_casecmp (const uint8_t *s1, size_t n1,
+ const uint8_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ u16_casecmp (const uint16_t *s1, size_t n1,
+ const uint16_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ u32_casecmp (const uint32_t *s1, size_t n1,
+ const uint32_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ ulc_casecmp (const char *s1, size_t n1,
+ const char *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+
+/* Convert the string S of length N to a NUL-terminated byte sequence, in such
+ a way that comparing uN_casexfrm (S1) and uN_casexfrm (S2) with the gnulib
+ function memcmp2() is equivalent to comparing S1 and S2 with uN_casecoll().
+ NF must be either UNINORM_NFC, UNINORM_NFKC, or NULL for no normalization. */
+extern char *
+ u8_casexfrm (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+ u16_casexfrm (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+ u32_casexfrm (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+ ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
+ uninorm_t nf, char *resultbuf, size_t *lengthp);
+
+/* Compare S1 and S2, ignoring differences in case and normalization, using the
+ collation rules of the current locale.
+ The nf argument identifies the normalization form to apply after the
+ case-mapping. It must be either UNINORM_NFC or UNINORM_NFKC. It can also
+ be NULL, for no normalization.
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_casecoll (const uint8_t *s1, size_t n1,
+ const uint8_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ u16_casecoll (const uint16_t *s1, size_t n1,
+ const uint16_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ u32_casecoll (const uint32_t *s1, size_t n1,
+ const uint32_t *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+ ulc_casecoll (const char *s1, size_t n1,
+ const char *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp);
+
+
+/* Set *RESULTP to true if mapping NFD(S) to upper case is a no-op, or to false
+ otherwise, and return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_is_uppercase (const uint8_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_uppercase (const uint16_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_uppercase (const uint32_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+
+/* Set *RESULTP to true if mapping NFD(S) to lower case is a no-op, or to false
+ otherwise, and return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_is_lowercase (const uint8_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_lowercase (const uint16_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_lowercase (const uint32_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+
+/* Set *RESULTP to true if mapping NFD(S) to title case is a no-op, or to false
+ otherwise, and return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_is_titlecase (const uint8_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_titlecase (const uint16_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_titlecase (const uint32_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+
+/* Set *RESULTP to true if applying case folding to NFD(S) is a no-op, or to
+ false otherwise, and return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_is_casefolded (const uint8_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_casefolded (const uint16_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_casefolded (const uint32_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+
+/* Set *RESULTP to true if case matters for S, that is, if mapping NFD(S) to
+ either upper case or lower case or title case is not a no-op.
+ Set *RESULTP to false if NFD(S) maps to itself under the upper case mapping,
+ under the lower case mapping, and under the title case mapping; in other
+ words, when NFD(S) consists entirely of caseless characters.
+ Upon failure, return -1 with errno set. */
+extern int
+ u8_is_cased (const uint8_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_cased (const uint16_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_cased (const uint32_t *s, size_t n,
+ const char *iso639_language,
+ bool *resultp);
+
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICASE_H */
diff --git a/lib/unicase/cased.c b/lib/unicase/cased.c
new file mode 100644
index 0000000..5fbf4cb
--- /dev/null
+++ b/lib/unicase/cased.c
@@ -0,0 +1,53 @@
+/* Test whether a Unicode character is cased.
+ Copyright (C) 2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "caseprop.h"
+
+/* Quoting the Unicode standard:
+ Definition: A character is defined to be "cased" if it has the Lowercase
+ or Uppercase property or has a General_Category value of
+ Titlecase_Letter. */
+
+#if 0
+
+#include "unictype.h"
+
+bool
+uc_is_cased (ucs4_t uc)
+{
+ return (uc_is_property_lowercase (uc)
+ || uc_is_property_uppercase (uc)
+ || uc_is_general_category (uc, UC_TITLECASE_LETTER));
+}
+
+#else
+
+#include "unictype/bitmap.h"
+
+/* Define u_casing_property_cased table. */
+#include "cased.h"
+
+bool
+uc_is_cased (ucs4_t uc)
+{
+ return bitmap_lookup (&u_casing_property_cased, uc);
+}
+
+#endif
diff --git a/lib/unicase/cased.h b/lib/unicase/cased.h
new file mode 100644
index 0000000..ea2c2ea
--- /dev/null
+++ b/lib/unicase/cased.h
@@ -0,0 +1,343 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Casing Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[15 << 4];
+ }
+u_casing_property_cased =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xF7FFFFFF, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFEFFFFF, 0x01FFFFFF, 0x00000003, 0x0000001F,
+ 0x00000000, 0x00000000, 0x00000020, 0x3CCF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x007FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E2FFC84, 0xF21FBD50, 0x000043E0, 0xFFFFFFFF,
+ 0x00000018, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000018FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000
+ }
+};
diff --git a/lib/unicase/casefold.h b/lib/unicase/casefold.h
new file mode 100644
index 0000000..d1f434c
--- /dev/null
+++ b/lib/unicase/casefold.h
@@ -0,0 +1,22 @@
+/* Casefolding of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 "unitypes.h"
+
+/* Return the casefold mapping of a Unicode character. */
+extern ucs4_t
+ uc_tocasefold (ucs4_t uc);
diff --git a/lib/unicase/caseprop.h b/lib/unicase/caseprop.h
new file mode 100644
index 0000000..f84453e
--- /dev/null
+++ b/lib/unicase/caseprop.h
@@ -0,0 +1,32 @@
+/* Case related properties of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 <stdbool.h>
+#include "unitypes.h"
+
+/* Determine whether a character is "cased" according to the Unicode Standard,
+ <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
+ definition D120. */
+extern bool
+ uc_is_cased (ucs4_t uc);
+
+/* Determine whether a character is "case-ignorable"
+ according to the Unicode Standard,
+ <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
+ definition D121. */
+extern bool
+ uc_is_case_ignorable (ucs4_t uc);
diff --git a/lib/unicase/context.h b/lib/unicase/context.h
new file mode 100644
index 0000000..6a35798
--- /dev/null
+++ b/lib/unicase/context.h
@@ -0,0 +1,65 @@
+/* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+
+/* The context of a prefix string combines the information of the "Before C"
+ conditions of the Unicode Standard,
+ <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
+ table 3-14 "Context Specification for Casing".
+
+ casing_prefix_context_t contains the following fields:
+
+ // Helper for evaluating the FINAL_SIGMA condition:
+ // Last character that was not case-ignorable.
+ ucs4_t last_char_except_ignorable;
+
+ // Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions:
+ // Last character that was of combining class 230 ("Above") or 0.
+ ucs4_t last_char_normal_or_above;
+
+ Three bits would be sufficient to carry the context information, but
+ that would require to invoke uc_is_cased and uc_is_property_soft_dotted
+ ahead of time, more often than actually needed. */
+
+
+/* The context of a suffix string combines the information of the "After C"
+ conditions of the Unicode Standard,
+ <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
+ table 3-14 "Context Specification for Casing".
+
+ casing_suffix_context_t contains the following fields:
+
+ // For evaluating the FINAL_SIGMA condition:
+ // First character that was not case-ignorable.
+ ucs4_t first_char_except_ignorable;
+
+ // For evaluating the MORE_ABOVE condition:
+ // Bit 0 is set if the suffix contains a character of combining class
+ // 230 (Above) with no character of combining class 0 or 230 (Above)
+ // before it.
+ //
+ // For evaluating the BEFORE_DOT condition:
+ // Bit 1 is set if the suffix contains a COMBINING DOT ABOVE (U+0307)
+ // with no character of combining class 0 or 230 (Above) before it.
+ //
+ uint32_t bits;
+
+ Three bits would be sufficient to carry the context information, but
+ that would require to invoke uc_is_cased ahead of time, more often than
+ actually needed. */
+#define SCC_MORE_ABOVE_MASK 1
+#define SCC_BEFORE_DOT_MASK 2
diff --git a/lib/unicase/empty-prefix-context.c b/lib/unicase/empty-prefix-context.c
new file mode 100644
index 0000000..3c46e9e
--- /dev/null
+++ b/lib/unicase/empty-prefix-context.c
@@ -0,0 +1,27 @@
+/* Case-mapping context of empty prefix string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+const casing_prefix_context_t unicase_empty_prefix_context =
+ {
+ 0xFFFD /* last_char_except_ignorable */,
+ 0xFFFD /* last_char_normal_or_above */
+ };
diff --git a/lib/unicase/empty-suffix-context.c b/lib/unicase/empty-suffix-context.c
new file mode 100644
index 0000000..4e00bff
--- /dev/null
+++ b/lib/unicase/empty-suffix-context.c
@@ -0,0 +1,27 @@
+/* Case-mapping context of empty suffix string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+const casing_suffix_context_t unicase_empty_suffix_context =
+ {
+ 0xFFFD /* first_char_except_ignorable */,
+ 0 /* bits */
+ };
diff --git a/lib/unicase/ignorable.c b/lib/unicase/ignorable.c
new file mode 100644
index 0000000..84b2634
--- /dev/null
+++ b/lib/unicase/ignorable.c
@@ -0,0 +1,71 @@
+/* Test whether a Unicode character is case-ignorable.
+ Copyright (C) 2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "caseprop.h"
+
+/* Quoting the Unicode standard:
+ Definition: A character is defined to be "case-ignorable" if it has the
+ value MidLetter {or the value MidNumLet} for the Word_Break property or
+ its General_Category is one of Nonspacing_Mark (Mn), Enclosing_Mark (Me),
+ Format (Cf), Modifier_Letter (Lm), or Modifier_Symbol (Sk).
+ The text marked in braces was added in Unicode 5.1.0, see
+ <http://www.unicode.org/versions/Unicode5.1.0/> section "Update of
+ Definition of case-ignorable". */
+/* Since this predicate is only used for the "Before C" and "After C"
+ conditions of FINAL_SIGMA, we exclude the "cased" characters here.
+ This simplifies the evaluation of the regular expressions
+ \p{cased} (\p{case-ignorable})* C
+ and
+ C (\p{case-ignorable})* \p{cased}
+ */
+
+#if 0
+
+#include "unictype.h"
+#include "uniwbrk.h"
+
+bool
+uc_is_case_ignorable (ucs4_t uc)
+{
+ int wbp = uc_wordbreak_property (uc);
+
+ return (wbp == WBP_MIDLETTER || wbp == WBP_MIDNUMLET
+ || uc_is_general_category_withtable (uc, UC_CATEGORY_MASK_Mn
+ | UC_CATEGORY_MASK_Me
+ | UC_CATEGORY_MASK_Cf
+ | UC_CATEGORY_MASK_Lm
+ | UC_CATEGORY_MASK_Sk))
+ && !uc_is_cased (uc);
+}
+
+#else
+
+#include "unictype/bitmap.h"
+
+/* Define u_casing_property_case_ignorable table. */
+#include "ignorable.h"
+
+bool
+uc_is_case_ignorable (ucs4_t uc)
+{
+ return bitmap_lookup (&u_casing_property_case_ignorable, uc);
+}
+
+#endif
diff --git a/lib/unicase/ignorable.h b/lib/unicase/ignorable.h
new file mode 100644
index 0000000..3b29290
--- /dev/null
+++ b/lib/unicase/ignorable.h
@@ -0,0 +1,544 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Casing Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[30 << 4];
+ }
+u_casing_property_case_ignorable =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 432,
+ 16 + 384 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x04004080, 0x40000000, 0x00000001,
+ 0x00000000, 0x0190A100, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFE000000, 0xFFFFFFFC, 0xFFFFFFE0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFDF, 0x0030FFFF,
+ 0x000000B0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x02000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00100000,
+ 0x07FF000F, 0x00000000, 0x7FFFF801, 0x00010000,
+ 0x00000000, 0x00000000, 0xFFC00000, 0x00003DFF,
+ 0x00028000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x043FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000006, 0x10000000, 0x001E21FE, 0x0002000C,
+ 0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
+ 0x00000006, 0x10000000, 0x00023986, 0x00230000,
+ 0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
+ 0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
+ 0x00000004, 0x00000000, 0x00002001, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
+ 0x00000000, 0x90000000, 0x00003040, 0x0000000C,
+ 0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
+ 0x00000000, 0x00000000, 0x005C0400, 0x00000000,
+ 0x00000000, 0x07F20000, 0x00007FC0, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F40, 0x00000000,
+ 0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+ 0x00002064, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0x3FB00000, 0x208FFE40, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000008, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0E040187, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+ 0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00CFF000, 0x00000000, 0x3F000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0x0300F800, 0x00007C90, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00008000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x083EFC00, 0x00000000, 0x00000000,
+ 0x7E000000, 0x00000000, 0x00000000, 0x70000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00200000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00001000, 0x00000000, 0x00000000, 0xB0078000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000700, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x00000060, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0008FFFF, 0x0000007F, 0x00240000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x04004080, 0x40000000, 0x00000001, 0x00010000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x0E000008,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFF80380,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unicase/invariant.h b/lib/unicase/invariant.h
new file mode 100644
index 0000000..2015143
--- /dev/null
+++ b/lib/unicase/invariant.h
@@ -0,0 +1,45 @@
+/* Internal functions for Unicode character case mappings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 <stdbool.h>
+#include <stddef.h>
+
+#include "unitypes.h"
+#include "uninorm.h"
+
+/* Return true if mapping NFD(S) to via MAPPING is a no-op. */
+extern int
+ u8_is_invariant (const uint8_t *s, size_t n,
+ uint8_t * (*mapping) (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp),
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u16_is_invariant (const uint16_t *s, size_t n,
+ uint16_t * (*mapping) (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp),
+ const char *iso639_language,
+ bool *resultp);
+extern int
+ u32_is_invariant (const uint32_t *s, size_t n,
+ uint32_t * (*mapping) (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp),
+ const char *iso639_language,
+ bool *resultp);
diff --git a/lib/unicase/locale-language.c b/lib/unicase/locale-language.c
new file mode 100644
index 0000000..074baa4
--- /dev/null
+++ b/lib/unicase/locale-language.c
@@ -0,0 +1,55 @@
+/* Language code of current locale.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <locale.h>
+#include <string.h>
+
+#include "localename.h"
+
+#include "unicase/locale-languages.h"
+
+const char *
+uc_locale_language (void)
+{
+ const char *locale_name = gl_locale_name (LC_CTYPE, "LC_CTYPE");
+ const char *p;
+
+ /* Find the end of the language portion. */
+ p = locale_name;
+ while (*p != '\0' && *p != '_' && *p != '.' && *p != '@')
+ p++;
+
+ /* Return a statically allocated pointer to the language portion, so that the
+ caller of this function does not need to free() the result.
+ We could use a dynamically built unification table. But given that the
+ set of possible languages is small, it is easier (and excludes ENOMEM
+ error conditions) to allocate the unification table statically. */
+ if (p != locale_name)
+ {
+ const char *language =
+ uc_locale_languages_lookup (locale_name, p - locale_name);
+ if (language != NULL)
+ return language;
+ }
+
+ return "";
+}
diff --git a/lib/unicase/locale-languages.gperf b/lib/unicase/locale-languages.gperf
new file mode 100644
index 0000000..da0d94e
--- /dev/null
+++ b/lib/unicase/locale-languages.gperf
@@ -0,0 +1,270 @@
+%language=ANSI-C
+%define hash-function-name uc_locale_language_hash
+%define lookup-function-name uc_locale_languages_lookup
+%compare-lengths
+%compare-strncmp
+%readonly-tables
+%pic
+/* List of languages taken from gettext/gettext-tools/src/lang-table.c
+ on 2009-02-07. */
+%%
+"aa", /* Afar" */
+"ab", /* Abkhazian" */
+"ace", /* Achinese" */
+"ae", /* Avestan" */
+"af", /* Afrikaans" */
+"ak", /* Akan" */
+"am", /* Amharic" */
+"an", /* Aragonese" */
+"ang", /* Old English" */
+"ar", /* Arabic" */
+"as", /* Assamese" */
+"ast", /* Asturian" */
+"av", /* Avaric" */
+"awa", /* Awadhi" */
+"ay", /* Aymara" */
+"az", /* Azerbaijani" */
+"ba", /* Bashkir" */
+"bal", /* Baluchi" */
+"ban", /* Balinese" */
+"be", /* Belarusian" */
+"bej", /* Beja" */
+"bem", /* Bemba" */
+"bg", /* Bulgarian" */
+"bh", /* Bihari" */
+"bho", /* Bhojpuri" */
+"bi", /* Bislama" */
+"bik", /* Bikol" */
+"bin", /* Bini" */
+"bm", /* Bambara" */
+"bn", /* Bengali" */
+"bo", /* Tibetan" */
+"br", /* Breton" */
+"bs", /* Bosnian" */
+"bug", /* Buginese" */
+"ca", /* Catalan" */
+"ce", /* Chechen" */
+"ceb", /* Cebuano" */
+"ch", /* Chamorro" */
+"co", /* Corsican" */
+"cr", /* Cree" */
+"crh", /* Crimean Tatar" */
+"cs", /* Czech" */
+"csb", /* Kashubian" */
+"cu", /* Church Slavic" */
+"cv", /* Chuvash" */
+"cy", /* Welsh" */
+"da", /* Danish" */
+"de", /* German" */
+"din", /* Dinka" */
+"doi", /* Dogri" */
+"dv", /* Divehi" */
+"dz", /* Dzongkha" */
+"ee", /* Ewe" */
+"el", /* Greek" */
+"en", /* English" */
+"eo", /* Esperanto" */
+"es", /* Spanish" */
+"et", /* Estonian" */
+"eu", /* Basque" */
+"fa", /* Persian" */
+"ff", /* Fulah" */
+"fi", /* Finnish" */
+"fil", /* Filipino" */
+"fj", /* Fijian" */
+"fo", /* Faroese" */
+"fon", /* Fon" */
+"fr", /* French" */
+"fur", /* Friulian" */
+"fy", /* Western Frisian" */
+"ga", /* Irish" */
+"gd", /* Scottish Gaelic" */
+"gl", /* Galician" */
+"gn", /* Guarani" */
+"gon", /* Gondi" */
+"gsw", /* Swiss German" */
+"gu", /* Gujarati" */
+"gv", /* Manx" */
+"ha", /* Hausa" */
+"he", /* Hebrew" */
+"hi", /* Hindi" */
+"hil", /* Hiligaynon" */
+"hmn", /* Hmong" */
+"ho", /* Hiri Motu" */
+"hr", /* Croatian" */
+"ht", /* Haitian" */
+"hu", /* Hungarian" */
+"hy", /* Armenian" */
+"hz", /* Herero" */
+"ia", /* Interlingua" */
+"id", /* Indonesian" */
+"ie", /* Interlingue" */
+"ig", /* Igbo" */
+"ii", /* Sichuan Yi" */
+"ik", /* Inupiak" */
+"ilo", /* Iloko" */
+"is", /* Icelandic" */
+"it", /* Italian" */
+"iu", /* Inuktitut" */
+"ja", /* Japanese" */
+"jab", /* Hyam" */
+"jv", /* Javanese" */
+"ka", /* Georgian" */
+"kab", /* Kabyle" */
+"kaj", /* Jju" */
+"kam", /* Kamba" */
+"kbd", /* Kabardian" */
+"kcg", /* Tyap" */
+"kdm", /* Kagoma" */
+"kg", /* Kongo" */
+"ki", /* Kikuyu" */
+"kj", /* Kuanyama" */
+"kk", /* Kazakh" */
+"kl", /* Kalaallisut" */
+"km", /* Central Khmer" */
+"kmb", /* Kimbundu" */
+"kn", /* Kannada" */
+"ko", /* Korean" */
+"kr", /* Kanuri" */
+"kru", /* Kurukh" */
+"ks", /* Kashmiri" */
+"ku", /* Kurdish" */
+"kv", /* Komi" */
+"kw", /* Cornish" */
+"ky", /* Kirghiz" */
+"kok", /* Konkani" */
+"la", /* Latin" */
+"lb", /* Letzeburgesch" */
+"lg", /* Ganda" */
+"li", /* Limburgish" */
+"ln", /* Lingala" */
+"lo", /* Laotian" */
+"lt", /* Lithuanian" */
+"lu", /* Luba-Katanga" */
+"lua", /* Luba-Lulua" */
+"luo", /* Luo" */
+"lv", /* Latvian" */
+"mad", /* Madurese" */
+"mag", /* Magahi" */
+"mai", /* Maithili" */
+"mak", /* Makasar" */
+"man", /* Mandingo" */
+"men", /* Mende" */
+"mg", /* Malagasy" */
+"mh", /* Marshallese" */
+"mi", /* Maori" */
+"min", /* Minangkabau" */
+"mk", /* Macedonian" */
+"ml", /* Malayalam" */
+"mn", /* Mongolian" */
+"mni", /* Manipuri" */
+"mo", /* Moldavian" */
+"mos", /* Mossi" */
+"mr", /* Marathi" */
+"ms", /* Malay" */
+"mt", /* Maltese" */
+"mwr", /* Marwari" */
+"my", /* Burmese" */
+"myn", /* Mayan" */
+"na", /* Nauru" */
+"nap", /* Neapolitan" */
+"nah", /* Nahuatl" */
+"nb", /* Norwegian Bokmal" */
+"nd", /* North Ndebele" */
+"nds", /* Low Saxon" */
+"ne", /* Nepali" */
+"ng", /* Ndonga" */
+"nl", /* Dutch" */
+"nn", /* Norwegian Nynorsk" */
+"no", /* Norwegian" */
+"nr", /* South Ndebele" */
+"nso", /* Northern Sotho" */
+"nv", /* Navajo" */
+"ny", /* Nyanja" */
+"nym", /* Nyamwezi" */
+"nyn", /* Nyankole" */
+"oc", /* Occitan" */
+"oj", /* Ojibwa" */
+"om", /* (Afan) Oromo" */
+"or", /* Oriya" */
+"os", /* Ossetian" */
+"pa", /* Punjabi" */
+"pag", /* Pangasinan" */
+"pam", /* Pampanga" */
+"pap", /* Papiamento" */
+"pbb", /* Páez" */
+"pi", /* Pali" */
+"pl", /* Polish" */
+"ps", /* Pashto" */
+"pt", /* Portuguese" */
+"qu", /* Quechua" */
+"raj", /* Rajasthani" */
+"rm", /* Romansh" */
+"rn", /* Kirundi" */
+"ro", /* Romanian" */
+"ru", /* Russian" */
+"rw", /* Kinyarwanda" */
+"sa", /* Sanskrit" */
+"sas", /* Sasak" */
+"sat", /* Santali" */
+"sc", /* Sardinian" */
+"scn", /* Sicilian" */
+"sd", /* Sindhi" */
+"se", /* Northern Sami" */
+"sg", /* Sango" */
+"shn", /* Shan" */
+"si", /* Sinhala" */
+"sid", /* Sidamo" */
+"sk", /* Slovak" */
+"sl", /* Slovenian" */
+"sm", /* Samoan" */
+"sn", /* Shona" */
+"so", /* Somali" */
+"sq", /* Albanian" */
+"sr", /* Serbian" */
+"srr", /* Serer" */
+"ss", /* Siswati" */
+"st", /* Sesotho" */
+"su", /* Sundanese" */
+"suk", /* Sukuma" */
+"sus", /* Susu" */
+"sv", /* Swedish" */
+"sw", /* Swahili" */
+"ta", /* Tamil" */
+"te", /* Telugu" */
+"tem", /* Timne" */
+"tet", /* Tetum" */
+"tg", /* Tajik" */
+"th", /* Thai" */
+"ti", /* Tigrinya" */
+"tiv", /* Tiv" */
+"tk", /* Turkmen" */
+"tl", /* Tagalog" */
+"tn", /* Setswana" */
+"to", /* Tonga" */
+"tr", /* Turkish" */
+"ts", /* Tsonga" */
+"tt", /* Tatar" */
+"tum", /* Tumbuka" */
+"tw", /* Twi" */
+"ty", /* Tahitian" */
+"ug", /* Uighur" */
+"uk", /* Ukrainian" */
+"umb", /* Umbundu" */
+"ur", /* Urdu" */
+"uz", /* Uzbek" */
+"ve", /* Venda" */
+"vi", /* Vietnamese" */
+"vo", /* Volapuk" */
+"wal", /* Walamo" */
+"war", /* Waray" */
+"wen", /* Sorbian" */
+"wo", /* Wolof" */
+"xh", /* Xhosa" */
+"yao", /* Yao" */
+"yi", /* Yiddish" */
+"yo", /* Yoruba" */
+"za", /* Zhuang" */
+"zh", /* Chinese" */
+"zu", /* Zulu" */
+"zap", /* Zapotec" */
diff --git a/lib/unicase/locale-languages.h b/lib/unicase/locale-languages.h
new file mode 100644
index 0000000..96c241b
--- /dev/null
+++ b/lib/unicase/locale-languages.h
@@ -0,0 +1,1034 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unicase/locale-languages.gperf */
+/* Computed positions: -k'1-3' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+
+#define TOTAL_KEYWORDS 260
+#define MIN_WORD_LENGTH 2
+#define MAX_WORD_LENGTH 3
+#define MIN_HASH_VALUE 4
+#define MAX_HASH_VALUE 461
+/* maximum key range = 458, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+uc_locale_language_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned short asso_values[] =
+ {
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 4,
+ 48, 12, 35, 124, 222, 107, 187, 191, 145, 241,
+ 11, 73, 0, 114, 4, 66, 213, 88, 2, 25,
+ 31, 209, 10, 160, 157, 154, 247, 175, 96, 462,
+ 0, 34, 49, 227, 52, 187, 245, 462, 207, 231,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
+ 462, 462, 462
+ };
+ register int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[2]+2];
+ /*FALLTHROUGH*/
+ case 2:
+ hval += asso_values[(unsigned char)str[1]+17];
+ /*FALLTHROUGH*/
+ case 1:
+ hval += asso_values[(unsigned char)str[0]+3];
+ break;
+ }
+ return hval;
+}
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const char *
+uc_locale_languages_lookup (register const char *str, register unsigned int len)
+{
+ struct stringpool_t
+ {
+ char stringpool_str4[sizeof("sq")];
+ char stringpool_str5[sizeof("men")];
+ char stringpool_str6[sizeof("se")];
+ char stringpool_str7[sizeof("man")];
+ char stringpool_str8[sizeof("sa")];
+ char stringpool_str11[sizeof("sat")];
+ char stringpool_str12[sizeof("mi")];
+ char stringpool_str13[sizeof("min")];
+ char stringpool_str14[sizeof("si")];
+ char stringpool_str15[sizeof("wen")];
+ char stringpool_str16[sizeof("be")];
+ char stringpool_str17[sizeof("ka")];
+ char stringpool_str18[sizeof("ba")];
+ char stringpool_str19[sizeof("ban")];
+ char stringpool_str23[sizeof("ki")];
+ char stringpool_str24[sizeof("bi")];
+ char stringpool_str25[sizeof("bin")];
+ char stringpool_str28[sizeof("wal")];
+ char stringpool_str29[sizeof("te")];
+ char stringpool_str30[sizeof("bal")];
+ char stringpool_str31[sizeof("ta")];
+ char stringpool_str32[sizeof("tet")];
+ char stringpool_str33[sizeof("mg")];
+ char stringpool_str35[sizeof("sg")];
+ char stringpool_str36[sizeof("mr")];
+ char stringpool_str37[sizeof("ti")];
+ char stringpool_str38[sizeof("sr")];
+ char stringpool_str39[sizeof("ce")];
+ char stringpool_str40[sizeof("or")];
+ char stringpool_str41[sizeof("ca")];
+ char stringpool_str42[sizeof("mad")];
+ char stringpool_str44[sizeof("kg")];
+ char stringpool_str45[sizeof("bg")];
+ char stringpool_str47[sizeof("kr")];
+ char stringpool_str48[sizeof("br")];
+ char stringpool_str50[sizeof("sid")];
+ char stringpool_str51[sizeof("ms")];
+ char stringpool_str52[sizeof("ae")];
+ char stringpool_str53[sizeof("ss")];
+ char stringpool_str54[sizeof("aa")];
+ char stringpool_str55[sizeof("os")];
+ char stringpool_str56[sizeof("su")];
+ char stringpool_str58[sizeof("tg")];
+ char stringpool_str61[sizeof("tr")];
+ char stringpool_str62[sizeof("ks")];
+ char stringpool_str63[sizeof("bs")];
+ char stringpool_str64[sizeof("ug")];
+ char stringpool_str65[sizeof("ku")];
+ char stringpool_str66[sizeof("kab")];
+ char stringpool_str67[sizeof("ur")];
+ char stringpool_str69[sizeof("tiv")];
+ char stringpool_str71[sizeof("cr")];
+ char stringpool_str72[sizeof("pa")];
+ char stringpool_str73[sizeof("kru")];
+ char stringpool_str75[sizeof("af")];
+ char stringpool_str76[sizeof("ts")];
+ char stringpool_str77[sizeof("pap")];
+ char stringpool_str78[sizeof("pi")];
+ char stringpool_str79[sizeof("la")];
+ char stringpool_str84[sizeof("ar")];
+ char stringpool_str85[sizeof("li")];
+ char stringpool_str86[sizeof("cs")];
+ char stringpool_str88[sizeof("ceb")];
+ char stringpool_str89[sizeof("cu")];
+ char stringpool_str90[sizeof("bem")];
+ char stringpool_str91[sizeof("kam")];
+ char stringpool_str92[sizeof("sd")];
+ char stringpool_str97[sizeof("sas")];
+ char stringpool_str98[sizeof("mo")];
+ char stringpool_str99[sizeof("as")];
+ char stringpool_str100[sizeof("so")];
+ char stringpool_str102[sizeof("ast")];
+ char stringpool_str103[sizeof("tem")];
+ char stringpool_str106[sizeof("lg")];
+ char stringpool_str108[sizeof("wo")];
+ char stringpool_str109[sizeof("ko")];
+ char stringpool_str110[sizeof("bo")];
+ char stringpool_str113[sizeof("fa")];
+ char stringpool_str114[sizeof("mag")];
+ char stringpool_str115[sizeof("kbd")];
+ char stringpool_str116[sizeof("ab")];
+ char stringpool_str117[sizeof("ps")];
+ char stringpool_str118[sizeof("ne")];
+ char stringpool_str119[sizeof("fi")];
+ char stringpool_str120[sizeof("na")];
+ char stringpool_str123[sizeof("to")];
+ char stringpool_str125[sizeof("nap")];
+ char stringpool_str127[sizeof("lu")];
+ char stringpool_str128[sizeof("de")];
+ char stringpool_str130[sizeof("da")];
+ char stringpool_str131[sizeof("fil")];
+ char stringpool_str132[sizeof("lua")];
+ char stringpool_str133[sizeof("co")];
+ char stringpool_str134[sizeof("ff")];
+ char stringpool_str135[sizeof("csb")];
+ char stringpool_str137[sizeof("din")];
+ char stringpool_str141[sizeof("lb")];
+ char stringpool_str142[sizeof("ru")];
+ char stringpool_str143[sizeof("fr")];
+ char stringpool_str145[sizeof("sus")];
+ char stringpool_str146[sizeof("pam")];
+ char stringpool_str147[sizeof("ng")];
+ char stringpool_str149[sizeof("ie")];
+ char stringpool_str150[sizeof("nr")];
+ char stringpool_str151[sizeof("ia")];
+ char stringpool_str153[sizeof("tum")];
+ char stringpool_str156[sizeof("ml")];
+ char stringpool_str157[sizeof("ii")];
+ char stringpool_str158[sizeof("sl")];
+ char stringpool_str159[sizeof("mk")];
+ char stringpool_str160[sizeof("za")];
+ char stringpool_str161[sizeof("sk")];
+ char stringpool_str162[sizeof("bej")];
+ char stringpool_str163[sizeof("kaj")];
+ char stringpool_str165[sizeof("zap")];
+ char stringpool_str166[sizeof("oj")];
+ char stringpool_str167[sizeof("kl")];
+ char stringpool_str169[sizeof("yi")];
+ char stringpool_str170[sizeof("kk")];
+ char stringpool_str171[sizeof("lo")];
+ char stringpool_str173[sizeof("kj")];
+ char stringpool_str174[sizeof("bug")];
+ char stringpool_str175[sizeof("kdm")];
+ char stringpool_str177[sizeof("mn")];
+ char stringpool_str178[sizeof("ig")];
+ char stringpool_str179[sizeof("sn")];
+ char stringpool_str180[sizeof("pag")];
+ char stringpool_str181[sizeof("tl")];
+ char stringpool_str182[sizeof("nb")];
+ char stringpool_str183[sizeof("pbb")];
+ char stringpool_str184[sizeof("tk")];
+ char stringpool_str186[sizeof("ro")];
+ char stringpool_str187[sizeof("mos")];
+ char stringpool_str188[sizeof("kn")];
+ char stringpool_str189[sizeof("bn")];
+ char stringpool_str190[sizeof("uk")];
+ char stringpool_str191[sizeof("sv")];
+ char stringpool_str193[sizeof("ga")];
+ char stringpool_str195[sizeof("he")];
+ char stringpool_str196[sizeof("is")];
+ char stringpool_str197[sizeof("ha")];
+ char stringpool_str198[sizeof("mai")];
+ char stringpool_str199[sizeof("iu")];
+ char stringpool_str200[sizeof("kv")];
+ char stringpool_str202[sizeof("tn")];
+ char stringpool_str203[sizeof("hi")];
+ char stringpool_str204[sizeof("nd")];
+ char stringpool_str205[sizeof("fo")];
+ char stringpool_str206[sizeof("fon")];
+ char stringpool_str207[sizeof("ak")];
+ char stringpool_str208[sizeof("zu")];
+ char stringpool_str209[sizeof("my")];
+ char stringpool_str210[sizeof("myn")];
+ char stringpool_str211[sizeof("mh")];
+ char stringpool_str212[sizeof("no")];
+ char stringpool_str213[sizeof("ve")];
+ char stringpool_str214[sizeof("shn")];
+ char stringpool_str215[sizeof("hil")];
+ char stringpool_str217[sizeof("sc")];
+ char stringpool_str218[sizeof("scn")];
+ char stringpool_str219[sizeof("oc")];
+ char stringpool_str220[sizeof("ky")];
+ char stringpool_str221[sizeof("vi")];
+ char stringpool_str222[sizeof("pl")];
+ char stringpool_str223[sizeof("bh")];
+ char stringpool_str224[sizeof("cv")];
+ char stringpool_str225[sizeof("an")];
+ char stringpool_str226[sizeof("ee")];
+ char stringpool_str227[sizeof("hr")];
+ char stringpool_str229[sizeof("mt")];
+ char stringpool_str230[sizeof("war")];
+ char stringpool_str231[sizeof("st")];
+ char stringpool_str234[sizeof("ty")];
+ char stringpool_str235[sizeof("id")];
+ char stringpool_str236[sizeof("th")];
+ char stringpool_str237[sizeof("av")];
+ char stringpool_str240[sizeof("raj")];
+ char stringpool_str241[sizeof("gu")];
+ char stringpool_str242[sizeof("luo")];
+ char stringpool_str244[sizeof("cy")];
+ char stringpool_str245[sizeof("hu")];
+ char stringpool_str246[sizeof("ch")];
+ char stringpool_str247[sizeof("ja")];
+ char stringpool_str248[sizeof("mak")];
+ char stringpool_str249[sizeof("sw")];
+ char stringpool_str250[sizeof("ln")];
+ char stringpool_str251[sizeof("sm")];
+ char stringpool_str252[sizeof("srr")];
+ char stringpool_str253[sizeof("om")];
+ char stringpool_str254[sizeof("tt")];
+ char stringpool_str255[sizeof("yo")];
+ char stringpool_str257[sizeof("ay")];
+ char stringpool_str258[sizeof("kw")];
+ char stringpool_str259[sizeof("crh")];
+ char stringpool_str260[sizeof("km")];
+ char stringpool_str261[sizeof("bm")];
+ char stringpool_str262[sizeof("lv")];
+ char stringpool_str264[sizeof("uz")];
+ char stringpool_str265[sizeof("rn")];
+ char stringpool_str266[sizeof("bik")];
+ char stringpool_str267[sizeof("qu")];
+ char stringpool_str269[sizeof("fj")];
+ char stringpool_str270[sizeof("nl")];
+ char stringpool_str272[sizeof("tw")];
+ char stringpool_str273[sizeof("es")];
+ char stringpool_str276[sizeof("eu")];
+ char stringpool_str277[sizeof("gd")];
+ char stringpool_str278[sizeof("yao")];
+ char stringpool_str280[sizeof("nso")];
+ char stringpool_str281[sizeof("az")];
+ char stringpool_str286[sizeof("gon")];
+ char stringpool_str289[sizeof("ho")];
+ char stringpool_str291[sizeof("nn")];
+ char stringpool_str293[sizeof("nds")];
+ char stringpool_str295[sizeof("pt")];
+ char stringpool_str296[sizeof("jab")];
+ char stringpool_str297[sizeof("am")];
+ char stringpool_str298[sizeof("suk")];
+ char stringpool_str300[sizeof("awa")];
+ char stringpool_str302[sizeof("lt")];
+ char stringpool_str303[sizeof("nv")];
+ char stringpool_str304[sizeof("ik")];
+ char stringpool_str307[sizeof("vo")];
+ char stringpool_str308[sizeof("nah")];
+ char stringpool_str309[sizeof("kmb")];
+ char stringpool_str313[sizeof("dv")];
+ char stringpool_str316[sizeof("fy")];
+ char stringpool_str320[sizeof("eo")];
+ char stringpool_str323[sizeof("ny")];
+ char stringpool_str324[sizeof("nyn")];
+ char stringpool_str329[sizeof("umb")];
+ char stringpool_str333[sizeof("ang")];
+ char stringpool_str334[sizeof("kcg")];
+ char stringpool_str335[sizeof("rw")];
+ char stringpool_str337[sizeof("rm")];
+ char stringpool_str338[sizeof("bho")];
+ char stringpool_str343[sizeof("gl")];
+ char stringpool_str351[sizeof("kok")];
+ char stringpool_str357[sizeof("dz")];
+ char stringpool_str364[sizeof("gn")];
+ char stringpool_str365[sizeof("zh")];
+ char stringpool_str369[sizeof("mni")];
+ char stringpool_str371[sizeof("xh")];
+ char stringpool_str374[sizeof("it")];
+ char stringpool_str375[sizeof("fur")];
+ char stringpool_str376[sizeof("gv")];
+ char stringpool_str378[sizeof("el")];
+ char stringpool_str388[sizeof("ace")];
+ char stringpool_str397[sizeof("nym")];
+ char stringpool_str399[sizeof("en")];
+ char stringpool_str400[sizeof("hy")];
+ char stringpool_str414[sizeof("doi")];
+ char stringpool_str416[sizeof("ilo")];
+ char stringpool_str420[sizeof("ht")];
+ char stringpool_str424[sizeof("hz")];
+ char stringpool_str430[sizeof("jv")];
+ char stringpool_str441[sizeof("hmn")];
+ char stringpool_str448[sizeof("gsw")];
+ char stringpool_str451[sizeof("et")];
+ char stringpool_str461[sizeof("mwr")];
+ };
+ static const struct stringpool_t stringpool_contents =
+ {
+ "sq",
+ "men",
+ "se",
+ "man",
+ "sa",
+ "sat",
+ "mi",
+ "min",
+ "si",
+ "wen",
+ "be",
+ "ka",
+ "ba",
+ "ban",
+ "ki",
+ "bi",
+ "bin",
+ "wal",
+ "te",
+ "bal",
+ "ta",
+ "tet",
+ "mg",
+ "sg",
+ "mr",
+ "ti",
+ "sr",
+ "ce",
+ "or",
+ "ca",
+ "mad",
+ "kg",
+ "bg",
+ "kr",
+ "br",
+ "sid",
+ "ms",
+ "ae",
+ "ss",
+ "aa",
+ "os",
+ "su",
+ "tg",
+ "tr",
+ "ks",
+ "bs",
+ "ug",
+ "ku",
+ "kab",
+ "ur",
+ "tiv",
+ "cr",
+ "pa",
+ "kru",
+ "af",
+ "ts",
+ "pap",
+ "pi",
+ "la",
+ "ar",
+ "li",
+ "cs",
+ "ceb",
+ "cu",
+ "bem",
+ "kam",
+ "sd",
+ "sas",
+ "mo",
+ "as",
+ "so",
+ "ast",
+ "tem",
+ "lg",
+ "wo",
+ "ko",
+ "bo",
+ "fa",
+ "mag",
+ "kbd",
+ "ab",
+ "ps",
+ "ne",
+ "fi",
+ "na",
+ "to",
+ "nap",
+ "lu",
+ "de",
+ "da",
+ "fil",
+ "lua",
+ "co",
+ "ff",
+ "csb",
+ "din",
+ "lb",
+ "ru",
+ "fr",
+ "sus",
+ "pam",
+ "ng",
+ "ie",
+ "nr",
+ "ia",
+ "tum",
+ "ml",
+ "ii",
+ "sl",
+ "mk",
+ "za",
+ "sk",
+ "bej",
+ "kaj",
+ "zap",
+ "oj",
+ "kl",
+ "yi",
+ "kk",
+ "lo",
+ "kj",
+ "bug",
+ "kdm",
+ "mn",
+ "ig",
+ "sn",
+ "pag",
+ "tl",
+ "nb",
+ "pbb",
+ "tk",
+ "ro",
+ "mos",
+ "kn",
+ "bn",
+ "uk",
+ "sv",
+ "ga",
+ "he",
+ "is",
+ "ha",
+ "mai",
+ "iu",
+ "kv",
+ "tn",
+ "hi",
+ "nd",
+ "fo",
+ "fon",
+ "ak",
+ "zu",
+ "my",
+ "myn",
+ "mh",
+ "no",
+ "ve",
+ "shn",
+ "hil",
+ "sc",
+ "scn",
+ "oc",
+ "ky",
+ "vi",
+ "pl",
+ "bh",
+ "cv",
+ "an",
+ "ee",
+ "hr",
+ "mt",
+ "war",
+ "st",
+ "ty",
+ "id",
+ "th",
+ "av",
+ "raj",
+ "gu",
+ "luo",
+ "cy",
+ "hu",
+ "ch",
+ "ja",
+ "mak",
+ "sw",
+ "ln",
+ "sm",
+ "srr",
+ "om",
+ "tt",
+ "yo",
+ "ay",
+ "kw",
+ "crh",
+ "km",
+ "bm",
+ "lv",
+ "uz",
+ "rn",
+ "bik",
+ "qu",
+ "fj",
+ "nl",
+ "tw",
+ "es",
+ "eu",
+ "gd",
+ "yao",
+ "nso",
+ "az",
+ "gon",
+ "ho",
+ "nn",
+ "nds",
+ "pt",
+ "jab",
+ "am",
+ "suk",
+ "awa",
+ "lt",
+ "nv",
+ "ik",
+ "vo",
+ "nah",
+ "kmb",
+ "dv",
+ "fy",
+ "eo",
+ "ny",
+ "nyn",
+ "umb",
+ "ang",
+ "kcg",
+ "rw",
+ "rm",
+ "bho",
+ "gl",
+ "kok",
+ "dz",
+ "gn",
+ "zh",
+ "mni",
+ "xh",
+ "it",
+ "fur",
+ "gv",
+ "el",
+ "ace",
+ "nym",
+ "en",
+ "hy",
+ "doi",
+ "ilo",
+ "ht",
+ "hz",
+ "jv",
+ "hmn",
+ "gsw",
+ "et",
+ "mwr"
+ };
+ #define stringpool ((const char *) &stringpool_contents)
+ static const unsigned char lengthtable[] =
+ {
+ 0, 0, 0, 0, 2, 3, 2, 3, 2, 0, 0, 3, 2, 3,
+ 2, 3, 2, 2, 2, 3, 0, 0, 0, 2, 2, 3, 0, 0,
+ 3, 2, 3, 2, 3, 2, 0, 2, 2, 2, 2, 2, 2, 2,
+ 3, 0, 2, 2, 0, 2, 2, 0, 3, 2, 2, 2, 2, 2,
+ 2, 0, 2, 0, 0, 2, 2, 2, 2, 2, 3, 2, 0, 3,
+ 0, 2, 2, 3, 0, 2, 2, 3, 2, 2, 0, 0, 0, 0,
+ 2, 2, 2, 0, 3, 2, 3, 3, 2, 0, 0, 0, 0, 3,
+ 2, 2, 2, 0, 3, 3, 0, 0, 2, 0, 2, 2, 2, 0,
+ 0, 2, 3, 3, 2, 2, 2, 2, 2, 0, 0, 2, 0, 3,
+ 0, 2, 2, 0, 2, 3, 3, 2, 2, 3, 0, 3, 0, 0,
+ 0, 2, 2, 2, 0, 3, 3, 2, 0, 2, 2, 2, 0, 3,
+ 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 0, 3, 2, 2,
+ 0, 2, 2, 2, 0, 2, 3, 3, 0, 2, 2, 2, 3, 2,
+ 2, 3, 2, 0, 2, 3, 2, 2, 2, 2, 0, 2, 0, 2,
+ 2, 2, 3, 2, 2, 0, 2, 2, 2, 2, 3, 2, 2, 2,
+ 3, 2, 2, 2, 3, 3, 0, 2, 3, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 0, 2, 3, 2, 0, 0, 2, 2, 2, 2,
+ 0, 0, 3, 2, 3, 0, 2, 2, 2, 2, 3, 2, 2, 2,
+ 3, 2, 2, 2, 0, 2, 2, 3, 2, 2, 2, 0, 2, 2,
+ 3, 2, 0, 2, 2, 0, 2, 2, 0, 0, 2, 2, 3, 0,
+ 3, 2, 0, 0, 0, 0, 3, 0, 0, 2, 0, 2, 0, 3,
+ 0, 2, 3, 2, 3, 0, 3, 0, 2, 2, 2, 0, 0, 2,
+ 3, 3, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0,
+ 0, 2, 3, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 2,
+ 0, 2, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
+ 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
+ 2, 2, 0, 0, 0, 3, 0, 2, 0, 0, 2, 3, 2, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0,
+ 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3
+ };
+ static const int wordlist[] =
+ {
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str4,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str5,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str6,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str7,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str8,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str11,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str12,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str13,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str14,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str15,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str16,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str17,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str18,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str19,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str23,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str24,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str25,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str28,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str29,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str30,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str31,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str32,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str33,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str35,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str36,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str37,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str38,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str39,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str40,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str41,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str42,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str44,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str45,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str47,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str48,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str50,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str51,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str52,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str53,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str54,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str55,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str56,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str58,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str61,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str62,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str63,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str64,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str65,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str66,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str67,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str69,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str71,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str72,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str73,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str75,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str76,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str77,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str78,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str79,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str84,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str85,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str86,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str88,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str89,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str90,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str91,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str92,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str97,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str98,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str99,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str100,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str102,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str103,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str106,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str108,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str109,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str110,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str113,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str114,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str115,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str116,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str117,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str118,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str119,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str120,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str123,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str125,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str127,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str128,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str130,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str131,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str132,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str133,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str134,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str135,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str137,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str141,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str142,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str143,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str145,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str146,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str147,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str149,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str150,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str151,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str153,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str156,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str157,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str158,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str159,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str160,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str161,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str162,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str163,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str165,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str166,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str167,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str169,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str170,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str171,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str173,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str174,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str175,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str177,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str178,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str179,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str180,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str181,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str182,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str183,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str184,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str186,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str187,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str188,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str189,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str190,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str191,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str193,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str195,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str196,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str197,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str198,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str199,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str200,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str202,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str203,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str204,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str205,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str206,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str207,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str208,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str209,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str210,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str211,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str212,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str213,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str214,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str215,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str217,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str218,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str219,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str220,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str221,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str222,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str223,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str224,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str225,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str226,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str227,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str229,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str230,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str231,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str234,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str235,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str236,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str237,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str240,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str241,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str242,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str244,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str245,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str246,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str247,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str248,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str249,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str250,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str251,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str252,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str253,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str254,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str255,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str257,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str258,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str259,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str260,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str261,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str262,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str264,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str265,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str266,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str267,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str269,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str270,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str272,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str273,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str276,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str277,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str278,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str280,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str281,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str286,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str289,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str291,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str293,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str295,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str296,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str297,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str298,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str300,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str302,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str303,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str304,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str307,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str308,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str309,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str313,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str316,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str320,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str323,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str324,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str329,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str333,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str334,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str335,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str337,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str338,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str343,
+ -1, -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str351,
+ -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str357,
+ -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str364,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str365,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str369,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str371,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str374,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str375,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str376,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str378,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str388,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str397,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str399,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str400,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str414,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str416,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str420,
+ -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str424,
+ -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str430,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str441,
+ -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str448,
+ -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str451,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ (int)(long)&((struct stringpool_t *)0)->stringpool_str461
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = uc_locale_language_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ if (len == lengthtable[key])
+ {
+ register const char *s = wordlist[key] + stringpool;
+
+ if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+ return s;
+ }
+ }
+ return 0;
+}
diff --git a/lib/unicase/simple-mapping.h b/lib/unicase/simple-mapping.h
new file mode 100644
index 0000000..44cecc8
--- /dev/null
+++ b/lib/unicase/simple-mapping.h
@@ -0,0 +1,39 @@
+/* Simple case mapping for Unicode characters.
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+ucs4_t
+FUNC (ucs4_t uc)
+{
+ unsigned int index1 = uc >> mapping_header_0;
+ if (index1 < mapping_header_1)
+ {
+ int lookup1 = u_mapping.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> mapping_header_2) & mapping_header_3;
+ int lookup2 = u_mapping.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & mapping_header_4);
+ int lookup3 = u_mapping.level3[lookup2 + index3];
+
+ return uc + lookup3;
+ }
+ }
+ }
+ return uc;
+}
diff --git a/lib/unicase/special-casing-table.gperf b/lib/unicase/special-casing-table.gperf
new file mode 100644
index 0000000..78e8fcd
--- /dev/null
+++ b/lib/unicase/special-casing-table.gperf
@@ -0,0 +1,136 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Special casing rules of Unicode characters. */
+/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0. */
+struct special_casing_rule { char code[3]; };
+%struct-type
+%language=ANSI-C
+%define slot-name code
+%define hash-function-name gl_unicase_special_hash
+%define lookup-function-name gl_unicase_special_lookup
+%compare-lengths
+%compare-strncmp
+%readonly-tables
+%omit-struct-type
+%%
+"\x00\x49\x00", 1, SCC_MORE_ABOVE , { 'l', 't' }, { 0x0049, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }
+"\x00\x49\x01", 1, -SCC_BEFORE_DOT , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }
+"\x00\x49\x02", 1, -SCC_BEFORE_DOT , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }
+"\x00\x49\x03", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }
+"\x00\x49\x04", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }
+"\x00\x4a\x00", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x004A, 0, 0 }, { 0x006A, 0x0307, 0 }, { 0x004A, 0, 0 }, { 0x006A, 0, 0 }
+"\x00\x69\x00", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }
+"\x00\x69\x01", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }
+"\x00\xcc\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CC, 0, 0 }, { 0x0069, 0x0307, 0x0300 }, { 0x00CC, 0, 0 }, { 0x00EC, 0, 0 }
+"\x00\xcd\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CD, 0, 0 }, { 0x0069, 0x0307, 0x0301 }, { 0x00CD, 0, 0 }, { 0x00ED, 0, 0 }
+"\x00\xdf\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0053, 0 }, { 0x00DF, 0, 0 }, { 0x0053, 0x0073, 0 }, { 0x0073, 0x0073, 0 }
+"\x01\x28\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x0128, 0, 0 }, { 0x0069, 0x0307, 0x0303 }, { 0x0128, 0, 0 }, { 0x0129, 0, 0 }
+"\x01\x2e\x00", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x012E, 0, 0 }, { 0x012F, 0x0307, 0 }, { 0x012E, 0, 0 }, { 0x012F, 0, 0 }
+"\x01\x30\x00", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }
+"\x01\x30\x01", 1, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }
+"\x01\x30\x02", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }
+"\x01\x49\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x02BC, 0x004E, 0 }, { 0x0149, 0, 0 }, { 0x02BC, 0x004E, 0 }, { 0x02BC, 0x006E, 0 }
+"\x01\xf0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x004A, 0x030C, 0 }, { 0x01F0, 0, 0 }, { 0x004A, 0x030C, 0 }, { 0x006A, 0x030C, 0 }
+"\x03\x07\x00", 1, SCC_AFTER_SOFT_DOTTED, { 'l', 't' }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }
+"\x03\x07\x01", 1, SCC_AFTER_I , { 't', 'r' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }
+"\x03\x07\x02", 0, SCC_AFTER_I , { 'a', 'z' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }
+"\x03\x90\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x0390, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }
+"\x03\xa3\x00", 0, SCC_FINAL_SIGMA , { '\0', '\0' }, { 0x03A3, 0, 0 }, { 0x03C2, 0, 0 }, { 0x03A3, 0, 0 }, { 0x03C3, 0, 0 }
+"\x03\xb0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x03B0, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }
+"\x05\x87\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0535, 0x0552, 0 }, { 0x0587, 0, 0 }, { 0x0535, 0x0582, 0 }, { 0x0565, 0x0582, 0 }
+"\x1e\x96\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0048, 0x0331, 0 }, { 0x1E96, 0, 0 }, { 0x0048, 0x0331, 0 }, { 0x0068, 0x0331, 0 }
+"\x1e\x97\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0054, 0x0308, 0 }, { 0x1E97, 0, 0 }, { 0x0054, 0x0308, 0 }, { 0x0074, 0x0308, 0 }
+"\x1e\x98\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0057, 0x030A, 0 }, { 0x1E98, 0, 0 }, { 0x0057, 0x030A, 0 }, { 0x0077, 0x030A, 0 }
+"\x1e\x99\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0059, 0x030A, 0 }, { 0x1E99, 0, 0 }, { 0x0059, 0x030A, 0 }, { 0x0079, 0x030A, 0 }
+"\x1e\x9a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0041, 0x02BE, 0 }, { 0x1E9A, 0, 0 }, { 0x0041, 0x02BE, 0 }, { 0x0061, 0x02BE, 0 }
+"\x1e\x9e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1E9E, 0, 0 }, { 0x00DF, 0, 0 }, { 0x1E9E, 0, 0 }, { 0x0073, 0x0073, 0 }
+"\x1f\x50\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0 }, { 0x1F50, 0, 0 }, { 0x03A5, 0x0313, 0 }, { 0x03C5, 0x0313, 0 }
+"\x1f\x52\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0300 }, { 0x1F52, 0, 0 }, { 0x03A5, 0x0313, 0x0300 }, { 0x03C5, 0x0313, 0x0300 }
+"\x1f\x54\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0301 }, { 0x1F54, 0, 0 }, { 0x03A5, 0x0313, 0x0301 }, { 0x03C5, 0x0313, 0x0301 }
+"\x1f\x56\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0342 }, { 0x1F56, 0, 0 }, { 0x03A5, 0x0313, 0x0342 }, { 0x03C5, 0x0313, 0x0342 }
+"\x1f\x80\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }
+"\x1f\x81\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }
+"\x1f\x82\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }
+"\x1f\x83\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }
+"\x1f\x84\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }
+"\x1f\x85\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }
+"\x1f\x86\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }
+"\x1f\x87\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }
+"\x1f\x88\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }
+"\x1f\x89\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }
+"\x1f\x8a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }
+"\x1f\x8b\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }
+"\x1f\x8c\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }
+"\x1f\x8d\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }
+"\x1f\x8e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }
+"\x1f\x8f\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }
+"\x1f\x90\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }
+"\x1f\x91\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }
+"\x1f\x92\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }
+"\x1f\x93\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }
+"\x1f\x94\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }
+"\x1f\x95\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }
+"\x1f\x96\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }
+"\x1f\x97\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }
+"\x1f\x98\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }
+"\x1f\x99\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }
+"\x1f\x9a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }
+"\x1f\x9b\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }
+"\x1f\x9c\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }
+"\x1f\x9d\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }
+"\x1f\x9e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }
+"\x1f\x9f\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }
+"\x1f\xa0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }
+"\x1f\xa1\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }
+"\x1f\xa2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }
+"\x1f\xa3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }
+"\x1f\xa4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }
+"\x1f\xa5\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }
+"\x1f\xa6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }
+"\x1f\xa7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }
+"\x1f\xa8\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }
+"\x1f\xa9\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }
+"\x1f\xaa\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }
+"\x1f\xab\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }
+"\x1f\xac\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }
+"\x1f\xad\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }
+"\x1f\xae\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }
+"\x1f\xaf\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }
+"\x1f\xb2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FBA, 0x0399, 0 }, { 0x1FB2, 0, 0 }, { 0x1FBA, 0x0345, 0 }, { 0x1F70, 0x03B9, 0 }
+"\x1f\xb3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }
+"\x1f\xb4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0386, 0x0399, 0 }, { 0x1FB4, 0, 0 }, { 0x0386, 0x0345, 0 }, { 0x03AC, 0x03B9, 0 }
+"\x1f\xb6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0 }, { 0x1FB6, 0, 0 }, { 0x0391, 0x0342, 0 }, { 0x03B1, 0x0342, 0 }
+"\x1f\xb7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0x0399 }, { 0x1FB7, 0, 0 }, { 0x0391, 0x0342, 0x0345 }, { 0x03B1, 0x0342, 0x03B9 }
+"\x1f\xbc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }
+"\x1f\xc2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FCA, 0x0399, 0 }, { 0x1FC2, 0, 0 }, { 0x1FCA, 0x0345, 0 }, { 0x1F74, 0x03B9, 0 }
+"\x1f\xc3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }
+"\x1f\xc4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0389, 0x0399, 0 }, { 0x1FC4, 0, 0 }, { 0x0389, 0x0345, 0 }, { 0x03AE, 0x03B9, 0 }
+"\x1f\xc6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0 }, { 0x1FC6, 0, 0 }, { 0x0397, 0x0342, 0 }, { 0x03B7, 0x0342, 0 }
+"\x1f\xc7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0x0399 }, { 0x1FC7, 0, 0 }, { 0x0397, 0x0342, 0x0345 }, { 0x03B7, 0x0342, 0x03B9 }
+"\x1f\xcc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }
+"\x1f\xd2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0300 }, { 0x1FD2, 0, 0 }, { 0x0399, 0x0308, 0x0300 }, { 0x03B9, 0x0308, 0x0300 }
+"\x1f\xd3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x1FD3, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }
+"\x1f\xd6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0342, 0 }, { 0x1FD6, 0, 0 }, { 0x0399, 0x0342, 0 }, { 0x03B9, 0x0342, 0 }
+"\x1f\xd7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0342 }, { 0x1FD7, 0, 0 }, { 0x0399, 0x0308, 0x0342 }, { 0x03B9, 0x0308, 0x0342 }
+"\x1f\xe2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0300 }, { 0x1FE2, 0, 0 }, { 0x03A5, 0x0308, 0x0300 }, { 0x03C5, 0x0308, 0x0300 }
+"\x1f\xe3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x1FE3, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }
+"\x1f\xe4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A1, 0x0313, 0 }, { 0x1FE4, 0, 0 }, { 0x03A1, 0x0313, 0 }, { 0x03C1, 0x0313, 0 }
+"\x1f\xe6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0342, 0 }, { 0x1FE6, 0, 0 }, { 0x03A5, 0x0342, 0 }, { 0x03C5, 0x0342, 0 }
+"\x1f\xe7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0342 }, { 0x1FE7, 0, 0 }, { 0x03A5, 0x0308, 0x0342 }, { 0x03C5, 0x0308, 0x0342 }
+"\x1f\xf2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FFA, 0x0399, 0 }, { 0x1FF2, 0, 0 }, { 0x1FFA, 0x0345, 0 }, { 0x1F7C, 0x03B9, 0 }
+"\x1f\xf3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }
+"\x1f\xf4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x038F, 0x0399, 0 }, { 0x1FF4, 0, 0 }, { 0x038F, 0x0345, 0 }, { 0x03CE, 0x03B9, 0 }
+"\x1f\xf6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0 }, { 0x1FF6, 0, 0 }, { 0x03A9, 0x0342, 0 }, { 0x03C9, 0x0342, 0 }
+"\x1f\xf7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0x0399 }, { 0x1FF7, 0, 0 }, { 0x03A9, 0x0342, 0x0345 }, { 0x03C9, 0x0342, 0x03B9 }
+"\x1f\xfc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }
+"\xfb\x00\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0 }, { 0xFB00, 0, 0 }, { 0x0046, 0x0066, 0 }, { 0x0066, 0x0066, 0 }
+"\xfb\x01\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0049, 0 }, { 0xFB01, 0, 0 }, { 0x0046, 0x0069, 0 }, { 0x0066, 0x0069, 0 }
+"\xfb\x02\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x004C, 0 }, { 0xFB02, 0, 0 }, { 0x0046, 0x006C, 0 }, { 0x0066, 0x006C, 0 }
+"\xfb\x03\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x0049 }, { 0xFB03, 0, 0 }, { 0x0046, 0x0066, 0x0069 }, { 0x0066, 0x0066, 0x0069 }
+"\xfb\x04\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x004C }, { 0xFB04, 0, 0 }, { 0x0046, 0x0066, 0x006C }, { 0x0066, 0x0066, 0x006C }
+"\xfb\x05\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB05, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }
+"\xfb\x06\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB06, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }
+"\xfb\x13\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0546, 0 }, { 0xFB13, 0, 0 }, { 0x0544, 0x0576, 0 }, { 0x0574, 0x0576, 0 }
+"\xfb\x14\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0535, 0 }, { 0xFB14, 0, 0 }, { 0x0544, 0x0565, 0 }, { 0x0574, 0x0565, 0 }
+"\xfb\x15\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053B, 0 }, { 0xFB15, 0, 0 }, { 0x0544, 0x056B, 0 }, { 0x0574, 0x056B, 0 }
+"\xfb\x16\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x054E, 0x0546, 0 }, { 0xFB16, 0, 0 }, { 0x054E, 0x0576, 0 }, { 0x057E, 0x0576, 0 }
+"\xfb\x17\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053D, 0 }, { 0xFB17, 0, 0 }, { 0x0544, 0x056D, 0 }, { 0x0574, 0x056D, 0 }
diff --git a/lib/unicase/special-casing-table.h b/lib/unicase/special-casing-table.h
new file mode 100644
index 0000000..c25bb94
--- /dev/null
+++ b/lib/unicase/special-casing-table.h
@@ -0,0 +1,339 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unicase/special-casing-table.gperf */
+/* Computed positions: -k'1-3' */
+
+
+#define TOTAL_KEYWORDS 122
+#define MIN_WORD_LENGTH 3
+#define MAX_WORD_LENGTH 3
+#define MIN_HASH_VALUE 0
+#define MAX_HASH_VALUE 121
+/* maximum key range = 122, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+/*ARGSUSED*/
+static unsigned int
+gl_unicase_special_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 2, 0, 4, 5, 37, 12, 121, 4, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 120,
+ 119, 118, 117, 116, 122, 122, 122, 122, 122, 122,
+ 5, 3, 122, 122, 122, 122, 122, 122, 122, 122,
+ 115, 122, 122, 122, 122, 122, 114, 122, 6, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 1, 111, 122, 122, 122, 122, 122,
+ 109, 122, 108, 122, 107, 122, 106, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 33, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 105, 104,
+ 103, 102, 101, 100, 99, 31, 98, 97, 96, 95,
+ 94, 93, 92, 91, 28, 90, 89, 88, 87, 86,
+ 27, 24, 23, 20, 19, 85, 84, 83, 16, 82,
+ 81, 80, 79, 15, 78, 77, 76, 75, 74, 73,
+ 72, 71, 70, 69, 68, 67, 64, 122, 65, 64,
+ 63, 122, 62, 61, 122, 122, 122, 122, 60, 122,
+ 122, 122, 122, 122, 59, 58, 57, 122, 56, 55,
+ 122, 122, 122, 122, 14, 55, 122, 122, 122, 122,
+ 53, 52, 122, 122, 51, 50, 122, 122, 122, 122,
+ 122, 122, 122, 50, 122, 122, 48, 47, 46, 122,
+ 45, 44, 122, 122, 122, 122, 122, 122, 122, 122,
+ 46, 122, 42, 41, 39, 122, 38, 35, 122, 122,
+ 122, 0, 33, 122, 122, 122, 122
+ };
+ return asso_values[(unsigned char)str[2]+1] + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
+}
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct special_casing_rule *
+gl_unicase_special_lookup (register const char *str, register unsigned int len)
+{
+ static const unsigned char lengthtable[] =
+ {
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
+ };
+ static const struct special_casing_rule wordlist[] =
+ {
+#line 126 "./unicase/special-casing-table.gperf"
+ {"\373\001\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0049, 0 }, { 0xFB01, 0, 0 }, { 0x0046, 0x0069, 0 }, { 0x0066, 0x0069, 0 }},
+#line 31 "./unicase/special-casing-table.gperf"
+ {"\001I\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x02BC, 0x004E, 0 }, { 0x0149, 0, 0 }, { 0x02BC, 0x004E, 0 }, { 0x02BC, 0x006E, 0 }},
+#line 125 "./unicase/special-casing-table.gperf"
+ {"\373\000\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0 }, { 0xFB00, 0, 0 }, { 0x0046, 0x0066, 0 }, { 0x0066, 0x0066, 0 }},
+#line 15 "./unicase/special-casing-table.gperf"
+ {"\000I\000", 1, SCC_MORE_ABOVE , { 'l', 't' }, { 0x0049, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }},
+#line 127 "./unicase/special-casing-table.gperf"
+ {"\373\002\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x004C, 0 }, { 0xFB02, 0, 0 }, { 0x0046, 0x006C, 0 }, { 0x0066, 0x006C, 0 }},
+#line 128 "./unicase/special-casing-table.gperf"
+ {"\373\003\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x0049 }, { 0xFB03, 0, 0 }, { 0x0046, 0x0066, 0x0069 }, { 0x0066, 0x0066, 0x0069 }},
+#line 28 "./unicase/special-casing-table.gperf"
+ {"\0010\000", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
+#line 16 "./unicase/special-casing-table.gperf"
+ {"\000I\001", 1, -SCC_BEFORE_DOT , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
+#line 17 "./unicase/special-casing-table.gperf"
+ {"\000I\002", 1, -SCC_BEFORE_DOT , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
+#line 33 "./unicase/special-casing-table.gperf"
+ {"\003\007\000", 1, SCC_AFTER_SOFT_DOTTED, { 'l', 't' }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }},
+#line 29 "./unicase/special-casing-table.gperf"
+ {"\0010\001", 1, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
+#line 30 "./unicase/special-casing-table.gperf"
+ {"\0010\002", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }},
+#line 130 "./unicase/special-casing-table.gperf"
+ {"\373\005\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB05, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }},
+#line 34 "./unicase/special-casing-table.gperf"
+ {"\003\007\001", 1, SCC_AFTER_I , { 't', 'r' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }},
+#line 35 "./unicase/special-casing-table.gperf"
+ {"\003\007\002", 0, SCC_AFTER_I , { 'a', 'z' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 }},
+#line 19 "./unicase/special-casing-table.gperf"
+ {"\000I\004", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
+#line 23 "./unicase/special-casing-table.gperf"
+ {"\000\314\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CC, 0, 0 }, { 0x0069, 0x0307, 0x0300 }, { 0x00CC, 0, 0 }, { 0x00EC, 0, 0 }},
+#line 109 "./unicase/special-casing-table.gperf"
+ {"\037\314\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }},
+#line 85 "./unicase/special-casing-table.gperf"
+ {"\037\243\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }},
+#line 80 "./unicase/special-casing-table.gperf"
+ {"\037\236\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }},
+#line 37 "./unicase/special-casing-table.gperf"
+ {"\003\243\000", 0, SCC_FINAL_SIGMA , { '\0', '\0' }, { 0x03A3, 0, 0 }, { 0x03C2, 0, 0 }, { 0x03A3, 0, 0 }, { 0x03C3, 0, 0 }},
+#line 45 "./unicase/special-casing-table.gperf"
+ {"\036\236\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1E9E, 0, 0 }, { 0x00DF, 0, 0 }, { 0x1E9E, 0, 0 }, { 0x0073, 0x0073, 0 }},
+#line 76 "./unicase/special-casing-table.gperf"
+ {"\037\232\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }},
+#line 75 "./unicase/special-casing-table.gperf"
+ {"\037\231\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }},
+#line 44 "./unicase/special-casing-table.gperf"
+ {"\036\232\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0041, 0x02BE, 0 }, { 0x1E9A, 0, 0 }, { 0x0041, 0x02BE, 0 }, { 0x0061, 0x02BE, 0 }},
+#line 43 "./unicase/special-casing-table.gperf"
+ {"\036\231\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0059, 0x030A, 0 }, { 0x1E99, 0, 0 }, { 0x0059, 0x030A, 0 }, { 0x0079, 0x030A, 0 }},
+#line 74 "./unicase/special-casing-table.gperf"
+ {"\037\230\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }},
+#line 73 "./unicase/special-casing-table.gperf"
+ {"\037\227\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }},
+#line 42 "./unicase/special-casing-table.gperf"
+ {"\036\230\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0057, 0x030A, 0 }, { 0x1E98, 0, 0 }, { 0x0057, 0x030A, 0 }, { 0x0077, 0x030A, 0 }},
+#line 41 "./unicase/special-casing-table.gperf"
+ {"\036\227\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0054, 0x0308, 0 }, { 0x1E97, 0, 0 }, { 0x0054, 0x0308, 0 }, { 0x0074, 0x0308, 0 }},
+#line 72 "./unicase/special-casing-table.gperf"
+ {"\037\226\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 }},
+#line 66 "./unicase/special-casing-table.gperf"
+ {"\037\220\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 }},
+#line 40 "./unicase/special-casing-table.gperf"
+ {"\036\226\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0048, 0x0331, 0 }, { 0x1E96, 0, 0 }, { 0x0048, 0x0331, 0 }, { 0x0068, 0x0331, 0 }},
+#line 36 "./unicase/special-casing-table.gperf"
+ {"\003\220\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x0390, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
+#line 57 "./unicase/special-casing-table.gperf"
+ {"\037\207\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }},
+#line 21 "./unicase/special-casing-table.gperf"
+ {"\000i\000", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
+#line 124 "./unicase/special-casing-table.gperf"
+ {"\037\374\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }},
+#line 129 "./unicase/special-casing-table.gperf"
+ {"\373\004\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x004C }, { 0xFB04, 0, 0 }, { 0x0046, 0x0066, 0x006C }, { 0x0066, 0x0066, 0x006C }},
+#line 123 "./unicase/special-casing-table.gperf"
+ {"\037\367\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0x0399 }, { 0x1FF7, 0, 0 }, { 0x03A9, 0x0342, 0x0345 }, { 0x03C9, 0x0342, 0x03B9 }},
+#line 22 "./unicase/special-casing-table.gperf"
+ {"\000i\001", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }},
+#line 18 "./unicase/special-casing-table.gperf"
+ {"\000I\003", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }},
+#line 122 "./unicase/special-casing-table.gperf"
+ {"\037\366\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0 }, { 0x1FF6, 0, 0 }, { 0x03A9, 0x0342, 0 }, { 0x03C9, 0x0342, 0 }},
+#line 121 "./unicase/special-casing-table.gperf"
+ {"\037\364\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x038F, 0x0399, 0 }, { 0x1FF4, 0, 0 }, { 0x038F, 0x0345, 0 }, { 0x03CE, 0x03B9, 0 }},
+#line 39 "./unicase/special-casing-table.gperf"
+ {"\005\207\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0535, 0x0552, 0 }, { 0x0587, 0, 0 }, { 0x0535, 0x0582, 0 }, { 0x0565, 0x0582, 0 }},
+#line 120 "./unicase/special-casing-table.gperf"
+ {"\037\363\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 }},
+#line 119 "./unicase/special-casing-table.gperf"
+ {"\037\362\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FFA, 0x0399, 0 }, { 0x1FF2, 0, 0 }, { 0x1FFA, 0x0345, 0 }, { 0x1F7C, 0x03B9, 0 }},
+#line 32 "./unicase/special-casing-table.gperf"
+ {"\001\360\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x004A, 0x030C, 0 }, { 0x01F0, 0, 0 }, { 0x004A, 0x030C, 0 }, { 0x006A, 0x030C, 0 }},
+#line 118 "./unicase/special-casing-table.gperf"
+ {"\037\347\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0342 }, { 0x1FE7, 0, 0 }, { 0x03A5, 0x0308, 0x0342 }, { 0x03C5, 0x0308, 0x0342 }},
+#line 117 "./unicase/special-casing-table.gperf"
+ {"\037\346\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0342, 0 }, { 0x1FE6, 0, 0 }, { 0x03A5, 0x0342, 0 }, { 0x03C5, 0x0342, 0 }},
+#line 116 "./unicase/special-casing-table.gperf"
+ {"\037\344\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A1, 0x0313, 0 }, { 0x1FE4, 0, 0 }, { 0x03A1, 0x0313, 0 }, { 0x03C1, 0x0313, 0 }},
+#line 115 "./unicase/special-casing-table.gperf"
+ {"\037\343\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x1FE3, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
+#line 114 "./unicase/special-casing-table.gperf"
+ {"\037\342\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0300 }, { 0x1FE2, 0, 0 }, { 0x03A5, 0x0308, 0x0300 }, { 0x03C5, 0x0308, 0x0300 }},
+#line 25 "./unicase/special-casing-table.gperf"
+ {"\000\337\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0053, 0 }, { 0x00DF, 0, 0 }, { 0x0053, 0x0073, 0 }, { 0x0073, 0x0073, 0 }},
+#line 113 "./unicase/special-casing-table.gperf"
+ {"\037\327\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0342 }, { 0x1FD7, 0, 0 }, { 0x0399, 0x0308, 0x0342 }, { 0x03B9, 0x0308, 0x0342 }},
+#line 112 "./unicase/special-casing-table.gperf"
+ {"\037\326\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0342, 0 }, { 0x1FD6, 0, 0 }, { 0x0399, 0x0342, 0 }, { 0x03B9, 0x0342, 0 }},
+#line 111 "./unicase/special-casing-table.gperf"
+ {"\037\323\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x1FD3, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 }},
+#line 110 "./unicase/special-casing-table.gperf"
+ {"\037\322\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0300 }, { 0x1FD2, 0, 0 }, { 0x0399, 0x0308, 0x0300 }, { 0x03B9, 0x0308, 0x0300 }},
+#line 24 "./unicase/special-casing-table.gperf"
+ {"\000\315\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CD, 0, 0 }, { 0x0069, 0x0307, 0x0301 }, { 0x00CD, 0, 0 }, { 0x00ED, 0, 0 }},
+#line 108 "./unicase/special-casing-table.gperf"
+ {"\037\307\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0x0399 }, { 0x1FC7, 0, 0 }, { 0x0397, 0x0342, 0x0345 }, { 0x03B7, 0x0342, 0x03B9 }},
+#line 107 "./unicase/special-casing-table.gperf"
+ {"\037\306\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0 }, { 0x1FC6, 0, 0 }, { 0x0397, 0x0342, 0 }, { 0x03B7, 0x0342, 0 }},
+#line 106 "./unicase/special-casing-table.gperf"
+ {"\037\304\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0389, 0x0399, 0 }, { 0x1FC4, 0, 0 }, { 0x0389, 0x0345, 0 }, { 0x03AE, 0x03B9, 0 }},
+#line 105 "./unicase/special-casing-table.gperf"
+ {"\037\303\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 }},
+#line 104 "./unicase/special-casing-table.gperf"
+ {"\037\302\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FCA, 0x0399, 0 }, { 0x1FC2, 0, 0 }, { 0x1FCA, 0x0345, 0 }, { 0x1F74, 0x03B9, 0 }},
+#line 103 "./unicase/special-casing-table.gperf"
+ {"\037\274\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }},
+#line 102 "./unicase/special-casing-table.gperf"
+ {"\037\267\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0x0399 }, { 0x1FB7, 0, 0 }, { 0x0391, 0x0342, 0x0345 }, { 0x03B1, 0x0342, 0x03B9 }},
+#line 101 "./unicase/special-casing-table.gperf"
+ {"\037\266\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0 }, { 0x1FB6, 0, 0 }, { 0x0391, 0x0342, 0 }, { 0x03B1, 0x0342, 0 }},
+#line 100 "./unicase/special-casing-table.gperf"
+ {"\037\264\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0386, 0x0399, 0 }, { 0x1FB4, 0, 0 }, { 0x0386, 0x0345, 0 }, { 0x03AC, 0x03B9, 0 }},
+#line 99 "./unicase/special-casing-table.gperf"
+ {"\037\263\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 }},
+#line 98 "./unicase/special-casing-table.gperf"
+ {"\037\262\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FBA, 0x0399, 0 }, { 0x1FB2, 0, 0 }, { 0x1FBA, 0x0345, 0 }, { 0x1F70, 0x03B9, 0 }},
+#line 38 "./unicase/special-casing-table.gperf"
+ {"\003\260\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x03B0, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 }},
+#line 97 "./unicase/special-casing-table.gperf"
+ {"\037\257\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }},
+#line 96 "./unicase/special-casing-table.gperf"
+ {"\037\256\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }},
+#line 95 "./unicase/special-casing-table.gperf"
+ {"\037\255\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }},
+#line 94 "./unicase/special-casing-table.gperf"
+ {"\037\254\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }},
+#line 93 "./unicase/special-casing-table.gperf"
+ {"\037\253\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 }},
+#line 92 "./unicase/special-casing-table.gperf"
+ {"\037\252\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }},
+#line 91 "./unicase/special-casing-table.gperf"
+ {"\037\251\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }},
+#line 90 "./unicase/special-casing-table.gperf"
+ {"\037\250\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }},
+#line 89 "./unicase/special-casing-table.gperf"
+ {"\037\247\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 }},
+#line 88 "./unicase/special-casing-table.gperf"
+ {"\037\246\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 }},
+#line 87 "./unicase/special-casing-table.gperf"
+ {"\037\245\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 }},
+#line 86 "./unicase/special-casing-table.gperf"
+ {"\037\244\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 }},
+#line 84 "./unicase/special-casing-table.gperf"
+ {"\037\242\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 }},
+#line 83 "./unicase/special-casing-table.gperf"
+ {"\037\241\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 }},
+#line 82 "./unicase/special-casing-table.gperf"
+ {"\037\240\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 }},
+#line 81 "./unicase/special-casing-table.gperf"
+ {"\037\237\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 }},
+#line 79 "./unicase/special-casing-table.gperf"
+ {"\037\235\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }},
+#line 78 "./unicase/special-casing-table.gperf"
+ {"\037\234\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }},
+#line 77 "./unicase/special-casing-table.gperf"
+ {"\037\233\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }},
+#line 71 "./unicase/special-casing-table.gperf"
+ {"\037\225\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 }},
+#line 70 "./unicase/special-casing-table.gperf"
+ {"\037\224\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 }},
+#line 69 "./unicase/special-casing-table.gperf"
+ {"\037\223\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 }},
+#line 68 "./unicase/special-casing-table.gperf"
+ {"\037\222\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 }},
+#line 67 "./unicase/special-casing-table.gperf"
+ {"\037\221\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 }},
+#line 65 "./unicase/special-casing-table.gperf"
+ {"\037\217\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 }},
+#line 64 "./unicase/special-casing-table.gperf"
+ {"\037\216\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }},
+#line 63 "./unicase/special-casing-table.gperf"
+ {"\037\215\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }},
+#line 62 "./unicase/special-casing-table.gperf"
+ {"\037\214\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }},
+#line 61 "./unicase/special-casing-table.gperf"
+ {"\037\213\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }},
+#line 60 "./unicase/special-casing-table.gperf"
+ {"\037\212\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }},
+#line 59 "./unicase/special-casing-table.gperf"
+ {"\037\211\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }},
+#line 58 "./unicase/special-casing-table.gperf"
+ {"\037\210\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }},
+#line 56 "./unicase/special-casing-table.gperf"
+ {"\037\206\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 }},
+#line 55 "./unicase/special-casing-table.gperf"
+ {"\037\205\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 }},
+#line 54 "./unicase/special-casing-table.gperf"
+ {"\037\204\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 }},
+#line 53 "./unicase/special-casing-table.gperf"
+ {"\037\203\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 }},
+#line 52 "./unicase/special-casing-table.gperf"
+ {"\037\202\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 }},
+#line 51 "./unicase/special-casing-table.gperf"
+ {"\037\201\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 }},
+#line 50 "./unicase/special-casing-table.gperf"
+ {"\037\200\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 }},
+#line 49 "./unicase/special-casing-table.gperf"
+ {"\037V\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0342 }, { 0x1F56, 0, 0 }, { 0x03A5, 0x0313, 0x0342 }, { 0x03C5, 0x0313, 0x0342 }},
+#line 48 "./unicase/special-casing-table.gperf"
+ {"\037T\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0301 }, { 0x1F54, 0, 0 }, { 0x03A5, 0x0313, 0x0301 }, { 0x03C5, 0x0313, 0x0301 }},
+#line 47 "./unicase/special-casing-table.gperf"
+ {"\037R\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0300 }, { 0x1F52, 0, 0 }, { 0x03A5, 0x0313, 0x0300 }, { 0x03C5, 0x0313, 0x0300 }},
+#line 46 "./unicase/special-casing-table.gperf"
+ {"\037P\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0 }, { 0x1F50, 0, 0 }, { 0x03A5, 0x0313, 0 }, { 0x03C5, 0x0313, 0 }},
+#line 20 "./unicase/special-casing-table.gperf"
+ {"\000J\000", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x004A, 0, 0 }, { 0x006A, 0x0307, 0 }, { 0x004A, 0, 0 }, { 0x006A, 0, 0 }},
+#line 27 "./unicase/special-casing-table.gperf"
+ {"\001.\000", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x012E, 0, 0 }, { 0x012F, 0x0307, 0 }, { 0x012E, 0, 0 }, { 0x012F, 0, 0 }},
+#line 26 "./unicase/special-casing-table.gperf"
+ {"\001(\000", 0, SCC_ALWAYS , { 'l', 't' }, { 0x0128, 0, 0 }, { 0x0069, 0x0307, 0x0303 }, { 0x0128, 0, 0 }, { 0x0129, 0, 0 }},
+#line 136 "./unicase/special-casing-table.gperf"
+ {"\373\027\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053D, 0 }, { 0xFB17, 0, 0 }, { 0x0544, 0x056D, 0 }, { 0x0574, 0x056D, 0 }},
+#line 135 "./unicase/special-casing-table.gperf"
+ {"\373\026\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x054E, 0x0546, 0 }, { 0xFB16, 0, 0 }, { 0x054E, 0x0576, 0 }, { 0x057E, 0x0576, 0 }},
+#line 134 "./unicase/special-casing-table.gperf"
+ {"\373\025\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053B, 0 }, { 0xFB15, 0, 0 }, { 0x0544, 0x056B, 0 }, { 0x0574, 0x056B, 0 }},
+#line 133 "./unicase/special-casing-table.gperf"
+ {"\373\024\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0535, 0 }, { 0xFB14, 0, 0 }, { 0x0544, 0x0565, 0 }, { 0x0574, 0x0565, 0 }},
+#line 132 "./unicase/special-casing-table.gperf"
+ {"\373\023\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0546, 0 }, { 0xFB13, 0, 0 }, { 0x0544, 0x0576, 0 }, { 0x0574, 0x0576, 0 }},
+#line 131 "./unicase/special-casing-table.gperf"
+ {"\373\006\000", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB06, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 }}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = gl_unicase_special_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ if (len == lengthtable[key])
+ {
+ register const char *s = wordlist[key].code;
+
+ if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
diff --git a/lib/unicase/special-casing.c b/lib/unicase/special-casing.c
new file mode 100644
index 0000000..9cc207c
--- /dev/null
+++ b/lib/unicase/special-casing.c
@@ -0,0 +1,25 @@
+/* Special casing table.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "special-casing.h"
+
+#include <string.h>
+
+#include "unicase/special-casing-table.h"
diff --git a/lib/unicase/special-casing.h b/lib/unicase/special-casing.h
new file mode 100644
index 0000000..ab88b84
--- /dev/null
+++ b/lib/unicase/special-casing.h
@@ -0,0 +1,60 @@
+/* Special casing table.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+
+/* A special casing context.
+ A context is negated through x -> -x. */
+enum
+{
+ SCC_ALWAYS = 0,
+ SCC_FINAL_SIGMA = 1,
+ SCC_AFTER_SOFT_DOTTED = 2,
+ SCC_MORE_ABOVE = 3,
+ SCC_BEFORE_DOT = 4,
+ SCC_AFTER_I = 5
+};
+
+struct special_casing_rule
+{
+ /* The first two bytes are the code, in big-endian order. The third byte
+ only distinguishes different rules pertaining to the same code. */
+ /*unsigned*/ char code[3];
+
+ /* True when this rule is not the last one for the given code. */
+ /*bool*/ unsigned int has_next : 1;
+
+ /* Context. */
+ signed int context : 7;
+
+ /* Language, or an empty string. */
+ char language[2];
+
+ /* Mapping to upper case. Between 0 and 3 characters. Filled with 0s. */
+ unsigned short upper[3];
+
+ /* Mapping to lower case. Between 0 and 3 characters. Filled with 0s. */
+ unsigned short lower[3];
+
+ /* Mapping to title case. Between 0 and 3 characters. Filled with 0s. */
+ unsigned short title[3];
+
+ /* Casefolding mapping. Between 0 and 3 characters. Filled with 0s. */
+ unsigned short casefold[3];
+};
+
+extern const struct special_casing_rule *
+ gl_unicase_special_lookup (const char *str, unsigned int len);
diff --git a/lib/unicase/tocasefold.c b/lib/unicase/tocasefold.c
new file mode 100644
index 0000000..752ba60
--- /dev/null
+++ b/lib/unicase/tocasefold.c
@@ -0,0 +1,27 @@
+/* Casefold mapping for Unicode characters (locale and context independent).
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "casefold.h"
+
+/* Define u_mapping table. */
+#include "tocasefold.h"
+
+#define FUNC uc_tocasefold
+#include "simple-mapping.h"
diff --git a/lib/unicase/tocasefold.h b/lib/unicase/tocasefold.h
new file mode 100644
index 0000000..59f2681
--- /dev/null
+++ b/lib/unicase/tocasefold.h
@@ -0,0 +1,567 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Simple character mapping of Unicode characters. */
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+#define mapping_header_0 16
+#define mapping_header_1 2
+#define mapping_header_2 7
+#define mapping_header_3 511
+#define mapping_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ int level3[26 << 7];
+ }
+u_mapping =
+{
+ { 0, 512 },
+ {
+ 0, 128, 256, 384, 512, -1, 640, 768,
+ 896, 1024, 1152, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1280, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1408, 1536, 1664, 1792,
+ -1, -1, 1920, 2048, -1, -1, -1, -1,
+ -1, 2176, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2304, 2432, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2560, 2688, 2816, 2944,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3072, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 3200, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 775, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 0,
+ 32, 32, 32, 32, 32, 32, 32, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -121, 1, 0, 1, 0, 1, 0, -268,
+ 0, 210, 1, 0, 1, 0, 206, 1,
+ 0, 205, 205, 1, 0, 0, 79, 202,
+ 203, 1, 0, 205, 207, 0, 211, 209,
+ 1, 0, 0, 0, 211, 213, 0, 214,
+ 1, 0, 1, 0, 1, 0, 218, 1,
+ 0, 218, 0, 0, 1, 0, 218, 1,
+ 0, 217, 217, 1, 0, 1, 0, 219,
+ 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 1, 0, 2,
+ 1, 0, 2, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 2, 1, 0, 1, 0, -97, -56,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -130, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 10795, 1, 0, -163, 10792, 0,
+ 0, 1, 0, -195, 69, 71, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 116, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0,
+ 37, 37, 37, 0, 64, 0, 63, 63,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8,
+ -30, -25, 0, 0, 0, -15, -22, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -54, -48, 0, 0, -60, -64, 0, 1,
+ 0, -7, 1, 0, 0, -130, -130, -130,
+ 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 15, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 0, 0,
+ 0, 0, 0, -58, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, -8, 0, -8, 0, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -74, -74, 0, 0, -7173, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -86, -86, -86, -86, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -100, -100, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -112, -112, -7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -128, -128, -126, -126, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -7517, 0,
+ 0, 0, -8383, -8262, 0, 0, 0, 0,
+ 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, -10743, -3814, -10727, 0, 0, 1,
+ 0, 1, 0, 1, 0, -10780, -10749, -10783,
+ 0, 0, 1, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 1, 0, -35332, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unicase/tolower.c b/lib/unicase/tolower.c
new file mode 100644
index 0000000..5ed0c6d
--- /dev/null
+++ b/lib/unicase/tolower.c
@@ -0,0 +1,27 @@
+/* Lowercase mapping for Unicode characters (locale and context independent).
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+/* Define u_mapping table. */
+#include "tolower.h"
+
+#define FUNC uc_tolower
+#include "simple-mapping.h"
diff --git a/lib/unicase/tolower.h b/lib/unicase/tolower.h
new file mode 100644
index 0000000..e7b4b29
--- /dev/null
+++ b/lib/unicase/tolower.h
@@ -0,0 +1,567 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Simple character mapping of Unicode characters. */
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+#define mapping_header_0 16
+#define mapping_header_1 2
+#define mapping_header_2 7
+#define mapping_header_3 511
+#define mapping_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ int level3[26 << 7];
+ }
+u_mapping =
+{
+ { 0, 512 },
+ {
+ 0, 128, 256, 384, 512, -1, 640, 768,
+ 896, 1024, 1152, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1280, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1408, 1536, 1664, 1792,
+ -1, -1, 1920, 2048, -1, -1, -1, -1,
+ -1, 2176, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2304, 2432, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2560, 2688, 2816, 2944,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3072, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 3200, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 0,
+ 32, 32, 32, 32, 32, 32, 32, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -199, 0, 1, 0, 1, 0, 1, 0,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -121, 1, 0, 1, 0, 1, 0, 0,
+ 0, 210, 1, 0, 1, 0, 206, 1,
+ 0, 205, 205, 1, 0, 0, 79, 202,
+ 203, 1, 0, 205, 207, 0, 211, 209,
+ 1, 0, 0, 0, 211, 213, 0, 214,
+ 1, 0, 1, 0, 1, 0, 218, 1,
+ 0, 218, 0, 0, 1, 0, 218, 1,
+ 0, 217, 217, 1, 0, 1, 0, 219,
+ 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 2, 1, 0, 2,
+ 1, 0, 2, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 2, 1, 0, 1, 0, -97, -56,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ -130, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 10795, 1, 0, -163, 10792, 0,
+ 0, 1, 0, -195, 69, 71, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0,
+ 37, 37, 37, 0, 64, 0, 63, 63,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 0, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, -60, 0, 0, 1,
+ 0, -7, 1, 0, 0, -130, -130, -130,
+ 80, 80, 80, 80, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 15, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264,
+ 7264, 7264, 7264, 7264, 7264, 7264, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -7615, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, -8, 0, -8, 0, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -8, -8, -8, -8, -8, -8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -74, -74, -9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -86, -86, -86, -86, -9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -100, -100, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, -8, -112, -112, -7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -128, -128, -126, -126, -9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -7517, 0,
+ 0, 0, -8383, -8262, 0, 0, 0, 0,
+ 0, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, -10743, -3814, -10727, 0, 0, 1,
+ 0, 1, 0, 1, 0, -10780, -10749, -10783,
+ 0, 0, 1, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 1, 0, -35332, 1, 0,
+ 1, 0, 1, 0, 1, 0, 1, 0,
+ 0, 0, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unicase/totitle.c b/lib/unicase/totitle.c
new file mode 100644
index 0000000..0ca5a45
--- /dev/null
+++ b/lib/unicase/totitle.c
@@ -0,0 +1,27 @@
+/* Titlecase mapping for Unicode characters (locale and context independent).
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+/* Define u_mapping table. */
+#include "totitle.h"
+
+#define FUNC uc_totitle
+#include "simple-mapping.h"
diff --git a/lib/unicase/totitle.h b/lib/unicase/totitle.h
new file mode 100644
index 0000000..6610437
--- /dev/null
+++ b/lib/unicase/totitle.h
@@ -0,0 +1,615 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Simple character mapping of Unicode characters. */
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+#define mapping_header_0 16
+#define mapping_header_1 2
+#define mapping_header_2 7
+#define mapping_header_3 511
+#define mapping_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ int level3[29 << 7];
+ }
+u_mapping =
+{
+ { 0, 512 },
+ {
+ 0, 128, 256, 384, 512, 640, 768, 896,
+ 1024, 1152, 1280, 1408, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1536, -1, 1664, 1792, 1920, 2048,
+ -1, -1, 2176, 2304, -1, -1, -1, -1,
+ -1, 2432, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2560, 2688, 2816, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2944, 3072, 3200, 3328,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3456, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 3584, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 743, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, 0,
+ -32, -32, -32, -32, -32, -32, -32, 121,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -232, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, -300,
+ 195, 0, 0, -1, 0, -1, 0, 0,
+ -1, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, -1, 0, 0, 97, 0, 0,
+ 0, -1, 163, 0, 0, 0, 130, 0,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ -1, 0, 0, 0, 0, -1, 0, 0,
+ -1, 0, 0, 0, -1, 0, -1, 0,
+ 0, -1, 0, 0, 0, -1, 0, 56,
+ 0, 0, 0, 0, 1, 0, -1, 1,
+ 0, -1, 1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, -79, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 1, 0, -1, 0, -1, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, -1, 0, 0, 0, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 10783, 10780, 0, -210, -206, 0, -205, -205,
+ 0, -202, 0, -203, 0, 0, 0, 0,
+ -205, 0, 0, -207, 0, 0, 0, 0,
+ -209, -211, 0, 10743, 0, 0, 0, -211,
+ 0, 10749, -213, 0, 0, -214, 0, 0,
+ 0, 0, 0, 0, 0, 10727, 0, 0,
+ -218, 0, 0, -218, 0, 0, 0, 0,
+ -218, -69, -217, -217, -71, 0, 0, 0,
+ 0, 0, -219, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 84, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, 0, 0, -1,
+ 0, 0, 0, 130, 130, 130, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -38, -37, -37, -37,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -31, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -64, -63, -63, 0,
+ -62, -57, 0, 0, 0, -47, -54, -8,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ -86, -80, 7, 0, 0, -96, 0, 0,
+ -1, 0, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -80, -80, -80, -80, -80, -80, -80, -80,
+ -80, -80, -80, -80, -80, -80, -80, -80,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, -15,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 35332, 0, 0, 0, 3814, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ 0, 0, 0, -59, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8, 0, 8, 0, 8, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 74, 74, 86, 86, 86, 86, 100, 100,
+ 128, 128, 112, 112, 126, 126, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -7205, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -16, -16, -16, -16, -16, -16, -16, -16,
+ -16, -16, -16, -16, -16, -16, -16, -16,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, 0,
+ 0, -1, 0, 0, 0, -10795, -10792, 0,
+ -1, 0, -1, 0, -1, 0, 0, 0,
+ 0, 0, 0, -1, 0, 0, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -1, 0, -1, 0, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unicase/toupper.c b/lib/unicase/toupper.c
new file mode 100644
index 0000000..d74e45c
--- /dev/null
+++ b/lib/unicase/toupper.c
@@ -0,0 +1,27 @@
+/* Uppercase mapping for Unicode characters (locale and context independent).
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+/* Define u_mapping table. */
+#include "toupper.h"
+
+#define FUNC uc_toupper
+#include "simple-mapping.h"
diff --git a/lib/unicase/toupper.h b/lib/unicase/toupper.h
new file mode 100644
index 0000000..e5194f4
--- /dev/null
+++ b/lib/unicase/toupper.h
@@ -0,0 +1,615 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Simple character mapping of Unicode characters. */
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+#define mapping_header_0 16
+#define mapping_header_1 2
+#define mapping_header_2 7
+#define mapping_header_3 511
+#define mapping_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ int level3[29 << 7];
+ }
+u_mapping =
+{
+ { 0, 512 },
+ {
+ 0, 128, 256, 384, 512, 640, 768, 896,
+ 1024, 1152, 1280, 1408, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1536, -1, 1664, 1792, 1920, 2048,
+ -1, -1, 2176, 2304, -1, -1, -1, -1,
+ -1, 2432, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2560, 2688, 2816, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2944, 3072, 3200, 3328,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3456, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 3584, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 743, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, 0,
+ -32, -32, -32, -32, -32, -32, -32, 121,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -232, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, -300,
+ 195, 0, 0, -1, 0, -1, 0, 0,
+ -1, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, -1, 0, 0, 97, 0, 0,
+ 0, -1, 163, 0, 0, 0, 130, 0,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ -1, 0, 0, 0, 0, -1, 0, 0,
+ -1, 0, 0, 0, -1, 0, -1, 0,
+ 0, -1, 0, 0, 0, -1, 0, 56,
+ 0, 0, 0, 0, 0, -1, -2, 0,
+ -1, -2, 0, -1, -2, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, -79, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, -2, 0, -1, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, -1, 0, 0, 0, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 10783, 10780, 0, -210, -206, 0, -205, -205,
+ 0, -202, 0, -203, 0, 0, 0, 0,
+ -205, 0, 0, -207, 0, 0, 0, 0,
+ -209, -211, 0, 10743, 0, 0, 0, -211,
+ 0, 10749, -213, 0, 0, -214, 0, 0,
+ 0, 0, 0, 0, 0, 10727, 0, 0,
+ -218, 0, 0, -218, 0, 0, 0, 0,
+ -218, -69, -217, -217, -71, 0, 0, 0,
+ 0, 0, -219, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 84, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, 0, 0, -1,
+ 0, 0, 0, 130, 130, 130, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -38, -37, -37, -37,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -31, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -64, -63, -63, 0,
+ -62, -57, 0, 0, 0, -47, -54, -8,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ -86, -80, 7, 0, 0, -96, 0, 0,
+ -1, 0, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -80, -80, -80, -80, -80, -80, -80, -80,
+ -80, -80, -80, -80, -80, -80, -80, -80,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, -1, 0, -1, 0, -1, 0,
+ -1, 0, -1, 0, -1, 0, -1, -15,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 35332, 0, 0, 0, 3814, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ 0, 0, 0, -59, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8, 0, 8, 0, 8, 0, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 74, 74, 86, 86, 86, 86, 100, 100,
+ 128, 128, 112, 112, 126, 126, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -7205, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 8, 8, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -16, -16, -16, -16, -16, -16, -16, -16,
+ -16, -16, -16, -16, -16, -16, -16, -16,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48, 0,
+ 0, -1, 0, 0, 0, -10795, -10792, 0,
+ -1, 0, -1, 0, -1, 0, 0, 0,
+ 0, 0, 0, -1, 0, 0, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
+ -7264, -7264, -7264, -7264, -7264, -7264, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -1, 0, -1, 0, 0, -1,
+ 0, -1, 0, -1, 0, -1, 0, -1,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40, -40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unicase/u-casecmp.h b/lib/unicase/u-casecmp.h
new file mode 100644
index 0000000..e1cf99c
--- /dev/null
+++ b/lib/unicase/u-casecmp.h
@@ -0,0 +1,69 @@
+/* Case and normalization insensitive comparison of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp)
+{
+ UNIT buf1[2048 / sizeof (UNIT)];
+ UNIT buf2[2048 / sizeof (UNIT)];
+ UNIT *norms1;
+ size_t norms1_length;
+ UNIT *norms2;
+ size_t norms2_length;
+ int cmp;
+
+ /* Optimization: There is no need to do canonical composition of each string.
+ Decomposition is enough. */
+ if (nf != NULL)
+ nf = uninorm_decomposing_form (nf);
+
+ /* Case-fold and normalize S1. */
+ norms1_length = sizeof (buf1) / sizeof (UNIT);
+ norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length);
+ if (norms1 == NULL)
+ /* errno is set here. */
+ return -1;
+
+ /* Case-fold and normalize S2. */
+ norms2_length = sizeof (buf2) / sizeof (UNIT);
+ norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length);
+ if (norms2 == NULL)
+ {
+ if (norms1 != buf1)
+ {
+ int saved_errno = errno;
+ free (norms1);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ /* Compare the normalized strings. */
+ cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ if (cmp > 0)
+ cmp = 1;
+ else if (cmp < 0)
+ cmp = -1;
+
+ if (norms2 != buf2)
+ free (norms2);
+ if (norms1 != buf1)
+ free (norms1);
+ *resultp = cmp;
+ return 0;
+}
diff --git a/lib/unicase/u-casecoll.h b/lib/unicase/u-casecoll.h
new file mode 100644
index 0000000..73094ab
--- /dev/null
+++ b/lib/unicase/u-casecoll.h
@@ -0,0 +1,68 @@
+/* Locale dependent, case and normalization insensitive comparison of Unicode
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
+ const char *iso639_language, uninorm_t nf, int *resultp)
+{
+ char buf1[2048];
+ char buf2[2048];
+ char *transformed1;
+ size_t transformed1_length;
+ char *transformed2;
+ size_t transformed2_length;
+ int cmp;
+
+ /* Normalize and transform S1. */
+ transformed1_length = sizeof (buf1);
+ transformed1 =
+ U_CASEXFRM (s1, n1, iso639_language, nf, buf1, &transformed1_length);
+ if (transformed1 == NULL)
+ /* errno is set here. */
+ return -1;
+
+ /* Normalize and transform S2. */
+ transformed2_length = sizeof (buf2);
+ transformed2 =
+ U_CASEXFRM (s2, n2, iso639_language, nf, buf2, &transformed2_length);
+ if (transformed2 == NULL)
+ {
+ if (transformed1 != buf1)
+ {
+ int saved_errno = errno;
+ free (transformed1);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ /* Compare the transformed strings. */
+ cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
+ if (cmp < 0)
+ cmp = -1;
+ else if (cmp > 0)
+ cmp = 1;
+
+ if (transformed2 != buf2)
+ free (transformed2);
+ if (transformed1 != buf1)
+ free (transformed1);
+ *resultp = cmp;
+ return 0;
+}
diff --git a/lib/unicase/u-casefold.h b/lib/unicase/u-casefold.h
new file mode 100644
index 0000000..c41f4e1
--- /dev/null
+++ b/lib/unicase/u-casefold.h
@@ -0,0 +1,28 @@
+/* Casefolding mapping for Unicode strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ return U_CT_CASEFOLD (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u-casemap.h b/lib/unicase/u-casemap.h
new file mode 100644
index 0000000..ea41444
--- /dev/null
+++ b/lib/unicase/u-casemap.h
@@ -0,0 +1,416 @@
+/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ ucs4_t (*single_character_map) (ucs4_t),
+ size_t offset_in_rule, /* offset in 'struct special_casing_rule' */
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ /* The result being accumulated. */
+ UNIT *result;
+ size_t length;
+ size_t allocated;
+
+ /* Initialize the accumulator. */
+ if (nf != NULL || resultbuf == NULL)
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ else
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ length = 0;
+
+ {
+ const UNIT *s_end = s + n;
+
+ /* Helper for evaluating the FINAL_SIGMA condition:
+ Last character that was not case-ignorable. */
+ ucs4_t last_char_except_ignorable =
+ prefix_context.last_char_except_ignorable;
+
+ /* Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions:
+ Last character that was of combining class 230 ("Above") or 0. */
+ ucs4_t last_char_normal_or_above =
+ prefix_context.last_char_normal_or_above;
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
+
+ ucs4_t mapped_uc[3];
+ unsigned int mapped_count;
+
+ if (uc < 0x10000)
+ {
+ /* Look first in the special-casing table. */
+ char code[3];
+
+ code[0] = (uc >> 8) & 0xff;
+ code[1] = uc & 0xff;
+
+ for (code[2] = 0; ; code[2]++)
+ {
+ const struct special_casing_rule *rule =
+ gl_unicase_special_lookup (code, 3);
+
+ if (rule == NULL)
+ break;
+
+ /* Test if the condition applies. */
+ /* Does the language apply? */
+ if (rule->language[0] == '\0'
+ || (iso639_language != NULL
+ && iso639_language[0] == rule->language[0]
+ && iso639_language[1] == rule->language[1]))
+ {
+ /* Does the context apply? */
+ int context = rule->context;
+ bool applies;
+
+ if (context < 0)
+ context = - context;
+ switch (context)
+ {
+ case SCC_ALWAYS:
+ applies = true;
+ break;
+
+ case SCC_FINAL_SIGMA:
+ /* "Before" condition: preceded by a sequence
+ consisting of a cased letter and a case-ignorable
+ sequence.
+ "After" condition: not followed by a sequence
+ consisting of a case-ignorable sequence and then a
+ cased letter. */
+ /* Test the "before" condition. */
+ applies = uc_is_cased (last_char_except_ignorable);
+ /* Test the "after" condition. */
+ if (applies)
+ {
+ const UNIT *s2 = s + count;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ /* Our uc_is_case_ignorable function is
+ known to return false for all cased
+ characters. So we can call
+ uc_is_case_ignorable first. */
+ if (!uc_is_case_ignorable (uc2))
+ {
+ applies = ! uc_is_cased (uc2);
+ break;
+ }
+ s2 += count2;
+ }
+ else
+ {
+ applies = ! uc_is_cased (suffix_context.first_char_except_ignorable);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_AFTER_SOFT_DOTTED:
+ /* "Before" condition: There is a Soft_Dotted character
+ before it, with no intervening character of
+ combining class 0 or 230 (Above). */
+ /* Test the "before" condition. */
+ applies = uc_is_property_soft_dotted (last_char_normal_or_above);
+ break;
+
+ case SCC_MORE_ABOVE:
+ /* "After" condition: followed by a character of
+ combining class 230 (Above) with no intervening
+ character of combining class 0 or 230 (Above). */
+ /* Test the "after" condition. */
+ {
+ const UNIT *s2 = s + count;
+ applies = false;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ int ccc = uc_combining_class (uc2);
+ if (ccc == UC_CCC_A)
+ {
+ applies = true;
+ break;
+ }
+ if (ccc == UC_CCC_NR)
+ break;
+ s2 += count2;
+ }
+ else
+ {
+ applies = ((suffix_context.bits & SCC_MORE_ABOVE_MASK) != 0);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_BEFORE_DOT:
+ /* "After" condition: followed by COMBINING DOT ABOVE
+ (U+0307). Any sequence of characters with a
+ combining class that is neither 0 nor 230 may
+ intervene between the current character and the
+ combining dot above. */
+ /* Test the "after" condition. */
+ {
+ const UNIT *s2 = s + count;
+ applies = false;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ if (uc2 == 0x0307) /* COMBINING DOT ABOVE */
+ {
+ applies = true;
+ break;
+ }
+ {
+ int ccc = uc_combining_class (uc2);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ break;
+ }
+ s2 += count2;
+ }
+ else
+ {
+ applies = ((suffix_context.bits & SCC_BEFORE_DOT_MASK) != 0);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_AFTER_I:
+ /* "Before" condition: There is an uppercase I before
+ it, and there is no intervening character of
+ combining class 0 or 230 (Above). */
+ /* Test the "before" condition. */
+ applies = (last_char_normal_or_above == 'I');
+ break;
+
+ default:
+ abort ();
+ }
+ if (rule->context < 0)
+ applies = !applies;
+
+ if (applies)
+ {
+ /* The rule applies.
+ Look up the mapping (0 to 3 characters). */
+ const unsigned short *mapped_in_rule =
+ (const unsigned short *)((const char *)rule + offset_in_rule);
+
+ if (mapped_in_rule[0] == 0)
+ mapped_count = 0;
+ else
+ {
+ mapped_uc[0] = mapped_in_rule[0];
+ if (mapped_in_rule[1] == 0)
+ mapped_count = 1;
+ else
+ {
+ mapped_uc[1] = mapped_in_rule[1];
+ if (mapped_in_rule[2] == 0)
+ mapped_count = 2;
+ else
+ {
+ mapped_uc[2] = mapped_in_rule[2];
+ mapped_count = 3;
+ }
+ }
+ }
+ goto found_mapping;
+ }
+ }
+
+ /* Optimization: Save a hash table lookup in the next round. */
+ if (!rule->has_next)
+ break;
+ }
+ }
+
+ /* No special-cased mapping. So use the locale and context independent
+ mapping. */
+ mapped_uc[0] = single_character_map (uc);
+ mapped_count = 1;
+
+ found_mapping:
+ /* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
+ {
+ unsigned int i;
+
+ for (i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
+
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
+ {
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
+ }
+ }
+ }
+ done_appending: ;
+ }
+ }
+
+ if (!uc_is_case_ignorable (uc))
+ last_char_except_ignorable = uc;
+
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ last_char_normal_or_above = uc;
+ }
+
+ s += count;
+ }
+ }
+
+ if (nf != NULL)
+ {
+ /* Finally, normalize the result. */
+ UNIT *normalized_result;
+
+ normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ if (normalized_result == NULL)
+ goto fail;
+
+ free (result);
+ return normalized_result;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ UNIT *memory;
+
+ memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+
+ fail:
+ if (result != resultbuf)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return NULL;
+}
diff --git a/lib/unicase/u-casexfrm.h b/lib/unicase/u-casexfrm.h
new file mode 100644
index 0000000..e36aff3
--- /dev/null
+++ b/lib/unicase/u-casexfrm.h
@@ -0,0 +1,88 @@
+/* Locale dependent transformation for case insensitive comparison of Unicode
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+char *
+FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
+ char *resultbuf, size_t *lengthp)
+{
+ UNIT foldedsbuf[2048 / sizeof (UNIT)];
+ UNIT *foldeds;
+ size_t foldeds_length;
+ char convsbuf[2048];
+ char *convs;
+ size_t convs_length;
+ char *result;
+
+ /* Casefold and normalize the Unicode string. */
+ foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT);
+ foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length);
+ if (foldeds == NULL)
+ /* errno is set here. */
+ return NULL;
+
+ /* Convert it to locale encoding. */
+ convs_length = sizeof (convsbuf) - 1;
+ convs = U_CONV_TO_ENCODING (locale_charset (),
+ iconveh_error,
+ foldeds, foldeds_length,
+ NULL,
+ convsbuf, &convs_length);
+ if (convs == NULL)
+ {
+ if (foldeds != foldedsbuf)
+ {
+ int saved_errno = errno;
+ free (foldeds);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (foldeds != foldedsbuf)
+ free (foldeds);
+
+ /* Ensure one more byte is available. */
+ if (convs != convsbuf)
+ {
+ char *memory = (char *) realloc (convs, convs_length + 1);
+ if (memory == NULL)
+ {
+ free (convs);
+ errno = ENOMEM;
+ return NULL;
+ }
+ convs = memory;
+ }
+
+ /* Apply locale dependent transformations for comparison. */
+ result = memxfrm (convs, convs_length, resultbuf, lengthp);
+ if (result == NULL)
+ {
+ if (convs != convsbuf)
+ {
+ int saved_errno = errno;
+ free (convs);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (convs != convsbuf)
+ free (convs);
+ return result;
+}
diff --git a/lib/unicase/u-ct-casefold.h b/lib/unicase/u-ct-casefold.h
new file mode 100644
index 0000000..d97be26
--- /dev/null
+++ b/lib/unicase/u-ct-casefold.h
@@ -0,0 +1,107 @@
+/* Casefolding mapping for Unicode substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ /* Implement the three definitions of caseless matching, as described in
+ Unicode 5.0, section "Default caseless matching":
+ - If no normalization is requested, simply apply the casefolding.
+ X -> toCasefold(X).
+ - If canonical normalization is requested, apply it, and apply an NFD
+ before.
+ X -> NFD(toCasefold(NFD(X))).
+ - If compatibility normalization is requested, apply it twice, apply
+ the normalization after each, and apply an NFD before:
+ X -> NFKD(toCasefold(NFKD(toCasefold(NFD(X))))). */
+ if (nf == NULL)
+ /* X -> toCasefold(X) */
+ return U_CASEMAP (s, n, prefix_context, suffix_context, iso639_language,
+ uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
+ NULL,
+ resultbuf, lengthp);
+ else
+ {
+ uninorm_t nfd = uninorm_decomposing_form (nf);
+ /* X -> nf(toCasefold(NFD(X))) or
+ X -> nf(toCasefold(nfd(toCasefold(NFD(X))))) */
+ int repeat = (uninorm_is_compat_decomposing (nf) ? 2 : 1);
+ UNIT tmpbuf1[2048 / sizeof (UNIT)];
+ UNIT tmpbuf2[2048 / sizeof (UNIT)];
+ UNIT *tmp1;
+ size_t tmp1_length;
+ UNIT *tmp2;
+ size_t tmp2_length;
+
+ tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
+ tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length);
+ if (tmp1 == NULL)
+ /* errno is set here. */
+ return NULL;
+
+ do
+ {
+ tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT);
+ tmp2 = U_CASEMAP (tmp1, tmp1_length,
+ prefix_context, suffix_context, iso639_language,
+ uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
+ NULL,
+ tmpbuf2, &tmp2_length);
+ if (tmp2 == NULL)
+ {
+ int saved_errno = errno;
+ if (tmp1 != tmpbuf1)
+ free (tmp1);
+ errno = saved_errno;
+ return NULL;
+ }
+
+ if (tmp1 != tmpbuf1)
+ free (tmp1);
+
+ if (repeat > 1)
+ {
+ tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
+ tmp1 = U_NORMALIZE (nfd, tmp2, tmp2_length,
+ tmpbuf1, &tmp1_length);
+ }
+ else
+ /* Last run through this loop. */
+ tmp1 = U_NORMALIZE (nf, tmp2, tmp2_length,
+ resultbuf, lengthp);
+ if (tmp1 == NULL)
+ {
+ int saved_errno = errno;
+ if (tmp2 != tmpbuf2)
+ free (tmp2);
+ errno = saved_errno;
+ return NULL;
+ }
+
+ if (tmp2 != tmpbuf2)
+ free (tmp2);
+ }
+ while (--repeat > 0);
+
+ return tmp1;
+ }
+}
diff --git a/lib/unicase/u-ct-totitle.h b/lib/unicase/u-ct-totitle.h
new file mode 100644
index 0000000..f0d4fd7
--- /dev/null
+++ b/lib/unicase/u-ct-totitle.h
@@ -0,0 +1,501 @@
+/* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+/* Quoting the Unicode standard, section "Default Case Algorithms":
+ Find the word boundaries in X according to Unicode Standard Annex #29,
+ “Text Boundaries.” For each word boundary, find the first cased character
+ F following the word boundary. If F exists, map F to Titlecase_Mapping(F);
+ then map all characters C between F and the following word boundary to
+ Lowercase_Mapping(C). */
+
+UNIT *
+FUNC (const UNIT *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ /* The result being accumulated. */
+ UNIT *result;
+ size_t length;
+ size_t allocated;
+ /* An array containing the word break positions. */
+ char *wordbreaks;
+
+ /* Initialize the accumulator. */
+ if (nf != NULL || resultbuf == NULL)
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ else
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ length = 0;
+
+ /* Initialize the word breaks array. */
+ if (n > 0)
+ {
+ wordbreaks = (char *) malloc (n);
+ if (wordbreaks == NULL)
+ {
+ errno = ENOMEM;
+ goto fail2;
+ }
+ U_WORDBREAKS (s, n, wordbreaks);
+ }
+ else
+ wordbreaks = NULL;
+
+ {
+ const UNIT *s_end = s + n;
+ const char *wp = wordbreaks;
+
+ /* When considering the string as segmented by word boundaries: For each
+ such segment:
+ - In the first part, we are searching for the first cased character.
+ In this state, in_word_first_part = true, and no conversion takes
+ place.
+ - In the second part, we are converting every character: the first
+ among these characters to title case, the other ones to lower case.
+ In this state, in_word_first_part = false. */
+ bool in_word_first_part = true;
+
+ /* Helper for evaluating the FINAL_SIGMA condition:
+ Last character that was not case-ignorable. */
+ ucs4_t last_char_except_ignorable =
+ prefix_context.last_char_except_ignorable;
+
+ /* Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions:
+ Last character that was of combining class 230 ("Above") or 0. */
+ ucs4_t last_char_normal_or_above =
+ prefix_context.last_char_normal_or_above;
+
+ while (s < s_end)
+ {
+ /* Fetch the next character. */
+ ucs4_t uc;
+ int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
+
+ ucs4_t (*single_character_map) (ucs4_t);
+ size_t offset_in_rule; /* offset in 'struct special_casing_rule' */
+
+ ucs4_t mapped_uc[3];
+ unsigned int mapped_count;
+
+ if (*wp)
+ /* Crossing a word boundary. */
+ in_word_first_part = true;
+
+ /* Determine single_character_map, offset_in_rule.
+ There are three possibilities:
+ - uc should not be converted.
+ - uc should be titlecased.
+ - uc should be lowercased. */
+ if (in_word_first_part)
+ {
+ if (uc_is_cased (uc))
+ {
+ /* uc is to be titlecased. */
+ single_character_map = uc_totitle;
+ offset_in_rule = offsetof (struct special_casing_rule, title[0]);
+ in_word_first_part = false;
+ }
+ else
+ {
+ /* uc is not converted. */
+ single_character_map = NULL;
+ offset_in_rule = 0;
+ }
+ }
+ else
+ {
+ /* uc is to be lowercased. */
+ single_character_map = uc_tolower;
+ offset_in_rule = offsetof (struct special_casing_rule, lower[0]);
+ }
+
+ /* Actually map uc. */
+ if (single_character_map == NULL)
+ {
+ mapped_uc[0] = uc;
+ mapped_count = 1;
+ goto found_mapping;
+ }
+
+ if (uc < 0x10000)
+ {
+ /* Look first in the special-casing table. */
+ char code[3];
+
+ code[0] = (uc >> 8) & 0xff;
+ code[1] = uc & 0xff;
+
+ for (code[2] = 0; ; code[2]++)
+ {
+ const struct special_casing_rule *rule =
+ gl_unicase_special_lookup (code, 3);
+
+ if (rule == NULL)
+ break;
+
+ /* Test if the condition applies. */
+ /* Does the language apply? */
+ if (rule->language[0] == '\0'
+ || (iso639_language != NULL
+ && iso639_language[0] == rule->language[0]
+ && iso639_language[1] == rule->language[1]))
+ {
+ /* Does the context apply? */
+ int context = rule->context;
+ bool applies;
+
+ if (context < 0)
+ context = - context;
+ switch (context)
+ {
+ case SCC_ALWAYS:
+ applies = true;
+ break;
+
+ case SCC_FINAL_SIGMA:
+ /* "Before" condition: preceded by a sequence
+ consisting of a cased letter and a case-ignorable
+ sequence.
+ "After" condition: not followed by a sequence
+ consisting of a case-ignorable sequence and then a
+ cased letter. */
+ /* Test the "before" condition. */
+ applies = uc_is_cased (last_char_except_ignorable);
+ /* Test the "after" condition. */
+ if (applies)
+ {
+ const UNIT *s2 = s + count;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ /* Our uc_is_case_ignorable function is
+ known to return false for all cased
+ characters. So we can call
+ uc_is_case_ignorable first. */
+ if (!uc_is_case_ignorable (uc2))
+ {
+ applies = ! uc_is_cased (uc2);
+ break;
+ }
+ s2 += count2;
+ }
+ else
+ {
+ applies = ! uc_is_cased (suffix_context.first_char_except_ignorable);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_AFTER_SOFT_DOTTED:
+ /* "Before" condition: There is a Soft_Dotted character
+ before it, with no intervening character of
+ combining class 0 or 230 (Above). */
+ /* Test the "before" condition. */
+ applies = uc_is_property_soft_dotted (last_char_normal_or_above);
+ break;
+
+ case SCC_MORE_ABOVE:
+ /* "After" condition: followed by a character of
+ combining class 230 (Above) with no intervening
+ character of combining class 0 or 230 (Above). */
+ /* Test the "after" condition. */
+ {
+ const UNIT *s2 = s + count;
+ applies = false;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ int ccc = uc_combining_class (uc2);
+ if (ccc == UC_CCC_A)
+ {
+ applies = true;
+ break;
+ }
+ if (ccc == UC_CCC_NR)
+ break;
+ s2 += count2;
+ }
+ else
+ {
+ applies = ((suffix_context.bits & SCC_MORE_ABOVE_MASK) != 0);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_BEFORE_DOT:
+ /* "After" condition: followed by COMBINING DOT ABOVE
+ (U+0307). Any sequence of characters with a
+ combining class that is neither 0 nor 230 may
+ intervene between the current character and the
+ combining dot above. */
+ /* Test the "after" condition. */
+ {
+ const UNIT *s2 = s + count;
+ applies = false;
+ for (;;)
+ {
+ if (s2 < s_end)
+ {
+ ucs4_t uc2;
+ int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2);
+ if (uc2 == 0x0307) /* COMBINING DOT ABOVE */
+ {
+ applies = true;
+ break;
+ }
+ {
+ int ccc = uc_combining_class (uc2);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ break;
+ }
+ s2 += count2;
+ }
+ else
+ {
+ applies = ((suffix_context.bits & SCC_BEFORE_DOT_MASK) != 0);
+ break;
+ }
+ }
+ }
+ break;
+
+ case SCC_AFTER_I:
+ /* "Before" condition: There is an uppercase I before
+ it, and there is no intervening character of
+ combining class 0 or 230 (Above). */
+ /* Test the "before" condition. */
+ applies = (last_char_normal_or_above == 'I');
+ break;
+
+ default:
+ abort ();
+ }
+ if (rule->context < 0)
+ applies = !applies;
+
+ if (applies)
+ {
+ /* The rule applies.
+ Look up the mapping (0 to 3 characters). */
+ const unsigned short *mapped_in_rule =
+ (const unsigned short *)((const char *)rule + offset_in_rule);
+
+ if (mapped_in_rule[0] == 0)
+ mapped_count = 0;
+ else
+ {
+ mapped_uc[0] = mapped_in_rule[0];
+ if (mapped_in_rule[1] == 0)
+ mapped_count = 1;
+ else
+ {
+ mapped_uc[1] = mapped_in_rule[1];
+ if (mapped_in_rule[2] == 0)
+ mapped_count = 2;
+ else
+ {
+ mapped_uc[2] = mapped_in_rule[2];
+ mapped_count = 3;
+ }
+ }
+ }
+ goto found_mapping;
+ }
+ }
+
+ /* Optimization: Save a hash table lookup in the next round. */
+ if (!rule->has_next)
+ break;
+ }
+ }
+
+ /* No special-cased mapping. So use the locale and context independent
+ mapping. */
+ mapped_uc[0] = single_character_map (uc);
+ mapped_count = 1;
+
+ found_mapping:
+ /* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
+ {
+ unsigned int i;
+
+ for (i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
+
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail1;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
+ {
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail1;
+ }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
+ }
+ }
+ }
+ done_appending: ;
+ }
+ }
+
+ if (!uc_is_case_ignorable (uc))
+ last_char_except_ignorable = uc;
+
+ {
+ int ccc = uc_combining_class (uc);
+ if (ccc == UC_CCC_A || ccc == UC_CCC_NR)
+ last_char_normal_or_above = uc;
+ }
+
+ s += count;
+ wp += count;
+ }
+ }
+
+ free (wordbreaks);
+
+ if (nf != NULL)
+ {
+ /* Finally, normalize the result. */
+ UNIT *normalized_result;
+
+ normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ if (normalized_result == NULL)
+ goto fail2;
+
+ free (result);
+ return normalized_result;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail2;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ UNIT *memory;
+
+ memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+
+ fail1:
+ {
+ int saved_errno = errno;
+ free (wordbreaks);
+ errno = saved_errno;
+ }
+ fail2:
+ if (result != resultbuf)
+ {
+ int saved_errno = errno;
+ free (result);
+ errno = saved_errno;
+ }
+ return NULL;
+}
diff --git a/lib/unicase/u-is-cased.h b/lib/unicase/u-is-cased.h
new file mode 100644
index 0000000..b96a60f
--- /dev/null
+++ b/lib/unicase/u-is-cased.h
@@ -0,0 +1,128 @@
+/* Test whether case matters for a Unicode string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ UNIT *norms;
+ size_t norms_length;
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ UNIT *mapped_toupper;
+ UNIT *mapped_tolower;
+ UNIT *mapped_totitle;
+ size_t mapped_length;
+
+ /* Apply canonical decomposition to S. */
+ norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ if (norms == NULL)
+ /* errno is set here. */
+ return -1;
+
+ mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+
+ /* Apply toupper mapping. */
+ mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
+ if (mapped_toupper == NULL)
+ goto fail;
+
+ /* Compare. */
+ if (!(mapped_length == norms_length
+ && U_CMP (mapped_toupper, norms, norms_length) == 0))
+ {
+ if (mapped_toupper != mappedbuf)
+ free (mapped_toupper);
+ goto yes;
+ }
+
+ /* Apply tolower mapping. */
+ mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL,
+ mapped_toupper, &mapped_length);
+ if (mapped_tolower == NULL)
+ {
+ if (mapped_toupper != mappedbuf)
+ {
+ int saved_errno = errno;
+ free (mapped_toupper);
+ errno = saved_errno;
+ }
+ goto fail;
+ }
+
+ if (mapped_toupper != mapped_tolower && mapped_toupper != mappedbuf)
+ free (mapped_toupper);
+
+ /* Compare. */
+ if (!(mapped_length == norms_length
+ && U_CMP (mapped_tolower, norms, norms_length) == 0))
+ {
+ if (mapped_tolower != mappedbuf)
+ free (mapped_tolower);
+ goto yes;
+ }
+
+ /* Apply totitle mapping. */
+ mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL,
+ mapped_tolower, &mapped_length);
+ if (mapped_totitle == NULL)
+ {
+ if (mapped_tolower != mappedbuf)
+ {
+ int saved_errno = errno;
+ free (mapped_tolower);
+ errno = saved_errno;
+ }
+ goto fail;
+ }
+
+ if (mapped_tolower != mapped_totitle && mapped_tolower != mappedbuf)
+ free (mapped_tolower);
+
+ /* Compare. */
+ if (!(mapped_length == norms_length
+ && U_CMP (mapped_totitle, norms, norms_length) == 0))
+ {
+ if (mapped_totitle != mappedbuf)
+ free (mapped_totitle);
+ goto yes;
+ }
+
+ if (mapped_totitle != mappedbuf)
+ free (mapped_totitle);
+ if (norms != normsbuf)
+ free (norms);
+ *resultp = false;
+ return 0;
+
+ yes:
+ if (norms != normsbuf)
+ free (norms);
+ *resultp = true;
+ return 0;
+
+ fail:
+ if (norms != normsbuf)
+ {
+ int saved_errno = errno;
+ free (norms);
+ errno = saved_errno;
+ }
+ return -1;
+}
diff --git a/lib/unicase/u-is-invariant.h b/lib/unicase/u-is-invariant.h
new file mode 100644
index 0000000..e6b7fbb
--- /dev/null
+++ b/lib/unicase/u-is-invariant.h
@@ -0,0 +1,64 @@
+/* Test whether a Unicode string is invariant under a given case mapping.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s, size_t n,
+ UNIT * (*mapping) (const UNIT *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp),
+ const char *iso639_language,
+ bool *resultp)
+{
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ UNIT *norms;
+ size_t norms_length;
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ UNIT *mapped;
+ size_t mapped_length;
+
+ /* Apply canonical decomposition to S. */
+ norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ if (norms == NULL)
+ /* errno is set here. */
+ return -1;
+
+ /* Apply mapping. */
+ mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+ mapped = mapping (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
+ if (mapped == NULL)
+ {
+ if (norms != normsbuf)
+ {
+ int saved_errno = errno;
+ free (norms);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ /* Compare. */
+ *resultp = (mapped_length == norms_length
+ && U_CMP (mapped, norms, norms_length) == 0);
+
+ if (mapped != mappedbuf)
+ free (mapped);
+ if (norms != normsbuf)
+ free (norms);
+ return 0;
+}
diff --git a/lib/unicase/u-totitle.h b/lib/unicase/u-totitle.h
new file mode 100644
index 0000000..431f000
--- /dev/null
+++ b/lib/unicase/u-totitle.h
@@ -0,0 +1,28 @@
+/* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ return U_CT_TOTITLE (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u16-casecmp.c b/lib/unicase/u16-casecmp.c
new file mode 100644
index 0000000..1110874
--- /dev/null
+++ b/lib/unicase/u16-casecmp.c
@@ -0,0 +1,35 @@
+/* Case and normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u16_casecmp
+#define UNIT uint16_t
+#define SRC_UNIT uint16_t
+#define U_CASEFOLD u16_casefold
+#define U_CMP2 u16_cmp2
+#include "u-casecmp.h"
diff --git a/lib/unicase/u16-casecoll.c b/lib/unicase/u16-casecoll.c
new file mode 100644
index 0000000..882039c
--- /dev/null
+++ b/lib/unicase/u16-casecoll.c
@@ -0,0 +1,32 @@
+/* Locale dependent, case and normalization insensitive comparison of UTF-16
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u16_casecoll
+#define UNIT uint16_t
+#define U_CASEXFRM u16_casexfrm
+#include "u-casecoll.h"
diff --git a/lib/unicase/u16-casefold.c b/lib/unicase/u16-casefold.c
new file mode 100644
index 0000000..5552275
--- /dev/null
+++ b/lib/unicase/u16-casefold.c
@@ -0,0 +1,26 @@
+/* Casefolding mapping for UTF-16 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u16_casefold
+#define UNIT uint16_t
+#define U_CT_CASEFOLD u16_ct_casefold
+#include "u-casefold.h"
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
new file mode 100644
index 0000000..0766de9
--- /dev/null
+++ b/lib/unicase/u16-casemap.c
@@ -0,0 +1,40 @@
+/* Case mapping for UTF-16 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicasemap.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u16_casemap
+#define UNIT uint16_t
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#define U_UCTOMB u16_uctomb
+#define U_CPY u16_cpy
+#define U_NORMALIZE u16_normalize
+#include "u-casemap.h"
diff --git a/lib/unicase/u16-casexfrm.c b/lib/unicase/u16-casexfrm.c
new file mode 100644
index 0000000..09d08ce
--- /dev/null
+++ b/lib/unicase/u16-casexfrm.c
@@ -0,0 +1,35 @@
+/* Locale dependent transformation for case insensitive comparison of UTF-16
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u16_casexfrm
+#define UNIT uint16_t
+#define U_CASEFOLD u16_casefold
+#define U_CONV_TO_ENCODING u16_conv_to_encoding
+#include "u-casexfrm.h"
diff --git a/lib/unicase/u16-ct-casefold.c b/lib/unicase/u16-ct-casefold.c
new file mode 100644
index 0000000..6dff77d
--- /dev/null
+++ b/lib/unicase/u16-ct-casefold.c
@@ -0,0 +1,35 @@
+/* Casefolding mapping for UTF-16 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+#include "casefold.h"
+
+#define FUNC u16_ct_casefold
+#define UNIT uint16_t
+#define U_CASEMAP u16_casemap
+#define U_NORMALIZE u16_normalize
+#include "u-ct-casefold.h"
diff --git a/lib/unicase/u16-ct-tolower.c b/lib/unicase/u16-ct-tolower.c
new file mode 100644
index 0000000..36b34e0
--- /dev/null
+++ b/lib/unicase/u16-ct-tolower.c
@@ -0,0 +1,40 @@
+/* Lowercase mapping for UTF-16 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint16_t *
+u16_ct_tolower (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp)
+{
+ return u16_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
new file mode 100644
index 0000000..c01021b
--- /dev/null
+++ b/lib/unicase/u16-ct-totitle.c
@@ -0,0 +1,43 @@
+/* Titlecase mapping for UTF-16 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uniwbrk.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u16_ct_totitle
+#define UNIT uint16_t
+#define U_WORDBREAKS u16_wordbreaks
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#define U_UCTOMB u16_uctomb
+#define U_CPY u16_cpy
+#define U_NORMALIZE u16_normalize
+#include "u-ct-totitle.h"
diff --git a/lib/unicase/u16-ct-toupper.c b/lib/unicase/u16-ct-toupper.c
new file mode 100644
index 0000000..029c74b
--- /dev/null
+++ b/lib/unicase/u16-ct-toupper.c
@@ -0,0 +1,40 @@
+/* Uppercase mapping for UTF-16 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint16_t *
+u16_ct_toupper (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp)
+{
+ return u16_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u16-is-cased.c b/lib/unicase/u16-is-cased.c
new file mode 100644
index 0000000..c2196ce
--- /dev/null
+++ b/lib/unicase/u16-is-cased.c
@@ -0,0 +1,36 @@
+/* Test whether case matters for an UTF-16 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u16_is_cased
+#define UNIT uint16_t
+#define U_NORMALIZE u16_normalize
+#define U_TOUPPER u16_toupper
+#define U_TOLOWER u16_tolower
+#define U_TOTITLE u16_totitle
+#define U_CMP u16_cmp
+#include "u-is-cased.h"
diff --git a/lib/unicase/u16-is-casefolded.c b/lib/unicase/u16-is-casefolded.c
new file mode 100644
index 0000000..64a4ec1
--- /dev/null
+++ b/lib/unicase/u16-is-casefolded.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-16 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u16_is_casefolded (const uint16_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u16_is_invariant (s, n, u16_casefold, iso639_language, resultp);
+}
diff --git a/lib/unicase/u16-is-invariant.c b/lib/unicase/u16-is-invariant.c
new file mode 100644
index 0000000..cace25a
--- /dev/null
+++ b/lib/unicase/u16-is-invariant.c
@@ -0,0 +1,33 @@
+/* Test whether an UTF-16 string is invariant under a given case mapping.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase/invariant.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u16_is_invariant
+#define UNIT uint16_t
+#define U_NORMALIZE u16_normalize
+#define U_CMP u16_cmp
+#include "u-is-invariant.h"
diff --git a/lib/unicase/u16-is-lowercase.c b/lib/unicase/u16-is-lowercase.c
new file mode 100644
index 0000000..36a0151
--- /dev/null
+++ b/lib/unicase/u16-is-lowercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-16 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u16_is_lowercase (const uint16_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u16_is_invariant (s, n, u16_tolower, iso639_language, resultp);
+}
diff --git a/lib/unicase/u16-is-titlecase.c b/lib/unicase/u16-is-titlecase.c
new file mode 100644
index 0000000..19aacea
--- /dev/null
+++ b/lib/unicase/u16-is-titlecase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-16 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u16_is_titlecase (const uint16_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u16_is_invariant (s, n, u16_totitle, iso639_language, resultp);
+}
diff --git a/lib/unicase/u16-is-uppercase.c b/lib/unicase/u16-is-uppercase.c
new file mode 100644
index 0000000..53e697f
--- /dev/null
+++ b/lib/unicase/u16-is-uppercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-16 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u16_is_uppercase (const uint16_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u16_is_invariant (s, n, u16_toupper, iso639_language, resultp);
+}
diff --git a/lib/unicase/u16-tolower.c b/lib/unicase/u16-tolower.c
new file mode 100644
index 0000000..0629cb4
--- /dev/null
+++ b/lib/unicase/u16-tolower.c
@@ -0,0 +1,39 @@
+/* Lowercase mapping for UTF-16 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint16_t *
+u16_tolower (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp)
+{
+ return u16_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u16-totitle.c b/lib/unicase/u16-totitle.c
new file mode 100644
index 0000000..e0d14e8
--- /dev/null
+++ b/lib/unicase/u16-totitle.c
@@ -0,0 +1,27 @@
+/* Titlecase mapping for UTF-16 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u16_totitle
+#define UNIT uint16_t
+#define U_CT_TOTITLE u16_ct_totitle
+#include "u-totitle.h"
+
diff --git a/lib/unicase/u16-toupper.c b/lib/unicase/u16-toupper.c
new file mode 100644
index 0000000..f92989a
--- /dev/null
+++ b/lib/unicase/u16-toupper.c
@@ -0,0 +1,39 @@
+/* Uppercase mapping for UTF-16 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint16_t *
+u16_toupper (const uint16_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp)
+{
+ return u16_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u32-casecmp.c b/lib/unicase/u32-casecmp.c
new file mode 100644
index 0000000..e964915
--- /dev/null
+++ b/lib/unicase/u32-casecmp.c
@@ -0,0 +1,35 @@
+/* Case and normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u32_casecmp
+#define UNIT uint32_t
+#define SRC_UNIT uint32_t
+#define U_CASEFOLD u32_casefold
+#define U_CMP2 u32_cmp2
+#include "u-casecmp.h"
diff --git a/lib/unicase/u32-casecoll.c b/lib/unicase/u32-casecoll.c
new file mode 100644
index 0000000..88d994a
--- /dev/null
+++ b/lib/unicase/u32-casecoll.c
@@ -0,0 +1,32 @@
+/* Locale dependent, case and normalization insensitive comparison of UTF-32
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u32_casecoll
+#define UNIT uint32_t
+#define U_CASEXFRM u32_casexfrm
+#include "u-casecoll.h"
diff --git a/lib/unicase/u32-casefold.c b/lib/unicase/u32-casefold.c
new file mode 100644
index 0000000..aff44f8
--- /dev/null
+++ b/lib/unicase/u32-casefold.c
@@ -0,0 +1,26 @@
+/* Casefolding mapping for UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u32_casefold
+#define UNIT uint32_t
+#define U_CT_CASEFOLD u32_ct_casefold
+#include "u-casefold.h"
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
new file mode 100644
index 0000000..43e2641
--- /dev/null
+++ b/lib/unicase/u32-casemap.c
@@ -0,0 +1,40 @@
+/* Case mapping for UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicasemap.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u32_casemap
+#define UNIT uint32_t
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#define U_UCTOMB u32_uctomb
+#define U_CPY u32_cpy
+#define U_NORMALIZE u32_normalize
+#include "u-casemap.h"
diff --git a/lib/unicase/u32-casexfrm.c b/lib/unicase/u32-casexfrm.c
new file mode 100644
index 0000000..cf8fee6
--- /dev/null
+++ b/lib/unicase/u32-casexfrm.c
@@ -0,0 +1,35 @@
+/* Locale dependent transformation for case insensitive comparison of UTF-32
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u32_casexfrm
+#define UNIT uint32_t
+#define U_CASEFOLD u32_casefold
+#define U_CONV_TO_ENCODING u32_conv_to_encoding
+#include "u-casexfrm.h"
diff --git a/lib/unicase/u32-ct-casefold.c b/lib/unicase/u32-ct-casefold.c
new file mode 100644
index 0000000..e206b67
--- /dev/null
+++ b/lib/unicase/u32-ct-casefold.c
@@ -0,0 +1,35 @@
+/* Casefolding mapping for UTF-32 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+#include "casefold.h"
+
+#define FUNC u32_ct_casefold
+#define UNIT uint32_t
+#define U_CASEMAP u32_casemap
+#define U_NORMALIZE u32_normalize
+#include "u-ct-casefold.h"
diff --git a/lib/unicase/u32-ct-tolower.c b/lib/unicase/u32-ct-tolower.c
new file mode 100644
index 0000000..83e9fa8
--- /dev/null
+++ b/lib/unicase/u32-ct-tolower.c
@@ -0,0 +1,40 @@
+/* Lowercase mapping for UTF-32 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint32_t *
+u32_ct_tolower (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp)
+{
+ return u32_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
new file mode 100644
index 0000000..f2a3878
--- /dev/null
+++ b/lib/unicase/u32-ct-totitle.c
@@ -0,0 +1,43 @@
+/* Titlecase mapping for UTF-32 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uniwbrk.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u32_ct_totitle
+#define UNIT uint32_t
+#define U_WORDBREAKS u32_wordbreaks
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#define U_UCTOMB u32_uctomb
+#define U_CPY u32_cpy
+#define U_NORMALIZE u32_normalize
+#include "u-ct-totitle.h"
diff --git a/lib/unicase/u32-ct-toupper.c b/lib/unicase/u32-ct-toupper.c
new file mode 100644
index 0000000..9043dde
--- /dev/null
+++ b/lib/unicase/u32-ct-toupper.c
@@ -0,0 +1,40 @@
+/* Uppercase mapping for UTF-32 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint32_t *
+u32_ct_toupper (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp)
+{
+ return u32_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u32-is-cased.c b/lib/unicase/u32-is-cased.c
new file mode 100644
index 0000000..783e57e
--- /dev/null
+++ b/lib/unicase/u32-is-cased.c
@@ -0,0 +1,36 @@
+/* Test whether case matters for an UTF-32 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u32_is_cased
+#define UNIT uint32_t
+#define U_NORMALIZE u32_normalize
+#define U_TOUPPER u32_toupper
+#define U_TOLOWER u32_tolower
+#define U_TOTITLE u32_totitle
+#define U_CMP u32_cmp
+#include "u-is-cased.h"
diff --git a/lib/unicase/u32-is-casefolded.c b/lib/unicase/u32-is-casefolded.c
new file mode 100644
index 0000000..a71c767
--- /dev/null
+++ b/lib/unicase/u32-is-casefolded.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-32 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u32_is_casefolded (const uint32_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u32_is_invariant (s, n, u32_casefold, iso639_language, resultp);
+}
diff --git a/lib/unicase/u32-is-invariant.c b/lib/unicase/u32-is-invariant.c
new file mode 100644
index 0000000..190a30f
--- /dev/null
+++ b/lib/unicase/u32-is-invariant.c
@@ -0,0 +1,33 @@
+/* Test whether an UTF-32 string is invariant under a given case mapping.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase/invariant.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u32_is_invariant
+#define UNIT uint32_t
+#define U_NORMALIZE u32_normalize
+#define U_CMP u32_cmp
+#include "u-is-invariant.h"
diff --git a/lib/unicase/u32-is-lowercase.c b/lib/unicase/u32-is-lowercase.c
new file mode 100644
index 0000000..104afaa
--- /dev/null
+++ b/lib/unicase/u32-is-lowercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-32 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u32_is_lowercase (const uint32_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u32_is_invariant (s, n, u32_tolower, iso639_language, resultp);
+}
diff --git a/lib/unicase/u32-is-titlecase.c b/lib/unicase/u32-is-titlecase.c
new file mode 100644
index 0000000..5b07c8d
--- /dev/null
+++ b/lib/unicase/u32-is-titlecase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-32 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u32_is_titlecase (const uint32_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u32_is_invariant (s, n, u32_totitle, iso639_language, resultp);
+}
diff --git a/lib/unicase/u32-is-uppercase.c b/lib/unicase/u32-is-uppercase.c
new file mode 100644
index 0000000..bb38fc6
--- /dev/null
+++ b/lib/unicase/u32-is-uppercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-32 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u32_is_uppercase (const uint32_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u32_is_invariant (s, n, u32_toupper, iso639_language, resultp);
+}
diff --git a/lib/unicase/u32-tolower.c b/lib/unicase/u32-tolower.c
new file mode 100644
index 0000000..daa5c4d
--- /dev/null
+++ b/lib/unicase/u32-tolower.c
@@ -0,0 +1,39 @@
+/* Lowercase mapping for UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint32_t *
+u32_tolower (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp)
+{
+ return u32_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u32-totitle.c b/lib/unicase/u32-totitle.c
new file mode 100644
index 0000000..21e1b0d
--- /dev/null
+++ b/lib/unicase/u32-totitle.c
@@ -0,0 +1,26 @@
+/* Titlecase mapping for UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u32_totitle
+#define UNIT uint32_t
+#define U_CT_TOTITLE u32_ct_totitle
+#include "u-totitle.h"
diff --git a/lib/unicase/u32-toupper.c b/lib/unicase/u32-toupper.c
new file mode 100644
index 0000000..3430ad9
--- /dev/null
+++ b/lib/unicase/u32-toupper.c
@@ -0,0 +1,39 @@
+/* Uppercase mapping for UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint32_t *
+u32_toupper (const uint32_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp)
+{
+ return u32_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u8-casecmp.c b/lib/unicase/u8-casecmp.c
new file mode 100644
index 0000000..4a55de9
--- /dev/null
+++ b/lib/unicase/u8-casecmp.c
@@ -0,0 +1,35 @@
+/* Case and normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u8_casecmp
+#define UNIT uint8_t
+#define SRC_UNIT uint8_t
+#define U_CASEFOLD u8_casefold
+#define U_CMP2 u8_cmp2
+#include "u-casecmp.h"
diff --git a/lib/unicase/u8-casecoll.c b/lib/unicase/u8-casecoll.c
new file mode 100644
index 0000000..28170e5
--- /dev/null
+++ b/lib/unicase/u8-casecoll.c
@@ -0,0 +1,32 @@
+/* Locale dependent, case and normalization insensitive comparison of UTF-8
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u8_casecoll
+#define UNIT uint8_t
+#define U_CASEXFRM u8_casexfrm
+#include "u-casecoll.h"
diff --git a/lib/unicase/u8-casefold.c b/lib/unicase/u8-casefold.c
new file mode 100644
index 0000000..3210813
--- /dev/null
+++ b/lib/unicase/u8-casefold.c
@@ -0,0 +1,107 @@
+/* Casefolding mapping for UTF-8 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u8_casefold
+#define UNIT uint8_t
+#define U_CT_CASEFOLD u8_ct_casefold
+#include "u-casefold.h"
+
+
+#ifdef TEST
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_ALL, "");
+ if (argc == 1)
+ {
+ /* Display the case folded input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ size_t output_length;
+ uint8_t *output =
+ u8_casefold ((uint8_t *) input, length, uc_locale_language (),
+ NULL,
+ NULL, &output_length);
+
+ fwrite (output, 1, output_length, stdout);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
new file mode 100644
index 0000000..6f32915
--- /dev/null
+++ b/lib/unicase/u8-casemap.c
@@ -0,0 +1,40 @@
+/* Case mapping for UTF-8 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicasemap.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u8_casemap
+#define UNIT uint8_t
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#define U_UCTOMB u8_uctomb
+#define U_CPY u8_cpy
+#define U_NORMALIZE u8_normalize
+#include "u-casemap.h"
diff --git a/lib/unicase/u8-casexfrm.c b/lib/unicase/u8-casexfrm.c
new file mode 100644
index 0000000..7e1d767
--- /dev/null
+++ b/lib/unicase/u8-casexfrm.c
@@ -0,0 +1,35 @@
+/* Locale dependent transformation for case insensitive comparison of UTF-8
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u8_casexfrm
+#define UNIT uint8_t
+#define U_CASEFOLD u8_casefold
+#define U_CONV_TO_ENCODING u8_conv_to_encoding
+#include "u-casexfrm.h"
diff --git a/lib/unicase/u8-ct-casefold.c b/lib/unicase/u8-ct-casefold.c
new file mode 100644
index 0000000..4cc149c
--- /dev/null
+++ b/lib/unicase/u8-ct-casefold.c
@@ -0,0 +1,35 @@
+/* Casefolding mapping for UTF-8 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+#include "casefold.h"
+
+#define FUNC u8_ct_casefold
+#define UNIT uint8_t
+#define U_CASEMAP u8_casemap
+#define U_NORMALIZE u8_normalize
+#include "u-ct-casefold.h"
diff --git a/lib/unicase/u8-ct-tolower.c b/lib/unicase/u8-ct-tolower.c
new file mode 100644
index 0000000..3755821
--- /dev/null
+++ b/lib/unicase/u8-ct-tolower.c
@@ -0,0 +1,40 @@
+/* Lowercase mapping for UTF-8 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint8_t *
+u8_ct_tolower (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ return u8_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
new file mode 100644
index 0000000..64891af
--- /dev/null
+++ b/lib/unicase/u8-ct-totitle.c
@@ -0,0 +1,43 @@
+/* Titlecase mapping for UTF-8 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "uniwbrk.h"
+#include "uninorm.h"
+#include "caseprop.h"
+#include "context.h"
+#include "special-casing.h"
+
+#define FUNC u8_ct_totitle
+#define UNIT uint8_t
+#define U_WORDBREAKS u8_wordbreaks
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#define U_UCTOMB u8_uctomb
+#define U_CPY u8_cpy
+#define U_NORMALIZE u8_normalize
+#include "u-ct-totitle.h"
diff --git a/lib/unicase/u8-ct-toupper.c b/lib/unicase/u8-ct-toupper.c
new file mode 100644
index 0000000..9dca2fc
--- /dev/null
+++ b/lib/unicase/u8-ct-toupper.c
@@ -0,0 +1,40 @@
+/* Uppercase mapping for UTF-8 substrings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint8_t *
+u8_ct_toupper (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ return u8_casemap (s, n, prefix_context, suffix_context, iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
diff --git a/lib/unicase/u8-is-cased.c b/lib/unicase/u8-is-cased.c
new file mode 100644
index 0000000..5cdcc33
--- /dev/null
+++ b/lib/unicase/u8-is-cased.c
@@ -0,0 +1,36 @@
+/* Test whether case matters for an UTF-8 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u8_is_cased
+#define UNIT uint8_t
+#define U_NORMALIZE u8_normalize
+#define U_TOUPPER u8_toupper
+#define U_TOLOWER u8_tolower
+#define U_TOTITLE u8_totitle
+#define U_CMP u8_cmp
+#include "u-is-cased.h"
diff --git a/lib/unicase/u8-is-casefolded.c b/lib/unicase/u8-is-casefolded.c
new file mode 100644
index 0000000..30122b7
--- /dev/null
+++ b/lib/unicase/u8-is-casefolded.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-8 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u8_is_casefolded (const uint8_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u8_is_invariant (s, n, u8_casefold, iso639_language, resultp);
+}
diff --git a/lib/unicase/u8-is-invariant.c b/lib/unicase/u8-is-invariant.c
new file mode 100644
index 0000000..2c4913b
--- /dev/null
+++ b/lib/unicase/u8-is-invariant.c
@@ -0,0 +1,33 @@
+/* Test whether an UTF-8 string is invariant under a given case mapping.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase/invariant.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+#include "unistr.h"
+
+#define FUNC u8_is_invariant
+#define UNIT uint8_t
+#define U_NORMALIZE u8_normalize
+#define U_CMP u8_cmp
+#include "u-is-invariant.h"
diff --git a/lib/unicase/u8-is-lowercase.c b/lib/unicase/u8-is-lowercase.c
new file mode 100644
index 0000000..5b0df8b
--- /dev/null
+++ b/lib/unicase/u8-is-lowercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-8 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u8_is_lowercase (const uint8_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u8_is_invariant (s, n, u8_tolower, iso639_language, resultp);
+}
diff --git a/lib/unicase/u8-is-titlecase.c b/lib/unicase/u8-is-titlecase.c
new file mode 100644
index 0000000..474502a
--- /dev/null
+++ b/lib/unicase/u8-is-titlecase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-8 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u8_is_titlecase (const uint8_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u8_is_invariant (s, n, u8_totitle, iso639_language, resultp);
+}
diff --git a/lib/unicase/u8-is-uppercase.c b/lib/unicase/u8-is-uppercase.c
new file mode 100644
index 0000000..7f14f92
--- /dev/null
+++ b/lib/unicase/u8-is-uppercase.c
@@ -0,0 +1,30 @@
+/* Test whether an UTF-8 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include "unicase/invariant.h"
+
+int
+u8_is_uppercase (const uint8_t *s, size_t n, const char *iso639_language,
+ bool *resultp)
+{
+ return u8_is_invariant (s, n, u8_toupper, iso639_language, resultp);
+}
diff --git a/lib/unicase/u8-tolower.c b/lib/unicase/u8-tolower.c
new file mode 100644
index 0000000..1cd7cfa
--- /dev/null
+++ b/lib/unicase/u8-tolower.c
@@ -0,0 +1,120 @@
+/* Lowercase mapping for UTF-8 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint8_t *
+u8_tolower (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ return u8_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_tolower, offsetof (struct special_casing_rule, lower[0]),
+ nf,
+ resultbuf, lengthp);
+}
+
+
+#ifdef TEST
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_ALL, "");
+ if (argc == 1)
+ {
+ /* Display the lower case of the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ size_t output_length;
+ uint8_t *output =
+ u8_tolower ((uint8_t *) input, length, uc_locale_language (),
+ NULL,
+ NULL, &output_length);
+
+ fwrite (output, 1, output_length, stdout);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unicase/u8-totitle.c b/lib/unicase/u8-totitle.c
new file mode 100644
index 0000000..cf29c1b
--- /dev/null
+++ b/lib/unicase/u8-totitle.c
@@ -0,0 +1,107 @@
+/* Titlecase mapping for UTF-8 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#define FUNC u8_totitle
+#define UNIT uint8_t
+#define U_CT_TOTITLE u8_ct_totitle
+#include "u-totitle.h"
+
+
+#ifdef TEST
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_ALL, "");
+ if (argc == 1)
+ {
+ /* Display the upper case of the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ size_t output_length;
+ uint8_t *output =
+ u8_toupper ((uint8_t *) input, length, uc_locale_language (),
+ NULL,
+ NULL, &output_length);
+
+ fwrite (output, 1, output_length, stdout);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unicase/u8-toupper.c b/lib/unicase/u8-toupper.c
new file mode 100644
index 0000000..a97d98c
--- /dev/null
+++ b/lib/unicase/u8-toupper.c
@@ -0,0 +1,120 @@
+/* Uppercase mapping for UTF-8 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <stddef.h>
+
+#include "unicasemap.h"
+#include "special-casing.h"
+
+uint8_t *
+u8_toupper (const uint8_t *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ return u8_casemap (s, n,
+ unicase_empty_prefix_context, unicase_empty_suffix_context,
+ iso639_language,
+ uc_toupper, offsetof (struct special_casing_rule, upper[0]),
+ nf,
+ resultbuf, lengthp);
+}
+
+
+#ifdef TEST
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_ALL, "");
+ if (argc == 1)
+ {
+ /* Display the upper case of the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ size_t output_length;
+ uint8_t *output =
+ u8_toupper ((uint8_t *) input, length, uc_locale_language (),
+ NULL,
+ NULL, &output_length);
+
+ fwrite (output, 1, output_length, stdout);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unicase/ulc-casecmp.c b/lib/unicase/ulc-casecmp.c
new file mode 100644
index 0000000..e071021
--- /dev/null
+++ b/lib/unicase/ulc-casecmp.c
@@ -0,0 +1,74 @@
+/* Case and normalization insensitive comparison of strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "uninorm.h"
+#include "uniconv.h"
+#include "unistr.h"
+
+static uint8_t *
+ulc_u8_casefold (const char *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ uint8_t *conv;
+ size_t conv_length;
+ uint8_t *result;
+
+ /* Convert the string to UTF-8. */
+ conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ conv =
+ u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
+ convbuf, &conv_length);
+ if (conv == NULL)
+ /* errno is set here. */
+ return NULL;
+
+ /* Case-fold and normalize. */
+ result = u8_casefold (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
+ if (result == NULL)
+ {
+ if (conv != convbuf)
+ {
+ int saved_errno = errno;
+ free (conv);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (conv != convbuf)
+ free (conv);
+ return result;
+}
+
+#define FUNC ulc_casecmp
+#define UNIT uint8_t
+#define SRC_UNIT char
+#define U_CASEFOLD ulc_u8_casefold
+#define U_CMP2 u8_cmp2
+#include "u-casecmp.h"
diff --git a/lib/unicase/ulc-casecoll.c b/lib/unicase/ulc-casecoll.c
new file mode 100644
index 0000000..9730b6d
--- /dev/null
+++ b/lib/unicase/ulc-casecoll.c
@@ -0,0 +1,31 @@
+/* Locale dependent, case and normalization insensitive comparison of strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC ulc_casecoll
+#define UNIT char
+#define U_CASEXFRM ulc_casexfrm
+#include "u-casecoll.h"
diff --git a/lib/unicase/ulc-casexfrm.c b/lib/unicase/ulc-casexfrm.c
new file mode 100644
index 0000000..aded556
--- /dev/null
+++ b/lib/unicase/ulc-casexfrm.c
@@ -0,0 +1,64 @@
+/* Locale dependent transformation for case insensitive comparison of strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unicase.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "uniconv.h"
+
+char *
+ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
+ uninorm_t nf,
+ char *resultbuf, size_t *lengthp)
+{
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ uint8_t *conv;
+ size_t conv_length;
+ char *result;
+
+ /* Convert the string to UTF-8. */
+ conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ conv =
+ u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
+ convbuf, &conv_length);
+ if (conv == NULL)
+ /* errno is set here. */
+ return NULL;
+
+ /* Case-fold and normalize. */
+ result = u8_casexfrm (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
+ if (result == NULL)
+ {
+ if (conv != convbuf)
+ {
+ int saved_errno = errno;
+ free (conv);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (conv != convbuf)
+ free (conv);
+ return result;
+}
diff --git a/lib/unicase/unicasemap.h b/lib/unicase/unicasemap.h
new file mode 100644
index 0000000..8da8c51
--- /dev/null
+++ b/lib/unicase/unicasemap.h
@@ -0,0 +1,52 @@
+/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 <stddef.h>
+
+#include "unitypes.h"
+#include "unicase.h"
+#include "uninorm.h"
+
+extern uint8_t *
+ u8_casemap (const uint8_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ ucs4_t (*single_character_map) (ucs4_t),
+ size_t offset_in_rule, /* offset in 'struct special_casing_rule' */
+ uninorm_t nf,
+ uint8_t *resultbuf, size_t *lengthp);
+
+extern uint16_t *
+ u16_casemap (const uint16_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ ucs4_t (*single_character_map) (ucs4_t),
+ size_t offset_in_rule, /* offset in 'struct special_casing_rule' */
+ uninorm_t nf,
+ uint16_t *resultbuf, size_t *lengthp);
+
+extern uint32_t *
+ u32_casemap (const uint32_t *s, size_t n,
+ casing_prefix_context_t prefix_context,
+ casing_suffix_context_t suffix_context,
+ const char *iso639_language,
+ ucs4_t (*single_character_map) (ucs4_t),
+ size_t offset_in_rule, /* offset in 'struct special_casing_rule' */
+ uninorm_t nf,
+ uint32_t *resultbuf, size_t *lengthp);
diff --git a/lib/uniconv.h b/lib/uniconv.h
new file mode 100644
index 0000000..223386f
--- /dev/null
+++ b/lib/uniconv.h
@@ -0,0 +1,169 @@
+/* Conversions between Unicode and legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+#ifndef _UNICONV_H
+#define _UNICONV_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+/* Get enum iconv_ilseq_handler. */
+#include <unistring/iconveh.h>
+
+/* Get locale_charset() declaration. */
+#include <unistring/localcharset.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Converts an entire string, possibly including NUL bytes, from one encoding
+ to a Unicode encoding.
+ Converts a memory region given in encoding FROMCODE. FROMCODE is as for
+ iconv_open(3).
+ The input is in the memory region between SRC (inclusive) and SRC + SRCLEN
+ (exclusive).
+ If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+ array is filled with offsets into the result, i.e. the character starting
+ at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+ and other offsets are set to (size_t)(-1).
+ RESULTBUF and *LENGTHP should initially be a scratch buffer and its size,
+ or *RESULTBUF can be NULL.
+ May erase the contents of the memory at RESULTBUF.
+ If successful: The resulting Unicode string (non-NULL) is returned and its
+ length stored in *LENGTHP. The resulting string is RESULTBUF if no dynamic
+ memory allocation was necessary, or a freshly allocated memory block
+ otherwise.
+ In case of error: NULL is returned and errno is set. Particular errno
+ values: EINVAL, EILSEQ, ENOMEM. */
+extern uint8_t *
+ u8_conv_from_encoding (const char *fromcode,
+ enum iconv_ilseq_handler handler,
+ const char *src, size_t srclen,
+ size_t *offsets,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_conv_from_encoding (const char *fromcode,
+ enum iconv_ilseq_handler handler,
+ const char *src, size_t srclen,
+ size_t *offsets,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_conv_from_encoding (const char *fromcode,
+ enum iconv_ilseq_handler handler,
+ const char *src, size_t srclen,
+ size_t *offsets,
+ uint32_t *resultbuf, size_t *lengthp);
+
+/* Converts an entire Unicode string, possibly including NUL units, from a
+ Unicode encoding to a given encoding.
+ Converts a memory region to encoding TOCODE. TOCODE is as for
+ iconv_open(3).
+ The input is in the memory region between SRC (inclusive) and SRC + SRCLEN
+ (exclusive).
+ If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+ array is filled with offsets into the result, i.e. the character starting
+ at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+ and other offsets are set to (size_t)(-1).
+ RESULTBUF and *LENGTHP should initially be a scratch buffer and its size,
+ or RESULTBUF can be NULL.
+ May erase the contents of the memory at RESULTBUF.
+ If successful: The resulting string (non-NULL) is returned and its length
+ stored in *LENGTHP. The resulting string is RESULTBUF if no dynamic memory
+ allocation was necessary, or a freshly allocated memory block otherwise.
+ In case of error: NULL is returned and errno is set. Particular errno
+ values: EINVAL, EILSEQ, ENOMEM. */
+extern char *
+ u8_conv_to_encoding (const char *tocode,
+ enum iconv_ilseq_handler handler,
+ const uint8_t *src, size_t srclen,
+ size_t *offsets,
+ char *resultbuf, size_t *lengthp);
+extern char *
+ u16_conv_to_encoding (const char *tocode,
+ enum iconv_ilseq_handler handler,
+ const uint16_t *src, size_t srclen,
+ size_t *offsets,
+ char *resultbuf, size_t *lengthp);
+extern char *
+ u32_conv_to_encoding (const char *tocode,
+ enum iconv_ilseq_handler handler,
+ const uint32_t *src, size_t srclen,
+ size_t *offsets,
+ char *resultbuf, size_t *lengthp);
+
+/* Converts a NUL terminated string from a given encoding.
+ The result is malloc allocated, or NULL (with errno set) in case of error.
+ Particular errno values: EILSEQ, ENOMEM. */
+extern uint8_t *
+ u8_strconv_from_encoding (const char *string,
+ const char *fromcode,
+ enum iconv_ilseq_handler handler);
+extern uint16_t *
+ u16_strconv_from_encoding (const char *string,
+ const char *fromcode,
+ enum iconv_ilseq_handler handler);
+extern uint32_t *
+ u32_strconv_from_encoding (const char *string,
+ const char *fromcode,
+ enum iconv_ilseq_handler handler);
+
+/* Converts a NUL terminated string to a given encoding.
+ The result is malloc allocated, or NULL (with errno set) in case of error.
+ Particular errno values: EILSEQ, ENOMEM. */
+extern char *
+ u8_strconv_to_encoding (const uint8_t *string,
+ const char *tocode,
+ enum iconv_ilseq_handler handler);
+extern char *
+ u16_strconv_to_encoding (const uint16_t *string,
+ const char *tocode,
+ enum iconv_ilseq_handler handler);
+extern char *
+ u32_strconv_to_encoding (const uint32_t *string,
+ const char *tocode,
+ enum iconv_ilseq_handler handler);
+
+/* Converts a NUL terminated string from the locale encoding.
+ The result is malloc allocated, or NULL (with errno set) in case of error.
+ Particular errno values: ENOMEM. */
+extern uint8_t *
+ u8_strconv_from_locale (const char *string);
+extern uint16_t *
+ u16_strconv_from_locale (const char *string);
+extern uint32_t *
+ u32_strconv_from_locale (const char *string);
+
+/* Converts a NUL terminated string to the locale encoding.
+ The result is malloc allocated, or NULL (with errno set) in case of error.
+ Particular errno values: ENOMEM. */
+extern char *
+ u8_strconv_to_locale (const uint8_t *string);
+extern char *
+ u16_strconv_to_locale (const uint16_t *string);
+extern char *
+ u32_strconv_to_locale (const uint32_t *string);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICONV_H */
diff --git a/lib/uniconv/u-conv-from-enc.h b/lib/uniconv/u-conv-from-enc.h
new file mode 100644
index 0000000..fa0f0d3
--- /dev/null
+++ b/lib/uniconv/u-conv-from-enc.h
@@ -0,0 +1,91 @@
+/* Conversion to UTF-16/UTF-32 from legacy encodings.
+ Copyright (C) 2002, 2006-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 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/>. */
+
+UNIT *
+FUNC (const char *fromcode,
+ enum iconv_ilseq_handler handler,
+ const char *src, size_t srclen,
+ size_t *offsets,
+ UNIT *resultbuf, size_t *lengthp)
+{
+#if HAVE_UTF_NAME
+ char *result = (char *) resultbuf;
+ size_t length = *lengthp * sizeof (UNIT);
+
+ if (mem_iconveha (src, srclen, fromcode, UTF_NAME, true, handler,
+ offsets, &result, &length) < 0)
+ return NULL;
+ if (offsets != NULL)
+ {
+ /* Convert 'char *' offsets to 'UNIT *' offsets. */
+ size_t *offsets_end = offsets + srclen;
+ size_t *o;
+
+ for (o = offsets; o < offsets_end; o++)
+ if (*o != (size_t)(-1))
+ *o = *o / sizeof (UNIT);
+ }
+ if ((length % sizeof (UNIT)) != 0)
+ abort ();
+ *lengthp = length / sizeof (UNIT);
+ return (UNIT *) result;
+#else
+ uint8_t *utf8_string;
+ size_t utf8_length;
+ UNIT *result;
+
+ utf8_string =
+ u8_conv_from_encoding (fromcode, handler, src, srclen, offsets,
+ NULL, &utf8_length);
+ if (utf8_string == NULL)
+ return NULL;
+ result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp);
+ if (result == NULL)
+ {
+ int saved_errno = errno;
+ free (utf8_string);
+ errno = saved_errno;
+ return NULL;
+ }
+ if (offsets != NULL)
+ {
+ size_t length = *lengthp;
+ size_t *offsets_end = offsets + srclen;
+ size_t *o;
+ size_t off8 = 0; /* offset into utf8_string */
+ size_t offunit = 0; /* offset into result */
+
+ for (o = offsets; o < offsets_end; o++)
+ if (*o != (size_t)(-1))
+ {
+ while (off8 < *o)
+ {
+ int count8 = u8_mblen (utf8_string + off8, utf8_length - off8);
+ int countunit = U_MBLEN (result + offunit, length - offunit);
+ if (count8 < 0 || countunit < 0)
+ abort ();
+ off8 += count8;
+ offunit += countunit;
+ }
+ if (*o != off8)
+ abort ();
+ *o = offunit;
+ }
+ }
+ free (utf8_string);
+ return result;
+#endif
+}
diff --git a/lib/uniconv/u-conv-to-enc.h b/lib/uniconv/u-conv-to-enc.h
new file mode 100644
index 0000000..ed71548
--- /dev/null
+++ b/lib/uniconv/u-conv-to-enc.h
@@ -0,0 +1,156 @@
+/* Conversion from UTF-16/UTF-32 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+char *
+FUNC (const char *tocode,
+ enum iconv_ilseq_handler handler,
+ const UNIT *src, size_t srclen,
+ size_t *offsets,
+ char *resultbuf, size_t *lengthp)
+{
+#if HAVE_UTF_NAME
+ size_t *scaled_offsets;
+ char *result;
+ size_t length;
+
+ if (offsets != NULL && srclen > 0)
+ {
+ scaled_offsets =
+ (size_t *) malloc (srclen * sizeof (UNIT) * sizeof (size_t));
+ if (scaled_offsets == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ else
+ scaled_offsets = NULL;
+
+ result = resultbuf;
+ length = *lengthp;
+ if (mem_iconveha ((const char *) src, srclen * sizeof (UNIT),
+ UTF_NAME, tocode,
+ handler == iconveh_question_mark, handler,
+ scaled_offsets, &result, &length) < 0)
+ {
+ int saved_errno = errno;
+ free (scaled_offsets);
+ errno = saved_errno;
+ return NULL;
+ }
+
+ if (offsets != NULL)
+ {
+ /* Convert scaled_offsets[srclen * sizeof (UNIT)] to
+ offsets[srclen]. */
+ size_t i;
+
+ for (i = 0; i < srclen; i++)
+ offsets[i] = scaled_offsets[i * sizeof (UNIT)];
+ free (scaled_offsets);
+ }
+
+ if (result == NULL) /* when (resultbuf == NULL && length == 0) */
+ {
+ result = (char *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ *lengthp = length;
+ return result;
+#else
+ uint8_t tmpbuf[4096];
+ size_t tmpbufsize = SIZEOF (tmpbuf);
+ uint8_t *utf8_src;
+ size_t utf8_srclen;
+ size_t *scaled_offsets;
+ char *result;
+
+ utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize);
+ if (utf8_src == NULL)
+ return NULL;
+ utf8_srclen = tmpbufsize;
+
+ if (offsets != NULL && utf8_srclen > 0)
+ {
+ scaled_offsets = (size_t *) malloc (utf8_srclen * sizeof (size_t));
+ if (scaled_offsets == NULL)
+ {
+ if (utf8_src != tmpbuf)
+ free (utf8_src);
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ else
+ scaled_offsets = NULL;
+
+ result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen,
+ scaled_offsets, resultbuf, lengthp);
+ if (result == NULL)
+ {
+ int saved_errno = errno;
+ free (scaled_offsets);
+ if (utf8_src != tmpbuf)
+ free (utf8_src);
+ errno = saved_errno;
+ return NULL;
+ }
+ if (offsets != NULL)
+ {
+ size_t iunit; /* offset into src */
+ size_t i8; /* offset into utf8_src */
+
+ for (iunit = 0; iunit < srclen; iunit++)
+ offsets[iunit] = (size_t)(-1);
+
+ iunit = 0;
+ i8 = 0;
+ while (iunit < srclen && i8 < utf8_srclen)
+ {
+ int countunit;
+ int count8;
+
+ offsets[iunit] = scaled_offsets[i8];
+
+ countunit = U_MBLEN (src + iunit, srclen - iunit);
+ count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8);
+ if (countunit < 0 || count8 < 0)
+ abort ();
+ iunit += countunit;
+ i8 += count8;
+ }
+ /* Check that utf8_src has been traversed entirely. */
+ if (i8 < utf8_srclen)
+ abort ();
+ /* Check that src has been traversed entirely, except possibly for an
+ incomplete sequence of units at the end. */
+ if (iunit < srclen)
+ {
+ offsets[iunit] = *lengthp;
+ if (!(U_MBLEN (src + iunit, srclen - iunit) < 0))
+ abort ();
+ }
+ free (scaled_offsets);
+ }
+ if (utf8_src != tmpbuf)
+ free (utf8_src);
+ return result;
+#endif
+}
diff --git a/lib/uniconv/u-strconv-from-enc.h b/lib/uniconv/u-strconv-from-enc.h
new file mode 100644
index 0000000..25813c7
--- /dev/null
+++ b/lib/uniconv/u-strconv-from-enc.h
@@ -0,0 +1,40 @@
+/* Conversion to UTF-8/UTF-16/UTF-32 from legacy encodings.
+ Copyright (C) 2002, 2006-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 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/>. */
+
+UNIT *
+FUNC (const char *string,
+ const char *fromcode,
+ enum iconv_ilseq_handler handler)
+{
+ UNIT *result;
+ size_t length;
+
+ result =
+ U_CONV_FROM_ENCODING (fromcode, handler,
+ string, strlen (string) + 1, NULL,
+ NULL, &length);
+ if (result == NULL)
+ return NULL;
+ /* Verify the result has exactly one NUL unit, at the end. */
+ if (!(length > 0 && result[length-1] == 0
+ && U_STRLEN (result) == length-1))
+ {
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ return result;
+}
diff --git a/lib/uniconv/u-strconv-to-enc.h b/lib/uniconv/u-strconv-to-enc.h
new file mode 100644
index 0000000..b6e6ebb
--- /dev/null
+++ b/lib/uniconv/u-strconv-to-enc.h
@@ -0,0 +1,63 @@
+/* Conversion from UTF-16/UTF-32 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+char *
+FUNC (const UNIT *string,
+ const char *tocode,
+ enum iconv_ilseq_handler handler)
+{
+#if HAVE_UTF_NAME
+ char *result = NULL;
+ size_t length = 0;
+
+ if (mem_iconveha ((const char *) string, (U_STRLEN (string) + 1) * sizeof (UNIT),
+ UTF_NAME, tocode,
+ handler == iconveh_question_mark, handler,
+ NULL, &result, &length) < 0)
+ return NULL;
+ /* Verify the result has exactly one NUL byte, at the end. */
+ if (!(length > 0 && result[length-1] == '\0' && strlen (result) == length-1))
+ {
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ return result;
+#else
+ uint8_t tmpbuf[4096];
+ size_t tmpbufsize = SIZEOF (tmpbuf);
+ uint8_t *utf8_string;
+ char *result;
+
+ utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize);
+ if (utf8_string == NULL)
+ return NULL;
+ result = u8_strconv_to_encoding (utf8_string, tocode, handler);
+ if (result == NULL)
+ {
+ if (utf8_string != tmpbuf)
+ {
+ int saved_errno = errno;
+ free (utf8_string);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+ if (utf8_string != tmpbuf)
+ free (utf8_string);
+ return result;
+#endif
+}
diff --git a/lib/uniconv/u16-conv-from-enc.c b/lib/uniconv/u16-conv-from-enc.c
new file mode 100644
index 0000000..f38add3
--- /dev/null
+++ b/lib/uniconv/u16-conv-from-enc.c
@@ -0,0 +1,47 @@
+/* Conversion to UTF-16 from legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+/* Name of UTF-16 encoding with machine dependent endianness and alignment. */
+#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# ifdef WORDS_BIGENDIAN
+# define UTF16_NAME "UTF-16BE"
+# else
+# define UTF16_NAME "UTF-16LE"
+# endif
+#endif
+
+#define FUNC u16_conv_from_encoding
+#define UNIT uint16_t
+#define U8_TO_U u8_to_u16
+#define U_MBLEN u16_mblen
+#if defined UTF16_NAME
+# define UTF_NAME UTF16_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-conv-from-enc.h"
diff --git a/lib/uniconv/u16-conv-to-enc.c b/lib/uniconv/u16-conv-to-enc.c
new file mode 100644
index 0000000..ba70736
--- /dev/null
+++ b/lib/uniconv/u16-conv-to-enc.c
@@ -0,0 +1,177 @@
+/* Conversion from UTF-16 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* Name of UTF-16 encoding with machine dependent endianness and alignment. */
+#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# ifdef WORDS_BIGENDIAN
+# define UTF16_NAME "UTF-16BE"
+# else
+# define UTF16_NAME "UTF-16LE"
+# endif
+#endif
+
+
+#if !defined UTF16_NAME
+
+/* A variant of u16_to_u8 that treats an incomplete sequence of units at the
+ end as a harmless no-op, rather than reporting it as an EILSEQ error. */
+
+#define FUNC u16_to_u8_lenient
+#define SRC_UNIT uint16_t
+#define DST_UNIT uint8_t
+
+static DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ count = u16_mbtoucr (&uc, s, s_end - s);
+ if (count < 0)
+ {
+ if (count == -2)
+ /* Incomplete sequence of units. */
+ break;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ s += count;
+
+ /* Store it in the output string. */
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count == -1)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (count == -2)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 6 > allocated)
+ allocated = length + 6;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count < 0)
+ abort ();
+ }
+ length += count;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
+
+#undef DST_UNIT
+#undef SRC_UNIT
+#undef FUNC
+
+#endif
+
+
+#define FUNC u16_conv_to_encoding
+#define UNIT uint16_t
+#define U_TO_U8 u16_to_u8_lenient
+#define U_MBLEN u16_mblen
+#if defined UTF16_NAME
+# define UTF_NAME UTF16_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-conv-to-enc.h"
diff --git a/lib/uniconv/u16-strconv-from-enc.c b/lib/uniconv/u16-strconv-from-enc.c
new file mode 100644
index 0000000..736d0c4
--- /dev/null
+++ b/lib/uniconv/u16-strconv-from-enc.c
@@ -0,0 +1,34 @@
+/* Conversion to UTF-16 from legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define FUNC u16_strconv_from_encoding
+#define UNIT uint16_t
+#define U_CONV_FROM_ENCODING u16_conv_from_encoding
+#define U_STRLEN u16_strlen
+#include "u-strconv-from-enc.h"
diff --git a/lib/uniconv/u16-strconv-from-locale.c b/lib/uniconv/u16-strconv-from-locale.c
new file mode 100644
index 0000000..63ddeb0
--- /dev/null
+++ b/lib/uniconv/u16-strconv-from-locale.c
@@ -0,0 +1,29 @@
+/* Conversion to UTF-16 from the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+uint16_t *
+u16_strconv_from_locale (const char *string)
+{
+ const char *encoding = locale_charset ();
+ return u16_strconv_from_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/uniconv/u16-strconv-to-enc.c b/lib/uniconv/u16-strconv-to-enc.c
new file mode 100644
index 0000000..10e895e
--- /dev/null
+++ b/lib/uniconv/u16-strconv-to-enc.c
@@ -0,0 +1,50 @@
+/* Conversion from UTF-16 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* Name of UTF-16 encoding with machine dependent endianness and alignment. */
+#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# ifdef WORDS_BIGENDIAN
+# define UTF16_NAME "UTF-16BE"
+# else
+# define UTF16_NAME "UTF-16LE"
+# endif
+#endif
+
+#define FUNC u16_strconv_to_encoding
+#define UNIT uint16_t
+#define U_TO_U8 u16_to_u8
+#define U_STRLEN u16_strlen
+#if defined UTF16_NAME
+# define UTF_NAME UTF16_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-strconv-to-enc.h"
diff --git a/lib/uniconv/u16-strconv-to-locale.c b/lib/uniconv/u16-strconv-to-locale.c
new file mode 100644
index 0000000..14fd7b3
--- /dev/null
+++ b/lib/uniconv/u16-strconv-to-locale.c
@@ -0,0 +1,29 @@
+/* Conversion from UTF-16 to the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+char *
+u16_strconv_to_locale (const uint16_t *string)
+{
+ const char *encoding = locale_charset ();
+ return u16_strconv_to_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/uniconv/u32-conv-from-enc.c b/lib/uniconv/u32-conv-from-enc.c
new file mode 100644
index 0000000..bac6301
--- /dev/null
+++ b/lib/uniconv/u32-conv-from-enc.c
@@ -0,0 +1,46 @@
+/* Conversion to UTF-32 from legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+/* Name of UTF-32 or UCS-4 encoding with machine dependent endianness and
+ alignment. */
+#if defined _LIBICONV_VERSION
+# define UTF32_NAME "UCS-4-INTERNAL"
+#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# define UTF32_NAME "WCHAR_T"
+#endif
+
+#define FUNC u32_conv_from_encoding
+#define UNIT uint32_t
+#define U8_TO_U u8_to_u32
+#define U_MBLEN u32_mblen
+#if defined UTF32_NAME
+# define UTF_NAME UTF32_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-conv-from-enc.h"
diff --git a/lib/uniconv/u32-conv-to-enc.c b/lib/uniconv/u32-conv-to-enc.c
new file mode 100644
index 0000000..9155aba
--- /dev/null
+++ b/lib/uniconv/u32-conv-to-enc.c
@@ -0,0 +1,49 @@
+/* Conversion from UTF-32 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* Name of UTF-32 or UCS-4 encoding with machine dependent endianness and
+ alignment. */
+#if defined _LIBICONV_VERSION
+# define UTF32_NAME "UCS-4-INTERNAL"
+#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# define UTF32_NAME "WCHAR_T"
+#endif
+
+#define FUNC u32_conv_to_encoding
+#define UNIT uint32_t
+#define U_TO_U8 u32_to_u8
+#define U_MBLEN u32_mblen
+#if defined UTF32_NAME
+# define UTF_NAME UTF32_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-conv-to-enc.h"
diff --git a/lib/uniconv/u32-strconv-from-enc.c b/lib/uniconv/u32-strconv-from-enc.c
new file mode 100644
index 0000000..aaac74f
--- /dev/null
+++ b/lib/uniconv/u32-strconv-from-enc.c
@@ -0,0 +1,34 @@
+/* Conversion to UTF-32 from legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define FUNC u32_strconv_from_encoding
+#define UNIT uint32_t
+#define U_CONV_FROM_ENCODING u32_conv_from_encoding
+#define U_STRLEN u32_strlen
+#include "u-strconv-from-enc.h"
diff --git a/lib/uniconv/u32-strconv-from-locale.c b/lib/uniconv/u32-strconv-from-locale.c
new file mode 100644
index 0000000..2cddcb6
--- /dev/null
+++ b/lib/uniconv/u32-strconv-from-locale.c
@@ -0,0 +1,29 @@
+/* Conversion to UTF-32 from the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+uint32_t *
+u32_strconv_from_locale (const char *string)
+{
+ const char *encoding = locale_charset ();
+ return u32_strconv_from_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/uniconv/u32-strconv-to-enc.c b/lib/uniconv/u32-strconv-to-enc.c
new file mode 100644
index 0000000..c77e0b6
--- /dev/null
+++ b/lib/uniconv/u32-strconv-to-enc.c
@@ -0,0 +1,49 @@
+/* Conversion from UTF-32 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "striconveha.h"
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* Name of UTF-32 or UCS-4 encoding with machine dependent endianness and
+ alignment. */
+#if defined _LIBICONV_VERSION
+# define UTF32_NAME "UCS-4-INTERNAL"
+#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+# define UTF32_NAME "WCHAR_T"
+#endif
+
+#define FUNC u32_strconv_to_encoding
+#define UNIT uint32_t
+#define U_TO_U8 u32_to_u8
+#define U_STRLEN u32_strlen
+#if defined UTF32_NAME
+# define UTF_NAME UTF32_NAME
+# define HAVE_UTF_NAME 1
+#endif
+#include "u-strconv-to-enc.h"
diff --git a/lib/uniconv/u32-strconv-to-locale.c b/lib/uniconv/u32-strconv-to-locale.c
new file mode 100644
index 0000000..64ab59f
--- /dev/null
+++ b/lib/uniconv/u32-strconv-to-locale.c
@@ -0,0 +1,29 @@
+/* Conversion from UTF-32 to the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+char *
+u32_strconv_to_locale (const uint32_t *string)
+{
+ const char *encoding = locale_charset ();
+ return u32_strconv_to_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/uniconv/u8-conv-from-enc.c b/lib/uniconv/u8-conv-from-enc.c
new file mode 100644
index 0000000..7605e63
--- /dev/null
+++ b/lib/uniconv/u8-conv-from-enc.c
@@ -0,0 +1,105 @@
+/* Conversion to UTF-8 from legacy encodings.
+ Copyright (C) 2002, 2006-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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-strcaseeq.h"
+#include "striconveha.h"
+#include "unistr.h"
+
+uint8_t *
+u8_conv_from_encoding (const char *fromcode,
+ enum iconv_ilseq_handler handler,
+ const char *src, size_t srclen,
+ size_t *offsets,
+ uint8_t *resultbuf, size_t *lengthp)
+{
+ if (STRCASEEQ (fromcode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ {
+ /* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
+ uint8_t *result;
+
+ if (u8_check ((const uint8_t *) src, srclen))
+ {
+ errno = EILSEQ;
+ return NULL;
+ }
+
+ if (offsets != NULL)
+ {
+ size_t i;
+
+ for (i = 0; i < srclen; )
+ {
+ int count = u8_mblen ((const uint8_t *) src + i, srclen - i);
+ /* We can rely on count > 0 because of the previous u8_check. */
+ if (count <= 0)
+ abort ();
+ offsets[i] = i;
+ i++;
+ while (--count > 0)
+ offsets[i++] = (size_t)(-1);
+ }
+ }
+
+ /* Memory allocation. */
+ if (resultbuf != NULL && *lengthp >= srclen)
+ result = resultbuf;
+ else
+ {
+ result = (uint8_t *) malloc (srclen > 0 ? srclen : 1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+
+ memcpy ((char *) result, src, srclen);
+ *lengthp = srclen;
+ return result;
+ }
+ else
+ {
+ char *result = (char *) resultbuf;
+ size_t length = *lengthp;
+
+ if (mem_iconveha (src, srclen, fromcode, "UTF-8", true, handler,
+ offsets, &result, &length) < 0)
+ return NULL;
+
+ if (result == NULL) /* when (resultbuf == NULL && length == 0) */
+ {
+ result = (char *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ *lengthp = length;
+ return (uint8_t *) result;
+ }
+}
diff --git a/lib/uniconv/u8-conv-to-enc.c b/lib/uniconv/u8-conv-to-enc.c
new file mode 100644
index 0000000..90accce
--- /dev/null
+++ b/lib/uniconv/u8-conv-to-enc.c
@@ -0,0 +1,92 @@
+/* Conversion from UTF-8 to legacy encodings.
+ Copyright (C) 2002, 2006-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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-strcaseeq.h"
+#include "striconveha.h"
+#include "unistr.h"
+
+char *
+u8_conv_to_encoding (const char *tocode,
+ enum iconv_ilseq_handler handler,
+ const uint8_t *src, size_t srclen,
+ size_t *offsets,
+ char *resultbuf, size_t *lengthp)
+{
+ if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ {
+ char *result;
+
+ /* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
+#if CONFIG_UNICODE_SAFETY
+ if (u8_check (src, srclen))
+ {
+ errno = EILSEQ;
+ return NULL;
+ }
+#endif
+
+ /* Memory allocation. */
+ if (resultbuf != NULL && *lengthp >= srclen)
+ result = resultbuf;
+ else
+ {
+ result = (char *) malloc (srclen > 0 ? srclen : 1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+
+ memcpy (result, (const char *) src, srclen);
+ *lengthp = srclen;
+ return result;
+ }
+ else
+ {
+ char *result = resultbuf;
+ size_t length = *lengthp;
+
+ if (mem_iconveha ((const char *) src, srclen,
+ "UTF-8", tocode,
+ handler == iconveh_question_mark, handler,
+ offsets, &result, &length) < 0)
+ return NULL;
+
+ if (result == NULL) /* when (resultbuf == NULL && length == 0) */
+ {
+ result = (char *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ *lengthp = length;
+ return result;
+ }
+}
diff --git a/lib/uniconv/u8-strconv-from-enc.c b/lib/uniconv/u8-strconv-from-enc.c
new file mode 100644
index 0000000..0f5736f
--- /dev/null
+++ b/lib/uniconv/u8-strconv-from-enc.c
@@ -0,0 +1,34 @@
+/* Conversion to UTF-8 from legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define FUNC u8_strconv_from_encoding
+#define UNIT uint8_t
+#define U_CONV_FROM_ENCODING u8_conv_from_encoding
+#define U_STRLEN u8_strlen
+#include "u-strconv-from-enc.h"
diff --git a/lib/uniconv/u8-strconv-from-locale.c b/lib/uniconv/u8-strconv-from-locale.c
new file mode 100644
index 0000000..a901a3d
--- /dev/null
+++ b/lib/uniconv/u8-strconv-from-locale.c
@@ -0,0 +1,29 @@
+/* Conversion to UTF-8 from the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+uint8_t *
+u8_strconv_from_locale (const char *string)
+{
+ const char *encoding = locale_charset ();
+ return u8_strconv_from_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/uniconv/u8-strconv-to-enc.c b/lib/uniconv/u8-strconv-to-enc.c
new file mode 100644
index 0000000..a3f12b6
--- /dev/null
+++ b/lib/uniconv/u8-strconv-to-enc.c
@@ -0,0 +1,79 @@
+/* Conversion from UTF-8 to legacy encodings.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-strcaseeq.h"
+#include "striconveha.h"
+#include "unistr.h"
+
+char *
+u8_strconv_to_encoding (const uint8_t *string,
+ const char *tocode,
+ enum iconv_ilseq_handler handler)
+{
+ char *result;
+ size_t length;
+
+ if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ {
+ /* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
+ length = u8_strlen (string) + 1;
+#if CONFIG_UNICODE_SAFETY
+ if (u8_check (string, length))
+ {
+ errno = EILSEQ;
+ return NULL;
+ }
+#endif
+ result = (char *) malloc (length);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ memcpy (result, (const char *) string, length);
+ return result;
+ }
+ else
+ {
+ result = NULL;
+ length = 0;
+ if (mem_iconveha ((const char *) string, u8_strlen (string) + 1,
+ "UTF-8", tocode,
+ handler == iconveh_question_mark, handler,
+ NULL, &result, &length) < 0)
+ return NULL;
+ /* Verify the result has exactly one NUL byte, at the end. */
+ if (!(length > 0 && result[length-1] == '\0'
+ && strlen (result) == length-1))
+ {
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ return result;
+ }
+}
diff --git a/lib/uniconv/u8-strconv-to-locale.c b/lib/uniconv/u8-strconv-to-locale.c
new file mode 100644
index 0000000..27c45fb
--- /dev/null
+++ b/lib/uniconv/u8-strconv-to-locale.c
@@ -0,0 +1,29 @@
+/* Conversion from UTF-8 to the locale encoding.
+ Copyright (C) 2002, 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniconv.h"
+
+char *
+u8_strconv_to_locale (const uint8_t *string)
+{
+ const char *encoding = locale_charset ();
+ return u8_strconv_to_encoding (string, encoding, iconveh_question_mark);
+}
diff --git a/lib/unictype.h b/lib/unictype.h
new file mode 100644
index 0000000..1fc0440
--- /dev/null
+++ b/lib/unictype.h
@@ -0,0 +1,720 @@
+/* Unicode character classification and properties.
+ Copyright (C) 2002, 2005-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/>. */
+
+#ifndef _UNICTYPE_H
+#define _UNICTYPE_H
+
+#include "unitypes.h"
+
+/* Get LIBUNISTRING_DLL_VARIABLE. */
+#include <unistring/woe32dll.h>
+
+/* Get bool. */
+#include <unistring/stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Field 1 of Unicode Character Database: Character name.
+ See "uniname.h". */
+
+/* ========================================================================= */
+
+/* Field 2 of Unicode Character Database: General category. */
+
+/* Data type denoting a General category value. This is not just a bitmask,
+ but rather a bitmask and a pointer to the lookup table, so that programs
+ that use only the predefined bitmasks (i.e. don't combine bitmasks with &
+ and |) don't have a link-time dependency towards the big general table. */
+typedef struct
+{
+ uint32_t bitmask : 31;
+ /*bool*/ unsigned int generic : 1;
+ union
+ {
+ const void *table; /* when generic is 0 */
+ bool (*lookup_fn) (ucs4_t uc, uint32_t bitmask); /* when generic is 1 */
+ } lookup;
+}
+uc_general_category_t;
+
+/* Bits and bit masks denoting General category values. UnicodeData-3.2.0.html
+ says a 32-bit integer will always suffice to represent them.
+ These bit masks can only be used with the uc_is_general_category_withtable
+ function. */
+enum
+{
+ UC_CATEGORY_MASK_L = 0x0000001f,
+ UC_CATEGORY_MASK_Lu = 0x00000001,
+ UC_CATEGORY_MASK_Ll = 0x00000002,
+ UC_CATEGORY_MASK_Lt = 0x00000004,
+ UC_CATEGORY_MASK_Lm = 0x00000008,
+ UC_CATEGORY_MASK_Lo = 0x00000010,
+ UC_CATEGORY_MASK_M = 0x000000e0,
+ UC_CATEGORY_MASK_Mn = 0x00000020,
+ UC_CATEGORY_MASK_Mc = 0x00000040,
+ UC_CATEGORY_MASK_Me = 0x00000080,
+ UC_CATEGORY_MASK_N = 0x00000700,
+ UC_CATEGORY_MASK_Nd = 0x00000100,
+ UC_CATEGORY_MASK_Nl = 0x00000200,
+ UC_CATEGORY_MASK_No = 0x00000400,
+ UC_CATEGORY_MASK_P = 0x0003f800,
+ UC_CATEGORY_MASK_Pc = 0x00000800,
+ UC_CATEGORY_MASK_Pd = 0x00001000,
+ UC_CATEGORY_MASK_Ps = 0x00002000,
+ UC_CATEGORY_MASK_Pe = 0x00004000,
+ UC_CATEGORY_MASK_Pi = 0x00008000,
+ UC_CATEGORY_MASK_Pf = 0x00010000,
+ UC_CATEGORY_MASK_Po = 0x00020000,
+ UC_CATEGORY_MASK_S = 0x003c0000,
+ UC_CATEGORY_MASK_Sm = 0x00040000,
+ UC_CATEGORY_MASK_Sc = 0x00080000,
+ UC_CATEGORY_MASK_Sk = 0x00100000,
+ UC_CATEGORY_MASK_So = 0x00200000,
+ UC_CATEGORY_MASK_Z = 0x01c00000,
+ UC_CATEGORY_MASK_Zs = 0x00400000,
+ UC_CATEGORY_MASK_Zl = 0x00800000,
+ UC_CATEGORY_MASK_Zp = 0x01000000,
+ UC_CATEGORY_MASK_C = 0x3e000000,
+ UC_CATEGORY_MASK_Cc = 0x02000000,
+ UC_CATEGORY_MASK_Cf = 0x04000000,
+ UC_CATEGORY_MASK_Cs = 0x08000000,
+ UC_CATEGORY_MASK_Co = 0x10000000,
+ UC_CATEGORY_MASK_Cn = 0x20000000
+};
+
+/* Predefined General category values. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_L;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lu;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ll;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lt;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lm;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lo;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_M;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mn;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Me;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_N;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nd;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nl;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_No;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_P;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pd;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ps;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pe;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pi;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pf;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Po;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_S;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sm;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sk;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_So;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Z;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zs;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zl;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zp;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_C;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cf;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cs;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Co;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cn;
+/* Non-public. */
+extern const uc_general_category_t _UC_CATEGORY_NONE;
+
+/* Alias names for predefined General category values. */
+#define UC_LETTER UC_CATEGORY_L
+#define UC_UPPERCASE_LETTER UC_CATEGORY_Lu
+#define UC_LOWERCASE_LETTER UC_CATEGORY_Ll
+#define UC_TITLECASE_LETTER UC_CATEGORY_Lt
+#define UC_MODIFIER_LETTER UC_CATEGORY_Lm
+#define UC_OTHER_LETTER UC_CATEGORY_Lo
+#define UC_MARK UC_CATEGORY_M
+#define UC_NON_SPACING_MARK UC_CATEGORY_Mn
+#define UC_COMBINING_SPACING_MARK UC_CATEGORY_Mc
+#define UC_ENCLOSING_MARK UC_CATEGORY_Me
+#define UC_NUMBER UC_CATEGORY_N
+#define UC_DECIMAL_DIGIT_NUMBER UC_CATEGORY_Nd
+#define UC_LETTER_NUMBER UC_CATEGORY_Nl
+#define UC_OTHER_NUMBER UC_CATEGORY_No
+#define UC_PUNCTUATION UC_CATEGORY_P
+#define UC_CONNECTOR_PUNCTUATION UC_CATEGORY_Pc
+#define UC_DASH_PUNCTUATION UC_CATEGORY_Pd
+#define UC_OPEN_PUNCTUATION UC_CATEGORY_Ps /* a.k.a. UC_START_PUNCTUATION */
+#define UC_CLOSE_PUNCTUATION UC_CATEGORY_Pe /* a.k.a. UC_END_PUNCTUATION */
+#define UC_INITIAL_QUOTE_PUNCTUATION UC_CATEGORY_Pi
+#define UC_FINAL_QUOTE_PUNCTUATION UC_CATEGORY_Pf
+#define UC_OTHER_PUNCTUATION UC_CATEGORY_Po
+#define UC_SYMBOL UC_CATEGORY_S
+#define UC_MATH_SYMBOL UC_CATEGORY_Sm
+#define UC_CURRENCY_SYMBOL UC_CATEGORY_Sc
+#define UC_MODIFIER_SYMBOL UC_CATEGORY_Sk
+#define UC_OTHER_SYMBOL UC_CATEGORY_So
+#define UC_SEPARATOR UC_CATEGORY_Z
+#define UC_SPACE_SEPARATOR UC_CATEGORY_Zs
+#define UC_LINE_SEPARATOR UC_CATEGORY_Zl
+#define UC_PARAGRAPH_SEPARATOR UC_CATEGORY_Zp
+#define UC_OTHER UC_CATEGORY_C
+#define UC_CONTROL UC_CATEGORY_Cc
+#define UC_FORMAT UC_CATEGORY_Cf
+#define UC_SURROGATE UC_CATEGORY_Cs /* all of them are invalid characters */
+#define UC_PRIVATE_USE UC_CATEGORY_Co
+#define UC_UNASSIGNED UC_CATEGORY_Cn /* some of them are invalid characters */
+
+/* Return the union of two general categories.
+ This corresponds to the unions of the two sets of characters. */
+extern uc_general_category_t
+ uc_general_category_or (uc_general_category_t category1,
+ uc_general_category_t category2);
+
+/* Return the intersection of two general categories as bit masks.
+ This *does*not* correspond to the intersection of the two sets of
+ characters. */
+extern uc_general_category_t
+ uc_general_category_and (uc_general_category_t category1,
+ uc_general_category_t category2);
+
+/* Return the intersection of a general category with the complement of a
+ second general category, as bit masks.
+ This *does*not* correspond to the intersection with complement, when
+ viewing the categories as sets of characters. */
+extern uc_general_category_t
+ uc_general_category_and_not (uc_general_category_t category1,
+ uc_general_category_t category2);
+
+/* Return the name of a general category. */
+extern const char *
+ uc_general_category_name (uc_general_category_t category);
+
+/* Return the general category given by name, e.g. "Lu". */
+extern uc_general_category_t
+ uc_general_category_byname (const char *category_name);
+
+/* Return the general category of a Unicode character. */
+extern uc_general_category_t
+ uc_general_category (ucs4_t uc);
+
+/* Test whether a Unicode character belongs to a given category.
+ The CATEGORY argument can be the combination of several predefined
+ general categories. */
+extern bool
+ uc_is_general_category (ucs4_t uc, uc_general_category_t category);
+/* Likewise. This function uses a big table comprising all categories. */
+extern bool
+ uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask);
+
+/* ========================================================================= */
+
+/* Field 3 of Unicode Character Database: Canonical combining class. */
+
+/* The possible results of uc_combining_class (0..255) are described in
+ UCD.html. The list here is not definitive; more values can be added
+ in future versions. */
+enum
+{
+ UC_CCC_NR = 0, /* Not Reordered */
+ UC_CCC_OV = 1, /* Overlay */
+ UC_CCC_NK = 7, /* Nukta */
+ UC_CCC_KV = 8, /* Kana Voicing */
+ UC_CCC_VR = 9, /* Virama */
+ UC_CCC_ATBL = 200, /* Attached Below Left */
+ UC_CCC_ATB = 202, /* Attached Below */
+ UC_CCC_ATAR = 216, /* Attached Above Right */
+ UC_CCC_BL = 218, /* Below Left */
+ UC_CCC_B = 220, /* Below */
+ UC_CCC_BR = 222, /* Below Right */
+ UC_CCC_L = 224, /* Left */
+ UC_CCC_R = 226, /* Right */
+ UC_CCC_AL = 228, /* Above Left */
+ UC_CCC_A = 230, /* Above */
+ UC_CCC_AR = 232, /* Above Right */
+ UC_CCC_DB = 233, /* Double Below */
+ UC_CCC_DA = 234, /* Double Above */
+ UC_CCC_IS = 240 /* Iota Subscript */
+};
+
+/* Return the canonical combining class of a Unicode character. */
+extern int
+ uc_combining_class (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Field 4 of Unicode Character Database: Bidirectional category. */
+
+enum
+{
+ UC_BIDI_L, /* Left-to-Right */
+ UC_BIDI_LRE, /* Left-to-Right Embedding */
+ UC_BIDI_LRO, /* Left-to-Right Override */
+ UC_BIDI_R, /* Right-to-Left */
+ UC_BIDI_AL, /* Right-to-Left Arabic */
+ UC_BIDI_RLE, /* Right-to-Left Embedding */
+ UC_BIDI_RLO, /* Right-to-Left Override */
+ UC_BIDI_PDF, /* Pop Directional Format */
+ UC_BIDI_EN, /* European Number */
+ UC_BIDI_ES, /* European Number Separator */
+ UC_BIDI_ET, /* European Number Terminator */
+ UC_BIDI_AN, /* Arabic Number */
+ UC_BIDI_CS, /* Common Number Separator */
+ UC_BIDI_NSM, /* Non-Spacing Mark */
+ UC_BIDI_BN, /* Boundary Neutral */
+ UC_BIDI_B, /* Paragraph Separator */
+ UC_BIDI_S, /* Segment Separator */
+ UC_BIDI_WS, /* Whitespace */
+ UC_BIDI_ON /* Other Neutral */
+};
+
+/* Return the name of a bidirectional category. */
+extern const char *
+ uc_bidi_category_name (int category);
+
+/* Return the bidirectional category given by name, e.g. "LRE". */
+extern int
+ uc_bidi_category_byname (const char *category_name);
+
+/* Return the bidirectional category of a Unicode character. */
+extern int
+ uc_bidi_category (ucs4_t uc);
+
+/* Test whether a Unicode character belongs to a given bidirectional
+ category. */
+extern bool
+ uc_is_bidi_category (ucs4_t uc, int category);
+
+/* ========================================================================= */
+
+/* Field 5 of Unicode Character Database: Character decomposition mapping.
+ See "uninorm.h". */
+
+/* ========================================================================= */
+
+/* Field 6 of Unicode Character Database: Decimal digit value. */
+
+/* Return the decimal digit value of a Unicode character. */
+extern int
+ uc_decimal_value (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Field 7 of Unicode Character Database: Digit value. */
+
+/* Return the digit value of a Unicode character. */
+extern int
+ uc_digit_value (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Field 8 of Unicode Character Database: Numeric value. */
+
+/* Return the numeric value of a Unicode character. */
+typedef struct
+{
+ int numerator;
+ int denominator;
+}
+uc_fraction_t;
+extern uc_fraction_t
+ uc_numeric_value (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Field 9 of Unicode Character Database: Mirrored. */
+
+/* Return the mirrored character of a Unicode character UC in *PUC. */
+extern bool
+ uc_mirror_char (ucs4_t uc, ucs4_t *puc);
+
+/* ========================================================================= */
+
+/* Field 10 of Unicode Character Database: Unicode 1.0 Name.
+ Not available in this library. */
+
+/* ========================================================================= */
+
+/* Field 11 of Unicode Character Database: ISO 10646 comment.
+ Not available in this library. */
+
+/* ========================================================================= */
+
+/* Field 12, 13, 14 of Unicode Character Database: Uppercase mapping,
+ lowercase mapping, titlecase mapping. See "unicase.h". */
+
+/* ========================================================================= */
+
+/* Common API for properties. */
+
+/* Data type denoting a property. This is not just a number, but rather a
+ pointer to the test functions, so that programs that use only few of the
+ properties don't have a link-time dependency towards all the tables. */
+typedef struct
+{
+ bool (*test_fn) (ucs4_t uc);
+}
+uc_property_t;
+
+/* Predefined properties. */
+/* General. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_WHITE_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ALPHABETIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ALPHABETIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NOT_A_CHARACTER;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEPRECATED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_VARIATION_SELECTOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PRIVATE_USE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNASSIGNED_CODE_VALUE;
+/* Case. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UPPERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_UPPERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOWERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_LOWERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TITLECASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SOFT_DOTTED;
+/* Identifiers. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_SYNTAX;
+/* Shaping and rendering. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_JOIN_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_BASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_EXTEND;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_GRAPHEME_EXTEND;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_LINK;
+/* Bidi. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_LEFT_TO_RIGHT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUROPEAN_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_COMMON_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BLOCK_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_SEGMENT_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_WHITESPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_NON_SPACING_MARK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_PDF;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_OTHER_NEUTRAL;
+/* Numeric. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HEX_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ASCII_HEX_DIGIT;
+/* CJK. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDEOGRAPHIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_RADICAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR;
+/* Misc. */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ZERO_WIDTH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NON_BREAK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ISO_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_FORMAT_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DASH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HYPHEN;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LINE_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PARAGRAPH_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_QUOTATION_MARK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SENTENCE_TERMINAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TERMINAL_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CURRENCY_SYMBOL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_MATH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_MATH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PAIRED_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LEFT_OF_PAIR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMBINING;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMPOSITE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DECIMAL_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NUMERIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DIACRITIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EXTENDER;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IGNORABLE_CONTROL;
+
+/* Return the property given by name, e.g. "White space". */
+extern uc_property_t
+ uc_property_byname (const char *property_name);
+
+/* Test whether a property is valid. */
+#define uc_property_is_valid(property) ((property).test_fn != NULL)
+
+/* Test whether a Unicode character has a given property. */
+extern bool
+ uc_is_property (ucs4_t uc, uc_property_t property);
+extern bool uc_is_property_white_space (ucs4_t uc);
+extern bool uc_is_property_alphabetic (ucs4_t uc);
+extern bool uc_is_property_other_alphabetic (ucs4_t uc);
+extern bool uc_is_property_not_a_character (ucs4_t uc);
+extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc);
+extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc);
+extern bool uc_is_property_deprecated (ucs4_t uc);
+extern bool uc_is_property_logical_order_exception (ucs4_t uc);
+extern bool uc_is_property_variation_selector (ucs4_t uc);
+extern bool uc_is_property_private_use (ucs4_t uc);
+extern bool uc_is_property_unassigned_code_value (ucs4_t uc);
+extern bool uc_is_property_uppercase (ucs4_t uc);
+extern bool uc_is_property_other_uppercase (ucs4_t uc);
+extern bool uc_is_property_lowercase (ucs4_t uc);
+extern bool uc_is_property_other_lowercase (ucs4_t uc);
+extern bool uc_is_property_titlecase (ucs4_t uc);
+extern bool uc_is_property_soft_dotted (ucs4_t uc);
+extern bool uc_is_property_id_start (ucs4_t uc);
+extern bool uc_is_property_other_id_start (ucs4_t uc);
+extern bool uc_is_property_id_continue (ucs4_t uc);
+extern bool uc_is_property_other_id_continue (ucs4_t uc);
+extern bool uc_is_property_xid_start (ucs4_t uc);
+extern bool uc_is_property_xid_continue (ucs4_t uc);
+extern bool uc_is_property_pattern_white_space (ucs4_t uc);
+extern bool uc_is_property_pattern_syntax (ucs4_t uc);
+extern bool uc_is_property_join_control (ucs4_t uc);
+extern bool uc_is_property_grapheme_base (ucs4_t uc);
+extern bool uc_is_property_grapheme_extend (ucs4_t uc);
+extern bool uc_is_property_other_grapheme_extend (ucs4_t uc);
+extern bool uc_is_property_grapheme_link (ucs4_t uc);
+extern bool uc_is_property_bidi_control (ucs4_t uc);
+extern bool uc_is_property_bidi_left_to_right (ucs4_t uc);
+extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc);
+extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc);
+extern bool uc_is_property_bidi_european_digit (ucs4_t uc);
+extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc);
+extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc);
+extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc);
+extern bool uc_is_property_bidi_common_separator (ucs4_t uc);
+extern bool uc_is_property_bidi_block_separator (ucs4_t uc);
+extern bool uc_is_property_bidi_segment_separator (ucs4_t uc);
+extern bool uc_is_property_bidi_whitespace (ucs4_t uc);
+extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc);
+extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc);
+extern bool uc_is_property_bidi_pdf (ucs4_t uc);
+extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc);
+extern bool uc_is_property_bidi_other_neutral (ucs4_t uc);
+extern bool uc_is_property_hex_digit (ucs4_t uc);
+extern bool uc_is_property_ascii_hex_digit (ucs4_t uc);
+extern bool uc_is_property_ideographic (ucs4_t uc);
+extern bool uc_is_property_unified_ideograph (ucs4_t uc);
+extern bool uc_is_property_radical (ucs4_t uc);
+extern bool uc_is_property_ids_binary_operator (ucs4_t uc);
+extern bool uc_is_property_ids_trinary_operator (ucs4_t uc);
+extern bool uc_is_property_zero_width (ucs4_t uc);
+extern bool uc_is_property_space (ucs4_t uc);
+extern bool uc_is_property_non_break (ucs4_t uc);
+extern bool uc_is_property_iso_control (ucs4_t uc);
+extern bool uc_is_property_format_control (ucs4_t uc);
+extern bool uc_is_property_dash (ucs4_t uc);
+extern bool uc_is_property_hyphen (ucs4_t uc);
+extern bool uc_is_property_punctuation (ucs4_t uc);
+extern bool uc_is_property_line_separator (ucs4_t uc);
+extern bool uc_is_property_paragraph_separator (ucs4_t uc);
+extern bool uc_is_property_quotation_mark (ucs4_t uc);
+extern bool uc_is_property_sentence_terminal (ucs4_t uc);
+extern bool uc_is_property_terminal_punctuation (ucs4_t uc);
+extern bool uc_is_property_currency_symbol (ucs4_t uc);
+extern bool uc_is_property_math (ucs4_t uc);
+extern bool uc_is_property_other_math (ucs4_t uc);
+extern bool uc_is_property_paired_punctuation (ucs4_t uc);
+extern bool uc_is_property_left_of_pair (ucs4_t uc);
+extern bool uc_is_property_combining (ucs4_t uc);
+extern bool uc_is_property_composite (ucs4_t uc);
+extern bool uc_is_property_decimal_digit (ucs4_t uc);
+extern bool uc_is_property_numeric (ucs4_t uc);
+extern bool uc_is_property_diacritic (ucs4_t uc);
+extern bool uc_is_property_extender (ucs4_t uc);
+extern bool uc_is_property_ignorable_control (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Subdivision of the Unicode characters into scripts. */
+
+typedef struct
+{
+ unsigned int code : 21;
+ unsigned int start : 1;
+ unsigned int end : 1;
+}
+uc_interval_t;
+typedef struct
+{
+ unsigned int nintervals;
+ const uc_interval_t *intervals;
+ const char *name;
+}
+uc_script_t;
+
+/* Return the script of a Unicode character. */
+extern const uc_script_t *
+ uc_script (ucs4_t uc);
+
+/* Return the script given by name, e.g. "HAN". */
+extern const uc_script_t *
+ uc_script_byname (const char *script_name);
+
+/* Test whether a Unicode character belongs to a given script. */
+extern bool
+ uc_is_script (ucs4_t uc, const uc_script_t *script);
+
+/* Get the list of all scripts. */
+extern void
+ uc_all_scripts (const uc_script_t **scripts, size_t *count);
+
+/* ========================================================================= */
+
+/* Subdivision of the Unicode character range into blocks. */
+
+typedef struct
+{
+ ucs4_t start;
+ ucs4_t end;
+ const char *name;
+}
+uc_block_t;
+
+/* Return the block a character belongs to. */
+extern const uc_block_t *
+ uc_block (ucs4_t uc);
+
+/* Test whether a Unicode character belongs to a given block. */
+extern bool
+ uc_is_block (ucs4_t uc, const uc_block_t *block);
+
+/* Get the list of all blocks. */
+extern void
+ uc_all_blocks (const uc_block_t **blocks, size_t *count);
+
+/* ========================================================================= */
+
+/* Properties taken from language standards. */
+
+/* Test whether a Unicode character is considered whitespace in ISO C 99. */
+extern bool
+ uc_is_c_whitespace (ucs4_t uc);
+
+/* Test whether a Unicode character is considered whitespace in Java. */
+extern bool
+ uc_is_java_whitespace (ucs4_t uc);
+
+enum
+{
+ UC_IDENTIFIER_START, /* valid as first or subsequent character */
+ UC_IDENTIFIER_VALID, /* valid as subsequent character only */
+ UC_IDENTIFIER_INVALID, /* not valid */
+ UC_IDENTIFIER_IGNORABLE /* ignorable (Java only) */
+};
+
+/* Return the categorization of a Unicode character w.r.t. the ISO C 99
+ identifier syntax. */
+extern int
+ uc_c_ident_category (ucs4_t uc);
+
+/* Return the categorization of a Unicode character w.r.t. the Java
+ identifier syntax. */
+extern int
+ uc_java_ident_category (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Like ISO C <ctype.h> and <wctype.h>. These functions are deprecated,
+ because this set of functions was designed with ASCII in mind and cannot
+ reflect the more diverse reality of the Unicode character set. But they
+ can be a quick-and-dirty porting aid when migrating from wchar_t APIs
+ to Unicode strings. */
+
+/* Test for any character for which 'uc_is_alpha' or 'uc_is_digit' is true. */
+extern bool
+ uc_is_alnum (ucs4_t uc);
+
+/* Test for any character for which 'uc_is_upper' or 'uc_is_lower' is true,
+ or any character that is one of a locale-specific set of characters for
+ which none of 'uc_is_cntrl', 'uc_is_digit', 'uc_is_punct', or 'uc_is_space'
+ is true. */
+extern bool
+ uc_is_alpha (ucs4_t uc);
+
+/* Test for any control character. */
+extern bool
+ uc_is_cntrl (ucs4_t uc);
+
+/* Test for any character that corresponds to a decimal-digit character. */
+extern bool
+ uc_is_digit (ucs4_t uc);
+
+/* Test for any character for which 'uc_is_print' is true and 'uc_is_space'
+ is false. */
+extern bool
+ uc_is_graph (ucs4_t uc);
+
+/* Test for any character that corresponds to a lowercase letter or is one
+ of a locale-specific set of characters for which none of 'uc_is_cntrl',
+ 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */
+extern bool
+ uc_is_lower (ucs4_t uc);
+
+/* Test for any printing character. */
+extern bool
+ uc_is_print (ucs4_t uc);
+
+/* Test for any printing character that is one of a locale-specific set of
+ characters for which neither 'uc_is_space' nor 'uc_is_alnum' is true. */
+extern bool
+ uc_is_punct (ucs4_t uc);
+
+/* Test for any character that corresponds to a locale-specific set of
+ characters for which none of 'uc_is_alnum', 'uc_is_graph', or 'uc_is_punct'
+ is true. */
+extern bool
+ uc_is_space (ucs4_t uc);
+
+/* Test for any character that corresponds to an uppercase letter or is one
+ of a locale-specific set of character for which none of 'uc_is_cntrl',
+ 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */
+extern bool
+ uc_is_upper (ucs4_t uc);
+
+/* Test for any character that corresponds to a hexadecimal-digit
+ character. */
+extern bool
+ uc_is_xdigit (ucs4_t uc);
+
+/* GNU extension. */
+/* Test for any character that corresponds to a standard blank character or
+ a locale-specific set of characters for which 'uc_is_alnum' is false. */
+extern bool
+ uc_is_blank (ucs4_t uc);
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICTYPE_H */
diff --git a/lib/unictype/bidi_byname.c b/lib/unictype/bidi_byname.c
new file mode 100644
index 0000000..8a6cb71
--- /dev/null
+++ b/lib/unictype/bidi_byname.c
@@ -0,0 +1,171 @@
+/* Bidi categories of Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+int
+uc_bidi_category_byname (const char *category_name)
+{
+ switch (category_name[0])
+ {
+ case 'A':
+ switch (category_name[1])
+ {
+ case 'L':
+ if (category_name[2] == '\0')
+ return UC_BIDI_AL;
+ break;
+ case 'N':
+ if (category_name[2] == '\0')
+ return UC_BIDI_AN;
+ break;
+ }
+ break;
+ case 'B':
+ switch (category_name[1])
+ {
+ case '\0':
+ return UC_BIDI_B;
+ case 'N':
+ if (category_name[2] == '\0')
+ return UC_BIDI_BN;
+ break;
+ }
+ break;
+ case 'C':
+ switch (category_name[1])
+ {
+ case 'S':
+ if (category_name[2] == '\0')
+ return UC_BIDI_CS;
+ break;
+ }
+ break;
+ case 'E':
+ switch (category_name[1])
+ {
+ case 'N':
+ if (category_name[2] == '\0')
+ return UC_BIDI_EN;
+ break;
+ case 'S':
+ if (category_name[2] == '\0')
+ return UC_BIDI_ES;
+ break;
+ case 'T':
+ if (category_name[2] == '\0')
+ return UC_BIDI_ET;
+ break;
+ }
+ break;
+ case 'L':
+ switch (category_name[1])
+ {
+ case '\0':
+ return UC_BIDI_L;
+ case 'R':
+ switch (category_name[2])
+ {
+ case 'E':
+ if (category_name[3] == '\0')
+ return UC_BIDI_LRE;
+ break;
+ case 'O':
+ if (category_name[3] == '\0')
+ return UC_BIDI_LRO;
+ break;
+ }
+ break;
+ }
+ break;
+ case 'N':
+ switch (category_name[1])
+ {
+ case 'S':
+ switch (category_name[2])
+ {
+ case 'M':
+ if (category_name[3] == '\0')
+ return UC_BIDI_NSM;
+ break;
+ }
+ break;
+ }
+ break;
+ case 'O':
+ switch (category_name[1])
+ {
+ case 'N':
+ if (category_name[2] == '\0')
+ return UC_BIDI_ON;
+ break;
+ }
+ break;
+ case 'P':
+ switch (category_name[1])
+ {
+ case 'D':
+ switch (category_name[2])
+ {
+ case 'F':
+ if (category_name[3] == '\0')
+ return UC_BIDI_PDF;
+ break;
+ }
+ break;
+ }
+ break;
+ case 'R':
+ switch (category_name[1])
+ {
+ case '\0':
+ return UC_BIDI_R;
+ case 'L':
+ switch (category_name[2])
+ {
+ case 'E':
+ if (category_name[3] == '\0')
+ return UC_BIDI_RLE;
+ break;
+ case 'O':
+ if (category_name[3] == '\0')
+ return UC_BIDI_RLO;
+ break;
+ }
+ break;
+ }
+ break;
+ case 'S':
+ if (category_name[1] == '\0')
+ return UC_BIDI_S;
+ break;
+ case 'W':
+ switch (category_name[1])
+ {
+ case 'S':
+ if (category_name[2] == '\0')
+ return UC_BIDI_WS;
+ break;
+ }
+ break;
+ }
+ /* Invalid category name. */
+ return -1;
+}
diff --git a/lib/unictype/bidi_name.c b/lib/unictype/bidi_name.c
new file mode 100644
index 0000000..7652976
--- /dev/null
+++ b/lib/unictype/bidi_name.c
@@ -0,0 +1,35 @@
+/* Bidi categories of Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static const char u_bidi_category_name[19][4] =
+{
+ "L", "LRE", "LRO", "R", "AL", "RLE", "RLO", "PDF", "EN", "ES",
+ "ET", "AN", "CS", "NSM", "BN", "B", "S", "WS", "ON"
+};
+
+const char *
+uc_bidi_category_name (int category)
+{
+ if (category >= 0 && category < sizeof (u_bidi_category_name) / sizeof (u_bidi_category_name[0]))
+ return u_bidi_category_name[category];
+ return NULL;
+}
diff --git a/lib/unictype/bidi_of.c b/lib/unictype/bidi_of.c
new file mode 100644
index 0000000..93fc7a8
--- /dev/null
+++ b/lib/unictype/bidi_of.c
@@ -0,0 +1,52 @@
+/* Bidi categories of Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_bidi_category table. */
+#include "bidi_of.h"
+
+int
+uc_bidi_category (ucs4_t uc)
+{
+ unsigned int index1 = uc >> bidi_category_header_0;
+ if (index1 < bidi_category_header_1)
+ {
+ int lookup1 = u_bidi_category.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> bidi_category_header_2) & bidi_category_header_3;
+ int lookup2 = u_bidi_category.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = ((uc & bidi_category_header_4) + lookup2) * 5;
+ /* level3 contains 5-bit values, packed into 16-bit words. */
+ unsigned int lookup3 =
+ ((u_bidi_category.level3[index3>>4]
+ | (u_bidi_category.level3[(index3>>4)+1] << 16))
+ >> (index3 % 16))
+ & 0x1f;
+
+ return lookup3;
+ }
+ }
+ }
+ return UC_BIDI_L;
+}
diff --git a/lib/unictype/bidi_of.h b/lib/unictype/bidi_of.h
new file mode 100644
index 0000000..9f6875b
--- /dev/null
+++ b/lib/unictype/bidi_of.h
@@ -0,0 +1,789 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Bidi categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define bidi_category_header_0 16
+#define bidi_category_header_1 17
+#define bidi_category_header_2 7
+#define bidi_category_header_3 511
+#define bidi_category_header_4 127
+static const
+struct
+ {
+ int level1[17];
+ short level2[4 << 9];
+ unsigned short level3[101 * 40 + 1];
+ }
+u_bidi_category =
+{
+ {
+ 0, 512, 1024, 1024, 1024, 1024, 1024, 1024,
+ 1024, 1024, 1024, 1024, 1024, 1024, 1536, 1024,
+ 1024
+ },
+ {
+ 0, 128, -1, -1, -1, 256, 384, 512,
+ -1, 640, -1, 768, 896, 1024, 1152, 1280,
+ 1408, 1408, 1536, 1664, 1792, 1920, 2048, 2176,
+ 2304, 2432, 2560, 2688, 2816, 2944, 3072, 3200,
+ 3328, 3456, -1, -1, -1, -1, 3584, 3712,
+ -1, -1, -1, -1, -1, 3840, 3968, 4096,
+ 4224, 4352, 4480, 4608, 4736, -1, 4864, 4992,
+ 5120, -1, -1, 5248, -1, -1, -1, 5376,
+ 5504, 5632, 5760, 5888, 6016, 6144, 6272, 6400,
+ 6528, 6656, 6144, 6144, 6144, 6784, 6912, 7040,
+ -1, -1, 6144, 6144, 6144, 6144, 7168, -1,
+ -1, 7296, -1, 7424, 7552, 7680, 6144, 7808,
+ 7936, 8064, -1, 8192, 8320, 8448, 8576, 8704,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 8832, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 8960, -1, -1, 9088, -1, 9216, 9344,
+ 9472, 9600, 9728, -1, 9856, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 9984, 10112,
+ 10112, 10112, 10240, 10368, 10496, 10624, 10752, 10880,
+ -1, -1, 11008, 11136, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 1408, 1408, 11264, 1408, 11392, 1408, 1408, 1408,
+ 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 11520, 11648, 11776, -1, 11904, -1,
+ -1, -1, -1, -1, -1, -1, -1, 12032,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 12160, 12288, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 12416,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 12416,
+ 12544, 12544, 12672, 12800, 12544, 12544, 12544, 12544,
+ 12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
+ 12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
+ 12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 12416
+ },
+ {
+ 0x39ce, 0x9ce7, 0x0e73, 0x183e, 0x739f, 0x39ce, 0x9ce7, 0xce73,
+ 0xf739, 0x83de, 0x4a51, 0x94a5, 0x5294, 0xc4ca, 0x6312, 0x2108,
+ 0x1084, 0x0842, 0x2931, 0x94a5, 0x0012, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x2900, 0x94a5, 0x0012, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2900, 0x74a5,
+ 0x39ce, 0x9ee7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+ 0xe739, 0x739c, 0x2a4c, 0x94a5, 0x5294, 0x2902, 0x949d, 0x214a,
+ 0x8124, 0x1294, 0x2901, 0x94a5, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0090, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0090, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x4000, 0x004a, 0x0000, 0x4800, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4800, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0xa400,
+ 0x5294, 0x294a, 0x9025, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0x0000, 0x2520, 0x0000, 0x0000, 0x0480,
+ 0x0000, 0x2520, 0x0090, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0004, 0x0000, 0x0000,
+ 0x8000, 0x5ad6, 0xad6b, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0048, 0x0000, 0xb5a3, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x68da, 0xb5a3, 0xdad1, 0x6368, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+ 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+ 0xad6b, 0x8845, 0x4494, 0xc229, 0x9488, 0xb5ad, 0x5ad6, 0xad6b,
+ 0x4235, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd690,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x235a, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5a9, 0x2108, 0x108d, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6b56, 0xb5ad, 0x08d6,
+ 0x4d69, 0xd6b6, 0x211a, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x7108, 0x11a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4235,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6b5a, 0x108d,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+ 0x6318, 0xd68c, 0x6b5a, 0xb5ad, 0x8636, 0x5294, 0x318e, 0x18c6,
+ 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
+ 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+ 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+ 0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x5ad6, 0x0d6b, 0x0000,
+ 0x001a, 0xb5a0, 0x00d6, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x2800, 0x0005, 0x0000, 0x0000, 0x0000,
+ 0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x0000, 0x35a0, 0x0000, 0x0d68, 0xd680,
+ 0x001a, 0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x01ad, 0x1a00, 0x0000, 0x0000, 0x0000,
+ 0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x1ad6, 0x0d68, 0x0000,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x0140, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x6800, 0xb5a0, 0x00d6, 0x0000, 0x0000,
+ 0x001a, 0x0000, 0x4000, 0x0003, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x3400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x0000, 0x0000, 0x0000,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa529, 0x5294, 0x0049, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x6b40, 0x000d, 0x4000, 0x0d6b, 0xd6b4,
+ 0x001a, 0x0000, 0x5a00, 0x0003, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5200, 0x294a, 0x04a5,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xd000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x4a40, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0034,
+ 0x0000, 0xb400, 0x40d6, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01a0,
+ 0x5ad0, 0xad6b, 0x0035, 0x5000, 0x0000, 0x0000, 0xad68, 0xd6b5,
+ 0x035a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01a0,
+ 0x5ad0, 0xad6b, 0xd681, 0x0000, 0x0000, 0x0000, 0xad00, 0xd6b5,
+ 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xad00,
+ 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x1a00, 0xa068, 0x2949, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xb5a0, 0x5ad6, 0xad6b, 0xd6b5, 0x035a,
+ 0xb5ad, 0x40d6, 0x006b, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xa06b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x0000, 0x0000, 0x4000, 0x0003, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5a, 0xb40d,
+ 0x5ad6, 0xa06b, 0x0035, 0x035a, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xad00, 0x0001, 0x6b40, 0x000d, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000, 0x0000,
+ 0x3400, 0x5a00, 0x0003, 0x0000, 0x001a, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6800, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x2900, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x00d6, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400,
+ 0x00d6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xb400, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xb400, 0x0006, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xad68, 0xd6b5, 0x001a, 0x0000, 0x4000, 0xa003, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x0006, 0x0000, 0x0500, 0x001a, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x0002, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0xd6ca, 0x045a, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0001, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x35ad, 0x0000, 0x0d68, 0x0000, 0x0000, 0x3400,
+ 0x0000, 0xa000, 0x06b5, 0x0000, 0x0012, 0x2520, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9480, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d68,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xb5ad, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x40d0, 0xad6b, 0xd035, 0x0000, 0x3400, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xd680, 0x6b5a, 0xb5ad, 0x0006, 0x0000, 0x0000, 0x0000,
+ 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xb400, 0x1ad6, 0xad00, 0x0001, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000, 0x6b5a, 0xb5ad,
+ 0x4006, 0x006b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b40,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x9024, 0x0252, 0x0000, 0x0000, 0x0000,
+ 0x94a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x94a4, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x94a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x04a4,
+ 0xc631, 0x6318, 0x318c, 0xe746, 0x181c, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0xf194, 0x7285, 0x6184, 0x294a,
+ 0xa4a5, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa4c9, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x8ca5, 0x39ce, 0x08e7,
+ 0x8421, 0xe738, 0x739c, 0x0008, 0x1080, 0x0842, 0x24a5, 0x04a5,
+ 0x2108, 0x1084, 0x0842, 0x24a5, 0x04a5, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x14a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0x000d, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0252, 0xa529, 0x5204, 0x0002, 0x0000, 0x0000, 0x8120, 0x1294,
+ 0x0000, 0x9480, 0x4a52, 0x2409, 0x4090, 0x0002, 0x0280, 0x0000,
+ 0x0000, 0x0000, 0x0948, 0x0000, 0x4a52, 0x0129, 0x0000, 0x2948,
+ 0x0025, 0x0000, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x2652, 0xa525, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0x2529, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2900, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x8129, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x0094, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x0004, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x004a,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x0894, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x0421, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x2948, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x0025, 0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x0001, 0x4a52, 0x0009, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4a40, 0x8129, 0x5294, 0x2002, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x4094, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x094a,
+ 0x9024, 0x4a52, 0x8000, 0x5204, 0x294a, 0x04a5, 0x4a40, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0129, 0x5200,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a40,
+ 0xa529, 0x5294, 0x294a, 0x04a5, 0x4a52, 0xa529, 0x5294, 0x204a,
+ 0x0001, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x0001, 0x4a52, 0x0129, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa400,
+ 0x5294, 0x004a, 0x0000, 0x0000, 0x0000, 0x4000, 0x294a, 0x94a5,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0012,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x2902, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000, 0x0000, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0x2529, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x094a, 0x0000,
+ 0x4a51, 0x0129, 0x5200, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x0012, 0x0000, 0x0000, 0xd6b4, 0x6b5a, 0x0012,
+ 0x8000, 0x0094, 0x0000, 0x94a4, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000,
+ 0x2935, 0x0001, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0900, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x04a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x04a5,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a40,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000, 0x0000, 0x2000,
+ 0x94a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5290, 0x004a, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9480, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x0004, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x94a4, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x6800, 0x35ad, 0x0009, 0x0000, 0xd000, 0x949a,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x0252, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x3400, 0x4000, 0x0003, 0x0680, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x5a00, 0x5203, 0x094a, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa520, 0x0094, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d0, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x4000, 0xad6b, 0xd6b5, 0x001a, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xad68, 0xd6b5,
+ 0x6b5a, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xd6b5, 0x035a, 0x35a0,
+ 0x5a00, 0x0003, 0x0000, 0x0000, 0x8000, 0x0006, 0x0000, 0xd000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x1b46, 0x8c63, 0xc631, 0x2318, 0x318d, 0x18c6, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x9488, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7,
+ 0xce73, 0xe739, 0x739c, 0x1084, 0x0842, 0x8421, 0x4210, 0x2124,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0x4a52, 0xa529, 0x5294,
+ 0x4212, 0x2108, 0xb5ad, 0x5ad6, 0x8423, 0x4210, 0x2108, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x324c, 0x9922, 0x5294, 0x294a, 0x54a5, 0xa652, 0xa524,
+ 0x5224, 0x4929, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x7108,
+ 0x4a40, 0x94a5, 0x5294, 0xc4ca, 0x6312, 0x2108, 0x1084, 0x0842,
+ 0x2931, 0x94a5, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x2900, 0x94a5, 0x0012, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x2900, 0x94a5, 0x4a52, 0x2529,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x494a, 0x9529,
+ 0x5202, 0x294a, 0x04a5, 0x39ce, 0x9ce7, 0x4e73, 0x294a, 0x73a5,
+ 0x0240, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x004a, 0x0000, 0x4a52, 0xa529, 0x5294,
+ 0x094a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001a,
+ 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
+ 0x318c, 0x90c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+ 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+ 0xb5a3, 0x5a36, 0x631b, 0xd18c, 0x6b5a, 0x8c63, 0xc631, 0x6318,
+ 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+ 0xc631, 0xad18, 0x31b5, 0x68c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+ 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xad68, 0x0001, 0x0000, 0x0000, 0x9ce7, 0xce73, 0xd6b9, 0x6b5a,
+ 0x35ad, 0x5a00, 0xad6b, 0x06b5, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd6b4, 0x001a, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0xb652, 0x24d6, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x0004, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4200, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x094a, 0x0000, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7380,
+ 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+ 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
+ 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739,
+ 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7,
+ 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c,
+ 0x0000
+ }
+};
diff --git a/lib/unictype/bidi_test.c b/lib/unictype/bidi_test.c
new file mode 100644
index 0000000..72887bb
--- /dev/null
+++ b/lib/unictype/bidi_test.c
@@ -0,0 +1,27 @@
+/* Bidi categories of Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_bidi_category (ucs4_t uc, int category)
+{
+ return (uc_bidi_category (uc) == category);
+}
diff --git a/lib/unictype/bitmap.h b/lib/unictype/bitmap.h
new file mode 100644
index 0000000..280b298
--- /dev/null
+++ b/lib/unictype/bitmap.h
@@ -0,0 +1,47 @@
+/* Three-level bitmap lookup.
+ Copyright (C) 2000-2002, 2005-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
+
+ 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/>. */
+
+static inline int bitmap_lookup (const void *table, ucs4_t uc);
+
+/* These values are currently hardcoded into gen-ctype.c. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+
+static inline int
+bitmap_lookup (const void *table, ucs4_t uc)
+{
+ unsigned int index1 = uc >> header_0;
+ if (index1 < ((const int *) table)[0])
+ {
+ int lookup1 = ((const int *) table)[1 + index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> header_2) & header_3;
+ int lookup2 = ((const short *) table)[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc >> 5) & header_4;
+ unsigned int lookup3 = ((const int *) table)[lookup2 + index3];
+
+ return (lookup3 >> (uc & 0x1f)) & 1;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/unictype/block_test.c b/lib/unictype/block_test.c
new file mode 100644
index 0000000..4005ad0
--- /dev/null
+++ b/lib/unictype/block_test.c
@@ -0,0 +1,31 @@
+/* Blocks of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_block (ucs4_t uc, const uc_block_t *block)
+{
+ if (block != NULL)
+ return ((ucs4_t) (uc - block->start) <= block->end - block->start);
+ else
+ return false;
+}
+
diff --git a/lib/unictype/blocks.c b/lib/unictype/blocks.c
new file mode 100644
index 0000000..a20bbce
--- /dev/null
+++ b/lib/unictype/blocks.c
@@ -0,0 +1,62 @@
+/* Blocks of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "blocks.h"
+
+const uc_block_t *
+uc_block (ucs4_t uc)
+{
+ unsigned int first_index;
+ unsigned int last_index;
+
+ if (uc < blocks_level1_threshold)
+ {
+ unsigned int index1 = uc >> blocks_level1_shift;
+ first_index = blocks_level1[2 * index1];
+ last_index = blocks_level1[2 * index1 + 1];
+ }
+ else
+ {
+ first_index = blocks_upper_first_index;
+ last_index = blocks_upper_last_index;
+ }
+ /* We know that the relevant blocks are blocks[i] with
+ first_index <= i < last_index. Now perform a binary search. */
+ while (first_index < last_index)
+ {
+ unsigned int mid_index = (first_index + last_index) / 2;
+ if (blocks[mid_index].end < uc)
+ first_index = mid_index + 1;
+ else if (uc < blocks[mid_index].start)
+ last_index = mid_index;
+ else
+ return &blocks[mid_index];
+ }
+ return NULL;
+}
+
+void
+uc_all_blocks (const uc_block_t **blocksp, size_t *countp)
+{
+ *blocksp = blocks;
+ *countp = sizeof (blocks) / sizeof (blocks[0]);
+}
diff --git a/lib/unictype/blocks.h b/lib/unictype/blocks.h
new file mode 100644
index 0000000..2585b58
--- /dev/null
+++ b/lib/unictype/blocks.h
@@ -0,0 +1,952 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Unicode blocks. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+static const uc_block_t blocks[] =
+{
+ { 0x0000, 0x007F, "Basic Latin" },
+ { 0x0080, 0x00FF, "Latin-1 Supplement" },
+ { 0x0100, 0x017F, "Latin Extended-A" },
+ { 0x0180, 0x024F, "Latin Extended-B" },
+ { 0x0250, 0x02AF, "IPA Extensions" },
+ { 0x02B0, 0x02FF, "Spacing Modifier Letters" },
+ { 0x0300, 0x036F, "Combining Diacritical Marks" },
+ { 0x0370, 0x03FF, "Greek and Coptic" },
+ { 0x0400, 0x04FF, "Cyrillic" },
+ { 0x0500, 0x052F, "Cyrillic Supplement" },
+ { 0x0530, 0x058F, "Armenian" },
+ { 0x0590, 0x05FF, "Hebrew" },
+ { 0x0600, 0x06FF, "Arabic" },
+ { 0x0700, 0x074F, "Syriac" },
+ { 0x0750, 0x077F, "Arabic Supplement" },
+ { 0x0780, 0x07BF, "Thaana" },
+ { 0x07C0, 0x07FF, "NKo" },
+ { 0x0900, 0x097F, "Devanagari" },
+ { 0x0980, 0x09FF, "Bengali" },
+ { 0x0A00, 0x0A7F, "Gurmukhi" },
+ { 0x0A80, 0x0AFF, "Gujarati" },
+ { 0x0B00, 0x0B7F, "Oriya" },
+ { 0x0B80, 0x0BFF, "Tamil" },
+ { 0x0C00, 0x0C7F, "Telugu" },
+ { 0x0C80, 0x0CFF, "Kannada" },
+ { 0x0D00, 0x0D7F, "Malayalam" },
+ { 0x0D80, 0x0DFF, "Sinhala" },
+ { 0x0E00, 0x0E7F, "Thai" },
+ { 0x0E80, 0x0EFF, "Lao" },
+ { 0x0F00, 0x0FFF, "Tibetan" },
+ { 0x1000, 0x109F, "Myanmar" },
+ { 0x10A0, 0x10FF, "Georgian" },
+ { 0x1100, 0x11FF, "Hangul Jamo" },
+ { 0x1200, 0x137F, "Ethiopic" },
+ { 0x1380, 0x139F, "Ethiopic Supplement" },
+ { 0x13A0, 0x13FF, "Cherokee" },
+ { 0x1400, 0x167F, "Unified Canadian Aboriginal Syllabics" },
+ { 0x1680, 0x169F, "Ogham" },
+ { 0x16A0, 0x16FF, "Runic" },
+ { 0x1700, 0x171F, "Tagalog" },
+ { 0x1720, 0x173F, "Hanunoo" },
+ { 0x1740, 0x175F, "Buhid" },
+ { 0x1760, 0x177F, "Tagbanwa" },
+ { 0x1780, 0x17FF, "Khmer" },
+ { 0x1800, 0x18AF, "Mongolian" },
+ { 0x1900, 0x194F, "Limbu" },
+ { 0x1950, 0x197F, "Tai Le" },
+ { 0x1980, 0x19DF, "New Tai Lue" },
+ { 0x19E0, 0x19FF, "Khmer Symbols" },
+ { 0x1A00, 0x1A1F, "Buginese" },
+ { 0x1B00, 0x1B7F, "Balinese" },
+ { 0x1B80, 0x1BBF, "Sundanese" },
+ { 0x1C00, 0x1C4F, "Lepcha" },
+ { 0x1C50, 0x1C7F, "Ol Chiki" },
+ { 0x1D00, 0x1D7F, "Phonetic Extensions" },
+ { 0x1D80, 0x1DBF, "Phonetic Extensions Supplement" },
+ { 0x1DC0, 0x1DFF, "Combining Diacritical Marks Supplement" },
+ { 0x1E00, 0x1EFF, "Latin Extended Additional" },
+ { 0x1F00, 0x1FFF, "Greek Extended" },
+ { 0x2000, 0x206F, "General Punctuation" },
+ { 0x2070, 0x209F, "Superscripts and Subscripts" },
+ { 0x20A0, 0x20CF, "Currency Symbols" },
+ { 0x20D0, 0x20FF, "Combining Diacritical Marks for Symbols" },
+ { 0x2100, 0x214F, "Letterlike Symbols" },
+ { 0x2150, 0x218F, "Number Forms" },
+ { 0x2190, 0x21FF, "Arrows" },
+ { 0x2200, 0x22FF, "Mathematical Operators" },
+ { 0x2300, 0x23FF, "Miscellaneous Technical" },
+ { 0x2400, 0x243F, "Control Pictures" },
+ { 0x2440, 0x245F, "Optical Character Recognition" },
+ { 0x2460, 0x24FF, "Enclosed Alphanumerics" },
+ { 0x2500, 0x257F, "Box Drawing" },
+ { 0x2580, 0x259F, "Block Elements" },
+ { 0x25A0, 0x25FF, "Geometric Shapes" },
+ { 0x2600, 0x26FF, "Miscellaneous Symbols" },
+ { 0x2700, 0x27BF, "Dingbats" },
+ { 0x27C0, 0x27EF, "Miscellaneous Mathematical Symbols-A" },
+ { 0x27F0, 0x27FF, "Supplemental Arrows-A" },
+ { 0x2800, 0x28FF, "Braille Patterns" },
+ { 0x2900, 0x297F, "Supplemental Arrows-B" },
+ { 0x2980, 0x29FF, "Miscellaneous Mathematical Symbols-B" },
+ { 0x2A00, 0x2AFF, "Supplemental Mathematical Operators" },
+ { 0x2B00, 0x2BFF, "Miscellaneous Symbols and Arrows" },
+ { 0x2C00, 0x2C5F, "Glagolitic" },
+ { 0x2C60, 0x2C7F, "Latin Extended-C" },
+ { 0x2C80, 0x2CFF, "Coptic" },
+ { 0x2D00, 0x2D2F, "Georgian Supplement" },
+ { 0x2D30, 0x2D7F, "Tifinagh" },
+ { 0x2D80, 0x2DDF, "Ethiopic Extended" },
+ { 0x2DE0, 0x2DFF, "Cyrillic Extended-A" },
+ { 0x2E00, 0x2E7F, "Supplemental Punctuation" },
+ { 0x2E80, 0x2EFF, "CJK Radicals Supplement" },
+ { 0x2F00, 0x2FDF, "Kangxi Radicals" },
+ { 0x2FF0, 0x2FFF, "Ideographic Description Characters" },
+ { 0x3000, 0x303F, "CJK Symbols and Punctuation" },
+ { 0x3040, 0x309F, "Hiragana" },
+ { 0x30A0, 0x30FF, "Katakana" },
+ { 0x3100, 0x312F, "Bopomofo" },
+ { 0x3130, 0x318F, "Hangul Compatibility Jamo" },
+ { 0x3190, 0x319F, "Kanbun" },
+ { 0x31A0, 0x31BF, "Bopomofo Extended" },
+ { 0x31C0, 0x31EF, "CJK Strokes" },
+ { 0x31F0, 0x31FF, "Katakana Phonetic Extensions" },
+ { 0x3200, 0x32FF, "Enclosed CJK Letters and Months" },
+ { 0x3300, 0x33FF, "CJK Compatibility" },
+ { 0x3400, 0x4DBF, "CJK Unified Ideographs Extension A" },
+ { 0x4DC0, 0x4DFF, "Yijing Hexagram Symbols" },
+ { 0x4E00, 0x9FFF, "CJK Unified Ideographs" },
+ { 0xA000, 0xA48F, "Yi Syllables" },
+ { 0xA490, 0xA4CF, "Yi Radicals" },
+ { 0xA500, 0xA63F, "Vai" },
+ { 0xA640, 0xA69F, "Cyrillic Extended-B" },
+ { 0xA700, 0xA71F, "Modifier Tone Letters" },
+ { 0xA720, 0xA7FF, "Latin Extended-D" },
+ { 0xA800, 0xA82F, "Syloti Nagri" },
+ { 0xA840, 0xA87F, "Phags-pa" },
+ { 0xA880, 0xA8DF, "Saurashtra" },
+ { 0xA900, 0xA92F, "Kayah Li" },
+ { 0xA930, 0xA95F, "Rejang" },
+ { 0xAA00, 0xAA5F, "Cham" },
+ { 0xAC00, 0xD7AF, "Hangul Syllables" },
+ { 0xD800, 0xDB7F, "High Surrogates" },
+ { 0xDB80, 0xDBFF, "High Private Use Surrogates" },
+ { 0xDC00, 0xDFFF, "Low Surrogates" },
+ { 0xE000, 0xF8FF, "Private Use Area" },
+ { 0xF900, 0xFAFF, "CJK Compatibility Ideographs" },
+ { 0xFB00, 0xFB4F, "Alphabetic Presentation Forms" },
+ { 0xFB50, 0xFDFF, "Arabic Presentation Forms-A" },
+ { 0xFE00, 0xFE0F, "Variation Selectors" },
+ { 0xFE10, 0xFE1F, "Vertical Forms" },
+ { 0xFE20, 0xFE2F, "Combining Half Marks" },
+ { 0xFE30, 0xFE4F, "CJK Compatibility Forms" },
+ { 0xFE50, 0xFE6F, "Small Form Variants" },
+ { 0xFE70, 0xFEFF, "Arabic Presentation Forms-B" },
+ { 0xFF00, 0xFFEF, "Halfwidth and Fullwidth Forms" },
+ { 0xFFF0, 0xFFFF, "Specials" },
+ { 0x10000, 0x1007F, "Linear B Syllabary" },
+ { 0x10080, 0x100FF, "Linear B Ideograms" },
+ { 0x10100, 0x1013F, "Aegean Numbers" },
+ { 0x10140, 0x1018F, "Ancient Greek Numbers" },
+ { 0x10190, 0x101CF, "Ancient Symbols" },
+ { 0x101D0, 0x101FF, "Phaistos Disc" },
+ { 0x10280, 0x1029F, "Lycian" },
+ { 0x102A0, 0x102DF, "Carian" },
+ { 0x10300, 0x1032F, "Old Italic" },
+ { 0x10330, 0x1034F, "Gothic" },
+ { 0x10380, 0x1039F, "Ugaritic" },
+ { 0x103A0, 0x103DF, "Old Persian" },
+ { 0x10400, 0x1044F, "Deseret" },
+ { 0x10450, 0x1047F, "Shavian" },
+ { 0x10480, 0x104AF, "Osmanya" },
+ { 0x10800, 0x1083F, "Cypriot Syllabary" },
+ { 0x10900, 0x1091F, "Phoenician" },
+ { 0x10920, 0x1093F, "Lydian" },
+ { 0x10A00, 0x10A5F, "Kharoshthi" },
+ { 0x12000, 0x123FF, "Cuneiform" },
+ { 0x12400, 0x1247F, "Cuneiform Numbers and Punctuation" },
+ { 0x1D000, 0x1D0FF, "Byzantine Musical Symbols" },
+ { 0x1D100, 0x1D1FF, "Musical Symbols" },
+ { 0x1D200, 0x1D24F, "Ancient Greek Musical Notation" },
+ { 0x1D300, 0x1D35F, "Tai Xuan Jing Symbols" },
+ { 0x1D360, 0x1D37F, "Counting Rod Numerals" },
+ { 0x1D400, 0x1D7FF, "Mathematical Alphanumeric Symbols" },
+ { 0x1F000, 0x1F02F, "Mahjong Tiles" },
+ { 0x1F030, 0x1F09F, "Domino Tiles" },
+ { 0x20000, 0x2A6DF, "CJK Unified Ideographs Extension B" },
+ { 0x2F800, 0x2FA1F, "CJK Compatibility Ideographs Supplement" },
+ { 0xE0000, 0xE007F, "Tags" },
+ { 0xE0100, 0xE01EF, "Variation Selectors Supplement" },
+ { 0xF0000, 0xFFFFF, "Supplementary Private Use Area-A" },
+ { 0x100000, 0x10FFFF, "Supplementary Private Use Area-B" }
+};
+#define blocks_level1_shift 8
+#define blocks_level1_threshold 0x30000
+static const uint8_t blocks_level1[768 * 2] =
+{
+ 0, 2,
+ 2, 4,
+ 3, 6,
+ 6, 8,
+ 8, 9,
+ 9, 12,
+ 12, 13,
+ 13, 17,
+ 17, 17,
+ 17, 19,
+ 19, 21,
+ 21, 23,
+ 23, 25,
+ 25, 27,
+ 27, 29,
+ 29, 30,
+ 30, 32,
+ 32, 33,
+ 33, 34,
+ 33, 36,
+ 36, 37,
+ 36, 37,
+ 36, 39,
+ 39, 44,
+ 44, 45,
+ 45, 49,
+ 49, 50,
+ 50, 52,
+ 52, 54,
+ 54, 57,
+ 57, 58,
+ 58, 59,
+ 59, 63,
+ 63, 66,
+ 66, 67,
+ 67, 68,
+ 68, 71,
+ 71, 74,
+ 74, 75,
+ 75, 78,
+ 78, 79,
+ 79, 81,
+ 81, 82,
+ 82, 83,
+ 83, 86,
+ 86, 90,
+ 90, 92,
+ 92, 94,
+ 94, 97,
+ 97, 103,
+ 103, 104,
+ 104, 105,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 106,
+ 105, 107,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 107, 108,
+ 108, 109,
+ 108, 109,
+ 108, 109,
+ 108, 109,
+ 108, 110,
+ 110, 111,
+ 110, 112,
+ 112, 114,
+ 114, 117,
+ 117, 119,
+ 119, 120,
+ 120, 120,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 120, 121,
+ 121, 122,
+ 121, 122,
+ 121, 122,
+ 121, 123,
+ 123, 124,
+ 123, 124,
+ 123, 124,
+ 123, 124,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 124, 125,
+ 125, 126,
+ 125, 126,
+ 126, 128,
+ 127, 128,
+ 127, 128,
+ 128, 134,
+ 134, 136,
+ 136, 138,
+ 138, 142,
+ 142, 144,
+ 144, 148,
+ 148, 151,
+ 151, 151,
+ 151, 151,
+ 151, 151,
+ 151, 152,
+ 152, 154,
+ 154, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 155,
+ 155, 156,
+ 155, 156,
+ 155, 156,
+ 155, 156,
+ 156, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 157,
+ 157, 158,
+ 158, 159,
+ 159, 160,
+ 160, 162,
+ 162, 163,
+ 162, 163,
+ 162, 163,
+ 162, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 163,
+ 163, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 165,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 165, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 166,
+ 166, 167,
+ 166, 167,
+ 166, 167,
+ 167, 167,
+ 167, 167,
+ 167, 167,
+ 167, 167,
+ 167, 167
+};
+#define blocks_upper_first_index 167
+#define blocks_upper_last_index 171
diff --git a/lib/unictype/categ_C.c b/lib/unictype/categ_C.c
new file mode 100644
index 0000000..d14d8c0
--- /dev/null
+++ b/lib/unictype/categ_C.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_C table. */
+#include "categ_C.h"
+
+const uc_general_category_t UC_CATEGORY_C =
+ { UC_CATEGORY_MASK_C, 0, { &u_categ_C } };
diff --git a/lib/unictype/categ_C.h b/lib/unictype/categ_C.h
new file mode 100644
index 0000000..0209db2
--- /dev/null
+++ b/lib/unictype/categ_C.h
@@ -0,0 +1,890 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[5 << 7];
+ /*unsigned*/ int level3[52 << 4];
+ }
+u_categ_C =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 512,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384
+ },
+ {
+ 18 + 640 * sizeof (short) / sizeof (int) + 0,
+ 18 + 640 * sizeof (short) / sizeof (int) + 16,
+ 18 + 640 * sizeof (short) / sizeof (int) + 32,
+ 18 + 640 * sizeof (short) / sizeof (int) + 48,
+ 18 + 640 * sizeof (short) / sizeof (int) + 64,
+ 18 + 640 * sizeof (short) / sizeof (int) + 80,
+ 18 + 640 * sizeof (short) / sizeof (int) + 96,
+ 18 + 640 * sizeof (short) / sizeof (int) + 112,
+ 18 + 640 * sizeof (short) / sizeof (int) + 128,
+ 18 + 640 * sizeof (short) / sizeof (int) + 144,
+ 18 + 640 * sizeof (short) / sizeof (int) + 160,
+ 18 + 640 * sizeof (short) / sizeof (int) + 176,
+ 18 + 640 * sizeof (short) / sizeof (int) + 192,
+ 18 + 640 * sizeof (short) / sizeof (int) + 208,
+ 18 + 640 * sizeof (short) / sizeof (int) + 224,
+ 18 + 640 * sizeof (short) / sizeof (int) + 240,
+ 18 + 640 * sizeof (short) / sizeof (int) + 256,
+ 18 + 640 * sizeof (short) / sizeof (int) + 272,
+ 18 + 640 * sizeof (short) / sizeof (int) + 288,
+ 18 + 640 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 336,
+ 18 + 640 * sizeof (short) / sizeof (int) + 352,
+ 18 + 640 * sizeof (short) / sizeof (int) + 368,
+ 18 + 640 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 432,
+ 18 + 640 * sizeof (short) / sizeof (int) + 448,
+ 18 + 640 * sizeof (short) / sizeof (int) + 464,
+ 18 + 640 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 496,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 528,
+ 18 + 640 * sizeof (short) / sizeof (int) + 544,
+ 18 + 640 * sizeof (short) / sizeof (int) + 560,
+ 18 + 640 * sizeof (short) / sizeof (int) + 576,
+ 18 + 640 * sizeof (short) / sizeof (int) + 592,
+ 18 + 640 * sizeof (short) / sizeof (int) + 608,
+ 18 + 640 * sizeof (short) / sizeof (int) + 624,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 640,
+ 18 + 640 * sizeof (short) / sizeof (int) + 656,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 672,
+ 18 + 640 * sizeof (short) / sizeof (int) + 688,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 704,
+ 18 + 640 * sizeof (short) / sizeof (int) + 720,
+ 18 + 640 * sizeof (short) / sizeof (int) + 736,
+ 18 + 640 * sizeof (short) / sizeof (int) + 752,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 768,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 784,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 800,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 816,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512
+ },
+ {
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFFF, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x83000000,
+ 0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+ 0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
+ 0x3000003F, 0x00000001, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x0000C000, 0x00000000, 0x00001800, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
+ 0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+ 0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
+ 0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
+ 0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+ 0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+ 0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
+ 0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
+ 0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+ 0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
+ 0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
+ 0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+ 0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+ 0x00000000, 0x00000000, 0x7C000000, 0x00000000,
+ 0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
+ 0x00000000, 0x00000000, 0xC280C200, 0x00000000,
+ 0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
+ 0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+ 0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFF800000,
+ 0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
+ 0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
+ 0x00000000, 0x00300000, 0xC0000000, 0xFC00FC00,
+ 0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
+ 0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
+ 0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
+ 0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
+ 0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x07000000, 0x00001C00, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
+ 0x00000000, 0x00200000, 0x10300020, 0x80230000,
+ 0x0000F800, 0x00007C00, 0x00000000, 0x000CFFFF,
+ 0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+ 0x00000000, 0x00000000, 0x00070000, 0x00000000,
+ 0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+ 0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
+ 0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00008000, 0x80000000, 0xC0010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
+ 0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+ 0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+ 0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+ 0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
+ 0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+ 0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+ 0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+ 0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
+ 0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
+ 0x00030000, 0x00000000, 0xFFFFFF00, 0xC000FFFF,
+ 0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
+ 0x00000000, 0x00000000, 0x00000000, 0xE0000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0xE3030303, 0xCFFF8080,
+ 0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+ 0x00000078, 0x00700000, 0x00000000, 0x00000000,
+ 0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
+ 0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
+ 0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF8000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFF0FFF8,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x00000000, 0x00000180, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFC0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00200000, 0x00000000,
+ 0x20000000, 0x1400219B, 0x00000010, 0x00000000,
+ 0x20201840, 0x84000000, 0x000203A0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000C0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00003000, 0x00000000,
+ 0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+ 0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000
+ }
+};
diff --git a/lib/unictype/categ_Cc.c b/lib/unictype/categ_Cc.c
new file mode 100644
index 0000000..572f88f
--- /dev/null
+++ b/lib/unictype/categ_Cc.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Cc table. */
+#include "categ_Cc.h"
+
+const uc_general_category_t UC_CATEGORY_Cc =
+ { UC_CATEGORY_MASK_Cc, 0, { &u_categ_Cc } };
diff --git a/lib/unictype/categ_Cc.h b/lib/unictype/categ_Cc.h
new file mode 100644
index 0000000..17104cd
--- /dev/null
+++ b/lib/unictype/categ_Cc.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_categ_Cc =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Cf.c b/lib/unictype/categ_Cf.c
new file mode 100644
index 0000000..19cd842
--- /dev/null
+++ b/lib/unictype/categ_Cf.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Cf table. */
+#include "categ_Cf.h"
+
+const uc_general_category_t UC_CATEGORY_Cf =
+ { UC_CATEGORY_MASK_Cf, 0, { &u_categ_Cf } };
diff --git a/lib/unictype/categ_Cf.h b/lib/unictype/categ_Cf.h
new file mode 100644
index 0000000..5b67fb4
--- /dev/null
+++ b/lib/unictype/categ_Cf.h
@@ -0,0 +1,452 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_categ_Cf =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00300000, 0x00000000, 0x00000000,
+ 0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0E000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Cn.c b/lib/unictype/categ_Cn.c
new file mode 100644
index 0000000..131704a
--- /dev/null
+++ b/lib/unictype/categ_Cn.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Cn table. */
+#include "categ_Cn.h"
+
+const uc_general_category_t UC_CATEGORY_Cn =
+ { UC_CATEGORY_MASK_Cn, 0, { &u_categ_Cn } };
diff --git a/lib/unictype/categ_Cn.h b/lib/unictype/categ_Cn.h
new file mode 100644
index 0000000..d828804
--- /dev/null
+++ b/lib/unictype/categ_Cn.h
@@ -0,0 +1,1014 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[6 << 7];
+ /*unsigned*/ int level3[51 << 4];
+ }
+u_categ_Cn =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 512,
+ 18 * sizeof (int) / sizeof (short) + 640,
+ 18 * sizeof (int) / sizeof (short) + 640
+ },
+ {
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 0,
+ 18 + 768 * sizeof (short) / sizeof (int) + 16,
+ 18 + 768 * sizeof (short) / sizeof (int) + 32,
+ 18 + 768 * sizeof (short) / sizeof (int) + 48,
+ 18 + 768 * sizeof (short) / sizeof (int) + 64,
+ 18 + 768 * sizeof (short) / sizeof (int) + 80,
+ 18 + 768 * sizeof (short) / sizeof (int) + 96,
+ 18 + 768 * sizeof (short) / sizeof (int) + 112,
+ 18 + 768 * sizeof (short) / sizeof (int) + 128,
+ 18 + 768 * sizeof (short) / sizeof (int) + 144,
+ 18 + 768 * sizeof (short) / sizeof (int) + 160,
+ 18 + 768 * sizeof (short) / sizeof (int) + 176,
+ 18 + 768 * sizeof (short) / sizeof (int) + 192,
+ 18 + 768 * sizeof (short) / sizeof (int) + 208,
+ 18 + 768 * sizeof (short) / sizeof (int) + 224,
+ 18 + 768 * sizeof (short) / sizeof (int) + 240,
+ 18 + 768 * sizeof (short) / sizeof (int) + 256,
+ 18 + 768 * sizeof (short) / sizeof (int) + 272,
+ 18 + 768 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 304,
+ 18 + 768 * sizeof (short) / sizeof (int) + 320,
+ 18 + 768 * sizeof (short) / sizeof (int) + 336,
+ 18 + 768 * sizeof (short) / sizeof (int) + 352,
+ 18 + 768 * sizeof (short) / sizeof (int) + 368,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 416,
+ 18 + 768 * sizeof (short) / sizeof (int) + 432,
+ 18 + 768 * sizeof (short) / sizeof (int) + 448,
+ 18 + 768 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 496,
+ 18 + 768 * sizeof (short) / sizeof (int) + 512,
+ 18 + 768 * sizeof (short) / sizeof (int) + 528,
+ 18 + 768 * sizeof (short) / sizeof (int) + 544,
+ 18 + 768 * sizeof (short) / sizeof (int) + 560,
+ 18 + 768 * sizeof (short) / sizeof (int) + 576,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 608,
+ 18 + 768 * sizeof (short) / sizeof (int) + 624,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 640,
+ 18 + 768 * sizeof (short) / sizeof (int) + 656,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 672,
+ 18 + 768 * sizeof (short) / sizeof (int) + 688,
+ 18 + 768 * sizeof (short) / sizeof (int) + 704,
+ 18 + 768 * sizeof (short) / sizeof (int) + 720,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 736,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 752,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 768,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 784,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ 18 + 768 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 768 * sizeof (short) / sizeof (int) + 800
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x83000000,
+ 0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+ 0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
+ 0x30000030, 0x00000001, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00001800, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
+ 0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+ 0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
+ 0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
+ 0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+ 0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+ 0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
+ 0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
+ 0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+ 0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
+ 0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
+ 0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+ 0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+ 0x00000000, 0x00000000, 0x7C000000, 0x00000000,
+ 0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
+ 0x00000000, 0x00000000, 0xC280C200, 0x00000000,
+ 0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
+ 0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+ 0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFF800000,
+ 0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
+ 0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
+ 0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
+ 0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
+ 0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
+ 0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
+ 0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x07000000, 0x00001C00, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
+ 0x00000000, 0x00200000, 0x10300020, 0x80230000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
+ 0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+ 0x00000000, 0x00000000, 0x00070000, 0x00000000,
+ 0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+ 0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
+ 0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00008000, 0x80000000, 0xC0010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
+ 0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+ 0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+ 0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+ 0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
+ 0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+ 0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+ 0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+ 0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
+ 0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
+ 0x00030000, 0x00000000, 0xFFFFFF00, 0xC000FFFF,
+ 0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
+ 0x00000000, 0x00000000, 0x00000000, 0x60000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0xE3030303, 0xC1FF8080,
+ 0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+ 0x00000078, 0x00700000, 0x00000000, 0x00000000,
+ 0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
+ 0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
+ 0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF8000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFF0FFF8,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x00000000, 0x00000180, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFC0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00200000, 0x00000000,
+ 0x20000000, 0x1400219B, 0x00000010, 0x00000000,
+ 0x20201840, 0x84000000, 0x000203A0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000C0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00003000, 0x00000000,
+ 0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+ 0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xC0000000
+ }
+};
diff --git a/lib/unictype/categ_Co.c b/lib/unictype/categ_Co.c
new file mode 100644
index 0000000..70b5ac7
--- /dev/null
+++ b/lib/unictype/categ_Co.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Co table. */
+#include "categ_Co.h"
+
+const uc_general_category_t UC_CATEGORY_Co =
+ { UC_CATEGORY_MASK_Co, 0, { &u_categ_Co } };
diff --git a/lib/unictype/categ_Co.h b/lib/unictype/categ_Co.h
new file mode 100644
index 0000000..a5b8ce9
--- /dev/null
+++ b/lib/unictype/categ_Co.h
@@ -0,0 +1,310 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_categ_Co =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 32
+ },
+ {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/categ_Cs.c b/lib/unictype/categ_Cs.c
new file mode 100644
index 0000000..a3f5cea
--- /dev/null
+++ b/lib/unictype/categ_Cs.c
@@ -0,0 +1,30 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static bool
+uc_is_category_Cs (ucs4_t uc)
+{
+ return (uc >= 0xd800 && uc < 0xe000);
+}
+
+const uc_general_category_t UC_CATEGORY_Cs =
+ { UC_CATEGORY_MASK_Cs, 1, { &uc_is_category_Cs } };
diff --git a/lib/unictype/categ_Cs.h b/lib/unictype/categ_Cs.h
new file mode 100644
index 0000000..99b37d1
--- /dev/null
+++ b/lib/unictype/categ_Cs.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_categ_Cs =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/categ_L.c b/lib/unictype/categ_L.c
new file mode 100644
index 0000000..b62b2a2
--- /dev/null
+++ b/lib/unictype/categ_L.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_L table. */
+#include "categ_L.h"
+
+const uc_general_category_t UC_CATEGORY_L =
+ { UC_CATEGORY_MASK_L, 0, { &u_categ_L } };
diff --git a/lib/unictype/categ_L.h b/lib/unictype/categ_L.h
new file mode 100644
index 0000000..558b594
--- /dev/null
+++ b/lib/unictype/categ_L.h
@@ -0,0 +1,580 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[42 << 4];
+ }
+u_categ_L =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000000, 0x3CDF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
+ 0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+ 0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
+ 0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0x00000000,
+ 0x00000018, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000060, 0x183E0000, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000003FD, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x0000FF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Ll.c b/lib/unictype/categ_Ll.c
new file mode 100644
index 0000000..37da1a0
--- /dev/null
+++ b/lib/unictype/categ_Ll.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Ll table. */
+#include "categ_Ll.h"
+
+const uc_general_category_t UC_CATEGORY_Ll =
+ { UC_CATEGORY_MASK_Ll, 0, { &u_categ_Ll } };
diff --git a/lib/unictype/categ_Ll.h b/lib/unictype/categ_Ll.h
new file mode 100644
index 0000000..dd8194b
--- /dev/null
+++ b/lib/unictype/categ_Ll.h
@@ -0,0 +1,335 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[13 << 4];
+ }
+u_categ_Ll =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0x80000000, 0xFF7FFFFF,
+ 0xAAAAAAAA, 0x55AAAAAA, 0xAAAAAB55, 0xD4AAAAAA,
+ 0x4E243129, 0xE6512D2A, 0xB5555240, 0xAA29AAAA,
+ 0xAAAAAAAA, 0x93FAAAAA, 0xFFFFAA85, 0xFFFFFFFF,
+ 0xFFEFFFFF, 0x0000FFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x388A0000,
+ 0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
+ 0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
+ 0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
+ 0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00000FFF, 0x00000000, 0xFEFFFFFC,
+ 0x07FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
+ 0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0008C400, 0x32108000, 0x000043C0, 0x00000000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x1FDA1562,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
+ 0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+ 0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FEAAAA,
+ 0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFF00, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFC000000, 0x000FFFFF, 0xFFDFC000, 0x000000FF,
+ 0x0FFFFFFC, 0xEBC00000, 0x0000FFEF, 0xFFFFFC00,
+ 0xC000000F, 0x00FFFFFF, 0xFFFC0000, 0x00000FFF,
+ 0xFFFFFFC0, 0xFC000000, 0x000FFFFF, 0xFFFFC000,
+ 0x000000FF, 0x0FFFFFFC, 0xFFC00000, 0x0000FFFF,
+ 0xFFFFFC00, 0x0000003F, 0xF7FFFFFC, 0xF0000003,
+ 0x0FDFFFFF, 0xFFC00000, 0x003F7FFF, 0xFFFF0000,
+ 0x0000FDFF, 0xFFFFFC00, 0x00000BF7, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Lm.c b/lib/unictype/categ_Lm.c
new file mode 100644
index 0000000..296e53d
--- /dev/null
+++ b/lib/unictype/categ_Lm.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Lm table. */
+#include "categ_Lm.h"
+
+const uc_general_category_t UC_CATEGORY_Lm =
+ { UC_CATEGORY_MASK_Lm, 0, { &u_categ_Lm } };
diff --git a/lib/unictype/categ_Lm.h b/lib/unictype/categ_Lm.h
new file mode 100644
index 0000000..a781af6
--- /dev/null
+++ b/lib/unictype/categ_Lm.h
@@ -0,0 +1,216 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[16 << 4];
+ }
+u_categ_Lm =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 160,
+ 2 + 128 * sizeof (short) / sizeof (int) + 176,
+ 2 + 128 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 240
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000000, 0x04100000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x02000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000060,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x04300000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x3F000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x01000003,
+ 0xF8000000, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00008000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x083E0000, 0x00000000, 0x00000000,
+ 0x60000000, 0x00000000, 0x00000000, 0x70000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00200000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00001000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0x00000000, 0x00000000, 0x00010000,
+ 0x00000100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Lo.c b/lib/unictype/categ_Lo.c
new file mode 100644
index 0000000..5c7781e
--- /dev/null
+++ b/lib/unictype/categ_Lo.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Lo table. */
+#include "categ_Lo.h"
+
+const uc_general_category_t UC_CATEGORY_Lo =
+ { UC_CATEGORY_MASK_Lo, 0, { &u_categ_Lo } };
diff --git a/lib/unictype/categ_Lo.h b/lib/unictype/categ_Lo.h
new file mode 100644
index 0000000..75bec14
--- /dev/null
+++ b/lib/unictype/categ_Lo.h
@@ -0,0 +1,568 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[39 << 4];
+ }
+u_categ_Lo =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x08000000, 0x0000000F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00100000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FE, 0xFFFEC000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C000,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x000007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8040003,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x000DFFFF, 0x0000003F, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x3000001F, 0x00000000,
+ 0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+ 0x00004003, 0x00000000, 0xFFFF0000, 0x07FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFF7, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
+ 0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x00FFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x01E00000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0x0000003F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x00000040, 0x10000000, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0x807FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x87FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF0FFF, 0x00000C00, 0x00000000, 0x00004000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0000000, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFEFFC0,
+ 0x3FFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000003FD, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x0000FF0F, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Lt.c b/lib/unictype/categ_Lt.c
new file mode 100644
index 0000000..485acf6
--- /dev/null
+++ b/lib/unictype/categ_Lt.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Lt table. */
+#include "categ_Lt.h"
+
+const uc_general_category_t UC_CATEGORY_Lt =
+ { UC_CATEGORY_MASK_Lt, 0, { &u_categ_Lt } };
diff --git a/lib/unictype/categ_Lt.h b/lib/unictype/categ_Lt.h
new file mode 100644
index 0000000..227ff2a
--- /dev/null
+++ b/lib/unictype/categ_Lt.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_categ_Lt =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000920, 0x00040000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF00FF00, 0x1000FF00, 0x00001000, 0x10000000
+ }
+};
diff --git a/lib/unictype/categ_Lu.c b/lib/unictype/categ_Lu.c
new file mode 100644
index 0000000..26faae2
--- /dev/null
+++ b/lib/unictype/categ_Lu.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Lu table. */
+#include "categ_Lu.h"
+
+const uc_general_category_t UC_CATEGORY_Lu =
+ { UC_CATEGORY_MASK_Lu, 0, { &u_categ_Lu } };
diff --git a/lib/unictype/categ_Lu.h b/lib/unictype/categ_Lu.h
new file mode 100644
index 0000000..9674e16
--- /dev/null
+++ b/lib/unictype/categ_Lu.h
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[12 << 4];
+ }
+u_categ_Lu =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x7F7FFFFF, 0x00000000,
+ 0x55555555, 0xAA555555, 0x555554AA, 0x2B555555,
+ 0xB1DBCED6, 0x11AED2D5, 0x4AAAA490, 0x55D25555,
+ 0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00450000,
+ 0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
+ 0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
+ 0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
+ 0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x55555555, 0x55555555, 0x55555555, 0x55555555,
+ 0x40155555, 0x55555555, 0x55555555, 0x55555555,
+ 0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
+ 0x00000000, 0x0F000000, 0x0F000F00, 0x0F001F00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E273884, 0xC00F3D50, 0x00000020, 0x00000000,
+ 0x00000008, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
+ 0x55555555, 0x55555555, 0x55555555, 0x00000005,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x55555555, 0x00001554,
+ 0x00555555, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+ 0x00000855, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000000FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FFFFFF, 0xFFF00000, 0x00003FFF, 0xFFFFFF00,
+ 0xD0000003, 0x003FDE64, 0xFFFF0000, 0x000003FF,
+ 0x1FDFE7B0, 0x7B000000, 0x0001FC5F, 0xFFFFF000,
+ 0x0000003F, 0x03FFFFFF, 0xFFF00000, 0x00003FFF,
+ 0xFFFFFF00, 0xF0000003, 0x003FFFFF, 0xFFFF0000,
+ 0x000003FF, 0xFFFFFF00, 0x00000001, 0x07FFFFFC,
+ 0xF0000000, 0x001FFFFF, 0xFFC00000, 0x00007FFF,
+ 0xFFFF0000, 0x000001FF, 0x00000400, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_M.c b/lib/unictype/categ_M.c
new file mode 100644
index 0000000..ab7f149
--- /dev/null
+++ b/lib/unictype/categ_M.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_M table. */
+#include "categ_M.h"
+
+const uc_general_category_t UC_CATEGORY_M =
+ { UC_CATEGORY_MASK_M, 0, { &u_categ_M } };
diff --git a/lib/unictype/categ_M.h b/lib/unictype/categ_M.h
new file mode 100644
index 0000000..6e0b377
--- /dev/null
+++ b/lib/unictype/categ_M.h
@@ -0,0 +1,528 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_categ_M =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+ 0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
+ 0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x00C0399F, 0x0000000C,
+ 0x00000004, 0xC0000000, 0x00803DC7, 0x00000000,
+ 0x0000000E, 0xC0000000, 0x00603DDF, 0x0000000C,
+ 0x0000000C, 0xD0000000, 0x00603DDF, 0x0000000C,
+ 0x0000000C, 0xC0000000, 0x00803DDF, 0x0000000C,
+ 0x0000000C, 0x00000000, 0xFF5F8400, 0x000C0000,
+ 0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
+ 0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0xFFC00000, 0x200FFFFF, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0FFF0FFF, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
+ 0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
+ 0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x06000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30078000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x000000F8, 0x00000000, 0x00000000,
+ 0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/categ_Mc.c b/lib/unictype/categ_Mc.c
new file mode 100644
index 0000000..c54a565
--- /dev/null
+++ b/lib/unictype/categ_Mc.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Mc table. */
+#include "categ_Mc.h"
+
+const uc_general_category_t UC_CATEGORY_Mc =
+ { UC_CATEGORY_MASK_Mc, 0, { &u_categ_Mc } };
diff --git a/lib/unictype/categ_Mc.h b/lib/unictype/categ_Mc.h
new file mode 100644
index 0000000..dfddaa7
--- /dev/null
+++ b/lib/unictype/categ_Mc.h
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[12 << 4];
+ }
+u_categ_Mc =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000008, 0xC0000000, 0x00001E01, 0x00000000,
+ 0x0000000C, 0xC0000000, 0x00801981, 0x00000000,
+ 0x00000008, 0xC0000000, 0x00000001, 0x00000000,
+ 0x00000008, 0xC0000000, 0x00001A01, 0x00000000,
+ 0x0000000C, 0x40000000, 0x00801981, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00801DC6, 0x00000000,
+ 0x0000000E, 0x00000000, 0x0000001E, 0x00000000,
+ 0x0000000C, 0x40000000, 0x00600D9F, 0x00000000,
+ 0x0000000C, 0xC0000000, 0x00801DC1, 0x00000000,
+ 0x0000000C, 0x00000000, 0xFF038000, 0x000C0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x19021800, 0x00C00000, 0x00003F9C,
+ 0x00009F98, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0400000, 0x000001BF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x01FB0E78, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
+ 0x0E000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000010, 0xE8200000, 0x0000001B, 0x00000000,
+ 0x00000004, 0x000004C2, 0x00000000, 0x00000000,
+ 0x00000000, 0x00300FF0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000098, 0x00000000, 0x00000000,
+ 0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
+ 0x00000000, 0x00000000, 0x000C0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00198000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0007E060,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Me.c b/lib/unictype/categ_Me.c
new file mode 100644
index 0000000..00e2a01
--- /dev/null
+++ b/lib/unictype/categ_Me.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Me table. */
+#include "categ_Me.h"
+
+const uc_general_category_t UC_CATEGORY_Me =
+ { UC_CATEGORY_MASK_Me, 0, { &u_categ_Me } };
diff --git a/lib/unictype/categ_Me.h b/lib/unictype/categ_Me.h
new file mode 100644
index 0000000..7bf325a
--- /dev/null
+++ b/lib/unictype/categ_Me.h
@@ -0,0 +1,168 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[4 << 4];
+ }
+u_categ_Me =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000300, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x40000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xE0000000, 0x0000001D,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00070000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Mn.c b/lib/unictype/categ_Mn.c
new file mode 100644
index 0000000..5990ee5
--- /dev/null
+++ b/lib/unictype/categ_Mn.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Mn table. */
+#include "categ_Mn.h"
+
+const uc_general_category_t UC_CATEGORY_Mn =
+ { UC_CATEGORY_MASK_Mn, 0, { &u_categ_Mn } };
diff --git a/lib/unictype/categ_Mn.h b/lib/unictype/categ_Mn.h
new file mode 100644
index 0000000..576279a
--- /dev/null
+++ b/lib/unictype/categ_Mn.h
@@ -0,0 +1,528 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_categ_Mn =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000000F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
+ 0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+ 0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
+ 0x00000006, 0x10000000, 0x00023986, 0x00230000,
+ 0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
+ 0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
+ 0x00000004, 0x00000000, 0x00002001, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
+ 0x00000000, 0x90000000, 0x00003040, 0x0000000C,
+ 0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
+ 0x00000000, 0x00000000, 0x005C0400, 0x00000000,
+ 0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+ 0x00002064, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0x3F800000, 0x200FFE40, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0E040187, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+ 0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x06000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30008000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x00000060, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000380,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/categ_N.c b/lib/unictype/categ_N.c
new file mode 100644
index 0000000..5aa9248
--- /dev/null
+++ b/lib/unictype/categ_N.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_N table. */
+#include "categ_N.h"
+
+const uc_general_category_t UC_CATEGORY_N =
+ { UC_CATEGORY_MASK_N, 0, { &u_categ_N } };
diff --git a/lib/unictype/categ_N.h b/lib/unictype/categ_N.h
new file mode 100644
index 0000000..9eb241d
--- /dev/null
+++ b/lib/unictype/categ_N.h
@@ -0,0 +1,403 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[30 << 4];
+ }
+u_categ_N =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x720C0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F0FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x003FFFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FFFFE00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0001C000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF03FF,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F10000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
+ 0x000001E7, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000080, 0x070003FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003C0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0xFFFE0000, 0x00000000,
+ 0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFF80, 0x000FFFFF, 0xFFFFFFFF, 0x01FFFFFF,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000000F, 0x00000402, 0x00000000,
+ 0x00000000, 0x00000000, 0x003E0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03C00000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/categ_Nd.c b/lib/unictype/categ_Nd.c
new file mode 100644
index 0000000..f5ad322
--- /dev/null
+++ b/lib/unictype/categ_Nd.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Nd table. */
+#include "categ_Nd.h"
+
+const uc_general_category_t UC_CATEGORY_Nd =
+ { UC_CATEGORY_MASK_Nd, 0, { &u_categ_Nd } };
diff --git a/lib/unictype/categ_Nd.h b/lib/unictype/categ_Nd.h
new file mode 100644
index 0000000..986cec7
--- /dev/null
+++ b/lib/unictype/categ_Nd.h
@@ -0,0 +1,351 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[17 << 4];
+ }
+u_categ_Nd =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/categ_Nl.c b/lib/unictype/categ_Nl.c
new file mode 100644
index 0000000..6fe9370
--- /dev/null
+++ b/lib/unictype/categ_Nl.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Nl table. */
+#include "categ_Nl.h"
+
+const uc_general_category_t UC_CATEGORY_Nl =
+ { UC_CATEGORY_MASK_Nl, 0, { &u_categ_Nl } };
diff --git a/lib/unictype/categ_Nl.h b/lib/unictype/categ_Nl.h
new file mode 100644
index 0000000..9b4ce70
--- /dev/null
+++ b/lib/unictype/categ_Nl.h
@@ -0,0 +1,307 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[6 << 4];
+ }
+u_categ_Nl =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0001C000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x000001E7, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000080, 0x070003FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000402, 0x00000000,
+ 0x00000000, 0x00000000, 0x003E0000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_No.c b/lib/unictype/categ_No.c
new file mode 100644
index 0000000..055177f
--- /dev/null
+++ b/lib/unictype/categ_No.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_No table. */
+#include "categ_No.h"
+
+const uc_general_category_t UC_CATEGORY_No =
+ { UC_CATEGORY_MASK_No, 0, { &u_categ_No } };
diff --git a/lib/unictype/categ_No.h b/lib/unictype/categ_No.h
new file mode 100644
index 0000000..b6ae929
--- /dev/null
+++ b/lib/unictype/categ_No.h
@@ -0,0 +1,355 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[18 << 4];
+ }
+u_categ_No =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x720C0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00070000,
+ 0x00000000, 0x00000000, 0x00000000, 0x7F000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x003F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000FFC00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FFFFE00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F10000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFF80000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003C0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0xFFFE0000, 0x00000000,
+ 0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFF80, 0x000FFFFF, 0x00000000, 0x01E00000,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03C00000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_P.c b/lib/unictype/categ_P.c
new file mode 100644
index 0000000..e1dbbcd
--- /dev/null
+++ b/lib/unictype/categ_P.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_P table. */
+#include "categ_P.h"
+
+const uc_general_category_t UC_CATEGORY_P =
+ { UC_CATEGORY_MASK_P, 0, { &u_categ_P } };
diff --git a/lib/unictype/categ_P.h b/lib/unictype/categ_P.h
new file mode 100644
index 0000000..474eda9
--- /dev/null
+++ b/lib/unictype/categ_P.h
@@ -0,0 +1,403 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[30 << 4];
+ }
+u_categ_P =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x8C00F7EE, 0xB8000001, 0x28000000,
+ 0x00000000, 0x88800802, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x40000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000000,
+ 0x00000600, 0x40000000, 0x00000049, 0x00180000,
+ 0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
+ 0x00000000, 0x00000000, 0x00100000, 0x00000000,
+ 0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00100000,
+ 0x00000000, 0x00000000, 0x0C008000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000001FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00006000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00003800,
+ 0x00000000, 0x00600000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07700000, 0x00000000,
+ 0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000030, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
+ 0x00006000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000600, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x003FFF00,
+ 0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01FFFFF8, 0x00000000, 0x0F000000, 0x30000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFF3FF0E, 0x20010000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+ 0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+ 0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0xFFFF0000, 0xFFF7FFFF, 0x00000D0B,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x8C00F7EE, 0xB8000001, 0xA8000000, 0x0000003F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000003, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Pc.c b/lib/unictype/categ_Pc.c
new file mode 100644
index 0000000..06558ad
--- /dev/null
+++ b/lib/unictype/categ_Pc.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Pc table. */
+#include "categ_Pc.h"
+
+const uc_general_category_t UC_CATEGORY_Pc =
+ { UC_CATEGORY_MASK_Pc, 0, { &u_categ_Pc } };
diff --git a/lib/unictype/categ_Pc.h b/lib/unictype/categ_Pc.h
new file mode 100644
index 0000000..e2e1136
--- /dev/null
+++ b/lib/unictype/categ_Pc.h
@@ -0,0 +1,164 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_categ_Pc =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32
+ },
+ {
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0x00100001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00180000, 0x0000E000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Pd.c b/lib/unictype/categ_Pd.c
new file mode 100644
index 0000000..96516d5
--- /dev/null
+++ b/lib/unictype/categ_Pd.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Pd table. */
+#include "categ_Pd.h"
+
+const uc_general_category_t UC_CATEGORY_Pd =
+ { UC_CATEGORY_MASK_Pd, 0, { &u_categ_Pd } };
diff --git a/lib/unictype/categ_Pd.h b/lib/unictype/categ_Pd.h
new file mode 100644
index 0000000..9183094
--- /dev/null
+++ b/lib/unictype/categ_Pd.h
@@ -0,0 +1,180 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_categ_Pd =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96
+ },
+ {
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000400, 0x40000000, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x04800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x10000000, 0x00010000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00060000, 0x01000000, 0x00000008,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Pe.c b/lib/unictype/categ_Pe.c
new file mode 100644
index 0000000..5315532
--- /dev/null
+++ b/lib/unictype/categ_Pe.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Pe table. */
+#include "categ_Pe.h"
+
+const uc_general_category_t UC_CATEGORY_Pe =
+ { UC_CATEGORY_MASK_Pe, 0, { &u_categ_Pe } };
diff --git a/lib/unictype/categ_Pe.h b/lib/unictype/categ_Pe.h
new file mode 100644
index 0000000..a85dcae
--- /dev/null
+++ b/lib/unictype/categ_Pe.h
@@ -0,0 +1,196 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[11 << 4];
+ }
+u_categ_Pe =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 144,
+ 2 + 128 * sizeof (short) / sizeof (int) + 160
+ },
+ {
+ 0x00000000, 0x00000200, 0x20000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x28000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x10000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x40000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000400, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x002AAA00,
+ 0x00000000, 0x00000000, 0x00000040, 0x0000AA80,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01555550, 0x00000000, 0x0A000000, 0x20000000,
+ 0x00000000, 0x000002A8, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xCAA2AA00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01000000, 0x55400000, 0x54000115, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000200, 0x20000000, 0x20000000, 0x00000009,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Pf.c b/lib/unictype/categ_Pf.c
new file mode 100644
index 0000000..435e19f
--- /dev/null
+++ b/lib/unictype/categ_Pf.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Pf table. */
+#include "categ_Pf.h"
+
+const uc_general_category_t UC_CATEGORY_Pf =
+ { UC_CATEGORY_MASK_Pf, 0, { &u_categ_Pf } };
diff --git a/lib/unictype/categ_Pf.h b/lib/unictype/categ_Pf.h
new file mode 100644
index 0000000..74aa60a
--- /dev/null
+++ b/lib/unictype/categ_Pf.h
@@ -0,0 +1,164 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_categ_Pf =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x08000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x22000000, 0x04000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x20002428, 0x00000002, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Pi.c b/lib/unictype/categ_Pi.c
new file mode 100644
index 0000000..9ea1de1
--- /dev/null
+++ b/lib/unictype/categ_Pi.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Pi table. */
+#include "categ_Pi.h"
+
+const uc_general_category_t UC_CATEGORY_Pi =
+ { UC_CATEGORY_MASK_Pi, 0, { &u_categ_Pi } };
diff --git a/lib/unictype/categ_Pi.h b/lib/unictype/categ_Pi.h
new file mode 100644
index 0000000..7b8caf1
--- /dev/null
+++ b/lib/unictype/categ_Pi.h
@@ -0,0 +1,164 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_categ_Pi =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x99000000, 0x02000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x10001214, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Po.c b/lib/unictype/categ_Po.c
new file mode 100644
index 0000000..4c2e2cb
--- /dev/null
+++ b/lib/unictype/categ_Po.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Po table. */
+#include "categ_Po.h"
+
+const uc_general_category_t UC_CATEGORY_Po =
+ { UC_CATEGORY_MASK_Po, 0, { &u_categ_Po } };
diff --git a/lib/unictype/categ_Po.h b/lib/unictype/categ_Po.h
new file mode 100644
index 0000000..37d7fb0
--- /dev/null
+++ b/lib/unictype/categ_Po.h
@@ -0,0 +1,387 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_categ_Po =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x8C00D4EE, 0x10000001, 0x00000000,
+ 0x00000000, 0x80800002, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x40000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000000,
+ 0x00000200, 0x00000000, 0x00000049, 0x00180000,
+ 0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
+ 0x00000000, 0x00000000, 0x00100000, 0x00000000,
+ 0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00100000,
+ 0x00000000, 0x00000000, 0x0C008000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0007FFF0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000001FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00006000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00003800,
+ 0x00000000, 0x00600000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07700000, 0x00000000,
+ 0x000007BF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000030, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00C00000, 0x79FF00FF, 0x7FEBFF8E, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xCB7FC9C3, 0x00017C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000E, 0x20000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+ 0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+ 0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x027F0000, 0x00010000, 0x80F71E60, 0x00000D03,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x8C00D4EE, 0x10000001, 0x00000000, 0x00000032,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000003, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Ps.c b/lib/unictype/categ_Ps.c
new file mode 100644
index 0000000..4e10039
--- /dev/null
+++ b/lib/unictype/categ_Ps.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Ps table. */
+#include "categ_Ps.h"
+
+const uc_general_category_t UC_CATEGORY_Ps =
+ { UC_CATEGORY_MASK_Ps, 0, { &u_categ_Ps } };
diff --git a/lib/unictype/categ_Ps.h b/lib/unictype/categ_Ps.h
new file mode 100644
index 0000000..25d10cf
--- /dev/null
+++ b/lib/unictype/categ_Ps.h
@@ -0,0 +1,196 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[11 << 4];
+ }
+u_categ_Ps =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 144,
+ 2 + 128 * sizeof (short) / sizeof (int) + 160
+ },
+ {
+ 0x00000000, 0x00000100, 0x08000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x14000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x08000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x44000000, 0x00000000, 0x00000020, 0x20000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00155500,
+ 0x00000000, 0x00000000, 0x00000020, 0x00005540,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00AAAAA8, 0x00000000, 0x05000000, 0x10000000,
+ 0x00000000, 0x00000154, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x25515500, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00800000, 0xAAA00000, 0x2A00008A, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000100, 0x08000000, 0x88000000, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_S.c b/lib/unictype/categ_S.c
new file mode 100644
index 0000000..4eb51f5
--- /dev/null
+++ b/lib/unictype/categ_S.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_S table. */
+#include "categ_S.h"
+
+const uc_general_category_t UC_CATEGORY_S =
+ { UC_CATEGORY_MASK_S, 0, { &u_categ_S } };
diff --git a/lib/unictype/categ_S.h b/lib/unictype/categ_S.h
new file mode 100644
index 0000000..e363838
--- /dev/null
+++ b/lib/unictype/categ_S.h
@@ -0,0 +1,427 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[36 << 4];
+ }
+u_categ_S =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ 3 + 256 * sizeof (short) / sizeof (int) + 480,
+ 3 + 256 * sizeof (short) / sizeof (int) + 496,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 512,
+ 3 + 256 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 544,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x70000810, 0x40000000, 0x50000001,
+ 0x00000000, 0x0153D3FC, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00200000,
+ 0x00000030, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000C9C0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x60000200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x040C0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00060000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000001,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FF007FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0x00000000, 0x00000000, 0x00040010, 0x1C000000,
+ 0x00001C00, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xC1D0037B, 0x0C0042AF, 0x0000BC1F, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFF9FF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0x00000000,
+ 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
+ 0xFF100000, 0x7FFEFFFF, 0xFFFF179F, 0xFFFF003F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFE000007, 0xFFFFFFFF, 0xF0FFFFFF, 0xCFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000007E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0x000C0010, 0xC0C00001, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
+ 0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
+ 0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000600, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000F00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000274,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x70000810, 0x40000000, 0x50000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30007F7F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000004, 0xFF800000, 0x00000000, 0xFE000000,
+ 0x0FFF03FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00001C1F,
+ 0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000002, 0x08000000,
+ 0x00200000, 0x00200000, 0x00008000, 0x00008000,
+ 0x00000200, 0x00000200, 0x00000008, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Sc.c b/lib/unictype/categ_Sc.c
new file mode 100644
index 0000000..171d5b8
--- /dev/null
+++ b/lib/unictype/categ_Sc.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Sc table. */
+#include "categ_Sc.h"
+
+const uc_general_category_t UC_CATEGORY_Sc =
+ { UC_CATEGORY_MASK_Sc, 0, { &u_categ_Sc } };
diff --git a/lib/unictype/categ_Sc.h b/lib/unictype/categ_Sc.h
new file mode 100644
index 0000000..c6690f1
--- /dev/null
+++ b/lib/unictype/categ_Sc.h
@@ -0,0 +1,188 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_categ_Sc =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128
+ },
+ {
+ 0x00000000, 0x00000010, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000003C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000063
+ }
+};
diff --git a/lib/unictype/categ_Sk.c b/lib/unictype/categ_Sk.c
new file mode 100644
index 0000000..5f4d84e
--- /dev/null
+++ b/lib/unictype/categ_Sk.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Sk table. */
+#include "categ_Sk.h"
+
+const uc_general_category_t UC_CATEGORY_Sk =
+ { UC_CATEGORY_MASK_Sk, 0, { &u_categ_Sk } };
diff --git a/lib/unictype/categ_Sk.h b/lib/unictype/categ_Sk.h
new file mode 100644
index 0000000..dc75597
--- /dev/null
+++ b/lib/unictype/categ_Sk.h
@@ -0,0 +1,176 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[6 << 4];
+ }
+u_categ_Sk =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80
+ },
+ {
+ 0x00000000, 0x00000000, 0x40000000, 0x00000001,
+ 0x00000000, 0x01108100, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00200000,
+ 0x00000030, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000600, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000008
+ }
+};
diff --git a/lib/unictype/categ_Sm.c b/lib/unictype/categ_Sm.c
new file mode 100644
index 0000000..158823f
--- /dev/null
+++ b/lib/unictype/categ_Sm.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Sm table. */
+#include "categ_Sm.h"
+
+const uc_general_category_t UC_CATEGORY_Sm =
+ { UC_CATEGORY_MASK_Sm, 0, { &u_categ_Sm } };
diff --git a/lib/unictype/categ_Sm.h b/lib/unictype/categ_Sm.h
new file mode 100644
index 0000000..ffb7cb3
--- /dev/null
+++ b/lib/unictype/categ_Sm.h
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[12 << 4];
+ }
+u_categ_Sm =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x70000800, 0x00000000, 0x50000000,
+ 0x00000000, 0x00021000, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00400000,
+ 0x000001C0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00040010, 0x1C000000,
+ 0x00001C00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000081F, 0x00000000,
+ 0x0C1F0000, 0x00004049, 0x0014C000, 0xFFF00000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000F00, 0x00000003, 0x00000000, 0x10000000,
+ 0xF8000000, 0x000FFFFF, 0xF0000000, 0x00000003,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00800000, 0x00000002, 0xFF000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00008000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF179F, 0xFFFF003F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFE000007, 0xFFFFFFFF, 0xF0FFFFFF, 0xCFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFFFF0000, 0x00001F9F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000074,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x70000800, 0x00000000, 0x50000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00001E04,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000002, 0x08000000,
+ 0x00200000, 0x00200000, 0x00008000, 0x00008000,
+ 0x00000200, 0x00000200, 0x00000008, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_So.c b/lib/unictype/categ_So.c
new file mode 100644
index 0000000..a1f688b
--- /dev/null
+++ b/lib/unictype/categ_So.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_So table. */
+#include "categ_So.h"
+
+const uc_general_category_t UC_CATEGORY_So =
+ { UC_CATEGORY_MASK_So, 0, { &u_categ_So } };
diff --git a/lib/unictype/categ_So.h b/lib/unictype/categ_So.h
new file mode 100644
index 0000000..f0fa49f
--- /dev/null
+++ b/lib/unictype/categ_So.h
@@ -0,0 +1,403 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[30 << 4];
+ }
+u_categ_So =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x004142C0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000C000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x60000200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x04000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x05F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00060000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000001,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FF007FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC1D0037B, 0x0C0042AF, 0x0000B400, 0x00000000,
+ 0xF3E00000, 0xFFFFBFB6, 0xFFEB3FFF, 0x000FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFF0FF, 0xFFFFF9FC, 0xFFFFFFFF, 0xEFFFFFFF,
+ 0x07FFFFFF, 0xFFF00000, 0x0FFFFFFF, 0x000000FC,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0x00000000,
+ 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFF7FFFFF, 0xFFFFFFFD, 0x00FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF7FFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
+ 0xFF100000, 0x7FFEFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000FFFF, 0x001F0060, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000007E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0x000C0010, 0xC0C00001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
+ 0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
+ 0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000F00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30006110,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000004, 0xFF800000, 0x00000000, 0xFE000000,
+ 0x0FFF03FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00001C1F,
+ 0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Z.c b/lib/unictype/categ_Z.c
new file mode 100644
index 0000000..eb187d6
--- /dev/null
+++ b/lib/unictype/categ_Z.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Z table. */
+#include "categ_Z.h"
+
+const uc_general_category_t UC_CATEGORY_Z =
+ { UC_CATEGORY_MASK_Z, 0, { &u_categ_Z } };
diff --git a/lib/unictype/categ_Z.h b/lib/unictype/categ_Z.h
new file mode 100644
index 0000000..fa41dd6
--- /dev/null
+++ b/lib/unictype/categ_Z.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_categ_Z =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000007FF, 0x00008300, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Zl.c b/lib/unictype/categ_Zl.c
new file mode 100644
index 0000000..4a6e3df
--- /dev/null
+++ b/lib/unictype/categ_Zl.c
@@ -0,0 +1,30 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static bool
+uc_is_category_Zl (ucs4_t uc)
+{
+ return (uc == 0x2028);
+}
+
+const uc_general_category_t UC_CATEGORY_Zl =
+ { UC_CATEGORY_MASK_Zl, 1, { &uc_is_category_Zl } };
diff --git a/lib/unictype/categ_Zl.h b/lib/unictype/categ_Zl.h
new file mode 100644
index 0000000..1ddb007
--- /dev/null
+++ b/lib/unictype/categ_Zl.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_categ_Zl =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000100, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Zp.c b/lib/unictype/categ_Zp.c
new file mode 100644
index 0000000..23f682c
--- /dev/null
+++ b/lib/unictype/categ_Zp.c
@@ -0,0 +1,30 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static bool
+uc_is_category_Zp (ucs4_t uc)
+{
+ return (uc == 0x2029);
+}
+
+const uc_general_category_t UC_CATEGORY_Zp =
+ { UC_CATEGORY_MASK_Zp, 1, { &uc_is_category_Zp } };
diff --git a/lib/unictype/categ_Zp.h b/lib/unictype/categ_Zp.h
new file mode 100644
index 0000000..3ee4da9
--- /dev/null
+++ b/lib/unictype/categ_Zp.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_categ_Zp =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_Zs.c b/lib/unictype/categ_Zs.c
new file mode 100644
index 0000000..c997157
--- /dev/null
+++ b/lib/unictype/categ_Zs.c
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_categ_Zs table. */
+#include "categ_Zs.h"
+
+const uc_general_category_t UC_CATEGORY_Zs =
+ { UC_CATEGORY_MASK_Zs, 0, { &u_categ_Zs } };
diff --git a/lib/unictype/categ_Zs.h b/lib/unictype/categ_Zs.h
new file mode 100644
index 0000000..7dbf342
--- /dev/null
+++ b/lib/unictype/categ_Zs.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_categ_Zs =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000007FF, 0x00008000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/categ_and.c b/lib/unictype/categ_and.c
new file mode 100644
index 0000000..2101f94
--- /dev/null
+++ b/lib/unictype/categ_and.c
@@ -0,0 +1,45 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+uc_general_category_t
+uc_general_category_and (uc_general_category_t category1,
+ uc_general_category_t category2)
+{
+ uint32_t bitmask;
+ uc_general_category_t result;
+
+ bitmask = category1.bitmask & category2.bitmask;
+
+ if (bitmask == category1.bitmask)
+ return category1;
+
+ if (bitmask == category2.bitmask)
+ return category2;
+
+ if (bitmask == 0)
+ return _UC_CATEGORY_NONE;
+
+ result.bitmask = bitmask;
+ result.generic = 1;
+ result.lookup.lookup_fn = &uc_is_general_category_withtable;
+ return result;
+}
diff --git a/lib/unictype/categ_and_not.c b/lib/unictype/categ_and_not.c
new file mode 100644
index 0000000..6cc2759
--- /dev/null
+++ b/lib/unictype/categ_and_not.c
@@ -0,0 +1,42 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+uc_general_category_t
+uc_general_category_and_not (uc_general_category_t category1,
+ uc_general_category_t category2)
+{
+ uint32_t bitmask;
+ uc_general_category_t result;
+
+ bitmask = category1.bitmask & ~category2.bitmask;
+
+ if (bitmask == category1.bitmask)
+ return category1;
+
+ if (bitmask == 0)
+ return _UC_CATEGORY_NONE;
+
+ result.bitmask = bitmask;
+ result.generic = 1;
+ result.lookup.lookup_fn = &uc_is_general_category_withtable;
+ return result;
+}
diff --git a/lib/unictype/categ_byname.c b/lib/unictype/categ_byname.c
new file mode 100644
index 0000000..a175dd1
--- /dev/null
+++ b/lib/unictype/categ_byname.c
@@ -0,0 +1,105 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+uc_general_category_t
+uc_general_category_byname (const char *category_name)
+{
+ if (category_name[0] != '\0'
+ && (category_name[1] == '\0' || category_name[2] == '\0'))
+ switch (category_name[0])
+ {
+ case 'L':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_L;
+ case 'u': return UC_CATEGORY_Lu;
+ case 'l': return UC_CATEGORY_Ll;
+ case 't': return UC_CATEGORY_Lt;
+ case 'm': return UC_CATEGORY_Lm;
+ case 'o': return UC_CATEGORY_Lo;
+ }
+ break;
+ case 'M':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_M;
+ case 'n': return UC_CATEGORY_Mn;
+ case 'c': return UC_CATEGORY_Mc;
+ case 'e': return UC_CATEGORY_Me;
+ }
+ break;
+ case 'N':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_N;
+ case 'd': return UC_CATEGORY_Nd;
+ case 'l': return UC_CATEGORY_Nl;
+ case 'o': return UC_CATEGORY_No;
+ }
+ break;
+ case 'P':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_P;
+ case 'c': return UC_CATEGORY_Pc;
+ case 'd': return UC_CATEGORY_Pd;
+ case 's': return UC_CATEGORY_Ps;
+ case 'e': return UC_CATEGORY_Pe;
+ case 'i': return UC_CATEGORY_Pi;
+ case 'f': return UC_CATEGORY_Pf;
+ case 'o': return UC_CATEGORY_Po;
+ }
+ break;
+ case 'S':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_S;
+ case 'm': return UC_CATEGORY_Sm;
+ case 'c': return UC_CATEGORY_Sc;
+ case 'k': return UC_CATEGORY_Sk;
+ case 'o': return UC_CATEGORY_So;
+ }
+ break;
+ case 'Z':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_Z;
+ case 's': return UC_CATEGORY_Zs;
+ case 'l': return UC_CATEGORY_Zl;
+ case 'p': return UC_CATEGORY_Zp;
+ }
+ break;
+ case 'C':
+ switch (category_name[1])
+ {
+ case '\0': return UC_CATEGORY_C;
+ case 'c': return UC_CATEGORY_Cc;
+ case 'f': return UC_CATEGORY_Cf;
+ case 's': return UC_CATEGORY_Cs;
+ case 'o': return UC_CATEGORY_Co;
+ case 'n': return UC_CATEGORY_Cn;
+ }
+ break;
+ }
+ /* Invalid category name. */
+ return _UC_CATEGORY_NONE;
+}
diff --git a/lib/unictype/categ_name.c b/lib/unictype/categ_name.c
new file mode 100644
index 0000000..10421ef
--- /dev/null
+++ b/lib/unictype/categ_name.c
@@ -0,0 +1,77 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static const char u_category_name[30][3] =
+{
+ "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Mc", "Me", "Nd", "Nl",
+ "No", "Pc", "Pd", "Ps", "Pe", "Pi", "Pf", "Po", "Sm", "Sc",
+ "Sk", "So", "Zs", "Zl", "Zp", "Cc", "Cf", "Cs", "Co", "Cn"
+};
+
+const char *
+uc_general_category_name (uc_general_category_t category)
+{
+ uint32_t bitmask = category.bitmask;
+ /* bitmask should consist of a single bit. */
+ if (bitmask != 0)
+ {
+ if ((bitmask & (bitmask - 1)) == 0)
+ {
+ int bit;
+ /* Take log2 using a variant of Robert Harley's method.
+ Found by Bruno Haible 1996. */
+ uint32_t n = bitmask;
+ static const char ord2_tab[64] =
+ {
+ -1, 0, 1, 12, 2, 6, -1, 13, 3, -1, 7, -1, -1, -1, -1, 14,
+ 10, 4, -1, -1, 8, -1, -1, 25, -1, -1, -1, -1, -1, 21, 27, 15,
+ 31, 11, 5, -1, -1, -1, -1, -1, 9, -1, -1, 24, -1, -1, 20, 26,
+ 30, -1, -1, -1, -1, 23, -1, 19, 29, -1, 22, 18, 28, 17, 16, -1
+ };
+ n += n << 4;
+ n += n << 6;
+ n = (n << 16) - n;
+ bit = ord2_tab[n >> 26];
+
+ if (bit < sizeof (u_category_name) / sizeof (u_category_name[0]))
+ return u_category_name[bit];
+ }
+ else
+ {
+ if (bitmask == UC_CATEGORY_MASK_L)
+ return "L";
+ if (bitmask == UC_CATEGORY_MASK_M)
+ return "M";
+ if (bitmask == UC_CATEGORY_MASK_N)
+ return "N";
+ if (bitmask == UC_CATEGORY_MASK_P)
+ return "P";
+ if (bitmask == UC_CATEGORY_MASK_S)
+ return "S";
+ if (bitmask == UC_CATEGORY_MASK_Z)
+ return "Z";
+ if (bitmask == UC_CATEGORY_MASK_C)
+ return "C";
+ }
+ }
+ return NULL;
+}
diff --git a/lib/unictype/categ_none.c b/lib/unictype/categ_none.c
new file mode 100644
index 0000000..9e33ab9
--- /dev/null
+++ b/lib/unictype/categ_none.c
@@ -0,0 +1,30 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+static bool
+always_false (ucs4_t uc, uint32_t bitmask)
+{
+ return false;
+}
+
+const uc_general_category_t _UC_CATEGORY_NONE =
+ { 0, 1, { &always_false } };
diff --git a/lib/unictype/categ_of.c b/lib/unictype/categ_of.c
new file mode 100644
index 0000000..85b694f
--- /dev/null
+++ b/lib/unictype/categ_of.c
@@ -0,0 +1,81 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_category table. */
+#include "categ_of.h"
+
+static inline int
+lookup_withtable (ucs4_t uc)
+{
+ unsigned int index1 = uc >> category_header_0;
+ if (index1 < category_header_1)
+ {
+ int lookup1 = u_category.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> category_header_2) & category_header_3;
+ int lookup2 = u_category.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = ((uc & category_header_4) + lookup2) * 5;
+ /* level3 contains 5-bit values, packed into 16-bit words. */
+ unsigned int lookup3 =
+ ((u_category.level3[index3>>4]
+ | (u_category.level3[(index3>>4)+1] << 16))
+ >> (index3 % 16))
+ & 0x1f;
+
+ return lookup3;
+ }
+ }
+ return 29; /* = log2(UC_CATEGORY_MASK_Cn) */
+ }
+ return -1;
+}
+
+bool
+uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask)
+{
+ int bit = lookup_withtable (uc);
+
+ if (bit >= 0)
+ return ((bitmask >> bit) & 1);
+ else
+ return false;
+}
+
+uc_general_category_t
+uc_general_category (ucs4_t uc)
+{
+ int bit = lookup_withtable (uc);
+ uc_general_category_t result;
+
+ if (bit >= 0)
+ {
+ result.bitmask = 1 << bit;
+ result.generic = 1;
+ result.lookup.lookup_fn = &uc_is_general_category_withtable;
+ return result;
+ }
+ else
+ return _UC_CATEGORY_NONE;
+}
diff --git a/lib/unictype/categ_of.h b/lib/unictype/categ_of.h
new file mode 100644
index 0000000..3df7e0c
--- /dev/null
+++ b/lib/unictype/categ_of.h
@@ -0,0 +1,1088 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define category_header_0 16
+#define category_header_1 17
+#define category_header_2 7
+#define category_header_3 511
+#define category_header_4 127
+static const
+struct
+ {
+ int level1[17];
+ short level2[5 << 9];
+ unsigned short level3[148 * 40 + 1];
+ }
+u_category =
+{
+ {
+ 0, 512, 1024, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1536, 2048,
+ 2048
+ },
+ {
+ 0, 128, 256, 384, 512, 640, 768, 896,
+ 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920,
+ -1, -1, 2048, 2176, 2304, 2432, 2560, 2688,
+ 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712,
+ 3840, 3968, 4096, 4224, 4352, 4480, 4608, 4736,
+ 4864, 4992, 4992, 4992, 5120, 5248, 5376, 5504,
+ 5632, 5760, 5888, 6016, 6144, -1, 6272, 6400,
+ 6528, -1, 6656, 6784, 6912, 7040, 7168, 7296,
+ 7424, 7552, 7680, 7808, 7936, 7936, 8064, 8192,
+ 8320, 8448, 8576, 8704, 8832, 8960, 9088, 9216,
+ 8576, 8576, 7936, 9344, 7936, 7936, 9472, -1,
+ 9600, 9728, 9856, 9984, 10112, 10240, 8576, 10368,
+ 10496, 10624, 10752, 10880, 11008, 11136, 8576, 8576,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 11264, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 11392,
+ 11520, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 11648, 4992, 4992, 11776, 11904, 12032, 12160,
+ 12288, 12416, 12544, -1, 12672, -1, -1, -1,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 12800,
+ 12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
+ 12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 4992, 4992, 13184, 13312, 13440, 13568,
+ 4992, 4992, 13696, 13824, 13952, 14080, 14208, 14336,
+ 14464, 14592, 14720, 14848, -1, 14976, 15104, 15232,
+ 15360, 15488, -1, -1, -1, -1, -1, -1,
+ 15616, -1, 15744, -1, 15872, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, 4992, 4992, 4992, 4992, 4992, 16000, -1,
+ 16128, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 8576, 16256, 16384, 16512, 16640, -1, 16768, -1,
+ 16896, 17024, 17152, 17280, 17408, 17536, 17664, 17792,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 17920, 18048, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 18176, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, 4992, 4992, 4992, 18304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 18432, -1, 18560, 18688, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+ 13056, 13056, 13056, 13056, 13056, 13056, 13056, 18816
+ },
+ {
+ 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
+ 0x9ce7, 0xce73, 0xc636, 0x6338, 0xcd8c, 0x1945, 0x8c59, 0x2108,
+ 0x1084, 0x0842, 0x28c5, 0x8ca5, 0x0011, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x1680, 0x5d1d, 0x8434, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x2684, 0xcc9d,
+ 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
+ 0x9ce7, 0xce73, 0xce36, 0x6739, 0xb4ad, 0x2786, 0xa575, 0x2a55,
+ 0x4345, 0x548d, 0xa805, 0x8a94, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0090, 0x0000, 0x0800, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2190, 0x1084, 0x0842,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x0200, 0x0108, 0x1004, 0x0040, 0x0401, 0x4010, 0x2100, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x0008, 0x1004, 0x0840,
+ 0x8001, 0x0200, 0x0100, 0x1000, 0x0002, 0x0400, 0x0200, 0x2000,
+ 0x0084, 0x0040, 0x8020, 0x0200, 0x0100, 0x0084, 0x0002, 0x0001,
+ 0x4010, 0x2000, 0x0204, 0x0842, 0x1084, 0x4402, 0x2200, 0x1100,
+ 0x0040, 0x0401, 0x4010, 0x0100, 0x1004, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8801, 0x0200, 0x2000, 0x0080, 0x0802,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x4210, 0x2108, 0x1000, 0x0800, 0x0401, 0x0000, 0x2008, 0x0080,
+ 0x0802, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4240, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x5063, 0xe94a, 0x6318, 0x318c,
+ 0x18c6, 0x5063, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x8c63, 0x2831,
+ 0x94a5, 0x3a52, 0xa0e8, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x8020, 0x2830, 0xbd08, 0x108f, 0xec42,
+ 0xf7bd, 0x294e, 0x0088, 0x0e80, 0x003a, 0x0001, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x7400, 0x0000, 0x0000, 0x1000, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0042, 0x0021, 0x4200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8421, 0x8200, 0x0104, 0x1080, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
+ 0xd420, 0x4a52, 0xe729, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x0200, 0x2008, 0x0080, 0x0802, 0x0400, 0x4010, 0x0100, 0x1004,
+ 0x0840, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x7bd0, 0xbdef, 0xdef7, 0xef7b, 0x001d,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x7de8, 0x18c4, 0x8c63, 0x843d, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x3d08, 0xdeb2, 0xef7b, 0x94bd, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x2b0a, 0x94b1, 0x4a58, 0xbd2c, 0xdef7,
+ 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0xde90, 0xef7b, 0x9084, 0x7b18, 0xbdef, 0xdef7, 0xef7b,
+ 0x6b5a, 0xbbdd, 0x3294, 0x19c6, 0xad63, 0x94a5, 0x4a52, 0xa529,
+ 0xd894, 0x8c7b, 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1083, 0x0842, 0x8421, 0x5290,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xe94a, 0x2108, 0x1084,
+ 0x0842, 0x18c5, 0x2123, 0x1085, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x4912, 0xa529, 0x5294, 0x29f4, 0x94a5, 0xc652,
+ 0xa528, 0x5296, 0x210a, 0x2108, 0x1084, 0x0842, 0x4211, 0x256a,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0xd763, 0x10a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0xde94,
+ 0x2109, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x4842, 0xa529, 0x5294, 0x294a, 0xf485,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x2108, 0x1084, 0x0842, 0x4211,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x5290, 0x294a, 0x94a5, 0x4632, 0x318d, 0xde8e, 0xef7b,
+ 0x14bd, 0x0843, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x4a52, 0xc529, 0x6318,
+ 0xef4a, 0x94a4, 0x7a52, 0x84ef, 0x4210, 0x2108, 0x9484, 0x2312,
+ 0x0842, 0x8421, 0x4210, 0x9071, 0x7bde, 0xbdef, 0x4277, 0x2108,
+ 0x18bd, 0x09d3, 0x8421, 0x4210, 0x277a, 0x77a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x93a4,
+ 0x3bde, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x7a52, 0xa637, 0x6377,
+ 0xe90a, 0xf7bd, 0x7bde, 0xbd37, 0x4ef7, 0x2748, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0xcc84, 0x94a9, 0x4a52, 0xded5, 0xef7b,
+ 0x14bd, 0x09d3, 0x8421, 0xde90, 0x277b, 0x77a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
+ 0x09d2, 0x84e9, 0x5ef4, 0x31ba, 0x94a6, 0x7bde, 0xa52f, 0x52f7,
+ 0xef4a, 0xf4bd, 0x7bde, 0x9def, 0x4210, 0xe93a, 0xf7bd, 0x3bde,
+ 0x0842, 0x8421, 0x4210, 0x10a5, 0x4a42, 0xbdef, 0xdef7, 0xef7b,
+ 0x14bd, 0x09d3, 0x8421, 0x4210, 0x2748, 0x7484, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
+ 0x09d2, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x4a52, 0xc52f, 0x6374,
+ 0xef4a, 0xf7a4, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0xf67d, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x18bd, 0x09d3, 0x8421, 0x4210, 0x277a, 0x77a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
+ 0x09d2, 0x8421, 0x5ef4, 0x2988, 0x94a6, 0x7a52, 0xa637, 0x6377,
+ 0xef4a, 0xf7bd, 0x7bde, 0xbd31, 0x4ef7, 0x2748, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0xf495, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x17bd, 0x09d2, 0x8421, 0xde90, 0x213b, 0x13a4, 0x4842, 0x9def,
+ 0x4e90, 0x213a, 0x77bd, 0x7a42, 0x84ef, 0xde90, 0x213b, 0x1084,
+ 0x0842, 0x8421, 0xdef4, 0x31bb, 0x98c5, 0xbbde, 0xa631, 0x631b,
+ 0xef4a, 0xf7a4, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0xf7bd, 0x3bde,
+ 0x0842, 0x8421, 0x4210, 0xa94a, 0x6b5a, 0x75ad, 0xded6, 0xef7b,
+ 0x18dd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
+ 0x09d2, 0x8421, 0xdef4, 0x2949, 0x18c5, 0x7a63, 0xa529, 0x5297,
+ 0xef4a, 0xf7bd, 0x4bde, 0x84e9, 0xdef4, 0xef7b, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0xf7bd, 0x7bde, 0x4aef, 0xa529, 0xaa94,
+ 0x1bbd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
+ 0x09d2, 0x8421, 0x5ef4, 0x2988, 0x18c6, 0x7a63, 0xa631, 0x531b,
+ 0xef4a, 0xf7bd, 0x8dde, 0xbde9, 0xdef7, 0xe93b, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0xd6bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1bbd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0xdef4, 0x3189, 0x94a6, 0xba52, 0xa631, 0x631b,
+ 0xef4a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0x9484, 0x3bd2,
+ 0x0842, 0x8421, 0x4210, 0x294a, 0x54a5, 0xbdef, 0x4212, 0x2108,
+ 0x1bbd, 0x09d3, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
+ 0x4213, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x7484,
+ 0x0842, 0x8421, 0xd210, 0xef49, 0x1084, 0x0842, 0xbde9, 0xde97,
+ 0x377b, 0x94c6, 0x7a52, 0xc6e9, 0x6318, 0x318c, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0x1bbd, 0x7b13, 0xbdef, 0xdef7, 0xef7b,
+ 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x10a4,
+ 0x4a52, 0xa529, 0xde94, 0x9f7b, 0x1084, 0xc842, 0xa528, 0x5294,
+ 0x894a, 0x2108, 0x1084, 0x0842, 0xd8c5, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x909d, 0x7a4e, 0xa427, 0xde93, 0xef49, 0xf7bd, 0x084e, 0x9d21,
+ 0x4210, 0x2108, 0x109d, 0x49d2, 0xbd27, 0xd213, 0x2109, 0x10a4,
+ 0x4a52, 0xa529, 0x52f4, 0xef48, 0x1084, 0xfa42, 0xa5e8, 0x5294,
+ 0xef4a, 0x2108, 0x1084, 0x0842, 0x4ef5, 0xef48, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6a4, 0x631a, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6b5a, 0xa5ad,
+ 0x5ad4, 0xad6b, 0x2108, 0x1084, 0x0842, 0xa529, 0x5294, 0x294a,
+ 0x4b55, 0xb52d, 0xd734, 0x319c, 0x1084, 0x0842, 0x9d21, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0xef7a, 0x94bd, 0x4a52, 0xa529, 0x5294, 0x314a,
+ 0x94a5, 0x6252, 0x8429, 0xd210, 0xef7b, 0x94a5, 0x4a52, 0xbd29,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0xad7a, 0xd6b5, 0x6b5a, 0xb5a9, 0x5ad6,
+ 0xad7b, 0xc631, 0x7b18, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x6310, 0x294a, 0x94c5,
+ 0x4a52, 0xa629, 0x6314, 0x214a, 0x2108, 0x1084, 0x0842, 0x18c5,
+ 0x8c63, 0x1084, 0x8842, 0xa531, 0x4210, 0x2948, 0x1885, 0x0863,
+ 0xc631, 0x6318, 0x210c, 0x94a4, 0x0852, 0x8421, 0x4210, 0x2108,
+ 0x1484, 0x4a63, 0xc631, 0x6318, 0x310a, 0x2108, 0x1084, 0x0842,
+ 0xdef5, 0xad7b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0xbdef, 0xdef7,
+ 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x3890, 0xef7a,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0x277b, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x9084, 0x7bde, 0x84ef, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213,
+ 0xef48, 0x1084, 0x0842, 0xa4e9, 0x4213, 0xef48, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0xa421, 0x4213, 0xef48, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x13a4,
+ 0x4842, 0x84ef, 0x4210, 0xe908, 0x13a4, 0x4842, 0x84ef, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x84e9, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x13a4, 0x4842, 0x84ef,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0xde90, 0x2f7b, 0xc635, 0x6318,
+ 0x518c, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0xef7a,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0xdef6, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x7a42, 0xbdef, 0xdef7, 0xef7b,
+ 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2462, 0x1084, 0x0842, 0xbde9, 0xdef7, 0xef7b,
+ 0x1096, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0xe690, 0xef7a, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x1890, 0x4a63, 0xf7a9, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x213a, 0x9484, 0x7a52, 0xbdef,
+ 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x9484,
+ 0x6252, 0xbdec, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x9484, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x213a, 0x97a4, 0x7bd2, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0xb5a2, 0xa529, 0x5294, 0x318a, 0x18c6, 0x4c63, 0xa631, 0x5294,
+ 0x294a, 0x94a5, 0x6312, 0x311c, 0x49c6, 0xef4a, 0x2108, 0x1084,
+ 0x0842, 0xdef5, 0xef7b, 0x294a, 0x94a5, 0x4a52, 0xdef5, 0xef7b,
+ 0xc631, 0x2318, 0x318b, 0x52c6, 0xed8a, 0x2108, 0x1084, 0x0842,
+ 0xdef5, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x9084, 0x0841, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbd21, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xde90, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0xef7a, 0x14a5, 0x8c63, 0xc529, 0xd318, 0xef7b, 0x14c6,
+ 0x8c63, 0xa631, 0xd294, 0xef7b, 0xf7b5, 0x231e, 0x0842, 0x8421,
+ 0x4210, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0xef48, 0x1084, 0x7a42, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0xef7b, 0x18c6,
+ 0x8c63, 0xc631, 0x6318, 0x318c, 0x1086, 0x0842, 0xc621, 0xdef4,
+ 0xef7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0x8c7b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xc529,
+ 0xd318, 0x8c7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x94a5, 0x0862, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x4c52, 0xa529, 0x5314, 0x318c, 0x14c6, 0x0863, 0x8421, 0xd210,
+ 0xef7b, 0x2108, 0x1084, 0x0842, 0x18c5, 0x8c63, 0xd6b1, 0x6b5a,
+ 0xb5ad, 0x52d6, 0x294a, 0x94a5, 0x6b52, 0xb5ad, 0x5ad6, 0xef7b,
+ 0x18a5, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x94c4, 0x8a52, 0xa531, 0xde98, 0x213b, 0x2108,
+ 0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x8c62, 0xc631, 0x5318, 0x294a, 0x94a5,
+ 0x4c62, 0xbd29, 0x18f7, 0x8c63, 0x2108, 0x1084, 0x0842, 0xdef5,
+ 0x2109, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x6321, 0x318c, 0x8c46,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x3084, 0x18c6, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+ 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8463, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2308, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x3184, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+ 0xc631, 0x6318, 0x318c, 0x18c6, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0x297b,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x4200, 0x2108,
+ 0x1084, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
+ 0x8421, 0x4210, 0x0008, 0x0000, 0x0000, 0x8421, 0x4210, 0x00ef,
+ 0x0000, 0xef40, 0x8421, 0x4210, 0x0008, 0x0000, 0x0000, 0x8421,
+ 0x4210, 0x0008, 0x0000, 0x0000, 0x8421, 0x4210, 0x00ef, 0x0000,
+ 0xef40, 0x8421, 0x4210, 0x1d08, 0xd074, 0x0741, 0x8421, 0x4210,
+ 0x0008, 0x0000, 0x0000, 0x8421, 0x4210, 0x2108, 0x1084, 0xef42,
+ 0x8421, 0x4210, 0x4208, 0x2108, 0x1084, 0x8421, 0x4210, 0x4208,
+ 0x2108, 0x1084, 0x8421, 0x4210, 0x4208, 0x2108, 0x1084, 0x8421,
+ 0x7a10, 0x0008, 0x2000, 0xa068, 0x8694, 0x7a10, 0x0008, 0x2000,
+ 0xa528, 0x8421, 0x7bd0, 0x0008, 0xd000, 0xa529, 0x8421, 0x4210,
+ 0x0008, 0x0000, 0xa528, 0x87bd, 0x7a10, 0x0008, 0x2000, 0xed28,
+ 0x5ad6, 0xad6b, 0xd6b5, 0xad5a, 0xd6b5, 0x318c, 0x58c6, 0x0f8c,
+ 0xf7b6, 0x7b60, 0xc631, 0x6318, 0x178c, 0xad6b, 0xb6b5, 0xc631,
+ 0x6318, 0xf18c, 0x18c1, 0x5c63, 0xc62b, 0x9b28, 0x318b, 0x18c6,
+ 0x8c63, 0xca31, 0x62b8, 0x318c, 0x18c6, 0xb463, 0x6b5a, 0x7bad,
+ 0xbdef, 0xad6b, 0xd6b5, 0xf42a, 0x94ae, 0x4a52, 0x2949, 0x0b9b,
+ 0x294a, 0x94a5, 0x4a52, 0x2949, 0xeb9b, 0x8c63, 0x7a31, 0xbdef,
+ 0xdef7, 0xef7b, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+ 0x6739, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x39ce, 0x9ca7, 0x4a73,
+ 0xa529, 0x5294, 0x294a, 0xf7a5, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x82b5, 0x6b5a, 0xb505, 0x0006, 0x0840, 0x8000, 0x4150, 0x15ad,
+ 0x0000, 0xad40, 0xd6b5, 0x2a0a, 0xa0a8, 0x0002, 0x0d40, 0x0000,
+ 0x0810, 0x2421, 0x1ad4, 0x0002, 0x4a52, 0x4129, 0x2108, 0x5954,
+ 0xa86b, 0x77bd, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0x2529, 0x5210, 0xa94a, 0xdef7, 0xef7b, 0x4a52, 0x6b29, 0xb5ad,
+ 0x594a, 0xad6b, 0x56b2, 0xab59, 0xb5ac, 0x5ad6, 0xacab, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0x94ab, 0xcab5, 0x6b2a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0xa52a, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0xd6b5, 0x6b5a, 0x52ad, 0x594a, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd652, 0x6b5a, 0xb5ad, 0x5ab9, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x2ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x2956, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0x6b59, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x2ad6, 0x94a5, 0xd652, 0x6b5a,
+ 0xbdad, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0xded6,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0x5529, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0xa52a, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb595, 0x5ad6, 0xad6b, 0xd655, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0x52ad, 0x294a, 0x94a5,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0x956b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xef6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xef7b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6bd, 0x7b5a, 0xb5ad, 0x5ef6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdad6,
+ 0xaf6b, 0xd6b5, 0x7bde, 0xb5ed, 0x5ad6, 0xed6b, 0xd6bd, 0x6b5a,
+ 0xcdad, 0xd735, 0x735c, 0x35cd, 0x9cd7, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x7b55, 0xb5ef,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6bd,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0x4a52, 0x9b29, 0x5293, 0x2eca,
+ 0xef7b, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6529,
+ 0xcd73, 0xd735, 0x735c, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0xca52, 0x9ae6, 0xae6b, 0xe6b9, 0x6b9a, 0xb9ae, 0x9ae6, 0x4e6b,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0xcd94, 0x2735, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd94a, 0x949c,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6b29, 0x5295, 0x294a,
+ 0xef7b, 0xd6b5, 0x7b5a, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe800, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0xe842, 0x0020, 0x4200,
+ 0x0100, 0x1004, 0x0000, 0x803d, 0x4010, 0x2108, 0x1084, 0xef46,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+ 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+ 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x6a10,
+ 0xb5ad, 0xded6, 0xef7b, 0xf7bd, 0x7bde, 0x3def, 0x18c6, 0x8c55,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0xbdef, 0xdef7, 0xef7b, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x4842,
+ 0xbdef, 0xdef7, 0x1f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
+ 0xdef7, 0xef7b, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x1084,
+ 0x0842, 0x84e9, 0x4210, 0xe908, 0x1084, 0x0842, 0x84e9, 0x4210,
+ 0xe908, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x3e31, 0x60f8, 0xf18c, 0xf8c1, 0x8c60, 0xc631, 0x6318, 0x3164,
+ 0xf8b2, 0x8c60, 0x360f, 0x5cd7, 0xcd73, 0x18c5, 0x1c63, 0xf7b1,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5af6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdad6, 0xef7b,
+ 0xc636, 0x0758, 0xcd49, 0xd735, 0x735c, 0xd5cd, 0x5cda, 0xcd73,
+ 0xc735, 0x739a, 0xa535, 0x5294, 0x294a, 0x5295, 0x294a, 0x8c6c,
+ 0x4631, 0x29ad, 0x41a5, 0xad62, 0x109d, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
+ 0x4a14, 0x20c7, 0x108c, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x3890, 0x20c6,
+ 0xf7bd, 0x09de, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef48, 0x109d,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0xe908, 0x2ab5, 0x54a5, 0xb5ad,
+ 0x5ad6, 0xad6b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0xbd21, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda,
+ 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xed6b, 0x294a, 0x94a5, 0x4a52, 0x5ad5, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7,
+ 0xef7b, 0x2955, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0x294a, 0x94a5, 0x4a52, 0x5ad5, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x2955,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xed6b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x4842, 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0642, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0xef7a, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x3210, 0x8c62, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x2108, 0x1084, 0x0842, 0xd211, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x8020, 0x0200, 0x2008, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x83bd, 0x0200,
+ 0x2008, 0x0080, 0x2902, 0x9ce7, 0x7bd8, 0xbdef, 0x5ef7, 0x1c4a,
+ 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0xbd08,
+ 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x631d,
+ 0x318c, 0x18c6, 0x8294, 0x0200, 0x2008, 0x0080, 0x0802, 0x8021,
+ 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
+ 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+ 0x2008, 0x0080, 0x0802, 0x8423, 0x4210, 0x0108, 0x1004, 0x0800,
+ 0x8020, 0x0200, 0x8308, 0x1052, 0xef7a, 0xf7bd, 0x7bde, 0xbdef,
+ 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x4277, 0x2108,
+ 0x1484, 0x4842, 0x8421, 0x4290, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x4a63, 0xb531, 0xdad6, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x6312, 0xbd8c, 0xdef7, 0xef7b,
+ 0x10c6, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x8c62, 0xc631, 0x6318, 0x318c, 0x18c6, 0x7a53, 0xbdef, 0xdef7,
+ 0x8c7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x4842, 0xa529, 0x5294, 0x8c4a, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa529, 0x5294,
+ 0x294a, 0x18a5, 0x7bd3, 0xbdef, 0xdef7, 0x8f7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x5294, 0x314a, 0x14a6,
+ 0x4a63, 0xbde9, 0xdef7, 0xef7b, 0x9084, 0x0842, 0x8421, 0x5210,
+ 0xef4c, 0x2108, 0x1084, 0x0842, 0x1ef5, 0x8c63, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+ 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7,
+ 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c,
+ 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+ 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
+ 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef48, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0xde90, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x8421, 0x4210, 0xbde8, 0xdef7, 0xef7b, 0xf7bd, 0x4210, 0xbd08,
+ 0xdef7, 0x2149, 0x1084, 0x0842, 0x4421, 0x4212, 0x2108, 0x1084,
+ 0x0842, 0x84e9, 0x4210, 0xe93a, 0x7484, 0x3a42, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xf484,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0x77bd, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x7348, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x13bd, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbd21, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x3210, 0xef6b,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0xc631, 0x6318, 0x2e6c,
+ 0xdef6, 0xef7b, 0x94a5, 0x4a52, 0xbde9, 0xdef7, 0xef7b, 0xb191,
+ 0x9ab5, 0xae6b, 0xe6b9, 0x6b9a, 0xb9ae, 0x62e6, 0x2e6c, 0x18c6,
+ 0x5ad7, 0xc631, 0x631e, 0xac8c, 0xe6b9, 0x8b9a, 0x4a31, 0xa526,
+ 0x71ec, 0xd8c6, 0xef7b, 0x1084, 0x3a42, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xd77a,
+ 0xc63d, 0x6338, 0xcd8c, 0x1945, 0x8c59, 0x2108, 0x1084, 0x0842,
+ 0x28c5, 0x8ca5, 0x0011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x1680, 0x5d1d, 0x8434, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x2684, 0x6c9d, 0x362e, 0x2317,
+ 0x8421, 0x4210, 0x2108, 0x1083, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x18c8, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0xe908, 0x13bd, 0x0842, 0xbd21, 0x4213,
+ 0x2108, 0x13bd, 0x0842, 0xbd21, 0x4213, 0xef7a, 0x4a73, 0xe75a,
+ 0x55ec, 0x294a, 0xed6b, 0xf7bd, 0x7bde, 0x5def, 0x5d6b, 0xef6b,
+ 0x1084, 0x0842, 0x8421, 0xd210, 0x2109, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x84e9, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4e90, 0x2748, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0xef48, 0x1084, 0x0842, 0x8421, 0x4210, 0xef48, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xde90, 0xef7b,
+ 0xd631, 0x7bde, 0x4a57, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x7bd5, 0xb5af, 0x5ad6, 0xad6b, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x9494, 0xaa52, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0xdeaa, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0xdad6, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xef4b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0xef7a, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0xf7a4, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0xe908, 0x294a, 0x7bd5, 0xbdef, 0xdef7, 0xef7b, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1124, 0x0842, 0x8421, 0xdea4,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x8f48, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x7bd2, 0x84ef, 0x4210,
+ 0x2108, 0xa531, 0x5294, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0xef48, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x4842, 0xa4ef, 0x4213, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x4842, 0xa427, 0x4ef7, 0x277a, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x8842, 0x4a52,
+ 0xdef5, 0x8f7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0xdef4, 0x8f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x94a4, 0x4bd2, 0xbde9, 0x5ef7, 0x294a, 0x1084, 0x09d2, 0x9d21,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x7bd2, 0xa5ef, 0xde94, 0x2f7b, 0x294a, 0x94a5, 0xbd52, 0xdef7,
+ 0xef7b, 0xc631, 0x6318, 0xb18c, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0xe908, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xc631, 0x7bd8, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x8d5a,
+ 0xa529, 0x5ad4, 0x318d, 0x18c6, 0xb5ad, 0x5ad6, 0x52eb, 0x294a,
+ 0x94a5, 0x4b5a, 0xa529, 0x5294, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5296, 0xad4a, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xef6b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x96b5, 0x6a52, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7, 0xef7b, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0xf54a, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0840, 0x8421, 0x7a10, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x8400, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x0084, 0x003a, 0x83bd, 0x01de, 0x1de8, 0x0000, 0x003a, 0x0000,
+ 0x4000, 0x2108, 0xd0f4, 0x0843, 0x8421, 0x43d0, 0x2108, 0x1084,
+ 0x0842, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4000, 0x0007, 0xde80, 0x0001, 0x0000, 0x3a00, 0x0000,
+ 0x0000, 0x087a, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x0008, 0x0074, 0xe800, 0x0000, 0x3a00, 0xbde8, 0x0003,
+ 0x0000, 0x87a0, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x0084, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x4000, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0840, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x8400, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x0084, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x4000, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x00ef, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x8640, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1904, 0x0842, 0x0021, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1900, 0x0842,
+ 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x6410, 0x2108,
+ 0x0084, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x6400, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x9042, 0x8421, 0x0210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x9000, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+ 0x8421, 0x4210, 0x4108, 0x1086, 0x0842, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x1086, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x0421, 0x4219, 0x2108, 0xd080,
+ 0x423b, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdad6, 0xef7b, 0xd6b5,
+ 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+ 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef,
+ 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+ 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+ 0x2108, 0x1084, 0x0842, 0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+ 0x4210, 0xef48, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+ 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+ 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+ 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0xf75d, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+ 0xdef7, 0xef7b, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+ 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+ 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+ 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+ 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+ 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+ 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+ 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+ 0xa529, 0x5294, 0x294a, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+ 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7,
+ 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c,
+ 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+ 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
+ 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xef79,
+ 0x0000
+ }
+};
diff --git a/lib/unictype/categ_or.c b/lib/unictype/categ_or.c
new file mode 100644
index 0000000..9864210
--- /dev/null
+++ b/lib/unictype/categ_or.c
@@ -0,0 +1,42 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+uc_general_category_t
+uc_general_category_or (uc_general_category_t category1,
+ uc_general_category_t category2)
+{
+ uint32_t bitmask;
+ uc_general_category_t result;
+
+ bitmask = category1.bitmask | category2.bitmask;
+
+ if (bitmask == category1.bitmask)
+ return category1;
+
+ if (bitmask == category2.bitmask)
+ return category2;
+
+ result.bitmask = bitmask;
+ result.generic = 1;
+ result.lookup.lookup_fn = &uc_is_general_category_withtable;
+ return result;
+}
diff --git a/lib/unictype/categ_test.c b/lib/unictype/categ_test.c
new file mode 100644
index 0000000..e46f0f6
--- /dev/null
+++ b/lib/unictype/categ_test.c
@@ -0,0 +1,32 @@
+/* Categories of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+bool
+uc_is_general_category (ucs4_t uc, uc_general_category_t category)
+{
+ if (category.generic)
+ return category.lookup.lookup_fn (uc, category.bitmask);
+ else
+ return bitmap_lookup (category.lookup.table, uc);
+}
diff --git a/lib/unictype/combining.c b/lib/unictype/combining.c
new file mode 100644
index 0000000..d2e33e6
--- /dev/null
+++ b/lib/unictype/combining.c
@@ -0,0 +1,47 @@
+/* Combining classes of Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_combclass table. */
+#include "combining.h"
+
+int
+uc_combining_class (ucs4_t uc)
+{
+ unsigned int index1 = uc >> combclass_header_0;
+ if (index1 < combclass_header_1)
+ {
+ int lookup1 = u_combclass.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> combclass_header_2) & combclass_header_3;
+ int lookup2 = u_combclass.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & combclass_header_4);
+ unsigned int lookup3 = u_combclass.level3[lookup2 + index3];
+
+ return lookup3;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/lib/unictype/combining.h b/lib/unictype/combining.h
new file mode 100644
index 0000000..5f1c8be
--- /dev/null
+++ b/lib/unictype/combining.h
@@ -0,0 +1,839 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Combining class of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define combclass_header_0 16
+#define combclass_header_1 2
+#define combclass_header_2 7
+#define combclass_header_3 511
+#define combclass_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ unsigned char level3[43 << 7];
+ }
+u_combclass =
+{
+ { 0, 512 },
+ {
+ -1, -1, -1, -1, -1, -1, 0, -1,
+ -1, 128, -1, 256, 384, 512, 640, 768,
+ -1, -1, 896, 1024, 1024, 1024, 1024, 1152,
+ 1280, 1024, 1152, 1408, 1536, 1664, 1792, 1920,
+ 2048, 2176, -1, -1, -1, -1, 2304, -1,
+ -1, -1, -1, -1, -1, -1, 2432, 2560,
+ -1, 2688, 2816, -1, 2944, -1, 3072, 3200,
+ 3328, -1, -1, 3456, -1, -1, -1, -1,
+ -1, 3584, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3712, -1, -1, -1, -1,
+ 3840, 3968, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4096, -1, -1, -1,
+ 4224, 4352, 4480, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 4608, -1,
+ -1, -1, -1, -1, 4736, -1, -1, -1,
+ -1, -1, -1, 4864, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4992, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5120, 5248, 5376, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 232, 220, 220,
+ 220, 220, 232, 216, 220, 220, 220, 220,
+ 220, 202, 202, 220, 220, 220, 220, 202,
+ 202, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 1, 1, 1, 1,
+ 1, 220, 220, 220, 220, 230, 230, 230,
+ 230, 230, 230, 230, 230, 240, 230, 220,
+ 220, 220, 230, 230, 230, 220, 220, 0,
+ 230, 230, 230, 220, 220, 220, 220, 230,
+ 232, 220, 220, 230, 233, 234, 234, 233,
+ 234, 234, 233, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 230, 230, 230, 230, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 220, 230, 230, 230, 230, 220, 230,
+ 230, 230, 222, 220, 230, 230, 230, 230,
+ 230, 230, 220, 220, 220, 220, 220, 220,
+ 230, 230, 220, 230, 230, 222, 228, 230,
+ 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 19, 20, 21, 22, 0, 23,
+ 0, 24, 25, 0, 230, 220, 0, 18,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 30, 31, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 27, 28, 29, 30, 31,
+ 32, 33, 34, 230, 230, 220, 220, 230,
+ 230, 230, 230, 230, 220, 230, 230, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 230, 230,
+ 230, 230, 230, 230, 230, 0, 0, 230,
+ 230, 230, 230, 220, 230, 0, 0, 230,
+ 230, 0, 220, 230, 230, 220, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 220, 230, 230, 220, 230, 230, 220,
+ 220, 220, 230, 220, 220, 230, 220, 230,
+ 230, 230, 220, 230, 220, 230, 220, 230,
+ 220, 230, 230, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 230, 230, 230, 230, 230,
+ 230, 230, 220, 230, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 230, 220, 230, 230, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 0, 0, 84, 91, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 103, 103, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 107, 107, 107, 107, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 118, 118, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 122, 122, 122, 122, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 220, 220, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 220, 0, 220,
+ 0, 216, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 129, 130, 0, 132, 0, 0, 0,
+ 0, 0, 130, 130, 130, 130, 0, 0,
+ 130, 0, 230, 230, 9, 0, 230, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 220, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 0, 9, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 220, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 230, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 228, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 222, 230, 220, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 230,
+ 220, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 230, 220, 230, 230, 230,
+ 230, 230, 230, 230, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 230, 220, 230, 230, 230, 230, 230,
+ 230, 230, 220, 230, 230, 234, 214, 220,
+ 202, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 230, 220,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 230, 1, 1, 230, 230, 230, 230,
+ 1, 1, 1, 230, 230, 0, 0, 0,
+ 0, 230, 0, 0, 0, 1, 1, 230,
+ 220, 230, 1, 1, 220, 220, 220, 220,
+ 230, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 218, 228, 232, 222, 224, 224,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8, 8, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 230, 230, 0, 0,
+ 0, 0, 0, 0, 0, 0, 9, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 220, 220, 220, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 230, 230, 230, 230, 230, 230, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 220, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 220, 0, 230,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 230, 1, 220, 0, 0, 0, 0, 9,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 216, 216, 1,
+ 1, 1, 0, 0, 0, 226, 216, 216,
+ 216, 216, 216, 0, 0, 0, 0, 0,
+ 0, 0, 0, 220, 220, 220, 220, 220,
+ 220, 220, 220, 0, 0, 230, 230, 230,
+ 230, 230, 220, 220, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 230, 230, 230, 230, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 230, 230, 230, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unictype/ctype_alnum.c b/lib/unictype/ctype_alnum.c
new file mode 100644
index 0000000..464fbb0
--- /dev/null
+++ b/lib/unictype/ctype_alnum.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_alnum table. */
+#include "ctype_alnum.h"
+
+bool
+uc_is_alnum (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_alnum, uc);
+}
diff --git a/lib/unictype/ctype_alnum.h b/lib/unictype/ctype_alnum.h
new file mode 100644
index 0000000..c27ae78
--- /dev/null
+++ b/lib/unictype/ctype_alnum.h
@@ -0,0 +1,588 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[44 << 4];
+ }
+u_is_alnum =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
+ 0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
+ 0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
+ 0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
+ 0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x03FF0000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_alpha.c b/lib/unictype/ctype_alpha.c
new file mode 100644
index 0000000..4ca6e99
--- /dev/null
+++ b/lib/unictype/ctype_alpha.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_alpha table. */
+#include "ctype_alpha.h"
+
+bool
+uc_is_alpha (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_alpha, uc);
+}
diff --git a/lib/unictype/ctype_alpha.h b/lib/unictype/ctype_alpha.h
new file mode 100644
index 0000000..087c7d5
--- /dev/null
+++ b/lib/unictype/ctype_alpha.h
@@ -0,0 +1,588 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[44 << 4];
+ }
+u_is_alpha =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
+ 0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
+ 0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
+ 0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
+ 0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x03FF0000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_blank.c b/lib/unictype/ctype_blank.c
new file mode 100644
index 0000000..7e5e44f
--- /dev/null
+++ b/lib/unictype/ctype_blank.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_blank table. */
+#include "ctype_blank.h"
+
+bool
+uc_is_blank (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_blank, uc);
+}
diff --git a/lib/unictype/ctype_blank.h b/lib/unictype/ctype_blank.h
new file mode 100644
index 0000000..0506e46
--- /dev/null
+++ b/lib/unictype/ctype_blank.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_is_blank =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000200, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000077F, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_cntrl.c b/lib/unictype/ctype_cntrl.c
new file mode 100644
index 0000000..8d9b148
--- /dev/null
+++ b/lib/unictype/ctype_cntrl.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_cntrl table. */
+#include "ctype_cntrl.h"
+
+bool
+uc_is_cntrl (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_cntrl, uc);
+}
diff --git a/lib/unictype/ctype_cntrl.h b/lib/unictype/ctype_cntrl.h
new file mode 100644
index 0000000..e911b0d
--- /dev/null
+++ b/lib/unictype/ctype_cntrl.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_is_cntrl =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000300, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_digit.c b/lib/unictype/ctype_digit.c
new file mode 100644
index 0000000..b18d920
--- /dev/null
+++ b/lib/unictype/ctype_digit.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_digit table. */
+#include "ctype_digit.h"
+
+bool
+uc_is_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_digit, uc);
+}
diff --git a/lib/unictype/ctype_digit.h b/lib/unictype/ctype_digit.h
new file mode 100644
index 0000000..82d7d2c
--- /dev/null
+++ b/lib/unictype/ctype_digit.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_is_digit =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_graph.c b/lib/unictype/ctype_graph.c
new file mode 100644
index 0000000..3c0ae11
--- /dev/null
+++ b/lib/unictype/ctype_graph.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_graph table. */
+#include "ctype_graph.h"
+
+bool
+uc_is_graph (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_graph, uc);
+}
diff --git a/lib/unictype/ctype_graph.h b/lib/unictype/ctype_graph.h
new file mode 100644
index 0000000..0a00010
--- /dev/null
+++ b/lib/unictype/ctype_graph.h
@@ -0,0 +1,890 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[5 << 7];
+ /*unsigned*/ int level3[52 << 4];
+ }
+u_is_graph =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 512,
+ 18 * sizeof (int) / sizeof (short) + 512
+ },
+ {
+ 18 + 640 * sizeof (short) / sizeof (int) + 0,
+ 18 + 640 * sizeof (short) / sizeof (int) + 16,
+ 18 + 640 * sizeof (short) / sizeof (int) + 32,
+ 18 + 640 * sizeof (short) / sizeof (int) + 48,
+ 18 + 640 * sizeof (short) / sizeof (int) + 64,
+ 18 + 640 * sizeof (short) / sizeof (int) + 80,
+ 18 + 640 * sizeof (short) / sizeof (int) + 96,
+ 18 + 640 * sizeof (short) / sizeof (int) + 112,
+ 18 + 640 * sizeof (short) / sizeof (int) + 128,
+ 18 + 640 * sizeof (short) / sizeof (int) + 144,
+ 18 + 640 * sizeof (short) / sizeof (int) + 160,
+ 18 + 640 * sizeof (short) / sizeof (int) + 176,
+ 18 + 640 * sizeof (short) / sizeof (int) + 192,
+ 18 + 640 * sizeof (short) / sizeof (int) + 208,
+ 18 + 640 * sizeof (short) / sizeof (int) + 224,
+ 18 + 640 * sizeof (short) / sizeof (int) + 240,
+ 18 + 640 * sizeof (short) / sizeof (int) + 256,
+ 18 + 640 * sizeof (short) / sizeof (int) + 272,
+ 18 + 640 * sizeof (short) / sizeof (int) + 288,
+ 18 + 640 * sizeof (short) / sizeof (int) + 304,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 336,
+ 18 + 640 * sizeof (short) / sizeof (int) + 352,
+ 18 + 640 * sizeof (short) / sizeof (int) + 368,
+ 18 + 640 * sizeof (short) / sizeof (int) + 384,
+ 18 + 640 * sizeof (short) / sizeof (int) + 400,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 416,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 432,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 448,
+ 18 + 640 * sizeof (short) / sizeof (int) + 464,
+ 18 + 640 * sizeof (short) / sizeof (int) + 480,
+ 18 + 640 * sizeof (short) / sizeof (int) + 496,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 528,
+ 18 + 640 * sizeof (short) / sizeof (int) + 544,
+ 18 + 640 * sizeof (short) / sizeof (int) + 560,
+ 18 + 640 * sizeof (short) / sizeof (int) + 576,
+ 18 + 640 * sizeof (short) / sizeof (int) + 592,
+ 18 + 640 * sizeof (short) / sizeof (int) + 608,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 624,
+ 18 + 640 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 656,
+ 18 + 640 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 688,
+ 18 + 640 * sizeof (short) / sizeof (int) + 704,
+ 18 + 640 * sizeof (short) / sizeof (int) + 720,
+ 18 + 640 * sizeof (short) / sizeof (int) + 736,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 752,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 768,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 784,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 800,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 816
+ },
+ {
+ 0x00000000, 0xFFFFFFFE, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7CFFFFFF,
+ 0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+ 0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
+ 0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
+ 0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
+ 0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
+ 0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
+ 0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+ 0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
+ 0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
+ 0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
+ 0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
+ 0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
+ 0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
+ 0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x1FFFFFFF,
+ 0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+ 0x1FFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
+ 0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
+ 0x03FF3FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
+ 0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
+ 0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0xFFF3FC1F,
+ 0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+ 0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
+ 0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xE0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x3FFF0000,
+ 0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0xFFDF0F7F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x9FFFFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x3E007F7F,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
+ 0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000F0007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/ctype_lower.c b/lib/unictype/ctype_lower.c
new file mode 100644
index 0000000..1bc8434
--- /dev/null
+++ b/lib/unictype/ctype_lower.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_lower table. */
+#include "ctype_lower.h"
+
+bool
+uc_is_lower (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_lower, uc);
+}
diff --git a/lib/unictype/ctype_lower.h b/lib/unictype/ctype_lower.h
new file mode 100644
index 0000000..32f602c
--- /dev/null
+++ b/lib/unictype/ctype_lower.h
@@ -0,0 +1,327 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[11 << 4];
+ }
+u_is_lower =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x07FFFFFE,
+ 0x00000000, 0x00200000, 0x80000000, 0xFF7FFFFF,
+ 0xAAAAAAAA, 0x54AAAAAA, 0xAAAAA955, 0xD4AAAAAA,
+ 0x46241129, 0xA251212A, 0xB5555B60, 0xAA2CAAAA,
+ 0xAAAAAAAA, 0x100AAAA8, 0x0ADBAA84, 0x20268B09,
+ 0x00041F09, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000020, 0x388A0000,
+ 0x00000000, 0xFFFEF000, 0xAAE37FFF, 0x0927AAAA,
+ 0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
+ 0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
+ 0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+ 0x0000007F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x22000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0x082AAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0x003F00FF, 0x00FF00FF, 0x00AA003F, 0x3FFF00FF,
+ 0x00FF00FF, 0x400B00FF, 0x00030008, 0x00080023,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00004000, 0xFFFF0000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00481562,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000000A,
+ 0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+ 0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xAAA8AAA8, 0xAAAAAAAA, 0x9400AAAA,
+ 0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFF00, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_print.c b/lib/unictype/ctype_print.c
new file mode 100644
index 0000000..1423801
--- /dev/null
+++ b/lib/unictype/ctype_print.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_print table. */
+#include "ctype_print.h"
+
+bool
+uc_is_print (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_print, uc);
+}
diff --git a/lib/unictype/ctype_print.h b/lib/unictype/ctype_print.h
new file mode 100644
index 0000000..73df0b9
--- /dev/null
+++ b/lib/unictype/ctype_print.h
@@ -0,0 +1,890 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[5 << 7];
+ /*unsigned*/ int level3[52 << 4];
+ }
+u_is_print =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 512,
+ 18 * sizeof (int) / sizeof (short) + 512
+ },
+ {
+ 18 + 640 * sizeof (short) / sizeof (int) + 0,
+ 18 + 640 * sizeof (short) / sizeof (int) + 16,
+ 18 + 640 * sizeof (short) / sizeof (int) + 32,
+ 18 + 640 * sizeof (short) / sizeof (int) + 48,
+ 18 + 640 * sizeof (short) / sizeof (int) + 64,
+ 18 + 640 * sizeof (short) / sizeof (int) + 80,
+ 18 + 640 * sizeof (short) / sizeof (int) + 96,
+ 18 + 640 * sizeof (short) / sizeof (int) + 112,
+ 18 + 640 * sizeof (short) / sizeof (int) + 128,
+ 18 + 640 * sizeof (short) / sizeof (int) + 144,
+ 18 + 640 * sizeof (short) / sizeof (int) + 160,
+ 18 + 640 * sizeof (short) / sizeof (int) + 176,
+ 18 + 640 * sizeof (short) / sizeof (int) + 192,
+ 18 + 640 * sizeof (short) / sizeof (int) + 208,
+ 18 + 640 * sizeof (short) / sizeof (int) + 224,
+ 18 + 640 * sizeof (short) / sizeof (int) + 240,
+ 18 + 640 * sizeof (short) / sizeof (int) + 256,
+ 18 + 640 * sizeof (short) / sizeof (int) + 272,
+ 18 + 640 * sizeof (short) / sizeof (int) + 288,
+ 18 + 640 * sizeof (short) / sizeof (int) + 304,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 336,
+ 18 + 640 * sizeof (short) / sizeof (int) + 352,
+ 18 + 640 * sizeof (short) / sizeof (int) + 368,
+ 18 + 640 * sizeof (short) / sizeof (int) + 384,
+ 18 + 640 * sizeof (short) / sizeof (int) + 400,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 416,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 432,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 448,
+ 18 + 640 * sizeof (short) / sizeof (int) + 464,
+ 18 + 640 * sizeof (short) / sizeof (int) + 480,
+ 18 + 640 * sizeof (short) / sizeof (int) + 496,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 528,
+ 18 + 640 * sizeof (short) / sizeof (int) + 544,
+ 18 + 640 * sizeof (short) / sizeof (int) + 560,
+ 18 + 640 * sizeof (short) / sizeof (int) + 576,
+ 18 + 640 * sizeof (short) / sizeof (int) + 592,
+ 18 + 640 * sizeof (short) / sizeof (int) + 608,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 624,
+ 18 + 640 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 656,
+ 18 + 640 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 688,
+ 18 + 640 * sizeof (short) / sizeof (int) + 704,
+ 18 + 640 * sizeof (short) / sizeof (int) + 720,
+ 18 + 640 * sizeof (short) / sizeof (int) + 736,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 752,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 768,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 784,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 800,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 320,
+ 18 + 640 * sizeof (short) / sizeof (int) + 816
+ },
+ {
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7CFFFFFF,
+ 0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+ 0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
+ 0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
+ 0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
+ 0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
+ 0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
+ 0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+ 0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
+ 0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
+ 0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
+ 0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
+ 0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
+ 0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
+ 0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x1FFFFFFF,
+ 0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
+ 0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
+ 0x03FF7FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
+ 0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
+ 0xFFFFFFFF, 0xFFFFFCFF, 0xFFFFFFFF, 0xFFF3FC1F,
+ 0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+ 0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
+ 0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xE0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x3FFF0000,
+ 0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0xFFDF0F7F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x9FFFFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x3E007F7F,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
+ 0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000F0007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/ctype_punct.c b/lib/unictype/ctype_punct.c
new file mode 100644
index 0000000..e6b7946
--- /dev/null
+++ b/lib/unictype/ctype_punct.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_punct table. */
+#include "ctype_punct.h"
+
+bool
+uc_is_punct (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_punct, uc);
+}
diff --git a/lib/unictype/ctype_punct.h b/lib/unictype/ctype_punct.h
new file mode 100644
index 0000000..ce4a010
--- /dev/null
+++ b/lib/unictype/ctype_punct.h
@@ -0,0 +1,734 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[4 << 7];
+ /*unsigned*/ int level3[45 << 4];
+ }
+u_is_punct =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 384
+ },
+ {
+ 18 + 512 * sizeof (short) / sizeof (int) + 0,
+ 18 + 512 * sizeof (short) / sizeof (int) + 16,
+ 18 + 512 * sizeof (short) / sizeof (int) + 32,
+ 18 + 512 * sizeof (short) / sizeof (int) + 48,
+ 18 + 512 * sizeof (short) / sizeof (int) + 64,
+ 18 + 512 * sizeof (short) / sizeof (int) + 80,
+ 18 + 512 * sizeof (short) / sizeof (int) + 96,
+ 18 + 512 * sizeof (short) / sizeof (int) + 112,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 160,
+ 18 + 512 * sizeof (short) / sizeof (int) + 176,
+ 18 + 512 * sizeof (short) / sizeof (int) + 192,
+ 18 + 512 * sizeof (short) / sizeof (int) + 208,
+ 18 + 512 * sizeof (short) / sizeof (int) + 224,
+ 18 + 512 * sizeof (short) / sizeof (int) + 240,
+ 18 + 512 * sizeof (short) / sizeof (int) + 256,
+ 18 + 512 * sizeof (short) / sizeof (int) + 272,
+ 18 + 512 * sizeof (short) / sizeof (int) + 288,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 320,
+ 18 + 512 * sizeof (short) / sizeof (int) + 336,
+ 18 + 512 * sizeof (short) / sizeof (int) + 352,
+ 18 + 512 * sizeof (short) / sizeof (int) + 368,
+ 18 + 512 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 416,
+ 18 + 512 * sizeof (short) / sizeof (int) + 432,
+ 18 + 512 * sizeof (short) / sizeof (int) + 448,
+ 18 + 512 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 480,
+ 18 + 512 * sizeof (short) / sizeof (int) + 496,
+ 18 + 512 * sizeof (short) / sizeof (int) + 512,
+ 18 + 512 * sizeof (short) / sizeof (int) + 528,
+ 18 + 512 * sizeof (short) / sizeof (int) + 544,
+ 18 + 512 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 576,
+ 18 + 512 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 608,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 624,
+ 18 + 512 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 704
+ },
+ {
+ 0x00000000, 0xFC00FFFE, 0xF8000001, 0x78000001,
+ 0x00000000, 0xFBDFFBFF, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFDF, 0x4020FFFF,
+ 0x000000B0, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003FC, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000000,
+ 0xFFFE0600, 0xFFFFFFFF, 0x000000FF, 0x00180000,
+ 0xCFFFFFCF, 0x00000000, 0x7FFFF800, 0x00013C00,
+ 0x00000000, 0x00000000, 0xFFD00000, 0x60003F9F,
+ 0x0002BFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x03CFF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000E, 0xD0000000, 0x001E3FFF, 0x0001003C,
+ 0x0000000E, 0xD0000000, 0x0080399F, 0x07FC000C,
+ 0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
+ 0x0000000E, 0xD0000000, 0x00003BBF, 0x0002000C,
+ 0x0000000E, 0xD0000000, 0x00C0399F, 0x0001000C,
+ 0x00000004, 0xC0000000, 0x00803DC7, 0x07FF0000,
+ 0x0000000E, 0xC0000000, 0x00603DDF, 0xFF00000C,
+ 0x0000000C, 0xD0000000, 0x00603DDF, 0x0006000C,
+ 0x0000000C, 0xC0000000, 0x00803DDF, 0x023F000C,
+ 0x0000000C, 0x00000000, 0xFF5F8400, 0x001C0000,
+ 0x00000000, 0x80008000, 0x0C008040, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0xFFFFFFFE, 0xFFFFFC00, 0x00000000, 0xFFFE0000,
+ 0xFEFF00FF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+ 0x00000000, 0x7FFFF800, 0xC3C0FC00, 0x001E3F9D,
+ 0xC000BFFC, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x1FFFFFFF,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00006000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00003800,
+ 0x001C0000, 0x007C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0xFFF00000, 0x2F7FFFFF, 0x03FF0000,
+ 0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0FFF0FFF, 0x00000031, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0xC0000301, 0xFFFFFFFF,
+ 0xCF800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0xFFF00000, 0xFC00001F, 0x1FFFFFFF,
+ 0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+ 0x00000000, 0xF8FFFFF0, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0x7FF1FC1F,
+ 0x00007FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+ 0xC1D0037B, 0x0C0040AF, 0xFFF8BC1F, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
+ 0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0xFFFFFF1E, 0xE0C1FC01, 0x00000000, 0x00000000,
+ 0x1E000000, 0x00000001, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0x700F8000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000600, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x00000FF8, 0x00000000, 0x00F00000,
+ 0x00000003, 0xFFF00000, 0x0000C01F, 0x00000000,
+ 0x00000000, 0x0000FFC0, 0x800FFF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x007FFE00, 0xF0003008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30000000,
+ 0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0x00000F7F,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0xFC00FFFE, 0xF8000001, 0xF8000001, 0x0000003F,
+ 0x00000000, 0x00000000, 0x00000000, 0x3E007F7F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFF87, 0xFF8FFFFF, 0x00000000, 0xFFE00000,
+ 0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000000F, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x83C00000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000F06E, 0x87000000, 0x01FF00FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000002, 0x08000000,
+ 0x00200000, 0x00200000, 0x00008000, 0x00008000,
+ 0x00000200, 0x00000200, 0x00000008, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/ctype_space.c b/lib/unictype/ctype_space.c
new file mode 100644
index 0000000..09d2c11
--- /dev/null
+++ b/lib/unictype/ctype_space.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_space table. */
+#include "ctype_space.h"
+
+bool
+uc_is_space (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_space, uc);
+}
diff --git a/lib/unictype/ctype_space.h b/lib/unictype/ctype_space.h
new file mode 100644
index 0000000..90108b9
--- /dev/null
+++ b/lib/unictype/ctype_space.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_is_space =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00003E00, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000077F, 0x00000300, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_upper.c b/lib/unictype/ctype_upper.c
new file mode 100644
index 0000000..7724a04
--- /dev/null
+++ b/lib/unictype/ctype_upper.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_upper table. */
+#include "ctype_upper.h"
+
+bool
+uc_is_upper (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_upper, uc);
+}
diff --git a/lib/unictype/ctype_upper.h b/lib/unictype/ctype_upper.h
new file mode 100644
index 0000000..4f3a780
--- /dev/null
+++ b/lib/unictype/ctype_upper.h
@@ -0,0 +1,327 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[11 << 4];
+ }
+u_is_upper =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x7F7FFFFF, 0x00000000,
+ 0x55555555, 0xAA555555, 0x555554AA, 0x2B555555,
+ 0xB1DBCED6, 0x11AED2D5, 0x4AAAADB0, 0x55D65555,
+ 0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00450000,
+ 0xFFFED740, 0x00000FFB, 0x55008000, 0xE6905555,
+ 0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
+ 0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
+ 0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x55555555, 0x55555555, 0x55555555, 0x55555555,
+ 0x40155555, 0x55555555, 0x55555555, 0x55555555,
+ 0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
+ 0xFF00FF00, 0x1F00FF00, 0x0F001F00, 0x1F001F00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00040C40, 0x00000000, 0x0000FFFF,
+ 0x00000008, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
+ 0x55555555, 0x55555555, 0x55555555, 0x00000005,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x55555555, 0x00001554,
+ 0x00555555, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+ 0x00000855, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000000FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/ctype_xdigit.c b/lib/unictype/ctype_xdigit.c
new file mode 100644
index 0000000..60c44c4
--- /dev/null
+++ b/lib/unictype/ctype_xdigit.c
@@ -0,0 +1,32 @@
+/* ISO C <ctype.h> like properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_is_xdigit table. */
+#include "ctype_xdigit.h"
+
+bool
+uc_is_xdigit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_is_xdigit, uc);
+}
diff --git a/lib/unictype/ctype_xdigit.h b/lib/unictype/ctype_xdigit.h
new file mode 100644
index 0000000..320f806
--- /dev/null
+++ b/lib/unictype/ctype_xdigit.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* ISO C <ctype.h> like properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_is_xdigit =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x0000007E, 0x0000007E,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/decdigit.c b/lib/unictype/decdigit.c
new file mode 100644
index 0000000..48b0592
--- /dev/null
+++ b/lib/unictype/decdigit.c
@@ -0,0 +1,49 @@
+/* Values of decimal digit Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_decdigit table. */
+#include "decdigit.h"
+
+int
+uc_decimal_value (ucs4_t uc)
+{
+ unsigned int index1 = uc >> decdigit_header_0;
+ if (index1 < decdigit_header_1)
+ {
+ int lookup1 = u_decdigit.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> decdigit_header_2) & decdigit_header_3;
+ int lookup2 = u_decdigit.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & decdigit_header_4) + lookup2;
+ /* level3 contains 4-bit values. */
+ unsigned int lookup3 =
+ (u_decdigit.level3[index3>>1] >> ((index3 % 2) * 4)) & 0x0f;
+
+ return (int) lookup3 - 1;
+ }
+ }
+ }
+ return -1;
+}
diff --git a/lib/unictype/decdigit.h b/lib/unictype/decdigit.h
new file mode 100644
index 0000000..08dcc40
--- /dev/null
+++ b/lib/unictype/decdigit.h
@@ -0,0 +1,247 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Decimal digit values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define decdigit_header_0 16
+#define decdigit_header_1 2
+#define decdigit_header_2 7
+#define decdigit_header_3 511
+#define decdigit_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ unsigned char level3[12 << 6];
+ }
+u_decdigit =
+{
+ { 0, 512 },
+ {
+ 0, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 128, 256, -1, 384,
+ -1, -1, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, -1, 640, 640, 768, -1,
+ 384, 896, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 128,
+ 896, -1, 1024, 640, -1, -1, 640, 0,
+ 1152, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 768, -1, -1, -1,
+ -1, 640, 1280, -1, 640, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 896, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 768, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1408,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
+ 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87,
+ 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43,
+ 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9
+ }
+};
diff --git a/lib/unictype/digit.c b/lib/unictype/digit.c
new file mode 100644
index 0000000..21545c7
--- /dev/null
+++ b/lib/unictype/digit.c
@@ -0,0 +1,49 @@
+/* Values of digit Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_digit table. */
+#include "digit.h"
+
+int
+uc_digit_value (ucs4_t uc)
+{
+ unsigned int index1 = uc >> digit_header_0;
+ if (index1 < digit_header_1)
+ {
+ int lookup1 = u_digit.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> digit_header_2) & digit_header_3;
+ int lookup2 = u_digit.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & digit_header_4) + lookup2;
+ /* level3 contains 4-bit values. */
+ unsigned int lookup3 =
+ (u_digit.level3[index3>>1] >> ((index3 % 2) * 4)) & 0x0f;
+
+ return (int) lookup3 - 1;
+ }
+ }
+ }
+ return -1;
+}
diff --git a/lib/unictype/digit.h b/lib/unictype/digit.h
new file mode 100644
index 0000000..d3f2961
--- /dev/null
+++ b/lib/unictype/digit.h
@@ -0,0 +1,311 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Digit values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define digit_header_0 16
+#define digit_header_1 2
+#define digit_header_2 7
+#define digit_header_3 511
+#define digit_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ unsigned char level3[20 << 6];
+ }
+u_digit =
+{
+ { 0, 512 },
+ {
+ 0, 128, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, 384, -1, 512,
+ -1, -1, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, -1, 768, 768, 896, -1,
+ 512, 1024, -1, -1, -1, -1, 1152, -1,
+ -1, -1, -1, -1, -1, -1, -1, 256,
+ 1024, -1, 1280, 768, -1, -1, 768, 0,
+ 1408, -1, -1, -1, -1, -1, -1, -1,
+ 1536, 1664, -1, -1, -1, -1, -1, -1,
+ 1792, 1920, -1, -1, -1, -1, 2048, 2176,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 896, -1, -1, -1,
+ -1, 768, 1664, -1, 768, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1024, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 896, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 2432,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x87,
+ 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x54, 0x76, 0x98, 0x0a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x32, 0x54, 0x76, 0x98, 0x0a, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x32, 0x54, 0x76, 0x98,
+ 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x20, 0x43, 0x65, 0x87, 0xa9, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x32, 0x54, 0x76, 0x98, 0x0a,
+ 0x32, 0x54, 0x76, 0x98, 0x0a, 0x32, 0x54, 0x76,
+ 0x98, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
+ 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87,
+ 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43,
+ 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9
+ }
+};
diff --git a/lib/unictype/identsyntaxmap.h b/lib/unictype/identsyntaxmap.h
new file mode 100644
index 0000000..5d9db39
--- /dev/null
+++ b/lib/unictype/identsyntaxmap.h
@@ -0,0 +1,42 @@
+/* Three-level bitmap lookup.
+ Copyright (C) 2000-2002, 2005-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
+
+ 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/>. */
+
+static inline int identsyntax_lookup (ucs4_t uc);
+
+static inline int
+identsyntax_lookup (ucs4_t uc)
+{
+ unsigned int index1 = uc >> identsyntax_header_0;
+ if (index1 < identsyntax_header_1)
+ {
+ int lookup1 = TABLE.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> identsyntax_header_2) & identsyntax_header_3;
+ int lookup2 = TABLE.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & identsyntax_header_4) + lookup2;
+ /* level3 contains 2-bit values. */
+ unsigned int lookup3 = TABLE.level3[index3 >> 3];
+
+ return (lookup3 >> (2 * (index3 & 7))) & 3;
+ }
+ }
+ }
+ return UC_IDENTIFIER_INVALID;
+}
diff --git a/lib/unictype/mirror.c b/lib/unictype/mirror.c
new file mode 100644
index 0000000..7577544
--- /dev/null
+++ b/lib/unictype/mirror.c
@@ -0,0 +1,49 @@
+/* Mirrored Unicode characters.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_mirror table. */
+#include "mirror.h"
+
+bool
+uc_mirror_char (ucs4_t uc, ucs4_t *puc)
+{
+ unsigned int index1 = uc >> mirror_header_0;
+ if (index1 < mirror_header_1)
+ {
+ int lookup1 = u_mirror.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> mirror_header_2) & mirror_header_3;
+ int lookup2 = u_mirror.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & mirror_header_4);
+ int lookup3 = u_mirror.level3[lookup2 + index3];
+
+ *puc = uc + lookup3;
+ return (lookup3 != 0);
+ }
+ }
+ }
+ *puc = uc;
+ return false;
+}
diff --git a/lib/unictype/mirror.h b/lib/unictype/mirror.h
new file mode 100644
index 0000000..d55f153
--- /dev/null
+++ b/lib/unictype/mirror.h
@@ -0,0 +1,503 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Mirrored Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define mirror_header_0 16
+#define mirror_header_1 2
+#define mirror_header_2 7
+#define mirror_header_3 511
+#define mirror_header_4 127
+static const
+struct
+ {
+ int level1[2];
+ short level2[2 << 9];
+ int level3[22 << 7];
+ }
+u_mirror =
+{
+ { 0, 512 },
+ {
+ 0, 128, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 256, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 384, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 512, 640, 768, -1, 896, 1024, 1152, -1,
+ -1, -1, -1, -1, -1, -1, 1280, 1408,
+ -1, -1, -1, 1536, 1664, 1792, -1, -1,
+ -1, -1, -1, -1, 1920, -1, -1, -1,
+ 2048, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2176, -1, 2304, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2432, 2560, 2688,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, -2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 0, -2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 0, -2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 61635, 61634, 61633, 61632, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 59746, 59745, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, -1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 57021, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 56828, 56827, 56826, 56825, 0, 0, 0,
+ 3, 56820, 3, -3, 56817, -3, 0, 0,
+ 0, 56812, 0, 0, 0, 56808, 56807, 0,
+ 0, 0, 56803, 56802, 56801, 56800, 0, 56798,
+ 56797, 56796, 56795, 0, 56793, 0, 56791, 0,
+ 0, 0, 0, 56786, 56785, 56784, 56783, 56782,
+ 56781, 56780, 56779, 56778, 0, 0, 0, 0,
+ 0, 56772, 0, 56770, 1, -1, 56767, 56766,
+ 56765, 56764, 56763, 138, 56761, 56760, 56759, 56758,
+ 56757, 56756, 56755, 56754, 56753, 0, 0, 0,
+ 0, 0, 1, -1, 1, -1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 56734,
+ 56733, 0, 56731, 0, 1, -1, 1, -1,
+ 56725, 56724, 1, -1, 0, 0, 56719, 56718,
+ 56717, 56716, 56715, 56714, 56713, 56712, 1, -1,
+ 1, -1, 1, -1, 1, -1, 56703, 56702,
+ 56701, 56700, 1, -1, 56697, 56696, 1, -1,
+ 56693, 56692, 56691, 56690, 56689, 0, 0, 1,
+ -1, 1, -1, 0, 0, 0, 0, 0,
+ 56677, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, -1, 0, 0, 56663, 56662,
+ 56661, 56660, 56659, 56658, 56657, 56656, 56655, 56654,
+ 1, -1, 1, -1, 1, -1, 1, -1,
+ 56645, 0, 0, 0, 0, 0, 56639, 56638,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, -1, 1, -1, -138, 0, 0,
+ 1, -1, 0, 0, 0, 0, 1, -1,
+ 1, -1, 1, -1, 1, -1, 1, -1,
+ 56605, 56604, 56603, 56602, 56601, 56600, 56599, 56598,
+ 56597, 56596, 56595, 56594, 56593, 56592, 0, 0,
+ 1, -1, 56587, 56586, 56585, 56584, 56583, 56582,
+ 56581, 56580, 56579, 56578, 56577, 56576, 56575, 56574,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, -1, 1, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 56541, 56540, 0, 0, 0, 0, 0, 0,
+ 0, 1, -1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 55445, 55444, 55443, 55442, 55441, 55440, 55439, 55438,
+ 55437, 55436, 55435, 55434, 55433, 55432, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 55357, 0, 0, 55354, 55353, 55352, 55351, 0,
+ 55349, 55348, 0, 0, 55345, 0, 0, 0,
+ 0, 0, 0, 55338, 55337, 55336, 55335, 0,
+ 0, 0, 0, 0, 55329, 55328, 55327, 0,
+ 0, 0, 55323, 55322, 55321, 55320, 55319, 55318,
+ 55317, 55316, 55315, 55314, 55313, 55312, 55311, 55310,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 54906, 54905, 54904, 54903, 54902,
+ 54901, 54900, 54899, 54898, 54897, 54896, 54895, 54894,
+ 54893, 54892, 54891, 54890, 54889, 54888, 54887, 54886,
+ 54885, 0, 0, 54882, 54881, 54880, 54879, 54878,
+ 54877, 54876, 54875, 54874, 54873, 54872, 54871, 54870,
+ 54869, 54868, 54867, 54866, 54865, 54864, 54863, 54862,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 54853, 0, 0, 0, 0, 0, 0, 0,
+ 54845, 54844, 54843, 54842, 54841, 54840, 0, 0,
+ 0, 54836, 0, 0, 0, 0, 54831, 54830,
+ 54829, 54828, 54827, 0, 54825, 54824, 0, 0,
+ 54821, 54820, 54819, 54818, 54817, 0, 0, 0,
+ 0, 54812, 0, 54810, 54809, 54808, 0, 0,
+ 54805, 54804, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 54793, 54792, 54791, 54790,
+ 54789, 54788, 0, 0, 54785, 54784, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 54771, 54770, 54769, 54768, 54767, 54766,
+ 54765, 54764, 54763, 54762, 54761, 54760, 54759, 54758,
+ 54757, 54756, 54755, 54754, 54753, 0, 54751, 54750,
+ 54749, 54748, 0, 0, 54745, 0, 54743, 0,
+ 0, 54740, 0, 54738, 54737, 54736, 54735, 0,
+ 0, 0, 0, 0, 54729, 54728, 0, 0,
+ 0, 0, 0, 0, 54721, 54720, 54719, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 54694,
+ 54693, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 54681, 54680, 0, 0,
+ 0, 0, 54675, 54674, 54673, 54672, 0, 54670,
+ 54669, 0, 0, 54666, 54665, 0, 0, 0,
+ 0, 54660, 54659, 54658, 54657, 54656, 54655, 54654,
+ 54653, 54652, 54651, 54650, 54649, 54648, 54647, 54646,
+ 54645, 54644, 54643, 54642, 54641, 54640, 54639, 54638,
+ 54637, 54636, 54635, 54634, 54633, 54632, 54631, 54630,
+ 54629, 54628, 54627, 54626, 54625, 54624, 54623, 54622,
+ 54621, 54620, 54619, 54618, 0, 0, 54615, 54614,
+ 54613, 54612, 54611, 54610, 54609, 54608, 0, 54606,
+ 54605, 54604, 54603, 54602, 54601, 54600, 54599, 54598,
+ 54597, 54596, 54595, 54594, 54593, 54592, 54591, 54590,
+ 54589, 54588, 54587, 54586, 54585, 54584, 54583, 54582,
+ 54581, 54580, 54579, 54578, 54577, 54576, 54575, 54574,
+ 54573, 54572, 54571, 54570, 54569, 54568, 54567, 0,
+ 0, 0, 0, 0, 54561, 0, 54559, 0,
+ 0, 0, 54555, 54554, 54553, 54552, 54551, 0,
+ 0, 0, 0, 0, 54545, 54544, 54543, 0,
+ 0, 0, 0, 54538, 0, 0, 0, 54534,
+ 54533, 54532, 54531, 54530, 0, 54528, 0, 0,
+ 0, 0, 53755, 53754, 53753, 53752, 0, 0,
+ 0, 53748, 53747, 0, 53745, 53744, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 53729, 53728, 0, 0,
+ 53725, 53724, 53723, 53722, 53721, 53720, 53719, 53718,
+ 53717, 53716, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, -1, 1, -1, 1, -1, 1, -1,
+ 1, -1, 0, 0, 1, -1, 1, -1,
+ 1, -1, 1, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 420, 419, 418, 417, 416, 415, 0,
+ 0, 0, 0, 0, 409, 408, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 245, 244, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 225, 0, 223, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 194, 0, 192, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 162, 0, 160, 0, 158,
+ 157, 0, 155, 154, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -55006, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -55064, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -55122,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -55180, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -55238, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
diff --git a/lib/unictype/numeric.c b/lib/unictype/numeric.c
new file mode 100644
index 0000000..fb1512e
--- /dev/null
+++ b/lib/unictype/numeric.c
@@ -0,0 +1,55 @@
+/* Values of numeric Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+/* Define u_numeric_values and u_numeric tables. */
+#include "numeric.h"
+
+uc_fraction_t
+uc_numeric_value (ucs4_t uc)
+{
+ unsigned int index1 = uc >> numeric_header_0;
+ if (index1 < numeric_header_1)
+ {
+ int lookup1 = u_numeric.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> numeric_header_2) & numeric_header_3;
+ int lookup2 = u_numeric.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = ((uc & numeric_header_4) + lookup2) * 7;
+ /* level3 contains 7-bit values, packed into 16-bit words. */
+ unsigned int lookup3 =
+ ((u_numeric.level3[index3>>4]
+ | (u_numeric.level3[(index3>>4)+1] << 16))
+ >> (index3 % 16))
+ & 0x7f;
+
+ return u_numeric_values[lookup3];
+ }
+ }
+ }
+ {
+ const uc_fraction_t default_value = { 0, 0 };
+ return default_value;
+ }
+}
diff --git a/lib/unictype/numeric.h b/lib/unictype/numeric.h
new file mode 100644
index 0000000..382a093
--- /dev/null
+++ b/lib/unictype/numeric.h
@@ -0,0 +1,635 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Numeric values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+static const uc_fraction_t u_numeric_values[108] =
+{
+ { 0, 0 },
+ { 0, 1 },
+ { 1, 1 },
+ { 2, 1 },
+ { 3, 1 },
+ { 4, 1 },
+ { 5, 1 },
+ { 6, 1 },
+ { 7, 1 },
+ { 8, 1 },
+ { 9, 1 },
+ { 10, 1 },
+ { 11, 1 },
+ { 12, 1 },
+ { 13, 1 },
+ { 14, 1 },
+ { 15, 1 },
+ { 16, 1 },
+ { 17, 1 },
+ { 18, 1 },
+ { 19, 1 },
+ { 20, 1 },
+ { 21, 1 },
+ { 22, 1 },
+ { 23, 1 },
+ { 24, 1 },
+ { 25, 1 },
+ { 26, 1 },
+ { 27, 1 },
+ { 28, 1 },
+ { 29, 1 },
+ { 30, 1 },
+ { 31, 1 },
+ { 32, 1 },
+ { 33, 1 },
+ { 34, 1 },
+ { 35, 1 },
+ { 36, 1 },
+ { 37, 1 },
+ { 38, 1 },
+ { 39, 1 },
+ { 40, 1 },
+ { 41, 1 },
+ { 42, 1 },
+ { 43, 1 },
+ { 44, 1 },
+ { 45, 1 },
+ { 46, 1 },
+ { 47, 1 },
+ { 48, 1 },
+ { 49, 1 },
+ { 50, 1 },
+ { 60, 1 },
+ { 70, 1 },
+ { 80, 1 },
+ { 90, 1 },
+ { 100, 1 },
+ { 200, 1 },
+ { 300, 1 },
+ { 400, 1 },
+ { 500, 1 },
+ { 600, 1 },
+ { 700, 1 },
+ { 800, 1 },
+ { 900, 1 },
+ { 1000, 1 },
+ { 2000, 1 },
+ { 3000, 1 },
+ { 4000, 1 },
+ { 5000, 1 },
+ { 6000, 1 },
+ { 7000, 1 },
+ { 8000, 1 },
+ { 9000, 1 },
+ { 10000, 1 },
+ { 20000, 1 },
+ { 30000, 1 },
+ { 40000, 1 },
+ { 50000, 1 },
+ { 60000, 1 },
+ { 70000, 1 },
+ { 80000, 1 },
+ { 90000, 1 },
+ { 100000, 1 },
+ { -1, 2 },
+ { 1, 2 },
+ { 3, 2 },
+ { 5, 2 },
+ { 7, 2 },
+ { 9, 2 },
+ { 11, 2 },
+ { 13, 2 },
+ { 15, 2 },
+ { 17, 2 },
+ { 1, 3 },
+ { 2, 3 },
+ { 1, 4 },
+ { 3, 4 },
+ { 1, 5 },
+ { 2, 5 },
+ { 3, 5 },
+ { 4, 5 },
+ { 1, 6 },
+ { 5, 6 },
+ { 1, 8 },
+ { 3, 8 },
+ { 5, 8 },
+ { 7, 8 }
+};
+#define numeric_header_0 16
+#define numeric_header_1 3
+#define numeric_header_2 7
+#define numeric_header_3 511
+#define numeric_header_4 127
+static const
+struct
+ {
+ int level1[3];
+ short level2[3 << 9];
+ unsigned short level3[44 * 56 + 1];
+ }
+u_numeric =
+{
+ { 0, 512, 1024 },
+ {
+ 0, 128, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, 384, -1, 512,
+ -1, -1, 640, 768, 640, 640, 640, 896,
+ 1024, 640, 1152, -1, 1280, 1280, 1408, -1,
+ 512, 1536, -1, -1, -1, -1, 1664, -1,
+ -1, -1, -1, -1, -1, 1792, -1, 1920,
+ 1536, -1, 2048, 1280, -1, -1, 1280, 0,
+ 2176, -1, -1, -1, -1, -1, -1, -1,
+ 2304, 2432, 2560, 2688, -1, -1, -1, -1,
+ 2816, 2944, -1, -1, -1, -1, 3072, 3200,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 3328, -1, -1, -1, -1, -1, -1,
+ 3456, -1, -1, 3584, 3712, 3840, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3968, -1, -1, -1,
+ -1, 1280, 2432, -1, 1280, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4096, 4224, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1536, -1,
+ -1, -1, 4352, 4480, -1, -1, 4608, 4736,
+ -1, 3968, -1, -1, -1, -1, -1, -1,
+ -1, -1, 4864, -1, 4992, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 5120, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 5248, -1,
+ -1, -1, -1, -1, -1, -1, -1, 5376,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 5504, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30,
+ 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc000, 0x0080, 0x0000,
+ 0x0000, 0x0001, 0xae00, 0x0186, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910,
+ 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+ 0x1424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+ 0x1424, 0x0000, 0x2000, 0x1018, 0x800a, 0x0008, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+ 0x1424, 0x5c0b, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+ 0x1424, 0x0000, 0x0000, 0x0000, 0x0100, 0x80c1, 0x1820, 0x0010,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+ 0x1424, 0x5c0b, 0x5c10, 0x030d, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080,
+ 0x1c30, 0x0910, 0xd545, 0xc57a, 0xb566, 0x6e5b, 0x0a97, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101,
+ 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x80c1, 0x3050,
+ 0x101c, 0xc509, 0xf2a2, 0xcd49, 0x3568, 0x0ddb, 0x04a7, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x2648, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000,
+ 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304,
+ 0xc142, 0x4070, 0x1424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910,
+ 0x0005, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0001, 0x5000, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000,
+ 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xfbc0, 0x8f15, 0x65c9, 0x19f3,
+ 0x569d, 0x05af, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331,
+ 0x82f1, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331, 0x82f1,
+ 0xa2c1, 0x0012, 0xcc38, 0x539c, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0x78e1,
+ 0x2240, 0x0992, 0x22a5, 0x1018, 0x860a, 0x2203, 0x58a1, 0x1a30,
+ 0x078e, 0x2224, 0x5099, 0x822a, 0xa101, 0x3860, 0x1220, 0x058a,
+ 0xe1a3, 0x4078, 0x9222, 0xa509, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8040, 0x70d1,
+ 0x203c, 0xc911, 0x5284, 0x0c11, 0x0508, 0x01c3, 0x5091, 0x022c,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0800, 0x8406, 0xe182, 0x4880, 0x1628,
+ 0x0182, 0x60a1, 0x2038, 0x8a12, 0x6085, 0x2840, 0x0e18, 0x8488,
+ 0x0162, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0x0002,
+ 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc100, 0x5080,
+ 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x8b00, 0x07ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
+ 0x4060, 0x0028, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0182, 0x60a1,
+ 0x2038, 0x8a12, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xcb00, 0x9305, 0x6cd1, 0x1d38, 0x07cf,
+ 0x1214, 0x488d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0182, 0x60a1, 0x2038, 0x8a12, 0x0005, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9280, 0x84e9, 0xa94a,
+ 0xac56, 0xeb96, 0x8b05, 0x66c9, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080,
+ 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
+ 0x0000, 0x0000, 0x0160, 0x0000, 0x0300, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0380, 0x00e0, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5800, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0304, 0xc142, 0x4070, 0x1424, 0xca8b,
+ 0x3527, 0xd5a3, 0x376c, 0x4e5c, 0xe3b7, 0x7cf5, 0x603f, 0x3850,
+ 0x1624, 0x478d, 0x5264, 0x64b9, 0x9d36, 0x684f, 0x0a54, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaae0, 0x30c0, 0x15e3, 0x869d,
+ 0x0cc5, 0x0bc7, 0x0d16, 0x198b, 0x178e, 0x3a54, 0x0217, 0x6081,
+ 0x1830, 0x0c0c, 0xc58b, 0xb162, 0xccf8, 0xb366, 0x4e19, 0xe3c7,
+ 0x78f1, 0x60bc, 0x30d1, 0x56ab, 0x61bf, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0040, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc302, 0x0662,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x1b80, 0x0000, 0x0000, 0x0000,
+ 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xc100, 0x5160, 0x01c1, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0800, 0x1516, 0x001c, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0182, 0xb0a1, 0xe0a8, 0x0082,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x4203, 0x70c1, 0x2440, 0x8414, 0xe182, 0x4880, 0x0a28, 0x0386,
+ 0xa122, 0x0c10, 0x0508, 0x01c3, 0x5091, 0x0608, 0x8284, 0x4061,
+ 0x1420, 0x070c, 0x4244, 0x1821, 0x0810, 0x0305, 0x2000, 0x1018,
+ 0x0508, 0x8103, 0x2850, 0x0a14, 0x0407, 0x9102, 0x2848, 0x0a14,
+ 0x80c5, 0x3050, 0x041c, 0x4203, 0x60a1, 0x0030, 0x8200, 0xf781,
+ 0xf67b, 0xd17e, 0x3360, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xe545, 0x9a93,
+ 0x6ad1, 0x1bb6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0404, 0x4203, 0x70c1, 0x2440, 0x0114, 0x80c1,
+ 0x3050, 0x101c, 0x4509, 0x3040, 0x1420, 0x070c, 0x4244, 0x1011,
+ 0x080c, 0xc305, 0x9101, 0x0450, 0x0304, 0xc142, 0x4070, 0x1424,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000
+ }
+};
diff --git a/lib/unictype/pr_alphabetic.c b/lib/unictype/pr_alphabetic.c
new file mode 100644
index 0000000..9992091
--- /dev/null
+++ b/lib/unictype/pr_alphabetic.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_alphabetic table. */
+#include "pr_alphabetic.h"
+
+bool
+uc_is_property_alphabetic (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_alphabetic, uc);
+}
+
+const uc_property_t UC_PROPERTY_ALPHABETIC =
+ { &uc_is_property_alphabetic };
diff --git a/lib/unictype/pr_alphabetic.h b/lib/unictype/pr_alphabetic.h
new file mode 100644
index 0000000..09ea6c8
--- /dev/null
+++ b/lib/unictype/pr_alphabetic.h
@@ -0,0 +1,588 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[44 << 4];
+ }
+u_property_alphabetic =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0xBFFF0000, 0xFFFF00B6, 0x000707FF,
+ 0x07FF0000, 0xFFFFFFFE, 0x7EFFFFFF, 0xFFFFC000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x1FEFFFFF, 0x9C00E1FE,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFFFFC00, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFE, 0xE3FFFFFF, 0xFF011FFF, 0xF806000F,
+ 0xFFF99FEE, 0xE3C5FDFF, 0xB080599F, 0x0003000F,
+ 0xFFF987EE, 0xC36DFDFF, 0x5E021987, 0x003F0000,
+ 0xFFFBBFEE, 0xE3EDFDFF, 0x00011BBF, 0x0000000F,
+ 0xFFF99FEE, 0xE3EDFDFF, 0xB0C0199F, 0x0002000F,
+ 0xD63DC7EC, 0xC3FFC718, 0x00811DC7, 0x00000000,
+ 0xFFFDDFEE, 0xE3EFFDFF, 0x03601DDF, 0x0000000F,
+ 0xFFFDDFEC, 0xE3EFFDFF, 0x40601DDF, 0x0000000F,
+ 0xFFFDDFEC, 0xE3FFFDFF, 0x00801DDF, 0xFC00000F,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F807F, 0x000C0000,
+ 0xFFFFFFFE, 0x07FFFFFF, 0x0000207F, 0x00000000,
+ 0xFEF02596, 0x3BFFECAE, 0x3000205F, 0x00000000,
+ 0x00000001, 0x00000000, 0xFFFFFEFF, 0xFFFE1FFF,
+ 0xFEFF0F03, 0x1FFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xF97FFFFF, 0xFFFF0000, 0xFFFFC1E7,
+ 0x0000407F, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x000FDFFF, 0x000FFFFF, 0x000FFFFF, 0x000DDFFF,
+ 0xFFFFFFFF, 0xFFCFFFFF, 0x108001FF, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x01FF0FFF, 0xFFFF0000, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0x000003FF, 0x00000000,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFEFFFFF, 0x00000FEF, 0x00000000,
+ 0xFFFFFFFF, 0x0000C3FF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x003FFFFF, 0xFC00E000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFC00, 0xFFFF07FF, 0x0007FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x007FFFFF, 0x00003FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEFF06F, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_ascii_hex_digit.c b/lib/unictype/pr_ascii_hex_digit.c
new file mode 100644
index 0000000..90d3d3a
--- /dev/null
+++ b/lib/unictype/pr_ascii_hex_digit.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_ascii_hex_digit table. */
+#include "pr_ascii_hex_digit.h"
+
+bool
+uc_is_property_ascii_hex_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_ascii_hex_digit, uc);
+}
+
+const uc_property_t UC_PROPERTY_ASCII_HEX_DIGIT =
+ { &uc_is_property_ascii_hex_digit };
diff --git a/lib/unictype/pr_ascii_hex_digit.h b/lib/unictype/pr_ascii_hex_digit.h
new file mode 100644
index 0000000..d7884ca
--- /dev/null
+++ b/lib/unictype/pr_ascii_hex_digit.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_ascii_hex_digit =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x0000007E, 0x0000007E,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_arabic_digit.c b/lib/unictype/pr_bidi_arabic_digit.c
new file mode 100644
index 0000000..15f5f6b
--- /dev/null
+++ b/lib/unictype/pr_bidi_arabic_digit.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_arabic_digit table. */
+#include "pr_bidi_arabic_digit.h"
+
+bool
+uc_is_property_bidi_arabic_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_arabic_digit, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_arabic_digit (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_AN);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_ARABIC_DIGIT =
+ { &uc_is_property_bidi_arabic_digit };
diff --git a/lib/unictype/pr_bidi_arabic_digit.h b/lib/unictype/pr_bidi_arabic_digit.h
new file mode 100644
index 0000000..999dda3
--- /dev/null
+++ b/lib/unictype/pr_bidi_arabic_digit.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_bidi_arabic_digit =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x0000000F, 0x00000000, 0x00000000, 0x00001BFF,
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_arabic_right_to_left.c b/lib/unictype/pr_bidi_arabic_right_to_left.c
new file mode 100644
index 0000000..8166767
--- /dev/null
+++ b/lib/unictype/pr_bidi_arabic_right_to_left.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_arabic_right_to_left table. */
+#include "pr_bidi_arabic_right_to_left.h"
+
+bool
+uc_is_property_bidi_arabic_right_to_left (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_arabic_right_to_left, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_arabic_right_to_left (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_AL);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT =
+ { &uc_is_property_bidi_arabic_right_to_left };
diff --git a/lib/unictype/pr_bidi_arabic_right_to_left.h b/lib/unictype/pr_bidi_arabic_right_to_left.h
new file mode 100644
index 0000000..4a566d6
--- /dev/null
+++ b/lib/unictype/pr_bidi_arabic_right_to_left.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_bidi_arabic_right_to_left =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64
+ },
+ {
+ 0xF8002930, 0xFFFFFFFF, 0x800007FF, 0xFFFEE000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFC00C060,
+ 0xFFFD7FFF, 0x0000FFFF, 0xFFFFF800, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE003F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0xDFFF0000,
+ 0xFC000000, 0x0000FF80, 0x00080000, 0xFFFFF080,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_block_separator.c b/lib/unictype/pr_bidi_block_separator.c
new file mode 100644
index 0000000..1775d36
--- /dev/null
+++ b/lib/unictype/pr_bidi_block_separator.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_block_separator table. */
+#include "pr_bidi_block_separator.h"
+
+bool
+uc_is_property_bidi_block_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_block_separator, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_block_separator (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_B);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_BLOCK_SEPARATOR =
+ { &uc_is_property_bidi_block_separator };
diff --git a/lib/unictype/pr_bidi_block_separator.h b/lib/unictype/pr_bidi_block_separator.h
new file mode 100644
index 0000000..e82d2d4
--- /dev/null
+++ b/lib/unictype/pr_bidi_block_separator.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_bidi_block_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x70002400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_boundary_neutral.c b/lib/unictype/pr_bidi_boundary_neutral.c
new file mode 100644
index 0000000..923e89f
--- /dev/null
+++ b/lib/unictype/pr_bidi_boundary_neutral.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_boundary_neutral table. */
+#include "pr_bidi_boundary_neutral.h"
+
+bool
+uc_is_property_bidi_boundary_neutral (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_boundary_neutral, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_boundary_neutral (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_BN);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL =
+ { &uc_is_property_bidi_boundary_neutral };
diff --git a/lib/unictype/pr_bidi_boundary_neutral.h b/lib/unictype/pr_bidi_boundary_neutral.h
new file mode 100644
index 0000000..8bc59e8
--- /dev/null
+++ b/lib/unictype/pr_bidi_boundary_neutral.h
@@ -0,0 +1,590 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[4 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_bidi_boundary_neutral =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 18 + 512 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 48,
+ 18 + 512 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 96,
+ 18 + 512 * sizeof (short) / sizeof (int) + 112,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 96
+ },
+ {
+ 0x0FFFC1FF, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFDF, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xC1FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xC0000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_bidi_common_separator.c b/lib/unictype/pr_bidi_common_separator.c
new file mode 100644
index 0000000..2cc1f14
--- /dev/null
+++ b/lib/unictype/pr_bidi_common_separator.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_common_separator table. */
+#include "pr_bidi_common_separator.h"
+
+bool
+uc_is_property_bidi_common_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_common_separator, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_common_separator (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_CS);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_COMMON_SEPARATOR =
+ { &uc_is_property_bidi_common_separator };
diff --git a/lib/unictype/pr_bidi_common_separator.h b/lib/unictype/pr_bidi_common_separator.h
new file mode 100644
index 0000000..67dedbb
--- /dev/null
+++ b/lib/unictype/pr_bidi_common_separator.h
@@ -0,0 +1,168 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[4 << 4];
+ }
+u_property_bidi_common_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48
+ },
+ {
+ 0x00000000, 0x0400D000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00001000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00250000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0400D000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_control.c b/lib/unictype/pr_bidi_control.c
new file mode 100644
index 0000000..9a4f209
--- /dev/null
+++ b/lib/unictype/pr_bidi_control.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_control table. */
+#include "pr_bidi_control.h"
+
+bool
+uc_is_property_bidi_control (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_control, uc);
+}
+
+const uc_property_t UC_PROPERTY_BIDI_CONTROL =
+ { &uc_is_property_bidi_control };
diff --git a/lib/unictype/pr_bidi_control.h b/lib/unictype/pr_bidi_control.h
new file mode 100644
index 0000000..b676a97
--- /dev/null
+++ b/lib/unictype/pr_bidi_control.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_bidi_control =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x0000C000, 0x00007C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_embedding_or_override.c b/lib/unictype/pr_bidi_embedding_or_override.c
new file mode 100644
index 0000000..7026522
--- /dev/null
+++ b/lib/unictype/pr_bidi_embedding_or_override.c
@@ -0,0 +1,49 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_embedding_or_override table. */
+#include "pr_bidi_embedding_or_override.h"
+
+bool
+uc_is_property_bidi_embedding_or_override (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_embedding_or_override, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_embedding_or_override (ucs4_t uc)
+{
+ int category = uc_bidi_category (uc);
+ return (category == UC_BIDI_LRE || category == UC_BIDI_LRO
+ || category == UC_BIDI_RLE || category == UC_BIDI_RLO);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE =
+ { &uc_is_property_bidi_embedding_or_override };
diff --git a/lib/unictype/pr_bidi_embedding_or_override.h b/lib/unictype/pr_bidi_embedding_or_override.h
new file mode 100644
index 0000000..d14a500
--- /dev/null
+++ b/lib/unictype/pr_bidi_embedding_or_override.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_bidi_embedding_or_override =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00006C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_eur_num_separator.c b/lib/unictype/pr_bidi_eur_num_separator.c
new file mode 100644
index 0000000..53d3ea7
--- /dev/null
+++ b/lib/unictype/pr_bidi_eur_num_separator.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_eur_num_separator table. */
+#include "pr_bidi_eur_num_separator.h"
+
+bool
+uc_is_property_bidi_eur_num_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_eur_num_separator, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_eur_num_separator (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_ES);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR =
+ { &uc_is_property_bidi_eur_num_separator };
diff --git a/lib/unictype/pr_bidi_eur_num_separator.h b/lib/unictype/pr_bidi_eur_num_separator.h
new file mode 100644
index 0000000..a18c249
--- /dev/null
+++ b/lib/unictype/pr_bidi_eur_num_separator.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_bidi_eur_num_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64
+ },
+ {
+ 0x00000000, 0x00002800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0C000000,
+ 0x00000C00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00040000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000000C,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_eur_num_terminator.c b/lib/unictype/pr_bidi_eur_num_terminator.c
new file mode 100644
index 0000000..de1f4ab
--- /dev/null
+++ b/lib/unictype/pr_bidi_eur_num_terminator.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_eur_num_terminator table. */
+#include "pr_bidi_eur_num_terminator.h"
+
+bool
+uc_is_property_bidi_eur_num_terminator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_eur_num_terminator, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_eur_num_terminator (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_ET);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR =
+ { &uc_is_property_bidi_eur_num_terminator };
diff --git a/lib/unictype/pr_bidi_eur_num_terminator.h b/lib/unictype/pr_bidi_eur_num_terminator.h
new file mode 100644
index 0000000..5228108
--- /dev/null
+++ b/lib/unictype/pr_bidi_eur_num_terminator.h
@@ -0,0 +1,188 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_bidi_eur_num_terminator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128
+ },
+ {
+ 0x00000000, 0x00000038, 0x00000000, 0x00000000,
+ 0x00000000, 0x0003003C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000600, 0x00000000, 0x00000000, 0x00000400,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000000, 0x00000000,
+ 0x00000000, 0x001F0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00004000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00080000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000600,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000038, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000063
+ }
+};
diff --git a/lib/unictype/pr_bidi_european_digit.c b/lib/unictype/pr_bidi_european_digit.c
new file mode 100644
index 0000000..e27c5d3
--- /dev/null
+++ b/lib/unictype/pr_bidi_european_digit.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_european_digit table. */
+#include "pr_bidi_european_digit.h"
+
+bool
+uc_is_property_bidi_european_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_european_digit, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_european_digit (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_EN);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_EUROPEAN_DIGIT =
+ { &uc_is_property_bidi_european_digit };
diff --git a/lib/unictype/pr_bidi_european_digit.h b/lib/unictype/pr_bidi_european_digit.h
new file mode 100644
index 0000000..27d81bd
--- /dev/null
+++ b/lib/unictype/pr_bidi_european_digit.h
@@ -0,0 +1,307 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[6 << 4];
+ }
+u_property_bidi_european_digit =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x020C0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F10000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0FFFFF00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_bidi_hebrew_right_to_left.c b/lib/unictype/pr_bidi_hebrew_right_to_left.c
new file mode 100644
index 0000000..9dced03
--- /dev/null
+++ b/lib/unictype/pr_bidi_hebrew_right_to_left.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_hebrew_right_to_left table. */
+#include "pr_bidi_hebrew_right_to_left.h"
+
+bool
+uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_hebrew_right_to_left, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_R);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT =
+ { &uc_is_property_bidi_hebrew_right_to_left };
diff --git a/lib/unictype/pr_bidi_hebrew_right_to_left.h b/lib/unictype/pr_bidi_hebrew_right_to_left.h
new file mode 100644
index 0000000..652f5ba
--- /dev/null
+++ b/lib/unictype/pr_bidi_hebrew_right_to_left.h
@@ -0,0 +1,315 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[8 << 4];
+ }
+u_property_bidi_hebrew_right_to_left =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00010000, 0x40000000, 0xFFFFFF49, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFC3007FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xA0000000, 0xFFFFFDFF, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF0F91, 0x78FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_bidi_left_to_right.c b/lib/unictype/pr_bidi_left_to_right.c
new file mode 100644
index 0000000..fee8443
--- /dev/null
+++ b/lib/unictype/pr_bidi_left_to_right.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_left_to_right table. */
+#include "pr_bidi_left_to_right.h"
+
+bool
+uc_is_property_bidi_left_to_right (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_left_to_right, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_left_to_right (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_L);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_LEFT_TO_RIGHT =
+ { &uc_is_property_bidi_left_to_right };
diff --git a/lib/unictype/pr_bidi_left_to_right.h b/lib/unictype/pr_bidi_left_to_right.h
new file mode 100644
index 0000000..73ee442
--- /dev/null
+++ b/lib/unictype/pr_bidi_left_to_right.h
@@ -0,0 +1,706 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[4 << 7];
+ /*unsigned*/ int level3[38 << 4];
+ }
+u_property_bidi_left_to_right =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 384,
+ 18 * sizeof (int) / sizeof (short) + 256,
+ 18 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 18 + 512 * sizeof (short) / sizeof (int) + 0,
+ 18 + 512 * sizeof (short) / sizeof (int) + 16,
+ 18 + 512 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 48,
+ 18 + 512 * sizeof (short) / sizeof (int) + 64,
+ 18 + 512 * sizeof (short) / sizeof (int) + 80,
+ 18 + 512 * sizeof (short) / sizeof (int) + 96,
+ 18 + 512 * sizeof (short) / sizeof (int) + 112,
+ 18 + 512 * sizeof (short) / sizeof (int) + 128,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 160,
+ 18 + 512 * sizeof (short) / sizeof (int) + 176,
+ 18 + 512 * sizeof (short) / sizeof (int) + 192,
+ 18 + 512 * sizeof (short) / sizeof (int) + 208,
+ 18 + 512 * sizeof (short) / sizeof (int) + 224,
+ 18 + 512 * sizeof (short) / sizeof (int) + 240,
+ 18 + 512 * sizeof (short) / sizeof (int) + 256,
+ 18 + 512 * sizeof (short) / sizeof (int) + 272,
+ 18 + 512 * sizeof (short) / sizeof (int) + 288,
+ 18 + 512 * sizeof (short) / sizeof (int) + 304,
+ 18 + 512 * sizeof (short) / sizeof (int) + 320,
+ 18 + 512 * sizeof (short) / sizeof (int) + 336,
+ 18 + 512 * sizeof (short) / sizeof (int) + 352,
+ 18 + 512 * sizeof (short) / sizeof (int) + 368,
+ 18 + 512 * sizeof (short) / sizeof (int) + 384,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 400,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 416,
+ 18 + 512 * sizeof (short) / sizeof (int) + 432,
+ 18 + 512 * sizeof (short) / sizeof (int) + 448,
+ 18 + 512 * sizeof (short) / sizeof (int) + 464,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 496,
+ 18 + 512 * sizeof (short) / sizeof (int) + 512,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 528,
+ 18 + 512 * sizeof (short) / sizeof (int) + 544,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 560,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 576,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 592,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 144,
+ 18 + 512 * sizeof (short) / sizeof (int) + 592
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xF9FFFFFF, 0x00030003, 0x0000401F,
+ 0x00000000, 0x00000000, 0x00000000, 0xBFCF0000,
+ 0xFFFFFF4F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC07, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0000FBFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF9, 0xEFFFFFFF, 0xFFE1DE01, 0xFFFFFFF3,
+ 0xFFFFFFFD, 0xEFFFFFFF, 0xFFFFDFE1, 0xFFF3FFF3,
+ 0xFFFFFFF9, 0xEFFFFFFF, 0xFFFDC679, 0xFFDCFFFF,
+ 0xFFFFFFF9, 0xEFFFFFFF, 0xFFFFDE41, 0xFFFDFFF3,
+ 0xFFFFFFFD, 0x6FFFFFFF, 0xFFBFDFE1, 0xFFFFFFF3,
+ 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFDFFE, 0xF807FFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFF9FC23E, 0x80FFFFF3,
+ 0xFFFFFFFF, 0xEFFFFFFF, 0xFFFFCFFF, 0xFFF9FFF3,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFDFE1, 0xFFFFFFF3,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFA3FBFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x780DFFFF, 0xFFFF807F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xE40DFFFF, 0xFFFFC0FF, 0xFFFFFFFF,
+ 0xFCFFFFFF, 0xC15FFFFF, 0xFFFFFFFF, 0x8001FFFF,
+ 0x0100FF20, 0xE0000000, 0xFFFFFFBF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
+ 0xFFFFDF9B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,
+ 0xFC00FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE7FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFE3FFFF, 0xFFE3FFFF, 0xFFF3FFFF, 0xFFF3FFFF,
+ 0xFFFFFFFF, 0xC07FFFFF, 0xD7F001BF, 0xFC00FFFF,
+ 0xFFFF8000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFDFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xF1FBFE78, 0xFFFFFFCE, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
+ 0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFF0, 0xE82FFFFF, 0xFFFFFFFB, 0xFFF007FF,
+ 0xFFFFFFFC, 0xFFFFFCC3, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFF300FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x3FFFFF80,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x5FFFFFFF, 0x1FFF1FFC, 0x9FFF1FFF,
+ 0x00004000, 0x00000000, 0x00000000, 0x800E0000,
+ 0xFFFF8000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+ 0x3E2FFC84, 0xF3FFBD50, 0x0007C3E0, 0xFFFFFFFF,
+ 0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00200000, 0x00000000, 0x00000000, 0xFFFFFF00,
+ 0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
+ 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xE0001000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
+ 0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x01FFF81F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
+ 0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE1FFFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFF0,
+ 0x9FFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x8FFFFFFF,
+ 0xFFFFFFFF, 0x0001FFFF, 0xFFFF0FFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF87FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0000FFFF, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0FF07FFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFF7BB, 0xFFFFF09F, 0xFFFFFFFF, 0xFF0FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFC03F, 0xFFFC007F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFF9981FF, 0xFFFFEFF7, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x1FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00008080,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xF000F800, 0xFFFFFFFF, 0xFFFFFFFF, 0xDFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0007FC7F,
+ 0xFFFFF018, 0xFFFFC3FF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00003FFF, 0x00000000,
+ 0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+ 0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_bidi_non_spacing_mark.c b/lib/unictype/pr_bidi_non_spacing_mark.c
new file mode 100644
index 0000000..660d4c1
--- /dev/null
+++ b/lib/unictype/pr_bidi_non_spacing_mark.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_non_spacing_mark table. */
+#include "pr_bidi_non_spacing_mark.h"
+
+bool
+uc_is_property_bidi_non_spacing_mark (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_non_spacing_mark, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_non_spacing_mark (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_NSM);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_NON_SPACING_MARK =
+ { &uc_is_property_bidi_non_spacing_mark };
diff --git a/lib/unictype/pr_bidi_non_spacing_mark.h b/lib/unictype/pr_bidi_non_spacing_mark.h
new file mode 100644
index 0000000..6d3c6c2
--- /dev/null
+++ b/lib/unictype/pr_bidi_non_spacing_mark.h
@@ -0,0 +1,528 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_property_bidi_non_spacing_mark =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+ 0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+ 0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
+ 0x00000006, 0x10000000, 0x00023986, 0x00230000,
+ 0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
+ 0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
+ 0x00000004, 0x00000000, 0x00002001, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
+ 0x00000000, 0x10000000, 0x00003000, 0x0000000C,
+ 0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
+ 0x00000000, 0x00000000, 0x005C0400, 0x00000000,
+ 0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+ 0x00002064, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0x3F800000, 0x200FFE40, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0E040187, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+ 0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x06000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30078000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x00000060, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000380,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_bidi_other_neutral.c b/lib/unictype/pr_bidi_other_neutral.c
new file mode 100644
index 0000000..f87b5fb
--- /dev/null
+++ b/lib/unictype/pr_bidi_other_neutral.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_other_neutral table. */
+#include "pr_bidi_other_neutral.h"
+
+bool
+uc_is_property_bidi_other_neutral (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_other_neutral, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_other_neutral (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_ON);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_OTHER_NEUTRAL =
+ { &uc_is_property_bidi_other_neutral };
diff --git a/lib/unictype/pr_bidi_other_neutral.h b/lib/unictype/pr_bidi_other_neutral.h
new file mode 100644
index 0000000..2df9ce5
--- /dev/null
+++ b/lib/unictype/pr_bidi_other_neutral.h
@@ -0,0 +1,407 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[31 << 4];
+ }
+u_property_bidi_other_neutral =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0xF80007C6, 0xF8000001, 0x78000001,
+ 0x00000000, 0xF9D0DBC2, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x06000000, 0xFFFCFFFC, 0xFFFFBFE0,
+ 0x00000000, 0x00000000, 0x00000000, 0x40300000,
+ 0x000000B0, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000C0C0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03C00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x05F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x7F000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00060000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x3C000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000031, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0xFFFF0000, 0xFFE000FF, 0x7FFFFFEF, 0x70000000,
+ 0x00007000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC1D0037B, 0x0C0002AF, 0xFFF83C1F, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFF3FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0xF8000000,
+ 0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+ 0x000000FF, 0x00000000, 0x00000000, 0xFFFFFC00,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFEFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
+ 0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0xFFFFFF1E, 0xE0C10001, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000001, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
+ 0x60000000, 0x00000000, 0xFFFF0000, 0x70000000,
+ 0x00000000, 0xFFFE0000, 0x0000F000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07800000,
+ 0x00000000, 0x00000000, 0xC0000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0xC0080000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000F00, 0x00000000, 0x00F00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x03FF0000, 0xFFFF0000, 0x7FD2FFFF, 0x00000973,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xF80007C6, 0xF8000001, 0xF8000001, 0x0000003F,
+ 0x00000000, 0x00000000, 0x00000000, 0x3E007F1C,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0FFF07FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_pdf.c b/lib/unictype/pr_bidi_pdf.c
new file mode 100644
index 0000000..808a1ef
--- /dev/null
+++ b/lib/unictype/pr_bidi_pdf.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_pdf table. */
+#include "pr_bidi_pdf.h"
+
+bool
+uc_is_property_bidi_pdf (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_pdf, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_pdf (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_PDF);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_PDF =
+ { &uc_is_property_bidi_pdf };
diff --git a/lib/unictype/pr_bidi_pdf.h b/lib/unictype/pr_bidi_pdf.h
new file mode 100644
index 0000000..cef9325
--- /dev/null
+++ b/lib/unictype/pr_bidi_pdf.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_bidi_pdf =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00001000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_segment_separator.c b/lib/unictype/pr_bidi_segment_separator.c
new file mode 100644
index 0000000..0b3b08a
--- /dev/null
+++ b/lib/unictype/pr_bidi_segment_separator.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_segment_separator table. */
+#include "pr_bidi_segment_separator.h"
+
+bool
+uc_is_property_bidi_segment_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_segment_separator, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_segment_separator (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_S);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_SEGMENT_SEPARATOR =
+ { &uc_is_property_bidi_segment_separator };
diff --git a/lib/unictype/pr_bidi_segment_separator.h b/lib/unictype/pr_bidi_segment_separator.h
new file mode 100644
index 0000000..09b018e
--- /dev/null
+++ b/lib/unictype/pr_bidi_segment_separator.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_bidi_segment_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x80000A00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_bidi_whitespace.c b/lib/unictype/pr_bidi_whitespace.c
new file mode 100644
index 0000000..d16928a
--- /dev/null
+++ b/lib/unictype/pr_bidi_whitespace.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_bidi_whitespace table. */
+#include "pr_bidi_whitespace.h"
+
+bool
+uc_is_property_bidi_whitespace (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_bidi_whitespace, uc);
+}
+
+#else
+
+bool
+uc_is_property_bidi_whitespace (ucs4_t uc)
+{
+ return (uc_bidi_category (uc) == UC_BIDI_WS);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_BIDI_WHITESPACE =
+ { &uc_is_property_bidi_whitespace };
diff --git a/lib/unictype/pr_bidi_whitespace.h b/lib/unictype/pr_bidi_whitespace.h
new file mode 100644
index 0000000..2053057
--- /dev/null
+++ b/lib/unictype/pr_bidi_whitespace.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_bidi_whitespace =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00001000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000007FF, 0x00000100, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_byname.c b/lib/unictype/pr_byname.c
new file mode 100644
index 0000000..cb6e553
--- /dev/null
+++ b/lib/unictype/pr_byname.c
@@ -0,0 +1,59 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include <string.h>
+
+/* Get gperf generated lookup function. */
+#include "unictype/pr_byname.h"
+
+static const uc_property_t UC_PROPERTY_NONE = { NULL };
+
+uc_property_t
+uc_property_byname (const char *property_name)
+{
+ char buf[MAX_WORD_LENGTH + 1];
+ const char *cp;
+ char *bp;
+ unsigned int count;
+ const struct named_property *found;
+
+ for (cp = property_name, bp = buf, count = MAX_WORD_LENGTH + 1; ; cp++, bp++)
+ {
+ unsigned char c = (unsigned char) *cp;
+ if (c >= 0x80)
+ goto invalid;
+ if (c >= 'A' && c <= 'Z')
+ c += 'a' - 'A';
+ else if (c == ' ' || c == '-')
+ c = '_';
+ *bp = c;
+ if (c == '\0')
+ break;
+ if (--count == 0)
+ goto invalid;
+ }
+ found = uc_property_lookup (buf, bp - buf);
+ if (found != NULL)
+ return found->property;
+ invalid:
+ return UC_PROPERTY_NONE;
+}
diff --git a/lib/unictype/pr_byname.gperf b/lib/unictype/pr_byname.gperf
new file mode 100644
index 0000000..5d3daa0
--- /dev/null
+++ b/lib/unictype/pr_byname.gperf
@@ -0,0 +1,89 @@
+struct named_property { const char *name; uc_property_t property; };
+%struct-type
+%language=ANSI-C
+%define hash-function-name properties_hash
+%define lookup-function-name uc_property_lookup
+%7bit
+%readonly-tables
+%global-table
+%define word-array-name properties
+%%
+white_space, { &uc_is_property_white_space }
+alphabetic, { &uc_is_property_alphabetic }
+other_alphabetic, { &uc_is_property_other_alphabetic }
+not_a_character, { &uc_is_property_not_a_character }
+default_ignorable_code_point, { &uc_is_property_default_ignorable_code_point }
+other_default_ignorable_code_point, { &uc_is_property_other_default_ignorable_code_point }
+deprecated, { &uc_is_property_deprecated }
+logical_order_exception, { &uc_is_property_logical_order_exception }
+variation_selector, { &uc_is_property_variation_selector }
+private_use, { &uc_is_property_private_use }
+unassigned_code_value, { &uc_is_property_unassigned_code_value }
+uppercase, { &uc_is_property_uppercase }
+other_uppercase, { &uc_is_property_other_uppercase }
+lowercase, { &uc_is_property_lowercase }
+other_lowercase, { &uc_is_property_other_lowercase }
+titlecase, { &uc_is_property_titlecase }
+soft_dotted, { &uc_is_property_soft_dotted }
+id_start, { &uc_is_property_id_start }
+other_id_start, { &uc_is_property_other_id_start }
+id_continue, { &uc_is_property_id_continue }
+other_id_continue, { &uc_is_property_other_id_continue }
+xid_start, { &uc_is_property_xid_start }
+xid_continue, { &uc_is_property_xid_continue }
+pattern_white_space, { &uc_is_property_pattern_white_space }
+pattern_syntax, { &uc_is_property_pattern_syntax }
+join_control, { &uc_is_property_join_control }
+grapheme_base, { &uc_is_property_grapheme_base }
+grapheme_extend, { &uc_is_property_grapheme_extend }
+other_grapheme_extend, { &uc_is_property_other_grapheme_extend }
+grapheme_link, { &uc_is_property_grapheme_link }
+bidi_control, { &uc_is_property_bidi_control }
+bidi_left_to_right, { &uc_is_property_bidi_left_to_right }
+bidi_hebrew_right_to_left, { &uc_is_property_bidi_hebrew_right_to_left }
+bidi_arabic_right_to_left, { &uc_is_property_bidi_arabic_right_to_left }
+bidi_european_digit, { &uc_is_property_bidi_european_digit }
+bidi_eur_num_separator, { &uc_is_property_bidi_eur_num_separator }
+bidi_eur_num_terminator, { &uc_is_property_bidi_eur_num_terminator }
+bidi_arabic_digit, { &uc_is_property_bidi_arabic_digit }
+bidi_common_separator, { &uc_is_property_bidi_common_separator }
+bidi_block_separator, { &uc_is_property_bidi_block_separator }
+bidi_segment_separator, { &uc_is_property_bidi_segment_separator }
+bidi_whitespace, { &uc_is_property_bidi_whitespace }
+bidi_non_spacing_mark, { &uc_is_property_bidi_non_spacing_mark }
+bidi_boundary_neutral, { &uc_is_property_bidi_boundary_neutral }
+bidi_pdf, { &uc_is_property_bidi_pdf }
+bidi_embedding_or_override, { &uc_is_property_bidi_embedding_or_override }
+bidi_other_neutral, { &uc_is_property_bidi_other_neutral }
+hex_digit, { &uc_is_property_hex_digit }
+ascii_hex_digit, { &uc_is_property_ascii_hex_digit }
+ideographic, { &uc_is_property_ideographic }
+unified_ideograph, { &uc_is_property_unified_ideograph }
+radical, { &uc_is_property_radical }
+ids_binary_operator, { &uc_is_property_ids_binary_operator }
+ids_trinary_operator, { &uc_is_property_ids_trinary_operator }
+zero_width, { &uc_is_property_zero_width }
+space, { &uc_is_property_space }
+non_break, { &uc_is_property_non_break }
+iso_control, { &uc_is_property_iso_control }
+format_control, { &uc_is_property_format_control }
+dash, { &uc_is_property_dash }
+hyphen, { &uc_is_property_hyphen }
+punctuation, { &uc_is_property_punctuation }
+line_separator, { &uc_is_property_line_separator }
+paragraph_separator, { &uc_is_property_paragraph_separator }
+quotation_mark, { &uc_is_property_quotation_mark }
+sentence_terminal, { &uc_is_property_sentence_terminal }
+terminal_punctuation, { &uc_is_property_terminal_punctuation }
+currency_symbol, { &uc_is_property_currency_symbol }
+math, { &uc_is_property_math }
+other_math, { &uc_is_property_other_math }
+paired_punctuation, { &uc_is_property_paired_punctuation }
+left_of_pair, { &uc_is_property_left_of_pair }
+combining, { &uc_is_property_combining }
+composite, { &uc_is_property_composite }
+decimal_digit, { &uc_is_property_decimal_digit }
+numeric, { &uc_is_property_numeric }
+diacritic, { &uc_is_property_diacritic }
+extender, { &uc_is_property_extender }
+ignorable_control, { &uc_is_property_ignorable_control }
diff --git a/lib/unictype/pr_byname.h b/lib/unictype/pr_byname.h
new file mode 100644
index 0000000..d529001
--- /dev/null
+++ b/lib/unictype/pr_byname.h
@@ -0,0 +1,289 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/pr_byname.gperf */
+/* Computed positions: -k'1,8,10' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "./unictype/pr_byname.gperf"
+struct named_property { const char *name; uc_property_t property; };
+
+#define TOTAL_KEYWORDS 79
+#define MIN_WORD_LENGTH 4
+#define MAX_WORD_LENGTH 34
+#define MIN_HASH_VALUE 7
+#define MAX_HASH_VALUE 120
+/* maximum key range = 114, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+properties_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 12, 121, 30, 0, 51,
+ 37, 1, 42, 43, 36, 0, 4, 50, 14, 47,
+ 1, 9, 3, 43, 0, 13, 7, 37, 30, 0,
+ 44, 27, 0, 121, 121, 121, 121, 121
+ };
+ register int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[9]];
+ /*FALLTHROUGH*/
+ case 9:
+ case 8:
+ hval += asso_values[(unsigned char)str[7]];
+ /*FALLTHROUGH*/
+ case 7:
+ case 6:
+ case 5:
+ case 4:
+ case 3:
+ case 2:
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval;
+}
+
+static const struct named_property properties[] =
+ {
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 62 "./unictype/pr_byname.gperf"
+ {"radical", { &uc_is_property_radical }},
+#line 86 "./unictype/pr_byname.gperf"
+ {"numeric", { &uc_is_property_numeric }},
+#line 88 "./unictype/pr_byname.gperf"
+ {"extender", { &uc_is_property_extender }},
+ {""}, {""}, {""},
+#line 41 "./unictype/pr_byname.gperf"
+ {"bidi_control", { &uc_is_property_bidi_control }},
+#line 60 "./unictype/pr_byname.gperf"
+ {"ideographic", { &uc_is_property_ideographic }},
+#line 28 "./unictype/pr_byname.gperf"
+ {"id_start", { &uc_is_property_id_start }},
+#line 52 "./unictype/pr_byname.gperf"
+ {"bidi_whitespace", { &uc_is_property_bidi_whitespace }},
+#line 36 "./unictype/pr_byname.gperf"
+ {"join_control", { &uc_is_property_join_control }},
+#line 66 "./unictype/pr_byname.gperf"
+ {"space", { &uc_is_property_space }},
+ {""}, {""},
+#line 64 "./unictype/pr_byname.gperf"
+ {"ids_trinary_operator", { &uc_is_property_ids_trinary_operator }},
+#line 45 "./unictype/pr_byname.gperf"
+ {"bidi_european_digit", { &uc_is_property_bidi_european_digit }},
+#line 46 "./unictype/pr_byname.gperf"
+ {"bidi_eur_num_separator", { &uc_is_property_bidi_eur_num_separator }},
+#line 47 "./unictype/pr_byname.gperf"
+ {"bidi_eur_num_terminator", { &uc_is_property_bidi_eur_num_terminator }},
+#line 81 "./unictype/pr_byname.gperf"
+ {"paired_punctuation", { &uc_is_property_paired_punctuation }},
+#line 43 "./unictype/pr_byname.gperf"
+ {"bidi_hebrew_right_to_left", { &uc_is_property_bidi_hebrew_right_to_left }},
+#line 68 "./unictype/pr_byname.gperf"
+ {"iso_control", { &uc_is_property_iso_control }},
+#line 23 "./unictype/pr_byname.gperf"
+ {"other_uppercase", { &uc_is_property_other_uppercase }},
+#line 26 "./unictype/pr_byname.gperf"
+ {"titlecase", { &uc_is_property_titlecase }},
+#line 72 "./unictype/pr_byname.gperf"
+ {"punctuation", { &uc_is_property_punctuation }},
+#line 73 "./unictype/pr_byname.gperf"
+ {"line_separator", { &uc_is_property_line_separator }},
+#line 27 "./unictype/pr_byname.gperf"
+ {"soft_dotted", { &uc_is_property_soft_dotted }},
+#line 39 "./unictype/pr_byname.gperf"
+ {"other_grapheme_extend", { &uc_is_property_other_grapheme_extend }},
+#line 25 "./unictype/pr_byname.gperf"
+ {"other_lowercase", { &uc_is_property_other_lowercase }},
+#line 53 "./unictype/pr_byname.gperf"
+ {"bidi_non_spacing_mark", { &uc_is_property_bidi_non_spacing_mark }},
+#line 24 "./unictype/pr_byname.gperf"
+ {"lowercase", { &uc_is_property_lowercase }},
+#line 74 "./unictype/pr_byname.gperf"
+ {"paragraph_separator", { &uc_is_property_paragraph_separator }},
+#line 76 "./unictype/pr_byname.gperf"
+ {"sentence_terminal", { &uc_is_property_sentence_terminal }},
+#line 20 "./unictype/pr_byname.gperf"
+ {"private_use", { &uc_is_property_private_use }},
+#line 67 "./unictype/pr_byname.gperf"
+ {"non_break", { &uc_is_property_non_break }},
+#line 70 "./unictype/pr_byname.gperf"
+ {"dash", { &uc_is_property_dash }},
+#line 71 "./unictype/pr_byname.gperf"
+ {"hyphen", { &uc_is_property_hyphen }},
+#line 89 "./unictype/pr_byname.gperf"
+ {"ignorable_control", { &uc_is_property_ignorable_control }},
+#line 77 "./unictype/pr_byname.gperf"
+ {"terminal_punctuation", { &uc_is_property_terminal_punctuation }},
+#line 58 "./unictype/pr_byname.gperf"
+ {"hex_digit", { &uc_is_property_hex_digit }},
+#line 87 "./unictype/pr_byname.gperf"
+ {"diacritic", { &uc_is_property_diacritic }},
+#line 48 "./unictype/pr_byname.gperf"
+ {"bidi_arabic_digit", { &uc_is_property_bidi_arabic_digit }},
+#line 30 "./unictype/pr_byname.gperf"
+ {"id_continue", { &uc_is_property_id_continue }},
+#line 18 "./unictype/pr_byname.gperf"
+ {"logical_order_exception", { &uc_is_property_logical_order_exception }},
+#line 55 "./unictype/pr_byname.gperf"
+ {"bidi_pdf", { &uc_is_property_bidi_pdf }},
+#line 79 "./unictype/pr_byname.gperf"
+ {"math", { &uc_is_property_math }},
+#line 14 "./unictype/pr_byname.gperf"
+ {"not_a_character", { &uc_is_property_not_a_character }},
+#line 32 "./unictype/pr_byname.gperf"
+ {"xid_start", { &uc_is_property_xid_start }},
+#line 57 "./unictype/pr_byname.gperf"
+ {"bidi_other_neutral", { &uc_is_property_bidi_other_neutral }},
+#line 44 "./unictype/pr_byname.gperf"
+ {"bidi_arabic_right_to_left", { &uc_is_property_bidi_arabic_right_to_left }},
+#line 35 "./unictype/pr_byname.gperf"
+ {"pattern_syntax", { &uc_is_property_pattern_syntax }},
+#line 37 "./unictype/pr_byname.gperf"
+ {"grapheme_base", { &uc_is_property_grapheme_base }},
+#line 59 "./unictype/pr_byname.gperf"
+ {"ascii_hex_digit", { &uc_is_property_ascii_hex_digit }},
+#line 22 "./unictype/pr_byname.gperf"
+ {"uppercase", { &uc_is_property_uppercase }},
+#line 38 "./unictype/pr_byname.gperf"
+ {"grapheme_extend", { &uc_is_property_grapheme_extend }},
+#line 83 "./unictype/pr_byname.gperf"
+ {"combining", { &uc_is_property_combining }},
+#line 85 "./unictype/pr_byname.gperf"
+ {"decimal_digit", { &uc_is_property_decimal_digit }},
+#line 56 "./unictype/pr_byname.gperf"
+ {"bidi_embedding_or_override", { &uc_is_property_bidi_embedding_or_override }},
+#line 33 "./unictype/pr_byname.gperf"
+ {"xid_continue", { &uc_is_property_xid_continue }},
+#line 11 "./unictype/pr_byname.gperf"
+ {"white_space", { &uc_is_property_white_space }},
+#line 51 "./unictype/pr_byname.gperf"
+ {"bidi_segment_separator", { &uc_is_property_bidi_segment_separator }},
+#line 84 "./unictype/pr_byname.gperf"
+ {"composite", { &uc_is_property_composite }},
+#line 82 "./unictype/pr_byname.gperf"
+ {"left_of_pair", { &uc_is_property_left_of_pair }},
+#line 19 "./unictype/pr_byname.gperf"
+ {"variation_selector", { &uc_is_property_variation_selector }},
+#line 34 "./unictype/pr_byname.gperf"
+ {"pattern_white_space", { &uc_is_property_pattern_white_space }},
+#line 40 "./unictype/pr_byname.gperf"
+ {"grapheme_link", { &uc_is_property_grapheme_link }},
+#line 42 "./unictype/pr_byname.gperf"
+ {"bidi_left_to_right", { &uc_is_property_bidi_left_to_right }},
+#line 29 "./unictype/pr_byname.gperf"
+ {"other_id_start", { &uc_is_property_other_id_start }},
+#line 16 "./unictype/pr_byname.gperf"
+ {"other_default_ignorable_code_point", { &uc_is_property_other_default_ignorable_code_point }},
+#line 13 "./unictype/pr_byname.gperf"
+ {"other_alphabetic", { &uc_is_property_other_alphabetic }},
+#line 63 "./unictype/pr_byname.gperf"
+ {"ids_binary_operator", { &uc_is_property_ids_binary_operator }},
+#line 49 "./unictype/pr_byname.gperf"
+ {"bidi_common_separator", { &uc_is_property_bidi_common_separator }},
+#line 75 "./unictype/pr_byname.gperf"
+ {"quotation_mark", { &uc_is_property_quotation_mark }},
+#line 50 "./unictype/pr_byname.gperf"
+ {"bidi_block_separator", { &uc_is_property_bidi_block_separator }},
+ {""}, {""}, {""},
+#line 65 "./unictype/pr_byname.gperf"
+ {"zero_width", { &uc_is_property_zero_width }},
+ {""},
+#line 80 "./unictype/pr_byname.gperf"
+ {"other_math", { &uc_is_property_other_math }},
+ {""}, {""}, {""}, {""}, {""},
+#line 17 "./unictype/pr_byname.gperf"
+ {"deprecated", { &uc_is_property_deprecated }},
+ {""}, {""}, {""},
+#line 54 "./unictype/pr_byname.gperf"
+ {"bidi_boundary_neutral", { &uc_is_property_bidi_boundary_neutral }},
+#line 21 "./unictype/pr_byname.gperf"
+ {"unassigned_code_value", { &uc_is_property_unassigned_code_value }},
+ {""},
+#line 12 "./unictype/pr_byname.gperf"
+ {"alphabetic", { &uc_is_property_alphabetic }},
+ {""}, {""}, {""}, {""},
+#line 61 "./unictype/pr_byname.gperf"
+ {"unified_ideograph", { &uc_is_property_unified_ideograph }},
+ {""}, {""},
+#line 78 "./unictype/pr_byname.gperf"
+ {"currency_symbol", { &uc_is_property_currency_symbol }},
+ {""},
+#line 69 "./unictype/pr_byname.gperf"
+ {"format_control", { &uc_is_property_format_control }},
+ {""}, {""}, {""}, {""}, {""},
+#line 31 "./unictype/pr_byname.gperf"
+ {"other_id_continue", { &uc_is_property_other_id_continue }},
+ {""}, {""}, {""}, {""}, {""},
+#line 15 "./unictype/pr_byname.gperf"
+ {"default_ignorable_code_point", { &uc_is_property_default_ignorable_code_point }}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_property *
+uc_property_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = properties_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register const char *s = properties[key].name;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &properties[key];
+ }
+ }
+ return 0;
+}
diff --git a/lib/unictype/pr_combining.c b/lib/unictype/pr_combining.c
new file mode 100644
index 0000000..5332b36
--- /dev/null
+++ b/lib/unictype/pr_combining.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_combining table. */
+#include "pr_combining.h"
+
+bool
+uc_is_property_combining (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_combining, uc);
+}
+
+const uc_property_t UC_PROPERTY_COMBINING =
+ { &uc_is_property_combining };
diff --git a/lib/unictype/pr_combining.h b/lib/unictype/pr_combining.h
new file mode 100644
index 0000000..f17c6a5
--- /dev/null
+++ b/lib/unictype/pr_combining.h
@@ -0,0 +1,528 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_property_combining =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+ 0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
+ 0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
+ 0x0000000E, 0xD0000000, 0x00C0399F, 0x0000000C,
+ 0x00000004, 0xC0000000, 0x00803DC7, 0x00000000,
+ 0x0000000E, 0xC0000000, 0x00603DDF, 0x0000000C,
+ 0x0000000C, 0xD0000000, 0x00603DDF, 0x0000000C,
+ 0x0000000C, 0xC0000000, 0x00803DDF, 0x0000000C,
+ 0x0000000C, 0x00000000, 0xFF5F8400, 0x000C0000,
+ 0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
+ 0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0xFFC00000, 0x200FFFFF, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0FFF0FFF, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
+ 0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
+ 0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x06000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30078000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x000000F8, 0x00000000, 0x00000000,
+ 0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_composite.c b/lib/unictype/pr_composite.c
new file mode 100644
index 0000000..4f01ea8
--- /dev/null
+++ b/lib/unictype/pr_composite.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_composite table. */
+#include "pr_composite.h"
+
+bool
+uc_is_property_composite (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_composite, uc);
+}
+
+const uc_property_t UC_PROPERTY_COMPOSITE =
+ { &uc_is_property_composite };
diff --git a/lib/unictype/pr_composite.h b/lib/unictype/pr_composite.h
new file mode 100644
index 0000000..43639b5
--- /dev/null
+++ b/lib/unictype/pr_composite.h
@@ -0,0 +1,375 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[23 << 4];
+ }
+u_property_composite =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x70000000, 0x3E7EFFBF, 0xBE7EFFBF,
+ 0xFFFCFFFF, 0xFEFDFF3F, 0xFFF3F3F9, 0x7FFFFF3F,
+ 0x00000000, 0x00018003, 0xDFFFFFF0, 0xFF3FFFCF,
+ 0xCFFFFFFF, 0x000FFFC0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x0001D760, 0x0001FC00, 0x00187C00, 0x00000000,
+ 0x0200708B, 0x02000000, 0x708B0000, 0x00C00000,
+ 0x00000000, 0x00000000, 0xFCCF0006, 0x033FFCFC,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000007C, 0x00000000, 0x01E00000,
+ 0x00000000, 0x00000000, 0x00080005, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00120200, 0xFF000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xB0001800, 0x00000000,
+ 0x00000000, 0x00480000, 0x4E000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x30001900, 0x00000000,
+ 0x00100000, 0x00000000, 0x00001C00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000100, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000D81, 0x00000000,
+ 0x00000000, 0x00000000, 0x00001C00, 0x00000000,
+ 0x00000000, 0x00000000, 0x74000000, 0x00000000,
+ 0x00000000, 0x00080000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00080000, 0x30000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x10842008, 0x03E80200,
+ 0x20080002, 0x02001084, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000040, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00045540, 0x28000000, 0x0000000B, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x1555FFFF,
+ 0xFFFFFFFF, 0x17DFFFFF, 0xE7C7F5DE, 0x15DC37F7,
+ 0x00000000, 0x10D80060, 0x00800380, 0x00000000,
+ 0x00000000, 0x00000100, 0x00000000, 0x00000000,
+ 0x0040026B, 0x08000007, 0xFFF80000, 0x0DEE0DEE,
+ 0x0C000000, 0x00004000, 0x0000E000, 0x00000000,
+ 0x00001210, 0x0001B050, 0x00000292, 0x0333E005,
+ 0x00000333, 0x0000F000, 0x00000000, 0x00003C0F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFE00,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00001000, 0x00000000, 0x00000000, 0x00700000,
+ 0x00000000, 0x00000000, 0x10000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x55555000, 0x36DB02A5,
+ 0xC0100000, 0x55555000, 0x36DB02A5, 0xC7900000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0x7FFFC000,
+ 0x00000000, 0xFFFE0000, 0x0000FFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000001F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xA0F8007F, 0x5F7FFC00, 0x0000FFDB, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0FFFFC00,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFFFFF0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x1FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xAA820000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FE00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0x0000001F,
+ 0x00000000, 0xF8000000, 0x00000001, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_currency_symbol.c b/lib/unictype/pr_currency_symbol.c
new file mode 100644
index 0000000..8a8723b
--- /dev/null
+++ b/lib/unictype/pr_currency_symbol.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_currency_symbol table. */
+#include "pr_currency_symbol.h"
+
+bool
+uc_is_property_currency_symbol (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_currency_symbol, uc);
+}
+
+#else
+
+bool
+uc_is_property_currency_symbol (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_Sc);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_CURRENCY_SYMBOL =
+ { &uc_is_property_currency_symbol };
diff --git a/lib/unictype/pr_currency_symbol.h b/lib/unictype/pr_currency_symbol.h
new file mode 100644
index 0000000..8815876
--- /dev/null
+++ b/lib/unictype/pr_currency_symbol.h
@@ -0,0 +1,188 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_currency_symbol =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128
+ },
+ {
+ 0x00000000, 0x00000010, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000003C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000063
+ }
+};
diff --git a/lib/unictype/pr_dash.c b/lib/unictype/pr_dash.c
new file mode 100644
index 0000000..16bccad
--- /dev/null
+++ b/lib/unictype/pr_dash.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_dash table. */
+#include "pr_dash.h"
+
+bool
+uc_is_property_dash (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_dash, uc);
+}
+
+const uc_property_t UC_PROPERTY_DASH =
+ { &uc_is_property_dash };
diff --git a/lib/unictype/pr_dash.h b/lib/unictype/pr_dash.h
new file mode 100644
index 0000000..70e67e0
--- /dev/null
+++ b/lib/unictype/pr_dash.h
@@ -0,0 +1,184 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[8 << 4];
+ }
+u_property_dash =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112
+ },
+ {
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000400, 0x40000000, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003F0000, 0x00000000, 0x00080000, 0x08000000,
+ 0x00000800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00040000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x04800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x10000000, 0x00010000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00060000, 0x01000000, 0x00000008,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_decimal_digit.c b/lib/unictype/pr_decimal_digit.c
new file mode 100644
index 0000000..e344158
--- /dev/null
+++ b/lib/unictype/pr_decimal_digit.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_decimal_digit table. */
+#include "pr_decimal_digit.h"
+
+bool
+uc_is_property_decimal_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_decimal_digit, uc);
+}
+
+#else
+
+bool
+uc_is_property_decimal_digit (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_Nd);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_DECIMAL_DIGIT =
+ { &uc_is_property_decimal_digit };
diff --git a/lib/unictype/pr_decimal_digit.h b/lib/unictype/pr_decimal_digit.h
new file mode 100644
index 0000000..d73e8bc
--- /dev/null
+++ b/lib/unictype/pr_decimal_digit.h
@@ -0,0 +1,351 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[17 << 4];
+ }
+u_property_decimal_digit =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_default_ignorable_code_point.c b/lib/unictype/pr_default_ignorable_code_point.c
new file mode 100644
index 0000000..f4b7f19
--- /dev/null
+++ b/lib/unictype/pr_default_ignorable_code_point.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_default_ignorable_code_point table. */
+#include "pr_default_ignorable_code_point.h"
+
+bool
+uc_is_property_default_ignorable_code_point (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_default_ignorable_code_point, uc);
+}
+
+const uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT =
+ { &uc_is_property_default_ignorable_code_point };
diff --git a/lib/unictype/pr_default_ignorable_code_point.h b/lib/unictype/pr_default_ignorable_code_point.h
new file mode 100644
index 0000000..df57db5
--- /dev/null
+++ b/lib/unictype/pr_default_ignorable_code_point.h
@@ -0,0 +1,464 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[10 << 4];
+ }
+u_property_default_ignorable_code_point =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00008000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00300000, 0x00000000, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000F800, 0x00007C00, 0x00000000, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000010,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x01FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_deprecated.c b/lib/unictype/pr_deprecated.c
new file mode 100644
index 0000000..2b3903b
--- /dev/null
+++ b/lib/unictype/pr_deprecated.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_deprecated table. */
+#include "pr_deprecated.h"
+
+bool
+uc_is_property_deprecated (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_deprecated, uc);
+}
+
+const uc_property_t UC_PROPERTY_DEPRECATED =
+ { &uc_is_property_deprecated };
diff --git a/lib/unictype/pr_deprecated.h b/lib/unictype/pr_deprecated.h
new file mode 100644
index 0000000..ee69bbf
--- /dev/null
+++ b/lib/unictype/pr_deprecated.h
@@ -0,0 +1,312 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[4 << 4];
+ }
+u_property_deprecated =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000003, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000008, 0x00080000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FC00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_diacritic.c b/lib/unictype/pr_diacritic.c
new file mode 100644
index 0000000..f541cd1
--- /dev/null
+++ b/lib/unictype/pr_diacritic.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_diacritic table. */
+#include "pr_diacritic.h"
+
+bool
+uc_is_property_diacritic (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_diacritic, uc);
+}
+
+const uc_property_t UC_PROPERTY_DIACRITIC =
+ { &uc_is_property_diacritic };
diff --git a/lib/unictype/pr_diacritic.h b/lib/unictype/pr_diacritic.h
new file mode 100644
index 0000000..4a8390b
--- /dev/null
+++ b/lib/unictype/pr_diacritic.h
@@ -0,0 +1,367 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[21 << 4];
+ }
+u_property_diacritic =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x40000000, 0x00000001,
+ 0x00000000, 0x01908100, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xE0FF7FFF, 0x04300007,
+ 0x00000030, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000000F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x02000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFB, 0x00000016, 0x00000000,
+ 0x00000000, 0x00000000, 0x0187F800, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00001C61,
+ 0x00000000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x003FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x10000000, 0x001E2000, 0x00020000,
+ 0x00000000, 0x10000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x10000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x10000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x10000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x10000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000400, 0x00000000,
+ 0x00000000, 0x00000000, 0x00005F80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00001F00, 0x00000000,
+ 0x03000000, 0xC2A00000, 0x00000000, 0x00000000,
+ 0x000000DC, 0x00000000, 0x00000040, 0x00000000,
+ 0x00000000, 0x06800000, 0x00000000, 0x00000000,
+ 0x0000BF80, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x200FFE00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0E000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00100000, 0x00000010, 0x000FF800,
+ 0x00000000, 0x00000400, 0x00000000, 0x00000000,
+ 0x00000000, 0x00C00000, 0x00000000, 0x3F000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x000007FF,
+ 0x00000000, 0x00000000, 0x0000FFF0, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x1E000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xB0008000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0x00000003, 0x00000000, 0x00000000,
+ 0x00000100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00007800, 0x00080000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00000001, 0x00010000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807E380,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_extender.c b/lib/unictype/pr_extender.c
new file mode 100644
index 0000000..25f11f6
--- /dev/null
+++ b/lib/unictype/pr_extender.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_extender table. */
+#include "pr_extender.h"
+
+bool
+uc_is_property_extender (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_extender, uc);
+}
+
+const uc_property_t UC_PROPERTY_EXTENDER =
+ { &uc_is_property_extender };
diff --git a/lib/unictype/pr_extender.h b/lib/unictype/pr_extender.h
new file mode 100644
index 0000000..70d9582
--- /dev/null
+++ b/lib/unictype/pr_extender.h
@@ -0,0 +1,192 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[10 << 4];
+ }
+u_property_extender =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 144
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00800000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00030000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x04000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00400000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x003E0000, 0x00000000, 0x00000000,
+ 0x60000000, 0x00000000, 0x00000000, 0x70000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00200000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00001000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_format_control.c b/lib/unictype/pr_format_control.c
new file mode 100644
index 0000000..f63bb29
--- /dev/null
+++ b/lib/unictype/pr_format_control.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_format_control table. */
+#include "pr_format_control.h"
+
+bool
+uc_is_property_format_control (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_format_control, uc);
+}
+
+const uc_property_t UC_PROPERTY_FORMAT_CONTROL =
+ { &uc_is_property_format_control };
diff --git a/lib/unictype/pr_format_control.h b/lib/unictype/pr_format_control.h
new file mode 100644
index 0000000..fde6b40
--- /dev/null
+++ b/lib/unictype/pr_format_control.h
@@ -0,0 +1,444 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_format_control =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000800, 0x00000000, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_grapheme_base.c b/lib/unictype/pr_grapheme_base.c
new file mode 100644
index 0000000..6b090bc
--- /dev/null
+++ b/lib/unictype/pr_grapheme_base.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_grapheme_base table. */
+#include "pr_grapheme_base.h"
+
+bool
+uc_is_property_grapheme_base (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_grapheme_base, uc);
+}
+
+const uc_property_t UC_PROPERTY_GRAPHEME_BASE =
+ { &uc_is_property_grapheme_base };
diff --git a/lib/unictype/pr_grapheme_base.h b/lib/unictype/pr_grapheme_base.h
new file mode 100644
index 0000000..6926dfd
--- /dev/null
+++ b/lib/unictype/pr_grapheme_base.h
@@ -0,0 +1,616 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[51 << 4];
+ }
+u_property_grapheme_base =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 672,
+ 4 + 384 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 704,
+ 4 + 384 * sizeof (short) / sizeof (int) + 720,
+ 4 + 384 * sizeof (short) / sizeof (int) + 736,
+ 4 + 384 * sizeof (short) / sizeof (int) + 752,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 768,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 784,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 800,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0x00000000, 0xFFFFDFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x7CFF0000,
+ 0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC07, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+ 0x000006FF, 0x40000000, 0xFFFF0049, 0x001F07FF,
+ 0xC800FFC0, 0xFFFFFFFE, 0x000007FF, 0xFFFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFFFFC260,
+ 0xFFFD3FFF, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x07F007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF8, 0xE3FFFFFF, 0xFF011E01, 0xF807FFF3,
+ 0xFFF99FEC, 0xA3C5FDFF, 0xB0005981, 0x07FFFFC3,
+ 0xFFF987E8, 0xC36DFDFF, 0x5E000001, 0x001CFFC0,
+ 0xFFFBBFE8, 0xE3EDFDFF, 0x00011A01, 0x0002FFC3,
+ 0xFFF99FEC, 0x23EDFDFF, 0xB0001981, 0x0003FFC3,
+ 0xD63DC7E8, 0x83FFC718, 0x00011DC6, 0x07FFFFC0,
+ 0xFFFDDFEE, 0x23EFFDFF, 0x0300001E, 0xFF00FFC3,
+ 0xFFFDDFEC, 0x63EFFDFF, 0x40000D9B, 0x0006FFC3,
+ 0xFFFDDFEC, 0xA3FFFDFF, 0x00001DC1, 0xFE3FFFC3,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0x7F03007F, 0x001C0000,
+ 0xFFFFFFFE, 0x800DFFFF, 0x0FFF807F, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
+ 0xFCFFFFFF, 0xFD5FFFFF, 0xFFFFFEFF, 0x80001FFF,
+ 0x00000F20, 0xC0000000, 0x001FDFBF, 0x00000000,
+ 0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
+ 0xC3FFDF9B, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x1FFFFFFF,
+ 0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
+ 0x0003DFFF, 0x0063FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0xC04FFFFF, 0x1FF001BF, 0x03FF03FF,
+ 0x03FF47FF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x01FB0E78, 0xFFFFFFF1, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
+ 0xCE7FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0xE82FFFFF, 0xFFFF0FFB, 0x1FF007FF,
+ 0xFFFFFFFC, 0x03FFC4C3, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xF8300FFF, 0xFFFFE3FF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
+ 0xFFFF07FF, 0xFFFF80FF, 0xFFFFFFFF, 0xFFF30000,
+ 0x001F7FFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+ 0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+ 0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
+ 0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
+ 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xF87FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+ 0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xC0087FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000F9F, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC00F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFC03F, 0x800C007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x001981FF, 0xF3FF2FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x3FFF0000,
+ 0x03FF0000, 0xFFFF0000, 0xFFF7FFFF, 0xFFDF0F7F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x30007F7F,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
+ 0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x01FF00FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000F0007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00003C5F,
+ 0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_grapheme_extend.c b/lib/unictype/pr_grapheme_extend.c
new file mode 100644
index 0000000..c51e82e
--- /dev/null
+++ b/lib/unictype/pr_grapheme_extend.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_grapheme_extend table. */
+#include "pr_grapheme_extend.h"
+
+bool
+uc_is_property_grapheme_extend (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_grapheme_extend, uc);
+}
+
+const uc_property_t UC_PROPERTY_GRAPHEME_EXTEND =
+ { &uc_is_property_grapheme_extend };
diff --git a/lib/unictype/pr_grapheme_extend.h b/lib/unictype/pr_grapheme_extend.h
new file mode 100644
index 0000000..2cd1ca6
--- /dev/null
+++ b/lib/unictype/pr_grapheme_extend.h
@@ -0,0 +1,528 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[26 << 4];
+ }
+u_property_grapheme_extend =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ 16 + 384 * sizeof (short) / sizeof (int) + 112,
+ 16 + 384 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 144,
+ 16 + 384 * sizeof (short) / sizeof (int) + 160,
+ 16 + 384 * sizeof (short) / sizeof (int) + 176,
+ 16 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 256,
+ 16 + 384 * sizeof (short) / sizeof (int) + 272,
+ 16 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 320,
+ 16 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 368,
+ 16 + 384 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+ 0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+ 0x00000002, 0x50000000, 0x0080201E, 0x0000000C,
+ 0x00000006, 0x10000000, 0x00023986, 0x00230000,
+ 0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
+ 0x00000002, 0xD0000000, 0x00C0201E, 0x0000000C,
+ 0x00000004, 0x40000000, 0x00802001, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
+ 0x00000000, 0x90000000, 0x00603044, 0x0000000C,
+ 0x00000000, 0x40000000, 0x0080201E, 0x0000000C,
+ 0x00000000, 0x00000000, 0x805C8400, 0x00000000,
+ 0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
+ 0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
+ 0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+ 0x00002064, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0x3F800000, 0x200FFE40, 0x00000000,
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x0E040187, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+ 0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+ 0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+ 0x00003000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
+ 0x06000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x30078000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000844, 0x00000060, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807C3A0,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_grapheme_link.c b/lib/unictype/pr_grapheme_link.c
new file mode 100644
index 0000000..e7aa133
--- /dev/null
+++ b/lib/unictype/pr_grapheme_link.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_grapheme_link table. */
+#include "pr_grapheme_link.h"
+
+bool
+uc_is_property_grapheme_link (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_grapheme_link, uc);
+}
+
+const uc_property_t UC_PROPERTY_GRAPHEME_LINK =
+ { &uc_is_property_grapheme_link };
diff --git a/lib/unictype/pr_grapheme_link.h b/lib/unictype/pr_grapheme_link.h
new file mode 100644
index 0000000..1437975
--- /dev/null
+++ b/lib/unictype/pr_grapheme_link.h
@@ -0,0 +1,319 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_grapheme_link =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000400, 0x00000000,
+ 0x00000000, 0x04000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x06000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00100000, 0x00100000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00040000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00000400, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000000,
+ 0x00000000, 0x00000000, 0x00080000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_hex_digit.c b/lib/unictype/pr_hex_digit.c
new file mode 100644
index 0000000..09357b9
--- /dev/null
+++ b/lib/unictype/pr_hex_digit.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_hex_digit table. */
+#include "pr_hex_digit.h"
+
+bool
+uc_is_property_hex_digit (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_hex_digit, uc);
+}
+
+const uc_property_t UC_PROPERTY_HEX_DIGIT =
+ { &uc_is_property_hex_digit };
diff --git a/lib/unictype/pr_hex_digit.h b/lib/unictype/pr_hex_digit.h
new file mode 100644
index 0000000..8bbe5f1
--- /dev/null
+++ b/lib/unictype/pr_hex_digit.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_hex_digit =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x0000007E, 0x0000007E,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x0000007E, 0x0000007E, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_hyphen.c b/lib/unictype/pr_hyphen.c
new file mode 100644
index 0000000..22a55b6
--- /dev/null
+++ b/lib/unictype/pr_hyphen.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_hyphen table. */
+#include "pr_hyphen.h"
+
+bool
+uc_is_property_hyphen (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_hyphen, uc);
+}
+
+const uc_property_t UC_PROPERTY_HYPHEN =
+ { &uc_is_property_hyphen };
diff --git a/lib/unictype/pr_hyphen.h b/lib/unictype/pr_hyphen.h
new file mode 100644
index 0000000..f52c26f
--- /dev/null
+++ b/lib/unictype/pr_hyphen.h
@@ -0,0 +1,180 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_property_hyphen =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96
+ },
+ {
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00030000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000020,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_id_continue.c b/lib/unictype/pr_id_continue.c
new file mode 100644
index 0000000..5903dc6
--- /dev/null
+++ b/lib/unictype/pr_id_continue.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_id_continue table. */
+#include "pr_id_continue.h"
+
+bool
+uc_is_property_id_continue (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_id_continue, uc);
+}
+
+const uc_property_t UC_PROPERTY_ID_CONTINUE =
+ { &uc_is_property_id_continue };
diff --git a/lib/unictype/pr_id_continue.h b/lib/unictype/pr_id_continue.h
new file mode 100644
index 0000000..9c55e7f
--- /dev/null
+++ b/lib/unictype/pr_id_continue.h
@@ -0,0 +1,732 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[4 << 7];
+ /*unsigned*/ int level3[45 << 4];
+ }
+u_property_id_continue =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ 16 * sizeof (int) / sizeof (short) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 384
+ },
+ {
+ 16 + 512 * sizeof (short) / sizeof (int) + 0,
+ 16 + 512 * sizeof (short) / sizeof (int) + 16,
+ 16 + 512 * sizeof (short) / sizeof (int) + 32,
+ 16 + 512 * sizeof (short) / sizeof (int) + 48,
+ 16 + 512 * sizeof (short) / sizeof (int) + 64,
+ 16 + 512 * sizeof (short) / sizeof (int) + 80,
+ 16 + 512 * sizeof (short) / sizeof (int) + 96,
+ 16 + 512 * sizeof (short) / sizeof (int) + 112,
+ 16 + 512 * sizeof (short) / sizeof (int) + 128,
+ 16 + 512 * sizeof (short) / sizeof (int) + 144,
+ 16 + 512 * sizeof (short) / sizeof (int) + 160,
+ 16 + 512 * sizeof (short) / sizeof (int) + 176,
+ 16 + 512 * sizeof (short) / sizeof (int) + 192,
+ 16 + 512 * sizeof (short) / sizeof (int) + 208,
+ 16 + 512 * sizeof (short) / sizeof (int) + 224,
+ 16 + 512 * sizeof (short) / sizeof (int) + 240,
+ 16 + 512 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 320,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 336,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 352,
+ 16 + 512 * sizeof (short) / sizeof (int) + 368,
+ 16 + 512 * sizeof (short) / sizeof (int) + 384,
+ 16 + 512 * sizeof (short) / sizeof (int) + 400,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 432,
+ 16 + 512 * sizeof (short) / sizeof (int) + 448,
+ 16 + 512 * sizeof (short) / sizeof (int) + 464,
+ 16 + 512 * sizeof (short) / sizeof (int) + 480,
+ 16 + 512 * sizeof (short) / sizeof (int) + 496,
+ 16 + 512 * sizeof (short) / sizeof (int) + 512,
+ 16 + 512 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 544,
+ 16 + 512 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 576,
+ 16 + 512 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 608,
+ 16 + 512 * sizeof (short) / sizeof (int) + 624,
+ 16 + 512 * sizeof (short) / sizeof (int) + 640,
+ 16 + 512 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 704,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x87FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04A00400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3CDFFFFF,
+ 0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
+ 0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
+ 0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
+ 0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
+ 0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
+ 0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
+ 0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
+ 0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
+ 0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
+ 0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
+ 0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
+ 0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
+ 0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
+ 0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
+ 0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x0003FE00,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
+ 0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
+ 0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
+ 0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x80000000, 0x00100001, 0x80020000,
+ 0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+ 0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+ 0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xFE7FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x0000FFFF, 0x0018007F, 0x0000E000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x03FF0000, 0x87FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_id_start.c b/lib/unictype/pr_id_start.c
new file mode 100644
index 0000000..7d5f35f
--- /dev/null
+++ b/lib/unictype/pr_id_start.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_id_start table. */
+#include "pr_id_start.h"
+
+bool
+uc_is_property_id_start (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_id_start, uc);
+}
+
+const uc_property_t UC_PROPERTY_ID_START =
+ { &uc_is_property_id_start };
diff --git a/lib/unictype/pr_id_start.h b/lib/unictype/pr_id_start.h
new file mode 100644
index 0000000..178d718
--- /dev/null
+++ b/lib/unictype/pr_id_start.h
@@ -0,0 +1,580 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[42 << 4];
+ }
+u_property_id_start =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000000, 0x3CDF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
+ 0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
+ 0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+ 0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
+ 0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xF87FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFDF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_ideographic.c b/lib/unictype/pr_ideographic.c
new file mode 100644
index 0000000..18f7d02
--- /dev/null
+++ b/lib/unictype/pr_ideographic.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_ideographic table. */
+#include "pr_ideographic.h"
+
+bool
+uc_is_property_ideographic (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_ideographic, uc);
+}
+
+const uc_property_t UC_PROPERTY_IDEOGRAPHIC =
+ { &uc_is_property_ideographic };
diff --git a/lib/unictype/pr_ideographic.h b/lib/unictype/pr_ideographic.h
new file mode 100644
index 0000000..b0b2db2
--- /dev/null
+++ b/lib/unictype/pr_ideographic.h
@@ -0,0 +1,316 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[8 << 4];
+ }
+u_property_ideographic =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ 4 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 32,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 64,
+ 4 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1
+ },
+ {
+ 0x000000C0, 0x070003FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_ids_binary_operator.c b/lib/unictype/pr_ids_binary_operator.c
new file mode 100644
index 0000000..74e50c1
--- /dev/null
+++ b/lib/unictype/pr_ids_binary_operator.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_ids_binary_operator table. */
+#include "pr_ids_binary_operator.h"
+
+bool
+uc_is_property_ids_binary_operator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_ids_binary_operator, uc);
+}
+
+const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR =
+ { &uc_is_property_ids_binary_operator };
diff --git a/lib/unictype/pr_ids_binary_operator.h b/lib/unictype/pr_ids_binary_operator.h
new file mode 100644
index 0000000..2d7f401
--- /dev/null
+++ b/lib/unictype/pr_ids_binary_operator.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_ids_binary_operator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0FF30000
+ }
+};
diff --git a/lib/unictype/pr_ids_trinary_operator.c b/lib/unictype/pr_ids_trinary_operator.c
new file mode 100644
index 0000000..422c219
--- /dev/null
+++ b/lib/unictype/pr_ids_trinary_operator.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_ids_trinary_operator table. */
+#include "pr_ids_trinary_operator.h"
+
+bool
+uc_is_property_ids_trinary_operator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_ids_trinary_operator, uc);
+}
+
+const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR =
+ { &uc_is_property_ids_trinary_operator };
diff --git a/lib/unictype/pr_ids_trinary_operator.h b/lib/unictype/pr_ids_trinary_operator.h
new file mode 100644
index 0000000..f4e57d8
--- /dev/null
+++ b/lib/unictype/pr_ids_trinary_operator.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_ids_trinary_operator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C0000
+ }
+};
diff --git a/lib/unictype/pr_ignorable_control.c b/lib/unictype/pr_ignorable_control.c
new file mode 100644
index 0000000..00a7223
--- /dev/null
+++ b/lib/unictype/pr_ignorable_control.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_ignorable_control table. */
+#include "pr_ignorable_control.h"
+
+bool
+uc_is_property_ignorable_control (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_ignorable_control, uc);
+}
+
+const uc_property_t UC_PROPERTY_IGNORABLE_CONTROL =
+ { &uc_is_property_ignorable_control };
diff --git a/lib/unictype/pr_ignorable_control.h b/lib/unictype/pr_ignorable_control.h
new file mode 100644
index 0000000..426c5f7
--- /dev/null
+++ b/lib/unictype/pr_ignorable_control.h
@@ -0,0 +1,452 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_property_ignorable_control =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x0FFFC1FE, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFDF, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00300000, 0x00000000, 0x00000000,
+ 0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0E000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_iso_control.c b/lib/unictype/pr_iso_control.c
new file mode 100644
index 0000000..9d2f392
--- /dev/null
+++ b/lib/unictype/pr_iso_control.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_iso_control table. */
+#include "pr_iso_control.h"
+
+bool
+uc_is_property_iso_control (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_iso_control, uc);
+}
+
+#else
+
+bool
+uc_is_property_iso_control (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_Cc);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_ISO_CONTROL =
+ { &uc_is_property_iso_control };
diff --git a/lib/unictype/pr_iso_control.h b/lib/unictype/pr_iso_control.h
new file mode 100644
index 0000000..0953791
--- /dev/null
+++ b/lib/unictype/pr_iso_control.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_iso_control =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
+ 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_join_control.c b/lib/unictype/pr_join_control.c
new file mode 100644
index 0000000..ad22cea
--- /dev/null
+++ b/lib/unictype/pr_join_control.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_join_control table. */
+#include "pr_join_control.h"
+
+bool
+uc_is_property_join_control (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_join_control, uc);
+}
+
+#else
+
+bool
+uc_is_property_join_control (ucs4_t uc)
+{
+ return (uc >= 0x200C && uc <= 0x200D);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_JOIN_CONTROL =
+ { &uc_is_property_join_control };
diff --git a/lib/unictype/pr_join_control.h b/lib/unictype/pr_join_control.h
new file mode 100644
index 0000000..649a168
--- /dev/null
+++ b/lib/unictype/pr_join_control.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_join_control =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00003000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_left_of_pair.c b/lib/unictype/pr_left_of_pair.c
new file mode 100644
index 0000000..62b45f4
--- /dev/null
+++ b/lib/unictype/pr_left_of_pair.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_left_of_pair table. */
+#include "pr_left_of_pair.h"
+
+bool
+uc_is_property_left_of_pair (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_left_of_pair, uc);
+}
+
+const uc_property_t UC_PROPERTY_LEFT_OF_PAIR =
+ { &uc_is_property_left_of_pair };
diff --git a/lib/unictype/pr_left_of_pair.h b/lib/unictype/pr_left_of_pair.h
new file mode 100644
index 0000000..af7ee2c
--- /dev/null
+++ b/lib/unictype/pr_left_of_pair.h
@@ -0,0 +1,184 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[8 << 4];
+ }
+u_property_left_of_pair =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112
+ },
+ {
+ 0x00000000, 0x00000100, 0x08000000, 0x08000000,
+ 0x00000000, 0x00000800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x14000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x08000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xDD000000, 0x02000000, 0x00000020, 0x20000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x25515500, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xAAA00000, 0x2A00000A, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000100, 0x08000000, 0x08000000, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_line_separator.c b/lib/unictype/pr_line_separator.c
new file mode 100644
index 0000000..0c0b320
--- /dev/null
+++ b/lib/unictype/pr_line_separator.c
@@ -0,0 +1,55 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_line_separator table. */
+#include "pr_line_separator.h"
+
+bool
+uc_is_property_line_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_line_separator, uc);
+}
+
+#elif 0
+
+bool
+uc_is_property_line_separator (ucs4_t uc)
+{
+ return uc_is_category_Zl (uc);
+}
+
+#else
+
+bool
+uc_is_property_line_separator (ucs4_t uc)
+{
+ return (uc == 0x2028);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_LINE_SEPARATOR =
+ { &uc_is_property_line_separator };
diff --git a/lib/unictype/pr_line_separator.h b/lib/unictype/pr_line_separator.h
new file mode 100644
index 0000000..56dd92b
--- /dev/null
+++ b/lib/unictype/pr_line_separator.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_line_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000100, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_logical_order_exception.c b/lib/unictype/pr_logical_order_exception.c
new file mode 100644
index 0000000..e06f271
--- /dev/null
+++ b/lib/unictype/pr_logical_order_exception.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_logical_order_exception table. */
+#include "pr_logical_order_exception.h"
+
+bool
+uc_is_property_logical_order_exception (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_logical_order_exception, uc);
+}
+
+const uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION =
+ { &uc_is_property_logical_order_exception };
diff --git a/lib/unictype/pr_logical_order_exception.h b/lib/unictype/pr_logical_order_exception.h
new file mode 100644
index 0000000..c8894ad
--- /dev/null
+++ b/lib/unictype/pr_logical_order_exception.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_logical_order_exception =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x0000001F, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_lowercase.c b/lib/unictype/pr_lowercase.c
new file mode 100644
index 0000000..ed719da
--- /dev/null
+++ b/lib/unictype/pr_lowercase.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_lowercase table. */
+#include "pr_lowercase.h"
+
+bool
+uc_is_property_lowercase (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_lowercase, uc);
+}
+
+const uc_property_t UC_PROPERTY_LOWERCASE =
+ { &uc_is_property_lowercase };
diff --git a/lib/unictype/pr_lowercase.h b/lib/unictype/pr_lowercase.h
new file mode 100644
index 0000000..3443aec
--- /dev/null
+++ b/lib/unictype/pr_lowercase.h
@@ -0,0 +1,339 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[14 << 4];
+ }
+u_property_lowercase =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0x80000000, 0xFF7FFFFF,
+ 0xAAAAAAAA, 0x55AAAAAA, 0xAAAAAB55, 0xD4AAAAAA,
+ 0x4E243129, 0xE6512D2A, 0xB5555240, 0xAA29AAAA,
+ 0xAAAAAAAA, 0x93FAAAAA, 0xFFFFAA85, 0xFFFFFFFF,
+ 0xFFEFFFFF, 0x01FFFFFF, 0x00000003, 0x0000001F,
+ 0x00000000, 0x00000000, 0x00000020, 0x3C8A0000,
+ 0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
+ 0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
+ 0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
+ 0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+ 0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
+ 0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0008C400, 0x32108000, 0x000043C0, 0xFFFF0000,
+ 0x00000010, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x3FDA1562,
+ 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
+ 0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+ 0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FFAAAA,
+ 0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFF00, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFC000000, 0x000FFFFF, 0xFFDFC000, 0x000000FF,
+ 0x0FFFFFFC, 0xEBC00000, 0x0000FFEF, 0xFFFFFC00,
+ 0xC000000F, 0x00FFFFFF, 0xFFFC0000, 0x00000FFF,
+ 0xFFFFFFC0, 0xFC000000, 0x000FFFFF, 0xFFFFC000,
+ 0x000000FF, 0x0FFFFFFC, 0xFFC00000, 0x0000FFFF,
+ 0xFFFFFC00, 0x0000003F, 0xF7FFFFFC, 0xF0000003,
+ 0x0FDFFFFF, 0xFFC00000, 0x003F7FFF, 0xFFFF0000,
+ 0x0000FDFF, 0xFFFFFC00, 0x00000BF7, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_math.c b/lib/unictype/pr_math.c
new file mode 100644
index 0000000..a4971d2
--- /dev/null
+++ b/lib/unictype/pr_math.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_math table. */
+#include "pr_math.h"
+
+bool
+uc_is_property_math (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_math, uc);
+}
+
+const uc_property_t UC_PROPERTY_MATH =
+ { &uc_is_property_math };
diff --git a/lib/unictype/pr_math.h b/lib/unictype/pr_math.h
new file mode 100644
index 0000000..dd3ae7e
--- /dev/null
+++ b/lib/unictype/pr_math.h
@@ -0,0 +1,335 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[13 << 4];
+ }
+u_property_math =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x70000800, 0x40000000, 0x50000000,
+ 0x00000000, 0x00021000, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00270000, 0x00730000,
+ 0x000001C0, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00400000, 0x001C0000, 0x00040011, 0x7C00001E,
+ 0x00007C00, 0x00000000, 0x1FFF0000, 0x0000F862,
+ 0x3E2FFC04, 0xF1FBB310, 0x00000BFF, 0x00000000,
+ 0xFFFF0000, 0xF0C37EFF, 0x2FFFFFFF, 0xFFF00030,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000F00, 0x00000003, 0x00000000, 0x10000000,
+ 0xF8000000, 0x00BFFFFF, 0xF0010000, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF0FFC003, 0x000F8CC3, 0xFF001F94,
+ 0x00000060, 0x00000000, 0x00000005, 0x0000E00F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF17FF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFFFF0000, 0x00001F9F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000017E,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x70000800, 0x50000000, 0x50000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00001E04,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_non_break.c b/lib/unictype/pr_non_break.c
new file mode 100644
index 0000000..d1855d4
--- /dev/null
+++ b/lib/unictype/pr_non_break.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_non_break table. */
+#include "pr_non_break.h"
+
+bool
+uc_is_property_non_break (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_non_break, uc);
+}
+
+const uc_property_t UC_PROPERTY_NON_BREAK =
+ { &uc_is_property_non_break };
diff --git a/lib/unictype/pr_non_break.h b/lib/unictype/pr_non_break.h
new file mode 100644
index 0000000..0525fb9
--- /dev/null
+++ b/lib/unictype/pr_non_break.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_non_break =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xF0008000, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00041100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00020080, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_not_a_character.c b/lib/unictype/pr_not_a_character.c
new file mode 100644
index 0000000..05910fe
--- /dev/null
+++ b/lib/unictype/pr_not_a_character.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_not_a_character table. */
+#include "pr_not_a_character.h"
+
+bool
+uc_is_property_not_a_character (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_not_a_character, uc);
+}
+
+const uc_property_t UC_PROPERTY_NOT_A_CHARACTER =
+ { &uc_is_property_not_a_character };
diff --git a/lib/unictype/pr_not_a_character.h b/lib/unictype/pr_not_a_character.h
new file mode 100644
index 0000000..267df70
--- /dev/null
+++ b/lib/unictype/pr_not_a_character.h
@@ -0,0 +1,306 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_not_a_character =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 16
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xC0000000
+ }
+};
diff --git a/lib/unictype/pr_numeric.c b/lib/unictype/pr_numeric.c
new file mode 100644
index 0000000..dfa2250
--- /dev/null
+++ b/lib/unictype/pr_numeric.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_numeric table. */
+#include "pr_numeric.h"
+
+bool
+uc_is_property_numeric (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_numeric, uc);
+}
+
+const uc_property_t UC_PROPERTY_NUMERIC =
+ { &uc_is_property_numeric };
diff --git a/lib/unictype/pr_numeric.h b/lib/unictype/pr_numeric.h
new file mode 100644
index 0000000..14aaa03
--- /dev/null
+++ b/lib/unictype/pr_numeric.h
@@ -0,0 +1,540 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[32 << 4];
+ }
+u_property_numeric =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x720C0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F0FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x003FFFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000003FF, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x1FFFFE00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0001C000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03FF03FF,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03F10000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
+ 0x000001EF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000080, 0x070003FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003C0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0xFFFE0000, 0x00000000,
+ 0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x01080800,
+ 0x00000000, 0x00040000, 0x000A0000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFF80, 0x000FFFFF, 0xFFFFFFFF, 0x01FFFFFF,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000000F, 0x00000402, 0x00000000,
+ 0x00000000, 0x00000000, 0x003E0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03C00000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFF3FFFF, 0xFF3FFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0003FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00010000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_alphabetic.c b/lib/unictype/pr_other_alphabetic.c
new file mode 100644
index 0000000..1a880f5
--- /dev/null
+++ b/lib/unictype/pr_other_alphabetic.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_alphabetic table. */
+#include "pr_other_alphabetic.h"
+
+bool
+uc_is_property_other_alphabetic (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_alphabetic, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_ALPHABETIC =
+ { &uc_is_property_other_alphabetic };
diff --git a/lib/unictype/pr_other_alphabetic.h b/lib/unictype/pr_other_alphabetic.h
new file mode 100644
index 0000000..c0c4271
--- /dev/null
+++ b/lib/unictype/pr_other_alphabetic.h
@@ -0,0 +1,359 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[19 << 4];
+ }
+u_property_other_alphabetic =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000020, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xBFFF0000, 0x000000B6, 0x00000000,
+ 0x07FF0000, 0x00000000, 0x7EFFF800, 0x00010000,
+ 0x00000000, 0x00000000, 0x1FC00000, 0x0000219E,
+ 0x00020000, 0xFFFF0000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0001FFC0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000E, 0xC0000000, 0x00001FFF, 0x0000000C,
+ 0x0000000E, 0xC0000000, 0x0080199F, 0x0000000C,
+ 0x0000000E, 0xC0000000, 0x00021987, 0x00230000,
+ 0x0000000E, 0xC0000000, 0x00001BBF, 0x0000000C,
+ 0x0000000E, 0xC0000000, 0x00C0199F, 0x0000000C,
+ 0x00000004, 0xC0000000, 0x00801DC7, 0x00000000,
+ 0x0000000E, 0xC0000000, 0x00601DDF, 0x0000000C,
+ 0x0000000C, 0xC0000000, 0x00601DDF, 0x0000000C,
+ 0x0000000C, 0xC0000000, 0x00801DDF, 0x0000000C,
+ 0x0000000C, 0x00000000, 0xFF5F8000, 0x000C0000,
+ 0x00000000, 0x07F20000, 0x00002000, 0x00000000,
+ 0x00000000, 0x1BF20000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFE0000,
+ 0xFEFF0003, 0x1FFFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x797FF800, 0xC3C00000, 0x001E0185,
+ 0x0000007C, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000C0000, 0x000C0000, 0x000C0000, 0x000C0000,
+ 0x00000000, 0xFFC00000, 0x000001FF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x01FF0FFF, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
+ 0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0xFFE00000, 0x0000000F, 0x00000000,
+ 0x00000007, 0x000003FE, 0x00000000, 0x00000000,
+ 0x00000000, 0x003FFFF0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+ 0x00000000, 0x000000F8, 0x00000000, 0x00000000,
+ 0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
+ 0x00000000, 0x000007C0, 0x0007FF80, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x40000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000F06E, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_default_ignorable_code_point.c b/lib/unictype/pr_other_default_ignorable_code_point.c
new file mode 100644
index 0000000..434977d
--- /dev/null
+++ b/lib/unictype/pr_other_default_ignorable_code_point.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_default_ignorable_code_point table. */
+#include "pr_other_default_ignorable_code_point.h"
+
+bool
+uc_is_property_other_default_ignorable_code_point (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_default_ignorable_code_point, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT =
+ { &uc_is_property_other_default_ignorable_code_point };
diff --git a/lib/unictype/pr_other_default_ignorable_code_point.h b/lib/unictype/pr_other_default_ignorable_code_point.h
new file mode 100644
index 0000000..621cf4c
--- /dev/null
+++ b/lib/unictype/pr_other_default_ignorable_code_point.h
@@ -0,0 +1,324 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_property_other_default_ignorable_code_point =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 64,
+ 16 + 256 * sizeof (short) / sizeof (int) + 80,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ 16 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00008000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80000000, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000003E0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000010,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x01FF0000,
+ 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_other_grapheme_extend.c b/lib/unictype/pr_other_grapheme_extend.c
new file mode 100644
index 0000000..fb7af9c
--- /dev/null
+++ b/lib/unictype/pr_other_grapheme_extend.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_grapheme_extend table. */
+#include "pr_other_grapheme_extend.h"
+
+bool
+uc_is_property_other_grapheme_extend (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_grapheme_extend, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_GRAPHEME_EXTEND =
+ { &uc_is_property_other_grapheme_extend };
diff --git a/lib/unictype/pr_other_grapheme_extend.h b/lib/unictype/pr_other_grapheme_extend.h
new file mode 100644
index 0000000..cbf3b98
--- /dev/null
+++ b/lib/unictype/pr_other_grapheme_extend.h
@@ -0,0 +1,307 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[6 << 4];
+ }
+u_property_other_grapheme_extend =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x40000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00600004, 0x00000000,
+ 0x00000000, 0x40000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x00000000, 0x80008000, 0x00000000,
+ 0x00003000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0007C020,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_id_continue.c b/lib/unictype/pr_other_id_continue.c
new file mode 100644
index 0000000..75e71c3
--- /dev/null
+++ b/lib/unictype/pr_other_id_continue.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_id_continue table. */
+#include "pr_other_id_continue.h"
+
+bool
+uc_is_property_other_id_continue (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_id_continue, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE =
+ { &uc_is_property_other_id_continue };
diff --git a/lib/unictype/pr_other_id_continue.h b/lib/unictype/pr_other_id_continue.h
new file mode 100644
index 0000000..78e2b63
--- /dev/null
+++ b/lib/unictype/pr_other_id_continue.h
@@ -0,0 +1,164 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_property_other_id_continue =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00800000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0003FE00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_id_start.c b/lib/unictype/pr_other_id_start.c
new file mode 100644
index 0000000..1858e47
--- /dev/null
+++ b/lib/unictype/pr_other_id_start.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_id_start table. */
+#include "pr_other_id_start.h"
+
+bool
+uc_is_property_other_id_start (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_id_start, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_ID_START =
+ { &uc_is_property_other_id_start };
diff --git a/lib/unictype/pr_other_id_start.h b/lib/unictype/pr_other_id_start.h
new file mode 100644
index 0000000..233f80f
--- /dev/null
+++ b/lib/unictype/pr_other_id_start.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_other_id_start =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01000000, 0x00004000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_lowercase.c b/lib/unictype/pr_other_lowercase.c
new file mode 100644
index 0000000..c199b17
--- /dev/null
+++ b/lib/unictype/pr_other_lowercase.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_lowercase table. */
+#include "pr_other_lowercase.h"
+
+bool
+uc_is_property_other_lowercase (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_lowercase, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_LOWERCASE =
+ { &uc_is_property_other_lowercase };
diff --git a/lib/unictype/pr_other_lowercase.h b/lib/unictype/pr_other_lowercase.h
new file mode 100644
index 0000000..7811908
--- /dev/null
+++ b/lib/unictype/pr_other_lowercase.h
@@ -0,0 +1,176 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[6 << 4];
+ }
+u_property_other_lowercase =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x01FF0000, 0x00000003, 0x0000001F,
+ 0x00000000, 0x00000000, 0x00000020, 0x04000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x01000003,
+ 0xF8000000, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_other_math.c b/lib/unictype/pr_other_math.c
new file mode 100644
index 0000000..7e130e7
--- /dev/null
+++ b/lib/unictype/pr_other_math.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_math table. */
+#include "pr_other_math.h"
+
+bool
+uc_is_property_other_math (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_math, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_MATH =
+ { &uc_is_property_other_math };
diff --git a/lib/unictype/pr_other_math.h b/lib/unictype/pr_other_math.h
new file mode 100644
index 0000000..116311d
--- /dev/null
+++ b/lib/unictype/pr_other_math.h
@@ -0,0 +1,323 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[10 << 4];
+ }
+u_property_other_math =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x40000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00270000, 0x00330000,
+ 0x00400000, 0x001C0000, 0x00000001, 0x6000001E,
+ 0x00006000, 0x00000000, 0x1FFF0000, 0x0000F862,
+ 0x3E2FFC04, 0xF1FBB310, 0x000003E0, 0x00000000,
+ 0xF3E00000, 0xF0C33EB6, 0x2FEB3FFF, 0x00000030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00B00000, 0x00010000, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF07FC003, 0x000F8CC1, 0x00001F94,
+ 0x00000060, 0x00000000, 0x00000005, 0x0000600F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01FFFFF8, 0x00000000, 0x0F000000, 0x30000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000010A,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x50000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_other_uppercase.c b/lib/unictype/pr_other_uppercase.c
new file mode 100644
index 0000000..278ce51
--- /dev/null
+++ b/lib/unictype/pr_other_uppercase.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_other_uppercase table. */
+#include "pr_other_uppercase.h"
+
+bool
+uc_is_property_other_uppercase (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_other_uppercase, uc);
+}
+
+const uc_property_t UC_PROPERTY_OTHER_UPPERCASE =
+ { &uc_is_property_other_uppercase };
diff --git a/lib/unictype/pr_other_uppercase.h b/lib/unictype/pr_other_uppercase.h
new file mode 100644
index 0000000..be01f4d
--- /dev/null
+++ b/lib/unictype/pr_other_uppercase.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_other_uppercase =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0000FFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_paired_punctuation.c b/lib/unictype/pr_paired_punctuation.c
new file mode 100644
index 0000000..52b0dbb
--- /dev/null
+++ b/lib/unictype/pr_paired_punctuation.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_paired_punctuation table. */
+#include "pr_paired_punctuation.h"
+
+bool
+uc_is_property_paired_punctuation (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_paired_punctuation, uc);
+}
+
+const uc_property_t UC_PROPERTY_PAIRED_PUNCTUATION =
+ { &uc_is_property_paired_punctuation };
diff --git a/lib/unictype/pr_paired_punctuation.h b/lib/unictype/pr_paired_punctuation.h
new file mode 100644
index 0000000..7723d32
--- /dev/null
+++ b/lib/unictype/pr_paired_punctuation.h
@@ -0,0 +1,184 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[8 << 4];
+ }
+u_property_paired_punctuation =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112
+ },
+ {
+ 0x00000000, 0x00000300, 0x28000000, 0x28000000,
+ 0x00000000, 0x08000800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x3C000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF000000, 0x06000000, 0x00000060, 0x60000000,
+ 0x00006000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000600, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xEFF3FF00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFE00000, 0x7E00001F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000300, 0x28000000, 0x28000000, 0x0000000C,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_paragraph_separator.c b/lib/unictype/pr_paragraph_separator.c
new file mode 100644
index 0000000..c1aeff3
--- /dev/null
+++ b/lib/unictype/pr_paragraph_separator.c
@@ -0,0 +1,55 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_paragraph_separator table. */
+#include "pr_paragraph_separator.h"
+
+bool
+uc_is_property_paragraph_separator (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_paragraph_separator, uc);
+}
+
+#elif 0
+
+bool
+uc_is_property_paragraph_separator (ucs4_t uc)
+{
+ return uc_is_category_Zp (uc);
+}
+
+#else
+
+bool
+uc_is_property_paragraph_separator (ucs4_t uc)
+{
+ return (uc == 0x2029);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_PARAGRAPH_SEPARATOR =
+ { &uc_is_property_paragraph_separator };
diff --git a/lib/unictype/pr_paragraph_separator.h b/lib/unictype/pr_paragraph_separator.h
new file mode 100644
index 0000000..72c2a85
--- /dev/null
+++ b/lib/unictype/pr_paragraph_separator.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_paragraph_separator =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000200, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_pattern_syntax.c b/lib/unictype/pr_pattern_syntax.c
new file mode 100644
index 0000000..5f5366f
--- /dev/null
+++ b/lib/unictype/pr_pattern_syntax.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_pattern_syntax table. */
+#include "pr_pattern_syntax.h"
+
+bool
+uc_is_property_pattern_syntax (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_pattern_syntax, uc);
+}
+
+const uc_property_t UC_PROPERTY_PATTERN_SYNTAX =
+ { &uc_is_property_pattern_syntax };
diff --git a/lib/unictype/pr_pattern_syntax.h b/lib/unictype/pr_pattern_syntax.h
new file mode 100644
index 0000000..f399065
--- /dev/null
+++ b/lib/unictype/pr_pattern_syntax.h
@@ -0,0 +1,188 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_pattern_syntax =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128
+ },
+ {
+ 0x00000000, 0xFC00FFFE, 0x78000001, 0x78000001,
+ 0x00000000, 0x88435AFE, 0x00800000, 0x00800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0x7FFF00FF, 0x7FEFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
+ 0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFF0E, 0x00010001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000060, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_pattern_white_space.c b/lib/unictype/pr_pattern_white_space.c
new file mode 100644
index 0000000..407cc7e
--- /dev/null
+++ b/lib/unictype/pr_pattern_white_space.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_pattern_white_space table. */
+#include "pr_pattern_white_space.h"
+
+bool
+uc_is_property_pattern_white_space (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_pattern_white_space, uc);
+}
+
+const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE =
+ { &uc_is_property_pattern_white_space };
diff --git a/lib/unictype/pr_pattern_white_space.h b/lib/unictype/pr_pattern_white_space.h
new file mode 100644
index 0000000..559d08f
--- /dev/null
+++ b/lib/unictype/pr_pattern_white_space.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_pattern_white_space =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00003E00, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000C000, 0x00000300, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_private_use.c b/lib/unictype/pr_private_use.c
new file mode 100644
index 0000000..64a28c7
--- /dev/null
+++ b/lib/unictype/pr_private_use.c
@@ -0,0 +1,49 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_private_use table. */
+#include "pr_private_use.h"
+
+bool
+uc_is_property_private_use (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_private_use, uc);
+}
+
+#else
+
+bool
+uc_is_property_private_use (ucs4_t uc)
+{
+ return (uc >= 0xE000 && uc <= 0xF8FF)
+ || (uc >= 0xF0000 && uc <= 0xFFFFD)
+ || (uc >= 0x100000 && uc <= 0x10FFFD);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_PRIVATE_USE =
+ { &uc_is_property_private_use };
diff --git a/lib/unictype/pr_private_use.h b/lib/unictype/pr_private_use.h
new file mode 100644
index 0000000..e18b60e
--- /dev/null
+++ b/lib/unictype/pr_private_use.h
@@ -0,0 +1,310 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[17];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_property_private_use =
+{
+ { 17 },
+ {
+ 18 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 * sizeof (int) / sizeof (short) + 128,
+ 18 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 0,
+ 18 + 256 * sizeof (short) / sizeof (int) + 32
+ },
+ {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF
+ }
+};
diff --git a/lib/unictype/pr_punctuation.c b/lib/unictype/pr_punctuation.c
new file mode 100644
index 0000000..00efeee
--- /dev/null
+++ b/lib/unictype/pr_punctuation.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_punctuation table. */
+#include "pr_punctuation.h"
+
+bool
+uc_is_property_punctuation (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_punctuation, uc);
+}
+
+#else
+
+bool
+uc_is_property_punctuation (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_P);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_PUNCTUATION =
+ { &uc_is_property_punctuation };
diff --git a/lib/unictype/pr_punctuation.h b/lib/unictype/pr_punctuation.h
new file mode 100644
index 0000000..cfa6649
--- /dev/null
+++ b/lib/unictype/pr_punctuation.h
@@ -0,0 +1,403 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[30 << 4];
+ }
+u_property_punctuation =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ 3 + 256 * sizeof (short) / sizeof (int) + 352,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 368,
+ 3 + 256 * sizeof (short) / sizeof (int) + 384,
+ 3 + 256 * sizeof (short) / sizeof (int) + 400,
+ 3 + 256 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 432,
+ 3 + 256 * sizeof (short) / sizeof (int) + 448,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x8C00F7EE, 0xB8000001, 0x28000000,
+ 0x00000000, 0x88800802, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x40000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000000,
+ 0x00000600, 0x40000000, 0x00000049, 0x00180000,
+ 0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
+ 0x00000000, 0x00000000, 0x00100000, 0x00000000,
+ 0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03800000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00010030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00100000,
+ 0x00000000, 0x00000000, 0x0C008000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000001FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00006000,
+ 0x18000000, 0x00000000, 0x00000000, 0x00003800,
+ 0x00000000, 0x00600000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x07700000, 0x00000000,
+ 0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000030, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0x00000000,
+ 0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFC000000, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
+ 0x00006000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000600, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x003FFF00,
+ 0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01FFFFF8, 0x00000000, 0x0F000000, 0x30000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFF3FF0E, 0x20010000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x08000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+ 0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+ 0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xC0000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FF0000, 0xFFFF0000, 0xFFF7FFFF, 0x00000D0B,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x8C00F7EE, 0xB8000001, 0xA8000000, 0x0000003F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000003, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x80000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_quotation_mark.c b/lib/unictype/pr_quotation_mark.c
new file mode 100644
index 0000000..e07fef2
--- /dev/null
+++ b/lib/unictype/pr_quotation_mark.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_quotation_mark table. */
+#include "pr_quotation_mark.h"
+
+bool
+uc_is_property_quotation_mark (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_quotation_mark, uc);
+}
+
+const uc_property_t UC_PROPERTY_QUOTATION_MARK =
+ { &uc_is_property_quotation_mark };
diff --git a/lib/unictype/pr_quotation_mark.h b/lib/unictype/pr_quotation_mark.h
new file mode 100644
index 0000000..e334761
--- /dev/null
+++ b/lib/unictype/pr_quotation_mark.h
@@ -0,0 +1,168 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[4 << 4];
+ }
+u_property_quotation_mark =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48
+ },
+ {
+ 0x00000000, 0x00000084, 0x00000000, 0x00000000,
+ 0x00000000, 0x08000800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF000000, 0x06000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xE000F000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001E, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000084, 0x00000000, 0x00000000, 0x0000000C,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_radical.c b/lib/unictype/pr_radical.c
new file mode 100644
index 0000000..1343162
--- /dev/null
+++ b/lib/unictype/pr_radical.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_radical table. */
+#include "pr_radical.h"
+
+bool
+uc_is_property_radical (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_radical, uc);
+}
+
+const uc_property_t UC_PROPERTY_RADICAL =
+ { &uc_is_property_radical };
diff --git a/lib/unictype/pr_radical.h b/lib/unictype/pr_radical.h
new file mode 100644
index 0000000..e4b54c1
--- /dev/null
+++ b/lib/unictype/pr_radical.h
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[1 << 4];
+ }
+u_property_radical =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_sentence_terminal.c b/lib/unictype/pr_sentence_terminal.c
new file mode 100644
index 0000000..85d5e68
--- /dev/null
+++ b/lib/unictype/pr_sentence_terminal.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_sentence_terminal table. */
+#include "pr_sentence_terminal.h"
+
+bool
+uc_is_property_sentence_terminal (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_sentence_terminal, uc);
+}
+
+const uc_property_t UC_PROPERTY_SENTENCE_TERMINAL =
+ { &uc_is_property_sentence_terminal };
diff --git a/lib/unictype/pr_sentence_terminal.h b/lib/unictype/pr_sentence_terminal.h
new file mode 100644
index 0000000..fd5bfbf
--- /dev/null
+++ b/lib/unictype/pr_sentence_terminal.h
@@ -0,0 +1,220 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[17 << 4];
+ }
+u_property_sentence_terminal =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ 2 + 128 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 96,
+ 2 + 128 * sizeof (short) / sizeof (int) + 112,
+ 2 + 128 * sizeof (short) / sizeof (int) + 128,
+ 2 + 128 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 176,
+ 2 + 128 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 208,
+ 2 + 128 * sizeof (short) / sizeof (int) + 224,
+ 2 + 128 * sizeof (short) / sizeof (int) + 240,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 256
+ },
+ {
+ 0x00000000, 0x80004002, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x50000000, 0x00000000,
+ 0x00000200, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00100000, 0x00000000,
+ 0x00000007, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000C00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000184,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00004000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000208, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000030, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xCC000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x18000000, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x30000000, 0x00000380, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00004000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000C000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00C00000,
+ 0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xE0000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00C40000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80004002, 0x00000000, 0x00000000, 0x00000002,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_soft_dotted.c b/lib/unictype/pr_soft_dotted.c
new file mode 100644
index 0000000..b261d3c
--- /dev/null
+++ b/lib/unictype/pr_soft_dotted.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_soft_dotted table. */
+#include "pr_soft_dotted.h"
+
+bool
+uc_is_property_soft_dotted (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_soft_dotted, uc);
+}
+
+const uc_property_t UC_PROPERTY_SOFT_DOTTED =
+ { &uc_is_property_soft_dotted };
diff --git a/lib/unictype/pr_soft_dotted.h b/lib/unictype/pr_soft_dotted.h
new file mode 100644
index 0000000..6342371
--- /dev/null
+++ b/lib/unictype/pr_soft_dotted.h
@@ -0,0 +1,319 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[9 << 4];
+ }
+u_property_soft_dotted =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000600,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000200, 0x00000100,
+ 0x20000000, 0x00040000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00080000,
+ 0x00000000, 0x00000000, 0x01400000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000004,
+ 0x00400000, 0x00000110, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000300, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0000000C, 0x00C00000, 0x00000000,
+ 0x00000C00, 0xC0000000, 0x00000000, 0x000C0000,
+ 0x00000000, 0x000000C0, 0x0C000000, 0x00000000,
+ 0x0000C000, 0x00000000, 0x0000000C, 0x00C00000,
+ 0x00000000, 0x00000C00, 0xC0000000, 0x00000000,
+ 0x000C0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_space.c b/lib/unictype/pr_space.c
new file mode 100644
index 0000000..5bc3881
--- /dev/null
+++ b/lib/unictype/pr_space.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_space table. */
+#include "pr_space.h"
+
+bool
+uc_is_property_space (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_space, uc);
+}
+
+#else
+
+bool
+uc_is_property_space (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_Zs);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_SPACE =
+ { &uc_is_property_space };
diff --git a/lib/unictype/pr_space.h b/lib/unictype/pr_space.h
new file mode 100644
index 0000000..b86a6a4
--- /dev/null
+++ b/lib/unictype/pr_space.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_space =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000007FF, 0x00008000, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_terminal_punctuation.c b/lib/unictype/pr_terminal_punctuation.c
new file mode 100644
index 0000000..30a79f9
--- /dev/null
+++ b/lib/unictype/pr_terminal_punctuation.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_terminal_punctuation table. */
+#include "pr_terminal_punctuation.h"
+
+bool
+uc_is_property_terminal_punctuation (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_terminal_punctuation, uc);
+}
+
+const uc_property_t UC_PROPERTY_TERMINAL_PUNCTUATION =
+ { &uc_is_property_terminal_punctuation };
diff --git a/lib/unictype/pr_terminal_punctuation.h b/lib/unictype/pr_terminal_punctuation.h
new file mode 100644
index 0000000..d6cd379
--- /dev/null
+++ b/lib/unictype/pr_terminal_punctuation.h
@@ -0,0 +1,371 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[22 << 4];
+ }
+u_property_terminal_punctuation =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 208,
+ 3 + 256 * sizeof (short) / sizeof (int) + 224,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 240,
+ 3 + 256 * sizeof (short) / sizeof (int) + 256,
+ 3 + 256 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 304,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 320,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 336,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x8C005002, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x40000000,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000200, 0x00000000, 0x00000008, 0x00000000,
+ 0x88001000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00100000, 0x00000000,
+ 0x000017FF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x03000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000030,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0C000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0007E100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000C00, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000001FE,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00006000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00003800,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x04700000, 0x00000000,
+ 0x0000033C, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000030, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xEC000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x30000000, 0x00000380, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00004000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000006, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00C00000,
+ 0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+ 0x00000000, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xE0000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00F70000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x8C005002, 0x00000000, 0x00000000, 0x00000012,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x80000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000F0000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_test.c b/lib/unictype/pr_test.c
new file mode 100644
index 0000000..6d997b4
--- /dev/null
+++ b/lib/unictype/pr_test.c
@@ -0,0 +1,27 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2005-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_property (ucs4_t uc, uc_property_t property)
+{
+ return property.test_fn (uc);
+}
diff --git a/lib/unictype/pr_titlecase.c b/lib/unictype/pr_titlecase.c
new file mode 100644
index 0000000..eeb7dcc
--- /dev/null
+++ b/lib/unictype/pr_titlecase.c
@@ -0,0 +1,47 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#if 0
+
+#include "bitmap.h"
+
+/* Define u_property_titlecase table. */
+#include "pr_titlecase.h"
+
+bool
+uc_is_property_titlecase (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_titlecase, uc);
+}
+
+#else
+
+bool
+uc_is_property_titlecase (ucs4_t uc)
+{
+ return uc_is_general_category (uc, UC_CATEGORY_Lt);
+}
+
+#endif
+
+const uc_property_t UC_PROPERTY_TITLECASE =
+ { &uc_is_property_titlecase };
diff --git a/lib/unictype/pr_titlecase.h b/lib/unictype/pr_titlecase.h
new file mode 100644
index 0000000..35dc74e
--- /dev/null
+++ b/lib/unictype/pr_titlecase.h
@@ -0,0 +1,160 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[2 << 4];
+ }
+u_property_titlecase =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000920, 0x00040000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF00FF00, 0x1000FF00, 0x00001000, 0x10000000
+ }
+};
diff --git a/lib/unictype/pr_unassigned_code_value.c b/lib/unictype/pr_unassigned_code_value.c
new file mode 100644
index 0000000..328b5e7
--- /dev/null
+++ b/lib/unictype/pr_unassigned_code_value.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_unassigned_code_value table. */
+#include "pr_unassigned_code_value.h"
+
+bool
+uc_is_property_unassigned_code_value (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_unassigned_code_value, uc);
+}
+
+const uc_property_t UC_PROPERTY_UNASSIGNED_CODE_VALUE =
+ { &uc_is_property_unassigned_code_value };
diff --git a/lib/unictype/pr_unassigned_code_value.h b/lib/unictype/pr_unassigned_code_value.h
new file mode 100644
index 0000000..5b12cf6
--- /dev/null
+++ b/lib/unictype/pr_unassigned_code_value.h
@@ -0,0 +1,884 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[5 << 7];
+ /*unsigned*/ int level3[51 << 4];
+ }
+u_property_unassigned_code_value =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ 16 * sizeof (int) / sizeof (short) + 256,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 384,
+ 16 * sizeof (int) / sizeof (short) + 512
+ },
+ {
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 0,
+ 16 + 640 * sizeof (short) / sizeof (int) + 16,
+ 16 + 640 * sizeof (short) / sizeof (int) + 32,
+ 16 + 640 * sizeof (short) / sizeof (int) + 48,
+ 16 + 640 * sizeof (short) / sizeof (int) + 64,
+ 16 + 640 * sizeof (short) / sizeof (int) + 80,
+ 16 + 640 * sizeof (short) / sizeof (int) + 96,
+ 16 + 640 * sizeof (short) / sizeof (int) + 112,
+ 16 + 640 * sizeof (short) / sizeof (int) + 128,
+ 16 + 640 * sizeof (short) / sizeof (int) + 144,
+ 16 + 640 * sizeof (short) / sizeof (int) + 160,
+ 16 + 640 * sizeof (short) / sizeof (int) + 176,
+ 16 + 640 * sizeof (short) / sizeof (int) + 192,
+ 16 + 640 * sizeof (short) / sizeof (int) + 208,
+ 16 + 640 * sizeof (short) / sizeof (int) + 224,
+ 16 + 640 * sizeof (short) / sizeof (int) + 240,
+ 16 + 640 * sizeof (short) / sizeof (int) + 256,
+ 16 + 640 * sizeof (short) / sizeof (int) + 272,
+ 16 + 640 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 304,
+ 16 + 640 * sizeof (short) / sizeof (int) + 320,
+ 16 + 640 * sizeof (short) / sizeof (int) + 336,
+ 16 + 640 * sizeof (short) / sizeof (int) + 352,
+ 16 + 640 * sizeof (short) / sizeof (int) + 368,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 384,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 400,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 416,
+ 16 + 640 * sizeof (short) / sizeof (int) + 432,
+ 16 + 640 * sizeof (short) / sizeof (int) + 448,
+ 16 + 640 * sizeof (short) / sizeof (int) + 464,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 480,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 496,
+ 16 + 640 * sizeof (short) / sizeof (int) + 512,
+ 16 + 640 * sizeof (short) / sizeof (int) + 528,
+ 16 + 640 * sizeof (short) / sizeof (int) + 544,
+ 16 + 640 * sizeof (short) / sizeof (int) + 560,
+ 16 + 640 * sizeof (short) / sizeof (int) + 576,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 608,
+ 16 + 640 * sizeof (short) / sizeof (int) + 624,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 640,
+ 16 + 640 * sizeof (short) / sizeof (int) + 656,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 672,
+ 16 + 640 * sizeof (short) / sizeof (int) + 688,
+ 16 + 640 * sizeof (short) / sizeof (int) + 704,
+ 16 + 640 * sizeof (short) / sizeof (int) + 720,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 736,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 752,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 768,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ 16 + 640 * sizeof (short) / sizeof (int) + 784,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 752,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 752,
+ 16 + 640 * sizeof (short) / sizeof (int) + 800,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 592,
+ 16 + 640 * sizeof (short) / sizeof (int) + 752
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x83000000,
+ 0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+ 0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
+ 0x30000030, 0x00000001, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00001800, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
+ 0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+ 0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
+ 0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
+ 0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+ 0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+ 0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
+ 0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
+ 0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+ 0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
+ 0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
+ 0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+ 0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+ 0x00000000, 0x00000000, 0x7C000000, 0x00000000,
+ 0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
+ 0x00000000, 0x00000000, 0xC280C200, 0x00000000,
+ 0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
+ 0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+ 0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFF800000,
+ 0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
+ 0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
+ 0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
+ 0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
+ 0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
+ 0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
+ 0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x07000000, 0x00001C00, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
+ 0x00000000, 0x00200000, 0x10300020, 0x80230000,
+ 0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
+ 0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+ 0x00000000, 0x00000000, 0x00070000, 0x00000000,
+ 0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+ 0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
+ 0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00008000, 0x80000000, 0xC0010000,
+ 0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
+ 0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+ 0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+ 0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000000,
+ 0x01800000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+ 0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
+ 0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+ 0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+ 0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+ 0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
+ 0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
+ 0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
+ 0x00030000, 0x00000000, 0x0000FF00, 0xC0000000,
+ 0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
+ 0x00000000, 0x00000000, 0x00000000, 0x60000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x80000000, 0xE3030303, 0x01FF8080,
+ 0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+ 0x00000078, 0x00700000, 0x00000000, 0x00000000,
+ 0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
+ 0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
+ 0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF8000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFF0FFF8,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
+ 0x00000000, 0x00000180, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFC0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00200000, 0x00000000,
+ 0x20000000, 0x1400219B, 0x00000010, 0x00000000,
+ 0x20201840, 0x84000000, 0x000203A0, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000000C0, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00003000, 0x00000000,
+ 0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+ 0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xFFFF0000
+ }
+};
diff --git a/lib/unictype/pr_unified_ideograph.c b/lib/unictype/pr_unified_ideograph.c
new file mode 100644
index 0000000..99096a8
--- /dev/null
+++ b/lib/unictype/pr_unified_ideograph.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_unified_ideograph table. */
+#include "pr_unified_ideograph.h"
+
+bool
+uc_is_property_unified_ideograph (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_unified_ideograph, uc);
+}
+
+const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH =
+ { &uc_is_property_unified_ideograph };
diff --git a/lib/unictype/pr_unified_ideograph.h b/lib/unictype/pr_unified_ideograph.h
new file mode 100644
index 0000000..353ee4f
--- /dev/null
+++ b/lib/unictype/pr_unified_ideograph.h
@@ -0,0 +1,304 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_unified_ideograph =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ 4 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 16,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 0,
+ 4 + 256 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0x801AC000, 0x0000039A, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_uppercase.c b/lib/unictype/pr_uppercase.c
new file mode 100644
index 0000000..38c122a
--- /dev/null
+++ b/lib/unictype/pr_uppercase.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_uppercase table. */
+#include "pr_uppercase.h"
+
+bool
+uc_is_property_uppercase (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_uppercase, uc);
+}
+
+const uc_property_t UC_PROPERTY_UPPERCASE =
+ { &uc_is_property_uppercase };
diff --git a/lib/unictype/pr_uppercase.h b/lib/unictype/pr_uppercase.h
new file mode 100644
index 0000000..14b2bde
--- /dev/null
+++ b/lib/unictype/pr_uppercase.h
@@ -0,0 +1,335 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[2];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[13 << 4];
+ }
+u_property_uppercase =
+{
+ { 2 },
+ {
+ 3 * sizeof (int) / sizeof (short) + 0,
+ 3 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ 3 + 256 * sizeof (short) / sizeof (int) + 0,
+ 3 + 256 * sizeof (short) / sizeof (int) + 16,
+ 3 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 64,
+ 3 + 256 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 112,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 144,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 160,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 3 + 256 * sizeof (short) / sizeof (int) + 176,
+ 3 + 256 * sizeof (short) / sizeof (int) + 192,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+ 0x00000000, 0x00000000, 0x7F7FFFFF, 0x00000000,
+ 0x55555555, 0xAA555555, 0x555554AA, 0x2B555555,
+ 0xB1DBCED6, 0x11AED2D5, 0x4AAAA490, 0x55D25555,
+ 0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00450000,
+ 0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
+ 0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
+ 0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
+ 0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x55555555, 0x55555555, 0x55555555, 0x55555555,
+ 0x40155555, 0x55555555, 0x55555555, 0x55555555,
+ 0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
+ 0x00000000, 0x0F000000, 0x0F000F00, 0x0F001F00,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3E273884, 0xC00F3D50, 0x00000020, 0x0000FFFF,
+ 0x00000008, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
+ 0x55555555, 0x55555555, 0x55555555, 0x00000005,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x55555555, 0x00001554,
+ 0x00555555, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+ 0x00000855, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000000FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x03FFFFFF, 0xFFF00000, 0x00003FFF, 0xFFFFFF00,
+ 0xD0000003, 0x003FDE64, 0xFFFF0000, 0x000003FF,
+ 0x1FDFE7B0, 0x7B000000, 0x0001FC5F, 0xFFFFF000,
+ 0x0000003F, 0x03FFFFFF, 0xFFF00000, 0x00003FFF,
+ 0xFFFFFF00, 0xF0000003, 0x003FFFFF, 0xFFFF0000,
+ 0x000003FF, 0xFFFFFF00, 0x00000001, 0x07FFFFFC,
+ 0xF0000000, 0x001FFFFF, 0xFFC00000, 0x00007FFF,
+ 0xFFFF0000, 0x000001FF, 0x00000400, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_variation_selector.c b/lib/unictype/pr_variation_selector.c
new file mode 100644
index 0000000..2f1d388
--- /dev/null
+++ b/lib/unictype/pr_variation_selector.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_variation_selector table. */
+#include "pr_variation_selector.h"
+
+bool
+uc_is_property_variation_selector (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_variation_selector, uc);
+}
+
+const uc_property_t UC_PROPERTY_VARIATION_SELECTOR =
+ { &uc_is_property_variation_selector };
diff --git a/lib/unictype/pr_variation_selector.h b/lib/unictype/pr_variation_selector.h
new file mode 100644
index 0000000..ba644eb
--- /dev/null
+++ b/lib/unictype/pr_variation_selector.h
@@ -0,0 +1,308 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[2 << 7];
+ /*unsigned*/ int level3[3 << 4];
+ }
+u_property_variation_selector =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 128
+ },
+ {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 256 * sizeof (short) / sizeof (int) + 16,
+ 16 + 256 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00003800, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_white_space.c b/lib/unictype/pr_white_space.c
new file mode 100644
index 0000000..1cd9c5f
--- /dev/null
+++ b/lib/unictype/pr_white_space.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_white_space table. */
+#include "pr_white_space.h"
+
+bool
+uc_is_property_white_space (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_white_space, uc);
+}
+
+const uc_property_t UC_PROPERTY_WHITE_SPACE =
+ { &uc_is_property_white_space };
diff --git a/lib/unictype/pr_white_space.h b/lib/unictype/pr_white_space.h
new file mode 100644
index 0000000..519b35a
--- /dev/null
+++ b/lib/unictype/pr_white_space.h
@@ -0,0 +1,172 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[1];
+ short level2[1 << 7];
+ /*unsigned*/ int level3[5 << 4];
+ }
+u_property_white_space =
+{
+ { 1 },
+ { 2 * sizeof (int) / sizeof (short) + 0 },
+ {
+ 2 + 128 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 16,
+ 2 + 128 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 2 + 128 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00003E00, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000007FF, 0x00008300, 0x80000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_xid_continue.c b/lib/unictype/pr_xid_continue.c
new file mode 100644
index 0000000..d7d92c3
--- /dev/null
+++ b/lib/unictype/pr_xid_continue.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_xid_continue table. */
+#include "pr_xid_continue.h"
+
+bool
+uc_is_property_xid_continue (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_xid_continue, uc);
+}
+
+const uc_property_t UC_PROPERTY_XID_CONTINUE =
+ { &uc_is_property_xid_continue };
diff --git a/lib/unictype/pr_xid_continue.h b/lib/unictype/pr_xid_continue.h
new file mode 100644
index 0000000..79913a7
--- /dev/null
+++ b/lib/unictype/pr_xid_continue.h
@@ -0,0 +1,732 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[4 << 7];
+ /*unsigned*/ int level3[45 << 4];
+ }
+u_property_xid_continue =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ 16 * sizeof (int) / sizeof (short) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 384
+ },
+ {
+ 16 + 512 * sizeof (short) / sizeof (int) + 0,
+ 16 + 512 * sizeof (short) / sizeof (int) + 16,
+ 16 + 512 * sizeof (short) / sizeof (int) + 32,
+ 16 + 512 * sizeof (short) / sizeof (int) + 48,
+ 16 + 512 * sizeof (short) / sizeof (int) + 64,
+ 16 + 512 * sizeof (short) / sizeof (int) + 80,
+ 16 + 512 * sizeof (short) / sizeof (int) + 96,
+ 16 + 512 * sizeof (short) / sizeof (int) + 112,
+ 16 + 512 * sizeof (short) / sizeof (int) + 128,
+ 16 + 512 * sizeof (short) / sizeof (int) + 144,
+ 16 + 512 * sizeof (short) / sizeof (int) + 160,
+ 16 + 512 * sizeof (short) / sizeof (int) + 176,
+ 16 + 512 * sizeof (short) / sizeof (int) + 192,
+ 16 + 512 * sizeof (short) / sizeof (int) + 208,
+ 16 + 512 * sizeof (short) / sizeof (int) + 224,
+ 16 + 512 * sizeof (short) / sizeof (int) + 240,
+ 16 + 512 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 320,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 336,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 352,
+ 16 + 512 * sizeof (short) / sizeof (int) + 368,
+ 16 + 512 * sizeof (short) / sizeof (int) + 384,
+ 16 + 512 * sizeof (short) / sizeof (int) + 400,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 432,
+ 16 + 512 * sizeof (short) / sizeof (int) + 448,
+ 16 + 512 * sizeof (short) / sizeof (int) + 464,
+ 16 + 512 * sizeof (short) / sizeof (int) + 480,
+ 16 + 512 * sizeof (short) / sizeof (int) + 496,
+ 16 + 512 * sizeof (short) / sizeof (int) + 512,
+ 16 + 512 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 544,
+ 16 + 512 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 576,
+ 16 + 512 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 608,
+ 16 + 512 * sizeof (short) / sizeof (int) + 624,
+ 16 + 512 * sizeof (short) / sizeof (int) + 640,
+ 16 + 512 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 672,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 304,
+ 16 + 512 * sizeof (short) / sizeof (int) + 688,
+ -1,
+ -1,
+ 16 + 512 * sizeof (short) / sizeof (int) + 704,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x03FF0000, 0x87FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04A00400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x38DFFFFF,
+ 0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
+ 0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
+ 0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
+ 0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
+ 0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
+ 0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
+ 0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
+ 0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
+ 0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
+ 0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
+ 0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
+ 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
+ 0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
+ 0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
+ 0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
+ 0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
+ 0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x0003FE00,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
+ 0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
+ 0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
+ 0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
+ 0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
+ 0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x80000000, 0x00100001, 0x80020000,
+ 0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+ 0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+ 0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE67FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFFFFF0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x03FF0000,
+ 0x0000FFFF, 0x0018007F, 0x0000E000, 0xAA8A0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x03FF0000, 0x87FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x20000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
+ 0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+ }
+};
diff --git a/lib/unictype/pr_xid_start.c b/lib/unictype/pr_xid_start.c
new file mode 100644
index 0000000..13aab1b
--- /dev/null
+++ b/lib/unictype/pr_xid_start.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_xid_start table. */
+#include "pr_xid_start.h"
+
+bool
+uc_is_property_xid_start (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_xid_start, uc);
+}
+
+const uc_property_t UC_PROPERTY_XID_START =
+ { &uc_is_property_xid_start };
diff --git a/lib/unictype/pr_xid_start.h b/lib/unictype/pr_xid_start.h
new file mode 100644
index 0000000..97fc710
--- /dev/null
+++ b/lib/unictype/pr_xid_start.h
@@ -0,0 +1,580 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[3];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[42 << 4];
+ }
+u_property_xid_start =
+{
+ { 3 },
+ {
+ 4 * sizeof (int) / sizeof (short) + 0,
+ 4 * sizeof (int) / sizeof (short) + 128,
+ 4 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 4 + 384 * sizeof (short) / sizeof (int) + 0,
+ 4 + 384 * sizeof (short) / sizeof (int) + 16,
+ 4 + 384 * sizeof (short) / sizeof (int) + 32,
+ 4 + 384 * sizeof (short) / sizeof (int) + 48,
+ 4 + 384 * sizeof (short) / sizeof (int) + 64,
+ 4 + 384 * sizeof (short) / sizeof (int) + 80,
+ 4 + 384 * sizeof (short) / sizeof (int) + 96,
+ 4 + 384 * sizeof (short) / sizeof (int) + 112,
+ 4 + 384 * sizeof (short) / sizeof (int) + 128,
+ 4 + 384 * sizeof (short) / sizeof (int) + 144,
+ 4 + 384 * sizeof (short) / sizeof (int) + 160,
+ 4 + 384 * sizeof (short) / sizeof (int) + 176,
+ 4 + 384 * sizeof (short) / sizeof (int) + 192,
+ 4 + 384 * sizeof (short) / sizeof (int) + 208,
+ 4 + 384 * sizeof (short) / sizeof (int) + 224,
+ 4 + 384 * sizeof (short) / sizeof (int) + 240,
+ 4 + 384 * sizeof (short) / sizeof (int) + 256,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 272,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 288,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 320,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 336,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 352,
+ 4 + 384 * sizeof (short) / sizeof (int) + 368,
+ 4 + 384 * sizeof (short) / sizeof (int) + 384,
+ 4 + 384 * sizeof (short) / sizeof (int) + 400,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 416,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 432,
+ 4 + 384 * sizeof (short) / sizeof (int) + 448,
+ 4 + 384 * sizeof (short) / sizeof (int) + 464,
+ 4 + 384 * sizeof (short) / sizeof (int) + 480,
+ 4 + 384 * sizeof (short) / sizeof (int) + 496,
+ 4 + 384 * sizeof (short) / sizeof (int) + 512,
+ 4 + 384 * sizeof (short) / sizeof (int) + 528,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 544,
+ 4 + 384 * sizeof (short) / sizeof (int) + 560,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 576,
+ 4 + 384 * sizeof (short) / sizeof (int) + 592,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 608,
+ 4 + 384 * sizeof (short) / sizeof (int) + 624,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 640,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 4 + 384 * sizeof (short) / sizeof (int) + 304,
+ 4 + 384 * sizeof (short) / sizeof (int) + 656,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+ 0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+ 0x00000000, 0x00000000, 0x00000000, 0x38DF0000,
+ 0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+ 0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
+ 0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
+ 0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+ 0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
+ 0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
+ 0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
+ 0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
+ 0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
+ 0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
+ 0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+ 0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
+ 0xFFFFFFFE, 0x0005FFFF, 0x0000007F, 0x00000000,
+ 0xFEF02596, 0x2005ECAE, 0x3000005F, 0x00000000,
+ 0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
+ 0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+ 0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
+ 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
+ 0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
+ 0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
+ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+ 0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
+ 0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
+ 0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
+ 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
+ 0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
+ 0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
+ 0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
+ 0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+ 0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x80020000,
+ 0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
+ 0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+ 0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+ 0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+ 0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
+ 0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
+ 0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+ 0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+ 0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+ 0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
+ 0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFFFFF0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+ 0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x03FF0000,
+ 0x00000000, 0x00000000, 0x00000000, 0xAA8A0000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
+ 0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
+ 0x3FFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
+ 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+ 0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
+ 0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
+ 0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000007,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+ 0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+ 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+ 0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+ 0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/pr_zero_width.c b/lib/unictype/pr_zero_width.c
new file mode 100644
index 0000000..7decbda
--- /dev/null
+++ b/lib/unictype/pr_zero_width.c
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_zero_width table. */
+#include "pr_zero_width.h"
+
+bool
+uc_is_property_zero_width (ucs4_t uc)
+{
+ return bitmap_lookup (&u_property_zero_width, uc);
+}
+
+const uc_property_t UC_PROPERTY_ZERO_WIDTH =
+ { &uc_is_property_zero_width };
diff --git a/lib/unictype/pr_zero_width.h b/lib/unictype/pr_zero_width.h
new file mode 100644
index 0000000..96047b5
--- /dev/null
+++ b/lib/unictype/pr_zero_width.h
@@ -0,0 +1,452 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+ {
+ int header[1];
+ int level1[15];
+ short level2[3 << 7];
+ /*unsigned*/ int level3[7 << 4];
+ }
+u_property_zero_width =
+{
+ { 15 },
+ {
+ 16 * sizeof (int) / sizeof (short) + 0,
+ 16 * sizeof (int) / sizeof (short) + 128,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 * sizeof (int) / sizeof (short) + 256
+ },
+ {
+ 16 + 384 * sizeof (short) / sizeof (int) + 0,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 16,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 32,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 48,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 64,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 80,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 16 + 384 * sizeof (short) / sizeof (int) + 96,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x0000000F, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00300000, 0x00000000, 0x00000000,
+ 0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x0E000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x07F80000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000
+ }
+};
diff --git a/lib/unictype/scripts.c b/lib/unictype/scripts.c
new file mode 100644
index 0000000..092009d
--- /dev/null
+++ b/lib/unictype/scripts.c
@@ -0,0 +1,75 @@
+/* Scripts of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "scripts.h"
+#include "unictype/scripts_byname.h"
+
+const uc_script_t *
+uc_script (ucs4_t uc)
+{
+ unsigned int index1 = uc >> script_header_0;
+ if (index1 < script_header_1)
+ {
+ int lookup1 = u_script.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> script_header_2) & script_header_3;
+ int lookup2 = u_script.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & script_header_4);
+ unsigned char lookup3 = u_script.level3[lookup2 + index3];
+
+ if (lookup3 != 0xff)
+ return &scripts[lookup3];
+ }
+ }
+ }
+ return NULL;
+}
+
+const uc_script_t *
+uc_script_byname (const char *script_name)
+{
+ const struct named_script *found;
+
+ found = uc_script_lookup (script_name, strlen (script_name));
+ if (found != NULL)
+ return &scripts[found->index];
+ else
+ return NULL;
+}
+
+bool
+uc_is_script (ucs4_t uc, const uc_script_t *script)
+{
+ return uc_script (uc) == script;
+}
+
+void
+uc_all_scripts (const uc_script_t **scriptsp, size_t *countp)
+{
+ *scriptsp = scripts;
+ *countp = sizeof (scripts) / sizeof (scripts[0]);
+}
diff --git a/lib/unictype/scripts.h b/lib/unictype/scripts.h
new file mode 100644
index 0000000..1d465ae
--- /dev/null
+++ b/lib/unictype/scripts.h
@@ -0,0 +1,3704 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Unicode scripts. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+static const uc_interval_t script_common_intervals[] =
+{
+ { 0x0000, 1, 0 }, { 0x0040, 0, 1 },
+ { 0x005B, 1, 0 }, { 0x0060, 0, 1 },
+ { 0x007B, 1, 0 }, { 0x00A9, 0, 1 },
+ { 0x00AB, 1, 0 }, { 0x00B9, 0, 1 },
+ { 0x00BB, 1, 0 }, { 0x00BF, 0, 1 },
+ { 0x00D7, 1, 1 },
+ { 0x00F7, 1, 1 },
+ { 0x02B9, 1, 0 }, { 0x02DF, 0, 1 },
+ { 0x02E5, 1, 0 }, { 0x02FF, 0, 1 },
+ { 0x0374, 1, 1 },
+ { 0x037E, 1, 1 },
+ { 0x0385, 1, 1 },
+ { 0x0387, 1, 1 },
+ { 0x0589, 1, 1 },
+ { 0x0600, 1, 0 }, { 0x0603, 0, 1 },
+ { 0x060C, 1, 1 },
+ { 0x061B, 1, 1 },
+ { 0x061F, 1, 1 },
+ { 0x0640, 1, 1 },
+ { 0x0660, 1, 0 }, { 0x0669, 0, 1 },
+ { 0x06DD, 1, 1 },
+ { 0x0964, 1, 0 }, { 0x0965, 0, 1 },
+ { 0x0970, 1, 1 },
+ { 0x0CF1, 1, 0 }, { 0x0CF2, 0, 1 },
+ { 0x0E3F, 1, 1 },
+ { 0x10FB, 1, 1 },
+ { 0x16EB, 1, 0 }, { 0x16ED, 0, 1 },
+ { 0x1735, 1, 0 }, { 0x1736, 0, 1 },
+ { 0x1802, 1, 0 }, { 0x1803, 0, 1 },
+ { 0x1805, 1, 1 },
+ { 0x2000, 1, 0 }, { 0x200B, 0, 1 },
+ { 0x200E, 1, 0 }, { 0x2064, 0, 1 },
+ { 0x206A, 1, 0 }, { 0x2070, 0, 1 },
+ { 0x2074, 1, 0 }, { 0x207E, 0, 1 },
+ { 0x2080, 1, 0 }, { 0x208E, 0, 1 },
+ { 0x20A0, 1, 0 }, { 0x20B5, 0, 1 },
+ { 0x2100, 1, 0 }, { 0x2125, 0, 1 },
+ { 0x2127, 1, 0 }, { 0x2129, 0, 1 },
+ { 0x212C, 1, 0 }, { 0x2131, 0, 1 },
+ { 0x2133, 1, 0 }, { 0x214D, 0, 1 },
+ { 0x214F, 1, 1 },
+ { 0x2153, 1, 0 }, { 0x215F, 0, 1 },
+ { 0x2190, 1, 0 }, { 0x23E7, 0, 1 },
+ { 0x2400, 1, 0 }, { 0x2426, 0, 1 },
+ { 0x2440, 1, 0 }, { 0x244A, 0, 1 },
+ { 0x2460, 1, 0 }, { 0x269D, 0, 1 },
+ { 0x26A0, 1, 0 }, { 0x26BC, 0, 1 },
+ { 0x26C0, 1, 0 }, { 0x26C3, 0, 1 },
+ { 0x2701, 1, 0 }, { 0x2704, 0, 1 },
+ { 0x2706, 1, 0 }, { 0x2709, 0, 1 },
+ { 0x270C, 1, 0 }, { 0x2727, 0, 1 },
+ { 0x2729, 1, 0 }, { 0x274B, 0, 1 },
+ { 0x274D, 1, 1 },
+ { 0x274F, 1, 0 }, { 0x2752, 0, 1 },
+ { 0x2756, 1, 1 },
+ { 0x2758, 1, 0 }, { 0x275E, 0, 1 },
+ { 0x2761, 1, 0 }, { 0x2794, 0, 1 },
+ { 0x2798, 1, 0 }, { 0x27AF, 0, 1 },
+ { 0x27B1, 1, 0 }, { 0x27BE, 0, 1 },
+ { 0x27C0, 1, 0 }, { 0x27CA, 0, 1 },
+ { 0x27CC, 1, 1 },
+ { 0x27D0, 1, 0 }, { 0x27FF, 0, 1 },
+ { 0x2900, 1, 0 }, { 0x2B4C, 0, 1 },
+ { 0x2B50, 1, 0 }, { 0x2B54, 0, 1 },
+ { 0x2E00, 1, 0 }, { 0x2E30, 0, 1 },
+ { 0x2FF0, 1, 0 }, { 0x2FFB, 0, 1 },
+ { 0x3000, 1, 0 }, { 0x3004, 0, 1 },
+ { 0x3006, 1, 1 },
+ { 0x3008, 1, 0 }, { 0x3020, 0, 1 },
+ { 0x3030, 1, 0 }, { 0x3037, 0, 1 },
+ { 0x303C, 1, 0 }, { 0x303F, 0, 1 },
+ { 0x309B, 1, 0 }, { 0x309C, 0, 1 },
+ { 0x30A0, 1, 1 },
+ { 0x30FB, 1, 0 }, { 0x30FC, 0, 1 },
+ { 0x3190, 1, 0 }, { 0x319F, 0, 1 },
+ { 0x31C0, 1, 0 }, { 0x31E3, 0, 1 },
+ { 0x3220, 1, 0 }, { 0x3243, 0, 1 },
+ { 0x3250, 1, 0 }, { 0x325F, 0, 1 },
+ { 0x327F, 1, 0 }, { 0x32CF, 0, 1 },
+ { 0x3358, 1, 0 }, { 0x33FF, 0, 1 },
+ { 0x4DC0, 1, 0 }, { 0x4DFF, 0, 1 },
+ { 0xA700, 1, 0 }, { 0xA721, 0, 1 },
+ { 0xA788, 1, 0 }, { 0xA78A, 0, 1 },
+ { 0xFD3E, 1, 0 }, { 0xFD3F, 0, 1 },
+ { 0xFDFD, 1, 1 },
+ { 0xFE10, 1, 0 }, { 0xFE19, 0, 1 },
+ { 0xFE30, 1, 0 }, { 0xFE52, 0, 1 },
+ { 0xFE54, 1, 0 }, { 0xFE66, 0, 1 },
+ { 0xFE68, 1, 0 }, { 0xFE6B, 0, 1 },
+ { 0xFEFF, 1, 1 },
+ { 0xFF01, 1, 0 }, { 0xFF20, 0, 1 },
+ { 0xFF3B, 1, 0 }, { 0xFF40, 0, 1 },
+ { 0xFF5B, 1, 0 }, { 0xFF65, 0, 1 },
+ { 0xFF70, 1, 1 },
+ { 0xFF9E, 1, 0 }, { 0xFF9F, 0, 1 },
+ { 0xFFE0, 1, 0 }, { 0xFFE6, 0, 1 },
+ { 0xFFE8, 1, 0 }, { 0xFFEE, 0, 1 },
+ { 0xFFF9, 1, 0 }, { 0xFFFD, 0, 1 },
+ { 0x10100, 1, 0 }, { 0x10102, 0, 1 },
+ { 0x10107, 1, 0 }, { 0x10133, 0, 1 },
+ { 0x10137, 1, 0 }, { 0x1013F, 0, 1 },
+ { 0x10190, 1, 0 }, { 0x1019B, 0, 1 },
+ { 0x101D0, 1, 0 }, { 0x101FC, 0, 1 },
+ { 0x1D000, 1, 0 }, { 0x1D0F5, 0, 1 },
+ { 0x1D100, 1, 0 }, { 0x1D126, 0, 1 },
+ { 0x1D129, 1, 0 }, { 0x1D166, 0, 1 },
+ { 0x1D16A, 1, 0 }, { 0x1D17A, 0, 1 },
+ { 0x1D183, 1, 0 }, { 0x1D184, 0, 1 },
+ { 0x1D18C, 1, 0 }, { 0x1D1A9, 0, 1 },
+ { 0x1D1AE, 1, 0 }, { 0x1D1DD, 0, 1 },
+ { 0x1D300, 1, 0 }, { 0x1D356, 0, 1 },
+ { 0x1D360, 1, 0 }, { 0x1D371, 0, 1 },
+ { 0x1D400, 1, 0 }, { 0x1D454, 0, 1 },
+ { 0x1D456, 1, 0 }, { 0x1D49C, 0, 1 },
+ { 0x1D49E, 1, 0 }, { 0x1D49F, 0, 1 },
+ { 0x1D4A2, 1, 1 },
+ { 0x1D4A5, 1, 0 }, { 0x1D4A6, 0, 1 },
+ { 0x1D4A9, 1, 0 }, { 0x1D4AC, 0, 1 },
+ { 0x1D4AE, 1, 0 }, { 0x1D4B9, 0, 1 },
+ { 0x1D4BB, 1, 1 },
+ { 0x1D4BD, 1, 0 }, { 0x1D4C3, 0, 1 },
+ { 0x1D4C5, 1, 0 }, { 0x1D505, 0, 1 },
+ { 0x1D507, 1, 0 }, { 0x1D50A, 0, 1 },
+ { 0x1D50D, 1, 0 }, { 0x1D514, 0, 1 },
+ { 0x1D516, 1, 0 }, { 0x1D51C, 0, 1 },
+ { 0x1D51E, 1, 0 }, { 0x1D539, 0, 1 },
+ { 0x1D53B, 1, 0 }, { 0x1D53E, 0, 1 },
+ { 0x1D540, 1, 0 }, { 0x1D544, 0, 1 },
+ { 0x1D546, 1, 1 },
+ { 0x1D54A, 1, 0 }, { 0x1D550, 0, 1 },
+ { 0x1D552, 1, 0 }, { 0x1D6A5, 0, 1 },
+ { 0x1D6A8, 1, 0 }, { 0x1D7CB, 0, 1 },
+ { 0x1D7CE, 1, 0 }, { 0x1D7FF, 0, 1 },
+ { 0x1F000, 1, 0 }, { 0x1F02B, 0, 1 },
+ { 0x1F030, 1, 0 }, { 0x1F093, 0, 1 },
+ { 0xE0001, 1, 1 },
+ { 0xE0020, 1, 0 }, { 0xE007F, 0, 1 }
+};
+static const uc_interval_t script_latin_intervals[] =
+{
+ { 0x0041, 1, 0 }, { 0x005A, 0, 1 },
+ { 0x0061, 1, 0 }, { 0x007A, 0, 1 },
+ { 0x00AA, 1, 1 },
+ { 0x00BA, 1, 1 },
+ { 0x00C0, 1, 0 }, { 0x00D6, 0, 1 },
+ { 0x00D8, 1, 0 }, { 0x00F6, 0, 1 },
+ { 0x00F8, 1, 0 }, { 0x02B8, 0, 1 },
+ { 0x02E0, 1, 0 }, { 0x02E4, 0, 1 },
+ { 0x1D00, 1, 0 }, { 0x1D25, 0, 1 },
+ { 0x1D2C, 1, 0 }, { 0x1D5C, 0, 1 },
+ { 0x1D62, 1, 0 }, { 0x1D65, 0, 1 },
+ { 0x1D6B, 1, 0 }, { 0x1D77, 0, 1 },
+ { 0x1D79, 1, 0 }, { 0x1DBE, 0, 1 },
+ { 0x1E00, 1, 0 }, { 0x1EFF, 0, 1 },
+ { 0x2071, 1, 1 },
+ { 0x207F, 1, 1 },
+ { 0x2090, 1, 0 }, { 0x2094, 0, 1 },
+ { 0x212A, 1, 0 }, { 0x212B, 0, 1 },
+ { 0x2132, 1, 1 },
+ { 0x214E, 1, 1 },
+ { 0x2160, 1, 0 }, { 0x2188, 0, 1 },
+ { 0x2C60, 1, 0 }, { 0x2C6F, 0, 1 },
+ { 0x2C71, 1, 0 }, { 0x2C7D, 0, 1 },
+ { 0xA722, 1, 0 }, { 0xA787, 0, 1 },
+ { 0xA78B, 1, 0 }, { 0xA78C, 0, 1 },
+ { 0xA7FB, 1, 0 }, { 0xA7FF, 0, 1 },
+ { 0xFB00, 1, 0 }, { 0xFB06, 0, 1 },
+ { 0xFF21, 1, 0 }, { 0xFF3A, 0, 1 },
+ { 0xFF41, 1, 0 }, { 0xFF5A, 0, 1 }
+};
+static const uc_interval_t script_greek_intervals[] =
+{
+ { 0x0370, 1, 0 }, { 0x0373, 0, 1 },
+ { 0x0375, 1, 0 }, { 0x0377, 0, 1 },
+ { 0x037A, 1, 0 }, { 0x037D, 0, 1 },
+ { 0x0384, 1, 1 },
+ { 0x0386, 1, 1 },
+ { 0x0388, 1, 0 }, { 0x038A, 0, 1 },
+ { 0x038C, 1, 1 },
+ { 0x038E, 1, 0 }, { 0x03A1, 0, 1 },
+ { 0x03A3, 1, 0 }, { 0x03E1, 0, 1 },
+ { 0x03F0, 1, 0 }, { 0x03FF, 0, 1 },
+ { 0x1D26, 1, 0 }, { 0x1D2A, 0, 1 },
+ { 0x1D5D, 1, 0 }, { 0x1D61, 0, 1 },
+ { 0x1D66, 1, 0 }, { 0x1D6A, 0, 1 },
+ { 0x1DBF, 1, 1 },
+ { 0x1F00, 1, 0 }, { 0x1F15, 0, 1 },
+ { 0x1F18, 1, 0 }, { 0x1F1D, 0, 1 },
+ { 0x1F20, 1, 0 }, { 0x1F45, 0, 1 },
+ { 0x1F48, 1, 0 }, { 0x1F4D, 0, 1 },
+ { 0x1F50, 1, 0 }, { 0x1F57, 0, 1 },
+ { 0x1F59, 1, 1 },
+ { 0x1F5B, 1, 1 },
+ { 0x1F5D, 1, 1 },
+ { 0x1F5F, 1, 0 }, { 0x1F7D, 0, 1 },
+ { 0x1F80, 1, 0 }, { 0x1FB4, 0, 1 },
+ { 0x1FB6, 1, 0 }, { 0x1FC4, 0, 1 },
+ { 0x1FC6, 1, 0 }, { 0x1FD3, 0, 1 },
+ { 0x1FD6, 1, 0 }, { 0x1FDB, 0, 1 },
+ { 0x1FDD, 1, 0 }, { 0x1FEF, 0, 1 },
+ { 0x1FF2, 1, 0 }, { 0x1FF4, 0, 1 },
+ { 0x1FF6, 1, 0 }, { 0x1FFE, 0, 1 },
+ { 0x2126, 1, 1 },
+ { 0x10140, 1, 0 }, { 0x1018A, 0, 1 },
+ { 0x1D200, 1, 0 }, { 0x1D245, 0, 1 }
+};
+static const uc_interval_t script_cyrillic_intervals[] =
+{
+ { 0x0400, 1, 0 }, { 0x0523, 0, 1 },
+ { 0x1D2B, 1, 1 },
+ { 0x1D78, 1, 1 },
+ { 0x2DE0, 1, 0 }, { 0x2DFF, 0, 1 },
+ { 0xA640, 1, 0 }, { 0xA65F, 0, 1 },
+ { 0xA662, 1, 0 }, { 0xA673, 0, 1 },
+ { 0xA67C, 1, 0 }, { 0xA697, 0, 1 }
+};
+static const uc_interval_t script_armenian_intervals[] =
+{
+ { 0x0531, 1, 0 }, { 0x0556, 0, 1 },
+ { 0x0559, 1, 0 }, { 0x055F, 0, 1 },
+ { 0x0561, 1, 0 }, { 0x0587, 0, 1 },
+ { 0x058A, 1, 1 },
+ { 0xFB13, 1, 0 }, { 0xFB17, 0, 1 }
+};
+static const uc_interval_t script_hebrew_intervals[] =
+{
+ { 0x0591, 1, 0 }, { 0x05C7, 0, 1 },
+ { 0x05D0, 1, 0 }, { 0x05EA, 0, 1 },
+ { 0x05F0, 1, 0 }, { 0x05F4, 0, 1 },
+ { 0xFB1D, 1, 0 }, { 0xFB36, 0, 1 },
+ { 0xFB38, 1, 0 }, { 0xFB3C, 0, 1 },
+ { 0xFB3E, 1, 1 },
+ { 0xFB40, 1, 0 }, { 0xFB41, 0, 1 },
+ { 0xFB43, 1, 0 }, { 0xFB44, 0, 1 },
+ { 0xFB46, 1, 0 }, { 0xFB4F, 0, 1 }
+};
+static const uc_interval_t script_arabic_intervals[] =
+{
+ { 0x0606, 1, 0 }, { 0x060B, 0, 1 },
+ { 0x060D, 1, 0 }, { 0x061A, 0, 1 },
+ { 0x061E, 1, 1 },
+ { 0x0621, 1, 0 }, { 0x063F, 0, 1 },
+ { 0x0641, 1, 0 }, { 0x064A, 0, 1 },
+ { 0x0656, 1, 0 }, { 0x065E, 0, 1 },
+ { 0x066A, 1, 0 }, { 0x066F, 0, 1 },
+ { 0x0671, 1, 0 }, { 0x06DC, 0, 1 },
+ { 0x06DE, 1, 0 }, { 0x06FF, 0, 1 },
+ { 0x0750, 1, 0 }, { 0x077F, 0, 1 },
+ { 0xFB50, 1, 0 }, { 0xFBB1, 0, 1 },
+ { 0xFBD3, 1, 0 }, { 0xFD3D, 0, 1 },
+ { 0xFD50, 1, 0 }, { 0xFD8F, 0, 1 },
+ { 0xFD92, 1, 0 }, { 0xFDC7, 0, 1 },
+ { 0xFDF0, 1, 0 }, { 0xFDFC, 0, 1 },
+ { 0xFE70, 1, 0 }, { 0xFE74, 0, 1 },
+ { 0xFE76, 1, 0 }, { 0xFEFC, 0, 1 }
+};
+static const uc_interval_t script_syriac_intervals[] =
+{
+ { 0x0700, 1, 0 }, { 0x070D, 0, 1 },
+ { 0x070F, 1, 0 }, { 0x074A, 0, 1 },
+ { 0x074D, 1, 0 }, { 0x074F, 0, 1 }
+};
+static const uc_interval_t script_thaana_intervals[] =
+{
+ { 0x0780, 1, 0 }, { 0x07B1, 0, 1 }
+};
+static const uc_interval_t script_devanagari_intervals[] =
+{
+ { 0x0901, 1, 0 }, { 0x0939, 0, 1 },
+ { 0x093C, 1, 0 }, { 0x094D, 0, 1 },
+ { 0x0950, 1, 1 },
+ { 0x0953, 1, 0 }, { 0x0954, 0, 1 },
+ { 0x0958, 1, 0 }, { 0x0963, 0, 1 },
+ { 0x0966, 1, 0 }, { 0x096F, 0, 1 },
+ { 0x0971, 1, 0 }, { 0x0972, 0, 1 },
+ { 0x097B, 1, 0 }, { 0x097F, 0, 1 }
+};
+static const uc_interval_t script_bengali_intervals[] =
+{
+ { 0x0981, 1, 0 }, { 0x0983, 0, 1 },
+ { 0x0985, 1, 0 }, { 0x098C, 0, 1 },
+ { 0x098F, 1, 0 }, { 0x0990, 0, 1 },
+ { 0x0993, 1, 0 }, { 0x09A8, 0, 1 },
+ { 0x09AA, 1, 0 }, { 0x09B0, 0, 1 },
+ { 0x09B2, 1, 1 },
+ { 0x09B6, 1, 0 }, { 0x09B9, 0, 1 },
+ { 0x09BC, 1, 0 }, { 0x09C4, 0, 1 },
+ { 0x09C7, 1, 0 }, { 0x09C8, 0, 1 },
+ { 0x09CB, 1, 0 }, { 0x09CE, 0, 1 },
+ { 0x09D7, 1, 1 },
+ { 0x09DC, 1, 0 }, { 0x09DD, 0, 1 },
+ { 0x09DF, 1, 0 }, { 0x09E3, 0, 1 },
+ { 0x09E6, 1, 0 }, { 0x09FA, 0, 1 }
+};
+static const uc_interval_t script_gurmukhi_intervals[] =
+{
+ { 0x0A01, 1, 0 }, { 0x0A03, 0, 1 },
+ { 0x0A05, 1, 0 }, { 0x0A0A, 0, 1 },
+ { 0x0A0F, 1, 0 }, { 0x0A10, 0, 1 },
+ { 0x0A13, 1, 0 }, { 0x0A28, 0, 1 },
+ { 0x0A2A, 1, 0 }, { 0x0A30, 0, 1 },
+ { 0x0A32, 1, 0 }, { 0x0A33, 0, 1 },
+ { 0x0A35, 1, 0 }, { 0x0A36, 0, 1 },
+ { 0x0A38, 1, 0 }, { 0x0A39, 0, 1 },
+ { 0x0A3C, 1, 1 },
+ { 0x0A3E, 1, 0 }, { 0x0A42, 0, 1 },
+ { 0x0A47, 1, 0 }, { 0x0A48, 0, 1 },
+ { 0x0A4B, 1, 0 }, { 0x0A4D, 0, 1 },
+ { 0x0A51, 1, 1 },
+ { 0x0A59, 1, 0 }, { 0x0A5C, 0, 1 },
+ { 0x0A5E, 1, 1 },
+ { 0x0A66, 1, 0 }, { 0x0A75, 0, 1 }
+};
+static const uc_interval_t script_gujarati_intervals[] =
+{
+ { 0x0A81, 1, 0 }, { 0x0A83, 0, 1 },
+ { 0x0A85, 1, 0 }, { 0x0A8D, 0, 1 },
+ { 0x0A8F, 1, 0 }, { 0x0A91, 0, 1 },
+ { 0x0A93, 1, 0 }, { 0x0AA8, 0, 1 },
+ { 0x0AAA, 1, 0 }, { 0x0AB0, 0, 1 },
+ { 0x0AB2, 1, 0 }, { 0x0AB3, 0, 1 },
+ { 0x0AB5, 1, 0 }, { 0x0AB9, 0, 1 },
+ { 0x0ABC, 1, 0 }, { 0x0AC5, 0, 1 },
+ { 0x0AC7, 1, 0 }, { 0x0AC9, 0, 1 },
+ { 0x0ACB, 1, 0 }, { 0x0ACD, 0, 1 },
+ { 0x0AD0, 1, 1 },
+ { 0x0AE0, 1, 0 }, { 0x0AE3, 0, 1 },
+ { 0x0AE6, 1, 0 }, { 0x0AEF, 0, 1 },
+ { 0x0AF1, 1, 1 }
+};
+static const uc_interval_t script_oriya_intervals[] =
+{
+ { 0x0B01, 1, 0 }, { 0x0B03, 0, 1 },
+ { 0x0B05, 1, 0 }, { 0x0B0C, 0, 1 },
+ { 0x0B0F, 1, 0 }, { 0x0B10, 0, 1 },
+ { 0x0B13, 1, 0 }, { 0x0B28, 0, 1 },
+ { 0x0B2A, 1, 0 }, { 0x0B30, 0, 1 },
+ { 0x0B32, 1, 0 }, { 0x0B33, 0, 1 },
+ { 0x0B35, 1, 0 }, { 0x0B39, 0, 1 },
+ { 0x0B3C, 1, 0 }, { 0x0B44, 0, 1 },
+ { 0x0B47, 1, 0 }, { 0x0B48, 0, 1 },
+ { 0x0B4B, 1, 0 }, { 0x0B4D, 0, 1 },
+ { 0x0B56, 1, 0 }, { 0x0B57, 0, 1 },
+ { 0x0B5C, 1, 0 }, { 0x0B5D, 0, 1 },
+ { 0x0B5F, 1, 0 }, { 0x0B63, 0, 1 },
+ { 0x0B66, 1, 0 }, { 0x0B71, 0, 1 }
+};
+static const uc_interval_t script_tamil_intervals[] =
+{
+ { 0x0B82, 1, 0 }, { 0x0B83, 0, 1 },
+ { 0x0B85, 1, 0 }, { 0x0B8A, 0, 1 },
+ { 0x0B8E, 1, 0 }, { 0x0B90, 0, 1 },
+ { 0x0B92, 1, 0 }, { 0x0B95, 0, 1 },
+ { 0x0B99, 1, 0 }, { 0x0B9A, 0, 1 },
+ { 0x0B9C, 1, 1 },
+ { 0x0B9E, 1, 0 }, { 0x0B9F, 0, 1 },
+ { 0x0BA3, 1, 0 }, { 0x0BA4, 0, 1 },
+ { 0x0BA8, 1, 0 }, { 0x0BAA, 0, 1 },
+ { 0x0BAE, 1, 0 }, { 0x0BB9, 0, 1 },
+ { 0x0BBE, 1, 0 }, { 0x0BC2, 0, 1 },
+ { 0x0BC6, 1, 0 }, { 0x0BC8, 0, 1 },
+ { 0x0BCA, 1, 0 }, { 0x0BCD, 0, 1 },
+ { 0x0BD0, 1, 1 },
+ { 0x0BD7, 1, 1 },
+ { 0x0BE6, 1, 0 }, { 0x0BFA, 0, 1 }
+};
+static const uc_interval_t script_telugu_intervals[] =
+{
+ { 0x0C01, 1, 0 }, { 0x0C03, 0, 1 },
+ { 0x0C05, 1, 0 }, { 0x0C0C, 0, 1 },
+ { 0x0C0E, 1, 0 }, { 0x0C10, 0, 1 },
+ { 0x0C12, 1, 0 }, { 0x0C28, 0, 1 },
+ { 0x0C2A, 1, 0 }, { 0x0C33, 0, 1 },
+ { 0x0C35, 1, 0 }, { 0x0C39, 0, 1 },
+ { 0x0C3D, 1, 0 }, { 0x0C44, 0, 1 },
+ { 0x0C46, 1, 0 }, { 0x0C48, 0, 1 },
+ { 0x0C4A, 1, 0 }, { 0x0C4D, 0, 1 },
+ { 0x0C55, 1, 0 }, { 0x0C56, 0, 1 },
+ { 0x0C58, 1, 0 }, { 0x0C59, 0, 1 },
+ { 0x0C60, 1, 0 }, { 0x0C63, 0, 1 },
+ { 0x0C66, 1, 0 }, { 0x0C6F, 0, 1 },
+ { 0x0C78, 1, 0 }, { 0x0C7F, 0, 1 }
+};
+static const uc_interval_t script_kannada_intervals[] =
+{
+ { 0x0C82, 1, 0 }, { 0x0C83, 0, 1 },
+ { 0x0C85, 1, 0 }, { 0x0C8C, 0, 1 },
+ { 0x0C8E, 1, 0 }, { 0x0C90, 0, 1 },
+ { 0x0C92, 1, 0 }, { 0x0CA8, 0, 1 },
+ { 0x0CAA, 1, 0 }, { 0x0CB3, 0, 1 },
+ { 0x0CB5, 1, 0 }, { 0x0CB9, 0, 1 },
+ { 0x0CBC, 1, 0 }, { 0x0CC4, 0, 1 },
+ { 0x0CC6, 1, 0 }, { 0x0CC8, 0, 1 },
+ { 0x0CCA, 1, 0 }, { 0x0CCD, 0, 1 },
+ { 0x0CD5, 1, 0 }, { 0x0CD6, 0, 1 },
+ { 0x0CDE, 1, 1 },
+ { 0x0CE0, 1, 0 }, { 0x0CE3, 0, 1 },
+ { 0x0CE6, 1, 0 }, { 0x0CEF, 0, 1 }
+};
+static const uc_interval_t script_malayalam_intervals[] =
+{
+ { 0x0D02, 1, 0 }, { 0x0D03, 0, 1 },
+ { 0x0D05, 1, 0 }, { 0x0D0C, 0, 1 },
+ { 0x0D0E, 1, 0 }, { 0x0D10, 0, 1 },
+ { 0x0D12, 1, 0 }, { 0x0D28, 0, 1 },
+ { 0x0D2A, 1, 0 }, { 0x0D39, 0, 1 },
+ { 0x0D3D, 1, 0 }, { 0x0D44, 0, 1 },
+ { 0x0D46, 1, 0 }, { 0x0D48, 0, 1 },
+ { 0x0D4A, 1, 0 }, { 0x0D4D, 0, 1 },
+ { 0x0D57, 1, 1 },
+ { 0x0D60, 1, 0 }, { 0x0D63, 0, 1 },
+ { 0x0D66, 1, 0 }, { 0x0D75, 0, 1 },
+ { 0x0D79, 1, 0 }, { 0x0D7F, 0, 1 }
+};
+static const uc_interval_t script_sinhala_intervals[] =
+{
+ { 0x0D82, 1, 0 }, { 0x0D83, 0, 1 },
+ { 0x0D85, 1, 0 }, { 0x0D96, 0, 1 },
+ { 0x0D9A, 1, 0 }, { 0x0DB1, 0, 1 },
+ { 0x0DB3, 1, 0 }, { 0x0DBB, 0, 1 },
+ { 0x0DBD, 1, 1 },
+ { 0x0DC0, 1, 0 }, { 0x0DC6, 0, 1 },
+ { 0x0DCA, 1, 1 },
+ { 0x0DCF, 1, 0 }, { 0x0DD4, 0, 1 },
+ { 0x0DD6, 1, 1 },
+ { 0x0DD8, 1, 0 }, { 0x0DDF, 0, 1 },
+ { 0x0DF2, 1, 0 }, { 0x0DF4, 0, 1 }
+};
+static const uc_interval_t script_thai_intervals[] =
+{
+ { 0x0E01, 1, 0 }, { 0x0E3A, 0, 1 },
+ { 0x0E40, 1, 0 }, { 0x0E5B, 0, 1 }
+};
+static const uc_interval_t script_lao_intervals[] =
+{
+ { 0x0E81, 1, 0 }, { 0x0E82, 0, 1 },
+ { 0x0E84, 1, 1 },
+ { 0x0E87, 1, 0 }, { 0x0E88, 0, 1 },
+ { 0x0E8A, 1, 1 },
+ { 0x0E8D, 1, 1 },
+ { 0x0E94, 1, 0 }, { 0x0E97, 0, 1 },
+ { 0x0E99, 1, 0 }, { 0x0E9F, 0, 1 },
+ { 0x0EA1, 1, 0 }, { 0x0EA3, 0, 1 },
+ { 0x0EA5, 1, 1 },
+ { 0x0EA7, 1, 1 },
+ { 0x0EAA, 1, 0 }, { 0x0EAB, 0, 1 },
+ { 0x0EAD, 1, 0 }, { 0x0EB9, 0, 1 },
+ { 0x0EBB, 1, 0 }, { 0x0EBD, 0, 1 },
+ { 0x0EC0, 1, 0 }, { 0x0EC4, 0, 1 },
+ { 0x0EC6, 1, 1 },
+ { 0x0EC8, 1, 0 }, { 0x0ECD, 0, 1 },
+ { 0x0ED0, 1, 0 }, { 0x0ED9, 0, 1 },
+ { 0x0EDC, 1, 0 }, { 0x0EDD, 0, 1 }
+};
+static const uc_interval_t script_tibetan_intervals[] =
+{
+ { 0x0F00, 1, 0 }, { 0x0F47, 0, 1 },
+ { 0x0F49, 1, 0 }, { 0x0F6C, 0, 1 },
+ { 0x0F71, 1, 0 }, { 0x0F8B, 0, 1 },
+ { 0x0F90, 1, 0 }, { 0x0F97, 0, 1 },
+ { 0x0F99, 1, 0 }, { 0x0FBC, 0, 1 },
+ { 0x0FBE, 1, 0 }, { 0x0FCC, 0, 1 },
+ { 0x0FCE, 1, 0 }, { 0x0FD4, 0, 1 }
+};
+static const uc_interval_t script_myanmar_intervals[] =
+{
+ { 0x1000, 1, 0 }, { 0x1099, 0, 1 },
+ { 0x109E, 1, 0 }, { 0x109F, 0, 1 }
+};
+static const uc_interval_t script_georgian_intervals[] =
+{
+ { 0x10A0, 1, 0 }, { 0x10C5, 0, 1 },
+ { 0x10D0, 1, 0 }, { 0x10FA, 0, 1 },
+ { 0x10FC, 1, 1 },
+ { 0x2D00, 1, 0 }, { 0x2D25, 0, 1 }
+};
+static const uc_interval_t script_hangul_intervals[] =
+{
+ { 0x1100, 1, 0 }, { 0x1159, 0, 1 },
+ { 0x115F, 1, 0 }, { 0x11A2, 0, 1 },
+ { 0x11A8, 1, 0 }, { 0x11F9, 0, 1 },
+ { 0x3131, 1, 0 }, { 0x318E, 0, 1 },
+ { 0x3200, 1, 0 }, { 0x321E, 0, 1 },
+ { 0x3260, 1, 0 }, { 0x327E, 0, 1 },
+ { 0xAC00, 1, 0 }, { 0xD7A3, 0, 1 },
+ { 0xFFA0, 1, 0 }, { 0xFFBE, 0, 1 },
+ { 0xFFC2, 1, 0 }, { 0xFFC7, 0, 1 },
+ { 0xFFCA, 1, 0 }, { 0xFFCF, 0, 1 },
+ { 0xFFD2, 1, 0 }, { 0xFFD7, 0, 1 },
+ { 0xFFDA, 1, 0 }, { 0xFFDC, 0, 1 }
+};
+static const uc_interval_t script_ethiopic_intervals[] =
+{
+ { 0x1200, 1, 0 }, { 0x1248, 0, 1 },
+ { 0x124A, 1, 0 }, { 0x124D, 0, 1 },
+ { 0x1250, 1, 0 }, { 0x1256, 0, 1 },
+ { 0x1258, 1, 1 },
+ { 0x125A, 1, 0 }, { 0x125D, 0, 1 },
+ { 0x1260, 1, 0 }, { 0x1288, 0, 1 },
+ { 0x128A, 1, 0 }, { 0x128D, 0, 1 },
+ { 0x1290, 1, 0 }, { 0x12B0, 0, 1 },
+ { 0x12B2, 1, 0 }, { 0x12B5, 0, 1 },
+ { 0x12B8, 1, 0 }, { 0x12BE, 0, 1 },
+ { 0x12C0, 1, 1 },
+ { 0x12C2, 1, 0 }, { 0x12C5, 0, 1 },
+ { 0x12C8, 1, 0 }, { 0x12D6, 0, 1 },
+ { 0x12D8, 1, 0 }, { 0x1310, 0, 1 },
+ { 0x1312, 1, 0 }, { 0x1315, 0, 1 },
+ { 0x1318, 1, 0 }, { 0x135A, 0, 1 },
+ { 0x135F, 1, 0 }, { 0x137C, 0, 1 },
+ { 0x1380, 1, 0 }, { 0x1399, 0, 1 },
+ { 0x2D80, 1, 0 }, { 0x2D96, 0, 1 },
+ { 0x2DA0, 1, 0 }, { 0x2DA6, 0, 1 },
+ { 0x2DA8, 1, 0 }, { 0x2DAE, 0, 1 },
+ { 0x2DB0, 1, 0 }, { 0x2DB6, 0, 1 },
+ { 0x2DB8, 1, 0 }, { 0x2DBE, 0, 1 },
+ { 0x2DC0, 1, 0 }, { 0x2DC6, 0, 1 },
+ { 0x2DC8, 1, 0 }, { 0x2DCE, 0, 1 },
+ { 0x2DD0, 1, 0 }, { 0x2DD6, 0, 1 },
+ { 0x2DD8, 1, 0 }, { 0x2DDE, 0, 1 }
+};
+static const uc_interval_t script_cherokee_intervals[] =
+{
+ { 0x13A0, 1, 0 }, { 0x13F4, 0, 1 }
+};
+static const uc_interval_t script_canadian_aboriginal_intervals[] =
+{
+ { 0x1401, 1, 0 }, { 0x1676, 0, 1 }
+};
+static const uc_interval_t script_ogham_intervals[] =
+{
+ { 0x1680, 1, 0 }, { 0x169C, 0, 1 }
+};
+static const uc_interval_t script_runic_intervals[] =
+{
+ { 0x16A0, 1, 0 }, { 0x16EA, 0, 1 },
+ { 0x16EE, 1, 0 }, { 0x16F0, 0, 1 }
+};
+static const uc_interval_t script_khmer_intervals[] =
+{
+ { 0x1780, 1, 0 }, { 0x17DD, 0, 1 },
+ { 0x17E0, 1, 0 }, { 0x17E9, 0, 1 },
+ { 0x17F0, 1, 0 }, { 0x17F9, 0, 1 },
+ { 0x19E0, 1, 0 }, { 0x19FF, 0, 1 }
+};
+static const uc_interval_t script_mongolian_intervals[] =
+{
+ { 0x1800, 1, 0 }, { 0x1801, 0, 1 },
+ { 0x1804, 1, 1 },
+ { 0x1806, 1, 0 }, { 0x180E, 0, 1 },
+ { 0x1810, 1, 0 }, { 0x1819, 0, 1 },
+ { 0x1820, 1, 0 }, { 0x1877, 0, 1 },
+ { 0x1880, 1, 0 }, { 0x18AA, 0, 1 }
+};
+static const uc_interval_t script_hiragana_intervals[] =
+{
+ { 0x3041, 1, 0 }, { 0x3096, 0, 1 },
+ { 0x309D, 1, 0 }, { 0x309F, 0, 1 }
+};
+static const uc_interval_t script_katakana_intervals[] =
+{
+ { 0x30A1, 1, 0 }, { 0x30FA, 0, 1 },
+ { 0x30FD, 1, 0 }, { 0x30FF, 0, 1 },
+ { 0x31F0, 1, 0 }, { 0x31FF, 0, 1 },
+ { 0x32D0, 1, 0 }, { 0x32FE, 0, 1 },
+ { 0x3300, 1, 0 }, { 0x3357, 0, 1 },
+ { 0xFF66, 1, 0 }, { 0xFF6F, 0, 1 },
+ { 0xFF71, 1, 0 }, { 0xFF9D, 0, 1 }
+};
+static const uc_interval_t script_bopomofo_intervals[] =
+{
+ { 0x3105, 1, 0 }, { 0x312D, 0, 1 },
+ { 0x31A0, 1, 0 }, { 0x31B7, 0, 1 }
+};
+static const uc_interval_t script_han_intervals[] =
+{
+ { 0x2E80, 1, 0 }, { 0x2E99, 0, 1 },
+ { 0x2E9B, 1, 0 }, { 0x2EF3, 0, 1 },
+ { 0x2F00, 1, 0 }, { 0x2FD5, 0, 1 },
+ { 0x3005, 1, 1 },
+ { 0x3007, 1, 1 },
+ { 0x3021, 1, 0 }, { 0x3029, 0, 1 },
+ { 0x3038, 1, 0 }, { 0x303B, 0, 1 },
+ { 0x3400, 1, 0 }, { 0x4DB5, 0, 1 },
+ { 0x4E00, 1, 0 }, { 0x9FC3, 0, 1 },
+ { 0xF900, 1, 0 }, { 0xFA2D, 0, 1 },
+ { 0xFA30, 1, 0 }, { 0xFA6A, 0, 1 },
+ { 0xFA70, 1, 0 }, { 0xFAD9, 0, 1 },
+ { 0x20000, 1, 0 }, { 0x2A6D6, 0, 1 },
+ { 0x2F800, 1, 0 }, { 0x2FA1D, 0, 1 }
+};
+static const uc_interval_t script_yi_intervals[] =
+{
+ { 0xA000, 1, 0 }, { 0xA48C, 0, 1 },
+ { 0xA490, 1, 0 }, { 0xA4C6, 0, 1 }
+};
+static const uc_interval_t script_old_italic_intervals[] =
+{
+ { 0x10300, 1, 0 }, { 0x1031E, 0, 1 },
+ { 0x10320, 1, 0 }, { 0x10323, 0, 1 }
+};
+static const uc_interval_t script_gothic_intervals[] =
+{
+ { 0x10330, 1, 0 }, { 0x1034A, 0, 1 }
+};
+static const uc_interval_t script_deseret_intervals[] =
+{
+ { 0x10400, 1, 0 }, { 0x1044F, 0, 1 }
+};
+static const uc_interval_t script_inherited_intervals[] =
+{
+ { 0x0300, 1, 0 }, { 0x036F, 0, 1 },
+ { 0x064B, 1, 0 }, { 0x0655, 0, 1 },
+ { 0x0670, 1, 1 },
+ { 0x0951, 1, 0 }, { 0x0952, 0, 1 },
+ { 0x1DC0, 1, 0 }, { 0x1DE6, 0, 1 },
+ { 0x1DFE, 1, 0 }, { 0x1DFF, 0, 1 },
+ { 0x200C, 1, 0 }, { 0x200D, 0, 1 },
+ { 0x20D0, 1, 0 }, { 0x20F0, 0, 1 },
+ { 0x302A, 1, 0 }, { 0x302F, 0, 1 },
+ { 0x3099, 1, 0 }, { 0x309A, 0, 1 },
+ { 0xFE00, 1, 0 }, { 0xFE0F, 0, 1 },
+ { 0xFE20, 1, 0 }, { 0xFE26, 0, 1 },
+ { 0x101FD, 1, 1 },
+ { 0x1D167, 1, 0 }, { 0x1D169, 0, 1 },
+ { 0x1D17B, 1, 0 }, { 0x1D182, 0, 1 },
+ { 0x1D185, 1, 0 }, { 0x1D18B, 0, 1 },
+ { 0x1D1AA, 1, 0 }, { 0x1D1AD, 0, 1 },
+ { 0xE0100, 1, 0 }, { 0xE01EF, 0, 1 }
+};
+static const uc_interval_t script_tagalog_intervals[] =
+{
+ { 0x1700, 1, 0 }, { 0x170C, 0, 1 },
+ { 0x170E, 1, 0 }, { 0x1714, 0, 1 }
+};
+static const uc_interval_t script_hanunoo_intervals[] =
+{
+ { 0x1720, 1, 0 }, { 0x1734, 0, 1 }
+};
+static const uc_interval_t script_buhid_intervals[] =
+{
+ { 0x1740, 1, 0 }, { 0x1753, 0, 1 }
+};
+static const uc_interval_t script_tagbanwa_intervals[] =
+{
+ { 0x1760, 1, 0 }, { 0x176C, 0, 1 },
+ { 0x176E, 1, 0 }, { 0x1770, 0, 1 },
+ { 0x1772, 1, 0 }, { 0x1773, 0, 1 }
+};
+static const uc_interval_t script_limbu_intervals[] =
+{
+ { 0x1900, 1, 0 }, { 0x191C, 0, 1 },
+ { 0x1920, 1, 0 }, { 0x192B, 0, 1 },
+ { 0x1930, 1, 0 }, { 0x193B, 0, 1 },
+ { 0x1940, 1, 1 },
+ { 0x1944, 1, 0 }, { 0x194F, 0, 1 }
+};
+static const uc_interval_t script_tai_le_intervals[] =
+{
+ { 0x1950, 1, 0 }, { 0x196D, 0, 1 },
+ { 0x1970, 1, 0 }, { 0x1974, 0, 1 }
+};
+static const uc_interval_t script_linear_b_intervals[] =
+{
+ { 0x10000, 1, 0 }, { 0x1000B, 0, 1 },
+ { 0x1000D, 1, 0 }, { 0x10026, 0, 1 },
+ { 0x10028, 1, 0 }, { 0x1003A, 0, 1 },
+ { 0x1003C, 1, 0 }, { 0x1003D, 0, 1 },
+ { 0x1003F, 1, 0 }, { 0x1004D, 0, 1 },
+ { 0x10050, 1, 0 }, { 0x1005D, 0, 1 },
+ { 0x10080, 1, 0 }, { 0x100FA, 0, 1 }
+};
+static const uc_interval_t script_ugaritic_intervals[] =
+{
+ { 0x10380, 1, 0 }, { 0x1039D, 0, 1 },
+ { 0x1039F, 1, 1 }
+};
+static const uc_interval_t script_shavian_intervals[] =
+{
+ { 0x10450, 1, 0 }, { 0x1047F, 0, 1 }
+};
+static const uc_interval_t script_osmanya_intervals[] =
+{
+ { 0x10480, 1, 0 }, { 0x1049D, 0, 1 },
+ { 0x104A0, 1, 0 }, { 0x104A9, 0, 1 }
+};
+static const uc_interval_t script_cypriot_intervals[] =
+{
+ { 0x10800, 1, 0 }, { 0x10805, 0, 1 },
+ { 0x10808, 1, 1 },
+ { 0x1080A, 1, 0 }, { 0x10835, 0, 1 },
+ { 0x10837, 1, 0 }, { 0x10838, 0, 1 },
+ { 0x1083C, 1, 1 },
+ { 0x1083F, 1, 1 }
+};
+static const uc_interval_t script_braille_intervals[] =
+{
+ { 0x2800, 1, 0 }, { 0x28FF, 0, 1 }
+};
+static const uc_interval_t script_buginese_intervals[] =
+{
+ { 0x1A00, 1, 0 }, { 0x1A1B, 0, 1 },
+ { 0x1A1E, 1, 0 }, { 0x1A1F, 0, 1 }
+};
+static const uc_interval_t script_coptic_intervals[] =
+{
+ { 0x03E2, 1, 0 }, { 0x03EF, 0, 1 },
+ { 0x2C80, 1, 0 }, { 0x2CEA, 0, 1 },
+ { 0x2CF9, 1, 0 }, { 0x2CFF, 0, 1 }
+};
+static const uc_interval_t script_new_tai_lue_intervals[] =
+{
+ { 0x1980, 1, 0 }, { 0x19A9, 0, 1 },
+ { 0x19B0, 1, 0 }, { 0x19C9, 0, 1 },
+ { 0x19D0, 1, 0 }, { 0x19D9, 0, 1 },
+ { 0x19DE, 1, 0 }, { 0x19DF, 0, 1 }
+};
+static const uc_interval_t script_glagolitic_intervals[] =
+{
+ { 0x2C00, 1, 0 }, { 0x2C2E, 0, 1 },
+ { 0x2C30, 1, 0 }, { 0x2C5E, 0, 1 }
+};
+static const uc_interval_t script_tifinagh_intervals[] =
+{
+ { 0x2D30, 1, 0 }, { 0x2D65, 0, 1 },
+ { 0x2D6F, 1, 1 }
+};
+static const uc_interval_t script_syloti_nagri_intervals[] =
+{
+ { 0xA800, 1, 0 }, { 0xA82B, 0, 1 }
+};
+static const uc_interval_t script_old_persian_intervals[] =
+{
+ { 0x103A0, 1, 0 }, { 0x103C3, 0, 1 },
+ { 0x103C8, 1, 0 }, { 0x103D5, 0, 1 }
+};
+static const uc_interval_t script_kharoshthi_intervals[] =
+{
+ { 0x10A00, 1, 0 }, { 0x10A03, 0, 1 },
+ { 0x10A05, 1, 0 }, { 0x10A06, 0, 1 },
+ { 0x10A0C, 1, 0 }, { 0x10A13, 0, 1 },
+ { 0x10A15, 1, 0 }, { 0x10A17, 0, 1 },
+ { 0x10A19, 1, 0 }, { 0x10A33, 0, 1 },
+ { 0x10A38, 1, 0 }, { 0x10A3A, 0, 1 },
+ { 0x10A3F, 1, 0 }, { 0x10A47, 0, 1 },
+ { 0x10A50, 1, 0 }, { 0x10A58, 0, 1 }
+};
+static const uc_interval_t script_balinese_intervals[] =
+{
+ { 0x1B00, 1, 0 }, { 0x1B4B, 0, 1 },
+ { 0x1B50, 1, 0 }, { 0x1B7C, 0, 1 }
+};
+static const uc_interval_t script_cuneiform_intervals[] =
+{
+ { 0x12000, 1, 0 }, { 0x1236E, 0, 1 },
+ { 0x12400, 1, 0 }, { 0x12462, 0, 1 },
+ { 0x12470, 1, 0 }, { 0x12473, 0, 1 }
+};
+static const uc_interval_t script_phoenician_intervals[] =
+{
+ { 0x10900, 1, 0 }, { 0x10919, 0, 1 },
+ { 0x1091F, 1, 1 }
+};
+static const uc_interval_t script_phags_pa_intervals[] =
+{
+ { 0xA840, 1, 0 }, { 0xA877, 0, 1 }
+};
+static const uc_interval_t script_nko_intervals[] =
+{
+ { 0x07C0, 1, 0 }, { 0x07FA, 0, 1 }
+};
+static const uc_interval_t script_sundanese_intervals[] =
+{
+ { 0x1B80, 1, 0 }, { 0x1BAA, 0, 1 },
+ { 0x1BAE, 1, 0 }, { 0x1BB9, 0, 1 }
+};
+static const uc_interval_t script_lepcha_intervals[] =
+{
+ { 0x1C00, 1, 0 }, { 0x1C37, 0, 1 },
+ { 0x1C3B, 1, 0 }, { 0x1C49, 0, 1 },
+ { 0x1C4D, 1, 0 }, { 0x1C4F, 0, 1 }
+};
+static const uc_interval_t script_ol_chiki_intervals[] =
+{
+ { 0x1C50, 1, 0 }, { 0x1C7F, 0, 1 }
+};
+static const uc_interval_t script_vai_intervals[] =
+{
+ { 0xA500, 1, 0 }, { 0xA62B, 0, 1 }
+};
+static const uc_interval_t script_saurashtra_intervals[] =
+{
+ { 0xA880, 1, 0 }, { 0xA8C4, 0, 1 },
+ { 0xA8CE, 1, 0 }, { 0xA8D9, 0, 1 }
+};
+static const uc_interval_t script_kayah_li_intervals[] =
+{
+ { 0xA900, 1, 0 }, { 0xA92F, 0, 1 }
+};
+static const uc_interval_t script_rejang_intervals[] =
+{
+ { 0xA930, 1, 0 }, { 0xA953, 0, 1 },
+ { 0xA95F, 1, 1 }
+};
+static const uc_interval_t script_lycian_intervals[] =
+{
+ { 0x10280, 1, 0 }, { 0x1029C, 0, 1 }
+};
+static const uc_interval_t script_carian_intervals[] =
+{
+ { 0x102A0, 1, 0 }, { 0x102D0, 0, 1 }
+};
+static const uc_interval_t script_lydian_intervals[] =
+{
+ { 0x10920, 1, 0 }, { 0x10939, 0, 1 },
+ { 0x1093F, 1, 1 }
+};
+static const uc_interval_t script_cham_intervals[] =
+{
+ { 0xAA00, 1, 0 }, { 0xAA36, 0, 1 },
+ { 0xAA40, 1, 0 }, { 0xAA4D, 0, 1 },
+ { 0xAA50, 1, 0 }, { 0xAA59, 0, 1 },
+ { 0xAA5C, 1, 0 }, { 0xAA5F, 0, 1 }
+};
+static const uc_script_t scripts[77] =
+{
+ {
+ sizeof (script_common_intervals) / sizeof (uc_interval_t),
+ script_common_intervals,
+ "Common"
+ },
+ {
+ sizeof (script_latin_intervals) / sizeof (uc_interval_t),
+ script_latin_intervals,
+ "Latin"
+ },
+ {
+ sizeof (script_greek_intervals) / sizeof (uc_interval_t),
+ script_greek_intervals,
+ "Greek"
+ },
+ {
+ sizeof (script_cyrillic_intervals) / sizeof (uc_interval_t),
+ script_cyrillic_intervals,
+ "Cyrillic"
+ },
+ {
+ sizeof (script_armenian_intervals) / sizeof (uc_interval_t),
+ script_armenian_intervals,
+ "Armenian"
+ },
+ {
+ sizeof (script_hebrew_intervals) / sizeof (uc_interval_t),
+ script_hebrew_intervals,
+ "Hebrew"
+ },
+ {
+ sizeof (script_arabic_intervals) / sizeof (uc_interval_t),
+ script_arabic_intervals,
+ "Arabic"
+ },
+ {
+ sizeof (script_syriac_intervals) / sizeof (uc_interval_t),
+ script_syriac_intervals,
+ "Syriac"
+ },
+ {
+ sizeof (script_thaana_intervals) / sizeof (uc_interval_t),
+ script_thaana_intervals,
+ "Thaana"
+ },
+ {
+ sizeof (script_devanagari_intervals) / sizeof (uc_interval_t),
+ script_devanagari_intervals,
+ "Devanagari"
+ },
+ {
+ sizeof (script_bengali_intervals) / sizeof (uc_interval_t),
+ script_bengali_intervals,
+ "Bengali"
+ },
+ {
+ sizeof (script_gurmukhi_intervals) / sizeof (uc_interval_t),
+ script_gurmukhi_intervals,
+ "Gurmukhi"
+ },
+ {
+ sizeof (script_gujarati_intervals) / sizeof (uc_interval_t),
+ script_gujarati_intervals,
+ "Gujarati"
+ },
+ {
+ sizeof (script_oriya_intervals) / sizeof (uc_interval_t),
+ script_oriya_intervals,
+ "Oriya"
+ },
+ {
+ sizeof (script_tamil_intervals) / sizeof (uc_interval_t),
+ script_tamil_intervals,
+ "Tamil"
+ },
+ {
+ sizeof (script_telugu_intervals) / sizeof (uc_interval_t),
+ script_telugu_intervals,
+ "Telugu"
+ },
+ {
+ sizeof (script_kannada_intervals) / sizeof (uc_interval_t),
+ script_kannada_intervals,
+ "Kannada"
+ },
+ {
+ sizeof (script_malayalam_intervals) / sizeof (uc_interval_t),
+ script_malayalam_intervals,
+ "Malayalam"
+ },
+ {
+ sizeof (script_sinhala_intervals) / sizeof (uc_interval_t),
+ script_sinhala_intervals,
+ "Sinhala"
+ },
+ {
+ sizeof (script_thai_intervals) / sizeof (uc_interval_t),
+ script_thai_intervals,
+ "Thai"
+ },
+ {
+ sizeof (script_lao_intervals) / sizeof (uc_interval_t),
+ script_lao_intervals,
+ "Lao"
+ },
+ {
+ sizeof (script_tibetan_intervals) / sizeof (uc_interval_t),
+ script_tibetan_intervals,
+ "Tibetan"
+ },
+ {
+ sizeof (script_myanmar_intervals) / sizeof (uc_interval_t),
+ script_myanmar_intervals,
+ "Myanmar"
+ },
+ {
+ sizeof (script_georgian_intervals) / sizeof (uc_interval_t),
+ script_georgian_intervals,
+ "Georgian"
+ },
+ {
+ sizeof (script_hangul_intervals) / sizeof (uc_interval_t),
+ script_hangul_intervals,
+ "Hangul"
+ },
+ {
+ sizeof (script_ethiopic_intervals) / sizeof (uc_interval_t),
+ script_ethiopic_intervals,
+ "Ethiopic"
+ },
+ {
+ sizeof (script_cherokee_intervals) / sizeof (uc_interval_t),
+ script_cherokee_intervals,
+ "Cherokee"
+ },
+ {
+ sizeof (script_canadian_aboriginal_intervals) / sizeof (uc_interval_t),
+ script_canadian_aboriginal_intervals,
+ "Canadian_Aboriginal"
+ },
+ {
+ sizeof (script_ogham_intervals) / sizeof (uc_interval_t),
+ script_ogham_intervals,
+ "Ogham"
+ },
+ {
+ sizeof (script_runic_intervals) / sizeof (uc_interval_t),
+ script_runic_intervals,
+ "Runic"
+ },
+ {
+ sizeof (script_khmer_intervals) / sizeof (uc_interval_t),
+ script_khmer_intervals,
+ "Khmer"
+ },
+ {
+ sizeof (script_mongolian_intervals) / sizeof (uc_interval_t),
+ script_mongolian_intervals,
+ "Mongolian"
+ },
+ {
+ sizeof (script_hiragana_intervals) / sizeof (uc_interval_t),
+ script_hiragana_intervals,
+ "Hiragana"
+ },
+ {
+ sizeof (script_katakana_intervals) / sizeof (uc_interval_t),
+ script_katakana_intervals,
+ "Katakana"
+ },
+ {
+ sizeof (script_bopomofo_intervals) / sizeof (uc_interval_t),
+ script_bopomofo_intervals,
+ "Bopomofo"
+ },
+ {
+ sizeof (script_han_intervals) / sizeof (uc_interval_t),
+ script_han_intervals,
+ "Han"
+ },
+ {
+ sizeof (script_yi_intervals) / sizeof (uc_interval_t),
+ script_yi_intervals,
+ "Yi"
+ },
+ {
+ sizeof (script_old_italic_intervals) / sizeof (uc_interval_t),
+ script_old_italic_intervals,
+ "Old_Italic"
+ },
+ {
+ sizeof (script_gothic_intervals) / sizeof (uc_interval_t),
+ script_gothic_intervals,
+ "Gothic"
+ },
+ {
+ sizeof (script_deseret_intervals) / sizeof (uc_interval_t),
+ script_deseret_intervals,
+ "Deseret"
+ },
+ {
+ sizeof (script_inherited_intervals) / sizeof (uc_interval_t),
+ script_inherited_intervals,
+ "Inherited"
+ },
+ {
+ sizeof (script_tagalog_intervals) / sizeof (uc_interval_t),
+ script_tagalog_intervals,
+ "Tagalog"
+ },
+ {
+ sizeof (script_hanunoo_intervals) / sizeof (uc_interval_t),
+ script_hanunoo_intervals,
+ "Hanunoo"
+ },
+ {
+ sizeof (script_buhid_intervals) / sizeof (uc_interval_t),
+ script_buhid_intervals,
+ "Buhid"
+ },
+ {
+ sizeof (script_tagbanwa_intervals) / sizeof (uc_interval_t),
+ script_tagbanwa_intervals,
+ "Tagbanwa"
+ },
+ {
+ sizeof (script_limbu_intervals) / sizeof (uc_interval_t),
+ script_limbu_intervals,
+ "Limbu"
+ },
+ {
+ sizeof (script_tai_le_intervals) / sizeof (uc_interval_t),
+ script_tai_le_intervals,
+ "Tai_Le"
+ },
+ {
+ sizeof (script_linear_b_intervals) / sizeof (uc_interval_t),
+ script_linear_b_intervals,
+ "Linear_B"
+ },
+ {
+ sizeof (script_ugaritic_intervals) / sizeof (uc_interval_t),
+ script_ugaritic_intervals,
+ "Ugaritic"
+ },
+ {
+ sizeof (script_shavian_intervals) / sizeof (uc_interval_t),
+ script_shavian_intervals,
+ "Shavian"
+ },
+ {
+ sizeof (script_osmanya_intervals) / sizeof (uc_interval_t),
+ script_osmanya_intervals,
+ "Osmanya"
+ },
+ {
+ sizeof (script_cypriot_intervals) / sizeof (uc_interval_t),
+ script_cypriot_intervals,
+ "Cypriot"
+ },
+ {
+ sizeof (script_braille_intervals) / sizeof (uc_interval_t),
+ script_braille_intervals,
+ "Braille"
+ },
+ {
+ sizeof (script_buginese_intervals) / sizeof (uc_interval_t),
+ script_buginese_intervals,
+ "Buginese"
+ },
+ {
+ sizeof (script_coptic_intervals) / sizeof (uc_interval_t),
+ script_coptic_intervals,
+ "Coptic"
+ },
+ {
+ sizeof (script_new_tai_lue_intervals) / sizeof (uc_interval_t),
+ script_new_tai_lue_intervals,
+ "New_Tai_Lue"
+ },
+ {
+ sizeof (script_glagolitic_intervals) / sizeof (uc_interval_t),
+ script_glagolitic_intervals,
+ "Glagolitic"
+ },
+ {
+ sizeof (script_tifinagh_intervals) / sizeof (uc_interval_t),
+ script_tifinagh_intervals,
+ "Tifinagh"
+ },
+ {
+ sizeof (script_syloti_nagri_intervals) / sizeof (uc_interval_t),
+ script_syloti_nagri_intervals,
+ "Syloti_Nagri"
+ },
+ {
+ sizeof (script_old_persian_intervals) / sizeof (uc_interval_t),
+ script_old_persian_intervals,
+ "Old_Persian"
+ },
+ {
+ sizeof (script_kharoshthi_intervals) / sizeof (uc_interval_t),
+ script_kharoshthi_intervals,
+ "Kharoshthi"
+ },
+ {
+ sizeof (script_balinese_intervals) / sizeof (uc_interval_t),
+ script_balinese_intervals,
+ "Balinese"
+ },
+ {
+ sizeof (script_cuneiform_intervals) / sizeof (uc_interval_t),
+ script_cuneiform_intervals,
+ "Cuneiform"
+ },
+ {
+ sizeof (script_phoenician_intervals) / sizeof (uc_interval_t),
+ script_phoenician_intervals,
+ "Phoenician"
+ },
+ {
+ sizeof (script_phags_pa_intervals) / sizeof (uc_interval_t),
+ script_phags_pa_intervals,
+ "Phags_Pa"
+ },
+ {
+ sizeof (script_nko_intervals) / sizeof (uc_interval_t),
+ script_nko_intervals,
+ "Nko"
+ },
+ {
+ sizeof (script_sundanese_intervals) / sizeof (uc_interval_t),
+ script_sundanese_intervals,
+ "Sundanese"
+ },
+ {
+ sizeof (script_lepcha_intervals) / sizeof (uc_interval_t),
+ script_lepcha_intervals,
+ "Lepcha"
+ },
+ {
+ sizeof (script_ol_chiki_intervals) / sizeof (uc_interval_t),
+ script_ol_chiki_intervals,
+ "Ol_Chiki"
+ },
+ {
+ sizeof (script_vai_intervals) / sizeof (uc_interval_t),
+ script_vai_intervals,
+ "Vai"
+ },
+ {
+ sizeof (script_saurashtra_intervals) / sizeof (uc_interval_t),
+ script_saurashtra_intervals,
+ "Saurashtra"
+ },
+ {
+ sizeof (script_kayah_li_intervals) / sizeof (uc_interval_t),
+ script_kayah_li_intervals,
+ "Kayah_Li"
+ },
+ {
+ sizeof (script_rejang_intervals) / sizeof (uc_interval_t),
+ script_rejang_intervals,
+ "Rejang"
+ },
+ {
+ sizeof (script_lycian_intervals) / sizeof (uc_interval_t),
+ script_lycian_intervals,
+ "Lycian"
+ },
+ {
+ sizeof (script_carian_intervals) / sizeof (uc_interval_t),
+ script_carian_intervals,
+ "Carian"
+ },
+ {
+ sizeof (script_lydian_intervals) / sizeof (uc_interval_t),
+ script_lydian_intervals,
+ "Lydian"
+ },
+ {
+ sizeof (script_cham_intervals) / sizeof (uc_interval_t),
+ script_cham_intervals,
+ "Cham"
+ }
+};
+#define script_header_0 16
+#define script_header_1 15
+#define script_header_2 7
+#define script_header_3 511
+#define script_header_4 127
+static const
+struct
+ {
+ int level1[15];
+ short level2[4 << 9];
+ unsigned char level3[138 << 7];
+ }
+u_script =
+{
+ {
+ 0, 512, 1024, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1536
+ },
+ {
+ 0, 128, 256, 256, 256, 384, 512, 640,
+ 768, 768, 896, 1024, 1152, 1280, 1408, 1536,
+ -1, -1, 1664, 1792, 1920, 2048, 2176, 2304,
+ 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328,
+ 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352,
+ 4480, 4608, 4608, 4608, 4736, 4864, 4992, 5120,
+ 5248, 5376, 5504, 5632, 5760, -1, 5888, 6016,
+ 6144, -1, 6272, 6400, 256, 256, 6528, 6656,
+ 6784, 6912, 7040, 7168, 7296, 7296, 7296, 7424,
+ 7552, 7296, 7296, 7296, 7296, 7680, 7808, 7936,
+ 8064, 8064, 7296, 7296, 7296, 7296, 8192, -1,
+ 8320, 8448, 8576, 8704, 8832, 8960, 9088, 9216,
+ 9344, 9472, 9600, 9728, 9856, 9984, 10112, 7296,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 10240, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 10368,
+ 10496, 10496, 10496, 10496, 10496, 10496, 10496, 10496,
+ 10496, 10624, 10752, 10752, 10880, 11008, 11136, 11264,
+ 11392, 11520, 11648, -1, 11776, -1, -1, -1,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+ 11904, 11904, 11904, 11904, 11904, 11904, 11904, 12032,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 9088, 9088, 12160, 12288, 12416, 12544,
+ 12672, 12672, 12800, 12928, 13056, 13184, 13312, 13440,
+ 13568, 13696, 13824, 13952, -1, 14080, 14208, 14336,
+ 14464, 14592, -1, -1, -1, -1, -1, -1,
+ 14720, -1, 14848, -1, 14976, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 15104, 15104, 15104, 15104, 15104, 15104, 15232, -1,
+ 15360, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 7296, 15488, 15616, 15744, 15872, -1, 16000, -1,
+ 16128, 16256, 16384, 7296, 7296, 16512, 7296, 16640,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 16768, 16896, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 9088, 9088, 9088,
+ 9088, 9088, 9088, 9088, 9088, 17024, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 9088, 9088, 9088, 9088, 17152, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 17280, -1, 17408, 17536, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 2, 2, 2, 2, 0, 2, 2, 2,
+ 255, 255, 2, 2, 2, 2, 0, 255,
+ 255, 255, 255, 255, 2, 0, 2, 0,
+ 2, 2, 2, 255, 2, 255, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 255, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 255,
+ 255, 4, 4, 4, 4, 4, 4, 4,
+ 255, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 255, 0, 4, 255, 255, 255, 255, 255,
+ 255, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 255, 255, 255, 255, 255,
+ 5, 5, 5, 5, 5, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 255, 255, 6, 6,
+ 6, 6, 6, 6, 0, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 0, 255, 255, 6, 0,
+ 255, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 0, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 6, 6, 6, 6, 6, 6,
+ 40, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 0, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 255, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 255, 255, 7, 7, 7,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 255, 255, 255, 255, 255,
+ 255, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 255, 255, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 255, 255,
+ 9, 40, 40, 9, 9, 255, 255, 255,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 9, 9, 255, 255, 255, 255, 255,
+ 255, 255, 255, 9, 9, 9, 9, 9,
+ 255, 10, 10, 10, 255, 10, 10, 10,
+ 10, 10, 10, 10, 10, 255, 255, 10,
+ 10, 255, 255, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 255, 10, 10, 10, 10, 10, 10,
+ 10, 255, 10, 255, 255, 255, 10, 10,
+ 10, 10, 255, 255, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 255, 255, 10,
+ 10, 255, 255, 10, 10, 10, 10, 255,
+ 255, 255, 255, 255, 255, 255, 255, 10,
+ 255, 255, 255, 255, 10, 10, 255, 10,
+ 10, 10, 10, 10, 255, 255, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 255, 255, 255, 255, 255,
+ 255, 11, 11, 11, 255, 11, 11, 11,
+ 11, 11, 11, 255, 255, 255, 255, 11,
+ 11, 255, 255, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 255, 11, 11, 11, 11, 11, 11,
+ 11, 255, 11, 11, 255, 11, 11, 255,
+ 11, 11, 255, 255, 11, 255, 11, 11,
+ 11, 11, 11, 255, 255, 255, 255, 11,
+ 11, 255, 255, 11, 11, 11, 255, 255,
+ 255, 11, 255, 255, 255, 255, 255, 255,
+ 255, 11, 11, 11, 11, 255, 11, 255,
+ 255, 255, 255, 255, 255, 255, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 12, 12, 12, 255, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 255, 12,
+ 12, 12, 255, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 255, 12, 12, 12, 12, 12, 12,
+ 12, 255, 12, 12, 255, 12, 12, 12,
+ 12, 12, 255, 255, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 255, 12,
+ 12, 12, 255, 12, 12, 12, 255, 255,
+ 12, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 12, 12, 12, 12, 255, 255, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12,
+ 255, 12, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 13, 13, 13, 255, 13, 13, 13,
+ 13, 13, 13, 13, 13, 255, 255, 13,
+ 13, 255, 255, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 255, 13, 13, 13, 13, 13, 13,
+ 13, 255, 13, 13, 255, 13, 13, 13,
+ 13, 13, 255, 255, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 255, 255, 13,
+ 13, 255, 255, 13, 13, 13, 255, 255,
+ 255, 255, 255, 255, 255, 255, 13, 13,
+ 255, 255, 255, 255, 13, 13, 255, 13,
+ 13, 13, 13, 13, 255, 255, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 14, 14, 255, 14, 14, 14,
+ 14, 14, 14, 255, 255, 255, 14, 14,
+ 14, 255, 14, 14, 14, 14, 255, 255,
+ 255, 14, 14, 255, 14, 255, 14, 14,
+ 255, 255, 255, 14, 14, 255, 255, 255,
+ 14, 14, 14, 255, 255, 255, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 255, 255, 255, 255, 14, 14,
+ 14, 14, 14, 255, 255, 255, 14, 14,
+ 14, 255, 14, 14, 14, 14, 255, 255,
+ 14, 255, 255, 255, 255, 255, 255, 14,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 255, 255, 255, 255, 255,
+ 255, 15, 15, 15, 255, 15, 15, 15,
+ 15, 15, 15, 15, 15, 255, 15, 15,
+ 15, 255, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 255, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 255, 15, 15, 15,
+ 15, 15, 255, 255, 255, 15, 15, 15,
+ 15, 15, 15, 15, 15, 255, 15, 15,
+ 15, 255, 15, 15, 15, 15, 255, 255,
+ 255, 255, 255, 255, 255, 15, 15, 255,
+ 15, 15, 255, 255, 255, 255, 255, 255,
+ 15, 15, 15, 15, 255, 255, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 15, 15, 15, 15, 15, 15, 15, 15,
+ 255, 255, 16, 16, 255, 16, 16, 16,
+ 16, 16, 16, 16, 16, 255, 16, 16,
+ 16, 255, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 255, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 255, 16, 16, 16,
+ 16, 16, 255, 255, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 255, 16, 16,
+ 16, 255, 16, 16, 16, 16, 255, 255,
+ 255, 255, 255, 255, 255, 16, 16, 255,
+ 255, 255, 255, 255, 255, 255, 16, 255,
+ 16, 16, 16, 16, 255, 255, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 255, 0, 0, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 17, 17, 255, 17, 17, 17,
+ 17, 17, 17, 17, 17, 255, 17, 17,
+ 17, 255, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 255, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 255, 255, 255, 17, 17, 17,
+ 17, 17, 17, 17, 17, 255, 17, 17,
+ 17, 255, 17, 17, 17, 17, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 17,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 17, 17, 17, 17, 255, 255, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 255, 255,
+ 255, 17, 17, 17, 17, 17, 17, 17,
+ 255, 255, 18, 18, 255, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 255,
+ 255, 255, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 255, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 255, 18, 255, 255,
+ 18, 18, 18, 18, 18, 18, 18, 255,
+ 255, 255, 18, 255, 255, 255, 255, 18,
+ 18, 18, 18, 18, 18, 255, 18, 255,
+ 18, 18, 18, 18, 18, 18, 18, 18,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 18, 18, 18, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 255, 255, 255, 255, 0,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 20, 20, 255, 20, 255, 255, 20,
+ 20, 255, 20, 255, 255, 20, 255, 255,
+ 255, 255, 255, 255, 20, 20, 20, 20,
+ 255, 20, 20, 20, 20, 20, 20, 20,
+ 255, 20, 20, 20, 255, 20, 255, 20,
+ 255, 255, 20, 20, 255, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 255, 20, 20, 20, 255, 255,
+ 20, 20, 20, 20, 20, 255, 20, 255,
+ 20, 20, 20, 20, 20, 20, 255, 255,
+ 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 255, 255, 20, 20, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 255, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 255, 255, 255,
+ 255, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 255, 255, 255, 255,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 255, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 255, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 255, 21, 21,
+ 21, 21, 21, 21, 21, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 255, 255, 255, 255, 22, 22,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 0, 23, 255, 255, 255,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 255, 255, 255, 255, 255, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 255, 255, 255, 255, 255,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 255, 255, 255, 255, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 255, 25, 25, 25, 25, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 255, 255, 255, 255, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 255, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 255, 255, 255, 255, 255, 255,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 255, 255, 255,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 0, 0, 0, 29, 29,
+ 29, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 255, 41, 41,
+ 41, 41, 41, 41, 41, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 0, 0, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 44, 44, 44, 44, 44, 44, 44, 44,
+ 44, 44, 44, 44, 44, 255, 44, 44,
+ 44, 255, 44, 44, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 255, 255,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 255, 255, 255, 255, 255, 255,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 255, 255, 255, 255, 255, 255,
+ 31, 31, 0, 0, 31, 0, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 255,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 255, 255, 255, 255, 255, 255,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 255, 255, 255,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 255, 255, 255, 255,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 255, 255, 255, 255,
+ 45, 255, 255, 255, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 255, 255,
+ 46, 46, 46, 46, 46, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 255, 255, 255, 255, 255, 255,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 255, 255, 255, 255, 255, 255,
+ 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 255, 255, 255, 255, 55, 55,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 255, 255, 53, 53,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 255, 255, 255, 255,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 255, 255, 255,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 255, 255, 255, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 255, 255, 255, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 255, 255, 255, 67, 67, 67,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 2,
+ 2, 2, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 40, 40,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 255, 2, 255, 2, 255, 2, 255, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 255, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 255, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 255, 255, 2, 2,
+ 2, 2, 2, 2, 255, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 255, 255, 2, 2, 2, 255, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40, 40, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 255, 255,
+ 255, 255, 0, 0, 0, 0, 0, 0,
+ 0, 1, 255, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 1, 1, 1, 1, 1, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 1, 1, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,
+ 255, 255, 255, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 255, 255,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 0, 0, 0, 0, 255, 0, 0,
+ 0, 0, 255, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 0, 255, 0,
+ 0, 0, 0, 255, 255, 255, 0, 255,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 255, 0, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 52, 52, 52, 52,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 255, 255,
+ 0, 0, 0, 0, 0, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 255,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 255,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 255, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 255, 255,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 54, 54, 54, 54, 54, 54, 54,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 57,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 25, 25, 25, 25, 25, 25, 25, 255,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 255, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 35, 0, 35,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 40, 40, 40, 40, 40, 40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 35, 35, 35, 0, 0, 0, 0,
+ 255, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 255,
+ 255, 40, 40, 0, 0, 32, 32, 32,
+ 0, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 0, 0, 33, 33, 33,
+ 255, 255, 255, 255, 255, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 255, 255,
+ 255, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 255,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 255, 255, 255,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 36, 36, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 255, 255, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 255, 255, 255, 255,
+ 255, 255, 255, 255, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 1, 1, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 1, 1, 1, 1, 1,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 72,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 255, 255,
+ 76, 76, 76, 76, 76, 76, 76, 76,
+ 76, 76, 255, 255, 76, 76, 76, 76,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 1, 1, 1, 1, 1, 1, 1, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 4, 4, 4, 4, 4,
+ 255, 255, 255, 255, 255, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 255,
+ 5, 5, 5, 5, 5, 255, 5, 255,
+ 5, 5, 255, 5, 5, 255, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 0, 0,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 255, 255, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 0, 255, 255,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255,
+ 40, 40, 40, 40, 40, 40, 40, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 6, 6, 6, 6, 6, 255, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 255, 255, 0,
+ 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 0, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 0, 0,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 255,
+ 255, 255, 24, 24, 24, 24, 24, 24,
+ 255, 255, 24, 24, 24, 24, 24, 24,
+ 255, 255, 24, 24, 24, 24, 24, 24,
+ 255, 255, 24, 24, 24, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 0, 0, 0, 0, 0, 255, 255,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 255, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 255,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 255, 47, 47, 255, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 255, 255,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 255, 255, 255, 255, 255,
+ 0, 0, 0, 255, 255, 255, 255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 40, 255, 255,
+ 73, 73, 73, 73, 73, 73, 73, 73,
+ 73, 73, 73, 73, 73, 73, 73, 73,
+ 73, 73, 73, 73, 73, 73, 73, 73,
+ 73, 73, 73, 73, 73, 255, 255, 255,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 74, 74, 74, 74, 74, 74, 74,
+ 74, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 37, 37, 37, 255,
+ 37, 37, 37, 37, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 38, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 38, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 255, 48,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 255, 255, 255, 255,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 255, 255,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 51, 51, 51, 51, 51, 51, 255, 255,
+ 51, 255, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 255, 51,
+ 51, 255, 255, 255, 51, 255, 255, 51,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 255, 255, 255, 255, 255, 63,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 255, 255, 255, 255, 255, 75,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 60, 60, 60, 60, 255, 60, 60, 255,
+ 255, 255, 255, 255, 60, 60, 60, 60,
+ 60, 60, 60, 60, 255, 60, 60, 60,
+ 255, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 255, 255, 255, 255,
+ 60, 60, 60, 255, 255, 255, 255, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 62, 62, 62, 62, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 255, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40,
+ 40, 40, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 40, 40, 40, 40, 40,
+ 40, 40, 40, 0, 0, 40, 40, 40,
+ 40, 40, 40, 40, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 40, 40, 40, 40, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 0, 0,
+ 255, 255, 0, 255, 255, 0, 0, 255,
+ 255, 0, 0, 0, 0, 255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 0, 255, 0, 0, 0,
+ 0, 0, 0, 0, 255, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 0,
+ 0, 0, 0, 255, 255, 0, 0, 0,
+ 0, 0, 0, 0, 0, 255, 0, 0,
+ 0, 0, 0, 0, 0, 255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 255, 0, 0, 0, 0, 255,
+ 0, 0, 0, 0, 0, 255, 0, 255,
+ 255, 255, 0, 0, 0, 0, 0, 0,
+ 0, 255, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 0, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40,
+ 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255
+ }
+};
diff --git a/lib/unictype/scripts_byname.gperf b/lib/unictype/scripts_byname.gperf
new file mode 100644
index 0000000..c3ebfae
--- /dev/null
+++ b/lib/unictype/scripts_byname.gperf
@@ -0,0 +1,89 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Unicode scripts. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+struct named_script { const char *name; unsigned int index; };
+%struct-type
+%language=ANSI-C
+%define hash-function-name scripts_hash
+%define lookup-function-name uc_script_lookup
+%readonly-tables
+%global-table
+%define word-array-name script_names
+%%
+Common, 0
+Latin, 1
+Greek, 2
+Cyrillic, 3
+Armenian, 4
+Hebrew, 5
+Arabic, 6
+Syriac, 7
+Thaana, 8
+Devanagari, 9
+Bengali, 10
+Gurmukhi, 11
+Gujarati, 12
+Oriya, 13
+Tamil, 14
+Telugu, 15
+Kannada, 16
+Malayalam, 17
+Sinhala, 18
+Thai, 19
+Lao, 20
+Tibetan, 21
+Myanmar, 22
+Georgian, 23
+Hangul, 24
+Ethiopic, 25
+Cherokee, 26
+Canadian_Aboriginal, 27
+Ogham, 28
+Runic, 29
+Khmer, 30
+Mongolian, 31
+Hiragana, 32
+Katakana, 33
+Bopomofo, 34
+Han, 35
+Yi, 36
+Old_Italic, 37
+Gothic, 38
+Deseret, 39
+Inherited, 40
+Tagalog, 41
+Hanunoo, 42
+Buhid, 43
+Tagbanwa, 44
+Limbu, 45
+Tai_Le, 46
+Linear_B, 47
+Ugaritic, 48
+Shavian, 49
+Osmanya, 50
+Cypriot, 51
+Braille, 52
+Buginese, 53
+Coptic, 54
+New_Tai_Lue, 55
+Glagolitic, 56
+Tifinagh, 57
+Syloti_Nagri, 58
+Old_Persian, 59
+Kharoshthi, 60
+Balinese, 61
+Cuneiform, 62
+Phoenician, 63
+Phags_Pa, 64
+Nko, 65
+Sundanese, 66
+Lepcha, 67
+Ol_Chiki, 68
+Vai, 69
+Saurashtra, 70
+Kayah_Li, 71
+Rejang, 72
+Lycian, 73
+Carian, 74
+Lydian, 75
+Cham, 76
diff --git a/lib/unictype/scripts_byname.h b/lib/unictype/scripts_byname.h
new file mode 100644
index 0000000..e7a7667
--- /dev/null
+++ b/lib/unictype/scripts_byname.h
@@ -0,0 +1,281 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/scripts_byname.gperf */
+/* Computed positions: -k'1,3' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 4 "./unictype/scripts_byname.gperf"
+struct named_script { const char *name; unsigned int index; };
+
+#define TOTAL_KEYWORDS 77
+#define MIN_WORD_LENGTH 2
+#define MAX_WORD_LENGTH 19
+#define MIN_HASH_VALUE 2
+#define MAX_HASH_VALUE 92
+/* maximum key range = 91, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+scripts_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 53, 14, 3, 29, 27,
+ 93, 25, 0, 25, 93, 24, 7, 36, 28, 8,
+ 49, 93, 54, 7, 11, 64, 32, 93, 93, 0,
+ 93, 93, 93, 93, 93, 57, 93, 3, 52, 59,
+ 29, 39, 52, 22, 42, 39, 24, 93, 6, 20,
+ 0, 33, 17, 93, 0, 32, 22, 2, 28, 26,
+ 93, 31, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93
+ };
+ register int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[2]];
+ /*FALLTHROUGH*/
+ case 2:
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval;
+}
+
+static const struct named_script script_names[] =
+ {
+ {""}, {""},
+#line 49 "./unictype/scripts_byname.gperf"
+ {"Yi", 36},
+#line 48 "./unictype/scripts_byname.gperf"
+ {"Han", 35},
+ {""}, {""},
+#line 37 "./unictype/scripts_byname.gperf"
+ {"Hangul", 24},
+#line 55 "./unictype/scripts_byname.gperf"
+ {"Hanunoo", 42},
+#line 45 "./unictype/scripts_byname.gperf"
+ {"Hiragana", 32},
+#line 87 "./unictype/scripts_byname.gperf"
+ {"Carian", 74},
+#line 89 "./unictype/scripts_byname.gperf"
+ {"Cham", 76},
+#line 16 "./unictype/scripts_byname.gperf"
+ {"Cyrillic", 3},
+#line 75 "./unictype/scripts_byname.gperf"
+ {"Cuneiform", 62},
+#line 20 "./unictype/scripts_byname.gperf"
+ {"Syriac", 7},
+#line 31 "./unictype/scripts_byname.gperf"
+ {"Sinhala", 18},
+#line 60 "./unictype/scripts_byname.gperf"
+ {"Linear_B", 47},
+#line 79 "./unictype/scripts_byname.gperf"
+ {"Sundanese", 66},
+#line 62 "./unictype/scripts_byname.gperf"
+ {"Shavian", 49},
+#line 32 "./unictype/scripts_byname.gperf"
+ {"Thai", 19},
+#line 83 "./unictype/scripts_byname.gperf"
+ {"Saurashtra", 70},
+#line 21 "./unictype/scripts_byname.gperf"
+ {"Thaana", 8},
+#line 23 "./unictype/scripts_byname.gperf"
+ {"Bengali", 10},
+#line 40 "./unictype/scripts_byname.gperf"
+ {"Canadian_Aboriginal", 27},
+#line 28 "./unictype/scripts_byname.gperf"
+ {"Telugu", 15},
+#line 65 "./unictype/scripts_byname.gperf"
+ {"Braille", 52},
+#line 71 "./unictype/scripts_byname.gperf"
+ {"Syloti_Nagri", 58},
+#line 67 "./unictype/scripts_byname.gperf"
+ {"Coptic", 54},
+#line 64 "./unictype/scripts_byname.gperf"
+ {"Cypriot", 51},
+#line 74 "./unictype/scripts_byname.gperf"
+ {"Balinese", 61},
+#line 13 "./unictype/scripts_byname.gperf"
+ {"Common", 0},
+#line 80 "./unictype/scripts_byname.gperf"
+ {"Lepcha", 67},
+#line 29 "./unictype/scripts_byname.gperf"
+ {"Kannada", 16},
+#line 58 "./unictype/scripts_byname.gperf"
+ {"Limbu", 45},
+#line 24 "./unictype/scripts_byname.gperf"
+ {"Gurmukhi", 11},
+#line 14 "./unictype/scripts_byname.gperf"
+ {"Latin", 1},
+#line 63 "./unictype/scripts_byname.gperf"
+ {"Osmanya", 50},
+#line 27 "./unictype/scripts_byname.gperf"
+ {"Tamil", 14},
+#line 73 "./unictype/scripts_byname.gperf"
+ {"Kharoshthi", 60},
+#line 69 "./unictype/scripts_byname.gperf"
+ {"Glagolitic", 56},
+#line 47 "./unictype/scripts_byname.gperf"
+ {"Bopomofo", 34},
+#line 54 "./unictype/scripts_byname.gperf"
+ {"Tagalog", 41},
+#line 57 "./unictype/scripts_byname.gperf"
+ {"Tagbanwa", 44},
+#line 88 "./unictype/scripts_byname.gperf"
+ {"Lydian", 75},
+#line 33 "./unictype/scripts_byname.gperf"
+ {"Lao", 20},
+#line 66 "./unictype/scripts_byname.gperf"
+ {"Buginese", 53},
+#line 44 "./unictype/scripts_byname.gperf"
+ {"Mongolian", 31},
+#line 35 "./unictype/scripts_byname.gperf"
+ {"Myanmar", 22},
+#line 50 "./unictype/scripts_byname.gperf"
+ {"Old_Italic", 37},
+#line 72 "./unictype/scripts_byname.gperf"
+ {"Old_Persian", 59},
+#line 43 "./unictype/scripts_byname.gperf"
+ {"Khmer", 30},
+#line 39 "./unictype/scripts_byname.gperf"
+ {"Cherokee", 26},
+#line 30 "./unictype/scripts_byname.gperf"
+ {"Malayalam", 17},
+#line 26 "./unictype/scripts_byname.gperf"
+ {"Oriya", 13},
+#line 51 "./unictype/scripts_byname.gperf"
+ {"Gothic", 38},
+#line 46 "./unictype/scripts_byname.gperf"
+ {"Katakana", 33},
+#line 41 "./unictype/scripts_byname.gperf"
+ {"Ogham", 28},
+#line 59 "./unictype/scripts_byname.gperf"
+ {"Tai_Le", 46},
+#line 25 "./unictype/scripts_byname.gperf"
+ {"Gujarati", 12},
+#line 18 "./unictype/scripts_byname.gperf"
+ {"Hebrew", 5},
+#line 42 "./unictype/scripts_byname.gperf"
+ {"Runic", 29},
+#line 77 "./unictype/scripts_byname.gperf"
+ {"Phags_Pa", 64},
+#line 56 "./unictype/scripts_byname.gperf"
+ {"Buhid", 43},
+#line 19 "./unictype/scripts_byname.gperf"
+ {"Arabic", 6},
+#line 84 "./unictype/scripts_byname.gperf"
+ {"Kayah_Li", 71},
+#line 78 "./unictype/scripts_byname.gperf"
+ {"Nko", 65},
+#line 68 "./unictype/scripts_byname.gperf"
+ {"New_Tai_Lue", 55},
+#line 36 "./unictype/scripts_byname.gperf"
+ {"Georgian", 23},
+#line 22 "./unictype/scripts_byname.gperf"
+ {"Devanagari", 9},
+#line 52 "./unictype/scripts_byname.gperf"
+ {"Deseret", 39},
+#line 15 "./unictype/scripts_byname.gperf"
+ {"Greek", 2},
+#line 34 "./unictype/scripts_byname.gperf"
+ {"Tibetan", 21},
+#line 70 "./unictype/scripts_byname.gperf"
+ {"Tifinagh", 57},
+#line 86 "./unictype/scripts_byname.gperf"
+ {"Lycian", 73},
+#line 81 "./unictype/scripts_byname.gperf"
+ {"Ol_Chiki", 68},
+#line 82 "./unictype/scripts_byname.gperf"
+ {"Vai", 69},
+#line 61 "./unictype/scripts_byname.gperf"
+ {"Ugaritic", 48},
+#line 53 "./unictype/scripts_byname.gperf"
+ {"Inherited", 40},
+#line 38 "./unictype/scripts_byname.gperf"
+ {"Ethiopic", 25},
+ {""}, {""}, {""},
+#line 17 "./unictype/scripts_byname.gperf"
+ {"Armenian", 4},
+ {""}, {""},
+#line 85 "./unictype/scripts_byname.gperf"
+ {"Rejang", 72},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 76 "./unictype/scripts_byname.gperf"
+ {"Phoenician", 63}
+ };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_script *
+uc_script_lookup (register const char *str, register unsigned int len)
+{
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = scripts_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register const char *s = script_names[key].name;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &script_names[key];
+ }
+ }
+ return 0;
+}
diff --git a/lib/unictype/sy_c_ident.c b/lib/unictype/sy_c_ident.c
new file mode 100644
index 0000000..c6033c8
--- /dev/null
+++ b/lib/unictype/sy_c_ident.c
@@ -0,0 +1,31 @@
+/* Syntax properties of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "sy_c_ident.h"
+#define TABLE u_c_ident
+#include "identsyntaxmap.h"
+
+int
+uc_c_ident_category (ucs4_t uc)
+{
+ return identsyntax_lookup (uc);
+}
diff --git a/lib/unictype/sy_c_ident.h b/lib/unictype/sy_c_ident.h
new file mode 100644
index 0000000..74d96ed
--- /dev/null
+++ b/lib/unictype/sy_c_ident.h
@@ -0,0 +1,140 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Language syntax properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define identsyntax_header_0 12
+#define identsyntax_header_1 14
+#define identsyntax_header_2 7
+#define identsyntax_header_3 31
+#define identsyntax_header_4 127
+static const
+struct
+ {
+ int level1[14];
+ short level2[9 << 5];
+ unsigned short level3[39 * 16];
+ }
+u_c_ident =
+{
+ {
+ 0, 32, 64, 96, 128, 160, 160, 160,
+ 160, 192, 224, 160, 160, 256
+ },
+ {
+ 0, 128, 256, 384, 512, 640, 768, 896,
+ 1024, 1152, 1280, 1408, 1536, 1664, -1, -1,
+ -1, -1, 1792, 1920, 2048, 2176, 2304, 2432,
+ 2560, 2688, 2816, -1, 2944, 3072, 3200, 3328,
+ -1, 3456, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, 3584, 3712, 3840,
+ 3968, -1, 4096, 4224, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4352, 4480, 4608, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 4736,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 4864,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x5555, 0xaaa5,
+ 0x0002, 0x0000, 0x0000, 0x2a80, 0x0002, 0x0000, 0x0000, 0xaa80,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaa8a, 0x22aa, 0xaa8a,
+ 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x000a,
+ 0x0000, 0x0000, 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa8, 0x0000, 0x0228,
+ 0xaaa0, 0xaaaa, 0xaaa0, 0xaaaa, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaa8a,
+ 0x8aaa, 0x0880, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x8000, 0x8000, 0x888a, 0x0008, 0x0000, 0xaa00, 0xaaaa,
+ 0x0002, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0002, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xaaa0, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x2800, 0xa828, 0x0000, 0x0000, 0x0000, 0x0a00, 0xa000, 0xaaa0,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0x0000,
+ 0x0000, 0x0000, 0x8000, 0xaaa2, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x2020,
+ 0xaa82, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaa80, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0x0000, 0x0000, 0xaa80,
+ 0x0000, 0x0000, 0xaa80, 0xaaaa, 0x0000, 0xaaa0, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x800a,
+ 0x0000, 0x8000, 0x0000, 0xa800, 0x02aa, 0xa008, 0x0000, 0xaaa0,
+ 0x0202, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02a0,
+ 0x0000, 0xa000, 0xaa80, 0x0000, 0x0a00, 0x0000, 0xaaaa, 0xaaaa,
+ 0x0202, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0a88, 0x0aa0,
+ 0x2800, 0xa028, 0xaaaa, 0x20aa, 0x0a00, 0x0000, 0xaaa0, 0xaaaa,
+ 0x028a, 0x2a80, 0x0028, 0x0000, 0x0000, 0x0008, 0x8208, 0x0aa0,
+ 0x2a80, 0xa028, 0xaaaa, 0x8802, 0x0aaa, 0x0000, 0xa8aa, 0xaaaa,
+ 0x0202, 0x2200, 0x0020, 0x0000, 0x0000, 0x0008, 0x0208, 0x02a0,
+ 0x2000, 0xa020, 0xaaa8, 0xaaaa, 0x0aa8, 0x0000, 0xaaaa, 0xaaaa,
+ 0x0202, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0a08, 0x02a0,
+ 0x2a00, 0xa028, 0xaaaa, 0x20aa, 0x0aa0, 0x0000, 0xaaaa, 0xaaaa,
+ 0x020a, 0x0a80, 0xa008, 0x0882, 0xa82a, 0x0a80, 0x2000, 0x0aa0,
+ 0x0a80, 0xa008, 0xaaaa, 0xaaaa, 0x2aaa, 0x0000, 0xaaaa, 0xaaaa,
+ 0x0202, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x0aa0,
+ 0x0800, 0xa008, 0xaaaa, 0xaaaa, 0x0aa0, 0x0000, 0xaaaa, 0xaaaa,
+ 0x020a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x0aa0,
+ 0x0800, 0xa008, 0xaaaa, 0x8aaa, 0x0aa0, 0x0000, 0xaaaa, 0xaaaa,
+ 0x020a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0000, 0x0aa0,
+ 0x0a00, 0xa008, 0xaaaa, 0xaaaa, 0x0aa0, 0x0000, 0xaaaa, 0xaaaa,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80,
+ 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x2882, 0xa288, 0x00aa, 0x0002, 0x2202, 0x820a, 0x0000, 0xa020,
+ 0x8800, 0xa000, 0x0000, 0xa0a0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaa8, 0xaaaa, 0xaaaa, 0xaaa0, 0x0000, 0x0000, 0x2200, 0x0aa2,
+ 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0xaaa0, 0x0002, 0x0000,
+ 0x0800, 0xaa00, 0x2000, 0x0002, 0x0000, 0xa000, 0x0002, 0xaaa2,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0xaa00, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0,
+ 0x0000, 0x0000, 0xa000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xa000, 0xa000, 0x0000, 0x2222, 0x0000, 0x0000, 0x0000, 0xa000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x8800,
+ 0x080a, 0xa800, 0x0a00, 0xaa00, 0x0000, 0xa800, 0x080a, 0xa800,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x2aaa,
+ 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x2aaa,
+ 0x2a8a, 0x000a, 0xa200, 0xa000, 0x88aa, 0x0008, 0x0020, 0xaaa8,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x02aa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0xaaa0, 0xaaaa, 0xaaaa,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xaa00, 0xa82a, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xa82a,
+ 0x02aa, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa
+ }
+};
diff --git a/lib/unictype/sy_c_whitespace.c b/lib/unictype/sy_c_whitespace.c
new file mode 100644
index 0000000..6d996a6
--- /dev/null
+++ b/lib/unictype/sy_c_whitespace.c
@@ -0,0 +1,27 @@
+/* Syntax properties of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_c_whitespace (ucs4_t uc)
+{
+ return (uc == ' ' || (uc <= 0x000D && uc >= 0x0009));
+}
diff --git a/lib/unictype/sy_java_ident.c b/lib/unictype/sy_java_ident.c
new file mode 100644
index 0000000..b0770d6
--- /dev/null
+++ b/lib/unictype/sy_java_ident.c
@@ -0,0 +1,31 @@
+/* Syntax properties of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+#include "sy_java_ident.h"
+#define TABLE u_java_ident
+#include "identsyntaxmap.h"
+
+int
+uc_java_ident_category (ucs4_t uc)
+{
+ return identsyntax_lookup (uc);
+}
diff --git a/lib/unictype/sy_java_ident.h b/lib/unictype/sy_java_ident.h
new file mode 100644
index 0000000..bad2b03
--- /dev/null
+++ b/lib/unictype/sy_java_ident.h
@@ -0,0 +1,343 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Language syntax properties of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+#define identsyntax_header_0 12
+#define identsyntax_header_1 225
+#define identsyntax_header_2 7
+#define identsyntax_header_3 31
+#define identsyntax_header_4 127
+static const
+struct
+ {
+ int level1[225];
+ short level2[16 << 5];
+ unsigned short level3[113 * 16];
+ }
+u_java_ident =
+{
+ {
+ 0, 32, 64, 96, 128, 160, 160, 160,
+ 160, 192, 224, 160, 160, 256, -1, 288,
+ 320, -1, 352, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 384, -1, -1,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 416, -1, -1, -1, -1, 448,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 480
+ },
+ {
+ 0, 128, 256, 256, 256, 384, 512, 640,
+ 256, 768, 896, 1024, 1152, 1280, 1408, 1536,
+ -1, -1, 1664, 1792, 1920, 2048, 2176, 2304,
+ 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328,
+ 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352,
+ 4480, 256, 256, 256, 4608, 4736, 4864, 4992,
+ 5120, 5248, 5376, 5504, 5632, -1, 5760, 5888,
+ 6016, -1, 256, 6144, 256, 256, 6272, 6400,
+ 6528, 6656, 6784, 6912, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 7040, 7168, 7296, 7424, 7552, -1, -1, -1,
+ 7680, 7808, 7936, 8064, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 8192, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 8320,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 8448, 256, 256, 8576, 8704, 8832, 8960,
+ 9088, 9216, 9344, -1, 9472, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 9600,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 256, 256, 9728, 9856, 9984, 10112,
+ 256, 256, 10240, 10368, 10496, 10624, 10752, 10880,
+ 11008, 11136, 11264, 11392, -1, 11520, 11648, 11776,
+ 256, 11904, -1, -1, -1, -1, -1, -1,
+ 12032, -1, 12160, -1, 12288, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 12416, -1,
+ 12544, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12672, 12800, 12928, -1, -1, -1,
+ 13056, 13184, 13312, 256, 256, 13440, 13568, 13696,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 13824, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 13952, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 14080, -1, 14208, 14336, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 0xffff, 0xfaab, 0xffff, 0xaaff, 0xa8aa, 0xaaaa, 0x5555, 0xaaa5,
+ 0x0002, 0x0000, 0x0000, 0x2a80, 0x0002, 0x0000, 0x0000, 0xea80,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xa00a, 0xae8a, 0xa2aa, 0xaa8a,
+ 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0aa0, 0x0000, 0xaaa0, 0xaaaa, 0xa800, 0x88aa, 0xaaaa, 0xaaaa,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x0800, 0xa00a,
+ 0x8aaa, 0x0880, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x0000,
+ 0x5560, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0x0002, 0x0000,
+ 0x0000, 0x0000, 0x8000, 0xaaa2, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xaaaa, 0x5556, 0x5555, 0x5555, 0x5555, 0x5555, 0x6555,
+ 0x6596, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaa80, 0xaaaa,
+ 0xaaff, 0xaa2a, 0x5555, 0xaa95, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x5540, 0x5555, 0x9555, 0x5555, 0x0aa5, 0x0001, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x5200, 0x6d55, 0x4155, 0x0559, 0x5555, 0x2805,
+ 0xaaaa, 0xeaaa, 0x0004, 0x0000, 0x0000, 0x0000, 0x5555, 0x5555,
+ 0x5555, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x5555, 0xaaa1, 0xaaaa,
+ 0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0x5540, 0xa055, 0xaa8a,
+ 0x0056, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51a0,
+ 0x5555, 0xa555, 0xa954, 0x0000, 0x5a50, 0x5555, 0xaa82, 0x002a,
+ 0x0256, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0a88, 0x51a0,
+ 0x6955, 0x8569, 0x6aaa, 0x20aa, 0x5a50, 0x5555, 0xaa00, 0xaaaa,
+ 0x0256, 0x2a80, 0x0028, 0x0000, 0x0000, 0x0008, 0x8208, 0x59a0,
+ 0x6a95, 0xa569, 0xaaa6, 0x8802, 0x5aaa, 0x5555, 0xa405, 0xaaaa,
+ 0x0256, 0x2000, 0x0020, 0x0000, 0x0000, 0x0008, 0x0208, 0x51a0,
+ 0x6555, 0xa565, 0xaaa8, 0xaaaa, 0x5a50, 0x5555, 0xaaa2, 0xaaaa,
+ 0x0256, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0208, 0x51a0,
+ 0x6955, 0xa569, 0x5aaa, 0x20aa, 0x5a50, 0x5555, 0xaaa2, 0xaaaa,
+ 0x021a, 0x0a80, 0xa008, 0x0882, 0xa82a, 0x0a80, 0x0000, 0x5aa0,
+ 0x5a95, 0xa559, 0x6aa8, 0xaaaa, 0x5aaa, 0x5555, 0xaaaa, 0xaaa2,
+ 0x0256, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x52a0,
+ 0x5955, 0xa559, 0x96aa, 0xaaa0, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
+ 0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x51a0,
+ 0x5955, 0xa559, 0x96aa, 0x8aaa, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
+ 0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0000, 0x52a0,
+ 0x5955, 0xa559, 0x6aaa, 0xaaaa, 0x5a50, 0x5555, 0xaaaa, 0x000a,
+ 0x025a, 0x0000, 0x8000, 0x000a, 0x0000, 0x0000, 0x0020, 0xa200,
+ 0x8000, 0x6a9a, 0x9955, 0x5555, 0xaaaa, 0xaaaa, 0xaa5a, 0xaaaa,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5504, 0x2a95,
+ 0x4000, 0x9555, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x2882, 0xa288, 0x00aa, 0x0002, 0x2202, 0x020a, 0x5504, 0xa165,
+ 0x8800, 0xa555, 0x5555, 0xa0a5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaa8, 0xaaaa, 0xaaaa, 0xaaa5, 0x5555, 0xaaa5, 0x66aa, 0x5aa6,
+ 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0xa800, 0x5556, 0x5555,
+ 0x5955, 0xaa00, 0x5555, 0x5556, 0x5555, 0x5555, 0x5555, 0xa955,
+ 0x9aaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5540, 0x5555, 0x1555,
+ 0x5555, 0xaaa5, 0x5000, 0x5005, 0x4151, 0x0555, 0x0154, 0x0000,
+ 0x5550, 0x4555, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa880,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x2aa0, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xa008, 0x8000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000, 0xa008, 0x8000,
+ 0xa008, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x6a80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2800, 0x8000, 0xaaaa,
+ 0x0002, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a80, 0xaaa8, 0xaaaa,
+ 0x0000, 0x0800, 0xa950, 0xaaaa, 0x0000, 0x0000, 0xa950, 0xaaaa,
+ 0x0000, 0x0000, 0xaa50, 0xaaaa, 0x0000, 0x0800, 0xaa58, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5f00, 0x5555,
+ 0x5555, 0x5555, 0x2a55, 0xa42a, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xa56a, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa84, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0xa800, 0x5555, 0xaa55, 0x5555, 0xaa55,
+ 0x5aaa, 0x5555, 0x0000, 0x0000, 0x0000, 0xa000, 0xa800, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0, 0x5555, 0x5555,
+ 0x0001, 0xaaa5, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x4000, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0155, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
+ 0x0155, 0xaa00, 0x5555, 0xaaa5, 0xaaaa, 0x556a, 0xaa55, 0xaaaa,
+ 0x0015, 0x0000, 0x0000, 0x0000, 0x5554, 0x0a95, 0x5555, 0xaaa5,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555, 0x5555, 0xaaaa,
+ 0x5555, 0x02a5, 0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0xa000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x9555, 0xaaaa, 0xaaaa, 0x5aaa,
+ 0x0000, 0x0000, 0xa000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xa000, 0xa000, 0x0000, 0x2222, 0x0000, 0x0000, 0x0000, 0xa000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x8800,
+ 0x080a, 0xa800, 0x0a00, 0xaa00, 0x0000, 0xa800, 0x080a, 0xa800,
+ 0xaaaa, 0xffea, 0xaaaa, 0xaaaa, 0xaaaa, 0xbffa, 0xaaaa, 0x2aaa,
+ 0xaaa8, 0xaaaa, 0xa8aa, 0xaaaa, 0xabff, 0xfffa, 0xaaa2, 0x2aaa,
+ 0xaaaa, 0xaaaa, 0xa800, 0xaaaa, 0x0000, 0x0000, 0xa000, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0x5555, 0xa955, 0x56a6, 0x5555, 0xaaa9, 0xaaaa,
+ 0x2a8a, 0x000a, 0xa200, 0xa002, 0x88aa, 0x2008, 0x0000, 0x00a0,
+ 0x02aa, 0x8aa0, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0002, 0xa000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x2aaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x8000, 0xaaaa, 0x8000, 0x8000, 0x8000, 0x8000,
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x2aaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x02aa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0x5550, 0xa002, 0xa800,
+ 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x8000, 0x0296, 0x0002, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080,
+ 0x02aa, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0002, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0xa800, 0x0000, 0x0000, 0x5555, 0xaa05, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x4000, 0xaaaa, 0x25aa,
+ 0x0000, 0x0000, 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0x2aaa, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xa828, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x002a,
+ 0x1010, 0x0040, 0x0000, 0x0000, 0x5540, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa,
+ 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
+ 0xa955, 0xaaaa, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x5555, 0x0005, 0x0000, 0x0000, 0x5000, 0xa555, 0x0000, 0x0000,
+ 0x4000, 0x5555, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5554, 0x9555, 0xaaaa,
+ 0x0040, 0xa500, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0xaaa0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x8000, 0xaaaa, 0x002a, 0x12aa, 0x0000, 0x0008, 0x8000, 0x8800,
+ 0x0820, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0x002a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000,
+ 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0xa800,
+ 0x5555, 0x5555, 0xaaaa, 0xaaaa, 0x9555, 0xaaaa, 0xa82a, 0xaaaa,
+ 0xaaaa, 0x02aa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaa2, 0x0800, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe800,
+ 0xa8aa, 0xaaaa, 0x5555, 0xaaa5, 0x0002, 0x0000, 0x0000, 0x2a80,
+ 0x0002, 0x0000, 0x0000, 0xaa80, 0x0aaa, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
+ 0x000a, 0x000a, 0x000a, 0xa80a, 0x82a0, 0xaaaa, 0xaaaa, 0xaafe,
+ 0x0000, 0x0200, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x2080,
+ 0x0000, 0xa000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xa6aa,
+ 0x0000, 0x0000, 0x0000, 0xa800, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000,
+ 0x0000, 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0xaa00, 0x0000, 0xa002, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0xa000, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xa000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x28a8,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaa0,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x9654, 0x55aa, 0x0200, 0x0002, 0x0000, 0x0000, 0xaa00, 0x6a95,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x56aa, 0x56a5, 0xffd5, 0x557f,
+ 0x5695, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xa55a, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xa95a, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0800, 0x828a, 0x0802, 0x0000, 0x0220,
+ 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x2000, 0x0280, 0x0800, 0x0800, 0x0000, 0x0000, 0x0000, 0x8020,
+ 0x8800, 0x000a, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000, 0x0000,
+ 0x0008, 0x0000, 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0080,
+ 0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0800, 0x0000,
+ 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000,
+ 0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0008, 0x0000, 0x0000,
+ 0x0080, 0x5a00, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+ 0xaaae, 0xaaaa, 0xaaaa, 0xaaaa, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
+ 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0xaaaa, 0xaaaa
+ }
+};
diff --git a/lib/unictype/sy_java_whitespace.c b/lib/unictype/sy_java_whitespace.c
new file mode 100644
index 0000000..4b56f3e
--- /dev/null
+++ b/lib/unictype/sy_java_whitespace.c
@@ -0,0 +1,27 @@
+/* Syntax properties of Unicode characters.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unictype.h"
+
+bool
+uc_is_java_whitespace (ucs4_t uc)
+{
+ return (uc == ' ' || (uc <= 0x000D && uc >= 0x0009 && uc != 0x000B));
+}
diff --git a/lib/unilbrk.h b/lib/unilbrk.h
new file mode 100644
index 0000000..1f5e262
--- /dev/null
+++ b/lib/unilbrk.h
@@ -0,0 +1,110 @@
+/* Line breaking of Unicode strings.
+ Copyright (C) 2001-2003, 2005-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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/>. */
+
+#ifndef _UNILBRK_H
+#define _UNILBRK_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+/* Get locale_charset() declaration. */
+#include <unistring/localcharset.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* These functions are locale dependent. The encoding argument identifies
+ the encoding (e.g. "ISO-8859-2" for Polish). */
+
+
+/* Line breaking. */
+
+enum
+{
+ UC_BREAK_UNDEFINED,
+ UC_BREAK_PROHIBITED,
+ UC_BREAK_POSSIBLE,
+ UC_BREAK_MANDATORY,
+ UC_BREAK_HYPHENATION
+};
+
+/* Determine the line break points in S, and store the result at p[0..n-1].
+ p[i] = UC_BREAK_MANDATORY means that s[i] is a line break character.
+ p[i] = UC_BREAK_POSSIBLE means that a line break may be inserted between
+ s[i-1] and s[i].
+ p[i] = UC_BREAK_HYPHENATION means that a hyphen and a line break may be
+ inserted between s[i-1] and s[i]. But beware of language dependent
+ hyphenation rules.
+ p[i] = UC_BREAK_PROHIBITED means that s[i-1] and s[i] must not be separated.
+ */
+extern void
+ u8_possible_linebreaks (const uint8_t *s, size_t n,
+ const char *encoding, char *p);
+extern void
+ u16_possible_linebreaks (const uint16_t *s, size_t n,
+ const char *encoding, char *p);
+extern void
+ u32_possible_linebreaks (const uint32_t *s, size_t n,
+ const char *encoding, char *p);
+extern void
+ ulc_possible_linebreaks (const char *s, size_t n,
+ const char *encoding, char *p);
+
+/* Choose the best line breaks, assuming the uc_width function.
+ The string is s[0..n-1]. The maximum number of columns per line is given
+ as WIDTH. The starting column of the string is given as START_COLUMN.
+ If the algorithm shall keep room after the last piece, they can be given
+ as AT_END_COLUMNS.
+ o is an optional override; if o[i] != UC_BREAK_UNDEFINED, o[i] takes
+ precedence over p[i] as returned by the *_possible_linebreaks function.
+ The given ENCODING is used for disambiguating widths in uc_width.
+ Return the column after the end of the string, and store the result at
+ p[0..n-1].
+ */
+extern int
+ u8_width_linebreaks (const uint8_t *s, size_t n, int width,
+ int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ u16_width_linebreaks (const uint16_t *s, size_t n, int width,
+ int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ u32_width_linebreaks (const uint32_t *s, size_t n, int width,
+ int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ ulc_width_linebreaks (const char *s, size_t n, int width,
+ int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNILBRK_H */
diff --git a/lib/unilbrk/lbrkprop1.h b/lib/unilbrk/lbrkprop1.h
new file mode 100644
index 0000000..66fd584
--- /dev/null
+++ b/lib/unilbrk/lbrkprop1.h
@@ -0,0 +1,33 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Line breaking properties of Unicode characters. */
+/* Generated automatically by gen-lbrk for Unicode 5.1.0. */
+
+/* Copyright (C) 2000-2002, 2004, 2008 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/>. */
+
+#define lbrkprop_header_0 16
+#define lbrkprop_header_1 15
+#define lbrkprop_header_2 7
+#define lbrkprop_header_3 511
+#define lbrkprop_header_4 127
+
+typedef struct
+ {
+ int level1[15];
+ int level2[4 << 9];
+ unsigned char level3[142 << 7];
+ }
+lbrkprop_t;
+extern const lbrkprop_t unilbrkprop;
diff --git a/lib/unilbrk/lbrkprop2.h b/lib/unilbrk/lbrkprop2.h
new file mode 100644
index 0000000..a71b4d9
--- /dev/null
+++ b/lib/unilbrk/lbrkprop2.h
@@ -0,0 +1,2558 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Line breaking properties of Unicode characters. */
+/* Generated automatically by gen-lbrk for Unicode 5.1.0. */
+
+/* Copyright (C) 2000-2002, 2004, 2008 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/>. */
+
+const lbrkprop_t unilbrkprop =
+{
+ {
+ 0, 512, 1024, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1536
+ },
+ {
+ 0, 128, 256, 256, 256, 384, 512, 640,
+ 256, 768, 896, 1024, 1152, 1280, 1408, 1536,
+ -1, -1, 1664, 1792, 1920, 2048, 2176, 2304,
+ 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328,
+ 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352,
+ 4480, 256, 256, 256, 4608, 4736, 4864, 4992,
+ 5120, 5248, 5376, 5504, 5632, -1, 5760, 5888,
+ 6016, -1, 256, 6144, 256, 256, 6272, 6400,
+ 6528, 6656, 6784, 6912, 7040, 7168, 7296, 7424,
+ 7552, 7680, 7808, 7936, 8064, 8192, 8320, 8448,
+ 256, 256, 256, 8576, 256, 256, 8704, -1,
+ 8832, 8960, 9088, 9216, 9344, 9472, 9600, 9728,
+ 9856, 9984, 10112, 10240, 10368, 10496, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 10624, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 10752,
+ 10880, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 11008, 256, 256, 11136, 11264, 256, 11392,
+ 11520, 11648, 11776, -1, 11904, -1, -1, -1,
+ 12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
+ 12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
+ 12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
+ 12416, 12544, 12672, 12800, 12032, 12160, 12288, 12416,
+ 12544, 12672, 12800, 12032, 12160, 12288, 12416, 12544,
+ 12672, 12800, 12032, 12160, 12288, 12416, 12544, 12672,
+ 12800, 12032, 12160, 12288, 12416, 12544, 12672, 12800,
+ 12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
+ 12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
+ 12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
+ 12416, 12544, 12672, 12800, 12032, 12160, 12288, 12928,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 9600, 9600, 13056, 13184, 13312, 13440,
+ 256, 256, 13568, 13696, 13824, 13952, 14080, 14208,
+ 14336, 14464, 14592, 14720, -1, 14848, 14976, 15104,
+ 256, 15232, -1, -1, -1, -1, -1, -1,
+ 15360, -1, 15488, -1, 15616, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 15744, -1,
+ 15872, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 16000, 16128, 16256, 16384, -1, 16512, -1,
+ 16640, 16768, 16896, 256, 256, 17024, 256, 17152,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 17280, 17408, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 9600, 9600, 9600,
+ 9600, 9600, 9600, 9600, 9600, 17536, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 9600, 9600, 9600, 9600, 17664, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 17792, -1, 17920, 18048, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_BA, LBP_BK, LBP_BK, LBP_BK, LBP_BK, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_SP, LBP_EX, LBP_QU, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU,
+ LBP_OP, LBP_CL, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_AL, LBP_EX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_PR, LBP_CL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_BA, LBP_CL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BK, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_GL, LBP_OP, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AI, LBP_QU, LBP_AL, LBP_BA, LBP_AL, LBP_AL,
+ LBP_PO, LBP_PR, LBP_AI, LBP_AI, LBP_BB, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_QU, LBP_AI, LBP_AI, LBP_AI, LBP_OP,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_BB, LBP_AI, LBP_AI, LBP_AI, LBP_BB, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_BB,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_GL, LBP_GL, LBP_GL,
+ LBP_GL, LBP_GL, LBP_GL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_IS, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_CM,
+ LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_EX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_PO, LBP_PO, LBP_PO, LBP_IS, LBP_IS, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_XX, LBP_XX, LBP_EX, LBP_EX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_PO, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_IS, LBP_EX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_PR, LBP_PR, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_PR, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_PR, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_PR,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA,
+ LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA,
+ LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_BB, LBP_BB, LBP_BB, LBP_BB, LBP_AL, LBP_BB, LBP_BB,
+ LBP_GL, LBP_BB, LBP_BB, LBP_BA, LBP_GL, LBP_EX, LBP_EX, LBP_EX,
+ LBP_EX, LBP_EX, LBP_GL, LBP_AL, LBP_EX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_CM, LBP_AL, LBP_CM,
+ LBP_AL, LBP_CM, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_BA, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_BB, LBP_BB, LBP_BA, LBP_BB, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+ LBP_JL, LBP_JL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_JL,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+ LBP_JV, LBP_JV, LBP_JV, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+ LBP_JT, LBP_JT, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_AL, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_BA, LBP_BA, LBP_NS, LBP_SA,
+ LBP_BA, LBP_AL, LBP_BA, LBP_PR, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_EX, LBP_EX, LBP_BA, LBP_BA, LBP_BB, LBP_AL,
+ LBP_EX, LBP_EX, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_EX, LBP_EX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+ LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_AL, LBP_XX,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_GL,
+ LBP_BA, LBP_BA, LBP_BA, LBP_ZW, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_BA, LBP_GL, LBP_BA, LBP_BA, LBP_B2, LBP_AI, LBP_AI, LBP_AL,
+ LBP_QU, LBP_QU, LBP_OP, LBP_QU, LBP_QU, LBP_QU, LBP_OP, LBP_QU,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_IN, LBP_IN, LBP_IN, LBP_BA,
+ LBP_BK, LBP_BK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL,
+ LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO,
+ LBP_AL, LBP_QU, LBP_QU, LBP_AI, LBP_NS, LBP_NS, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_OP, LBP_CL, LBP_NS,
+ LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_AL,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
+ LBP_WJ, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AI,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO,
+ LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR,
+ LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_PR, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AI, LBP_PR, LBP_PR, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_XX,
+ LBP_XX, LBP_AL, LBP_EX, LBP_EX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_EX, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_EX, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU,
+ LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_BA, LBP_BA,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA,
+ LBP_OP, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL,
+ LBP_QU, LBP_QU, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL,
+ LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_CL, LBP_CL, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_NS, LBP_OP, LBP_CL, LBP_CL,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, LBP_ID, LBP_ID,
+ LBP_XX, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID,
+ LBP_NS, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
+ LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_EX, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_BB, LBP_EX, LBP_EX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H2, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
+ LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_IS, LBP_CL, LBP_CL, LBP_IS, LBP_IS, LBP_EX, LBP_EX, LBP_OP,
+ LBP_CL, LBP_IN, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_OP,
+ LBP_CL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_CL, LBP_ID, LBP_CL, LBP_XX, LBP_NS, LBP_NS, LBP_EX, LBP_EX,
+ LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_WJ,
+ LBP_XX, LBP_EX, LBP_ID, LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_ID,
+ LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_CL, LBP_ID, LBP_CL, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_EX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_OP,
+ LBP_CL, LBP_CL, LBP_OP, LBP_CL, LBP_CL, LBP_NS, LBP_AL, LBP_NS,
+ LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
+ LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NS, LBP_NS,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_PO, LBP_PR, LBP_ID, LBP_ID, LBP_ID, LBP_PR, LBP_PR, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CB, LBP_AI, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_BA, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX
+ }
+};
diff --git a/lib/unilbrk/lbrktables.c b/lib/unilbrk/lbrktables.c
new file mode 100644
index 0000000..ae3ebf4
--- /dev/null
+++ b/lib/unilbrk/lbrktables.c
@@ -0,0 +1,63 @@
+/* Line breaking auxiliary tables.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk/lbrktables.h"
+
+/* Define unilbrkprop, table of line breaking properties. */
+#include "unilbrk/lbrkprop2.h"
+
+const unsigned char unilbrk_table[24][24] =
+{
+ /* after */
+ /* WJ GL B2 BA BB HY CL EX IN NS OP QU IS NU PO PR SY AL H2 H3 ID JL JV JT */
+/* WJ */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* GL */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* B2 */ { P, I, P, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* BA */ { P, D, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* BB */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* HY */ { P, D, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* CL */ { P, I, D, I, D, I, P, P, D, P, D, I, P, D, I, I, P, D, D, D, D, D, D, D, },
+/* EX */ { P, I, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* IN */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* NS */ { P, I, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* OP */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* QU */ { P, I, I, I, I, I, P, P, I, I, P, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* IS */ { P, I, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* NU */ { P, I, D, I, D, I, P, P, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, },
+/* PO */ { P, I, D, I, D, I, P, P, D, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, },
+/* PR */ { P, I, D, I, D, I, P, P, D, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, },
+/* SY */ { P, I, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* AL */ { P, I, D, I, D, I, P, P, I, I, D, I, P, I, D, D, P, I, D, D, D, D, D, D, },
+/* H2 */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
+/* H3 */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
+/* ID */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, D, },
+/* JL */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, I, I, D, I, I, D, },
+/* JV */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
+/* JT */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
+/* "" */
+/* before */
+};
+/* Note: The (IS,AL) entry has been changed from I to D. In other words, the
+ rule "Do not break between numeric punctuation and alphabetics" is not
+ implemented here. We want to break before the HTML tag in strings like
+ "<P>Some sentence.</P>" */
+/* Note: The (B2,B2) entry should probably be D instead of P. */
+/* Note: The (PR,ID) entry should probably be D instead of I. */
+/* Note: The (WJ,*) and (GL,*) entries should probably be P instead of I. */
diff --git a/lib/unilbrk/lbrktables.h b/lib/unilbrk/lbrktables.h
new file mode 100644
index 0000000..33b525b
--- /dev/null
+++ b/lib/unilbrk/lbrktables.h
@@ -0,0 +1,94 @@
+/* Line breaking auxiliary tables.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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 "unitypes.h"
+
+/* Line breaking classification. */
+
+enum
+{
+ /* Values >= 24 are resolved at run time. */
+ LBP_BK = 24, /* mandatory break */
+/*LBP_CR, carriage return - not used here because it's a DOSism */
+/*LBP_LF, line feed - not used here because it's a DOSism */
+ LBP_CM = 25, /* attached characters and combining marks */
+/*LBP_NL, next line - not used here because it's equivalent to LBP_BK */
+/*LBP_SG, surrogates - not used here because they are not characters */
+ LBP_WJ = 0, /* word joiner */
+ LBP_ZW = 26, /* zero width space */
+ LBP_GL = 1, /* non-breaking (glue) */
+ LBP_SP = 27, /* space */
+ LBP_B2 = 2, /* break opportunity before and after */
+ LBP_BA = 3, /* break opportunity after */
+ LBP_BB = 4, /* break opportunity before */
+ LBP_HY = 5, /* hyphen */
+ LBP_CB = 28, /* contingent break opportunity */
+ LBP_CL = 6, /* closing punctuation */
+ LBP_EX = 7, /* exclamation/interrogation */
+ LBP_IN = 8, /* inseparable */
+ LBP_NS = 9, /* non starter */
+ LBP_OP = 10, /* opening punctuation */
+ LBP_QU = 11, /* ambiguous quotation */
+ LBP_IS = 12, /* infix separator (numeric) */
+ LBP_NU = 13, /* numeric */
+ LBP_PO = 14, /* postfix (numeric) */
+ LBP_PR = 15, /* prefix (numeric) */
+ LBP_SY = 16, /* symbols allowing breaks */
+ LBP_AI = 29, /* ambiguous (alphabetic or ideograph) */
+ LBP_AL = 17, /* ordinary alphabetic and symbol characters */
+ LBP_H2 = 18, /* Hangul LV syllable */
+ LBP_H3 = 19, /* Hangul LVT syllable */
+ LBP_ID = 20, /* ideographic */
+ LBP_JL = 21, /* Hangul L Jamo */
+ LBP_JV = 22, /* Hangul V Jamo */
+ LBP_JT = 23, /* Hangul T Jamo */
+ LBP_SA = 30, /* complex context (South East Asian) */
+ LBP_XX = 31 /* unknown */
+};
+
+#include "lbrkprop1.h"
+
+static inline unsigned char
+unilbrkprop_lookup (ucs4_t uc)
+{
+ unsigned int index1 = uc >> lbrkprop_header_0;
+ if (index1 < lbrkprop_header_1)
+ {
+ int lookup1 = unilbrkprop.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> lbrkprop_header_2) & lbrkprop_header_3;
+ int lookup2 = unilbrkprop.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = uc & lbrkprop_header_4;
+ return unilbrkprop.level3[lookup2 + index3];
+ }
+ }
+ }
+ return LBP_XX;
+}
+
+/* Table indexed by two line breaking classifications. */
+#define D 1 /* direct break opportunity, empty in table 7.3 of UTR #14 */
+#define I 2 /* indirect break opportunity, '%' in table 7.3 of UTR #14 */
+#define P 3 /* prohibited break, '^' in table 7.3 of UTR #14 */
+
+extern const unsigned char unilbrk_table[24][24];
+
+/* We don't support line breaking of complex-context dependent characters
+ (Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */
diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c
new file mode 100644
index 0000000..f5b6992
--- /dev/null
+++ b/lib/unilbrk/u16-possible-linebreaks.c
@@ -0,0 +1,164 @@
+/* Line breaking of UTF-16 strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "unilbrk/lbrktables.h"
+#include "uniwidth/cjk.h"
+#include "unistr.h"
+
+void
+u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const uint16_t *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ /* Don't break inside multibyte characters. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = u16_mbtouc_unsafe (&uc, s, s_end - s);
+ int prop = unilbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with spaces and combining characters. */
+ q = p;
+ if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else if (prop == LBP_ZW)
+ {
+ /* Don't break just before a zero-width space. */
+ *p = UC_BREAK_PROHIBITED;
+ last_prop = LBP_ZW;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character, except immediately after a
+ zero-width space. */
+ if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *p = UC_BREAK_POSSIBLE;
+ /* A combining character turns a preceding space into LBP_ID. */
+ last_prop = LBP_ID;
+ }
+ else
+ {
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_ID. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_ID;
+ goto lookup_via_table;
+ }
+ }
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *q = UC_BREAK_POSSIBLE;
+ }
+ else
+ {
+ switch (unilbrk_table [last_prop] [prop])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s += count;
+ p += count;
+ }
+}
diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c
new file mode 100644
index 0000000..6444559
--- /dev/null
+++ b/lib/unilbrk/u16-width-linebreaks.c
@@ -0,0 +1,108 @@
+/* Line breaking of UTF-16 strings.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include "unistr.h"
+#include "uniwidth.h"
+
+int
+u16_width_linebreaks (const uint16_t *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const uint16_t *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u16_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = u16_mbtouc_unsafe (&uc, s, s_end - s);
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s += count;
+ p += count;
+ if (o != NULL)
+ o += count;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c
new file mode 100644
index 0000000..c843e12
--- /dev/null
+++ b/lib/unilbrk/u32-possible-linebreaks.c
@@ -0,0 +1,158 @@
+/* Line breaking of UTF-32 strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include <stdlib.h>
+
+#include "unilbrk/lbrktables.h"
+#include "uniwidth/cjk.h"
+
+void
+u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const uint32_t *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ while (s < s_end)
+ {
+ ucs4_t uc = *s;
+ int prop = unilbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with spaces and combining characters. */
+ q = p;
+ if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else if (prop == LBP_ZW)
+ {
+ /* Don't break just before a zero-width space. */
+ *p = UC_BREAK_PROHIBITED;
+ last_prop = LBP_ZW;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character, except immediately after a
+ zero-width space. */
+ if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *p = UC_BREAK_POSSIBLE;
+ /* A combining character turns a preceding space into LBP_ID. */
+ last_prop = LBP_ID;
+ }
+ else
+ {
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_ID. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_ID;
+ goto lookup_via_table;
+ }
+ }
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *q = UC_BREAK_POSSIBLE;
+ }
+ else
+ {
+ switch (unilbrk_table [last_prop] [prop])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s++;
+ p++;
+ }
+}
diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c
new file mode 100644
index 0000000..2d36256
--- /dev/null
+++ b/lib/unilbrk/u32-width-linebreaks.c
@@ -0,0 +1,106 @@
+/* Line breaking of UTF-32 strings.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include "uniwidth.h"
+
+int
+u32_width_linebreaks (const uint32_t *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const uint32_t *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u32_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ ucs4_t uc = *s;
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s++;
+ p++;
+ if (o != NULL)
+ o++;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c
new file mode 100644
index 0000000..94e14f4
--- /dev/null
+++ b/lib/unilbrk/u8-possible-linebreaks.c
@@ -0,0 +1,261 @@
+/* Line breaking of UTF-8 strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "unilbrk/lbrktables.h"
+#include "uniwidth/cjk.h"
+#include "unistr.h"
+
+void
+u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const uint8_t *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ /* Don't break inside multibyte characters. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
+ int prop = unilbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with spaces and combining characters. */
+ q = p;
+ if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else if (prop == LBP_ZW)
+ {
+ /* Don't break just before a zero-width space. */
+ *p = UC_BREAK_PROHIBITED;
+ last_prop = LBP_ZW;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character, except immediately after a
+ zero-width space. */
+ if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *p = UC_BREAK_POSSIBLE;
+ /* A combining character turns a preceding space into LBP_ID. */
+ last_prop = LBP_ID;
+ }
+ else
+ {
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_ID. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_ID;
+ goto lookup_via_table;
+ }
+ }
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else if (last_prop == LBP_ZW)
+ {
+ /* Break after zero-width space. */
+ *q = UC_BREAK_POSSIBLE;
+ }
+ else
+ {
+ switch (unilbrk_table [last_prop] [prop])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s += count;
+ p += count;
+ }
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ if (argc == 1)
+ {
+ /* Display all the break opportunities in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ u8_possible_linebreaks ((uint8_t *) input, length, "UTF-8", breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ /* U+2027 in UTF-8 encoding */
+ putc (0xe2, stdout); putc (0x80, stdout); putc (0xa7, stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ /* U+21B2 (or U+21B5) in UTF-8 encoding */
+ putc (0xe2, stdout); putc (0x86, stdout); putc (0xb2, stdout);
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c
new file mode 100644
index 0000000..7e7f2e9
--- /dev/null
+++ b/lib/unilbrk/u8-width-linebreaks.c
@@ -0,0 +1,204 @@
+/* Line breaking of UTF-8 strings.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include "unistr.h"
+#include "uniwidth.h"
+
+int
+u8_width_linebreaks (const uint8_t *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const uint8_t *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u8_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s += count;
+ p += count;
+ if (o != NULL)
+ o += count;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ if (argc == 2)
+ {
+ /* Insert line breaks for a given width. */
+ int width = atoi (argv[1]);
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ u8_width_linebreaks ((uint8_t *) input, length, width, 0, 0, NULL, "UTF-8", breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('\n', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unilbrk/ulc-common.c b/lib/unilbrk/ulc-common.c
new file mode 100644
index 0000000..d035ded
--- /dev/null
+++ b/lib/unilbrk/ulc-common.c
@@ -0,0 +1,51 @@
+/* Line breaking auxiliary functions.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk/ulc-common.h"
+
+#include "c-ctype.h"
+#include "c-strcaseeq.h"
+
+int
+is_utf8_encoding (const char *encoding)
+{
+ if (STRCASEEQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+ return 1;
+ return 0;
+}
+
+#if C_CTYPE_ASCII
+
+/* Tests whether a string is entirely ASCII. Returns 1 if yes.
+ Returns 0 if the string is in an 8-bit encoding or an ISO-2022 encoding. */
+int
+is_all_ascii (const char *s, size_t n)
+{
+ for (; n > 0; s++, n--)
+ {
+ unsigned char c = (unsigned char) *s;
+
+ if (!(c_isprint (c) || c_isspace (c)))
+ return 0;
+ }
+ return 1;
+}
+
+#endif /* C_CTYPE_ASCII */
diff --git a/lib/unilbrk/ulc-common.h b/lib/unilbrk/ulc-common.h
new file mode 100644
index 0000000..3b48188
--- /dev/null
+++ b/lib/unilbrk/ulc-common.h
@@ -0,0 +1,31 @@
+/* Line breaking auxiliary functions.
+ Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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/>. */
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "c-ctype.h"
+
+#define is_utf8_encoding unilbrk_is_utf8_encoding
+extern int is_utf8_encoding (const char *encoding);
+
+#if C_CTYPE_ASCII
+
+# define is_all_ascii unilbrk_is_all_ascii
+extern int is_all_ascii (const char *s, size_t n);
+
+#endif /* C_CTYPE_ASCII */
diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c
new file mode 100644
index 0000000..cb95241
--- /dev/null
+++ b/lib/unilbrk/ulc-possible-linebreaks.c
@@ -0,0 +1,212 @@
+/* Line breaking of strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-ctype.h"
+#include "uniconv.h"
+#include "unilbrk/ulc-common.h"
+
+/* Line breaking of a string in an arbitrary encoding.
+
+ We convert the input string to Unicode.
+
+ The standardized Unicode encodings are UTF-8, UCS-2, UCS-4, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-7. UCS-2 supports only characters up to
+ \U0000FFFF. UTF-16 and variants support only characters up to
+ \U0010FFFF. UTF-7 is way too complex and not supported by glibc-2.1.
+ UCS-4 specification leaves doubts about endianness and byte order mark.
+ glibc currently interprets it as big endian without byte order mark,
+ but this is not backed by an RFC. So we use UTF-8. It supports
+ characters up to \U7FFFFFFF and is unambiguously defined. */
+
+void
+ulc_possible_linebreaks (const char *s, size_t n, const char *encoding,
+ char *p)
+{
+ if (n > 0)
+ {
+ if (is_utf8_encoding (encoding))
+ u8_possible_linebreaks ((const uint8_t *) s, n, encoding, p);
+ else
+ {
+ /* Convert the string to UTF-8 and build a translation table
+ from offsets into s to offsets into the translated string. */
+ size_t *offsets = (size_t *) malloc (n * sizeof (size_t));
+
+ if (offsets != NULL)
+ {
+ uint8_t *t;
+ size_t m;
+
+ t = u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
+ if (t != NULL)
+ {
+ char *q = (char *) (m > 0 ? malloc (m) : NULL);
+
+ if (m == 0 || q != NULL)
+ {
+ size_t i;
+
+ /* Determine the possible line breaks of the UTF-8
+ string. */
+ u8_possible_linebreaks (t, m, encoding, q);
+
+ /* Translate the result back to the original string. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+ for (i = 0; i < n; i++)
+ if (offsets[i] != (size_t)(-1))
+ p[i] = q[offsets[i]];
+
+ free (q);
+ free (t);
+ free (offsets);
+ return;
+ }
+ free (t);
+ }
+ free (offsets);
+ }
+
+ /* Impossible to convert. */
+#if C_CTYPE_ASCII
+ if (is_all_ascii (s, n))
+ {
+ /* ASCII is a subset of UTF-8. */
+ u8_possible_linebreaks ((const uint8_t *) s, n, encoding, p);
+ return;
+ }
+#endif
+ /* We have a non-ASCII string and cannot convert it.
+ Don't produce line breaks except those already present in the
+ input string. All we assume here is that the encoding is
+ minimally ASCII compatible. */
+ {
+ const char *s_end = s + n;
+ while (s < s_end)
+ {
+ *p = (*s == '\n' ? UC_BREAK_MANDATORY : UC_BREAK_PROHIBITED);
+ s++;
+ p++;
+ }
+ }
+ }
+ }
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <locale.h>
+#include <string.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_CTYPE, "");
+ if (argc == 1)
+ {
+ /* Display all the break opportunities in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ ulc_possible_linebreaks (input, length, locale_charset (), breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('|', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c
new file mode 100644
index 0000000..3b091bf
--- /dev/null
+++ b/lib/unilbrk/ulc-width-linebreaks.c
@@ -0,0 +1,231 @@
+/* Line breaking of strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unilbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-ctype.h"
+#include "uniconv.h"
+#include "unilbrk/ulc-common.h"
+
+/* Line breaking of a string in an arbitrary encoding.
+
+ We convert the input string to Unicode.
+
+ The standardized Unicode encodings are UTF-8, UCS-2, UCS-4, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-7. UCS-2 supports only characters up to
+ \U0000FFFF. UTF-16 and variants support only characters up to
+ \U0010FFFF. UTF-7 is way too complex and not supported by glibc-2.1.
+ UCS-4 specification leaves doubts about endianness and byte order mark.
+ glibc currently interprets it as big endian without byte order mark,
+ but this is not backed by an RFC. So we use UTF-8. It supports
+ characters up to \U7FFFFFFF and is unambiguously defined. */
+
+int
+ulc_width_linebreaks (const char *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ if (n > 0)
+ {
+ if (is_utf8_encoding (encoding))
+ return u8_width_linebreaks ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, p);
+ else
+ {
+ /* Convert the string to UTF-8 and build a translation table
+ from offsets into s to offsets into the translated string. */
+ size_t *offsets = (size_t *) malloc (n * sizeof (size_t));
+
+ if (offsets != NULL)
+ {
+ uint8_t *t;
+ size_t m;
+
+ t = u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
+ if (t != NULL)
+ {
+ char *memory =
+ (char *) (m > 0 ? malloc (m + (o != NULL ? m : 0)) : NULL);
+
+ if (m == 0 || memory != NULL)
+ {
+ char *q = (char *) memory;
+ char *o8 = (o != NULL ? (char *) (q + m) : NULL);
+ int res_column;
+ size_t i;
+
+ /* Translate the overrides to the UTF-8 string. */
+ if (o != NULL)
+ {
+ memset (o8, UC_BREAK_UNDEFINED, m);
+ for (i = 0; i < n; i++)
+ if (offsets[i] != (size_t)(-1))
+ o8[offsets[i]] = o[i];
+ }
+
+ /* Determine the line breaks of the UTF-8 string. */
+ res_column =
+ u8_width_linebreaks (t, m, width, start_column, at_end_columns, o8, encoding, q);
+
+ /* Translate the result back to the original string. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+ for (i = 0; i < n; i++)
+ if (offsets[i] != (size_t)(-1))
+ p[i] = q[offsets[i]];
+
+ free (memory);
+ free (t);
+ free (offsets);
+ return res_column;
+ }
+ free (t);
+ }
+ free (offsets);
+ }
+ /* Impossible to convert. */
+#if C_CTYPE_ASCII
+ if (is_all_ascii (s, n))
+ {
+ /* ASCII is a subset of UTF-8. */
+ return u8_width_linebreaks ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, p);
+ }
+#endif
+ /* We have a non-ASCII string and cannot convert it.
+ Don't produce line breaks except those already present in the
+ input string. All we assume here is that the encoding is
+ minimally ASCII compatible. */
+ {
+ const char *s_end = s + n;
+ while (s < s_end)
+ {
+ *p = ((o != NULL && *o == UC_BREAK_MANDATORY) || *s == '\n'
+ ? UC_BREAK_MANDATORY
+ : UC_BREAK_PROHIBITED);
+ s++;
+ p++;
+ if (o != NULL)
+ o++;
+ }
+ /* We cannot compute widths in this case. */
+ }
+ }
+ }
+ return start_column;
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <locale.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_CTYPE, "");
+ if (argc == 2)
+ {
+ /* Insert line breaks for a given width. */
+ int width = atoi (argv[1]);
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ ulc_width_linebreaks (input, length, width, 0, 0, NULL, locale_charset (), breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('\n', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/uniname.h b/lib/uniname.h
new file mode 100644
index 0000000..7b5a367
--- /dev/null
+++ b/lib/uniname.h
@@ -0,0 +1,44 @@
+/* Association between Unicode characters and their names.
+ Copyright (C) 2000-2002, 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 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/>. */
+
+#ifndef _UNINAME_H
+#define _UNINAME_H
+
+#include "unitypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Required size of buffer for a Unicode character name. */
+#define UNINAME_MAX 256
+
+/* Looks up the name of a Unicode character, in uppercase ASCII.
+ Returns the filled buf, or NULL if the character does not have a name. */
+extern char *
+ unicode_character_name (ucs4_t uc, char *buf);
+
+/* Looks up the Unicode character with a given name, in upper- or lowercase
+ ASCII. Returns the character if found, or UNINAME_INVALID if not found. */
+extern ucs4_t
+ unicode_name_character (const char *name);
+#define UNINAME_INVALID ((ucs4_t) 0xFFFF)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNINAME_H */
diff --git a/lib/uniname/gen-uninames.lisp b/lib/uniname/gen-uninames.lisp
new file mode 100755
index 0000000..d08e93f
--- /dev/null
+++ b/lib/uniname/gen-uninames.lisp
@@ -0,0 +1,301 @@
+#!/usr/local/bin/clisp -C
+
+;;; Creation of gnulib's uninames.h from the UnicodeData.txt table.
+;;; Bruno Haible 2000-12-28
+
+(defparameter add-comments nil)
+
+(defstruct unicode-char
+ (code nil :type integer)
+ (name nil :type string)
+ word-indices
+ word-indices-index
+)
+
+(defstruct word-list
+ (hashed nil :type hash-table)
+ (sorted nil :type list)
+ size ; number of characters total
+ length ; number of words
+)
+
+(defun main (inputfile outputfile)
+ (declare (type string inputfile outputfile))
+ #+UNICODE (setq *default-file-encoding* charset:utf-8)
+ (let ((all-chars '()))
+ ;; Read all characters and names from the input file.
+ (with-open-file (istream inputfile :direction :input)
+ (loop
+ (let ((line (read-line istream nil nil)))
+ (unless line (return))
+ (let* ((i1 (position #\; line))
+ (i2 (position #\; line :start (1+ i1)))
+ (code-string (subseq line 0 i1))
+ (code (parse-integer code-string :radix 16))
+ (name-string (subseq line (1+ i1) i2)))
+ ; Ignore characters whose name starts with "<".
+ (unless (eql (char name-string 0) #\<)
+ ; Also ignore Hangul syllables; they are treated specially.
+ (unless (<= #xAC00 code #xD7A3)
+ ; Also ignore CJK compatibility ideographs; they are treated
+ ; specially as well.
+ (unless (or (<= #xF900 code #xFA2D) (<= #xFA30 code #xFA6A)
+ (<= #xFA70 code #xFAD9) (<= #x2F800 code #x2FA1D))
+ ; Transform the code so that it fits in 16 bits. In
+ ; Unicode 5.1 the following ranges are used.
+ ; 0x00000..0x04DFF >>12= 0x00..0x04 -> 0x0..0x4
+ ; 0x0A000..0x0AAFF >>12= 0x0A -> 0x5
+ ; 0x0F900..0x0FFFF >>12= 0x0F -> 0x6
+ ; 0x10000..0x10A58 >>12= 0x10 -> 0x7
+ ; 0x12000..0x12473 >>12= 0x12 -> 0x8
+ ; 0x1D000..0x1D7FF >>12= 0x1D -> 0x9
+ ; 0x1F000..0x1F093 >>12= 0x1F -> 0xA
+ ; 0x2F800..0x2FAFF >>12= 0x2F -> 0xB
+ ; 0xE0000..0xE00FF >>12= 0xE0 -> 0xC
+ (flet ((transform (x)
+ (dpb
+ (case (ash x -12)
+ ((#x00 #x01 #x02 #x03 #x04) (ash x -12))
+ (#x0A 5)
+ (#x0F 6)
+ (#x10 7)
+ (#x12 8)
+ (#x1D 9)
+ (#x1F #xA)
+ (#x2F #xB)
+ (#xE0 #xC)
+ (t (error "Update the transform function for 0x~5,'0X" x))
+ )
+ (byte 8 12)
+ x
+ )) )
+ (push (make-unicode-char :code (transform code)
+ :name name-string)
+ all-chars
+ ) ) ) ) )
+ ) ) ) )
+ (setq all-chars (nreverse all-chars))
+ ;; Split into words.
+ (let ((words-by-length (make-array 0 :adjustable t)))
+ (dolist (name (list* "HANGUL SYLLABLE" "CJK COMPATIBILITY" (mapcar #'unicode-char-name all-chars)))
+ (let ((i1 0))
+ (loop
+ (when (>= i1 (length name)) (return))
+ (let ((i2 (or (position #\Space name :start i1) (length name))))
+ (let* ((word (subseq name i1 i2))
+ (len (length word)))
+ (when (>= len (length words-by-length))
+ (adjust-array words-by-length (1+ len))
+ )
+ (unless (aref words-by-length len)
+ (setf (aref words-by-length len)
+ (make-word-list
+ :hashed (make-hash-table :test #'equal)
+ :sorted '()
+ ) ) )
+ (let ((word-list (aref words-by-length len)))
+ (unless (gethash word (word-list-hashed word-list))
+ (setf (gethash word (word-list-hashed word-list)) t)
+ (push word (word-list-sorted word-list))
+ ) )
+ )
+ (setq i1 (1+ i2))
+ ) ) ) )
+ ;; Sort the word lists.
+ (dotimes (len (length words-by-length))
+ (unless (aref words-by-length len)
+ (setf (aref words-by-length len)
+ (make-word-list
+ :hashed (make-hash-table :test #'equal)
+ :sorted '()
+ ) ) )
+ (let ((word-list (aref words-by-length len)))
+ (setf (word-list-sorted word-list)
+ (sort (word-list-sorted word-list) #'string<)
+ )
+ (setf (word-list-size word-list)
+ (reduce #'+ (mapcar #'length (word-list-sorted word-list)))
+ )
+ (setf (word-list-length word-list)
+ (length (word-list-sorted word-list))
+ ) ) )
+ ;; Output the tables.
+ (with-open-file (ostream outputfile :direction :output
+ #+UNICODE :external-format #+UNICODE charset:ascii)
+ (format ostream "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */~%")
+ (format ostream "/*~%")
+ (format ostream " * ~A~%" (file-namestring outputfile))
+ (format ostream " *~%")
+ (format ostream " * Unicode character name table.~%")
+ (format ostream " * Generated automatically by the gen-uninames utility.~%")
+ (format ostream " */~%")
+ (format ostream "~%")
+ (format ostream "static const char unicode_name_words[~D] = {~%"
+ (let ((sum 0))
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (incf sum (word-list-size word-list))
+ ) )
+ sum
+ ) )
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (dolist (word (word-list-sorted word-list))
+ (format ostream " ~{ '~C',~}~%" (coerce word 'list))
+ ) ) )
+ (format ostream "};~%")
+ (format ostream "#define UNICODE_CHARNAME_NUM_WORDS ~D~%"
+ (let ((sum 0))
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (incf sum (word-list-length word-list))
+ ) )
+ sum
+ ) )
+ #| ; Redundant data
+ (format ostream "static const uint16_t unicode_name_word_offsets[~D] = {~%"
+ (let ((sum 0))
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (incf sum (word-list-length word-list))
+ ) )
+ sum
+ ) )
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (when (word-list-sorted word-list)
+ (format ostream " ")
+ (do ((l (word-list-sorted word-list) (cdr l))
+ (offset 0 (+ offset (length (car l)))))
+ ((endp l))
+ (format ostream "~<~% ~0,79:; ~D,~>" offset)
+ )
+ (format ostream "~%")
+ ) ) )
+ (format ostream "};~%")
+ |#
+ (format ostream "static const struct { uint16_t extra_offset; uint16_t ind_offset; } unicode_name_by_length[~D] = {~%"
+ (1+ (length words-by-length))
+ )
+ (let ((extra-offset 0)
+ (ind-offset 0))
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (format ostream " { ~D, ~D },~%" extra-offset ind-offset)
+ (incf extra-offset (word-list-size word-list))
+ (incf ind-offset (word-list-length word-list))
+ ) )
+ (format ostream " { ~D, ~D }~%" extra-offset ind-offset)
+ )
+ (format ostream "};~%")
+ (let ((ind-offset 0))
+ (dotimes (len (length words-by-length))
+ (let ((word-list (aref words-by-length len)))
+ (dolist (word (word-list-sorted word-list))
+ (setf (gethash word (word-list-hashed word-list)) ind-offset)
+ (incf ind-offset)
+ ) ) ) )
+ (dolist (word '("HANGUL" "SYLLABLE" "CJK" "COMPATIBILITY"))
+ (format ostream "#define UNICODE_CHARNAME_WORD_~A ~D~%" word
+ (gethash word (word-list-hashed (aref words-by-length (length word))))
+ ) )
+ ;; Compute the word-indices for every unicode-char.
+ (dolist (uc all-chars)
+ (let ((name (unicode-char-name uc))
+ (indices '()))
+ (let ((i1 0))
+ (loop
+ (when (>= i1 (length name)) (return))
+ (let ((i2 (or (position #\Space name :start i1) (length name))))
+ (let* ((word (subseq name i1 i2))
+ (len (length word)))
+ (push (gethash word (word-list-hashed (aref words-by-length len)))
+ indices
+ )
+ )
+ (setq i1 (1+ i2))
+ ) ) )
+ (setf (unicode-char-word-indices uc)
+ (coerce (nreverse indices) 'vector)
+ )
+ ) )
+ ;; Sort the list of unicode-chars by word-indices.
+ (setq all-chars
+ (sort all-chars
+ (lambda (vec1 vec2)
+ (let ((len1 (length vec1))
+ (len2 (length vec2)))
+ (do ((i 0 (1+ i)))
+ (nil)
+ (if (< i len2)
+ (if (< i len1)
+ (cond ((< (aref vec1 i) (aref vec2 i)) (return t))
+ ((> (aref vec1 i) (aref vec2 i)) (return nil))
+ )
+ (return t)
+ )
+ (return nil)
+ ) ) ) )
+ :key #'unicode-char-word-indices
+ ) )
+ ;; Output the word-indices.
+ (format ostream "static const uint16_t unicode_names[~D] = {~%"
+ (reduce #'+ (mapcar (lambda (uc) (length (unicode-char-word-indices uc))) all-chars))
+ )
+ (let ((i 0))
+ (dolist (uc all-chars)
+ (format ostream " ~{ ~D,~}"
+ (maplist (lambda (r) (+ (* 2 (car r)) (if (cdr r) 1 0)))
+ (coerce (unicode-char-word-indices uc) 'list)
+ )
+ )
+ (when add-comments
+ (format ostream "~40T/* ~A */" (unicode-char-name uc))
+ )
+ (format ostream "~%")
+ (setf (unicode-char-word-indices-index uc) i)
+ (incf i (length (unicode-char-word-indices uc)))
+ ) )
+ (format ostream "};~%")
+ (format ostream "static const struct { uint16_t code; uint32_t name:24; }~%")
+ (format ostream "#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)~%__attribute__((__packed__))~%#endif~%")
+ (format ostream "unicode_name_to_code[~D] = {~%"
+ (length all-chars)
+ )
+ (dolist (uc all-chars)
+ (format ostream " { 0x~4,'0X, ~D },"
+ (unicode-char-code uc)
+ (unicode-char-word-indices-index uc)
+ )
+ (when add-comments
+ (format ostream "~21T/* ~A */" (unicode-char-name uc))
+ )
+ (format ostream "~%")
+ )
+ (format ostream "};~%")
+ (format ostream "static const struct { uint16_t code; uint32_t name:24; }~%")
+ (format ostream "#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)~%__attribute__((__packed__))~%#endif~%")
+ (format ostream "unicode_code_to_name[~D] = {~%"
+ (length all-chars)
+ )
+ (dolist (uc (sort (copy-list all-chars) #'< :key #'unicode-char-code))
+ (format ostream " { 0x~4,'0X, ~D },"
+ (unicode-char-code uc)
+ (unicode-char-word-indices-index uc)
+ )
+ (when add-comments
+ (format ostream "~21T/* ~A */" (unicode-char-name uc))
+ )
+ (format ostream "~%")
+ )
+ (format ostream "};~%")
+ (format ostream "#define UNICODE_CHARNAME_MAX_LENGTH ~D~%"
+ (reduce #'max (mapcar (lambda (uc) (length (unicode-char-name uc))) all-chars))
+ )
+ (format ostream "#define UNICODE_CHARNAME_MAX_WORDS ~D~%"
+ (reduce #'max (mapcar (lambda (uc) (length (unicode-char-word-indices uc))) all-chars))
+ )
+ )
+) ) )
+
+(main (first *args*) (second *args*))
diff --git a/lib/uniname/uniname.c b/lib/uniname/uniname.c
new file mode 100644
index 0000000..bef58af
--- /dev/null
+++ b/lib/uniname/uniname.c
@@ -0,0 +1,516 @@
+/* Association between Unicode characters and their names.
+ Copyright (C) 2000-2002, 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 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>
+
+/* Specification. */
+#include "uniname.h"
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+
+/* Table of Unicode character names, derived from UnicodeData.txt.
+ This table is generated in a way to minimize the memory footprint:
+ 1. its compiled size is small (less than 350 KB),
+ 2. it resides entirely in the text or read-only data segment of the
+ executable or shared library: the table contains only immediate
+ integers, no pointers, and the functions don't do heap allocation.
+ */
+#include "uninames.h"
+/* It contains:
+ static const char unicode_name_words[36303] = ...;
+ #define UNICODE_CHARNAME_NUM_WORDS 6260
+ static const struct { uint16_t extra_offset; uint16_t ind_offset; } unicode_name_by_length[26] = ...;
+ #define UNICODE_CHARNAME_WORD_HANGUL 3902
+ #define UNICODE_CHARNAME_WORD_SYLLABLE 4978
+ #define UNICODE_CHARNAME_WORD_CJK 417
+ #define UNICODE_CHARNAME_WORD_COMPATIBILITY 6107
+ static const uint16_t unicode_names[68940] = ...;
+ static const struct { uint16_t code; uint32_t name:24; } unicode_name_to_code[16626] = ...;
+ static const struct { uint16_t code; uint32_t name:24; } unicode_code_to_name[16626] = ...;
+ #define UNICODE_CHARNAME_MAX_LENGTH 83
+ #define UNICODE_CHARNAME_MAX_WORDS 13
+*/
+
+/* Returns the word with a given index. */
+static const char *
+unicode_name_word (unsigned int index, unsigned int *lengthp)
+{
+ unsigned int i1;
+ unsigned int i2;
+ unsigned int i;
+
+ assert (index < UNICODE_CHARNAME_NUM_WORDS);
+
+ /* Binary search for i with
+ unicode_name_by_length[i].ind_offset <= index
+ and
+ index < unicode_name_by_length[i+1].ind_offset
+ */
+
+ i1 = 0;
+ i2 = SIZEOF (unicode_name_by_length) - 1;
+ while (i2 - i1 > 1)
+ {
+ unsigned int i = (i1 + i2) >> 1;
+ if (unicode_name_by_length[i].ind_offset <= index)
+ i1 = i;
+ else
+ i2 = i;
+ }
+ i = i1;
+ assert (unicode_name_by_length[i].ind_offset <= index
+ && index < unicode_name_by_length[i+1].ind_offset);
+ *lengthp = i;
+ return &unicode_name_words[unicode_name_by_length[i].extra_offset
+ + (index-unicode_name_by_length[i].ind_offset)*i];
+}
+
+/* Looks up the index of a word. */
+static int
+unicode_name_word_lookup (const char *word, unsigned int length)
+{
+ if (length > 0 && length < SIZEOF (unicode_name_by_length) - 1)
+ {
+ /* Binary search among the words of given length. */
+ unsigned int extra_offset = unicode_name_by_length[length].extra_offset;
+ unsigned int i0 = unicode_name_by_length[length].ind_offset;
+ unsigned int i1 = i0;
+ unsigned int i2 = unicode_name_by_length[length+1].ind_offset;
+ while (i2 - i1 > 0)
+ {
+ unsigned int i = (i1 + i2) >> 1;
+ const char *p = &unicode_name_words[extra_offset + (i-i0)*length];
+ const char *w = word;
+ unsigned int n = length;
+ for (;;)
+ {
+ if (*p < *w)
+ {
+ if (i1 == i)
+ return -1;
+ /* Note here: i1 < i < i2. */
+ i1 = i;
+ break;
+ }
+ if (*p > *w)
+ {
+ /* Note here: i1 <= i < i2. */
+ i2 = i;
+ break;
+ }
+ p++; w++; n--;
+ if (n == 0)
+ return i;
+ }
+ }
+ }
+ return -1;
+}
+
+/* Auxiliary tables for Hangul syllable names, see the Unicode 3.0 book,
+ sections 3.11 and 4.4. */
+static const char jamo_initial_short_name[19][3] =
+{
+ "G", "GG", "N", "D", "DD", "R", "M", "B", "BB", "S", "SS", "", "J", "JJ",
+ "C", "K", "T", "P", "H"
+};
+static const char jamo_medial_short_name[21][4] =
+{
+ "A", "AE", "YA", "YAE", "EO", "E", "YEO", "YE", "O", "WA", "WAE", "OE", "YO",
+ "U", "WEO", "WE", "WI", "YU", "EU", "YI", "I"
+};
+static const char jamo_final_short_name[28][3] =
+{
+ "", "G", "GG", "GS", "N", "NI", "NH", "D", "L", "LG", "LM", "LB", "LS", "LT",
+ "LP", "LH", "M", "B", "BS", "S", "SS", "NG", "J", "C", "K", "T", "P", "H"
+};
+
+/* Looks up the name of a Unicode character, in uppercase ASCII.
+ Returns the filled buf, or NULL if the character does not have a name. */
+char *
+unicode_character_name (ucs4_t c, char *buf)
+{
+ if (c >= 0xAC00 && c <= 0xD7A3)
+ {
+ /* Special case for Hangul syllables. Keeps the tables small. */
+ char *ptr;
+ unsigned int tmp;
+ unsigned int index1;
+ unsigned int index2;
+ unsigned int index3;
+ const char *q;
+
+ /* buf needs to have at least 16 + 7 bytes here. */
+ memcpy (buf, "HANGUL SYLLABLE ", 16);
+ ptr = buf + 16;
+
+ tmp = c - 0xAC00;
+ index3 = tmp % 28; tmp = tmp / 28;
+ index2 = tmp % 21; tmp = tmp / 21;
+ index1 = tmp;
+
+ q = jamo_initial_short_name[index1];
+ while (*q != '\0')
+ *ptr++ = *q++;
+ q = jamo_medial_short_name[index2];
+ while (*q != '\0')
+ *ptr++ = *q++;
+ q = jamo_final_short_name[index3];
+ while (*q != '\0')
+ *ptr++ = *q++;
+ *ptr = '\0';
+ return buf;
+ }
+ else if ((c >= 0xF900 && c <= 0xFA2D) || (c >= 0xFA30 && c <= 0xFA6A)
+ || (c >= 0xFA70 && c <= 0xFAD9) || (c >= 0x2F800 && c <= 0x2FA1D))
+ {
+ /* Special case for CJK compatibility ideographs. Keeps the tables
+ small. */
+ char *ptr;
+ int i;
+
+ /* buf needs to have at least 28 + 5 bytes here. */
+ memcpy (buf, "CJK COMPATIBILITY IDEOGRAPH-", 28);
+ ptr = buf + 28;
+
+ for (i = (c < 0x10000 ? 12 : 16); i >= 0; i -= 4)
+ {
+ unsigned int x = (c >> i) & 0xf;
+ *ptr++ = (x < 10 ? '0' : 'A' - 10) + x;
+ }
+ *ptr = '\0';
+ return buf;
+ }
+ else
+ {
+ const uint16_t *words;
+
+ /* Transform the code so that it fits in 16 bits. */
+ switch (c >> 12)
+ {
+ case 0x00: case 0x01: case 0x02: case 0x03: case 0x04:
+ break;
+ case 0x0A:
+ c -= 0x05000;
+ break;
+ case 0x0F:
+ c -= 0x09000;
+ break;
+ case 0x10:
+ c -= 0x09000;
+ break;
+ case 0x12:
+ c -= 0x0A000;
+ break;
+ case 0x1D:
+ c -= 0x14000;
+ break;
+ case 0x1F:
+ c -= 0x15000;
+ break;
+ case 0x2F:
+ c -= 0x24000;
+ break;
+ case 0xE0:
+ c -= 0xD4000;
+ break;
+ default:
+ return NULL;
+ }
+
+ {
+ /* Binary search in unicode_code_to_name. */
+ unsigned int i1 = 0;
+ unsigned int i2 = SIZEOF (unicode_code_to_name);
+ for (;;)
+ {
+ unsigned int i = (i1 + i2) >> 1;
+ if (unicode_code_to_name[i].code == c)
+ {
+ words = &unicode_names[unicode_code_to_name[i].name];
+ break;
+ }
+ else if (unicode_code_to_name[i].code < c)
+ {
+ if (i1 == i)
+ {
+ words = NULL;
+ break;
+ }
+ /* Note here: i1 < i < i2. */
+ i1 = i;
+ }
+ else if (unicode_code_to_name[i].code > c)
+ {
+ if (i2 == i)
+ {
+ words = NULL;
+ break;
+ }
+ /* Note here: i1 <= i < i2. */
+ i2 = i;
+ }
+ }
+ }
+ if (words != NULL)
+ {
+ /* Found it in unicode_code_to_name. Now concatenate the words. */
+ /* buf needs to have at least UNICODE_CHARNAME_MAX_LENGTH bytes. */
+ char *ptr = buf;
+ for (;;)
+ {
+ unsigned int wordlen;
+ const char *word = unicode_name_word (*words>>1, &wordlen);
+ do
+ *ptr++ = *word++;
+ while (--wordlen > 0);
+ if ((*words & 1) == 0)
+ break;
+ *ptr++ = ' ';
+ words++;
+ }
+ *ptr = '\0';
+ return buf;
+ }
+ return NULL;
+ }
+}
+
+/* Looks up the Unicode character with a given name, in upper- or lowercase
+ ASCII. Returns the character if found, or UNINAME_INVALID if not found. */
+ucs4_t
+unicode_name_character (const char *name)
+{
+ unsigned int len = strlen (name);
+ if (len > 1 && len <= UNICODE_CHARNAME_MAX_LENGTH)
+ {
+ /* Test for "word1 word2 ..." syntax. */
+ char buf[UNICODE_CHARNAME_MAX_LENGTH];
+ char *ptr = buf;
+ for (;;)
+ {
+ char c = *name++;
+ if (!(c >= ' ' && c <= '~'))
+ break;
+ *ptr++ = (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
+ if (--len == 0)
+ goto filled_buf;
+ }
+ if (false)
+ filled_buf:
+ {
+ /* Convert the constituents to uint16_t words. */
+ uint16_t words[UNICODE_CHARNAME_MAX_WORDS];
+ uint16_t *wordptr = words;
+ {
+ const char *p1 = buf;
+ for (;;)
+ {
+ {
+ int word;
+ const char *p2 = p1;
+ while (p2 < ptr && *p2 != ' ')
+ p2++;
+ word = unicode_name_word_lookup (p1, p2 - p1);
+ if (word < 0)
+ break;
+ if (wordptr == &words[UNICODE_CHARNAME_MAX_WORDS])
+ break;
+ *wordptr++ = word;
+ if (p2 == ptr)
+ goto filled_words;
+ p1 = p2 + 1;
+ }
+ /* Special case for Hangul syllables. Keeps the tables small. */
+ if (wordptr == &words[2]
+ && words[0] == UNICODE_CHARNAME_WORD_HANGUL
+ && words[1] == UNICODE_CHARNAME_WORD_SYLLABLE)
+ {
+ /* Split the last word [p1..ptr) into three parts:
+ 1) [BCDGHJKMNPRST]
+ 2) [AEIOUWY]
+ 3) [BCDGHIJKLMNPST]
+ */
+ const char *p2;
+ const char *p3;
+ const char *p4;
+
+ p2 = p1;
+ while (p2 < ptr
+ && (*p2 == 'B' || *p2 == 'C' || *p2 == 'D'
+ || *p2 == 'G' || *p2 == 'H' || *p2 == 'J'
+ || *p2 == 'K' || *p2 == 'M' || *p2 == 'N'
+ || *p2 == 'P' || *p2 == 'R' || *p2 == 'S'
+ || *p2 == 'T'))
+ p2++;
+ p3 = p2;
+ while (p3 < ptr
+ && (*p3 == 'A' || *p3 == 'E' || *p3 == 'I'
+ || *p3 == 'O' || *p3 == 'U' || *p3 == 'W'
+ || *p3 == 'Y'))
+ p3++;
+ p4 = p3;
+ while (p4 < ptr
+ && (*p4 == 'B' || *p4 == 'C' || *p4 == 'D'
+ || *p4 == 'G' || *p4 == 'H' || *p4 == 'I'
+ || *p4 == 'J' || *p4 == 'K' || *p4 == 'L'
+ || *p4 == 'M' || *p4 == 'N' || *p4 == 'P'
+ || *p4 == 'S' || *p4 == 'T'))
+ p4++;
+ if (p4 == ptr)
+ {
+ unsigned int n1 = p2 - p1;
+ unsigned int n2 = p3 - p2;
+ unsigned int n3 = p4 - p3;
+
+ if (n1 <= 2 && (n2 >= 1 && n2 <= 3) && n3 <= 2)
+ {
+ unsigned int index1;
+
+ for (index1 = 0; index1 < 19; index1++)
+ if (memcmp(jamo_initial_short_name[index1], p1, n1) == 0
+ && jamo_initial_short_name[index1][n1] == '\0')
+ {
+ unsigned int index2;
+
+ for (index2 = 0; index2 < 21; index2++)
+ if (memcmp(jamo_medial_short_name[index2], p2, n2) == 0
+ && jamo_medial_short_name[index2][n2] == '\0')
+ {
+ unsigned int index3;
+
+ for (index3 = 0; index3 < 28; index3++)
+ if (memcmp(jamo_final_short_name[index3], p3, n3) == 0
+ && jamo_final_short_name[index3][n3] == '\0')
+ {
+ return 0xAC00 + (index1 * 21 + index2) * 28 + index3;
+ }
+ break;
+ }
+ break;
+ }
+ }
+ }
+ }
+ /* Special case for CJK compatibility ideographs. Keeps the
+ tables small. */
+ if (wordptr == &words[2]
+ && words[0] == UNICODE_CHARNAME_WORD_CJK
+ && words[1] == UNICODE_CHARNAME_WORD_COMPATIBILITY
+ && p1 + 14 <= ptr
+ && p1 + 15 >= ptr
+ && memcmp (p1, "IDEOGRAPH-", 10) == 0)
+ {
+ const char *p2 = p1 + 10;
+
+ if (*p2 != '0')
+ {
+ unsigned int c = 0;
+
+ for (;;)
+ {
+ if (*p2 >= '0' && *p2 <= '9')
+ c += (*p2 - '0');
+ else if (*p2 >= 'A' && *p2 <= 'F')
+ c += (*p2 - 'A' + 10);
+ else
+ break;
+ p2++;
+ if (p2 == ptr)
+ {
+ if ((c >= 0xF900 && c <= 0xFA2D)
+ || (c >= 0xFA30 && c <= 0xFA6A)
+ || (c >= 0xFA70 && c <= 0xFAD9)
+ || (c >= 0x2F800 && c <= 0x2FA1D))
+ return c;
+ else
+ break;
+ }
+ c = c << 4;
+ }
+ }
+ }
+ }
+ }
+ if (false)
+ filled_words:
+ {
+ /* Multiply by 2, to simplify later comparisons. */
+ unsigned int words_length = wordptr - words;
+ {
+ int i = words_length - 1;
+ words[i] = 2 * words[i];
+ for (; --i >= 0; )
+ words[i] = 2 * words[i] + 1;
+ }
+ /* Binary search in unicode_name_to_code. */
+ {
+ unsigned int i1 = 0;
+ unsigned int i2 = SIZEOF (unicode_name_to_code);
+ for (;;)
+ {
+ unsigned int i = (i1 + i2) >> 1;
+ const uint16_t *w = words;
+ const uint16_t *p = &unicode_names[unicode_name_to_code[i].name];
+ unsigned int n = words_length;
+ for (;;)
+ {
+ if (*p < *w)
+ {
+ if (i1 == i)
+ goto name_not_found;
+ /* Note here: i1 < i < i2. */
+ i1 = i;
+ break;
+ }
+ else if (*p > *w)
+ {
+ if (i2 == i)
+ goto name_not_found;
+ /* Note here: i1 <= i < i2. */
+ i2 = i;
+ break;
+ }
+ p++; w++; n--;
+ if (n == 0)
+ {
+ unsigned int c = unicode_name_to_code[i].code;
+
+ /* Undo the transformation to 16-bit space. */
+ static const unsigned int offset[13] =
+ {
+ 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
+ 0x05000, 0x09000, 0x09000, 0x0A000, 0x14000,
+ 0x15000, 0x24000, 0xD4000
+ };
+ return c + offset[c >> 12];
+ }
+ }
+ }
+ }
+ name_not_found: ;
+ }
+ }
+ }
+ return UNINAME_INVALID;
+}
diff --git a/lib/uniname/uninames.h b/lib/uniname/uninames.h
new file mode 100644
index 0000000..7b6db1f
--- /dev/null
+++ b/lib/uniname/uninames.h
@@ -0,0 +1,61495 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/*
+ * uninames.h
+ *
+ * Unicode character name table.
+ * Generated automatically by the gen-uninames utility.
+ */
+
+static const char unicode_name_words[39544] = {
+ 'A',
+ 'B',
+ 'C',
+ 'D',
+ 'E',
+ 'F',
+ 'G',
+ 'H',
+ 'I',
+ 'J',
+ 'K',
+ 'L',
+ 'M',
+ 'N',
+ 'O',
+ 'P',
+ 'Q',
+ 'R',
+ 'S',
+ 'T',
+ 'U',
+ 'V',
+ 'W',
+ 'X',
+ 'Y',
+ 'Z',
+ '-', 'A',
+ 'A', '2',
+ 'A', '3',
+ 'A', 'A',
+ 'A', 'B',
+ 'A', 'C',
+ 'A', 'D',
+ 'A', 'E',
+ 'A', 'G',
+ 'A', 'H',
+ 'A', 'I',
+ 'A', 'K',
+ 'A', 'L',
+ 'A', 'M',
+ 'A', 'N',
+ 'A', 'O',
+ 'A', 'P',
+ 'A', 'Q',
+ 'A', 'S',
+ 'A', 'T',
+ 'A', 'U',
+ 'A', 'V',
+ 'A', 'X',
+ 'A', 'Y',
+ 'B', 'A',
+ 'B', 'E',
+ 'B', 'H',
+ 'B', 'I',
+ 'B', 'O',
+ 'B', 'Q',
+ 'B', 'U',
+ 'B', 'Y',
+ 'C', 'A',
+ 'C', 'C',
+ 'C', 'D',
+ 'C', 'E',
+ 'C', 'H',
+ 'C', 'I',
+ 'C', 'M',
+ 'C', 'O',
+ 'C', 'U',
+ 'C', 'Y',
+ 'D', '2',
+ 'D', 'A',
+ 'D', 'B',
+ 'D', 'E',
+ 'D', 'I',
+ 'D', 'L',
+ 'D', 'M',
+ 'D', 'O',
+ 'D', 'U',
+ 'D', 'V',
+ 'D', 'Z',
+ 'E', '2',
+ 'E', 'A',
+ 'E', 'E',
+ 'E', 'F',
+ 'E', 'H',
+ 'E', 'I',
+ 'E', 'K',
+ 'E', 'L',
+ 'E', 'M',
+ 'E', 'N',
+ 'E', 'O',
+ 'E', 'P',
+ 'E', 'R',
+ 'E', 'S',
+ 'E', 'T',
+ 'E', 'U',
+ 'E', 'V',
+ 'E', 'W',
+ 'E', 'X',
+ 'F', 'A',
+ 'F', 'E',
+ 'F', 'F',
+ 'F', 'I',
+ 'F', 'L',
+ 'F', 'M',
+ 'F', 'O',
+ 'F', 'U',
+ 'F', 'Y',
+ 'G', '2',
+ 'G', 'A',
+ 'G', 'B',
+ 'G', 'E',
+ 'G', 'G',
+ 'G', 'I',
+ 'G', 'N',
+ 'G', 'O',
+ 'G', 'U',
+ 'G', 'V',
+ 'G', 'Y',
+ 'H', 'A',
+ 'H', 'E',
+ 'H', 'G',
+ 'H', 'I',
+ 'H', 'K',
+ 'H', 'O',
+ 'H', 'P',
+ 'H', 'U',
+ 'H', 'V',
+ 'H', 'Z',
+ 'I', 'B',
+ 'I', 'E',
+ 'I', 'F',
+ 'I', 'G',
+ 'I', 'H',
+ 'I', 'I',
+ 'I', 'J',
+ 'I', 'L',
+ 'I', 'M',
+ 'I', 'N',
+ 'I', 'O',
+ 'I', 'P',
+ 'I', 'R',
+ 'I', 'S',
+ 'I', 'T',
+ 'I', 'U',
+ 'I', 'X',
+ 'I', 'Y',
+ 'J', 'A',
+ 'J', 'E',
+ 'J', 'I',
+ 'J', 'O',
+ 'J', 'U',
+ 'J', 'Y',
+ 'K', '2',
+ 'K', 'A',
+ 'K', 'B',
+ 'K', 'E',
+ 'K', 'G',
+ 'K', 'I',
+ 'K', 'K',
+ 'K', 'L',
+ 'K', 'M',
+ 'K', 'O',
+ 'K', 'T',
+ 'K', 'U',
+ 'K', 'V',
+ 'K', 'W',
+ 'L', 'A',
+ 'L', 'D',
+ 'L', 'E',
+ 'L', 'H',
+ 'L', 'I',
+ 'L', 'J',
+ 'L', 'L',
+ 'L', 'M',
+ 'L', 'N',
+ 'L', 'O',
+ 'L', 'S',
+ 'L', 'U',
+ 'L', 'V',
+ 'L', 'X',
+ 'L', 'Y',
+ 'L', 'Z',
+ 'M', 'A',
+ 'M', 'B',
+ 'M', 'E',
+ 'M', 'G',
+ 'M', 'H',
+ 'M', 'I',
+ 'M', 'L',
+ 'M', 'M',
+ 'M', 'O',
+ 'M', 'S',
+ 'M', 'U',
+ 'M', 'V',
+ 'M', 'W',
+ 'M', 'Y',
+ 'N', 'A',
+ 'N', 'D',
+ 'N', 'E',
+ 'N', 'F',
+ 'N', 'G',
+ 'N', 'H',
+ 'N', 'I',
+ 'N', 'J',
+ 'N', 'M',
+ 'N', 'N',
+ 'N', 'O',
+ 'N', 'S',
+ 'N', 'U',
+ 'N', 'V',
+ 'N', 'W',
+ 'O', 'A',
+ 'O', 'B',
+ 'O', 'E',
+ 'O', 'F',
+ 'O', 'H',
+ 'O', 'I',
+ 'O', 'L',
+ 'O', 'M',
+ 'O', 'N',
+ 'O', 'O',
+ 'O', 'P',
+ 'O', 'R',
+ 'O', 'S',
+ 'O', 'T',
+ 'O', 'U',
+ 'O', 'V',
+ 'O', 'W',
+ 'O', 'X',
+ 'O', 'Y',
+ 'P', '2',
+ 'P', 'A',
+ 'P', 'C',
+ 'P', 'D',
+ 'P', 'E',
+ 'P', 'F',
+ 'P', 'G',
+ 'P', 'H',
+ 'P', 'I',
+ 'P', 'M',
+ 'P', 'O',
+ 'P', 'R',
+ 'P', 'S',
+ 'P', 'U',
+ 'P', 'V',
+ 'P', 'W',
+ 'P', 'Y',
+ 'P', 'Z',
+ 'Q', 'A',
+ 'Q', 'E',
+ 'Q', 'I',
+ 'Q', 'O',
+ 'Q', 'P',
+ 'Q', 'U',
+ 'Q', 'Y',
+ 'R', 'A',
+ 'R', 'E',
+ 'R', 'I',
+ 'R', 'O',
+ 'R', 'R',
+ 'R', 'U',
+ 'R', 'Y',
+ 'S', 'A',
+ 'S', 'E',
+ 'S', 'G',
+ 'S', 'H',
+ 'S', 'I',
+ 'S', 'K',
+ 'S', 'O',
+ 'S', 'P',
+ 'S', 'R',
+ 'S', 'S',
+ 'S', 'T',
+ 'S', 'U',
+ 'S', 'V',
+ 'S', 'W',
+ 'S', 'Y',
+ 'S', 'Z',
+ 'T', 'A',
+ 'T', 'C',
+ 'T', 'E',
+ 'T', 'H',
+ 'T', 'I',
+ 'T', 'N',
+ 'T', 'O',
+ 'T', 'R',
+ 'T', 'S',
+ 'T', 'T',
+ 'T', 'U',
+ 'T', 'Z',
+ 'U', '2',
+ 'U', 'A',
+ 'U', 'B',
+ 'U', 'C',
+ 'U', 'D',
+ 'U', 'E',
+ 'U', 'K',
+ 'U', 'M',
+ 'U', 'N',
+ 'U', 'O',
+ 'U', 'P',
+ 'U', 'R',
+ 'U', 'S',
+ 'U', 'U',
+ 'U', 'Y',
+ 'V', 'A',
+ 'V', 'E',
+ 'V', 'I',
+ 'V', 'O',
+ 'V', 'U',
+ 'V', 'Y',
+ 'W', 'A',
+ 'W', 'B',
+ 'W', 'E',
+ 'W', 'G',
+ 'W', 'I',
+ 'W', 'O',
+ 'W', 'U',
+ 'W', 'V',
+ 'X', 'A',
+ 'X', 'E',
+ 'X', 'G',
+ 'X', 'I',
+ 'X', 'O',
+ 'X', 'U',
+ 'X', 'Y',
+ 'Y', 'A',
+ 'Y', 'E',
+ 'Y', 'I',
+ 'Y', 'N',
+ 'Y', 'O',
+ 'Y', 'R',
+ 'Y', 'U',
+ 'Y', 'V',
+ 'Y', 'Y',
+ 'Z', 'A',
+ 'Z', 'E',
+ 'Z', 'H',
+ 'Z', 'I',
+ 'Z', 'O',
+ 'Z', 'U',
+ 'Z', 'Y',
+ '-', 'U', 'M',
+ 'A', '-', 'O',
+ 'A', '-', 'U',
+ 'A', 'A', 'I',
+ 'A', 'A', 'J',
+ 'A', 'A', 'K',
+ 'A', 'A', 'M',
+ 'A', 'A', 'W',
+ 'A', 'A', 'Y',
+ 'A', 'B', '2',
+ 'A', 'D', 'I',
+ 'A', 'D', 'O',
+ 'A', 'G', 'E',
+ 'A', 'I', 'N',
+ 'A', 'I', 'R',
+ 'A', 'L', 'F',
+ 'A', 'L', 'I',
+ 'A', 'L', 'L',
+ 'A', 'N', 'D',
+ 'A', 'N', 'G',
+ 'A', 'N', 'N',
+ 'A', 'N', 'O',
+ 'A', 'P', 'L',
+ 'A', 'R', 'C',
+ 'A', 'R', 'E',
+ 'A', 'R', 'M',
+ 'A', 'S', 'H',
+ 'A', 'U', 'E',
+ 'A', 'W', 'E',
+ 'A', 'X', 'E',
+ 'A', 'Y', 'B',
+ 'A', 'Z', 'U',
+ 'B', 'A', 'A',
+ 'B', 'A', 'D',
+ 'B', 'A', 'G',
+ 'B', 'A', 'L',
+ 'B', 'A', 'N',
+ 'B', 'A', 'P',
+ 'B', 'A', 'R',
+ 'B', 'A', 'T',
+ 'B', 'A', 'X',
+ 'B', 'B', 'A',
+ 'B', 'B', 'E',
+ 'B', 'B', 'I',
+ 'B', 'B', 'O',
+ 'B', 'B', 'U',
+ 'B', 'B', 'Y',
+ 'B', 'E', 'E',
+ 'B', 'E', 'H',
+ 'B', 'E', 'I',
+ 'B', 'E', 'N',
+ 'B', 'E', 'P',
+ 'B', 'E', 'T',
+ 'B', 'E', 'X',
+ 'B', 'H', 'A',
+ 'B', 'H', 'E',
+ 'B', 'H', 'I',
+ 'B', 'H', 'O',
+ 'B', 'H', 'U',
+ 'B', 'I', 'B',
+ 'B', 'I', 'E',
+ 'B', 'I', 'G',
+ 'B', 'I', 'P',
+ 'B', 'I', 'T',
+ 'B', 'I', 'X',
+ 'B', 'L', 'A',
+ 'B', 'O', 'A',
+ 'B', 'O', 'O',
+ 'B', 'O', 'P',
+ 'B', 'O', 'T',
+ 'B', 'O', 'W',
+ 'B', 'O', 'X',
+ 'B', 'U', 'O',
+ 'B', 'U', 'P',
+ 'B', 'U', 'R',
+ 'B', 'U', 'T',
+ 'B', 'U', 'X',
+ 'B', 'W', 'A',
+ 'B', 'W', 'E',
+ 'B', 'W', 'I',
+ 'B', 'X', 'G',
+ 'B', 'Y', 'P',
+ 'B', 'Y', 'R',
+ 'B', 'Y', 'T',
+ 'B', 'Y', 'X',
+ 'C', 'A', 'A',
+ 'C', 'A', 'L',
+ 'C', 'A', 'N',
+ 'C', 'A', 'P',
+ 'C', 'A', 'T',
+ 'C', 'A', 'X',
+ 'C', 'C', 'A',
+ 'C', 'C', 'E',
+ 'C', 'C', 'I',
+ 'C', 'C', 'O',
+ 'C', 'C', 'U',
+ 'C', 'E', 'E',
+ 'C', 'E', 'N',
+ 'C', 'E', 'P',
+ 'C', 'E', 'X',
+ 'C', 'H', 'A',
+ 'C', 'H', 'E',
+ 'C', 'H', 'I',
+ 'C', 'H', 'O',
+ 'C', 'H', 'U',
+ 'C', 'H', 'Y',
+ 'C', 'I', 'E',
+ 'C', 'I', 'I',
+ 'C', 'I', 'L',
+ 'C', 'I', 'P',
+ 'C', 'I', 'T',
+ 'C', 'I', 'X',
+ 'C', 'J', 'K',
+ 'C', 'O', 'A',
+ 'C', 'O', 'N',
+ 'C', 'O', 'O',
+ 'C', 'O', 'P',
+ 'C', 'O', 'T',
+ 'C', 'O', 'W',
+ 'C', 'O', 'X',
+ 'C', 'U', 'M',
+ 'C', 'U', 'O',
+ 'C', 'U', 'P',
+ 'C', 'U', 'R',
+ 'C', 'U', 'T',
+ 'C', 'U', 'X',
+ 'C', 'W', 'A',
+ 'C', 'W', 'E',
+ 'C', 'W', 'I',
+ 'C', 'W', 'O',
+ 'C', 'Y', 'A',
+ 'C', 'Y', 'P',
+ 'C', 'Y', 'R',
+ 'C', 'Y', 'T',
+ 'C', 'Y', 'X',
+ 'D', 'A', 'A',
+ 'D', 'A', 'D',
+ 'D', 'A', 'G',
+ 'D', 'A', 'L',
+ 'D', 'A', 'M',
+ 'D', 'A', 'P',
+ 'D', 'A', 'R',
+ 'D', 'A', 'T',
+ 'D', 'A', 'X',
+ 'D', 'A', 'Y',
+ 'D', 'D', 'A',
+ 'D', 'D', 'E',
+ 'D', 'D', 'I',
+ 'D', 'D', 'O',
+ 'D', 'D', 'U',
+ 'D', 'E', 'E',
+ 'D', 'E', 'I',
+ 'D', 'E', 'K',
+ 'D', 'E', 'L',
+ 'D', 'E', 'P',
+ 'D', 'E', 'X',
+ 'D', 'H', 'A',
+ 'D', 'H', 'E',
+ 'D', 'H', 'I',
+ 'D', 'H', 'O',
+ 'D', 'H', 'U',
+ 'D', 'I', 'B',
+ 'D', 'I', 'E',
+ 'D', 'I', 'M',
+ 'D', 'I', 'N',
+ 'D', 'I', 'P',
+ 'D', 'I', 'T',
+ 'D', 'I', 'X',
+ 'D', 'J', 'A',
+ 'D', 'J', 'E',
+ 'D', 'L', 'A',
+ 'D', 'L', 'E',
+ 'D', 'L', 'I',
+ 'D', 'L', 'O',
+ 'D', 'L', 'U',
+ 'D', 'O', 'A',
+ 'D', 'O', 'G',
+ 'D', 'O', 'N',
+ 'D', 'O', 'O',
+ 'D', 'O', 'P',
+ 'D', 'O', 'T',
+ 'D', 'O', 'X',
+ 'D', 'R', 'Y',
+ 'D', 'U', 'B',
+ 'D', 'U', 'G',
+ 'D', 'U', 'H',
+ 'D', 'U', 'L',
+ 'D', 'U', 'M',
+ 'D', 'U', 'N',
+ 'D', 'U', 'O',
+ 'D', 'U', 'P',
+ 'D', 'U', 'R',
+ 'D', 'U', 'T',
+ 'D', 'U', 'X',
+ 'D', 'W', 'A',
+ 'D', 'W', 'E',
+ 'D', 'W', 'O',
+ 'D', 'Y', 'O',
+ 'D', 'Z', 'A',
+ 'D', 'Z', 'E',
+ 'D', 'Z', 'I',
+ 'D', 'Z', 'O',
+ 'D', 'Z', 'U',
+ 'E', 'A', 'R',
+ 'E', 'A', 'T',
+ 'E', 'C', 'H',
+ 'E', 'D', 'D',
+ 'E', 'E', 'N',
+ 'E', 'G', 'G',
+ 'E', 'I', 'E',
+ 'E', 'I', 'S',
+ 'E', 'K', 'S',
+ 'E', 'N', 'D',
+ 'E', 'N', 'G',
+ 'E', 'N', 'N',
+ 'E', 'O', 'H',
+ 'E', 'R', 'A',
+ 'E', 'R', 'G',
+ 'E', 'R', 'R',
+ 'E', 'R', 'S',
+ 'E', 'S', 'H',
+ 'E', 'S', 'O',
+ 'E', 'T', 'A',
+ 'E', 'T', 'H',
+ 'E', 'W', 'E',
+ 'E', 'X', 'O',
+ 'E', 'Y', 'E',
+ 'E', 'Z', 'H',
+ 'F', 'A', 'A',
+ 'F', 'A', 'N',
+ 'F', 'A', 'P',
+ 'F', 'A', 'T',
+ 'F', 'A', 'X',
+ 'F', 'E', 'E',
+ 'F', 'E', 'H',
+ 'F', 'E', 'I',
+ 'F', 'F', 'I',
+ 'F', 'F', 'L',
+ 'F', 'I', 'I',
+ 'F', 'I', 'P',
+ 'F', 'I', 'T',
+ 'F', 'I', 'X',
+ 'F', 'L', 'A',
+ 'F', 'L', 'Y',
+ 'F', 'O', 'O',
+ 'F', 'O', 'P',
+ 'F', 'O', 'R',
+ 'F', 'O', 'X',
+ 'F', 'U', 'P',
+ 'F', 'U', 'R',
+ 'F', 'U', 'T',
+ 'F', 'U', 'X',
+ 'F', 'W', 'A',
+ 'F', 'W', 'E',
+ 'F', 'W', 'I',
+ 'F', 'Y', 'A',
+ 'F', 'Y', 'P',
+ 'F', 'Y', 'T',
+ 'F', 'Y', 'X',
+ 'G', 'A', '2',
+ 'G', 'A', 'A',
+ 'G', 'A', 'D',
+ 'G', 'A', 'F',
+ 'G', 'A', 'G',
+ 'G', 'A', 'L',
+ 'G', 'A', 'M',
+ 'G', 'A', 'N',
+ 'G', 'A', 'P',
+ 'G', 'A', 'R',
+ 'G', 'A', 'T',
+ 'G', 'A', 'X',
+ 'G', 'A', 'Y',
+ 'G', 'B', 'A',
+ 'G', 'B', 'E',
+ 'G', 'B', 'I',
+ 'G', 'B', 'O',
+ 'G', 'B', 'U',
+ 'G', 'E', 'E',
+ 'G', 'E', 'N',
+ 'G', 'E', 'P',
+ 'G', 'E', 'R',
+ 'G', 'E', 'T',
+ 'G', 'E', 'X',
+ 'G', 'G', 'A',
+ 'G', 'G', 'E',
+ 'G', 'G', 'I',
+ 'G', 'G', 'O',
+ 'G', 'G', 'U',
+ 'G', 'H', 'A',
+ 'G', 'H', 'E',
+ 'G', 'H', 'I',
+ 'G', 'H', 'O',
+ 'G', 'H', 'U',
+ 'G', 'H', 'Z',
+ 'G', 'I', '4',
+ 'G', 'I', 'E',
+ 'G', 'I', 'M',
+ 'G', 'I', 'P',
+ 'G', 'I', 'T',
+ 'G', 'I', 'X',
+ 'G', 'J', 'E',
+ 'G', 'L', 'A',
+ 'G', 'O', 'A',
+ 'G', 'O', 'O',
+ 'G', 'O', 'P',
+ 'G', 'O', 'T',
+ 'G', 'O', 'X',
+ 'G', 'P', 'A',
+ 'G', 'R', 'U',
+ 'G', 'U', '2',
+ 'G', 'U', 'D',
+ 'G', 'U', 'G',
+ 'G', 'U', 'L',
+ 'G', 'U', 'M',
+ 'G', 'U', 'O',
+ 'G', 'U', 'P',
+ 'G', 'U', 'R',
+ 'G', 'U', 'T',
+ 'G', 'U', 'X',
+ 'G', 'W', 'A',
+ 'G', 'W', 'E',
+ 'G', 'W', 'I',
+ 'G', 'Y', 'A',
+ 'G', 'Y', 'E',
+ 'G', 'Y', 'I',
+ 'G', 'Y', 'O',
+ 'G', 'Y', 'U',
+ 'H', 'A', 'A',
+ 'H', 'A', 'E',
+ 'H', 'A', 'H',
+ 'H', 'A', 'L',
+ 'H', 'A', 'N',
+ 'H', 'A', 'P',
+ 'H', 'A', 'R',
+ 'H', 'A', 'T',
+ 'H', 'A', 'X',
+ 'H', 'E', 'E',
+ 'H', 'E', 'H',
+ 'H', 'E', 'I',
+ 'H', 'E', 'N',
+ 'H', 'E', 'P',
+ 'H', 'E', 'T',
+ 'H', 'E', 'X',
+ 'H', 'H', 'A',
+ 'H', 'H', 'E',
+ 'H', 'H', 'I',
+ 'H', 'H', 'O',
+ 'H', 'H', 'U',
+ 'H', 'I', 'E',
+ 'H', 'I', 'I',
+ 'H', 'I', 'N',
+ 'H', 'I', 'P',
+ 'H', 'I', 'T',
+ 'H', 'L', 'A',
+ 'H', 'L', 'E',
+ 'H', 'L', 'I',
+ 'H', 'L', 'O',
+ 'H', 'L', 'U',
+ 'H', 'L', 'Y',
+ 'H', 'M', 'A',
+ 'H', 'M', 'I',
+ 'H', 'M', 'O',
+ 'H', 'M', 'U',
+ 'H', 'M', 'Y',
+ 'H', 'N', 'A',
+ 'H', 'N', 'E',
+ 'H', 'N', 'I',
+ 'H', 'O', 'A',
+ 'H', 'O', 'E',
+ 'H', 'O', 'N',
+ 'H', 'O', 'O',
+ 'H', 'O', 'P',
+ 'H', 'O', 'T',
+ 'H', 'O', 'X',
+ 'H', 'P', 'A',
+ 'H', 'T', 'A',
+ 'H', 'U', 'N',
+ 'H', 'U', 'O',
+ 'H', 'W', 'A',
+ 'H', 'W', 'E',
+ 'H', 'W', 'I',
+ 'H', 'W', 'O',
+ 'H', 'W', 'U',
+ 'H', 'X', 'A',
+ 'H', 'X', 'E',
+ 'H', 'X', 'I',
+ 'H', 'X', 'O',
+ 'H', 'Z', 'G',
+ 'H', 'Z', 'T',
+ 'H', 'Z', 'W',
+ 'H', 'Z', 'Z',
+ 'I', '-', 'A',
+ 'I', '-', 'O',
+ 'I', '-', 'U',
+ 'I', 'A', 'N',
+ 'I', 'C', 'E',
+ 'I', 'E', 'P',
+ 'I', 'E', 'T',
+ 'I', 'E', 'X',
+ 'I', 'G', 'I',
+ 'I', 'L', '2',
+ 'I', 'N', 'G',
+ 'I', 'N', 'I',
+ 'I', 'N', 'N',
+ 'I', 'N', 'Y',
+ 'I', 'O', 'R',
+ 'I', 'R', 'I',
+ 'I', 'S', 'H',
+ 'I', 'S', 'S',
+ 'J', 'A', 'A',
+ 'J', 'A', 'R',
+ 'J', 'E', 'E',
+ 'J', 'E', 'H',
+ 'J', 'E', 'R',
+ 'J', 'H', 'A',
+ 'J', 'H', 'O',
+ 'J', 'I', 'A',
+ 'J', 'I', 'E',
+ 'J', 'I', 'L',
+ 'J', 'I', 'P',
+ 'J', 'I', 'T',
+ 'J', 'I', 'X',
+ 'J', 'J', 'A',
+ 'J', 'J', 'E',
+ 'J', 'J', 'I',
+ 'J', 'J', 'O',
+ 'J', 'J', 'U',
+ 'J', 'J', 'Y',
+ 'J', 'O', 'A',
+ 'J', 'O', 'O',
+ 'J', 'O', 'P',
+ 'J', 'O', 'T',
+ 'J', 'O', 'X',
+ 'J', 'O', 'Y',
+ 'J', 'U', 'O',
+ 'J', 'U', 'P',
+ 'J', 'U', 'R',
+ 'J', 'U', 'T',
+ 'J', 'U', 'X',
+ 'J', 'W', 'A',
+ 'J', 'Y', 'P',
+ 'J', 'Y', 'R',
+ 'J', 'Y', 'T',
+ 'J', 'Y', 'X',
+ 'K', 'A', '2',
+ 'K', 'A', 'A',
+ 'K', 'A', 'B',
+ 'K', 'A', 'F',
+ 'K', 'A', 'H',
+ 'K', 'A', 'I',
+ 'K', 'A', 'K',
+ 'K', 'A', 'L',
+ 'K', 'A', 'N',
+ 'K', 'A', 'P',
+ 'K', 'A', 'T',
+ 'K', 'A', 'X',
+ 'K', 'A', 'Y',
+ 'K', 'E', 'E',
+ 'K', 'E', 'H',
+ 'K', 'E', 'N',
+ 'K', 'E', 'P',
+ 'K', 'E', 'T',
+ 'K', 'E', 'X',
+ 'K', 'E', 'Y',
+ 'K', 'H', 'A',
+ 'K', 'H', 'E',
+ 'K', 'H', 'I',
+ 'K', 'H', 'O',
+ 'K', 'H', 'U',
+ 'K', 'H', 'Z',
+ 'K', 'I', 'D',
+ 'K', 'I', 'E',
+ 'K', 'I', 'H',
+ 'K', 'I', 'I',
+ 'K', 'I', 'N',
+ 'K', 'I', 'P',
+ 'K', 'I', 'T',
+ 'K', 'I', 'X',
+ 'K', 'J', 'E',
+ 'K', 'K', 'A',
+ 'K', 'K', 'E',
+ 'K', 'K', 'I',
+ 'K', 'K', 'O',
+ 'K', 'K', 'U',
+ 'K', 'L', 'A',
+ 'K', 'O', 'A',
+ 'K', 'O', 'H',
+ 'K', 'O', 'N',
+ 'K', 'O', 'O',
+ 'K', 'O', 'P',
+ 'K', 'O', 'T',
+ 'K', 'O', 'X',
+ 'K', 'P', 'A',
+ 'K', 'P', 'E',
+ 'K', 'P', 'I',
+ 'K', 'P', 'O',
+ 'K', 'P', 'U',
+ 'K', 'R', 'A',
+ 'K', 'S', 'I',
+ 'K', 'U', '3',
+ 'K', 'U', '4',
+ 'K', 'U', '7',
+ 'K', 'U', 'L',
+ 'K', 'U', 'N',
+ 'K', 'U', 'O',
+ 'K', 'U', 'P',
+ 'K', 'U', 'R',
+ 'K', 'U', 'T',
+ 'K', 'U', 'X',
+ 'K', 'V', 'A',
+ 'K', 'W', 'A',
+ 'K', 'W', 'E',
+ 'K', 'W', 'I',
+ 'K', 'W', 'O',
+ 'K', 'X', 'A',
+ 'K', 'X', 'E',
+ 'K', 'X', 'I',
+ 'K', 'X', 'O',
+ 'K', 'X', 'U',
+ 'K', 'Y', 'A',
+ 'K', 'Y', 'E',
+ 'K', 'Y', 'I',
+ 'K', 'Y', 'O',
+ 'K', 'Y', 'U',
+ 'L', 'A', 'A',
+ 'L', 'A', 'E',
+ 'L', 'A', 'L',
+ 'L', 'A', 'M',
+ 'L', 'A', 'O',
+ 'L', 'A', 'P',
+ 'L', 'A', 'S',
+ 'L', 'A', 'T',
+ 'L', 'A', 'W',
+ 'L', 'A', 'X',
+ 'L', 'C', 'E',
+ 'L', 'C', 'I',
+ 'L', 'D', '2',
+ 'L', 'E', 'E',
+ 'L', 'E', 'G',
+ 'L', 'E', 'K',
+ 'L', 'E', 'O',
+ 'L', 'E', 'P',
+ 'L', 'E', 'X',
+ 'L', 'H', 'A',
+ 'L', 'H', 'E',
+ 'L', 'H', 'I',
+ 'L', 'H', 'O',
+ 'L', 'H', 'U',
+ 'L', 'I', 'D',
+ 'L', 'I', 'E',
+ 'L', 'I', 'I',
+ 'L', 'I', 'L',
+ 'L', 'I', 'P',
+ 'L', 'I', 'T',
+ 'L', 'I', 'X',
+ 'L', 'J', 'E',
+ 'L', 'L', 'A',
+ 'L', 'O', 'A',
+ 'L', 'O', 'G',
+ 'L', 'O', 'O',
+ 'L', 'O', 'P',
+ 'L', 'O', 'T',
+ 'L', 'O', 'W',
+ 'L', 'O', 'X',
+ 'L', 'U', '2',
+ 'L', 'U', '3',
+ 'L', 'U', 'E',
+ 'L', 'U', 'H',
+ 'L', 'U', 'L',
+ 'L', 'U', 'M',
+ 'L', 'U', 'O',
+ 'L', 'U', 'P',
+ 'L', 'U', 'R',
+ 'L', 'U', 'T',
+ 'L', 'U', 'X',
+ 'L', 'W', 'A',
+ 'L', 'W', 'E',
+ 'L', 'W', 'I',
+ 'L', 'W', 'O',
+ 'L', 'Y', 'P',
+ 'L', 'Y', 'R',
+ 'L', 'Y', 'T',
+ 'L', 'Y', 'X',
+ 'L', 'Y', 'Y',
+ 'M', 'A', '2',
+ 'M', 'A', 'A',
+ 'M', 'A', 'H',
+ 'M', 'A', 'I',
+ 'M', 'A', 'N',
+ 'M', 'A', 'P',
+ 'M', 'A', 'R',
+ 'M', 'A', 'T',
+ 'M', 'A', 'X',
+ 'M', 'A', 'Y',
+ 'M', 'B', '2',
+ 'M', 'B', '3',
+ 'M', 'B', '4',
+ 'M', 'B', 'A',
+ 'M', 'B', 'E',
+ 'M', 'B', 'I',
+ 'M', 'B', 'O',
+ 'M', 'B', 'U',
+ 'M', 'E', 'D',
+ 'M', 'E', 'E',
+ 'M', 'E', 'M',
+ 'M', 'E', 'N',
+ 'M', 'E', 'S',
+ 'M', 'E', 'X',
+ 'M', 'G', 'A',
+ 'M', 'G', 'E',
+ 'M', 'G', 'O',
+ 'M', 'G', 'U',
+ 'M', 'H', 'Z',
+ 'M', 'I', 'D',
+ 'M', 'I', 'E',
+ 'M', 'I', 'G',
+ 'M', 'I', 'I',
+ 'M', 'I', 'L',
+ 'M', 'I', 'M',
+ 'M', 'I', 'N',
+ 'M', 'I', 'P',
+ 'M', 'I', 'T',
+ 'M', 'I', 'X',
+ 'M', 'L', 'A',
+ 'M', 'O', 'A',
+ 'M', 'O', 'L',
+ 'M', 'O', 'N',
+ 'M', 'O', 'O',
+ 'M', 'O', 'P',
+ 'M', 'O', 'T',
+ 'M', 'O', 'X',
+ 'M', 'P', 'A',
+ 'M', 'U', 'E',
+ 'M', 'U', 'G',
+ 'M', 'U', 'M',
+ 'M', 'U', 'O',
+ 'M', 'U', 'P',
+ 'M', 'U', 'R',
+ 'M', 'U', 'T',
+ 'M', 'U', 'X',
+ 'M', 'W', 'A',
+ 'M', 'W', 'E',
+ 'M', 'W', 'I',
+ 'M', 'W', 'O',
+ 'M', 'Y', 'A',
+ 'M', 'Y', 'P',
+ 'M', 'Y', 'T',
+ 'M', 'Y', 'X',
+ 'N', 'A', '2',
+ 'N', 'A', 'A',
+ 'N', 'A', 'G',
+ 'N', 'A', 'H',
+ 'N', 'A', 'M',
+ 'N', 'A', 'P',
+ 'N', 'A', 'R',
+ 'N', 'A', 'X',
+ 'N', 'B', 'A',
+ 'N', 'B', 'I',
+ 'N', 'B', 'O',
+ 'N', 'B', 'U',
+ 'N', 'B', 'Y',
+ 'N', 'D', 'A',
+ 'N', 'D', 'E',
+ 'N', 'D', 'I',
+ 'N', 'D', 'O',
+ 'N', 'D', 'U',
+ 'N', 'E', 'E',
+ 'N', 'E', 'N',
+ 'N', 'E', 'O',
+ 'N', 'E', 'P',
+ 'N', 'E', 'T',
+ 'N', 'E', 'W',
+ 'N', 'E', 'X',
+ 'N', 'G', 'A',
+ 'N', 'G', 'E',
+ 'N', 'G', 'G',
+ 'N', 'G', 'I',
+ 'N', 'G', 'O',
+ 'N', 'G', 'U',
+ 'N', 'H', 'A',
+ 'N', 'I', '2',
+ 'N', 'I', 'A',
+ 'N', 'I', 'B',
+ 'N', 'I', 'E',
+ 'N', 'I', 'I',
+ 'N', 'I', 'M',
+ 'N', 'I', 'P',
+ 'N', 'I', 'T',
+ 'N', 'I', 'X',
+ 'N', 'J', 'A',
+ 'N', 'J', 'E',
+ 'N', 'J', 'I',
+ 'N', 'J', 'O',
+ 'N', 'J', 'U',
+ 'N', 'J', 'Y',
+ 'N', 'K', 'O',
+ 'N', 'N', 'A',
+ 'N', 'N', 'G',
+ 'N', 'N', 'O',
+ 'N', 'O', 'A',
+ 'N', 'O', 'O',
+ 'N', 'O', 'P',
+ 'N', 'O', 'R',
+ 'N', 'O', 'T',
+ 'N', 'O', 'W',
+ 'N', 'O', 'X',
+ 'N', 'R', 'A',
+ 'N', 'R', 'E',
+ 'N', 'R', 'O',
+ 'N', 'R', 'U',
+ 'N', 'R', 'Y',
+ 'N', 'U', 'E',
+ 'N', 'U', 'M',
+ 'N', 'U', 'N',
+ 'N', 'U', 'O',
+ 'N', 'U', 'P',
+ 'N', 'U', 'R',
+ 'N', 'U', 'T',
+ 'N', 'U', 'X',
+ 'N', 'W', 'A',
+ 'N', 'W', 'E',
+ 'N', 'Y', 'A',
+ 'N', 'Y', 'D',
+ 'N', 'Y', 'E',
+ 'N', 'Y', 'I',
+ 'N', 'Y', 'O',
+ 'N', 'Y', 'U',
+ 'N', 'Z', 'A',
+ 'N', 'Z', 'E',
+ 'N', 'Z', 'I',
+ 'N', 'Z', 'U',
+ 'N', 'Z', 'Y',
+ 'O', '-', 'E',
+ 'O', '-', 'O',
+ 'O', '-', 'U',
+ 'O', 'A', 'K',
+ 'O', 'A', 'Y',
+ 'O', 'C', 'R',
+ 'O', 'D', 'D',
+ 'O', 'H', 'M',
+ 'O', 'I', 'L',
+ 'O', 'L', 'D',
+ 'O', 'L', 'E',
+ 'O', 'N', 'E',
+ 'O', 'N', 'G',
+ 'O', 'N', 'N',
+ 'O', 'N', 'U',
+ 'O', 'O', 'N',
+ 'O', 'O', 'U',
+ 'O', 'T', 'T',
+ 'O', 'T', 'U',
+ 'O', 'U', 'T',
+ 'P', 'A', 'A',
+ 'P', 'A', 'D',
+ 'P', 'A', 'N',
+ 'P', 'A', 'P',
+ 'P', 'A', 'R',
+ 'P', 'A', 'T',
+ 'P', 'A', 'W',
+ 'P', 'A', 'X',
+ 'P', 'E', 'E',
+ 'P', 'E', 'H',
+ 'P', 'E', 'R',
+ 'P', 'E', 'S',
+ 'P', 'H', 'A',
+ 'P', 'H', 'E',
+ 'P', 'H', 'I',
+ 'P', 'H', 'O',
+ 'P', 'H', 'U',
+ 'P', 'I', 'E',
+ 'P', 'I', 'G',
+ 'P', 'I', 'I',
+ 'P', 'I', 'P',
+ 'P', 'I', 'T',
+ 'P', 'I', 'X',
+ 'P', 'L', 'A',
+ 'P', 'O', 'A',
+ 'P', 'O', 'O',
+ 'P', 'O', 'P',
+ 'P', 'O', 'T',
+ 'P', 'O', 'X',
+ 'P', 'P', 'A',
+ 'P', 'P', 'M',
+ 'P', 'S', 'I',
+ 'P', 'T', 'E',
+ 'P', 'U', '2',
+ 'P', 'U', 'O',
+ 'P', 'U', 'P',
+ 'P', 'U', 'R',
+ 'P', 'U', 'T',
+ 'P', 'U', 'X',
+ 'P', 'W', 'A',
+ 'P', 'W', 'E',
+ 'P', 'W', 'I',
+ 'P', 'W', 'O',
+ 'P', 'Y', 'P',
+ 'P', 'Y', 'R',
+ 'P', 'Y', 'T',
+ 'P', 'Y', 'X',
+ 'Q', 'A', 'A',
+ 'Q', 'A', 'F',
+ 'Q', 'A', 'I',
+ 'Q', 'A', 'Q',
+ 'Q', 'A', 'R',
+ 'Q', 'A', 'U',
+ 'Q', 'E', 'E',
+ 'Q', 'H', 'A',
+ 'Q', 'H', 'E',
+ 'Q', 'H', 'I',
+ 'Q', 'H', 'O',
+ 'Q', 'H', 'U',
+ 'Q', 'I', 'E',
+ 'Q', 'I', 'I',
+ 'Q', 'I', 'P',
+ 'Q', 'I', 'T',
+ 'Q', 'I', 'X',
+ 'Q', 'O', 'A',
+ 'Q', 'O', 'F',
+ 'Q', 'O', 'O',
+ 'Q', 'O', 'P',
+ 'Q', 'O', 'T',
+ 'Q', 'O', 'X',
+ 'Q', 'U', 'A',
+ 'Q', 'U', 'E',
+ 'Q', 'U', 'I',
+ 'Q', 'U', 'K',
+ 'Q', 'U', 'O',
+ 'Q', 'U', 'P',
+ 'Q', 'U', 'R',
+ 'Q', 'U', 'T',
+ 'Q', 'U', 'U',
+ 'Q', 'U', 'V',
+ 'Q', 'U', 'X',
+ 'Q', 'W', 'A',
+ 'Q', 'W', 'E',
+ 'Q', 'W', 'I',
+ 'Q', 'Y', 'A',
+ 'Q', 'Y', 'E',
+ 'Q', 'Y', 'I',
+ 'Q', 'Y', 'O',
+ 'Q', 'Y', 'P',
+ 'Q', 'Y', 'R',
+ 'Q', 'Y', 'T',
+ 'Q', 'Y', 'U',
+ 'Q', 'Y', 'X',
+ 'R', 'A', '2',
+ 'R', 'A', '3',
+ 'R', 'A', 'A',
+ 'R', 'A', 'B',
+ 'R', 'A', 'D',
+ 'R', 'A', 'E',
+ 'R', 'A', 'M',
+ 'R', 'A', 'N',
+ 'R', 'A', 'P',
+ 'R', 'A', 'T',
+ 'R', 'A', 'X',
+ 'R', 'A', 'Y',
+ 'R', 'D', 'O',
+ 'R', 'E', 'D',
+ 'R', 'E', 'E',
+ 'R', 'E', 'H',
+ 'R', 'E', 'P',
+ 'R', 'E', 'X',
+ 'R', 'H', 'A',
+ 'R', 'H', 'O',
+ 'R', 'I', 'I',
+ 'R', 'I', 'N',
+ 'R', 'I', 'P',
+ 'R', 'J', 'E',
+ 'R', 'O', '2',
+ 'R', 'O', 'A',
+ 'R', 'O', 'C',
+ 'R', 'O', 'D',
+ 'R', 'O', 'O',
+ 'R', 'O', 'P',
+ 'R', 'O', 'T',
+ 'R', 'O', 'X',
+ 'R', 'R', 'A',
+ 'R', 'R', 'E',
+ 'R', 'R', 'O',
+ 'R', 'R', 'U',
+ 'R', 'R', 'Y',
+ 'R', 'U', 'A',
+ 'R', 'U', 'B',
+ 'R', 'U', 'M',
+ 'R', 'U', 'N',
+ 'R', 'U', 'O',
+ 'R', 'U', 'P',
+ 'R', 'U', 'R',
+ 'R', 'U', 'T',
+ 'R', 'U', 'X',
+ 'R', 'W', 'A',
+ 'R', 'Y', 'A',
+ 'R', 'Y', 'P',
+ 'R', 'Y', 'R',
+ 'R', 'Y', 'T',
+ 'R', 'Y', 'X',
+ 'R', 'Y', 'Y',
+ 'S', '-', 'W',
+ 'S', 'A', 'A',
+ 'S', 'A', 'D',
+ 'S', 'A', 'G',
+ 'S', 'A', 'L',
+ 'S', 'A', 'N',
+ 'S', 'A', 'P',
+ 'S', 'A', 'R',
+ 'S', 'A', 'T',
+ 'S', 'A', 'W',
+ 'S', 'A', 'X',
+ 'S', 'A', 'Y',
+ 'S', 'E', 'E',
+ 'S', 'E', 'H',
+ 'S', 'E', 'P',
+ 'S', 'E', 'T',
+ 'S', 'E', 'X',
+ 'S', 'H', '2',
+ 'S', 'H', 'A',
+ 'S', 'H', 'E',
+ 'S', 'H', 'I',
+ 'S', 'H', 'O',
+ 'S', 'H', 'U',
+ 'S', 'H', 'Y',
+ 'S', 'I', 'E',
+ 'S', 'I', 'G',
+ 'S', 'I', 'I',
+ 'S', 'I', 'N',
+ 'S', 'I', 'P',
+ 'S', 'I', 'T',
+ 'S', 'I', 'X',
+ 'S', 'J', 'E',
+ 'S', 'K', 'W',
+ 'S', 'N', 'A',
+ 'S', 'O', 'A',
+ 'S', 'O', 'F',
+ 'S', 'O', 'N',
+ 'S', 'O', 'O',
+ 'S', 'O', 'P',
+ 'S', 'O', 'T',
+ 'S', 'O', 'U',
+ 'S', 'O', 'W',
+ 'S', 'O', 'X',
+ 'S', 'S', 'A',
+ 'S', 'S', 'E',
+ 'S', 'S', 'I',
+ 'S', 'S', 'O',
+ 'S', 'S', 'U',
+ 'S', 'S', 'Y',
+ 'S', 'T', '2',
+ 'S', 'U', 'A',
+ 'S', 'U', 'D',
+ 'S', 'U', 'M',
+ 'S', 'U', 'N',
+ 'S', 'U', 'O',
+ 'S', 'U', 'P',
+ 'S', 'U', 'R',
+ 'S', 'U', 'T',
+ 'S', 'U', 'X',
+ 'S', 'W', 'A',
+ 'S', 'W', 'E',
+ 'S', 'W', 'G',
+ 'S', 'W', 'I',
+ 'S', 'W', 'O',
+ 'S', 'W', 'Z',
+ 'S', 'Y', 'A',
+ 'S', 'Y', 'P',
+ 'S', 'Y', 'R',
+ 'S', 'Y', 'T',
+ 'S', 'Y', 'X',
+ 'S', 'Z', 'A',
+ 'S', 'Z', 'E',
+ 'S', 'Z', 'I',
+ 'S', 'Z', 'O',
+ 'S', 'Z', 'U',
+ 'S', 'Z', 'Z',
+ 'T', 'A', '2',
+ 'T', 'A', 'A',
+ 'T', 'A', 'B',
+ 'T', 'A', 'G',
+ 'T', 'A', 'H',
+ 'T', 'A', 'I',
+ 'T', 'A', 'K',
+ 'T', 'A', 'M',
+ 'T', 'A', 'N',
+ 'T', 'A', 'O',
+ 'T', 'A', 'P',
+ 'T', 'A', 'R',
+ 'T', 'A', 'T',
+ 'T', 'A', 'U',
+ 'T', 'A', 'V',
+ 'T', 'A', 'W',
+ 'T', 'A', 'X',
+ 'T', 'E', 'E',
+ 'T', 'E', 'H',
+ 'T', 'E', 'N',
+ 'T', 'E', 'P',
+ 'T', 'E', 'T',
+ 'T', 'E', 'X',
+ 'T', 'H', 'A',
+ 'T', 'H', 'E',
+ 'T', 'H', 'I',
+ 'T', 'H', 'O',
+ 'T', 'H', 'U',
+ 'T', 'H', 'Z',
+ 'T', 'I', 'E',
+ 'T', 'I', 'I',
+ 'T', 'I', 'L',
+ 'T', 'I', 'P',
+ 'T', 'I', 'R',
+ 'T', 'I', 'T',
+ 'T', 'I', 'X',
+ 'T', 'J', 'E',
+ 'T', 'L', 'A',
+ 'T', 'L', 'E',
+ 'T', 'L', 'I',
+ 'T', 'L', 'O',
+ 'T', 'L', 'U',
+ 'T', 'L', 'V',
+ 'T', 'O', 'A',
+ 'T', 'O', 'N',
+ 'T', 'O', 'O',
+ 'T', 'O', 'P',
+ 'T', 'O', 'T',
+ 'T', 'O', 'X',
+ 'T', 'R', 'I',
+ 'T', 'S', 'A',
+ 'T', 'S', 'E',
+ 'T', 'S', 'I',
+ 'T', 'S', 'O',
+ 'T', 'S', 'U',
+ 'T', 'S', 'V',
+ 'T', 'T', '2',
+ 'T', 'T', 'A',
+ 'T', 'T', 'E',
+ 'T', 'T', 'H',
+ 'T', 'T', 'I',
+ 'T', 'T', 'O',
+ 'T', 'T', 'U',
+ 'T', 'U', 'K',
+ 'T', 'U', 'M',
+ 'T', 'U', 'O',
+ 'T', 'U', 'P',
+ 'T', 'U', 'R',
+ 'T', 'U', 'T',
+ 'T', 'U', 'X',
+ 'T', 'W', 'A',
+ 'T', 'W', 'E',
+ 'T', 'W', 'I',
+ 'T', 'W', 'O',
+ 'T', 'Y', 'A',
+ 'T', 'Y', 'E',
+ 'T', 'Y', 'I',
+ 'T', 'Y', 'O',
+ 'T', 'Y', 'R',
+ 'T', 'Z', 'A',
+ 'T', 'Z', 'E',
+ 'T', 'Z', 'I',
+ 'T', 'Z', 'O',
+ 'T', 'Z', 'U',
+ 'U', '-', 'A',
+ 'U', '-', 'U',
+ 'U', 'E', 'E',
+ 'U', 'E', 'Y',
+ 'U', 'K', 'U',
+ 'U', 'L', 'U',
+ 'U', 'N', 'A',
+ 'U', 'N', 'N',
+ 'U', 'O', 'N',
+ 'U', 'O', 'P',
+ 'U', 'O', 'X',
+ 'U', 'R', '2',
+ 'U', 'R', '4',
+ 'U', 'R', 'A',
+ 'U', 'R', 'I',
+ 'U', 'R', 'N',
+ 'U', 'R', 'U',
+ 'U', 'S', 'E',
+ 'U', 'S', 'H',
+ 'U', 'U', 'U',
+ 'U', 'Z', '3',
+ 'U', 'Z', 'U',
+ 'V', 'A', 'A',
+ 'V', 'A', 'I',
+ 'V', 'A', 'P',
+ 'V', 'A', 'T',
+ 'V', 'A', 'V',
+ 'V', 'A', 'X',
+ 'V', 'E', 'E',
+ 'V', 'E', 'H',
+ 'V', 'E', 'P',
+ 'V', 'E', 'W',
+ 'V', 'E', 'X',
+ 'V', 'I', 'E',
+ 'V', 'I', 'N',
+ 'V', 'I', 'P',
+ 'V', 'I', 'T',
+ 'V', 'I', 'X',
+ 'V', 'O', 'O',
+ 'V', 'O', 'P',
+ 'V', 'O', 'T',
+ 'V', 'O', 'U',
+ 'V', 'O', 'W',
+ 'V', 'O', 'X',
+ 'V', 'U', 'P',
+ 'V', 'U', 'R',
+ 'V', 'U', 'T',
+ 'V', 'U', 'X',
+ 'V', 'W', 'A',
+ 'V', 'Y', 'P',
+ 'V', 'Y', 'R',
+ 'V', 'Y', 'T',
+ 'V', 'Y', 'X',
+ 'W', 'A', 'A',
+ 'W', 'A', 'E',
+ 'W', 'A', 'N',
+ 'W', 'A', 'P',
+ 'W', 'A', 'T',
+ 'W', 'A', 'U',
+ 'W', 'A', 'W',
+ 'W', 'A', 'X',
+ 'W', 'E', 'E',
+ 'W', 'E', 'N',
+ 'W', 'E', 'O',
+ 'W', 'E', 'P',
+ 'W', 'E', 'X',
+ 'W', 'I', 'I',
+ 'W', 'I', 'N',
+ 'W', 'O', 'A',
+ 'W', 'O', 'E',
+ 'W', 'O', 'N',
+ 'W', 'O', 'O',
+ 'W', 'O', 'P',
+ 'W', 'O', 'X',
+ 'W', 'U', 'N',
+ 'W', 'U', 'O',
+ 'X', 'A', 'A',
+ 'X', 'A', 'N',
+ 'X', 'E', 'E',
+ 'X', 'E', 'H',
+ 'X', 'I', 'E',
+ 'X', 'I', 'P',
+ 'X', 'I', 'T',
+ 'X', 'I', 'X',
+ 'X', 'O', 'A',
+ 'X', 'O', 'P',
+ 'X', 'O', 'R',
+ 'X', 'O', 'T',
+ 'X', 'O', 'X',
+ 'X', 'U', 'O',
+ 'X', 'V', 'A',
+ 'X', 'W', 'A',
+ 'X', 'W', 'E',
+ 'X', 'W', 'I',
+ 'X', 'Y', 'A',
+ 'X', 'Y', 'E',
+ 'X', 'Y', 'I',
+ 'X', 'Y', 'O',
+ 'X', 'Y', 'P',
+ 'X', 'Y', 'R',
+ 'X', 'Y', 'T',
+ 'X', 'Y', 'U',
+ 'X', 'Y', 'X',
+ 'Y', 'A', 'A',
+ 'Y', 'A', 'B',
+ 'Y', 'A', 'D',
+ 'Y', 'A', 'E',
+ 'Y', 'A', 'F',
+ 'Y', 'A', 'G',
+ 'Y', 'A', 'H',
+ 'Y', 'A', 'J',
+ 'Y', 'A', 'K',
+ 'Y', 'A', 'L',
+ 'Y', 'A', 'M',
+ 'Y', 'A', 'N',
+ 'Y', 'A', 'P',
+ 'Y', 'A', 'Q',
+ 'Y', 'A', 'R',
+ 'Y', 'A', 'S',
+ 'Y', 'A', 'T',
+ 'Y', 'A', 'V',
+ 'Y', 'A', 'W',
+ 'Y', 'A', 'Y',
+ 'Y', 'A', 'Z',
+ 'Y', 'E', 'A',
+ 'Y', 'E', 'E',
+ 'Y', 'E', 'H',
+ 'Y', 'E', 'N',
+ 'Y', 'E', 'O',
+ 'Y', 'E', 'R',
+ 'Y', 'E', 'W',
+ 'Y', 'E', 'Y',
+ 'Y', 'I', 'E',
+ 'Y', 'I', 'G',
+ 'Y', 'I', 'I',
+ 'Y', 'I', 'N',
+ 'Y', 'I', 'P',
+ 'Y', 'I', 'T',
+ 'Y', 'I', 'X',
+ 'Y', 'O', 'A',
+ 'Y', 'O', 'D',
+ 'Y', 'O', 'O',
+ 'Y', 'O', 'P',
+ 'Y', 'O', 'T',
+ 'Y', 'O', 'X',
+ 'Y', 'U', 'O',
+ 'Y', 'U', 'P',
+ 'Y', 'U', 'R',
+ 'Y', 'U', 'S',
+ 'Y', 'U', 'T',
+ 'Y', 'U', 'X',
+ 'Y', 'W', 'A',
+ 'Y', 'W', 'E',
+ 'Y', 'W', 'I',
+ 'Y', 'W', 'O',
+ 'Y', 'Y', 'A',
+ 'Y', 'Y', 'P',
+ 'Y', 'Y', 'R',
+ 'Y', 'Y', 'T',
+ 'Y', 'Y', 'X',
+ 'Z', 'A', 'A',
+ 'Z', 'A', 'G',
+ 'Z', 'A', 'H',
+ 'Z', 'A', 'I',
+ 'Z', 'A', 'L',
+ 'Z', 'A', 'P',
+ 'Z', 'A', 'T',
+ 'Z', 'A', 'X',
+ 'Z', 'E', '2',
+ 'Z', 'E', 'E',
+ 'Z', 'E', 'N',
+ 'Z', 'E', 'P',
+ 'Z', 'E', 'X',
+ 'Z', 'H', 'A',
+ 'Z', 'H', 'E',
+ 'Z', 'H', 'I',
+ 'Z', 'H', 'O',
+ 'Z', 'H', 'U',
+ 'Z', 'H', 'Y',
+ 'Z', 'I', '3',
+ 'Z', 'I', 'B',
+ 'Z', 'I', 'E',
+ 'Z', 'I', 'G',
+ 'Z', 'I', 'P',
+ 'Z', 'I', 'T',
+ 'Z', 'I', 'X',
+ 'Z', 'J', 'E',
+ 'Z', 'L', 'A',
+ 'Z', 'O', 'A',
+ 'Z', 'O', 'O',
+ 'Z', 'O', 'P',
+ 'Z', 'O', 'T',
+ 'Z', 'O', 'X',
+ 'Z', 'R', 'A',
+ 'Z', 'U', '5',
+ 'Z', 'U', 'M',
+ 'Z', 'U', 'O',
+ 'Z', 'U', 'P',
+ 'Z', 'U', 'R',
+ 'Z', 'U', 'T',
+ 'Z', 'U', 'X',
+ 'Z', 'W', 'A',
+ 'Z', 'Y', 'P',
+ 'Z', 'Y', 'R',
+ 'Z', 'Y', 'T',
+ 'Z', 'Y', 'X',
+ 'Z', 'Z', 'A',
+ 'Z', 'Z', 'E',
+ 'Z', 'Z', 'I',
+ 'Z', 'Z', 'O',
+ 'Z', 'Z', 'U',
+ 'Z', 'Z', 'Y',
+ 'A', 'A', 'R', 'U',
+ 'A', 'D', 'A', 'K',
+ 'A', 'D', 'E', 'G',
+ 'A', 'E', 'S', 'C',
+ 'A', 'H', 'A', 'D',
+ 'A', 'H', 'S', 'A',
+ 'A', 'I', 'L', 'M',
+ 'A', 'I', 'N', 'N',
+ 'A', 'I', 'N', 'U',
+ 'A', 'L', 'A', 'N',
+ 'A', 'L', 'E', 'F',
+ 'A', 'L', 'F', 'A',
+ 'A', 'L', 'L', 'I',
+ 'A', 'L', 'L', 'O',
+ 'A', 'L', 'P', 'A',
+ 'A', 'L', 'T', 'A',
+ 'A', 'M', 'A', 'R',
+ 'A', 'M', 'B', 'A',
+ 'A', 'M', 'P', 'S',
+ 'A', 'N', 'H', 'U',
+ 'A', 'N', 'K', 'H',
+ 'A', 'P', 'I', 'N',
+ 'A', 'P', 'L', 'I',
+ 'A', 'R', 'A', 'D',
+ 'A', 'R', 'C', 'H',
+ 'A', 'R', 'G', 'I',
+ 'A', 'R', 'M', 'Y',
+ 'A', 'S', 'A', 'T',
+ 'A', 'S', 'H', '2',
+ 'A', 'S', 'H', '9',
+ 'A', 'T', 'O', 'M',
+ 'A', 'U', 'N', 'N',
+ 'A', 'Y', 'A', 'H',
+ 'A', 'Y', 'E', 'R',
+ 'A', 'Y', 'I', 'N',
+ 'B', '0', '0', '1',
+ 'B', '0', '0', '2',
+ 'B', '0', '0', '3',
+ 'B', '0', '0', '4',
+ 'B', '0', '0', '5',
+ 'B', '0', '0', '6',
+ 'B', '0', '0', '7',
+ 'B', '0', '0', '8',
+ 'B', '0', '0', '9',
+ 'B', '0', '1', '0',
+ 'B', '0', '1', '1',
+ 'B', '0', '1', '2',
+ 'B', '0', '1', '3',
+ 'B', '0', '1', '4',
+ 'B', '0', '1', '5',
+ 'B', '0', '1', '6',
+ 'B', '0', '1', '7',
+ 'B', '0', '1', '8',
+ 'B', '0', '1', '9',
+ 'B', '0', '2', '0',
+ 'B', '0', '2', '1',
+ 'B', '0', '2', '2',
+ 'B', '0', '2', '3',
+ 'B', '0', '2', '4',
+ 'B', '0', '2', '5',
+ 'B', '0', '2', '6',
+ 'B', '0', '2', '7',
+ 'B', '0', '2', '8',
+ 'B', '0', '2', '9',
+ 'B', '0', '3', '0',
+ 'B', '0', '3', '1',
+ 'B', '0', '3', '2',
+ 'B', '0', '3', '3',
+ 'B', '0', '3', '4',
+ 'B', '0', '3', '6',
+ 'B', '0', '3', '7',
+ 'B', '0', '3', '8',
+ 'B', '0', '3', '9',
+ 'B', '0', '4', '0',
+ 'B', '0', '4', '1',
+ 'B', '0', '4', '2',
+ 'B', '0', '4', '3',
+ 'B', '0', '4', '4',
+ 'B', '0', '4', '5',
+ 'B', '0', '4', '6',
+ 'B', '0', '4', '7',
+ 'B', '0', '4', '8',
+ 'B', '0', '4', '9',
+ 'B', '0', '5', '0',
+ 'B', '0', '5', '1',
+ 'B', '0', '5', '2',
+ 'B', '0', '5', '3',
+ 'B', '0', '5', '4',
+ 'B', '0', '5', '5',
+ 'B', '0', '5', '6',
+ 'B', '0', '5', '7',
+ 'B', '0', '5', '8',
+ 'B', '0', '5', '9',
+ 'B', '0', '6', '0',
+ 'B', '0', '6', '1',
+ 'B', '0', '6', '2',
+ 'B', '0', '6', '3',
+ 'B', '0', '6', '4',
+ 'B', '0', '6', '5',
+ 'B', '0', '6', '6',
+ 'B', '0', '6', '7',
+ 'B', '0', '6', '8',
+ 'B', '0', '6', '9',
+ 'B', '0', '7', '0',
+ 'B', '0', '7', '1',
+ 'B', '0', '7', '2',
+ 'B', '0', '7', '3',
+ 'B', '0', '7', '4',
+ 'B', '0', '7', '5',
+ 'B', '0', '7', '6',
+ 'B', '0', '7', '7',
+ 'B', '0', '7', '8',
+ 'B', '0', '7', '9',
+ 'B', '0', '8', '0',
+ 'B', '0', '8', '1',
+ 'B', '0', '8', '2',
+ 'B', '0', '8', '3',
+ 'B', '0', '8', '5',
+ 'B', '0', '8', '6',
+ 'B', '0', '8', '7',
+ 'B', '0', '8', '9',
+ 'B', '0', '9', '0',
+ 'B', '0', '9', '1',
+ 'B', '1', '0', '0',
+ 'B', '1', '0', '2',
+ 'B', '1', '0', '4',
+ 'B', '1', '0', '5',
+ 'B', '1', '2', '0',
+ 'B', '1', '2', '1',
+ 'B', '1', '2', '2',
+ 'B', '1', '2', '3',
+ 'B', '1', '2', '5',
+ 'B', '1', '2', '7',
+ 'B', '1', '2', '8',
+ 'B', '1', '3', '0',
+ 'B', '1', '3', '1',
+ 'B', '1', '3', '2',
+ 'B', '1', '3', '3',
+ 'B', '1', '3', '5',
+ 'B', '1', '4', '0',
+ 'B', '1', '4', '1',
+ 'B', '1', '4', '2',
+ 'B', '1', '4', '5',
+ 'B', '1', '4', '6',
+ 'B', '1', '5', '0',
+ 'B', '1', '5', '1',
+ 'B', '1', '5', '2',
+ 'B', '1', '5', '3',
+ 'B', '1', '5', '4',
+ 'B', '1', '5', '5',
+ 'B', '1', '5', '6',
+ 'B', '1', '5', '7',
+ 'B', '1', '5', '8',
+ 'B', '1', '5', '9',
+ 'B', '1', '6', '0',
+ 'B', '1', '6', '1',
+ 'B', '1', '6', '2',
+ 'B', '1', '6', '3',
+ 'B', '1', '6', '4',
+ 'B', '1', '6', '5',
+ 'B', '1', '6', '6',
+ 'B', '1', '6', '7',
+ 'B', '1', '6', '8',
+ 'B', '1', '6', '9',
+ 'B', '1', '7', '0',
+ 'B', '1', '7', '1',
+ 'B', '1', '7', '2',
+ 'B', '1', '7', '3',
+ 'B', '1', '7', '4',
+ 'B', '1', '7', '6',
+ 'B', '1', '7', '7',
+ 'B', '1', '7', '8',
+ 'B', '1', '7', '9',
+ 'B', '1', '8', '0',
+ 'B', '1', '8', '1',
+ 'B', '1', '8', '2',
+ 'B', '1', '8', '3',
+ 'B', '1', '8', '4',
+ 'B', '1', '8', '5',
+ 'B', '1', '8', '9',
+ 'B', '1', '9', '0',
+ 'B', '1', '9', '1',
+ 'B', '2', '0', '0',
+ 'B', '2', '0', '1',
+ 'B', '2', '0', '2',
+ 'B', '2', '0', '3',
+ 'B', '2', '0', '4',
+ 'B', '2', '0', '5',
+ 'B', '2', '0', '6',
+ 'B', '2', '0', '7',
+ 'B', '2', '0', '8',
+ 'B', '2', '0', '9',
+ 'B', '2', '1', '0',
+ 'B', '2', '1', '1',
+ 'B', '2', '1', '2',
+ 'B', '2', '1', '3',
+ 'B', '2', '1', '4',
+ 'B', '2', '1', '5',
+ 'B', '2', '1', '6',
+ 'B', '2', '1', '7',
+ 'B', '2', '1', '8',
+ 'B', '2', '1', '9',
+ 'B', '2', '2', '0',
+ 'B', '2', '2', '1',
+ 'B', '2', '2', '2',
+ 'B', '2', '2', '5',
+ 'B', '2', '2', '6',
+ 'B', '2', '2', '7',
+ 'B', '2', '2', '8',
+ 'B', '2', '2', '9',
+ 'B', '2', '3', '0',
+ 'B', '2', '3', '1',
+ 'B', '2', '3', '2',
+ 'B', '2', '3', '3',
+ 'B', '2', '3', '4',
+ 'B', '2', '3', '6',
+ 'B', '2', '4', '0',
+ 'B', '2', '4', '1',
+ 'B', '2', '4', '2',
+ 'B', '2', '4', '3',
+ 'B', '2', '4', '5',
+ 'B', '2', '4', '6',
+ 'B', '2', '4', '7',
+ 'B', '2', '4', '8',
+ 'B', '2', '4', '9',
+ 'B', '2', '5', '0',
+ 'B', '2', '5', '1',
+ 'B', '2', '5', '2',
+ 'B', '2', '5', '3',
+ 'B', '2', '5', '4',
+ 'B', '2', '5', '5',
+ 'B', '2', '5', '6',
+ 'B', '2', '5', '7',
+ 'B', '2', '5', '8',
+ 'B', '2', '5', '9',
+ 'B', '3', '0', '5',
+ 'B', 'A', 'C', 'K',
+ 'B', 'A', 'G', '3',
+ 'B', 'A', 'G', 'A',
+ 'B', 'A', 'H', 'T',
+ 'B', 'A', 'N', '2',
+ 'B', 'A', 'N', 'D',
+ 'B', 'A', 'N', 'G',
+ 'B', 'A', 'N', 'K',
+ 'B', 'A', 'R', 'B',
+ 'B', 'A', 'R', 'S',
+ 'B', 'A', 'S', 'E',
+ 'B', 'B', 'A', 'P',
+ 'B', 'B', 'A', 'T',
+ 'B', 'B', 'A', 'X',
+ 'B', 'B', 'E', 'P',
+ 'B', 'B', 'E', 'X',
+ 'B', 'B', 'I', 'E',
+ 'B', 'B', 'I', 'P',
+ 'B', 'B', 'I', 'T',
+ 'B', 'B', 'I', 'X',
+ 'B', 'B', 'O', 'P',
+ 'B', 'B', 'O', 'T',
+ 'B', 'B', 'O', 'X',
+ 'B', 'B', 'U', 'O',
+ 'B', 'B', 'U', 'P',
+ 'B', 'B', 'U', 'R',
+ 'B', 'B', 'U', 'T',
+ 'B', 'B', 'U', 'X',
+ 'B', 'B', 'Y', 'P',
+ 'B', 'B', 'Y', 'T',
+ 'B', 'B', 'Y', 'X',
+ 'B', 'C', 'A', 'D',
+ 'B', 'E', 'A', 'M',
+ 'B', 'E', 'A', 'N',
+ 'B', 'E', 'A', 'T',
+ 'B', 'E', 'E', 'H',
+ 'B', 'E', 'L', 'L',
+ 'B', 'E', 'L', 'T',
+ 'B', 'E', 'N', 'D',
+ 'B', 'E', 'T', 'A',
+ 'B', 'E', 'T', 'H',
+ 'B', 'H', 'E', 'E',
+ 'B', 'H', 'O', 'O',
+ 'B', 'I', 'E', 'P',
+ 'B', 'I', 'E', 'T',
+ 'B', 'I', 'E', 'X',
+ 'B', 'I', 'R', 'D',
+ 'B', 'I', 'R', 'U',
+ 'B', 'K', 'A', '-',
+ 'B', 'L', 'U', 'E',
+ 'B', 'O', 'A', 'R',
+ 'B', 'O', 'A', 'T',
+ 'B', 'O', 'D', 'Y',
+ 'B', 'O', 'L', 'D',
+ 'B', 'O', 'L', 'T',
+ 'B', 'O', 'N', 'E',
+ 'B', 'R', 'D', 'A',
+ 'B', 'U', 'K', 'Y',
+ 'B', 'U', 'L', 'L',
+ 'B', 'U', 'O', 'N',
+ 'B', 'U', 'O', 'P',
+ 'B', 'U', 'O', 'X',
+ 'B', 'U', 'R', '2',
+ 'B', 'U', 'R', 'U',
+ 'B', 'U', 'R', 'X',
+ 'B', 'W', 'E', 'E',
+ 'B', 'Y', 'R', 'X',
+ 'B', 'Z', 'H', 'I',
+ 'C', '-', '1', '8',
+ 'C', '-', '3', '9',
+ 'C', 'A', 'A', 'I',
+ 'C', 'A', 'D', 'A',
+ 'C', 'A', 'L', 'C',
+ 'C', 'A', 'L', 'L',
+ 'C', 'A', 'N', 'G',
+ 'C', 'A', 'P', 'O',
+ 'C', 'A', 'R', 'E',
+ 'C', 'A', 'R', 'T',
+ 'C', 'A', 'V', 'E',
+ 'C', 'A', 'Y', 'N',
+ 'C', 'C', 'A', 'A',
+ 'C', 'C', 'E', 'E',
+ 'C', 'C', 'H', 'A',
+ 'C', 'C', 'H', 'E',
+ 'C', 'C', 'H', 'I',
+ 'C', 'C', 'H', 'O',
+ 'C', 'C', 'H', 'U',
+ 'C', 'E', 'D', 'I',
+ 'C', 'E', 'N', 'T',
+ 'C', 'H', 'A', 'A',
+ 'C', 'H', 'A', 'D',
+ 'C', 'H', 'A', 'M',
+ 'C', 'H', 'A', 'N',
+ 'C', 'H', 'A', 'P',
+ 'C', 'H', 'A', 'R',
+ 'C', 'H', 'A', 'T',
+ 'C', 'H', 'A', 'X',
+ 'C', 'H', 'E', 'E',
+ 'C', 'H', 'E', 'H',
+ 'C', 'H', 'E', 'N',
+ 'C', 'H', 'E', 'P',
+ 'C', 'H', 'E', 'T',
+ 'C', 'H', 'E', 'X',
+ 'C', 'H', 'H', 'A',
+ 'C', 'H', 'I', 'N',
+ 'C', 'H', 'O', 'A',
+ 'C', 'H', 'O', 'E',
+ 'C', 'H', 'O', 'P',
+ 'C', 'H', 'O', 'T',
+ 'C', 'H', 'O', 'X',
+ 'C', 'H', 'U', 'O',
+ 'C', 'H', 'U', 'P',
+ 'C', 'H', 'U', 'R',
+ 'C', 'H', 'U', 'X',
+ 'C', 'H', 'W', 'A',
+ 'C', 'H', 'Y', 'P',
+ 'C', 'H', 'Y', 'R',
+ 'C', 'H', 'Y', 'T',
+ 'C', 'H', 'Y', 'X',
+ 'C', 'I', 'E', 'P',
+ 'C', 'I', 'E', 'T',
+ 'C', 'I', 'E', 'X',
+ 'C', 'I', 'T', 'Y',
+ 'C', 'L', 'A', 'N',
+ 'C', 'L', 'A', 'W',
+ 'C', 'L', 'E', 'F',
+ 'C', 'L', 'U', 'B',
+ 'C', 'O', 'D', 'A',
+ 'C', 'O', 'L', 'L',
+ 'C', 'O', 'M', 'B',
+ 'C', 'O', 'P', 'Y',
+ 'C', 'R', 'O', 'P',
+ 'C', 'U', 'B', 'E',
+ 'C', 'U', 'O', 'P',
+ 'C', 'U', 'O', 'X',
+ 'C', 'U', 'R', 'L',
+ 'C', 'U', 'R', 'X',
+ 'C', 'W', 'A', 'A',
+ 'C', 'W', 'I', 'I',
+ 'C', 'W', 'O', 'O',
+ 'C', 'Y', 'R', 'X',
+ 'D', 'A', 'E', 'G',
+ 'D', 'A', 'G', 'S',
+ 'D', 'A', 'I', 'R',
+ 'D', 'A', 'M', 'P',
+ 'D', 'A', 'N', 'G',
+ 'D', 'A', 'R', 'K',
+ 'D', 'A', 'R', 'T',
+ 'D', 'A', 'S', 'H',
+ 'D', 'A', 'T', 'A',
+ 'D', 'A', 'T', 'E',
+ 'D', 'D', 'A', 'A',
+ 'D', 'D', 'A', 'L',
+ 'D', 'D', 'A', 'P',
+ 'D', 'D', 'A', 'T',
+ 'D', 'D', 'A', 'X',
+ 'D', 'D', 'D', 'A',
+ 'D', 'D', 'E', 'E',
+ 'D', 'D', 'E', 'P',
+ 'D', 'D', 'E', 'X',
+ 'D', 'D', 'H', 'A',
+ 'D', 'D', 'H', 'O',
+ 'D', 'D', 'I', 'E',
+ 'D', 'D', 'I', 'P',
+ 'D', 'D', 'I', 'T',
+ 'D', 'D', 'I', 'X',
+ 'D', 'D', 'O', 'A',
+ 'D', 'D', 'O', 'P',
+ 'D', 'D', 'O', 'T',
+ 'D', 'D', 'O', 'X',
+ 'D', 'D', 'U', 'O',
+ 'D', 'D', 'U', 'P',
+ 'D', 'D', 'U', 'R',
+ 'D', 'D', 'U', 'T',
+ 'D', 'D', 'U', 'X',
+ 'D', 'D', 'W', 'A',
+ 'D', 'E', 'A', 'D',
+ 'D', 'E', 'E', 'L',
+ 'D', 'E', 'E', 'R',
+ 'D', 'E', 'H', 'I',
+ 'D', 'E', 'K', 'A',
+ 'D', 'E', 'L', 'T',
+ 'D', 'E', 'N', 'G',
+ 'D', 'E', 'S', 'I',
+ 'D', 'E', 'Z', 'H',
+ 'D', 'H', 'A', 'L',
+ 'D', 'H', 'E', 'E',
+ 'D', 'H', 'H', 'A',
+ 'D', 'H', 'H', 'E',
+ 'D', 'H', 'H', 'I',
+ 'D', 'H', 'H', 'O',
+ 'D', 'H', 'H', 'U',
+ 'D', 'H', 'O', 'O',
+ 'D', 'I', 'E', 'P',
+ 'D', 'I', 'E', 'X',
+ 'D', 'I', 'G', 'A',
+ 'D', 'I', 'M', '2',
+ 'D', 'I', 'N', 'G',
+ 'D', 'I', 'S', 'C',
+ 'D', 'I', 'S', 'H',
+ 'D', 'K', 'A', 'R',
+ 'D', 'L', 'E', 'E',
+ 'D', 'O', '-', 'O',
+ 'D', 'O', 'E', 'S',
+ 'D', 'O', 'I', 'T',
+ 'D', 'O', 'N', 'G',
+ 'D', 'O', 'O', 'R',
+ 'D', 'O', 'R', 'U',
+ 'D', 'O', 'T', 'S',
+ 'D', 'O', 'V', 'E',
+ 'D', 'O', 'W', 'N',
+ 'D', 'R', 'I', 'L',
+ 'D', 'R', 'U', 'M',
+ 'D', 'U', 'B', '2',
+ 'D', 'U', 'N', '3',
+ 'D', 'U', 'N', '4',
+ 'D', 'U', 'N', 'G',
+ 'D', 'U', 'O', 'X',
+ 'D', 'U', 'R', '2',
+ 'D', 'U', 'R', 'X',
+ 'D', 'Y', 'E', 'H',
+ 'D', 'Z', 'E', 'E',
+ 'D', 'Z', 'H', 'A',
+ 'D', 'Z', 'H', 'E',
+ 'D', 'Z', 'J', 'E',
+ 'D', 'Z', 'W', 'E',
+ 'D', 'Z', 'Z', 'E',
+ 'E', 'A', 'S', 'E',
+ 'E', 'A', 'S', 'T',
+ 'E', 'D', 'I', 'N',
+ 'E', 'G', 'I', 'R',
+ 'E', 'N', 'O', 'S',
+ 'E', 'O', '-', 'O',
+ 'E', 'O', '-', 'U',
+ 'E', 'R', 'E', 'N',
+ 'E', 'S', 'H', '2',
+ 'E', 'U', '-', 'U',
+ 'E', 'U', 'R', 'O',
+ 'E', 'V', 'E', 'N',
+ 'E', 'Z', 'E', 'N',
+ 'F', 'A', 'A', 'I',
+ 'F', 'A', 'C', 'E',
+ 'F', 'A', 'N', 'G',
+ 'F', 'E', 'E', 'D',
+ 'F', 'E', 'H', 'U',
+ 'F', 'E', 'N', 'G',
+ 'F', 'E', 'O', 'H',
+ 'F', 'I', 'L', 'E',
+ 'F', 'I', 'L', 'L',
+ 'F', 'I', 'R', 'E',
+ 'F', 'I', 'S', 'H',
+ 'F', 'I', 'T', 'A',
+ 'F', 'I', 'V', 'E',
+ 'F', 'L', 'A', 'G',
+ 'F', 'L', 'A', 'T',
+ 'F', 'L', 'I', 'P',
+ 'F', 'O', 'O', 'T',
+ 'F', 'O', 'R', 'K',
+ 'F', 'O', 'R', 'M',
+ 'F', 'O', 'U', 'R',
+ 'F', 'R', 'E', 'E',
+ 'F', 'R', 'O', 'G',
+ 'F', 'R', 'O', 'M',
+ 'F', 'U', 'L', 'L',
+ 'F', 'U', 'R', 'X',
+ 'F', 'U', 'S', 'A',
+ 'F', 'U', 'S', 'E',
+ 'F', 'W', 'A', 'A',
+ 'F', 'W', 'E', 'E',
+ 'G', 'A', 'B', 'A',
+ 'G', 'A', 'L', 'I',
+ 'G', 'A', 'M', 'L',
+ 'G', 'A', 'N', '2',
+ 'G', 'A', 'R', '3',
+ 'G', 'A', 'T', 'E',
+ 'G', 'B', 'E', 'E',
+ 'G', 'B', 'E', 'N',
+ 'G', 'B', 'O', 'N',
+ 'G', 'B', 'O', 'O',
+ 'G', 'C', 'A', 'N',
+ 'G', 'C', 'I', 'G',
+ 'G', 'D', 'A', 'N',
+ 'G', 'E', 'A', 'R',
+ 'G', 'E', 'B', 'A',
+ 'G', 'E', 'B', 'O',
+ 'G', 'E', 'D', 'E',
+ 'G', 'E', 'T', 'A',
+ 'G', 'G', 'A', 'A',
+ 'G', 'G', 'A', 'P',
+ 'G', 'G', 'A', 'T',
+ 'G', 'G', 'A', 'X',
+ 'G', 'G', 'E', 'E',
+ 'G', 'G', 'E', 'P',
+ 'G', 'G', 'E', 'T',
+ 'G', 'G', 'E', 'X',
+ 'G', 'G', 'I', 'E',
+ 'G', 'G', 'I', 'T',
+ 'G', 'G', 'I', 'X',
+ 'G', 'G', 'O', 'P',
+ 'G', 'G', 'O', 'T',
+ 'G', 'G', 'O', 'X',
+ 'G', 'G', 'U', 'O',
+ 'G', 'G', 'U', 'P',
+ 'G', 'G', 'U', 'R',
+ 'G', 'G', 'U', 'T',
+ 'G', 'G', 'U', 'X',
+ 'G', 'G', 'W', 'A',
+ 'G', 'G', 'W', 'E',
+ 'G', 'G', 'W', 'I',
+ 'G', 'H', 'A', 'D',
+ 'G', 'H', 'A', 'N',
+ 'G', 'H', 'E', 'E',
+ 'G', 'H', 'H', 'A',
+ 'G', 'H', 'W', 'A',
+ 'G', 'I', 'B', 'A',
+ 'G', 'I', 'E', 'P',
+ 'G', 'I', 'E', 'T',
+ 'G', 'I', 'E', 'X',
+ 'G', 'I', 'G', 'A',
+ 'G', 'I', 'R', '2',
+ 'G', 'I', 'R', '3',
+ 'G', 'I', 'S', 'H',
+ 'G', 'O', 'A', 'L',
+ 'G', 'O', 'L', 'D',
+ 'G', 'O', 'N', 'G',
+ 'G', 'O', 'R', 'A',
+ 'G', 'O', 'R', 'T',
+ 'G', 'R', 'A', 'M',
+ 'G', 'S', 'U', 'M',
+ 'G', 'T', 'E', 'R',
+ 'G', 'U', 'E', 'H',
+ 'G', 'U', 'N', 'U',
+ 'G', 'U', 'O', 'P',
+ 'G', 'U', 'O', 'T',
+ 'G', 'U', 'O', 'X',
+ 'G', 'U', 'R', '7',
+ 'G', 'U', 'R', 'X',
+ 'G', 'W', 'A', 'A',
+ 'G', 'W', 'E', 'E',
+ 'G', 'Y', 'A', 'A',
+ 'G', 'Y', 'A', 'S',
+ 'G', 'Y', 'E', 'E',
+ 'G', 'Y', 'F', 'U',
+ 'G', 'Y', 'O', 'N',
+ 'H', 'A', 'G', 'L',
+ 'H', 'A', 'I', 'R',
+ 'H', 'A', 'L', 'F',
+ 'H', 'A', 'N', 'D',
+ 'H', 'A', 'R', 'D',
+ 'H', 'A', 'T', 'E',
+ 'H', 'A', 'V', 'E',
+ 'H', 'E', 'A', 'D',
+ 'H', 'E', 'L', 'M',
+ 'H', 'E', 'M', 'P',
+ 'H', 'E', 'N', 'G',
+ 'H', 'E', 'R', 'U',
+ 'H', 'E', 'T', 'A',
+ 'H', 'E', 'T', 'H',
+ 'H', 'H', 'A', 'A',
+ 'H', 'H', 'E', 'E',
+ 'H', 'H', 'W', 'A',
+ 'H', 'I', 'D', 'E',
+ 'H', 'I', 'E', 'X',
+ 'H', 'I', 'G', 'H',
+ 'H', 'I', 'Z', 'B',
+ 'H', 'L', 'A', 'P',
+ 'H', 'L', 'A', 'T',
+ 'H', 'L', 'A', 'X',
+ 'H', 'L', 'E', 'P',
+ 'H', 'L', 'E', 'X',
+ 'H', 'L', 'I', 'E',
+ 'H', 'L', 'I', 'P',
+ 'H', 'L', 'I', 'T',
+ 'H', 'L', 'I', 'X',
+ 'H', 'L', 'O', 'P',
+ 'H', 'L', 'O', 'X',
+ 'H', 'L', 'U', 'O',
+ 'H', 'L', 'U', 'P',
+ 'H', 'L', 'U', 'R',
+ 'H', 'L', 'U', 'T',
+ 'H', 'L', 'U', 'X',
+ 'H', 'L', 'Y', 'P',
+ 'H', 'L', 'Y', 'R',
+ 'H', 'L', 'Y', 'T',
+ 'H', 'L', 'Y', 'X',
+ 'H', 'M', 'A', 'P',
+ 'H', 'M', 'A', 'T',
+ 'H', 'M', 'A', 'X',
+ 'H', 'M', 'I', 'E',
+ 'H', 'M', 'I', 'P',
+ 'H', 'M', 'I', 'T',
+ 'H', 'M', 'I', 'X',
+ 'H', 'M', 'O', 'P',
+ 'H', 'M', 'O', 'T',
+ 'H', 'M', 'O', 'X',
+ 'H', 'M', 'U', 'O',
+ 'H', 'M', 'U', 'P',
+ 'H', 'M', 'U', 'R',
+ 'H', 'M', 'U', 'T',
+ 'H', 'M', 'U', 'X',
+ 'H', 'M', 'Y', 'P',
+ 'H', 'M', 'Y', 'R',
+ 'H', 'M', 'Y', 'X',
+ 'H', 'N', 'A', 'P',
+ 'H', 'N', 'A', 'T',
+ 'H', 'N', 'A', 'X',
+ 'H', 'N', 'E', 'P',
+ 'H', 'N', 'E', 'X',
+ 'H', 'N', 'I', 'E',
+ 'H', 'N', 'I', 'P',
+ 'H', 'N', 'I', 'T',
+ 'H', 'N', 'I', 'X',
+ 'H', 'N', 'O', 'P',
+ 'H', 'N', 'O', 'T',
+ 'H', 'N', 'O', 'X',
+ 'H', 'N', 'U', 'O',
+ 'H', 'N', 'U', 'T',
+ 'H', 'O', 'O', 'K',
+ 'H', 'O', 'O', 'N',
+ 'H', 'O', 'R', 'I',
+ 'H', 'O', 'R', 'N',
+ 'H', 'O', 'T', 'A',
+ 'H', 'O', 'U', 'R',
+ 'H', 'P', 'W', 'G',
+ 'H', 'U', 'B', '2',
+ 'H', 'U', 'L', '2',
+ 'H', 'U', 'N', 'G',
+ 'H', 'U', 'O', 'P',
+ 'H', 'U', 'O', 'T',
+ 'H', 'U', 'O', 'X',
+ 'H', 'W', 'E', 'E',
+ 'H', 'X', 'A', 'P',
+ 'H', 'X', 'A', 'T',
+ 'H', 'X', 'A', 'X',
+ 'H', 'X', 'E', 'P',
+ 'H', 'X', 'E', 'X',
+ 'H', 'X', 'I', 'E',
+ 'H', 'X', 'I', 'P',
+ 'H', 'X', 'I', 'T',
+ 'H', 'X', 'I', 'X',
+ 'H', 'X', 'O', 'P',
+ 'H', 'X', 'O', 'T',
+ 'H', 'X', 'O', 'X',
+ 'H', 'X', 'U', 'O',
+ 'H', 'X', 'W', 'G',
+ 'H', 'Z', 'W', 'G',
+ 'H', 'Z', 'Z', 'P',
+ 'H', 'Z', 'Z', 'Z',
+ 'I', '-', 'E', 'U',
+ 'I', '-', 'Y', 'A',
+ 'I', 'D', 'I', 'M',
+ 'I', 'D', 'L', 'E',
+ 'I', 'F', 'I', 'N',
+ 'I', 'L', 'U', 'T',
+ 'I', 'L', 'U', 'Y',
+ 'I', 'M', 'I', 'N',
+ 'I', 'N', 'C', 'H',
+ 'I', 'N', 'N', 'N',
+ 'I', 'N', 'T', 'I',
+ 'I', 'O', 'T', 'A',
+ 'I', 'S', 'A', 'Z',
+ 'I', 'S', 'O', 'N',
+ 'I', 'T', 'E', 'M',
+ 'I', 'U', 'J', 'A',
+ 'I', 'W', 'A', 'Z',
+ 'I', 'Z', 'H', 'E',
+ 'J', 'A', 'D', 'E',
+ 'J', 'E', 'E', 'M',
+ 'J', 'E', 'R', 'A',
+ 'J', 'H', 'A', 'N',
+ 'J', 'H', 'E', 'H',
+ 'J', 'I', 'E', 'P',
+ 'J', 'I', 'E', 'T',
+ 'J', 'I', 'E', 'X',
+ 'J', 'J', 'E', 'E',
+ 'J', 'J', 'I', 'E',
+ 'J', 'J', 'I', 'P',
+ 'J', 'J', 'I', 'T',
+ 'J', 'J', 'I', 'X',
+ 'J', 'J', 'O', 'P',
+ 'J', 'J', 'O', 'T',
+ 'J', 'J', 'O', 'X',
+ 'J', 'J', 'U', 'O',
+ 'J', 'J', 'U', 'P',
+ 'J', 'J', 'U', 'R',
+ 'J', 'J', 'U', 'T',
+ 'J', 'J', 'U', 'X',
+ 'J', 'J', 'Y', 'P',
+ 'J', 'J', 'Y', 'T',
+ 'J', 'J', 'Y', 'X',
+ 'J', 'O', 'I', 'N',
+ 'J', 'O', 'N', 'A',
+ 'J', 'O', 'N', 'G',
+ 'J', 'U', 'L', 'Y',
+ 'J', 'U', 'N', 'E',
+ 'J', 'U', 'N', 'O',
+ 'J', 'U', 'O', 'P',
+ 'J', 'U', 'O', 'T',
+ 'J', 'U', 'O', 'X',
+ 'J', 'U', 'R', 'X',
+ 'J', 'Y', 'R', 'X',
+ 'K', 'A', 'A', 'F',
+ 'K', 'A', 'A', 'I',
+ 'K', 'A', 'B', 'A',
+ 'K', 'A', 'D', '2',
+ 'K', 'A', 'D', '3',
+ 'K', 'A', 'D', '4',
+ 'K', 'A', 'D', '5',
+ 'K', 'A', 'K', 'O',
+ 'K', 'A', 'M', '2',
+ 'K', 'A', 'M', '4',
+ 'K', 'A', 'N', 'A',
+ 'K', 'A', 'N', 'G',
+ 'K', 'A', 'P', 'A',
+ 'K', 'A', 'P', 'H',
+ 'K', 'A', 'P', 'O',
+ 'K', 'A', 'T', 'O',
+ 'K', 'A', 'U', 'N',
+ 'K', 'C', 'A', 'L',
+ 'K', 'H', 'A', 'A',
+ 'K', 'H', 'A', 'H',
+ 'K', 'H', 'A', 'I',
+ 'K', 'H', 'A', 'N',
+ 'K', 'H', 'A', 'R',
+ 'K', 'H', 'E', 'E',
+ 'K', 'H', 'E', 'I',
+ 'K', 'H', 'H', 'A',
+ 'K', 'H', 'O', 'N',
+ 'K', 'H', 'O', 'T',
+ 'K', 'I', 'C', 'K',
+ 'K', 'I', 'E', 'P',
+ 'K', 'I', 'E', 'X',
+ 'K', 'I', 'N', 'G',
+ 'K', 'I', 'R', 'O',
+ 'K', 'I', 'S', 'H',
+ 'K', 'K', 'E', 'E',
+ 'K', 'O', 'E', 'T',
+ 'K', 'O', 'M', 'I',
+ 'K', 'O', 'T', 'O',
+ 'K', 'P', 'A', 'N',
+ 'K', 'P', 'E', 'E',
+ 'K', 'P', 'E', 'N',
+ 'K', 'P', 'O', 'O',
+ 'K', 'S', 'S', 'A',
+ 'K', 'U', 'N', 'G',
+ 'K', 'U', 'O', 'P',
+ 'K', 'U', 'O', 'X',
+ 'K', 'U', 'R', 'T',
+ 'K', 'U', 'R', 'X',
+ 'K', 'U', 'U', 'H',
+ 'K', 'W', 'A', 'A',
+ 'K', 'W', 'E', 'E',
+ 'K', 'W', 'I', 'I',
+ 'K', 'W', 'O', 'O',
+ 'K', 'X', 'A', 'A',
+ 'K', 'X', 'E', 'E',
+ 'K', 'X', 'W', 'A',
+ 'K', 'X', 'W', 'E',
+ 'K', 'X', 'W', 'I',
+ 'K', 'Y', 'A', 'A',
+ 'K', 'Y', 'E', 'E',
+ 'L', 'A', 'A', 'I',
+ 'L', 'A', 'A', 'N',
+ 'L', 'A', 'C', 'A',
+ 'L', 'A', 'C', 'K',
+ 'L', 'A', 'E', 'V',
+ 'L', 'A', 'G', 'U',
+ 'L', 'A', 'K', 'E',
+ 'L', 'A', 'M', 'D',
+ 'L', 'A', 'M', 'E',
+ 'L', 'A', 'S', 'T',
+ 'L', 'A', 'T', 'E',
+ 'L', 'A', 'Z', 'Y',
+ 'L', 'D', 'A', 'N',
+ 'L', 'E', 'A', 'F',
+ 'L', 'E', 'E', 'K',
+ 'L', 'E', 'F', 'T',
+ 'L', 'E', 'G', 'S',
+ 'L', 'E', 'S', 'S',
+ 'L', 'E', 'Z', 'H',
+ 'L', 'H', 'A', 'A',
+ 'L', 'H', 'A', 'G',
+ 'L', 'H', 'E', 'E',
+ 'L', 'H', 'I', 'I',
+ 'L', 'H', 'O', 'O',
+ 'L', 'I', 'E', 'P',
+ 'L', 'I', 'E', 'T',
+ 'L', 'I', 'E', 'X',
+ 'L', 'I', 'F', 'E',
+ 'L', 'I', 'L', 'Y',
+ 'L', 'I', 'N', 'E',
+ 'L', 'I', 'N', 'G',
+ 'L', 'I', 'N', 'K',
+ 'L', 'I', 'R', 'A',
+ 'L', 'I', 'S', 'H',
+ 'L', 'I', 'W', 'N',
+ 'L', 'L', 'L', 'A',
+ 'L', 'O', 'G', 'R',
+ 'L', 'O', 'L', 'L',
+ 'L', 'O', 'N', 'G',
+ 'L', 'O', 'O', 'P',
+ 'L', 'O', 'O', 'T',
+ 'L', 'U', 'I', 'S',
+ 'L', 'U', 'O', 'P',
+ 'L', 'U', 'O', 'T',
+ 'L', 'U', 'O', 'X',
+ 'L', 'U', 'R', 'X',
+ 'L', 'W', 'A', 'A',
+ 'L', 'W', 'I', 'I',
+ 'L', 'W', 'O', 'O',
+ 'L', 'Y', 'R', 'X',
+ 'M', 'A', 'A', 'I',
+ 'M', 'A', 'D', 'U',
+ 'M', 'A', 'L', 'E',
+ 'M', 'A', 'R', 'E',
+ 'M', 'A', 'R', 'K',
+ 'M', 'A', 'S', 'H',
+ 'M', 'A', 'S', 'U',
+ 'M', 'B', 'E', 'E',
+ 'M', 'B', 'O', 'O',
+ 'M', 'C', 'H', 'U',
+ 'M', 'D', 'U', 'N',
+ 'M', 'E', 'A', 'T',
+ 'M', 'E', 'E', 'M',
+ 'M', 'E', 'E', 'T',
+ 'M', 'E', 'G', 'A',
+ 'M', 'E', 'R', 'I',
+ 'M', 'E', 'S', 'H',
+ 'M', 'E', 'S', 'I',
+ 'M', 'E', 'S', 'O',
+ 'M', 'E', 'T', 'A',
+ 'M', 'G', 'A', 'P',
+ 'M', 'G', 'A', 'T',
+ 'M', 'G', 'A', 'X',
+ 'M', 'G', 'B', 'A',
+ 'M', 'G', 'B', 'E',
+ 'M', 'G', 'B', 'I',
+ 'M', 'G', 'B', 'O',
+ 'M', 'G', 'B', 'U',
+ 'M', 'G', 'E', 'P',
+ 'M', 'G', 'E', 'X',
+ 'M', 'G', 'I', 'E',
+ 'M', 'G', 'O', 'P',
+ 'M', 'G', 'O', 'T',
+ 'M', 'G', 'O', 'X',
+ 'M', 'G', 'U', 'O',
+ 'M', 'G', 'U', 'P',
+ 'M', 'G', 'U', 'R',
+ 'M', 'G', 'U', 'T',
+ 'M', 'G', 'U', 'X',
+ 'M', 'I', 'E', 'P',
+ 'M', 'I', 'E', 'X',
+ 'M', 'I', 'I', 'N',
+ 'M', 'I', 'L', 'L',
+ 'M', 'I', 'M', 'E',
+ 'M', 'I', 'N', 'Y',
+ 'M', 'I', 'R', 'I',
+ 'M', 'N', 'A', 'S',
+ 'M', 'O', 'O', 'N',
+ 'M', 'U', 'A', 'N',
+ 'M', 'U', 'C', 'H',
+ 'M', 'U', 'I', 'N',
+ 'M', 'U', 'O', 'P',
+ 'M', 'U', 'O', 'T',
+ 'M', 'U', 'O', 'X',
+ 'M', 'U', 'O', 'Y',
+ 'M', 'U', 'R', 'X',
+ 'M', 'U', 'S', 'H',
+ 'M', 'W', 'A', 'A',
+ 'M', 'W', 'E', 'E',
+ 'M', 'W', 'I', 'I',
+ 'M', 'W', 'O', 'O',
+ 'N', 'A', 'A', 'I',
+ 'N', 'A', 'G', 'A',
+ 'N', 'A', 'M', '2',
+ 'N', 'A', 'M', 'E',
+ 'N', 'A', 'N', 'A',
+ 'N', 'A', 'N', 'D',
+ 'N', 'A', 'N', 'O',
+ 'N', 'A', 'O', 'S',
+ 'N', 'A', 'U', 'D',
+ 'N', 'B', 'A', 'P',
+ 'N', 'B', 'A', 'T',
+ 'N', 'B', 'A', 'X',
+ 'N', 'B', 'I', 'E',
+ 'N', 'B', 'I', 'P',
+ 'N', 'B', 'I', 'T',
+ 'N', 'B', 'I', 'X',
+ 'N', 'B', 'O', 'P',
+ 'N', 'B', 'O', 'T',
+ 'N', 'B', 'O', 'X',
+ 'N', 'B', 'U', 'P',
+ 'N', 'B', 'U', 'R',
+ 'N', 'B', 'U', 'T',
+ 'N', 'B', 'U', 'X',
+ 'N', 'B', 'Y', 'P',
+ 'N', 'B', 'Y', 'R',
+ 'N', 'B', 'Y', 'T',
+ 'N', 'B', 'Y', 'X',
+ 'N', 'D', 'A', 'P',
+ 'N', 'D', 'A', 'T',
+ 'N', 'D', 'A', 'X',
+ 'N', 'D', 'E', 'E',
+ 'N', 'D', 'E', 'P',
+ 'N', 'D', 'E', 'X',
+ 'N', 'D', 'I', 'E',
+ 'N', 'D', 'I', 'P',
+ 'N', 'D', 'I', 'T',
+ 'N', 'D', 'I', 'X',
+ 'N', 'D', 'O', 'O',
+ 'N', 'D', 'O', 'P',
+ 'N', 'D', 'O', 'T',
+ 'N', 'D', 'O', 'X',
+ 'N', 'D', 'U', 'P',
+ 'N', 'D', 'U', 'R',
+ 'N', 'D', 'U', 'T',
+ 'N', 'D', 'U', 'X',
+ 'N', 'E', 'X', 'T',
+ 'N', 'G', 'A', 'A',
+ 'N', 'G', 'A', 'I',
+ 'N', 'G', 'A', 'N',
+ 'N', 'G', 'A', 'P',
+ 'N', 'G', 'A', 'S',
+ 'N', 'G', 'A', 'T',
+ 'N', 'G', 'A', 'X',
+ 'N', 'G', 'E', 'N',
+ 'N', 'G', 'E', 'P',
+ 'N', 'G', 'E', 'X',
+ 'N', 'G', 'G', 'A',
+ 'N', 'G', 'G', 'E',
+ 'N', 'G', 'G', 'I',
+ 'N', 'G', 'G', 'O',
+ 'N', 'G', 'G', 'U',
+ 'N', 'G', 'I', 'E',
+ 'N', 'G', 'I', 'I',
+ 'N', 'G', 'K', 'A',
+ 'N', 'G', 'O', 'N',
+ 'N', 'G', 'O', 'O',
+ 'N', 'G', 'O', 'P',
+ 'N', 'G', 'O', 'T',
+ 'N', 'G', 'O', 'X',
+ 'N', 'G', 'U', 'E',
+ 'N', 'G', 'U', 'O',
+ 'N', 'H', 'J', 'A',
+ 'N', 'H', 'U', 'E',
+ 'N', 'I', 'E', 'P',
+ 'N', 'I', 'E', 'X',
+ 'N', 'I', 'N', 'E',
+ 'N', 'I', 'O', 'N',
+ 'N', 'J', 'E', 'E',
+ 'N', 'J', 'I', 'E',
+ 'N', 'J', 'I', 'P',
+ 'N', 'J', 'I', 'T',
+ 'N', 'J', 'I', 'X',
+ 'N', 'J', 'O', 'O',
+ 'N', 'J', 'O', 'P',
+ 'N', 'J', 'O', 'T',
+ 'N', 'J', 'O', 'X',
+ 'N', 'J', 'U', 'O',
+ 'N', 'J', 'U', 'P',
+ 'N', 'J', 'U', 'R',
+ 'N', 'J', 'U', 'X',
+ 'N', 'J', 'Y', 'P',
+ 'N', 'J', 'Y', 'R',
+ 'N', 'J', 'Y', 'T',
+ 'N', 'J', 'Y', 'X',
+ 'N', 'N', 'G', 'A',
+ 'N', 'N', 'G', 'I',
+ 'N', 'N', 'G', 'O',
+ 'N', 'N', 'N', 'A',
+ 'N', 'N', 'Y', 'A',
+ 'N', 'O', 'D', 'E',
+ 'N', 'O', 'O', 'N',
+ 'N', 'O', 'S', 'E',
+ 'N', 'O', 'T', 'E',
+ 'N', 'R', 'A', 'P',
+ 'N', 'R', 'A', 'T',
+ 'N', 'R', 'A', 'X',
+ 'N', 'R', 'E', 'P',
+ 'N', 'R', 'E', 'T',
+ 'N', 'R', 'E', 'X',
+ 'N', 'R', 'O', 'P',
+ 'N', 'R', 'O', 'X',
+ 'N', 'R', 'U', 'P',
+ 'N', 'R', 'U', 'R',
+ 'N', 'R', 'U', 'T',
+ 'N', 'R', 'U', 'X',
+ 'N', 'R', 'Y', 'P',
+ 'N', 'R', 'Y', 'R',
+ 'N', 'R', 'Y', 'T',
+ 'N', 'R', 'Y', 'X',
+ 'N', 'U', '1', '1',
+ 'N', 'U', 'L', 'L',
+ 'N', 'U', 'O', 'P',
+ 'N', 'U', 'O', 'X',
+ 'N', 'U', 'R', 'X',
+ 'N', 'U', 'U', 'N',
+ 'N', 'W', 'A', 'A',
+ 'N', 'Y', 'A', 'A',
+ 'N', 'Y', 'C', 'A',
+ 'N', 'Y', 'E', 'E',
+ 'N', 'Y', 'E', 'H',
+ 'N', 'Y', 'E', 'T',
+ 'N', 'Y', 'I', 'E',
+ 'N', 'Y', 'I', 'P',
+ 'N', 'Y', 'I', 'S',
+ 'N', 'Y', 'I', 'T',
+ 'N', 'Y', 'I', 'X',
+ 'N', 'Y', 'J', 'A',
+ 'N', 'Y', 'O', 'A',
+ 'N', 'Y', 'O', 'O',
+ 'N', 'Y', 'O', 'P',
+ 'N', 'Y', 'O', 'T',
+ 'N', 'Y', 'O', 'X',
+ 'N', 'Y', 'U', 'O',
+ 'N', 'Y', 'U', 'P',
+ 'N', 'Y', 'U', 'T',
+ 'N', 'Y', 'U', 'X',
+ 'N', 'Y', 'W', 'A',
+ 'N', 'Z', 'A', 'P',
+ 'N', 'Z', 'A', 'T',
+ 'N', 'Z', 'A', 'X',
+ 'N', 'Z', 'E', 'X',
+ 'N', 'Z', 'I', 'E',
+ 'N', 'Z', 'I', 'P',
+ 'N', 'Z', 'I', 'T',
+ 'N', 'Z', 'I', 'X',
+ 'N', 'Z', 'O', 'P',
+ 'N', 'Z', 'O', 'X',
+ 'N', 'Z', 'U', 'O',
+ 'N', 'Z', 'U', 'P',
+ 'N', 'Z', 'U', 'R',
+ 'N', 'Z', 'U', 'X',
+ 'N', 'Z', 'Y', 'P',
+ 'N', 'Z', 'Y', 'R',
+ 'N', 'Z', 'Y', 'T',
+ 'N', 'Z', 'Y', 'X',
+ 'O', '-', 'E', 'O',
+ 'O', '-', 'Y', 'E',
+ 'O', 'B', 'O', 'L',
+ 'O', 'K', 'T', 'O',
+ 'O', 'N', 'S', 'U',
+ 'O', 'O', 'M', 'U',
+ 'O', 'O', 'Z', 'E',
+ 'O', 'P', 'E', 'N',
+ 'O', 'V', 'E', 'R',
+ 'O', 'X', 'I', 'A',
+ 'P', 'A', 'A', 'I',
+ 'P', 'A', 'G', 'E',
+ 'P', 'A', 'L', 'M',
+ 'P', 'A', 'N', 'G',
+ 'P', 'A', 'R', 'A',
+ 'P', 'A', 'R', 'T',
+ 'P', 'A', 'T', 'H',
+ 'P', 'A', 'W', 'N',
+ 'P', 'E', 'E', 'P',
+ 'P', 'E', 'S', 'O',
+ 'P', 'H', 'A', 'A',
+ 'P', 'H', 'A', 'N',
+ 'P', 'H', 'A', 'R',
+ 'P', 'H', 'E', 'E',
+ 'P', 'H', 'O', 'A',
+ 'P', 'H', 'U', 'R',
+ 'P', 'H', 'W', 'A',
+ 'P', 'I', 'C', 'K',
+ 'P', 'I', 'E', 'P',
+ 'P', 'I', 'E', 'X',
+ 'P', 'I', 'K', 'O',
+ 'P', 'I', 'N', 'G',
+ 'P', 'I', 'W', 'R',
+ 'P', 'L', 'A', 'K',
+ 'P', 'L', 'O', 'W',
+ 'P', 'L', 'U', 'K',
+ 'P', 'L', 'U', 'M',
+ 'P', 'L', 'U', 'S',
+ 'P', 'O', 'L', 'E',
+ 'P', 'O', 'L', 'I',
+ 'P', 'R', 'A', 'M',
+ 'P', 'U', 'N', 'G',
+ 'P', 'U', 'O', 'P',
+ 'P', 'U', 'O', 'X',
+ 'P', 'U', 'R', 'X',
+ 'P', 'W', 'A', 'A',
+ 'P', 'W', 'E', 'E',
+ 'P', 'W', 'I', 'I',
+ 'P', 'W', 'O', 'O',
+ 'P', 'Y', 'R', 'X',
+ 'Q', 'A', 'A', 'F',
+ 'Q', 'A', 'A', 'I',
+ 'Q', 'A', 'L', 'A',
+ 'Q', 'A', 'P', 'H',
+ 'Q', 'H', 'A', 'A',
+ 'Q', 'H', 'E', 'E',
+ 'Q', 'H', 'W', 'A',
+ 'Q', 'H', 'W', 'E',
+ 'Q', 'H', 'W', 'I',
+ 'Q', 'I', 'E', 'P',
+ 'Q', 'I', 'E', 'T',
+ 'Q', 'I', 'E', 'X',
+ 'Q', 'O', 'P', 'A',
+ 'Q', 'U', 'A', 'D',
+ 'Q', 'U', 'O', 'P',
+ 'Q', 'U', 'O', 'T',
+ 'Q', 'U', 'O', 'X',
+ 'Q', 'U', 'R', 'X',
+ 'Q', 'U', 'U', 'V',
+ 'Q', 'W', 'A', 'A',
+ 'Q', 'W', 'E', 'E',
+ 'Q', 'Y', 'A', 'A',
+ 'Q', 'Y', 'E', 'E',
+ 'Q', 'Y', 'R', 'X',
+ 'R', 'A', 'A', 'I',
+ 'R', 'A', 'D', 'I',
+ 'R', 'A', 'F', 'E',
+ 'R', 'A', 'I', 'N',
+ 'R', 'A', 'M', 'S',
+ 'R', 'A', 'Y', 'S',
+ 'R', 'D', 'E', 'L',
+ 'R', 'E', 'I', 'D',
+ 'R', 'E', 'M', 'U',
+ 'R', 'E', 'P', 'A',
+ 'R', 'E', 'S', 'H',
+ 'R', 'E', 'S', 'T',
+ 'R', 'G', 'Y', 'A',
+ 'R', 'I', 'A', 'L',
+ 'R', 'I', 'C', 'E',
+ 'R', 'I', 'E', 'L',
+ 'R', 'I', 'N', 'G',
+ 'R', 'I', 'R', 'A',
+ 'R', 'I', 'S', 'H',
+ 'R', 'J', 'E', 'S',
+ 'R', 'N', 'A', 'M',
+ 'R', 'O', 'A', 'R',
+ 'R', 'O', 'O', 'F',
+ 'R', 'O', 'O', 'K',
+ 'R', 'O', 'O', 'T',
+ 'R', 'O', 'S', 'H',
+ 'R', 'R', 'A', 'X',
+ 'R', 'R', 'E', 'H',
+ 'R', 'R', 'E', 'P',
+ 'R', 'R', 'E', 'T',
+ 'R', 'R', 'E', 'X',
+ 'R', 'R', 'O', 'P',
+ 'R', 'R', 'O', 'T',
+ 'R', 'R', 'O', 'X',
+ 'R', 'R', 'U', 'O',
+ 'R', 'R', 'U', 'P',
+ 'R', 'R', 'U', 'R',
+ 'R', 'R', 'U', 'T',
+ 'R', 'R', 'U', 'X',
+ 'R', 'R', 'Y', 'P',
+ 'R', 'R', 'Y', 'R',
+ 'R', 'R', 'Y', 'T',
+ 'R', 'R', 'Y', 'X',
+ 'R', 'U', 'I', 'S',
+ 'R', 'U', 'L', 'E',
+ 'R', 'U', 'O', 'P',
+ 'R', 'U', 'O', 'X',
+ 'R', 'U', 'R', 'X',
+ 'R', 'U', 'S', 'I',
+ 'R', 'W', 'A', 'A',
+ 'R', 'Y', 'R', 'X',
+ 'S', 'A', '-', 'I',
+ 'S', 'A', 'A', 'I',
+ 'S', 'A', 'D', 'E',
+ 'S', 'A', 'G', 'A',
+ 'S', 'A', 'I', 'L',
+ 'S', 'A', 'L', 'A',
+ 'S', 'A', 'L', 'T',
+ 'S', 'A', 'P', 'A',
+ 'S', 'A', 'R', 'A',
+ 'S', 'A', 'R', 'I',
+ 'S', 'B', 'U', 'B',
+ 'S', 'C', 'A', 'N',
+ 'S', 'C', 'W', 'A',
+ 'S', 'E', 'A', 'L',
+ 'S', 'E', 'E', 'N',
+ 'S', 'E', 'L', 'F',
+ 'S', 'E', 'M', 'K',
+ 'S', 'G', 'A', 'B',
+ 'S', 'G', 'A', 'W',
+ 'S', 'G', 'O', 'R',
+ 'S', 'G', 'R', 'A',
+ 'S', 'H', 'A', '3',
+ 'S', 'H', 'A', '6',
+ 'S', 'H', 'A', 'A',
+ 'S', 'H', 'A', 'D',
+ 'S', 'H', 'A', 'N',
+ 'S', 'H', 'A', 'P',
+ 'S', 'H', 'A', 'T',
+ 'S', 'H', 'A', 'X',
+ 'S', 'H', 'E', 'E',
+ 'S', 'H', 'E', 'I',
+ 'S', 'H', 'E', 'N',
+ 'S', 'H', 'E', 'P',
+ 'S', 'H', 'E', 'T',
+ 'S', 'H', 'E', 'X',
+ 'S', 'H', 'H', 'A',
+ 'S', 'H', 'I', 'D',
+ 'S', 'H', 'I', 'I',
+ 'S', 'H', 'I', 'M',
+ 'S', 'H', 'I', 'N',
+ 'S', 'H', 'I', 'P',
+ 'S', 'H', 'I', 'R',
+ 'S', 'H', 'O', 'A',
+ 'S', 'H', 'O', 'E',
+ 'S', 'H', 'O', 'G',
+ 'S', 'H', 'O', 'O',
+ 'S', 'H', 'O', 'P',
+ 'S', 'H', 'O', 'T',
+ 'S', 'H', 'O', 'X',
+ 'S', 'H', 'T', 'A',
+ 'S', 'H', 'U', '2',
+ 'S', 'H', 'U', 'O',
+ 'S', 'H', 'U', 'P',
+ 'S', 'H', 'U', 'R',
+ 'S', 'H', 'U', 'T',
+ 'S', 'H', 'U', 'X',
+ 'S', 'H', 'W', 'A',
+ 'S', 'H', 'W', 'E',
+ 'S', 'H', 'W', 'I',
+ 'S', 'H', 'W', 'O',
+ 'S', 'H', 'Y', 'A',
+ 'S', 'H', 'Y', 'P',
+ 'S', 'H', 'Y', 'R',
+ 'S', 'H', 'Y', 'T',
+ 'S', 'H', 'Y', 'X',
+ 'S', 'I', 'B', 'E',
+ 'S', 'I', 'E', 'P',
+ 'S', 'I', 'E', 'X',
+ 'S', 'I', 'G', '4',
+ 'S', 'I', 'G', 'N',
+ 'S', 'I', 'K', '2',
+ 'S', 'I', 'K', 'I',
+ 'S', 'I', 'L', 'K',
+ 'S', 'I', 'M', 'A',
+ 'S', 'I', 'N', 'E',
+ 'S', 'I', 'O', 'S',
+ 'S', 'K', 'I', 'N',
+ 'S', 'K', 'W', 'A',
+ 'S', 'L', 'U', 'R',
+ 'S', 'N', 'A', 'P',
+ 'S', 'O', 'F', 'T',
+ 'S', 'P', 'O', 'T',
+ 'S', 'P', 'W', 'A',
+ 'S', 'S', 'A', 'A',
+ 'S', 'S', 'A', 'P',
+ 'S', 'S', 'A', 'T',
+ 'S', 'S', 'A', 'X',
+ 'S', 'S', 'E', 'E',
+ 'S', 'S', 'E', 'P',
+ 'S', 'S', 'E', 'X',
+ 'S', 'S', 'I', 'E',
+ 'S', 'S', 'I', 'P',
+ 'S', 'S', 'I', 'T',
+ 'S', 'S', 'I', 'X',
+ 'S', 'S', 'O', 'P',
+ 'S', 'S', 'O', 'T',
+ 'S', 'S', 'O', 'X',
+ 'S', 'S', 'U', 'P',
+ 'S', 'S', 'U', 'T',
+ 'S', 'S', 'U', 'X',
+ 'S', 'S', 'Y', 'P',
+ 'S', 'S', 'Y', 'R',
+ 'S', 'S', 'Y', 'T',
+ 'S', 'S', 'Y', 'X',
+ 'S', 'T', 'A', 'N',
+ 'S', 'T', 'A', 'R',
+ 'S', 'T', 'E', 'M',
+ 'S', 'T', 'E', 'P',
+ 'S', 'T', 'O', 'P',
+ 'S', 'T', 'W', 'A',
+ 'S', 'U', 'D', '2',
+ 'S', 'U', 'I', 'T',
+ 'S', 'U', 'K', 'U',
+ 'S', 'U', 'N', 'G',
+ 'S', 'U', 'O', 'P',
+ 'S', 'U', 'O', 'X',
+ 'S', 'U', 'R', '9',
+ 'S', 'U', 'R', 'E',
+ 'S', 'U', 'R', 'X',
+ 'S', 'W', 'A', 'A',
+ 'S', 'W', 'I', 'I',
+ 'S', 'W', 'O', 'O',
+ 'S', 'Y', 'R', 'X',
+ 'S', 'Z', 'A', 'A',
+ 'S', 'Z', 'E', 'E',
+ 'S', 'Z', 'W', 'A',
+ 'S', 'Z', 'W', 'G',
+ 'T', 'A', 'A', 'I',
+ 'T', 'A', 'C', 'K',
+ 'T', 'A', 'I', 'L',
+ 'T', 'A', 'K', '4',
+ 'T', 'A', 'K', 'E',
+ 'T', 'A', 'L', 'L',
+ 'T', 'A', 'P', 'E',
+ 'T', 'A', 'W', 'A',
+ 'T', 'C', 'H', 'E',
+ 'T', 'E', '-', 'U',
+ 'T', 'E', 'N', 'S',
+ 'T', 'E', 'N', 'T',
+ 'T', 'E', 'N', 'U',
+ 'T', 'E', 'S', 'H',
+ 'T', 'E', 'T', 'H',
+ 'T', 'E', 'X', 'T',
+ 'T', 'H', 'A', 'A',
+ 'T', 'H', 'A', 'I',
+ 'T', 'H', 'A', 'L',
+ 'T', 'H', 'A', 'N',
+ 'T', 'H', 'E', 'E',
+ 'T', 'H', 'E', 'H',
+ 'T', 'H', 'E', 'N',
+ 'T', 'H', 'E', 'S',
+ 'T', 'H', 'E', 'Y',
+ 'T', 'H', 'I', 'I',
+ 'T', 'H', 'I', 'N',
+ 'T', 'H', 'O', 'A',
+ 'T', 'H', 'O', 'O',
+ 'T', 'H', 'W', 'A',
+ 'T', 'I', 'C', 'K',
+ 'T', 'I', 'E', 'P',
+ 'T', 'I', 'E', 'X',
+ 'T', 'I', 'L', 'E',
+ 'T', 'I', 'M', 'E',
+ 'T', 'I', 'N', 'G',
+ 'T', 'I', 'N', 'Y',
+ 'T', 'I', 'W', 'N',
+ 'T', 'L', 'E', 'E',
+ 'T', 'L', 'H', 'A',
+ 'T', 'L', 'H', 'E',
+ 'T', 'L', 'H', 'I',
+ 'T', 'L', 'H', 'O',
+ 'T', 'L', 'H', 'U',
+ 'T', 'O', 'D', 'O',
+ 'T', 'O', 'N', 'E',
+ 'T', 'O', 'N', 'G',
+ 'T', 'R', 'E', 'E',
+ 'T', 'R', 'I', 'A',
+ 'T', 'R', 'U', 'E',
+ 'T', 'S', 'A', 'A',
+ 'T', 'S', 'E', 'E',
+ 'T', 'S', 'H', 'A',
+ 'T', 'S', 'H', 'E',
+ 'T', 'S', 'S', 'E',
+ 'T', 'S', 'W', 'A',
+ 'T', 'S', 'W', 'E',
+ 'T', 'T', 'A', 'A',
+ 'T', 'T', 'E', 'E',
+ 'T', 'T', 'E', 'H',
+ 'T', 'T', 'H', 'A',
+ 'T', 'T', 'H', 'E',
+ 'T', 'T', 'H', 'I',
+ 'T', 'T', 'H', 'O',
+ 'T', 'T', 'S', 'A',
+ 'T', 'T', 'S', 'E',
+ 'T', 'T', 'S', 'I',
+ 'T', 'T', 'S', 'O',
+ 'T', 'T', 'S', 'U',
+ 'T', 'U', 'G', '2',
+ 'T', 'U', 'O', 'P',
+ 'T', 'U', 'O', 'T',
+ 'T', 'U', 'O', 'X',
+ 'T', 'U', 'R', 'N',
+ 'T', 'U', 'R', 'X',
+ 'T', 'W', 'A', 'A',
+ 'T', 'W', 'I', 'I',
+ 'T', 'W', 'O', 'O',
+ 'T', 'Y', 'P', 'E',
+ 'T', 'Z', 'A', 'A',
+ 'T', 'Z', 'E', 'E',
+ 'T', 'Z', 'I', 'R',
+ 'T', 'Z', 'O', 'A',
+ 'U', '-', 'A', 'E',
+ 'U', '-', 'Y', 'E',
+ 'U', 'A', 'T', 'H',
+ 'U', 'D', 'U', 'G',
+ 'U', 'M', 'U', 'M',
+ 'U', 'N', 'D', 'O',
+ 'U', 'N', 'I', 'T',
+ 'U', 'R', 'I', '3',
+ 'U', 'R', 'U', 'S',
+ 'U', 'R', 'U', 'Z',
+ 'U', 'S', 'E', 'D',
+ 'U', 'S', 'H', '2',
+ 'U', 'S', 'H', 'X',
+ 'U', 'S', 'S', 'U',
+ 'U', 'U', 'U', '2',
+ 'U', 'U', 'U', '3',
+ 'U', 'U', 'U', 'U',
+ 'V', 'A', 'N', 'E',
+ 'V', 'E', 'D', 'E',
+ 'V', 'E', 'N', 'D',
+ 'V', 'E', 'R', 'Y',
+ 'V', 'I', 'D', 'A',
+ 'V', 'I', 'E', 'P',
+ 'V', 'I', 'E', 'T',
+ 'V', 'I', 'E', 'X',
+ 'V', 'I', 'N', 'E',
+ 'V', 'O', 'I', 'D',
+ 'V', 'U', 'R', 'X',
+ 'V', 'Y', 'R', 'X',
+ 'W', 'A', 'E', 'N',
+ 'W', 'A', 'L', 'K',
+ 'W', 'A', 'L', 'L',
+ 'W', 'A', 'V', 'E',
+ 'W', 'A', 'V', 'Y',
+ 'W', 'E', 'E', 'N',
+ 'W', 'E', 'L', 'L',
+ 'W', 'E', 'S', 'T',
+ 'W', 'I', 'D', 'E',
+ 'W', 'I', 'N', 'D',
+ 'W', 'I', 'N', 'E',
+ 'W', 'I', 'T', 'H',
+ 'W', 'O', 'O', 'D',
+ 'W', 'O', 'O', 'L',
+ 'W', 'O', 'O', 'N',
+ 'W', 'O', 'R', 'D',
+ 'W', 'O', 'R', 'K',
+ 'W', 'R', 'A', 'P',
+ 'W', 'U', 'O', 'P',
+ 'W', 'U', 'O', 'X',
+ 'W', 'Y', 'N', 'N',
+ 'X', 'I', 'E', 'P',
+ 'X', 'I', 'E', 'T',
+ 'X', 'I', 'E', 'X',
+ 'X', 'U', 'O', 'X',
+ 'X', 'W', 'A', 'A',
+ 'X', 'W', 'E', 'E',
+ 'X', 'Y', 'A', 'A',
+ 'X', 'Y', 'E', 'E',
+ 'X', 'Y', 'R', 'X',
+ 'Y', 'A', '-', 'O',
+ 'Y', 'A', 'A', 'I',
+ 'Y', 'A', 'B', 'H',
+ 'Y', 'A', 'C', 'H',
+ 'Y', 'A', 'D', 'D',
+ 'Y', 'A', 'D', 'H',
+ 'Y', 'A', 'G', 'H',
+ 'Y', 'A', 'G', 'N',
+ 'Y', 'A', 'H', 'H',
+ 'Y', 'A', 'K', 'H',
+ 'Y', 'A', 'N', 'G',
+ 'Y', 'A', 'R', 'R',
+ 'Y', 'A', 'S', 'H',
+ 'Y', 'A', 'S', 'S',
+ 'Y', 'A', 'T', 'H',
+ 'Y', 'A', 'T', 'I',
+ 'Y', 'A', 'T', 'T',
+ 'Y', 'A', 'Z', 'H',
+ 'Y', 'A', 'Z', 'Z',
+ 'Y', 'E', 'A', 'R',
+ 'Y', 'E', 'R', 'I',
+ 'Y', 'E', 'R', 'U',
+ 'Y', 'F', 'E', 'N',
+ 'Y', 'I', '-', 'U',
+ 'Y', 'I', 'E', 'P',
+ 'Y', 'I', 'E', 'T',
+ 'Y', 'I', 'E', 'X',
+ 'Y', 'I', 'N', 'G',
+ 'Y', 'I', 'W', 'N',
+ 'Y', 'O', '-', 'I',
+ 'Y', 'O', '-', 'O',
+ 'Y', 'O', 'G', 'H',
+ 'Y', 'O', 'M', 'O',
+ 'Y', 'O', 'R', 'I',
+ 'Y', 'U', '-', 'A',
+ 'Y', 'U', '-', 'E',
+ 'Y', 'U', '-', 'I',
+ 'Y', 'U', '-', 'U',
+ 'Y', 'U', 'A', 'N',
+ 'Y', 'U', 'D', 'H',
+ 'Y', 'U', 'O', 'P',
+ 'Y', 'U', 'O', 'T',
+ 'Y', 'U', 'O', 'X',
+ 'Y', 'U', 'R', 'X',
+ 'Y', 'W', 'A', 'A',
+ 'Y', 'W', 'I', 'I',
+ 'Y', 'W', 'O', 'O',
+ 'Y', 'Y', 'R', 'X',
+ 'Z', 'A', 'I', 'N',
+ 'Z', 'A', 'M', 'X',
+ 'Z', 'A', 'T', 'A',
+ 'Z', 'E', 'R', 'O',
+ 'Z', 'E', 'T', 'A',
+ 'Z', 'H', 'A', 'A',
+ 'Z', 'H', 'A', 'P',
+ 'Z', 'H', 'A', 'R',
+ 'Z', 'H', 'A', 'T',
+ 'Z', 'H', 'A', 'X',
+ 'Z', 'H', 'E', 'E',
+ 'Z', 'H', 'E', 'P',
+ 'Z', 'H', 'E', 'T',
+ 'Z', 'H', 'E', 'X',
+ 'Z', 'H', 'O', 'O',
+ 'Z', 'H', 'O', 'P',
+ 'Z', 'H', 'O', 'T',
+ 'Z', 'H', 'O', 'X',
+ 'Z', 'H', 'U', 'O',
+ 'Z', 'H', 'U', 'P',
+ 'Z', 'H', 'U', 'R',
+ 'Z', 'H', 'U', 'T',
+ 'Z', 'H', 'U', 'X',
+ 'Z', 'H', 'W', 'A',
+ 'Z', 'H', 'W', 'E',
+ 'Z', 'H', 'Y', 'P',
+ 'Z', 'H', 'Y', 'R',
+ 'Z', 'H', 'Y', 'T',
+ 'Z', 'H', 'Y', 'X',
+ 'Z', 'I', 'D', 'A',
+ 'Z', 'I', 'E', 'P',
+ 'Z', 'I', 'E', 'X',
+ 'Z', 'I', 'Z', '2',
+ 'Z', 'U', 'O', 'P',
+ 'Z', 'U', 'O', 'X',
+ 'Z', 'U', 'R', 'X',
+ 'Z', 'Y', 'R', 'X',
+ 'Z', 'Z', 'A', 'A',
+ 'Z', 'Z', 'A', 'P',
+ 'Z', 'Z', 'A', 'T',
+ 'Z', 'Z', 'A', 'X',
+ 'Z', 'Z', 'E', 'E',
+ 'Z', 'Z', 'E', 'P',
+ 'Z', 'Z', 'E', 'X',
+ 'Z', 'Z', 'I', 'E',
+ 'Z', 'Z', 'I', 'P',
+ 'Z', 'Z', 'I', 'T',
+ 'Z', 'Z', 'I', 'X',
+ 'Z', 'Z', 'O', 'P',
+ 'Z', 'Z', 'O', 'X',
+ 'Z', 'Z', 'U', 'P',
+ 'Z', 'Z', 'U', 'R',
+ 'Z', 'Z', 'U', 'X',
+ 'Z', 'Z', 'Y', 'P',
+ 'Z', 'Z', 'Y', 'R',
+ 'Z', 'Z', 'Y', 'T',
+ 'Z', 'Z', 'Y', 'X',
+ '-', 'C', 'H', 'A', 'L',
+ '-', 'C', 'H', 'A', 'R',
+ '-', 'D', 'Z', 'U', 'D',
+ '-', 'P', 'H', 'R', 'U',
+ 'A', 'B', 'O', 'V', 'E',
+ 'A', 'C', 'U', 'T', 'E',
+ 'A', 'D', 'D', 'A', 'K',
+ 'A', 'F', 'T', 'E', 'R',
+ 'A', 'G', 'A', 'I', 'N',
+ 'A', 'G', 'O', 'G', 'I',
+ 'A', 'H', 'S', 'D', 'A',
+ 'A', 'K', 'A', 'R', 'A',
+ 'A', 'K', 'B', 'A', 'R',
+ 'A', 'L', 'A', 'P', 'H',
+ 'A', 'L', 'E', 'P', 'H',
+ 'A', 'L', 'E', 'U', 'T',
+ 'A', 'L', 'G', 'I', 'Z',
+ 'A', 'L', 'I', 'F', 'U',
+ 'A', 'L', 'L', 'A', 'H',
+ 'A', 'L', 'P', 'H', 'A',
+ 'A', 'N', 'G', 'L', 'E',
+ 'A', 'N', 'P', 'E', 'A',
+ 'A', 'N', 'S', 'H', 'E',
+ 'A', 'N', 'S', 'U', 'Z',
+ 'A', 'P', 'A', 'R', 'T',
+ 'A', 'P', 'E', 'S', 'O',
+ 'A', 'P', 'R', 'I', 'L',
+ 'A', 'R', 'A', 'E', 'A',
+ 'A', 'R', 'E', 'P', 'A',
+ 'A', 'R', 'G', 'O', 'N',
+ 'A', 'R', 'I', 'E', 'S',
+ 'A', 'R', 'K', 'A', 'B',
+ 'A', 'R', 'R', 'A', 'Y',
+ 'A', 'R', 'R', 'O', 'W',
+ 'A', 'S', 'A', 'L', '2',
+ 'A', 'T', 'N', 'A', 'H',
+ 'A', 'T', 'T', 'A', 'K',
+ 'A', 'T', 'T', 'I', 'C',
+ 'B', '1', '0', '5', 'F',
+ 'B', '1', '0', '5', 'M',
+ 'B', '1', '0', '6', 'F',
+ 'B', '1', '0', '6', 'M',
+ 'B', '1', '0', '7', 'F',
+ 'B', '1', '0', '7', 'M',
+ 'B', '1', '0', '8', 'F',
+ 'B', '1', '0', '8', 'M',
+ 'B', '1', '0', '9', 'F',
+ 'B', '1', '0', '9', 'M',
+ 'B', 'A', 'L', 'A', 'G',
+ 'B', 'A', 'R', 'A', '2',
+ 'B', 'A', 'S', 'S', 'A',
+ 'B', 'B', 'I', 'E', 'P',
+ 'B', 'B', 'I', 'E', 'T',
+ 'B', 'B', 'I', 'E', 'X',
+ 'B', 'B', 'U', 'O', 'P',
+ 'B', 'B', 'U', 'O', 'X',
+ 'B', 'B', 'U', 'R', 'X',
+ 'B', 'E', 'E', 'T', 'A',
+ 'B', 'E', 'G', 'I', 'N',
+ 'B', 'E', 'H', 'E', 'H',
+ 'B', 'E', 'I', 'T', 'H',
+ 'B', 'E', 'L', 'O', 'W',
+ 'B', 'E', 'N', 'D', 'E',
+ 'B', 'E', 'O', 'R', 'C',
+ 'B', 'H', 'E', 'T', 'H',
+ 'B', 'I', 'N', 'D', 'I',
+ 'B', 'I', 'R', 'G', 'A',
+ 'B', 'I', 'S', 'A', 'H',
+ 'B', 'L', 'A', 'C', 'K',
+ 'B', 'L', 'A', 'D', 'E',
+ 'B', 'L', 'A', 'N', 'K',
+ 'B', 'L', 'O', 'C', 'K',
+ 'B', 'L', 'O', 'O', 'D',
+ 'B', 'R', 'A', 'C', 'E',
+ 'B', 'R', 'E', 'V', 'E',
+ 'B', 'R', 'O', 'A', 'D',
+ 'B', 'R', 'U', 'S', 'H',
+ 'B', 'S', 'D', 'U', 'S',
+ 'B', 'S', 'K', 'A', '-',
+ 'B', 'S', 'K', 'U', 'R',
+ 'B', 'S', 'T', 'A', 'R',
+ 'B', 'U', 'H', 'I', 'D',
+ 'B', 'U', 'L', 'L', 'S',
+ 'B', 'U', 'L', 'U', 'G',
+ 'B', 'U', 'M', 'P', 'Y',
+ 'B', 'Z', 'U', 'N', 'G',
+ 'C', 'A', 'L', 'Y', 'A',
+ 'C', 'A', 'R', 'E', 'T',
+ 'C', 'A', 'R', 'I', 'K',
+ 'C', 'A', 'R', 'O', 'N',
+ 'C', 'A', 'U', 'D', 'A',
+ 'C', 'C', 'H', 'A', 'A',
+ 'C', 'C', 'H', 'E', 'E',
+ 'C', 'E', 'A', 'L', 'C',
+ 'C', 'E', 'C', 'E', 'K',
+ 'C', 'E', 'I', 'R', 'T',
+ 'C', 'E', 'R', 'E', 'S',
+ 'C', 'H', 'A', 'D', 'A',
+ 'C', 'H', 'A', 'I', 'R',
+ 'C', 'H', 'A', 'N', 'G',
+ 'C', 'H', 'E', 'C', 'K',
+ 'C', 'H', 'E', 'S', 'S',
+ 'C', 'H', 'I', 'K', 'I',
+ 'C', 'H', 'I', 'L', 'D',
+ 'C', 'H', 'I', 'N', 'G',
+ 'C', 'H', 'O', 'K', 'E',
+ 'C', 'H', 'R', 'O', 'A',
+ 'C', 'H', 'U', 'L', 'A',
+ 'C', 'H', 'U', 'O', 'P',
+ 'C', 'H', 'U', 'O', 'T',
+ 'C', 'H', 'U', 'O', 'X',
+ 'C', 'H', 'U', 'R', 'X',
+ 'C', 'H', 'Y', 'R', 'X',
+ 'C', 'I', 'E', 'U', 'C',
+ 'C', 'L', 'E', 'A', 'R',
+ 'C', 'L', 'I', 'C', 'K',
+ 'C', 'L', 'I', 'F', 'F',
+ 'C', 'L', 'O', 'S', 'E',
+ 'C', 'L', 'O', 'T', 'H',
+ 'C', 'L', 'O', 'U', 'D',
+ 'C', 'O', 'E', 'N', 'G',
+ 'C', 'O', 'L', 'O', 'N',
+ 'C', 'O', 'L', 'O', 'R',
+ 'C', 'O', 'M', 'E', 'T',
+ 'C', 'O', 'M', 'M', 'A',
+ 'C', 'O', 'V', 'E', 'R',
+ 'C', 'R', 'O', 'I', 'X',
+ 'C', 'R', 'O', 'S', 'S',
+ 'C', 'U', 'B', 'E', 'D',
+ 'C', 'U', 'R', 'L', 'Y',
+ 'C', 'U', 'R', 'V', 'E',
+ 'D', 'A', 'A', 'S', 'U',
+ 'D', 'A', 'E', 'N', 'G',
+ 'D', 'A', 'G', 'A', 'Z',
+ 'D', 'A', 'H', 'A', 'L',
+ 'D', 'A', 'I', 'N', 'G',
+ 'D', 'A', 'L', 'D', 'A',
+ 'D', 'A', 'L', 'E', 'T',
+ 'D', 'A', 'M', 'M', 'A',
+ 'D', 'A', 'N', 'D', 'A',
+ 'D', 'A', 'R', 'A', '3',
+ 'D', 'A', 'R', 'A', '4',
+ 'D', 'A', 'R', 'G', 'A',
+ 'D', 'A', 'S', 'I', 'A',
+ 'D', 'A', 'V', 'I', 'D',
+ 'D', 'D', 'D', 'H', 'A',
+ 'D', 'D', 'I', 'E', 'P',
+ 'D', 'D', 'I', 'E', 'X',
+ 'D', 'D', 'U', 'O', 'P',
+ 'D', 'D', 'U', 'O', 'X',
+ 'D', 'D', 'U', 'R', 'X',
+ 'D', 'E', 'A', 'T', 'H',
+ 'D', 'E', 'B', 'I', 'T',
+ 'D', 'E', 'L', 'T', 'A',
+ 'D', 'E', 'R', 'E', 'T',
+ 'D', 'E', 'U', 'N', 'G',
+ 'D', 'E', 'X', 'I', 'A',
+ 'D', 'H', 'H', 'E', 'E',
+ 'D', 'H', 'H', 'O', 'O',
+ 'D', 'I', 'F', 'A', 'T',
+ 'D', 'I', 'G', 'I', 'T',
+ 'D', 'I', 'P', 'L', 'I',
+ 'D', 'I', 'P', 'T', 'E',
+ 'D', 'I', 'T', 'T', 'O',
+ 'D', 'J', 'E', 'R', 'V',
+ 'D', 'O', 'B', 'R', 'O',
+ 'D', 'O', 'O', 'N', 'G',
+ 'D', 'O', 'U', 'B', 'T',
+ 'D', 'R', 'I', 'V', 'E',
+ 'D', 'R', 'O', 'P', 'S',
+ 'D', 'U', 'G', 'U', 'D',
+ 'D', 'Z', 'E', 'L', 'O',
+ 'E', 'A', 'G', 'L', 'E',
+ 'E', 'A', 'R', 'L', 'Y',
+ 'E', 'A', 'R', 'T', 'H',
+ 'E', 'E', 'K', 'A', 'A',
+ 'E', 'H', 'W', 'A', 'Z',
+ 'E', 'I', 'G', 'H', 'T',
+ 'E', 'J', 'E', 'C', 'T',
+ 'E', 'K', 'A', 'R', 'A',
+ 'E', 'L', 'I', 'F', 'I',
+ 'E', 'M', 'P', 'T', 'Y',
+ 'E', 'N', 'D', 'E', 'P',
+ 'E', 'N', 'T', 'E', 'R',
+ 'E', 'O', '-', 'E', 'U',
+ 'E', 'O', 'L', 'H', 'X',
+ 'E', 'Q', 'U', 'A', 'L',
+ 'E', 'Q', 'U', 'I', 'D',
+ 'E', 'R', 'A', 'S', 'E',
+ 'E', 'R', 'I', 'N', '2',
+ 'E', 'S', '-', 'T', 'E',
+ 'E', 'S', 'A', 'S', 'A',
+ 'E', 'S', 'H', '1', '6',
+ 'E', 'S', 'H', '2', '1',
+ 'E', 'S', 'H', 'E', '3',
+ 'E', 'T', 'H', 'E', 'L',
+ 'E', 'U', '-', 'E', 'U',
+ 'E', 'U', 'L', 'E', 'R',
+ 'E', 'X', 'I', 'S', 'T',
+ 'F', 'A', 'A', 'F', 'U',
+ 'F', 'A', 'I', 'H', 'U',
+ 'F', 'A', 'R', 'S', 'I',
+ 'F', 'A', 'T', 'H', 'A',
+ 'F', 'E', 'A', 'R', 'N',
+ 'F', 'E', 'E', 'N', 'G',
+ 'F', 'E', 'N', 'C', 'E',
+ 'F', 'I', 'E', 'L', 'D',
+ 'F', 'I', 'F', 'T', 'H',
+ 'F', 'I', 'F', 'T', 'Y',
+ 'F', 'I', 'G', 'H', 'T',
+ 'F', 'I', 'N', 'A', 'L',
+ 'F', 'I', 'R', 'S', 'T',
+ 'F', 'L', 'O', 'O', 'R',
+ 'F', 'L', 'U', 'T', 'E',
+ 'F', 'O', 'L', 'L', 'Y',
+ 'F', 'O', 'R', 'C', 'E',
+ 'F', 'O', 'R', 'M', 'S',
+ 'F', 'O', 'R', 'T', 'E',
+ 'F', 'O', 'R', 'T', 'Y',
+ 'F', 'R', 'A', 'M', 'E',
+ 'F', 'R', 'A', 'N', 'C',
+ 'F', 'R', 'I', 'T', 'U',
+ 'F', 'R', 'O', 'W', 'N',
+ 'G', 'A', 'A', 'F', 'U',
+ 'G', 'A', 'D', 'O', 'L',
+ 'G', 'A', 'L', 'A', 'M',
+ 'G', 'A', 'M', 'A', 'L',
+ 'G', 'A', 'M', 'L', 'A',
+ 'G', 'A', 'M', 'M', 'A',
+ 'G', 'A', 'N', 'M', 'A',
+ 'G', 'A', 'R', 'O', 'N',
+ 'G', 'E', 'S', 'H', '2',
+ 'G', 'E', 'S', 'H', 'U',
+ 'G', 'G', 'I', 'E', 'P',
+ 'G', 'G', 'I', 'E', 'X',
+ 'G', 'G', 'U', 'O', 'P',
+ 'G', 'G', 'U', 'O', 'T',
+ 'G', 'G', 'U', 'O', 'X',
+ 'G', 'G', 'U', 'R', 'X',
+ 'G', 'G', 'W', 'A', 'A',
+ 'G', 'G', 'W', 'E', 'E',
+ 'G', 'H', 'A', 'I', 'N',
+ 'G', 'H', 'O', 'S', 'T',
+ 'G', 'I', 'D', 'I', 'M',
+ 'G', 'I', 'M', 'E', 'L',
+ 'G', 'I', 'N', 'I', 'I',
+ 'G', 'I', 'S', 'A', 'L',
+ 'G', 'N', 'Y', 'I', 'S',
+ 'G', 'O', 'I', 'N', 'G',
+ 'G', 'O', 'R', 'G', 'I',
+ 'G', 'R', 'A', 'C', 'E',
+ 'G', 'R', 'A', 'I', 'N',
+ 'G', 'R', 'A', 'S', 'S',
+ 'G', 'R', 'A', 'V', 'E',
+ 'G', 'R', 'E', 'A', 'T',
+ 'G', 'R', 'E', 'E', 'K',
+ 'G', 'R', 'E', 'E', 'N',
+ 'G', 'R', 'O', 'U', 'P',
+ 'G', 'U', 'R', 'U', 'N',
+ 'H', 'A', '-', 'H', 'A',
+ 'H', 'A', 'A', 'R', 'U',
+ 'H', 'A', 'E', 'G', 'L',
+ 'H', 'A', 'I', 'T', 'U',
+ 'H', 'A', 'M', 'Z', 'A',
+ 'H', 'A', 'N', 'D', 'S',
+ 'H', 'A', 'S', 'E', 'R',
+ 'H', 'A', 'T', 'A', 'F',
+ 'H', 'A', 'T', 'H', 'I',
+ 'H', 'B', 'A', 'S', 'A',
+ 'H', 'E', 'A', 'R', 'T',
+ 'H', 'E', 'A', 'V', 'Y',
+ 'H', 'I', 'D', 'E', 'T',
+ 'H', 'I', 'E', 'U', 'H',
+ 'H', 'I', 'R', 'I', 'Q',
+ 'H', 'L', 'I', 'E', 'P',
+ 'H', 'L', 'I', 'E', 'X',
+ 'H', 'L', 'U', 'O', 'P',
+ 'H', 'L', 'U', 'O', 'X',
+ 'H', 'L', 'U', 'R', 'X',
+ 'H', 'L', 'Y', 'R', 'X',
+ 'H', 'M', 'I', 'E', 'P',
+ 'H', 'M', 'I', 'E', 'X',
+ 'H', 'M', 'U', 'O', 'P',
+ 'H', 'M', 'U', 'O', 'X',
+ 'H', 'M', 'U', 'R', 'X',
+ 'H', 'M', 'Y', 'R', 'X',
+ 'H', 'N', 'I', 'E', 'P',
+ 'H', 'N', 'I', 'E', 'T',
+ 'H', 'N', 'I', 'E', 'X',
+ 'H', 'N', 'U', 'O', 'X',
+ 'H', 'O', 'L', 'A', 'M',
+ 'H', 'O', 'O', 'R', 'U',
+ 'H', 'O', 'R', 'S', 'E',
+ 'H', 'O', 'U', 'S', 'E',
+ 'H', 'U', 'M', 'A', 'N',
+ 'H', 'U', 'R', 'A', 'N',
+ 'H', 'W', 'A', 'I', 'R',
+ 'H', 'X', 'I', 'E', 'P',
+ 'H', 'X', 'I', 'E', 'T',
+ 'H', 'X', 'I', 'E', 'X',
+ 'H', 'X', 'U', 'O', 'P',
+ 'H', 'X', 'U', 'O', 'T',
+ 'H', 'X', 'U', 'O', 'X',
+ 'H', 'Z', 'Z', 'Z', 'G',
+ 'I', 'A', 'U', 'D', 'A',
+ 'I', 'C', 'H', 'O', 'S',
+ 'I', 'C', 'H', 'O', 'U',
+ 'I', 'E', 'U', 'N', 'G',
+ 'I', 'G', 'G', 'W', 'S',
+ 'I', 'K', 'A', 'R', 'A',
+ 'I', 'M', 'A', 'G', 'E',
+ 'I', 'M', 'I', 'N', '3',
+ 'I', 'N', 'D', 'E', 'X',
+ 'I', 'N', 'N', 'E', 'R',
+ 'J', 'E', 'R', 'A', 'N',
+ 'J', 'J', 'I', 'E', 'P',
+ 'J', 'J', 'I', 'E', 'T',
+ 'J', 'J', 'I', 'E', 'X',
+ 'J', 'J', 'U', 'O', 'P',
+ 'J', 'J', 'U', 'O', 'X',
+ 'J', 'J', 'U', 'R', 'X',
+ 'J', 'O', 'K', 'E', 'R',
+ 'J', 'U', 'D', 'G', 'E',
+ 'J', 'U', 'E', 'U', 'I',
+ 'K', 'A', 'A', 'F', 'U',
+ 'K', 'A', 'I', 'R', 'I',
+ 'K', 'A', 'P', 'A', 'L',
+ 'K', 'A', 'P', 'P', 'A',
+ 'K', 'A', 'R', 'E', 'N',
+ 'K', 'A', 'S', 'R', 'A',
+ 'K', 'A', 'U', 'N', 'A',
+ 'K', 'A', 'Y', 'A', 'H',
+ 'K', 'E', 'E', 'N', 'G',
+ 'K', 'E', 'E', 'S', 'U',
+ 'K', 'E', 'H', 'E', 'H',
+ 'K', 'E', 'N', 'A', 'T',
+ 'K', 'E', 'S', 'H', '2',
+ 'K', 'E', 'T', 'T', 'I',
+ 'K', 'H', 'A', 'N', 'G',
+ 'K', 'H', 'A', 'P', 'H',
+ 'K', 'H', 'M', 'E', 'R',
+ 'K', 'H', 'U', 'A', 'T',
+ 'K', 'H', 'W', 'A', 'I',
+ 'K', 'I', 'S', 'A', 'L',
+ 'K', 'N', 'I', 'F', 'E',
+ 'K', 'O', 'M', 'B', 'U',
+ 'K', 'O', 'O', 'P', 'O',
+ 'K', 'O', 'P', 'P', 'A',
+ 'K', 'U', 'S', 'M', 'A',
+ 'K', 'X', 'W', 'A', 'A',
+ 'K', 'X', 'W', 'E', 'E',
+ 'L', 'A', 'A', 'M', 'U',
+ 'L', 'A', 'B', 'O', 'R',
+ 'L', 'A', 'G', 'A', 'B',
+ 'L', 'A', 'G', 'A', 'R',
+ 'L', 'A', 'G', 'U', 'S',
+ 'L', 'A', 'M', 'D', 'A',
+ 'L', 'A', 'M', 'E', 'D',
+ 'L', 'A', 'R', 'G', 'E',
+ 'L', 'A', 'T', 'I', 'K',
+ 'L', 'A', 'T', 'I', 'N',
+ 'L', 'A', 'U', 'L', 'A',
+ 'L', 'E', 'M', 'O', 'I',
+ 'L', 'E', 'N', 'G', 'A',
+ 'L', 'E', 'V', 'E', 'L',
+ 'L', 'I', 'B', 'R', 'A',
+ 'L', 'I', 'G', 'H', 'T',
+ 'L', 'I', 'M', 'B', 'U',
+ 'L', 'I', 'M', 'I', 'T',
+ 'L', 'I', 'M', 'M', 'U',
+ 'L', 'I', 'N', 'E', 'S',
+ 'L', 'I', 'T', 'R', 'A',
+ 'L', 'O', 'N', 'G', 'A',
+ 'L', 'O', 'T', 'U', 'S',
+ 'L', 'O', 'U', 'R', 'E',
+ 'L', 'O', 'W', '-', '9',
+ 'L', 'O', 'W', 'E', 'R',
+ 'L', 'U', 'G', 'A', 'L',
+ 'M', 'A', 'D', 'D', 'A',
+ 'M', 'A', 'H', 'H', 'A',
+ 'M', 'A', 'I', 'R', 'U',
+ 'M', 'A', 'N', 'N', 'A',
+ 'M', 'A', 'P', 'I', 'Q',
+ 'M', 'A', 'Q', 'A', 'F',
+ 'M', 'A', 'R', 'C', 'H',
+ 'M', 'A', 'S', 'H', '2',
+ 'M', 'E', 'E', 'M', 'U',
+ 'M', 'E', 'I', 'Z', 'I',
+ 'M', 'E', 'L', 'O', 'N',
+ 'M', 'E', 'T', 'A', 'L',
+ 'M', 'E', 'T', 'E', 'G',
+ 'M', 'E', 'Z', 'Z', 'O',
+ 'M', 'G', 'B', 'E', 'E',
+ 'M', 'G', 'B', 'O', 'O',
+ 'M', 'G', 'I', 'E', 'X',
+ 'M', 'G', 'U', 'O', 'P',
+ 'M', 'G', 'U', 'O', 'X',
+ 'M', 'G', 'U', 'R', 'X',
+ 'M', 'I', 'C', 'R', 'O',
+ 'M', 'I', 'E', 'U', 'M',
+ 'M', 'I', 'K', 'R', 'I',
+ 'M', 'I', 'L', 'L', 'E',
+ 'M', 'I', 'N', 'U', 'S',
+ 'M', 'I', 'R', 'E', 'D',
+ 'M', 'I', 'S', 'R', 'A',
+ 'M', 'N', 'Y', 'A', 'M',
+ 'M', 'O', 'D', 'E', 'L',
+ 'M', 'O', 'N', 'T', 'H',
+ 'M', 'O', 'U', 'N', 'D',
+ 'M', 'O', 'U', 'T', 'H',
+ 'M', 'O', 'V', 'E', 'D',
+ 'M', 'U', 'L', 'T', 'I',
+ 'M', 'U', 'N', 'A', 'H',
+ 'M', 'U', 'R', 'D', 'A',
+ 'M', 'U', 'S', 'H', '3',
+ 'M', 'U', 'S', 'I', 'C',
+ 'N', '-', 'A', 'R', 'Y',
+ 'N', 'A', 'B', 'L', 'A',
+ 'N', 'A', 'G', 'A', 'R',
+ 'N', 'A', 'G', 'R', 'I',
+ 'N', 'A', 'I', 'R', 'A',
+ 'N', 'A', 'S', 'H', 'I',
+ 'N', 'B', 'I', 'E', 'P',
+ 'N', 'B', 'I', 'E', 'X',
+ 'N', 'B', 'U', 'R', 'X',
+ 'N', 'B', 'Y', 'R', 'X',
+ 'N', 'D', 'I', 'E', 'X',
+ 'N', 'D', 'O', 'L', 'E',
+ 'N', 'D', 'U', 'R', 'X',
+ 'N', 'G', 'A', 'A', 'I',
+ 'N', 'G', 'G', 'E', 'E',
+ 'N', 'G', 'G', 'E', 'N',
+ 'N', 'G', 'G', 'O', 'O',
+ 'N', 'G', 'I', 'E', 'P',
+ 'N', 'G', 'I', 'E', 'X',
+ 'N', 'G', 'O', 'E', 'H',
+ 'N', 'G', 'U', 'O', 'T',
+ 'N', 'G', 'U', 'O', 'X',
+ 'N', 'I', 'E', 'U', 'N',
+ 'N', 'I', 'G', 'H', 'T',
+ 'N', 'I', 'S', 'A', 'G',
+ 'N', 'J', 'I', 'E', 'P',
+ 'N', 'J', 'I', 'E', 'T',
+ 'N', 'J', 'I', 'E', 'X',
+ 'N', 'J', 'U', 'O', 'X',
+ 'N', 'J', 'U', 'R', 'X',
+ 'N', 'J', 'Y', 'R', 'X',
+ 'N', 'N', 'G', 'A', 'A',
+ 'N', 'N', 'G', 'I', 'I',
+ 'N', 'N', 'G', 'O', 'O',
+ 'N', 'O', 'O', 'N', 'U',
+ 'N', 'O', 'R', 'T', 'H',
+ 'N', 'O', 'T', 'C', 'H',
+ 'N', 'O', 'T', 'E', 'S',
+ 'N', 'O', 'T', 'T', 'O',
+ 'N', 'R', 'U', 'R', 'X',
+ 'N', 'R', 'Y', 'R', 'X',
+ 'N', 'U', 'K', 'T', 'A',
+ 'N', 'U', 'N', 'U', 'Z',
+ 'N', 'Y', 'I', 'E', 'P',
+ 'N', 'Y', 'I', 'E', 'T',
+ 'N', 'Y', 'I', 'E', 'X',
+ 'N', 'Y', 'U', 'O', 'P',
+ 'N', 'Y', 'U', 'O', 'X',
+ 'N', 'Z', 'I', 'E', 'P',
+ 'N', 'Z', 'I', 'E', 'X',
+ 'N', 'Z', 'U', 'O', 'X',
+ 'N', 'Z', 'U', 'R', 'X',
+ 'N', 'Z', 'Y', 'R', 'X',
+ 'O', 'B', 'O', 'L', 'S',
+ 'O', 'G', 'H', 'A', 'M',
+ 'O', 'J', 'E', 'O', 'N',
+ 'O', 'K', 'A', 'R', 'A',
+ 'O', 'L', 'I', 'V', 'E',
+ 'O', 'M', 'E', 'G', 'A',
+ 'O', 'N', 'K', 'A', 'R',
+ 'O', 'R', 'I', 'Y', 'A',
+ 'O', 'T', 'H', 'A', 'L',
+ 'O', 'U', 'N', 'C', 'E',
+ 'O', 'U', 'T', 'E', 'R',
+ 'O', 'X', 'E', 'I', 'A',
+ 'P', 'A', 'A', 'T', 'U',
+ 'P', 'A', 'D', 'M', 'A',
+ 'P', 'A', 'N', 'T', 'I',
+ 'P', 'A', 'P', 'E', 'R',
+ 'P', 'A', 'S', 'E', 'Q',
+ 'P', 'A', 'S', 'U', 'Q',
+ 'P', 'A', 'T', 'A', 'H',
+ 'P', 'A', 'T', 'A', 'K',
+ 'P', 'A', 'Z', 'E', 'R',
+ 'P', 'E', 'A', 'C', 'E',
+ 'P', 'E', 'D', 'A', 'L',
+ 'P', 'E', 'E', 'Z', 'I',
+ 'P', 'E', 'H', 'E', 'H',
+ 'P', 'E', 'I', 'T', 'H',
+ 'P', 'E', 'N', 'N', 'Y',
+ 'P', 'E', 'N', 'S', 'U',
+ 'P', 'E', 'P', 'E', 'T',
+ 'P', 'E', 'S', 'H', '2',
+ 'P', 'H', 'U', 'N', 'G',
+ 'P', 'I', 'A', 'N', 'O',
+ 'P', 'I', 'E', 'C', 'E',
+ 'P', 'I', 'E', 'U', 'P',
+ 'P', 'I', 'R', 'I', 'G',
+ 'P', 'L', 'A', 'C', 'E',
+ 'P', 'L', 'A', 'N', 'E',
+ 'P', 'L', 'U', 'T', 'O',
+ 'P', 'O', 'I', 'N', 'T',
+ 'P', 'O', 'N', 'D', 'O',
+ 'P', 'O', 'U', 'N', 'D',
+ 'P', 'O', 'W', 'E', 'R',
+ 'P', 'R', 'I', 'M', 'E',
+ 'P', 'R', 'I', 'N', 'T',
+ 'P', 'R', 'O', 'O', 'F',
+ 'P', 'R', 'O', 'V', 'E',
+ 'P', 'S', 'I', 'L', 'I',
+ 'Q', 'A', 'A', 'F', 'U',
+ 'Q', 'A', 'D', 'M', 'A',
+ 'Q', 'A', 'T', 'A', 'N',
+ 'Q', 'H', 'W', 'A', 'A',
+ 'Q', 'H', 'W', 'E', 'E',
+ 'Q', 'U', 'E', 'E', 'N',
+ 'Q', 'U', 'I', 'L', 'L',
+ 'Q', 'U', 'O', 'T', 'E',
+ 'R', 'A', 'I', 'D', 'A',
+ 'R', 'A', 'I', 'D', 'O',
+ 'R', 'A', 'N', 'G', 'E',
+ 'R', 'A', 'S', 'H', 'A',
+ 'R', 'A', 'T', 'I', 'O',
+ 'R', 'B', 'A', 'S', 'A',
+ 'R', 'E', 'A', 'C', 'H',
+ 'R', 'E', 'L', 'A', 'A',
+ 'R', 'E', 'V', 'I', 'A',
+ 'R', 'E', 'V', 'M', 'A',
+ 'R', 'G', 'Y', 'A', 'N',
+ 'R', 'I', 'C', 'E', 'M',
+ 'R', 'I', 'E', 'U', 'L',
+ 'R', 'I', 'G', 'H', 'T',
+ 'R', 'I', 'T', 'S', 'I',
+ 'R', 'I', 'V', 'E', 'R',
+ 'R', 'N', 'O', 'O', 'N',
+ 'R', 'O', 'B', 'A', 'T',
+ 'R', 'O', 'M', 'A', 'N',
+ 'R', 'O', 'U', 'N', 'D',
+ 'R', 'R', 'U', 'O', 'X',
+ 'R', 'R', 'U', 'R', 'X',
+ 'R', 'R', 'Y', 'R', 'X',
+ 'R', 'T', 'A', 'G', 'S',
+ 'R', 'U', 'M', 'A', 'I',
+ 'R', 'U', 'N', 'I', 'C',
+ 'R', 'U', 'P', 'E', 'E',
+ 'R', 'U', 'P', 'I', 'I',
+ 'R', 'W', 'A', 'H', 'A',
+ 'S', 'A', 'D', 'H', 'E',
+ 'S', 'A', 'F', 'H', 'A',
+ 'S', 'A', 'L', 'A', 'M',
+ 'S', 'A', 'L', 'L', 'A',
+ 'S', 'A', 'M', 'K', 'A',
+ 'S', 'A', 'M', 'P', 'I',
+ 'S', 'A', 'N', 'A', 'H',
+ 'S', 'A', 'S', 'A', 'K',
+ 'S', 'A', 'U', 'I', 'L',
+ 'S', 'B', 'R', 'U', 'L',
+ 'S', 'C', 'H', 'W', 'A',
+ 'S', 'D', 'O', 'N', 'G',
+ 'S', 'E', 'E', 'N', 'U',
+ 'S', 'E', 'G', 'N', 'O',
+ 'S', 'E', 'G', 'O', 'L',
+ 'S', 'E', 'N', 'T', 'I',
+ 'S', 'E', 'N', 'T', 'O',
+ 'S', 'E', 'V', 'E', 'N',
+ 'S', 'H', 'A', 'B', '6',
+ 'S', 'H', 'A', 'D', 'E',
+ 'S', 'H', 'A', 'N', 'G',
+ 'S', 'H', 'A', 'R', '2',
+ 'S', 'H', 'A', 'R', 'P',
+ 'S', 'H', 'A', 'R', 'U',
+ 'S', 'H', 'C', 'H', 'A',
+ 'S', 'H', 'E', 'E', 'N',
+ 'S', 'H', 'E', 'E', 'P',
+ 'S', 'H', 'E', 'G', '9',
+ 'S', 'H', 'E', 'L', 'F',
+ 'S', 'H', 'E', 'L', 'L',
+ 'S', 'H', 'E', 'S', 'H',
+ 'S', 'H', 'E', 'V', 'A',
+ 'S', 'H', 'I', 'F', 'T',
+ 'S', 'H', 'I', 'I', 'N',
+ 'S', 'H', 'I', 'M', 'A',
+ 'S', 'H', 'I', 'T', 'A',
+ 'S', 'H', 'O', 'G', 'I',
+ 'S', 'H', 'O', 'O', 'T',
+ 'S', 'H', 'O', 'R', 'T',
+ 'S', 'H', 'U', 'O', 'P',
+ 'S', 'H', 'U', 'O', 'X',
+ 'S', 'H', 'U', 'R', 'X',
+ 'S', 'H', 'W', 'A', 'A',
+ 'S', 'H', 'W', 'I', 'I',
+ 'S', 'H', 'W', 'O', 'O',
+ 'S', 'H', 'Y', 'R', 'X',
+ 'S', 'I', 'G', 'E', 'L',
+ 'S', 'I', 'G', 'M', 'A',
+ 'S', 'I', 'G', 'N', 'S',
+ 'S', 'I', 'L', 'A', '3',
+ 'S', 'I', 'X', 'T', 'H',
+ 'S', 'I', 'X', 'T', 'Y',
+ 'S', 'K', 'U', 'L', 'L',
+ 'S', 'L', 'A', 'S', 'H',
+ 'S', 'L', 'A', 'V', 'E',
+ 'S', 'L', 'I', 'C', 'E',
+ 'S', 'L', 'I', 'N', 'G',
+ 'S', 'L', 'O', 'P', 'E',
+ 'S', 'L', 'O', 'V', 'O',
+ 'S', 'M', 'A', 'L', 'L',
+ 'S', 'M', 'A', 'S', 'H',
+ 'S', 'M', 'E', 'A', 'R',
+ 'S', 'M', 'I', 'L', 'E',
+ 'S', 'N', 'A', 'K', 'E',
+ 'S', 'N', 'O', 'U', 'T',
+ 'S', 'O', 'U', 'N', 'D',
+ 'S', 'O', 'U', 'T', 'H',
+ 'S', 'P', 'A', 'C', 'E',
+ 'S', 'P', 'A', 'D', 'E',
+ 'S', 'P', 'E', 'A', 'R',
+ 'S', 'P', 'I', 'C', 'E',
+ 'S', 'P', 'O', 'O', 'N',
+ 'S', 'Q', 'U', 'A', 'T',
+ 'S', 'S', 'I', 'E', 'P',
+ 'S', 'S', 'I', 'E', 'X',
+ 'S', 'S', 'Y', 'R', 'X',
+ 'S', 'T', 'A', 'F', 'F',
+ 'S', 'T', 'A', 'N', 'D',
+ 'S', 'T', 'A', 'R', 'K',
+ 'S', 'T', 'A', 'R', 'T',
+ 'S', 'T', 'E', 'A', 'M',
+ 'S', 'T', 'I', 'L', 'E',
+ 'S', 'T', 'I', 'L', 'L',
+ 'S', 'T', 'O', 'C', 'K',
+ 'S', 'T', 'O', 'N', 'E',
+ 'S', 'T', 'O', 'V', 'E',
+ 'S', 'T', 'U', 'D', 'Y',
+ 'S', 'U', 'H', 'U', 'R',
+ 'S', 'U', 'K', 'U', 'N',
+ 'S', 'W', 'A', 'S', 'H',
+ 'S', 'W', 'E', 'E', 'T',
+ 'S', 'W', 'O', 'R', 'D',
+ 'S', 'W', 'U', 'N', 'G',
+ 'S', 'Y', 'R', 'M', 'A',
+ 'T', 'A', 'B', 'L', 'E',
+ 'T', 'A', 'M', 'I', 'L',
+ 'T', 'A', 'P', 'E', 'R',
+ 'T', 'C', 'H', 'E', 'H',
+ 'T', 'E', 'G', 'E', 'H',
+ 'T', 'E', 'H', 'E', 'H',
+ 'T', 'E', 'I', 'W', 'S',
+ 'T', 'E', 'V', 'I', 'R',
+ 'T', 'H', 'E', 'M', 'A',
+ 'T', 'H', 'E', 'R', 'E',
+ 'T', 'H', 'E', 'T', 'A',
+ 'T', 'H', 'I', 'G', 'H',
+ 'T', 'H', 'I', 'R', 'D',
+ 'T', 'H', 'I', 'T', 'A',
+ 'T', 'H', 'O', 'N', 'G',
+ 'T', 'H', 'O', 'R', 'N',
+ 'T', 'H', 'R', 'E', 'E',
+ 'T', 'H', 'U', 'N', 'G',
+ 'T', 'H', 'U', 'R', 'S',
+ 'T', 'H', 'W', 'A', 'A',
+ 'T', 'I', 'A', 'R', 'A',
+ 'T', 'I', 'G', 'E', 'R',
+ 'T', 'I', 'G', 'H', 'T',
+ 'T', 'I', 'L', 'D', 'E',
+ 'T', 'I', 'M', 'E', 'S',
+ 'T', 'I', 'N', 'N', 'E',
+ 'T', 'I', 'P', 'P', 'I',
+ 'T', 'I', 'T', 'L', 'O',
+ 'T', 'I', 'W', 'A', 'Z',
+ 'T', 'L', 'H', 'E', 'E',
+ 'T', 'O', 'N', 'A', 'L',
+ 'T', 'O', 'N', 'O', 'S',
+ 'T', 'O', 'O', 'T', 'H',
+ 'T', 'O', 'T', 'A', 'L',
+ 'T', 'R', 'A', 'C', 'K',
+ 'T', 'R', 'A', 'D', 'E',
+ 'T', 'R', 'I', 'O', 'N',
+ 'T', 'R', 'U', 'N', 'K',
+ 'T', 'R', 'U', 'T', 'H',
+ 'T', 'S', 'A', 'D', 'I',
+ 'T', 'S', 'E', 'R', 'E',
+ 'T', 'S', 'H', 'E', 'G',
+ 'T', 'S', 'H', 'E', 'S',
+ 'T', 'T', 'S', 'E', 'E',
+ 'T', 'T', 'T', 'H', 'A',
+ 'T', 'U', 'N', 'N', 'Y',
+ 'T', 'U', 'R', 'O', '2',
+ 'T', 'U', 'U', 'M', 'U',
+ 'U', 'D', 'A', 'A', 'T',
+ 'U', 'K', 'A', 'R', 'A',
+ 'U', 'M', 'B', 'I', 'N',
+ 'U', 'N', 'C', 'I', 'A',
+ 'U', 'N', 'D', 'E', 'R',
+ 'U', 'N', 'I', 'O', 'N',
+ 'U', 'N', 'I', 'T', 'Y',
+ 'U', 'P', 'P', 'E', 'R',
+ 'U', 'R', 'U', 'D', 'A',
+ 'U', 'S', 'S', 'U', '3',
+ 'U', 'T', 'U', 'K', 'I',
+ 'V', 'A', 'A', 'V', 'U',
+ 'V', 'A', 'R', 'I', 'A',
+ 'V', 'A', 'R', 'Y', 'S',
+ 'V', 'A', 'S', 'I', 'S',
+ 'V', 'A', 'T', 'H', 'Y',
+ 'V', 'E', 'R', 'G', 'E',
+ 'V', 'E', 'R', 'S', 'E',
+ 'V', 'E', 'S', 'T', 'A',
+ 'V', 'I', 'R', 'G', 'A',
+ 'V', 'I', 'R', 'G', 'O',
+ 'V', 'O', 'C', 'A', 'L',
+ 'V', 'O', 'W', 'E', 'L',
+ 'V', 'Z', 'M', 'E', 'T',
+ 'W', 'A', 'A', 'V', 'U',
+ 'W', 'A', 'S', 'L', 'A',
+ 'W', 'A', 'T', 'C', 'H',
+ 'W', 'A', 'T', 'E', 'R',
+ 'W', 'A', 'T', 'T', 'O',
+ 'W', 'H', 'E', 'A', 'T',
+ 'W', 'H', 'E', 'E', 'L',
+ 'W', 'H', 'I', 'T', 'E',
+ 'W', 'H', 'O', 'L', 'E',
+ 'W', 'I', 'D', 'T', 'H',
+ 'W', 'I', 'N', 'D', 'U',
+ 'W', 'I', 'N', 'J', 'A',
+ 'W', 'O', 'M', 'A', 'N',
+ 'W', 'R', 'O', 'N', 'G',
+ 'W', 'U', 'N', 'J', 'O',
+ 'X', 'I', 'R', 'O', 'N',
+ 'Y', 'A', '-', 'Y', 'O',
+ 'Y', 'A', 'A', 'D', 'O',
+ 'Y', 'A', 'A', 'R', 'U',
+ 'Y', 'A', 'D', 'D', 'H',
+ 'Y', 'A', 'G', 'H', 'H',
+ 'Y', 'A', 'K', 'H', 'H',
+ 'Y', 'E', 'O', '-', 'O',
+ 'Y', 'E', 'O', '-', 'U',
+ 'Y', 'E', 'R', 'A', 'H',
+ 'Y', 'E', 'S', 'T', 'U',
+ 'Y', 'E', 'T', 'I', 'V',
+ 'Y', 'I', 'Z', 'E', 'T',
+ 'Y', 'O', '-', 'Y', 'A',
+ 'Y', 'U', '-', 'E', 'O',
+ 'Y', 'U', '-', 'Y', 'E',
+ 'Z', 'A', 'Q', 'E', 'F',
+ 'Z', 'A', 'R', 'Q', 'A',
+ 'Z', 'A', 'Y', 'I', 'N',
+ 'Z', 'H', 'A', 'I', 'N',
+ 'Z', 'H', 'U', 'O', 'P',
+ 'Z', 'H', 'U', 'O', 'X',
+ 'Z', 'H', 'U', 'R', 'X',
+ 'Z', 'H', 'Y', 'R', 'X',
+ 'Z', 'I', 'L', 'D', 'E',
+ 'Z', 'I', 'N', 'O', 'R',
+ 'Z', 'L', 'A', 'M', 'A',
+ 'Z', 'U', 'B', 'U', 'R',
+ 'Z', 'Y', 'G', 'O', 'S',
+ 'Z', 'Z', 'I', 'E', 'P',
+ 'Z', 'Z', 'I', 'E', 'T',
+ 'Z', 'Z', 'I', 'E', 'X',
+ 'Z', 'Z', 'U', 'R', 'X',
+ 'Z', 'Z', 'Y', 'R', 'X',
+ '-', 'K', 'H', 'Y', 'I', 'L',
+ '-', 'K', 'H', 'Y', 'U', 'D',
+ 'A', 'C', 'C', 'E', 'N', 'T',
+ 'A', 'E', 'G', 'E', 'A', 'N',
+ 'A', 'I', 'H', 'V', 'U', 'S',
+ 'A', 'I', 'K', 'A', 'R', 'A',
+ 'A', 'L', 'A', 'Y', 'H', 'E',
+ 'A', 'L', 'M', 'O', 'S', 'T',
+ 'A', 'M', 'O', 'U', 'N', 'T',
+ 'A', 'N', 'C', 'H', 'O', 'R',
+ 'A', 'N', 'C', 'O', 'R', 'A',
+ 'A', 'P', 'A', 'A', 'T', 'O',
+ 'A', 'P', 'L', 'O', 'U', 'N',
+ 'A', 'R', 'A', 'B', 'I', 'C',
+ 'A', 'R', 'A', 'E', 'A', 'E',
+ 'A', 'R', 'L', 'A', 'U', 'G',
+ 'A', 'R', 'M', 'O', 'U', 'R',
+ 'A', 'R', 'O', 'U', 'N', 'D',
+ 'A', 'R', 'O', 'U', 'R', 'A',
+ 'A', 'R', 'R', 'I', 'V', 'E',
+ 'A', 'R', 'R', 'O', 'W', 'S',
+ 'A', 'R', 'S', 'E', 'O', 'S',
+ 'A', 'R', 'T', 'A', 'B', 'E',
+ 'A', 'R', 'U', 'H', 'U', 'A',
+ 'A', 'S', 'C', 'E', 'N', 'T',
+ 'A', 'S', 'H', 'G', 'A', 'B',
+ 'A', 'S', 'Y', 'U', 'R', 'A',
+ 'A', 'U', 'G', 'U', 'S', 'T',
+ 'A', 'U', 'T', 'U', 'M', 'N',
+ 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'B', 'A', 'D', 'G', 'E', 'R',
+ 'B', 'A', 'H', 'A', 'R', '2',
+ 'B', 'A', 'I', 'M', 'A', 'I',
+ 'B', 'A', 'L', 'L', 'O', 'T',
+ 'B', 'A', 'L', 'U', 'D', 'A',
+ 'B', 'A', 'M', 'B', 'O', 'O',
+ 'B', 'A', 'N', 'T', 'O', 'C',
+ 'B', 'A', 'R', 'L', 'E', 'Y',
+ 'B', 'A', 'R', 'R', 'E', 'D',
+ 'B', 'A', 'R', 'R', 'E', 'E',
+ 'B', 'E', 'A', 'M', 'E', 'D',
+ 'B', 'E', 'F', 'O', 'R', 'E',
+ 'B', 'E', 'R', 'B', 'E', 'R',
+ 'B', 'E', 'S', 'I', 'D', 'E',
+ 'B', 'E', 'Y', 'Y', 'A', 'L',
+ 'B', 'I', 'N', 'A', 'R', 'Y',
+ 'B', 'I', 'S', 'H', 'O', 'P',
+ 'B', 'I', 'T', 'I', 'N', 'G',
+ 'B', 'I', 'T', 'T', 'E', 'R',
+ 'B', 'O', 'R', 'U', 'T', 'O',
+ 'B', 'O', 'T', 'T', 'O', 'M',
+ 'B', 'O', 'W', 'T', 'I', 'E',
+ 'B', 'R', 'A', 'N', 'C', 'H',
+ 'B', 'R', 'E', 'A', 'T', 'H',
+ 'B', 'R', 'E', 'V', 'I', 'S',
+ 'B', 'R', 'I', 'D', 'G', 'E',
+ 'B', 'R', 'O', 'K', 'E', 'N',
+ 'B', 'R', 'O', 'N', 'Z', 'E',
+ 'B', 'U', 'C', 'K', 'L', 'E',
+ 'B', 'U', 'L', 'L', 'E', 'T',
+ 'C', 'A', 'M', 'N', 'U', 'C',
+ 'C', 'A', 'N', 'C', 'E', 'L',
+ 'C', 'A', 'N', 'C', 'E', 'R',
+ 'C', 'A', 'N', 'D', 'R', 'A',
+ 'C', 'A', 'R', 'I', 'A', 'N',
+ 'C', 'A', 'T', 'A', 'W', 'A',
+ 'C', 'E', 'N', 'T', 'R', 'E',
+ 'C', 'E', 'R', '-', 'W', 'A',
+ 'C', 'H', 'A', 'M', 'K', 'O',
+ 'C', 'H', 'A', 'N', 'G', 'E',
+ 'C', 'H', 'I', 'L', 'L', 'U',
+ 'C', 'H', 'I', 'R', 'E', 'T',
+ 'C', 'H', 'I', 'R', 'O', 'N',
+ 'C', 'H', 'R', 'I', 'V', 'I',
+ 'C', 'H', 'R', 'O', 'M', 'A',
+ 'C', 'H', 'U', 'R', 'C', 'H',
+ 'C', 'I', 'R', 'C', 'L', 'E',
+ 'C', 'L', 'E', 'F', '-', '1',
+ 'C', 'L', 'E', 'F', '-', '2',
+ 'C', 'L', 'I', 'V', 'I', 'S',
+ 'C', 'L', 'O', 'S', 'E', 'D',
+ 'C', 'O', 'F', 'F', 'I', 'N',
+ 'C', 'O', 'L', 'U', 'M', 'N',
+ 'C', 'O', 'M', 'I', 'N', 'G',
+ 'C', 'O', 'M', 'M', 'O', 'N',
+ 'C', 'O', 'P', 'T', 'I', 'C',
+ 'C', 'O', 'R', 'N', 'E', 'R',
+ 'C', 'O', 'R', 'P', 'S', 'E',
+ 'C', 'R', 'E', 'D', 'I', 'T',
+ 'C', 'U', 'R', 'V', 'E', 'D',
+ 'D', 'A', 'A', 'D', 'H', 'U',
+ 'D', 'A', 'G', 'E', 'S', 'H',
+ 'D', 'A', 'G', 'G', 'E', 'R',
+ 'D', 'A', 'L', 'A', 'T', 'H',
+ 'D', 'A', 'M', 'A', 'R', 'U',
+ 'D', 'A', 'S', 'E', 'I', 'A',
+ 'D', 'A', 'S', 'H', 'E', 'D',
+ 'D', 'D', 'A', 'H', 'A', 'L',
+ 'D', 'E', 'G', 'R', 'E', 'E',
+ 'D', 'E', 'L', 'E', 'T', 'E',
+ 'D', 'E', 'N', 'N', 'E', 'N',
+ 'D', 'E', 'N', 'T', 'A', 'L',
+ 'D', 'E', 'V', 'I', 'C', 'E',
+ 'D', 'H', 'A', 'A', 'L', 'U',
+ 'D', 'H', 'A', 'R', 'M', 'A',
+ 'D', 'I', 'E', 'S', 'I', 'S',
+ 'D', 'I', 'G', 'R', 'A', 'M',
+ 'D', 'I', 'P', 'P', 'E', 'R',
+ 'D', 'I', 'R', 'E', 'C', 'T',
+ 'D', 'I', 'V', 'I', 'D', 'E',
+ 'D', 'J', 'E', 'R', 'V', 'I',
+ 'D', 'O', 'L', 'I', 'U', 'M',
+ 'D', 'O', 'L', 'L', 'A', 'R',
+ 'D', 'O', 'M', 'A', 'I', 'N',
+ 'D', 'O', 'M', 'I', 'N', 'O',
+ 'D', 'O', 'T', 'S', '-', '1',
+ 'D', 'O', 'T', 'S', '-', '2',
+ 'D', 'O', 'T', 'S', '-', '3',
+ 'D', 'O', 'T', 'S', '-', '4',
+ 'D', 'O', 'T', 'S', '-', '5',
+ 'D', 'O', 'T', 'S', '-', '6',
+ 'D', 'O', 'T', 'S', '-', '7',
+ 'D', 'O', 'T', 'S', '-', '8',
+ 'D', 'O', 'T', 'T', 'E', 'D',
+ 'D', 'O', 'U', 'B', 'L', 'E',
+ 'D', 'R', 'A', 'G', 'O', 'N',
+ 'D', 'U', 'T', 'I', 'E', 'S',
+ 'E', 'I', 'G', 'H', 'T', 'H',
+ 'E', 'I', 'G', 'H', 'T', 'Y',
+ 'E', 'L', 'E', 'V', 'E', 'N',
+ 'E', 'N', 'D', 'I', 'N', 'G',
+ 'E', 'Q', 'U', 'A', 'L', 'S',
+ 'E', 'S', 'C', 'A', 'P', 'E',
+ 'E', 'T', 'E', 'R', 'O', 'N',
+ 'E', 'X', 'C', 'E', 'S', 'S',
+ 'E', 'X', 'I', 'S', 'T', 'S',
+ 'E', 'Y', 'A', 'N', 'N', 'A',
+ 'F', 'A', 'C', 'E', '-', '1',
+ 'F', 'A', 'C', 'E', '-', '2',
+ 'F', 'A', 'C', 'E', '-', '3',
+ 'F', 'A', 'C', 'E', '-', '4',
+ 'F', 'A', 'C', 'E', '-', '5',
+ 'F', 'A', 'C', 'E', '-', '6',
+ 'F', 'A', 'C', 'T', 'O', 'R',
+ 'F', 'A', 'M', 'I', 'L', 'Y',
+ 'F', 'A', 'T', 'H', 'E', 'R',
+ 'F', 'E', 'M', 'A', 'L', 'E',
+ 'F', 'H', 'T', 'O', 'R', 'A',
+ 'F', 'I', 'F', 'T', 'H', 'S',
+ 'F', 'I', 'G', 'U', 'R', 'E',
+ 'F', 'I', 'L', 'L', 'E', 'D',
+ 'F', 'I', 'L', 'L', 'E', 'R',
+ 'F', 'I', 'N', 'I', 'T', 'E',
+ 'F', 'L', 'A', 'G', '-', '1',
+ 'F', 'L', 'A', 'G', '-', '2',
+ 'F', 'L', 'A', 'G', '-', '3',
+ 'F', 'L', 'A', 'G', '-', '4',
+ 'F', 'L', 'A', 'G', '-', '5',
+ 'F', 'L', 'E', 'X', 'U', 'S',
+ 'F', 'L', 'I', 'G', 'H', 'T',
+ 'F', 'L', 'O', 'R', 'A', 'L',
+ 'F', 'L', 'O', 'W', 'E', 'R',
+ 'F', 'O', 'R', 'C', 'E', 'S',
+ 'F', 'O', 'R', 'K', 'E', 'D',
+ 'F', 'O', 'U', 'R', 'T', 'H',
+ 'F', 'R', 'E', 'N', 'C', 'H',
+ 'F', 'T', 'H', 'O', 'R', 'A',
+ 'G', 'A', 'N', 'G', 'I', 'A',
+ 'G', 'A', 'P', 'P', 'E', 'D',
+ 'G', 'A', 'S', 'H', 'A', 'N',
+ 'G', 'E', 'D', 'O', 'L', 'A',
+ 'G', 'E', 'M', 'I', 'N', 'I',
+ 'G', 'E', 'N', 'I', 'K', 'I',
+ 'G', 'E', 'N', 'T', 'L', 'E',
+ 'G', 'E', 'R', 'E', 'S', 'H',
+ 'G', 'E', 'R', 'M', 'A', 'N',
+ 'G', 'H', 'A', 'I', 'N', 'U',
+ 'G', 'H', 'A', 'M', 'A', 'L',
+ 'G', 'H', 'U', 'N', 'N', 'A',
+ 'G', 'L', 'E', 'I', 'C', 'H',
+ 'G', 'O', 'R', 'G', 'O', 'N',
+ 'G', 'O', 'T', 'H', 'I', 'C',
+ 'G', 'R', 'A', 'M', 'M', 'A',
+ 'G', 'R', 'A', 'T', 'E', 'R',
+ 'G', 'R', 'O', 'U', 'N', 'D',
+ 'G', 'U', 'R', 'A', 'M', 'U',
+ 'G', 'U', 'R', 'U', 'S', 'H',
+ 'H', '-', 'T', 'Y', 'P', 'E',
+ 'H', 'A', 'F', 'U', 'K', 'H',
+ 'H', 'A', 'G', 'L', 'A', 'Z',
+ 'H', 'A', 'M', 'M', 'E', 'R',
+ 'H', 'A', 'N', 'G', 'U', 'L',
+ 'H', 'E', 'A', 'D', 'E', 'D',
+ 'H', 'E', 'A', 'V', 'E', 'N',
+ 'H', 'E', 'B', 'R', 'E', 'W',
+ 'H', 'E', 'I', 'S', 'E', 'I',
+ 'H', 'E', 'L', 'M', 'E', 'T',
+ 'H', 'E', 'R', 'M', 'E', 'S',
+ 'H', 'E', 'R', 'U', 'T', 'U',
+ 'H', 'I', 'D', 'I', 'N', 'G',
+ 'H', 'U', 'I', 'I', 'T', 'O',
+ 'H', 'Y', 'P', 'H', 'E', 'N',
+ 'I', '-', 'B', 'E', 'A', 'M',
+ 'I', 'L', 'I', 'M', 'M', 'U',
+ 'I', 'N', 'G', 'W', 'A', 'Z',
+ 'I', 'N', 'I', 'N', 'G', 'U',
+ 'I', 'N', 'S', 'E', 'C', 'T',
+ 'I', 'N', 'S', 'I', 'D', 'E',
+ 'I', 'S', 'A', 'K', 'I', 'A',
+ 'I', 'S', 'S', 'H', 'A', 'R',
+ 'I', 'T', 'A', 'L', 'I', 'C',
+ 'I', 'Y', 'A', 'N', 'N', 'A',
+ 'J', 'O', 'I', 'N', 'E', 'D',
+ 'J', 'O', 'I', 'N', 'E', 'R',
+ 'J', 'O', 'Y', 'O', 'U', 'S',
+ 'K', 'A', 'N', 'A', 'K', 'O',
+ 'K', 'A', 'N', 'G', 'X', 'I',
+ 'K', 'A', 'S', 'K', 'A', 'L',
+ 'K', 'A', 'T', 'A', 'V', 'A',
+ 'K', 'A', 'V', 'Y', 'K', 'A',
+ 'K', 'A', 'Z', 'A', 'K', 'H',
+ 'K', 'E', 'F', 'U', 'L', 'A',
+ 'K', 'E', 'L', 'V', 'I', 'N',
+ 'K', 'E', 'M', 'P', 'L', 'I',
+ 'K', 'E', 'M', 'P', 'U', 'L',
+ 'K', 'E', 'Y', 'C', 'A', 'P',
+ 'K', 'H', 'A', 'N', 'D', 'A',
+ 'K', 'H', 'O', 'M', 'U', 'T',
+ 'K', 'I', 'S', 'I', 'M', '5',
+ 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'K', 'L', 'A', 'S', 'M', 'A',
+ 'K', 'L', 'I', 'T', 'O', 'N',
+ 'K', 'N', 'I', 'G', 'H', 'T',
+ 'K', 'O', 'R', 'E', 'A', 'N',
+ 'K', 'O', 'R', 'U', 'N', 'A',
+ 'K', 'U', 'S', 'H', 'U', '2',
+ 'K', 'W', 'U', '3', '1', '8',
+ 'K', 'Y', 'U', 'R', 'I', 'I',
+ 'L', '-', 'T', 'Y', 'P', 'E',
+ 'L', 'A', 'H', 'S', 'H', 'U',
+ 'L', 'A', 'M', 'A', 'D', 'H',
+ 'L', 'A', 'M', 'B', 'D', 'A',
+ 'L', 'A', 'R', 'G', 'E', 'R',
+ 'L', 'A', 'U', 'K', 'A', 'Z',
+ 'L', 'E', 'A', 'D', 'E', 'R',
+ 'L', 'E', 'G', 'I', 'O', 'N',
+ 'L', 'E', 'I', 'M', 'M', 'A',
+ 'L', 'E', 'N', 'G', 'T', 'H',
+ 'L', 'E', 'P', 'C', 'H', 'A',
+ 'L', 'E', 'S', 'S', 'E', 'R',
+ 'L', 'E', 'T', 'T', 'E', 'R',
+ 'L', 'I', 'L', 'I', 'T', 'H',
+ 'L', 'I', 'M', 'M', 'U', '2',
+ 'L', 'I', 'M', 'M', 'U', '4',
+ 'L', 'I', 'N', 'E', '-', '1',
+ 'L', 'I', 'N', 'E', '-', '3',
+ 'L', 'I', 'N', 'E', '-', '7',
+ 'L', 'I', 'N', 'E', '-', '9',
+ 'L', 'I', 'N', 'E', 'A', 'R',
+ 'L', 'I', 'Q', 'U', 'I', 'D',
+ 'L', 'I', 'T', 'T', 'L', 'E',
+ 'L', 'U', 'N', 'A', 'T', 'E',
+ 'L', 'Y', 'C', 'I', 'A', 'N',
+ 'L', 'Y', 'D', 'I', 'A', 'N',
+ 'M', 'A', 'C', 'R', 'O', 'N',
+ 'M', 'A', 'D', 'D', 'A', 'H',
+ 'M', 'A', 'I', 'D', 'E', 'N',
+ 'M', 'A', 'N', 'C', 'H', 'U',
+ 'M', 'A', 'N', 'N', 'A', 'Z',
+ 'M', 'A', 'R', 'K', '-', '1',
+ 'M', 'A', 'R', 'K', '-', '2',
+ 'M', 'A', 'R', 'K', '-', '3',
+ 'M', 'A', 'R', 'K', '-', '4',
+ 'M', 'A', 'R', 'K', 'E', 'R',
+ 'M', 'A', 'R', 'U', 'K', 'U',
+ 'M', 'A', 'S', 'O', 'R', 'A',
+ 'M', 'A', 'T', 'R', 'I', 'X',
+ 'M', 'A', 'X', 'I', 'M', 'A',
+ 'M', 'E', 'D', 'I', 'A', 'L',
+ 'M', 'E', 'D', 'I', 'U', 'M',
+ 'M', 'E', 'G', 'A', 'L', 'I',
+ 'M', 'E', 'M', 'B', 'E', 'R',
+ 'M', 'E', 'R', 'K', 'H', 'A',
+ 'M', 'E', 'T', 'R', 'I', 'A',
+ 'M', 'I', 'D', 'D', 'L', 'E',
+ 'M', 'I', 'K', 'R', 'O', 'N',
+ 'M', 'I', 'L', 'L', 'E', 'T',
+ 'M', 'I', 'N', 'I', 'M', 'A',
+ 'M', 'O', 'D', 'E', 'L', 'S',
+ 'M', 'O', 'D', 'U', 'L', 'O',
+ 'M', 'O', 'R', 'T', 'A', 'R',
+ 'M', 'O', 'T', 'H', 'E', 'R',
+ 'M', 'U', 'C', 'A', 'A', 'D',
+ 'M', 'U', 'N', 'S', 'U', 'B',
+ 'M', 'U', 'Q', 'D', 'A', 'M',
+ 'M', 'U', 'R', 'G', 'U', '2',
+ 'N', '-', 'C', 'R', 'E', 'E',
+ 'N', 'A', 'R', 'R', 'O', 'W',
+ 'N', 'A', 'U', 'D', 'I', 'Z',
+ 'N', 'A', 'U', 'T', 'H', 'S',
+ 'N', 'A', 'X', 'I', 'A', 'N',
+ 'N', 'E', 'N', 'A', 'N', 'O',
+ 'N', 'E', 'S', 'T', 'E', 'D',
+ 'N', 'E', 'U', 'T', 'E', 'R',
+ 'N', 'I', 'N', 'D', 'A', '2',
+ 'N', 'I', 'N', 'E', 'T', 'Y',
+ 'N', 'I', 'R', 'U', 'G', 'U',
+ 'N', 'O', 'K', 'H', 'U', 'K',
+ 'N', 'O', 'R', 'M', 'A', 'L',
+ 'N', 'U', 'B', 'I', 'A', 'N',
+ 'N', 'U', 'M', 'B', 'E', 'R',
+ 'N', 'U', 'M', 'E', 'R', 'O',
+ 'O', 'B', 'E', 'L', 'O', 'S',
+ 'O', 'B', 'E', 'L', 'U', 'S',
+ 'O', 'B', 'J', 'E', 'C', 'T',
+ 'O', 'G', 'O', 'N', 'E', 'K',
+ 'O', 'L', 'I', 'G', 'O', 'N',
+ 'O', 'M', 'A', 'L', 'O', 'N',
+ 'O', 'P', 'E', 'N', '-', 'P',
+ 'O', 'P', 'P', 'O', 'S', 'E',
+ 'O', 'P', 'T', 'I', 'O', 'N',
+ 'O', 'R', 'C', 'H', 'I', 'D',
+ 'O', 'R', 'I', 'G', 'I', 'N',
+ 'O', 'R', 'N', 'A', 'T', 'E',
+ 'O', 'T', 'T', 'A', 'V', 'A',
+ 'O', 'U', 'N', 'K', 'I', 'A',
+ 'O', 'X', 'E', 'I', 'A', 'I',
+ 'O', 'Y', 'A', 'N', 'N', 'A',
+ 'P', 'A', 'I', 'R', 'E', 'D',
+ 'P', 'A', 'L', 'L', 'A', 'S',
+ 'P', 'A', 'L', 'U', 'T', 'A',
+ 'P', 'A', 'M', 'A', 'D', 'A',
+ 'P', 'A', 'S', 'H', 'T', 'A',
+ 'P', 'E', 'N', 'C', 'I', 'L',
+ 'P', 'E', 'N', 'I', 'H', 'I',
+ 'P', 'E', 'O', 'R', 'T', 'H',
+ 'P', 'E', 'R', 'S', 'O', 'N',
+ 'P', 'E', 'R', 'T', 'H', 'O',
+ 'P', 'E', 'S', 'E', 'T', 'A',
+ 'P', 'H', 'N', 'A', 'E', 'K',
+ 'P', 'H', 'R', 'A', 'S', 'E',
+ 'P', 'I', 'A', 'S', 'M', 'A',
+ 'P', 'I', 'K', 'U', 'R', 'U',
+ 'P', 'I', 'P', 'I', 'N', 'G',
+ 'P', 'I', 'S', 'C', 'E', 'S',
+ 'P', 'L', 'A', 'N', 'C', 'K',
+ 'P', 'L', 'O', 'P', 'H', 'U',
+ 'P', 'L', 'U', 'M', 'E', 'D',
+ 'P', 'O', 'E', 'T', 'I', 'C',
+ 'P', 'O', 'E', 'T', 'R', 'Y',
+ 'P', 'O', 'I', 'N', 'T', 'O',
+ 'P', 'O', 'K', 'O', 'J', 'I',
+ 'P', 'O', 'S', 'T', 'A', 'L',
+ 'P', 'O', 'W', 'E', 'R', 'S',
+ 'P', 'R', 'O', 'T', 'O', 'S',
+ 'P', 'S', 'I', 'L', 'O', 'N',
+ 'P', 'T', 'H', 'A', 'H', 'A',
+ 'P', 'U', 'R', 'I', 'T', 'Y',
+ 'Q', 'A', 'M', 'A', 'T', 'S',
+ 'Q', 'A', 'R', 'N', 'E', 'Y',
+ 'Q', 'E', 'T', 'A', 'N', 'A',
+ 'Q', 'U', 'B', 'U', 'T', 'S',
+ 'R', '-', 'C', 'R', 'E', 'E',
+ 'R', 'A', 'I', 'S', 'E', 'D',
+ 'R', 'A', 'M', 'B', 'A', 'T',
+ 'R', 'A', 'S', 'O', 'U', 'L',
+ 'R', 'E', 'C', 'O', 'R', 'D',
+ 'R', 'E', 'J', 'A', 'N', 'G',
+ 'R', 'E', 'P', 'E', 'A', 'T',
+ 'R', 'E', 'T', 'U', 'R', 'N',
+ 'R', 'H', 'O', 'T', 'I', 'C',
+ 'R', 'I', 'K', 'R', 'I', 'K',
+ 'R', 'I', 'S', 'I', 'N', 'G',
+ 'R', 'I', 'T', 'U', 'A', 'L',
+ 'R', 'N', 'Y', 'I', 'N', 'G',
+ 'R', 'U', 'N', 'O', 'U', 'T',
+ 'S', 'A', 'A', 'D', 'H', 'U',
+ 'S', 'A', 'J', 'D', 'A', 'H',
+ 'S', 'A', 'M', 'E', 'K', 'H',
+ 'S', 'A', 'M', 'Y', 'O', 'K',
+ 'S', 'A', 'N', 'G', 'A', '2',
+ 'S', 'A', 'N', 'N', 'Y', 'A',
+ 'S', 'A', 'T', 'U', 'R', 'N',
+ 'S', 'A', 'Y', 'I', 'S', 'I',
+ 'S', 'C', 'A', 'L', 'E', 'S',
+ 'S', 'C', 'H', 'E', 'M', 'A',
+ 'S', 'C', 'R', 'E', 'E', 'N',
+ 'S', 'C', 'R', 'I', 'P', 'T',
+ 'S', 'E', 'C', 'O', 'N', 'D',
+ 'S', 'E', 'C', 'R', 'E', 'T',
+ 'S', 'E', 'C', 'T', 'O', 'R',
+ 'S', 'E', 'I', 'S', 'M', 'A',
+ 'S', 'E', 'R', 'I', 'F', 'S',
+ 'S', 'E', 'S', 'A', 'M', 'E',
+ 'S', 'H', 'A', 'D', 'D', 'A',
+ 'S', 'H', 'A', 'K', 'T', 'I',
+ 'S', 'H', 'A', 'P', 'E', 'S',
+ 'S', 'H', 'E', 'E', 'N', 'U',
+ 'S', 'H', 'E', 'Q', 'E', 'L',
+ 'S', 'H', 'E', 'S', 'H', '2',
+ 'S', 'H', 'I', 'E', 'L', 'D',
+ 'S', 'H', 'I', 'N', 'I', 'G',
+ 'S', 'H', 'O', 'R', 'T', 'S',
+ 'S', 'H', 'U', 'B', 'U', 'R',
+ 'S', 'I', 'C', 'K', 'L', 'E',
+ 'S', 'I', 'N', 'D', 'H', 'I',
+ 'S', 'I', 'N', 'G', 'L', 'E',
+ 'S', 'I', 'X', 'T', 'H', 'S',
+ 'S', 'K', 'E', 'W', 'E', 'D',
+ 'S', 'L', 'O', 'W', 'L', 'Y',
+ 'S', 'O', 'U', 'R', 'C', 'E',
+ 'S', 'O', 'W', 'I', 'L', 'O',
+ 'S', 'P', 'A', 'T', 'H', 'I',
+ 'S', 'P', 'E', 'E', 'C', 'H',
+ 'S', 'P', 'I', 'R', 'A', 'L',
+ 'S', 'P', 'I', 'R', 'I', 'T',
+ 'S', 'P', 'O', 'K', 'E', 'D',
+ 'S', 'P', 'R', 'I', 'N', 'G',
+ 'S', 'P', 'R', 'O', 'U', 'T',
+ 'S', 'P', 'U', 'N', 'G', 'S',
+ 'S', 'Q', 'U', 'A', 'R', 'E',
+ 'S', 'Q', 'U', 'I', 'S', 'H',
+ 'S', 'T', 'I', 'G', 'M', 'A',
+ 'S', 'T', 'I', 'M', 'M', 'E',
+ 'S', 'T', 'R', 'A', 'I', 'F',
+ 'S', 'T', 'R', 'E', 'S', 'S',
+ 'S', 'T', 'R', 'I', 'D', 'E',
+ 'S', 'T', 'R', 'O', 'K', 'E',
+ 'S', 'U', 'B', 'I', 'T', 'O',
+ 'S', 'U', 'B', 'S', 'E', 'T',
+ 'S', 'U', 'M', 'A', 'S', 'H',
+ 'S', 'U', 'M', 'M', 'E', 'R',
+ 'S', 'U', 'R', 'A', 'N', 'G',
+ 'S', 'W', 'O', 'R', 'D', 'S',
+ 'S', 'Y', 'L', 'O', 'T', 'I',
+ 'S', 'Y', 'M', 'B', 'O', 'L',
+ 'S', 'Y', 'N', 'A', 'F', 'I',
+ 'S', 'Y', 'O', 'U', 'W', 'A',
+ 'S', 'Y', 'R', 'I', 'A', 'C',
+ 'T', 'A', '-', 'R', 'O', 'L',
+ 'T', 'A', 'I', 'L', 'E', 'D',
+ 'T', 'A', 'L', 'E', 'N', 'T',
+ 'T', 'A', 'L', 'I', 'N', 'G',
+ 'T', 'A', 'M', 'I', 'N', 'G',
+ 'T', 'A', 'N', 'N', 'E', 'D',
+ 'T', 'A', 'U', 'R', 'U', 'S',
+ 'T', 'E', 'D', 'U', 'N', 'G',
+ 'T', 'E', 'L', 'E', 'I', 'A',
+ 'T', 'E', 'L', 'O', 'U', 'S',
+ 'T', 'E', 'L', 'U', 'G', 'U',
+ 'T', 'E', 'M', 'P', 'U', 'S',
+ 'T', 'E', 'N', 'U', 'T', 'O',
+ 'T', 'H', 'A', 'A', 'L', 'U',
+ 'T', 'H', 'A', 'A', 'N', 'A',
+ 'T', 'H', 'A', 'H', 'A', 'N',
+ 'T', 'H', 'A', 'N', 'N', 'A',
+ 'T', 'H', 'E', 'T', 'H', 'E',
+ 'T', 'H', 'I', 'R', 'D', 'S',
+ 'T', 'H', 'I', 'R', 'T', 'Y',
+ 'T', 'H', 'I', 'U', 'T', 'H',
+ 'T', 'H', 'R', 'E', 'A', 'D',
+ 'T', 'H', 'Y', 'O', 'O', 'M',
+ 'T', 'I', 'K', 'E', 'U', 'T',
+ 'T', 'I', 'P', 'E', 'H', 'A',
+ 'T', 'O', 'N', 'E', '-', '1',
+ 'T', 'O', 'N', 'E', '-', '2',
+ 'T', 'O', 'N', 'E', '-', '3',
+ 'T', 'O', 'N', 'E', '-', '4',
+ 'T', 'O', 'N', 'E', '-', '5',
+ 'T', 'O', 'N', 'E', '-', '6',
+ 'T', 'O', 'N', 'G', 'U', 'E',
+ 'T', 'O', 'P', 'B', 'A', 'R',
+ 'T', 'R', 'I', 'P', 'L', 'E',
+ 'T', 'R', 'I', 'P', 'L', 'I',
+ 'T', 'R', 'I', 'P', 'O', 'D',
+ 'T', 'R', 'I', 'T', 'O', 'S',
+ 'T', 'S', 'H', 'O', 'O', 'K',
+ 'T', 'S', 'H', 'U', 'G', 'S',
+ 'T', 'T', 'E', 'H', 'E', 'H',
+ 'T', 'U', 'A', 'R', 'E', 'G',
+ 'T', 'U', 'G', 'R', 'I', 'K',
+ 'T', 'U', 'R', 'B', 'A', 'N',
+ 'T', 'U', 'R', 'N', 'E', 'D',
+ 'T', 'U', 'R', 'T', 'L', 'E',
+ 'T', 'V', 'R', 'I', 'D', 'O',
+ 'T', 'W', 'E', 'L', 'V', 'E',
+ 'T', 'W', 'E', 'N', 'T', 'Y',
+ 'T', 'Y', 'P', 'E', '-', '1',
+ 'T', 'Y', 'P', 'E', '-', '2',
+ 'T', 'Y', 'P', 'E', '-', '3',
+ 'T', 'Y', 'P', 'E', '-', '4',
+ 'T', 'Y', 'P', 'E', '-', '5',
+ 'T', 'Y', 'P', 'E', '-', '6',
+ 'T', 'Y', 'P', 'E', '-', '7',
+ 'U', 'D', 'A', 'T', 'T', 'A',
+ 'U', 'I', 'G', 'H', 'U', 'R',
+ 'U', 'P', 'T', 'U', 'R', 'N',
+ 'U', 'P', 'W', 'A', 'R', 'D',
+ 'U', 'R', 'A', 'N', 'U', 'S',
+ 'U', 'S', 'H', 'U', 'M', 'X',
+ 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'V', 'A', 'L', 'L', 'E', 'Y',
+ 'V', 'A', 'R', 'E', 'I', 'A',
+ 'V', 'A', 'R', 'I', 'K', 'A',
+ 'V', 'E', 'C', 'T', 'O', 'R',
+ 'V', 'E', 'S', 'S', 'E', 'L',
+ 'V', 'I', 'R', 'A', 'M', 'A',
+ 'V', 'I', 'R', 'I', 'A', 'M',
+ 'V', 'O', 'I', 'C', 'E', 'D',
+ 'V', 'O', 'L', 'U', 'M', 'E',
+ 'V', 'R', 'A', 'C', 'H', 'Y',
+ 'V', 'U', 'L', 'G', 'A', 'R',
+ 'W', 'E', 'A', 'P', 'O', 'N',
+ 'W', 'E', 'I', 'G', 'H', 'T',
+ 'W', 'I', 'G', 'G', 'L', 'Y',
+ 'W', 'I', 'N', 'T', 'E', 'R',
+ 'W', 'O', 'L', 'O', 'S', 'O',
+ 'W', 'R', 'E', 'A', 'T', 'H',
+ 'X', 'E', 'S', 'T', 'E', 'S',
+ 'Y', '-', 'C', 'R', 'E', 'E',
+ 'Y', 'A', 'K', 'A', 'S', 'H',
+ 'Y', 'E', 'L', 'L', 'O', 'W',
+ 'Y', 'F', 'E', 'S', 'I', 'S',
+ 'Y', 'O', '-', 'Y', 'A', 'E',
+ 'Y', 'O', '-', 'Y', 'E', 'O',
+ 'Y', 'P', 'S', 'I', 'L', 'I',
+ 'Y', 'U', '-', 'Y', 'E', 'O',
+ 'Z', 'E', 'M', 'L', 'J', 'A',
+ 'Z', 'E', 'M', 'L', 'Y', 'A',
+ 'Z', 'I', 'G', 'Z', 'A', 'G',
+ 'Z', 'Q', 'A', 'P', 'H', 'A',
+ 'A', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'A', 'B', 'A', 'F', 'I', 'L', 'I',
+ 'A', 'B', 'Y', 'S', 'M', 'A', 'L',
+ 'A', 'C', 'A', 'D', 'E', 'M', 'Y',
+ 'A', 'C', 'C', 'O', 'U', 'N', 'T',
+ 'A', 'D', 'V', 'A', 'N', 'C', 'E',
+ 'A', 'E', 'Y', 'A', 'N', 'N', 'A',
+ 'A', 'F', 'G', 'H', 'A', 'N', 'I',
+ 'A', 'F', 'R', 'I', 'C', 'A', 'N',
+ 'A', 'H', 'A', 'G', 'G', 'A', 'R',
+ 'A', 'I', 'V', 'I', 'L', 'I', 'K',
+ 'A', 'I', 'Y', 'A', 'N', 'N', 'A',
+ 'A', 'L', 'E', 'M', 'B', 'I', 'C',
+ 'A', 'L', 'I', 'G', 'N', 'E', 'D',
+ 'A', 'L', 'L', 'A', 'H', 'O', 'U',
+ 'A', 'N', 'G', 'U', 'L', 'A', 'R',
+ 'A', 'N', 'N', 'U', 'I', 'T', 'Y',
+ 'A', 'P', 'O', 'T', 'H', 'E', 'S',
+ 'A', 'R', 'A', 'E', 'A', '-', 'I',
+ 'A', 'R', 'A', 'E', 'A', '-', 'U',
+ 'A', 'R', 'C', 'H', 'A', 'I', 'C',
+ 'A', 'R', 'K', 'T', 'I', 'K', 'O',
+ 'A', 'U', 'S', 'T', 'R', 'A', 'L',
+ 'A', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'A', 'V', 'E', 'R', 'A', 'G', 'E',
+ 'B', 'A', 'A', 'R', 'E', 'R', 'U',
+ 'B', 'A', 'I', 'R', 'K', 'A', 'N',
+ 'B', 'A', 'M', 'B', 'O', 'O', 'S',
+ 'B', 'A', 'R', 'L', 'I', 'N', 'E',
+ 'B', 'A', 'R', 'R', 'E', 'K', 'H',
+ 'B', 'A', 'R', 'R', 'I', 'E', 'R',
+ 'B', 'A', 'S', 'H', 'K', 'I', 'R',
+ 'B', 'A', 'T', 'H', 'T', 'U', 'B',
+ 'B', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'B', 'E', 'C', 'A', 'U', 'S', 'E',
+ 'B', 'E', 'E', 'H', 'I', 'V', 'E',
+ 'B', 'E', 'N', 'G', 'A', 'L', 'I',
+ 'B', 'E', 'N', 'Z', 'E', 'N', 'E',
+ 'B', 'E', 'T', 'W', 'E', 'E', 'N',
+ 'B', 'I', 'N', 'D', 'I', 'N', 'G',
+ 'B', 'J', 'A', 'R', 'K', 'A', 'N',
+ 'B', 'L', 'E', 'N', 'D', 'E', 'D',
+ 'B', 'R', 'A', 'C', 'K', 'E', 'T',
+ 'B', 'R', 'A', 'I', 'L', 'L', 'E',
+ 'B', 'R', 'A', 'K', 'C', 'E', 'T',
+ 'B', 'R', 'I', 'S', 'T', 'L', 'E',
+ 'B', 'U', 'U', 'M', 'I', 'S', 'H',
+ 'C', 'A', 'E', 'S', 'U', 'R', 'A',
+ 'C', 'A', 'P', 'I', 'T', 'A', 'L',
+ 'C', 'A', 'P', 'T', 'I', 'V', 'E',
+ 'C', 'A', 'R', 'R', 'I', 'E', 'R',
+ 'C', 'A', 'U', 'T', 'I', 'O', 'N',
+ 'C', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'C', 'E', 'D', 'I', 'L', 'L', 'A',
+ 'C', 'E', 'I', 'L', 'I', 'N', 'G',
+ 'C', 'E', 'L', 'S', 'I', 'U', 'S',
+ 'C', 'E', 'N', 'T', 'R', 'E', 'D',
+ 'C', 'H', 'A', 'M', 'I', 'L', 'I',
+ 'C', 'H', 'A', 'R', 'I', 'O', 'T',
+ 'C', 'H', 'E', 'V', 'R', 'O', 'N',
+ 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'C', 'H', 'I', 'N', 'E', 'S', 'E',
+ 'C', 'H', 'R', 'O', 'N', 'O', 'N',
+ 'C', 'H', 'R', 'O', 'N', 'O', 'U',
+ 'C', 'I', 'R', 'C', 'L', 'E', 'D',
+ 'C', 'I', 'R', 'C', 'L', 'E', 'S',
+ 'C', 'L', 'O', 'S', 'I', 'N', 'G',
+ 'C', 'L', 'O', 'S', 'U', 'R', 'E',
+ 'C', 'L', 'O', 'T', 'H', 'E', 'S',
+ 'C', 'L', 'U', 'S', 'T', 'E', 'R',
+ 'C', 'O', 'M', 'P', 'A', 'R', 'E',
+ 'C', 'O', 'N', 'I', 'C', 'A', 'L',
+ 'C', 'O', 'N', 'T', 'A', 'C', 'T',
+ 'C', 'O', 'N', 'T', 'A', 'I', 'N',
+ 'C', 'O', 'N', 'T', 'O', 'U', 'R',
+ 'C', 'O', 'N', 'T', 'R', 'O', 'L',
+ 'C', 'O', 'R', 'N', 'E', 'R', 'S',
+ 'C', 'O', 'R', 'O', 'N', 'I', 'S',
+ 'C', 'O', 'R', 'R', 'E', 'C', 'T',
+ 'C', 'O', 'U', 'N', 'C', 'I', 'L',
+ 'C', 'R', 'O', 'S', 'S', 'E', 'D',
+ 'C', 'U', 'R', 'R', 'E', 'N', 'T',
+ 'C', 'U', 'R', 'V', 'I', 'N', 'G',
+ 'C', 'W', 'E', 'O', 'R', 'T', 'H',
+ 'C', 'Y', 'P', 'E', 'R', 'U', 'S',
+ 'C', 'Y', 'P', 'R', 'I', 'O', 'T',
+ 'D', 'A', 'G', 'A', 'L', 'G', 'A',
+ 'D', 'A', 'N', 'T', 'A', 'J', 'A',
+ 'D', 'A', 'P', '-', 'B', 'E', 'I',
+ 'D', 'A', 'P', '-', 'P', 'I', 'I',
+ 'D', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'D', 'E', 'C', 'A', 'Y', 'E', 'D',
+ 'D', 'E', 'C', 'I', 'M', 'A', 'L',
+ 'D', 'E', 'L', 'P', 'H', 'I', 'C',
+ 'D', 'E', 'S', 'E', 'R', 'E', 'T',
+ 'D', 'H', 'A', 'L', 'A', 'T', 'H',
+ 'D', 'I', 'A', 'M', 'O', 'N', 'D',
+ 'D', 'I', 'A', 'R', 'G', 'O', 'N',
+ 'D', 'I', 'G', 'A', 'M', 'M', 'A',
+ 'D', 'I', 'G', 'R', 'A', 'P', 'H',
+ 'D', 'I', 'M', 'I', 'D', 'I', 'A',
+ 'D', 'I', 'M', 'M', 'I', 'N', 'G',
+ 'D', 'I', 'N', 'G', 'B', 'A', 'T',
+ 'D', 'I', 'P', 'L', 'O', 'U', 'N',
+ 'D', 'I', 'S', 'I', 'M', 'O', 'U',
+ 'D', 'I', 'V', 'I', 'D', 'E', 'D',
+ 'D', 'I', 'V', 'I', 'D', 'E', 'R',
+ 'D', 'I', 'V', 'I', 'D', 'E', 'S',
+ 'D', 'I', 'V', 'O', 'R', 'C', 'E',
+ 'D', 'O', 'T', 'L', 'E', 'S', 'S',
+ 'D', 'O', 'T', 'S', '-', '1', '2',
+ 'D', 'O', 'T', 'S', '-', '1', '3',
+ 'D', 'O', 'T', 'S', '-', '1', '4',
+ 'D', 'O', 'T', 'S', '-', '1', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3',
+ 'D', 'O', 'T', 'S', '-', '2', '4',
+ 'D', 'O', 'T', 'S', '-', '2', '5',
+ 'D', 'O', 'T', 'S', '-', '2', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4',
+ 'D', 'O', 'T', 'S', '-', '3', '5',
+ 'D', 'O', 'T', 'S', '-', '3', '6',
+ 'D', 'O', 'T', 'S', '-', '3', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '7', '8',
+ 'D', 'O', 'U', 'B', 'L', 'E', 'D',
+ 'D', 'R', 'A', 'C', 'H', 'M', 'A',
+ 'E', 'A', 'B', 'H', 'A', 'D', 'H',
+ 'E', 'A', 'D', 'H', 'A', 'D', 'H',
+ 'E', 'A', 'R', 'T', 'H', 'L', 'Y',
+ 'E', 'A', 'S', 'T', 'E', 'R', 'N',
+ 'E', 'B', 'E', 'F', 'I', 'L', 'I',
+ 'E', 'E', 'Y', 'A', 'N', 'N', 'A',
+ 'E', 'I', 'G', 'H', 'T', 'H', 'S',
+ 'E', 'L', 'A', 'F', 'R', 'O', 'N',
+ 'E', 'L', 'E', 'M', 'E', 'N', 'T',
+ 'E', 'L', 'L', 'I', 'P', 'S', 'E',
+ 'E', 'N', 'A', 'R', 'X', 'I', 'S',
+ 'E', 'N', 'Q', 'U', 'I', 'R', 'Y',
+ 'E', 'P', 'S', 'I', 'L', 'O', 'N',
+ 'E', 'T', 'N', 'A', 'H', 'T', 'A',
+ 'E', 'V', 'E', 'N', 'I', 'N', 'G',
+ 'F', 'A', 'I', 'L', 'U', 'R', 'E',
+ 'F', 'A', 'L', 'L', 'I', 'N', 'G',
+ 'F', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'F', 'E', 'A', 'T', 'H', 'E', 'R',
+ 'F', 'E', 'R', 'M', 'A', 'T', 'A',
+ 'F', 'I', 'F', 'T', 'E', 'E', 'N',
+ 'F', 'I', 'S', 'H', 'E', 'Y', 'E',
+ 'F', 'O', 'N', 'G', 'M', 'A', 'N',
+ 'F', 'O', 'R', 'K', 'I', 'N', 'G',
+ 'F', 'R', 'A', 'K', 'T', 'U', 'R',
+ 'F', 'U', 'N', 'E', 'R', 'A', 'L',
+ 'G', 'A', 'A', 'H', 'L', 'A', 'A',
+ 'G', 'A', 'R', 'M', 'E', 'N', 'T',
+ 'G', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'G', 'E', 'N', 'E', 'R', 'I', 'C',
+ 'G', 'E', 'S', 'H', 'T', 'I', 'N',
+ 'G', 'I', 'R', 'U', 'D', 'A', 'A',
+ 'G', 'L', 'A', 'G', 'O', 'L', 'I',
+ 'G', 'L', 'O', 'T', 'T', 'A', 'L',
+ 'G', 'R', 'E', 'A', 'T', 'E', 'R',
+ 'G', 'U', 'A', 'R', 'A', 'N', 'I',
+ 'H', 'A', 'F', 'U', 'K', 'H', 'A',
+ 'H', 'A', 'L', 'A', 'N', 'T', 'A',
+ 'H', 'A', 'L', 'B', 'E', 'R', 'D',
+ 'H', 'A', 'N', 'U', 'N', 'O', 'O',
+ 'H', 'A', 'R', 'P', 'O', 'O', 'N',
+ 'H', 'A', 'S', 'A', 'N', 'T', 'A',
+ 'H', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'H', 'E', '-', 'G', 'O', 'A', 'T',
+ 'H', 'E', 'A', 'D', 'I', 'N', 'G',
+ 'H', 'E', 'R', 'A', 'E', 'U', 'M',
+ 'H', 'E', 'X', 'A', 'G', 'O', 'N',
+ 'H', 'O', 'L', 'D', 'I', 'N', 'G',
+ 'H', 'R', 'Y', 'V', 'N', 'I', 'A',
+ 'H', 'U', 'N', 'D', 'R', 'E', 'D',
+ 'I', '-', 'A', 'R', 'A', 'E', 'A',
+ 'I', 'B', 'I', 'F', 'I', 'L', 'I',
+ 'I', 'C', 'H', 'A', 'D', 'I', 'N',
+ 'I', 'I', 'Y', 'A', 'N', 'N', 'A',
+ 'I', 'L', 'I', 'M', 'M', 'U', '3',
+ 'I', 'L', 'I', 'M', 'M', 'U', '4',
+ 'I', 'M', 'I', 'S', 'E', 'O', 'S',
+ 'I', 'N', 'H', 'I', 'B', 'I', 'T',
+ 'I', 'N', 'I', 'T', 'I', 'A', 'L',
+ 'I', 'N', 'S', 'U', 'L', 'A', 'R',
+ 'I', 'N', 'V', 'E', 'R', 'S', 'E',
+ 'I', 'O', 'D', 'H', 'A', 'D', 'H',
+ 'I', 'O', 'T', 'A', 'T', 'E', 'D',
+ 'I', 'Z', 'H', 'I', 'T', 'S', 'A',
+ 'J', 'A', 'N', 'U', 'A', 'R', 'Y',
+ 'J', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'J', 'E', 'G', 'O', 'G', 'A', 'N',
+ 'J', 'U', 'P', 'I', 'T', 'E', 'R',
+ 'K', 'A', 'K', 'A', 'B', 'A', 'T',
+ 'K', 'A', 'N', 'N', 'A', 'D', 'A',
+ 'K', 'A', 'N', 'T', 'A', 'J', 'A',
+ 'K', 'A', 'R', 'A', 'T', 'T', 'O',
+ 'K', 'A', 'R', 'O', 'R', 'I', 'I',
+ 'K', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'K', 'E', 'E', 'P', 'I', 'N', 'G',
+ 'K', 'E', 'M', 'B', 'A', 'N', 'G',
+ 'K', 'E', 'N', 'T', 'I', 'M', 'A',
+ 'K', 'H', 'I', 'E', 'U', 'K', 'H',
+ 'K', 'I', 'N', 'S', 'H', 'I', 'P',
+ 'K', 'I', 'R', 'G', 'H', 'I', 'Z',
+ 'K', 'O', 'M', 'B', 'U', 'V', 'A',
+ 'K', 'O', 'O', 'M', 'U', 'U', 'T',
+ 'K', 'O', 'R', 'A', 'N', 'I', 'C',
+ 'K', 'O', 'R', 'O', 'N', 'I', 'S',
+ 'K', 'R', 'A', 'T', 'I', 'M', 'A',
+ 'K', 'U', 'R', 'O', 'O', 'N', 'E',
+ 'K', 'Y', 'A', 'T', 'H', 'O', 'S',
+ 'K', 'Y', 'L', 'I', 'S', 'M', 'A',
+ 'L', 'A', 'T', 'E', 'R', 'A', 'L',
+ 'L', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'L', 'E', 'A', 'T', 'H', 'E', 'R',
+ 'L', 'E', 'G', 'E', 'T', 'O', 'S',
+ 'L', 'I', 'M', 'I', 'T', 'E', 'D',
+ 'L', 'I', 'N', 'K', 'I', 'N', 'G',
+ 'L', 'J', 'U', 'D', 'I', 'J', 'E',
+ 'L', 'O', 'G', 'I', 'C', 'A', 'L',
+ 'L', 'O', 'Z', 'E', 'N', 'G', 'E',
+ 'L', 'Y', 'G', 'I', 'S', 'M', 'A',
+ 'M', 'A', 'H', 'J', 'O', 'N', 'G',
+ 'M', 'A', 'I', 'K', 'U', 'R', 'O',
+ 'M', 'A', 'I', 'M', 'U', 'A', 'N',
+ 'M', 'A', 'K', 'S', 'U', 'R', 'A',
+ 'M', 'A', 'L', 'A', 'K', 'O', 'N',
+ 'M', 'A', 'L', 'T', 'E', 'S', 'E',
+ 'M', 'A', 'N', 'S', 'Y', 'O', 'N',
+ 'M', 'A', 'R', 'B', 'U', 'T', 'A',
+ 'M', 'A', 'R', 'C', 'A', 'T', 'O',
+ 'M', 'A', 'S', 'S', 'I', 'N', 'G',
+ 'M', 'A', 'T', 'T', 'O', 'C', 'K',
+ 'M', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'M', 'E', 'A', 'S', 'U', 'R', 'E',
+ 'M', 'E', 'E', 'T', 'O', 'R', 'U',
+ 'M', 'E', 'G', 'A', 'T', 'O', 'N',
+ 'M', 'E', 'R', 'C', 'U', 'R', 'Y',
+ 'M', 'I', 'D', 'L', 'I', 'N', 'E',
+ 'M', 'I', 'K', 'U', 'R', 'O', 'N',
+ 'M', 'O', 'D', 'E', 'S', 'T', 'Y',
+ 'M', 'O', 'R', 'N', 'I', 'N', 'G',
+ 'M', 'U', 'S', 'I', 'C', 'A', 'L',
+ 'M', 'Y', 'A', 'N', 'M', 'A', 'R',
+ 'M', 'Y', 'S', 'L', 'I', 'T', 'E',
+ 'N', 'A', 'S', 'K', 'A', 'P', 'I',
+ 'N', 'A', 'T', 'U', 'R', 'A', 'L',
+ 'N', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'N', 'E', 'G', 'A', 'T', 'E', 'D',
+ 'N', 'E', 'I', 'T', 'H', 'E', 'R',
+ 'N', 'E', 'P', 'T', 'U', 'N', 'E',
+ 'N', 'E', 'U', 'T', 'R', 'A', 'L',
+ 'N', 'E', 'W', 'L', 'I', 'N', 'E',
+ 'N', 'G', 'E', 'A', 'D', 'A', 'L',
+ 'N', 'I', 'K', 'A', 'H', 'I', 'T',
+ 'N', 'O', 'M', 'I', 'N', 'A', 'L',
+ 'N', 'O', 'T', 'C', 'H', 'E', 'D',
+ 'N', 'U', 'M', 'E', 'R', 'A', 'L',
+ 'N', 'U', 'M', 'E', 'R', 'I', 'C',
+ 'N', 'U', 'N', 'A', 'V', 'I', 'K',
+ 'N', 'U', 'N', 'A', 'V', 'U', 'T',
+ 'N', 'U', 'T', 'I', 'L', 'L', 'U',
+ 'N', 'Y', 'I', 'N', '-', 'D', 'O',
+ 'O', 'B', 'L', 'I', 'Q', 'U', 'E',
+ 'O', 'B', 'O', 'F', 'I', 'L', 'I',
+ 'O', 'C', 'T', 'O', 'B', 'E', 'R',
+ 'O', 'M', 'I', 'C', 'R', 'O', 'N',
+ 'O', 'N', 'E', 'S', 'E', 'L', 'F',
+ 'O', 'O', 'Y', 'A', 'N', 'N', 'A',
+ 'O', 'P', 'E', 'N', 'I', 'N', 'G',
+ 'O', 'R', 'D', 'I', 'N', 'A', 'L',
+ 'O', 'S', 'M', 'A', 'N', 'Y', 'A',
+ 'O', 'T', 'H', 'A', 'L', 'A', 'N',
+ 'O', 'U', 'T', 'L', 'I', 'N', 'E',
+ 'O', 'V', 'E', 'R', 'B', 'A', 'R',
+ 'O', 'V', 'E', 'R', 'L', 'A', 'Y',
+ 'P', 'A', 'C', 'K', 'I', 'N', 'G',
+ 'P', 'A', 'L', 'A', 'T', 'A', 'L',
+ 'P', 'A', 'L', 'A', 'U', 'N', 'G',
+ 'P', 'A', 'L', 'L', 'A', 'W', 'A',
+ 'P', 'A', 'M', 'A', 'A', 'E', 'H',
+ 'P', 'A', 'M', 'E', 'P', 'E', 'T',
+ 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'P', 'A', 'N', 'Y', 'I', 'K', 'U',
+ 'P', 'A', 'N', 'Y', 'U', 'K', 'U',
+ 'P', 'A', 'P', 'Y', 'R', 'U', 'S',
+ 'P', 'A', 'R', 'E', 'R', 'E', 'N',
+ 'P', 'A', 'R', 'T', 'I', 'A', 'L',
+ 'P', 'A', 'T', 'T', 'E', 'R', 'N',
+ 'P', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'P', 'A', 'Y', 'E', 'R', 'O', 'K',
+ 'P', 'E', 'R', 'C', 'E', 'N', 'T',
+ 'P', 'E', 'R', 'S', 'I', 'A', 'N',
+ 'P', 'E', 'T', 'A', 'S', 'M', 'A',
+ 'P', 'E', 'T', 'A', 'S', 'T', 'I',
+ 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'P', 'H', 'I', 'N', 'T', 'H', 'U',
+ 'P', 'H', 'U', 'T', 'H', 'A', 'O',
+ 'P', 'I', 'L', 'C', 'R', 'O', 'W',
+ 'P', 'L', 'A', 'G', 'I', 'O', 'S',
+ 'P', 'O', 'D', 'A', 'T', 'U', 'S',
+ 'P', 'O', 'I', 'N', 'T', 'E', 'D',
+ 'P', 'O', 'I', 'N', 'T', 'E', 'R',
+ 'P', 'R', 'E', 'C', 'E', 'D', 'E',
+ 'P', 'R', 'E', 'F', 'A', 'C', 'E',
+ 'P', 'R', 'I', 'V', 'A', 'T', 'E',
+ 'P', 'R', 'O', 'D', 'U', 'C', 'T',
+ 'P', 'U', 'S', 'H', 'I', 'N', 'G',
+ 'Q', 'U', 'A', 'R', 'T', 'E', 'R',
+ 'R', 'A', 'D', 'I', 'C', 'A', 'L',
+ 'R', 'A', 'K', 'H', 'A', 'N', 'G',
+ 'R', 'A', 'P', 'I', 'S', 'M', 'A',
+ 'R', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'R', 'E', 'A', 'H', 'M', 'U', 'K',
+ 'R', 'E', 'L', 'E', 'A', 'S', 'E',
+ 'R', 'E', 'R', 'E', 'K', 'A', 'N',
+ 'R', 'E', 'T', 'R', 'E', 'A', 'T',
+ 'R', 'E', 'V', 'E', 'R', 'S', 'E',
+ 'R', 'G', 'Y', 'I', 'N', 'G', 'S',
+ 'R', 'I', 'T', 'T', 'O', 'R', 'U',
+ 'R', 'O', 'S', 'E', 'T', 'T', 'E',
+ 'R', 'O', 'T', 'A', 'T', 'E', 'D',
+ 'R', 'O', 'T', 'U', 'N', 'D', 'A',
+ 'R', 'O', 'U', 'N', 'D', 'E', 'D',
+ 'R', 'U', 'U', 'B', 'U', 'R', 'U',
+ 'S', 'A', 'I', 'K', 'U', 'R', 'U',
+ 'S', 'A', 'L', 'T', 'I', 'R', 'E',
+ 'S', 'A', 'M', 'P', 'H', 'A', 'O',
+ 'S', 'A', 'N', 'Y', 'A', 'K', 'A',
+ 'S', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'S', 'C', 'H', 'O', 'L', 'A', 'R',
+ 'S', 'C', 'R', 'U', 'P', 'L', 'E',
+ 'S', 'E', 'A', 'G', 'U', 'L', 'L',
+ 'S', 'E', 'C', 'T', 'I', 'O', 'N',
+ 'S', 'E', 'G', 'M', 'E', 'N', 'T',
+ 'S', 'E', 'M', 'K', 'A', 'T', 'H',
+ 'S', 'E', 'R', 'V', 'I', 'C', 'E',
+ 'S', 'E', 'V', 'E', 'N', 'T', 'Y',
+ 'S', 'E', 'X', 'T', 'A', 'N', 'S',
+ 'S', 'E', 'X', 'T', 'I', 'L', 'E',
+ 'S', 'E', 'X', 'T', 'U', 'L', 'A',
+ 'S', 'H', 'A', 'P', 'I', 'N', 'G',
+ 'S', 'H', 'A', 'V', 'I', 'A', 'N',
+ 'S', 'H', 'E', 'S', 'H', 'I', 'G',
+ 'S', 'H', 'T', 'A', 'P', 'I', 'C',
+ 'S', 'H', 'U', 'F', 'F', 'L', 'E',
+ 'S', 'I', 'L', 'I', 'Q', 'U', 'A',
+ 'S', 'I', 'M', 'I', 'L', 'A', 'R',
+ 'S', 'I', 'N', 'H', 'A', 'L', 'A',
+ 'S', 'I', 'N', 'K', 'I', 'N', 'G',
+ 'S', 'I', 'R', 'I', 'N', 'G', 'U',
+ 'S', 'I', 'X', 'T', 'E', 'E', 'N',
+ 'S', 'K', 'L', 'I', 'R', 'O', 'N',
+ 'S', 'L', 'A', 'N', 'T', 'E', 'D',
+ 'S', 'L', 'O', 'P', 'I', 'N', 'G',
+ 'S', 'M', 'A', 'L', 'L', 'E', 'R',
+ 'S', 'M', 'I', 'L', 'I', 'N', 'G',
+ 'S', 'N', 'O', 'W', 'M', 'A', 'N',
+ 'S', 'O', 'C', 'I', 'E', 'T', 'Y',
+ 'S', 'O', 'G', 'D', 'I', 'A', 'N',
+ 'S', 'O', 'L', 'I', 'D', 'U', 'S',
+ 'S', 'P', 'A', 'C', 'I', 'N', 'G',
+ 'S', 'P', 'A', 'R', 'K', 'L', 'E',
+ 'S', 'P', 'E', 'C', 'I', 'A', 'L',
+ 'S', 'P', 'I', 'D', 'E', 'R', 'Y',
+ 'S', 'P', 'I', 'R', 'A', 'N', 'T',
+ 'S', 'P', 'R', 'I', 'N', 'G', 'S',
+ 'S', 'Q', 'U', 'A', 'R', 'E', 'D',
+ 'S', 'Q', 'U', 'A', 'R', 'E', 'S',
+ 'S', 'T', 'A', 'T', 'E', 'R', 'S',
+ 'S', 'T', 'A', 'U', 'R', 'O', 'S',
+ 'S', 'T', 'A', 'V', 'R', 'O', 'S',
+ 'S', 'T', 'A', 'V', 'R', 'O', 'U',
+ 'S', 'T', 'R', 'O', 'K', 'E', 'S',
+ 'S', 'U', 'B', 'J', 'E', 'C', 'T',
+ 'S', 'U', 'B', 'U', 'N', 'I', 'T',
+ 'S', 'U', 'C', 'C', 'E', 'E', 'D',
+ 'S', 'U', 'R', 'F', 'A', 'C', 'E',
+ 'S', 'Y', 'N', 'A', 'G', 'M', 'A',
+ 'S', 'Y', 'N', 'E', 'V', 'M', 'A',
+ 'T', 'A', 'A', 'L', 'U', 'J', 'A',
+ 'T', 'A', 'G', 'A', 'L', 'O', 'G',
+ 'T', 'A', 'I', 'S', 'Y', 'O', 'U',
+ 'T', 'A', 'L', 'E', 'N', 'T', 'S',
+ 'T', 'A', 'T', 'W', 'E', 'E', 'L',
+ 'T', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'T', 'C', 'H', 'E', 'H', 'E', 'H',
+ 'T', 'E', 'L', 'I', 'S', 'H', 'A',
+ 'T', 'E', 'S', 'S', 'E', 'R', 'A',
+ 'T', 'H', '-', 'C', 'R', 'E', 'E',
+ 'T', 'H', 'E', 'S', 'E', 'O', 'S',
+ 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'T', 'H', 'R', 'E', 'E', '-', 'D',
+ 'T', 'H', 'R', 'O', 'U', 'G', 'H',
+ 'T', 'H', 'U', 'N', 'D', 'E', 'R',
+ 'T', 'I', 'B', 'E', 'T', 'A', 'N',
+ 'T', 'I', 'N', 'A', 'G', 'M', 'A',
+ 'T', 'R', 'I', 'G', 'R', 'A', 'M',
+ 'T', 'R', 'I', 'I', 'S', 'A', 'P',
+ 'T', 'R', 'I', 'S', 'E', 'M', 'E',
+ 'T', 'T', 'U', 'D', 'D', 'A', 'G',
+ 'U', '-', 'E', 'O', '-', 'E', 'U',
+ 'U', 'B', 'A', 'D', 'A', 'M', 'A',
+ 'U', 'B', 'U', 'F', 'I', 'L', 'I',
+ 'U', 'P', 'R', 'I', 'G', 'H', 'T',
+ 'U', 'P', 'S', 'I', 'L', 'O', 'N',
+ 'U', 'P', 'W', 'A', 'R', 'D', 'S',
+ 'U', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'V', 'A', 'R', 'E', 'I', 'A', 'I',
+ 'V', 'A', 'R', 'I', 'A', 'N', 'T',
+ 'V', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'V', 'I', 'C', 'T', 'O', 'R', 'Y',
+ 'V', 'I', 'L', 'L', 'A', 'G', 'E',
+ 'V', 'I', 'S', 'A', 'R', 'G', 'A',
+ 'V', 'O', 'C', 'A', 'L', 'I', 'C',
+ 'V', 'O', 'I', 'C', 'I', 'N', 'G',
+ 'V', 'O', 'L', 'T', 'A', 'G', 'E',
+ 'W', 'A', 'I', 'T', 'I', 'N', 'G',
+ 'W', 'A', 'R', 'N', 'I', 'N', 'G',
+ 'W', 'A', 'S', 'T', 'I', 'N', 'G',
+ 'W', 'E', 'S', 'T', 'E', 'R', 'N',
+ 'W', 'H', 'E', 'E', 'L', 'E', 'D',
+ 'W', 'R', 'I', 'T', 'I', 'N', 'G',
+ 'Y', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'Y', 'I', 'D', 'D', 'I', 'S', 'H',
+ 'Y', 'P', 'O', 'R', 'R', 'O', 'I',
+ 'Z', 'H', 'I', 'V', 'E', 'T', 'E',
+ 'A', 'C', 'T', 'I', 'V', 'A', 'T', 'E',
+ 'A', 'C', 'T', 'U', 'A', 'L', 'L', 'Y',
+ 'A', 'E', 'E', 'Y', 'A', 'N', 'N', 'A',
+ 'A', 'I', 'R', 'P', 'L', 'A', 'N', 'E',
+ 'A', 'K', 'H', 'M', 'I', 'M', 'I', 'C',
+ 'A', 'L', 'L', 'I', 'A', 'N', 'C', 'E',
+ 'A', 'L', 'V', 'E', 'O', 'L', 'A', 'R',
+ 'A', 'N', 'G', 'S', 'T', 'R', 'O', 'M',
+ 'A', 'N', 'U', 'D', 'A', 'T', 'T', 'A',
+ 'A', 'N', 'U', 'S', 'V', 'A', 'R', 'A',
+ 'A', 'P', 'O', 'D', 'E', 'R', 'M', 'A',
+ 'A', 'P', 'O', 'D', 'E', 'X', 'I', 'A',
+ 'A', 'P', 'O', 'T', 'H', 'E', 'M', 'A',
+ 'A', 'P', 'P', 'R', 'O', 'A', 'C', 'H',
+ 'A', 'Q', 'U', 'A', 'R', 'I', 'U', 'S',
+ 'A', 'R', 'A', 'E', 'A', '-', 'E', 'O',
+ 'A', 'R', 'C', 'H', 'A', 'I', 'O', 'N',
+ 'A', 'R', 'G', 'O', 'T', 'E', 'R', 'I',
+ 'A', 'R', 'I', 'S', 'T', 'E', 'R', 'A',
+ 'A', 'R', 'M', 'E', 'N', 'I', 'A', 'N',
+ 'A', 'R', 'O', 'U', 'S', 'I', 'N', 'G',
+ 'A', 'S', 'S', 'A', 'L', 'L', 'A', 'M',
+ 'A', 'S', 'S', 'Y', 'R', 'I', 'A', 'N',
+ 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'K',
+ 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'M',
+ 'A', 'T', 'T', 'H', 'A', 'C', 'A', 'N',
+ 'A', 'V', 'A', 'G', 'R', 'A', 'H', 'A',
+ 'B', 'A', 'L', 'I', 'N', 'E', 'S', 'E',
+ 'B', 'E', 'L', 'G', 'T', 'H', 'O', 'R',
+ 'B', 'E', 'R', 'K', 'A', 'N', 'A', 'N',
+ 'B', 'E', 'V', 'E', 'R', 'A', 'G', 'E',
+ 'B', 'I', 'D', 'E', 'N', 'T', 'A', 'L',
+ 'B', 'I', 'L', 'A', 'B', 'I', 'A', 'L',
+ 'B', 'O', 'P', 'O', 'M', 'O', 'F', 'O',
+ 'B', 'O', 'U', 'N', 'D', 'A', 'R', 'Y',
+ 'B', 'U', 'G', 'I', 'N', 'E', 'S', 'E',
+ 'B', 'U', 'L', 'L', 'S', 'E', 'Y', 'E',
+ 'B', 'U', 'S', 'S', 'Y', 'E', 'R', 'U',
+ 'C', 'A', 'D', 'U', 'C', 'E', 'U', 'S',
+ 'C', 'A', 'N', 'A', 'D', 'I', 'A', 'N',
+ 'C', 'A', 'R', 'R', 'I', 'A', 'G', 'E',
+ 'C', 'A', 'U', 'L', 'D', 'R', 'O', 'N',
+ 'C', 'H', 'A', 'M', 'I', 'L', 'O', 'N',
+ 'C', 'H', 'A', 'T', 'T', 'A', 'W', 'A',
+ 'C', 'H', 'E', 'R', 'O', 'K', 'E', 'E',
+ 'C', 'H', 'O', 'R', 'E', 'V', 'M', 'A',
+ 'C', 'H', 'O', 'S', 'E', 'O', 'N', 'G',
+ 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R',
+ 'C', 'I', 'V', 'I', 'L', 'I', 'A', 'N',
+ 'C', 'L', 'I', 'M', 'A', 'C', 'U', 'S',
+ 'C', 'L', 'I', 'N', 'G', 'I', 'N', 'G',
+ 'C', 'O', 'N', 'F', 'L', 'I', 'C', 'T',
+ 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T',
+ 'C', 'O', 'N', 'T', 'A', 'I', 'N', 'S',
+ 'C', 'O', 'U', 'N', 'T', 'I', 'N', 'G',
+ 'C', 'R', 'E', 'A', 'T', 'I', 'V', 'E',
+ 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'T',
+ 'C', 'R', 'O', 'S', 'S', 'I', 'N', 'G',
+ 'C', 'R', 'U', 'Z', 'E', 'I', 'R', 'O',
+ 'C', 'U', 'R', 'R', 'E', 'N', 'C', 'Y',
+ 'C', 'U', 'S', 'T', 'O', 'M', 'E', 'R',
+ 'C', 'Y', 'R', 'E', 'N', 'A', 'I', 'C',
+ 'C', 'Y', 'R', 'I', 'L', 'L', 'I', 'C',
+ 'D', 'A', 'M', 'M', 'A', 'T', 'A', 'N',
+ 'D', 'A', 'P', '-', 'B', 'U', 'O', 'N',
+ 'D', 'A', 'P', '-', 'M', 'U', 'O', 'Y',
+ 'D', 'A', 'P', '-', 'P', 'R', 'A', 'M',
+ 'D', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'D', 'D', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'D', 'E', 'C', 'E', 'M', 'B', 'E', 'R',
+ 'D', 'E', 'C', 'R', 'E', 'A', 'S', 'E',
+ 'D', 'E', 'N', 'A', 'R', 'I', 'U', 'S',
+ 'D', 'E', 'Y', 'T', 'E', 'R', 'O', 'S',
+ 'D', 'E', 'Y', 'T', 'E', 'R', 'O', 'U',
+ 'D', 'I', 'A', 'G', 'O', 'N', 'A', 'L',
+ 'D', 'I', 'A', 'M', 'E', 'T', 'E', 'R',
+ 'D', 'I', 'A', 'S', 'T', 'O', 'L', 'I',
+ 'D', 'I', 'A', 'T', 'O', 'N', 'O', 'N',
+ 'D', 'I', 'F', 'O', 'N', 'I', 'A', 'S',
+ 'D', 'I', 'G', 'O', 'R', 'G', 'O', 'N',
+ 'D', 'I', 'G', 'R', 'A', 'M', 'M', 'A',
+ 'D', 'I', 'R', 'E', 'C', 'T', 'L', 'Y',
+ 'D', 'I', 'V', 'I', 'S', 'I', 'O', 'N',
+ 'D', 'O', 'D', 'E', 'K', 'A', 'T', 'A',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '6', '7', '8',
+ 'D', 'O', 'T', 'T', 'E', 'D', '-', 'L',
+ 'D', 'O', 'T', 'T', 'E', 'D', '-', 'N',
+ 'D', 'O', 'T', 'T', 'E', 'D', '-', 'P',
+ 'D', 'R', 'A', 'C', 'H', 'M', 'A', 'S',
+ 'D', 'R', 'A', 'F', 'T', 'I', 'N', 'G',
+ 'D', 'R', 'A', 'U', 'G', 'H', 'T', 'S',
+ 'D', 'R', 'A', 'W', 'I', 'N', 'G', 'S',
+ 'D', 'U', 'R', 'A', 'T', 'I', 'O', 'N',
+ 'D', 'V', 'I', 'S', 'V', 'A', 'R', 'A',
+ 'E', 'I', 'G', 'H', 'T', 'E', 'E', 'N',
+ 'E', 'L', 'E', 'C', 'T', 'R', 'I', 'C',
+ 'E', 'L', 'L', 'I', 'P', 'S', 'I', 'S',
+ 'E', 'M', 'P', 'H', 'A', 'S', 'I', 'S',
+ 'E', 'M', 'P', 'H', 'A', 'T', 'I', 'C',
+ 'E', 'N', 'T', 'E', 'R', 'I', 'N', 'G',
+ 'E', 'N', 'V', 'E', 'L', 'O', 'P', 'E',
+ 'E', 'P', 'E', 'G', 'E', 'R', 'M', 'A',
+ 'E', 'S', 'U', 'K', 'U', 'U', 'D', 'O',
+ 'E', 'T', 'E', 'R', 'N', 'I', 'T', 'Y',
+ 'E', 'T', 'H', 'I', 'O', 'P', 'I', 'C',
+ 'E', 'X', 'T', 'E', 'N', 'D', 'E', 'D',
+ 'F', 'A', 'T', 'H', 'A', 'T', 'A', 'N',
+ 'F', 'E', 'B', 'R', 'U', 'A', 'R', 'Y',
+ 'F', 'E', 'M', 'I', 'N', 'I', 'N', 'E',
+ 'F', 'E', 'S', 'T', 'I', 'V', 'A', 'L',
+ 'F', 'I', 'G', 'U', 'R', 'E', '-', '1',
+ 'F', 'I', 'G', 'U', 'R', 'E', '-', '2',
+ 'F', 'I', 'G', 'U', 'R', 'E', '-', '3',
+ 'F', 'I', 'N', 'G', 'E', 'R', 'E', 'D',
+ 'F', 'I', 'S', 'H', 'H', 'O', 'O', 'K',
+ 'F', 'L', 'A', 'T', 'N', 'E', 'S', 'S',
+ 'F', 'L', 'O', 'R', 'E', 'T', 'T', 'E',
+ 'F', 'L', 'O', 'U', 'R', 'I', 'S', 'H',
+ 'F', 'O', 'O', 'T', 'N', 'O', 'T', 'E',
+ 'F', 'O', 'U', 'R', 'T', 'E', 'E', 'N',
+ 'F', 'R', 'A', 'C', 'T', 'I', 'O', 'N',
+ 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T',
+ 'F', 'R', 'A', 'G', 'R', 'A', 'N', 'T',
+ 'F', 'R', 'O', 'W', 'N', 'I', 'N', 'G',
+ 'F', 'U', 'L', 'L', 'N', 'E', 'S', 'S',
+ 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N',
+ 'G', 'A', 'R', 'S', 'H', 'U', 'N', 'I',
+ 'G', 'A', 'U', 'N', 'T', 'L', 'E', 'T',
+ 'G', 'E', 'N', 'I', 'T', 'I', 'V', 'E',
+ 'G', 'E', 'O', 'R', 'G', 'I', 'A', 'N',
+ 'G', 'R', 'A', 'P', 'H', 'E', 'M', 'E',
+ 'G', 'U', 'J', 'A', 'R', 'A', 'T', 'I',
+ 'G', 'U', 'R', 'M', 'U', 'K', 'H', 'I',
+ 'H', 'A', 'N', '-', 'A', 'K', 'A', 'T',
+ 'H', 'A', 'N', 'G', 'Z', 'H', 'O', 'U',
+ 'H', 'A', 'R', 'D', 'N', 'E', 'S', 'S',
+ 'H', 'A', 'R', 'K', 'L', 'E', 'A', 'N',
+ 'H', 'A', 'R', 'M', 'O', 'N', 'I', 'C',
+ 'H', 'E', 'A', 'V', 'E', 'N', 'L', 'Y',
+ 'H', 'E', 'X', 'A', 'G', 'R', 'A', 'M',
+ 'H', 'I', 'R', 'A', 'G', 'A', 'N', 'A',
+ 'H', 'U', 'A', 'R', 'A', 'D', 'D', 'O',
+ 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'M',
+ 'I', 'L', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'I', 'M', 'I', 'F', 'O', 'N', 'O', 'N',
+ 'I', 'N', 'C', 'R', 'E', 'A', 'S', 'E',
+ 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T',
+ 'I', 'N', 'F', 'I', 'N', 'I', 'T', 'Y',
+ 'I', 'N', 'H', 'E', 'R', 'E', 'N', 'T',
+ 'I', 'N', 'T', 'E', 'G', 'R', 'A', 'L',
+ 'I', 'N', 'T', 'E', 'R', 'E', 'S', 'T',
+ 'I', 'N', 'T', 'E', 'R', 'I', 'O', 'R',
+ 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D',
+ 'I', 'O', 'T', 'I', 'F', 'I', 'E', 'D',
+ 'I', 'R', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'I', 'S', '-', 'P', 'I', 'L', 'L', 'A',
+ 'I', 'S', 'O', 'L', 'A', 'T', 'E', 'D',
+ 'J', 'A', 'P', 'A', 'N', 'E', 'S', 'E',
+ 'J', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'K', 'A', 'S', 'R', 'A', 'T', 'A', 'N',
+ 'K', 'A', 'T', 'A', 'K', 'A', 'N', 'A',
+ 'K', 'A', 'T', 'H', 'I', 'S', 'T', 'I',
+ 'K', 'E', 'Y', 'B', 'O', 'A', 'R', 'D',
+ 'K', 'O', 'N', 'T', 'E', 'V', 'M', 'A',
+ 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A',
+ 'K', 'R', 'E', 'M', 'A', 'S', 'T', 'I',
+ 'L', '-', 'S', 'H', 'A', 'P', 'E', 'D',
+ 'L', 'A', 'N', 'G', 'U', 'A', 'G', 'E',
+ 'L', 'A', 'T', 'I', 'N', 'A', 'T', 'E',
+ 'L', 'I', 'G', 'A', 'T', 'U', 'R', 'E',
+ 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N',
+ 'L', 'O', 'C', 'A', 'T', 'I', 'V', 'E',
+ 'L', 'O', 'G', 'O', 'T', 'Y', 'P', 'E',
+ 'L', 'O', 'R', 'R', 'A', 'I', 'N', 'E',
+ 'M', 'A', 'H', 'A', 'P', 'A', 'K', 'H',
+ 'M', 'A', 'I', 'M', 'A', 'L', 'A', 'I',
+ 'M', 'A', 'I', 'Y', 'A', 'M', 'O', 'K',
+ 'M', 'A', 'N', 'A', 'C', 'L', 'E', 'S',
+ 'M', 'A', 'N', 'G', 'A', 'L', 'A', 'M',
+ 'M', 'A', 'R', 'R', 'I', 'A', 'G', 'E',
+ 'M', 'A', 'R', 'R', 'Y', 'I', 'N', 'G',
+ 'M', 'A', 'R', 'T', 'Y', 'R', 'I', 'A',
+ 'M', 'E', 'A', 'S', 'U', 'R', 'E', 'D',
+ 'M', 'E', 'D', 'I', 'C', 'I', 'N', 'E',
+ 'M', 'E', 'T', 'R', 'E', 'T', 'E', 'S',
+ 'M', 'E', 'T', 'R', 'I', 'C', 'A', 'L',
+ 'M', 'I', 'L', 'L', 'I', 'O', 'N', 'S',
+ 'M', 'I', 'N', 'I', 'S', 'T', 'E', 'R',
+ 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R',
+ 'M', 'O', 'H', 'A', 'M', 'M', 'A', 'D',
+ 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'M',
+ 'M', 'O', 'U', 'N', 'T', 'A', 'I', 'N',
+ 'M', 'U', 'L', 'T', 'I', 'M', 'A', 'P',
+ 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'E',
+ 'M', 'U', 'L', 'T', 'I', 'S', 'E', 'T',
+ 'N', 'A', 'T', 'I', 'O', 'N', 'A', 'L',
+ 'N', 'E', 'G', 'A', 'T', 'I', 'O', 'N',
+ 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E',
+ 'N', 'I', 'K', 'H', 'A', 'H', 'I', 'T',
+ 'N', 'I', 'N', 'E', 'T', 'E', 'E', 'N',
+ 'N', 'O', '-', 'B', 'R', 'E', 'A', 'K',
+ 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'N', 'O', 'T', 'E', 'H', 'E', 'A', 'D',
+ 'N', 'O', 'V', 'E', 'M', 'B', 'E', 'R',
+ 'O', 'M', 'I', 'S', 'S', 'I', 'O', 'N',
+ 'O', 'N', 'E', '-', 'L', 'I', 'N', 'E',
+ 'O', 'P', 'E', 'R', 'A', 'T', 'O', 'R',
+ 'O', 'P', 'P', 'O', 'S', 'I', 'N', 'G',
+ 'O', 'R', 'I', 'G', 'I', 'N', 'A', 'L',
+ 'O', 'R', 'N', 'A', 'M', 'E', 'N', 'T',
+ 'O', 'R', 'T', 'H', 'O', 'D', 'O', 'X',
+ 'O', 'U', 'T', 'L', 'I', 'N', 'E', 'D',
+ 'O', 'V', 'E', 'R', 'L', 'A', 'I', 'D',
+ 'O', 'V', 'E', 'R', 'L', 'I', 'N', 'E',
+ 'O', 'V', 'E', 'R', 'R', 'I', 'D', 'E',
+ 'P', 'A', 'A', 'S', 'E', 'N', 'T', 'O',
+ 'P', 'A', 'I', 'R', 'T', 'H', 'R', 'A',
+ 'P', 'A', 'L', 'O', 'C', 'H', 'K', 'A',
+ 'P', 'A', 'M', 'E', 'N', 'E', 'N', 'G',
+ 'P', 'A', 'M', 'U', 'D', 'P', 'O', 'D',
+ 'P', 'A', 'N', 'G', 'H', 'U', 'L', 'U',
+ 'P', 'A', 'N', 'O', 'L', 'O', 'N', 'G',
+ 'P', 'A', 'N', 'Y', 'A', 'K', 'R', 'A',
+ 'P', 'A', 'N', 'Y', 'E', 'C', 'E', 'K',
+ 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L',
+ 'P', 'A', 'R', 'I', 'C', 'H', 'O', 'N',
+ 'P', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'P', 'E', 'D', 'E', 'S', 'T', 'A', 'L',
+ 'P', 'E', 'L', 'A', 'S', 'T', 'O', 'N',
+ 'P', 'E', 'N', 'T', 'A', 'G', 'O', 'N',
+ 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'A',
+ 'P', 'E', 'T', 'A', 'L', 'L', 'E', 'D',
+ 'P', 'H', 'A', 'A', 'R', 'K', 'A', 'A',
+ 'P', 'H', 'A', 'G', 'S', '-', 'P', 'A',
+ 'P', 'H', 'A', 'I', 'S', 'T', 'O', 'S',
+ 'P', 'I', 'N', 'W', 'H', 'E', 'E', 'L',
+ 'P', 'L', 'A', 'S', 'T', 'I', 'C', 'S',
+ 'P', 'L', 'E', 'T', 'H', 'R', 'O', 'N',
+ 'P', 'N', 'E', 'U', 'M', 'A', 'T', 'A',
+ 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G',
+ 'P', 'O', 'K', 'R', 'Y', 'T', 'I', 'E',
+ 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'A', 'M', '-', 'B', 'E', 'I',
+ 'P', 'R', 'A', 'M', '-', 'P', 'I', 'I',
+ 'P', 'R', 'E', 'C', 'E', 'D', 'E', 'D',
+ 'P', 'R', 'E', 'C', 'E', 'D', 'E', 'S',
+ 'P', 'R', 'E', 'V', 'I', 'O', 'U', 'S',
+ 'P', 'R', 'O', 'F', 'O', 'U', 'N', 'D',
+ 'P', 'R', 'O', 'G', 'R', 'E', 'S', 'S',
+ 'P', 'R', 'O', 'P', 'E', 'R', 'T', 'Y',
+ 'Q', 'A', 'I', 'R', 'T', 'H', 'R', 'A',
+ 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T',
+ 'Q', 'U', 'A', 'R', 'T', 'E', 'R', 'S',
+ 'Q', 'U', 'E', 'S', 'T', 'I', 'O', 'N',
+ 'Q', 'U', 'I', 'N', 'C', 'U', 'N', 'X',
+ 'R', 'E', 'C', 'O', 'R', 'D', 'E', 'R',
+ 'R', 'E', 'C', 'Y', 'C', 'L', 'E', 'D',
+ 'R', 'E', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'R', 'E', 'L', 'I', 'G', 'I', 'O', 'N',
+ 'R', 'E', 'N', 'T', 'O', 'G', 'E', 'N',
+ 'R', 'E', 'P', 'E', 'A', 'T', 'E', 'D',
+ 'R', 'E', 'S', 'O', 'U', 'R', 'C', 'E',
+ 'R', 'E', 'S', 'P', 'O', 'N', 'S', 'E',
+ 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D',
+ 'R', 'U', 'K', 'K', 'A', 'K', 'H', 'A',
+ 'S', '-', 'S', 'H', 'A', 'P', 'E', 'D',
+ 'S', 'A', 'L', 'T', 'I', 'L', 'L', 'O',
+ 'S', 'A', 'N', 'T', 'I', 'I', 'M', 'U',
+ 'S', 'A', 'N', 'Y', 'O', 'O', 'G', 'A',
+ 'S', 'A', 'X', 'I', 'M', 'A', 'T', 'A',
+ 'S', 'C', 'I', 'S', 'S', 'O', 'R', 'S',
+ 'S', 'C', 'O', 'R', 'P', 'I', 'U', 'S',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R',
+ 'S', 'E', 'M', 'I', 'S', 'O', 'F', 'T',
+ 'S', 'E', 'M', 'U', 'N', 'C', 'I', 'A',
+ 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D',
+ 'S', 'H', 'A', 'M', 'R', 'O', 'C', 'K',
+ 'S', 'H', 'E', '-', 'G', 'O', 'A', 'T',
+ 'S', 'H', 'E', 'S', 'H', 'L', 'A', 'M',
+ 'S', 'I', 'C', 'K', 'N', 'E', 'S', 'S',
+ 'S', 'I', 'D', 'E', 'W', 'A', 'Y', 'S',
+ 'S', 'I', 'M', 'A', 'N', 'S', 'I', 'S',
+ 'S', 'I', 'X', '-', 'L', 'I', 'N', 'E',
+ 'S', 'L', 'A', 'V', 'O', 'N', 'I', 'C',
+ 'S', 'Q', 'U', 'I', 'G', 'G', 'L', 'E',
+ 'S', 'Q', 'U', 'I', 'R', 'R', 'E', 'L',
+ 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O',
+ 'S', 'T', 'A', 'L', 'L', 'I', 'O', 'N',
+ 'S', 'T', 'A', 'N', 'D', 'A', 'R', 'D',
+ 'S', 'T', 'O', 'P', 'P', 'A', 'G', 'E',
+ 'S', 'T', 'O', 'P', 'P', 'I', 'N', 'G',
+ 'S', 'T', 'R', 'A', 'I', 'G', 'H', 'T',
+ 'S', 'T', 'R', 'A', 'I', 'N', 'E', 'R',
+ 'S', 'T', 'R', 'A', 'T', 'I', 'A', 'N',
+ 'S', 'T', 'R', 'E', 'N', 'G', 'T', 'H',
+ 'S', 'T', 'R', 'I', 'C', 'T', 'L', 'Y',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '1',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '2',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '3',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '4',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '5',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '6',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '7',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '8',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '9',
+ 'S', 'U', 'B', 'G', 'R', 'O', 'U', 'P',
+ 'S', 'U', 'C', 'C', 'E', 'E', 'D', 'S',
+ 'S', 'U', 'I', 'T', 'A', 'B', 'L', 'E',
+ 'S', 'U', 'P', 'E', 'R', 'S', 'E', 'T',
+ 'S', 'U', 'R', 'R', 'O', 'U', 'N', 'D',
+ 'S', 'W', 'A', 'P', 'P', 'I', 'N', 'G',
+ 'S', 'Y', 'L', 'L', 'A', 'B', 'L', 'E',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '6',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '7',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '8',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '9',
+ 'S', 'Y', 'M', 'M', 'E', 'T', 'R', 'Y',
+ 'T', 'A', 'G', 'B', 'A', 'N', 'W', 'A',
+ 'T', 'A', 'I', 'L', 'L', 'E', 'S', 'S',
+ 'T', 'A', 'T', 'T', 'O', 'O', 'E', 'D',
+ 'T', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'T', 'E', 'S', 'S', 'A', 'R', 'O', 'N',
+ 'T', 'E', 'T', 'A', 'R', 'T', 'O', 'S',
+ 'T', 'E', 'T', 'R', 'A', 'P', 'L', 'I',
+ 'T', 'H', 'E', 'S', 'P', 'I', 'A', 'N',
+ 'T', 'H', 'I', 'R', 'T', 'E', 'E', 'N',
+ 'T', 'H', 'O', 'U', 'S', 'A', 'N', 'D',
+ 'T', 'H', 'U', 'R', 'I', 'S', 'A', 'Z',
+ 'T', 'I', 'F', 'I', 'N', 'A', 'G', 'H',
+ 'T', 'I', 'R', 'O', 'N', 'I', 'A', 'N',
+ 'T', 'O', 'G', 'E', 'T', 'H', 'E', 'R',
+ 'T', 'O', 'R', 'C', 'U', 'L', 'U', 'S',
+ 'T', 'O', 'R', 'T', 'O', 'I', 'S', 'E',
+ 'T', 'R', 'E', 'A', 'D', 'I', 'N', 'G',
+ 'T', 'R', 'E', 'S', 'I', 'L', 'L', 'O',
+ 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E',
+ 'T', 'R', 'I', 'C', 'O', 'L', 'O', 'N',
+ 'T', 'R', 'I', 'S', 'I', 'M', 'O', 'U',
+ 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'N',
+ 'T', 'R', 'Y', 'B', 'L', 'I', 'O', 'N',
+ 'T', 'T', 'A', 'Y', 'A', 'N', 'N', 'A',
+ 'T', 'T', 'U', 'D', 'D', 'A', 'A', 'G',
+ 'T', 'V', 'I', 'M', 'A', 'D', 'U', 'R',
+ 'T', 'W', 'O', '-', 'L', 'I', 'N', 'E',
+ 'U', 'G', 'A', 'R', 'I', 'T', 'I', 'C',
+ 'U', 'I', 'L', 'L', 'E', 'A', 'N', 'N',
+ 'U', 'M', 'B', 'R', 'E', 'L', 'L', 'A',
+ 'U', 'N', 'D', 'E', 'R', 'B', 'A', 'R',
+ 'U', 'N', 'D', 'E', 'R', 'D', 'O', 'T',
+ 'U', 'N', 'D', 'E', 'R', 'T', 'I', 'E',
+ 'V', 'A', 'S', 'T', 'N', 'E', 'S', 'S',
+ 'V', 'E', 'R', 'S', 'I', 'C', 'L', 'E',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L',
+ 'V', 'I', 'E', 'W', 'D', 'A', 'T', 'A',
+ 'W', 'A', 'N', 'D', 'E', 'R', 'E', 'R',
+ 'W', 'A', 'S', 'A', 'L', 'L', 'A', 'M',
+ 'Y', 'A', 'M', 'A', 'K', 'K', 'A', 'N',
+ 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G',
+ 'Y', 'O', 'U', 'T', 'H', 'F', 'U', 'L',
+ 'Z', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'Z', 'W', 'A', 'R', 'A', 'K', 'A', 'Y',
+ 'A', 'A', 'B', 'A', 'A', 'F', 'I', 'L', 'I',
+ 'A', 'B', 'K', 'H', 'A', 'S', 'I', 'A', 'N',
+ 'A', 'B', 'U', 'N', 'D', 'A', 'N', 'C', 'E',
+ 'A', 'D', 'D', 'R', 'E', 'S', 'S', 'E', 'D',
+ 'A', 'L', '-', 'L', 'A', 'K', 'U', 'N', 'A',
+ 'A', 'L', 'P', 'A', 'P', 'R', 'A', 'N', 'A',
+ 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'E',
+ 'A', 'M', 'P', 'E', 'R', 'S', 'A', 'N', 'D',
+ 'A', 'N', 'T', 'I', 'F', 'O', 'N', 'I', 'A',
+ 'A', 'R', '-', 'R', 'A', 'H', 'E', 'E', 'M',
+ 'A', 'R', '-', 'R', 'A', 'H', 'M', 'A', 'N',
+ 'A', 'R', 'R', 'O', 'W', 'H', 'E', 'A', 'D',
+ 'A', 'S', 'C', 'E', 'N', 'D', 'I', 'N', 'G',
+ 'A', 'S', 'P', 'I', 'R', 'A', 'T', 'E', 'D',
+ 'A', 'S', 'S', 'E', 'R', 'T', 'I', 'O', 'N',
+ 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'K', 'S',
+ 'A', 'T', 'T', 'E', 'N', 'T', 'I', 'O', 'N',
+ 'B', 'A', 'C', 'K', 'S', 'L', 'A', 'S', 'H',
+ 'B', 'A', 'C', 'K', 'S', 'P', 'A', 'C', 'E',
+ 'B', 'E', 'G', 'I', 'N', 'N', 'I', 'N', 'G',
+ 'B', 'I', 'N', 'O', 'C', 'U', 'L', 'A', 'R',
+ 'B', 'I', 'O', 'H', 'A', 'Z', 'A', 'R', 'D',
+ 'B', 'I', 'S', 'E', 'C', 'T', 'I', 'N', 'G',
+ 'B', 'I', 'S', 'M', 'I', 'L', 'L', 'A', 'H',
+ 'B', 'L', 'A', 'C', 'K', 'F', 'O', 'O', 'T',
+ 'B', 'O', 'O', 'M', 'E', 'R', 'A', 'N', 'G',
+ 'B', 'R', 'A', 'N', 'C', 'H', 'I', 'N', 'G',
+ 'B', 'Y', 'Z', 'A', 'N', 'T', 'I', 'N', 'E',
+ 'C', 'A', 'P', 'R', 'I', 'C', 'O', 'R', 'N',
+ 'C', 'A', 'R', 'P', 'E', 'N', 'T', 'R', 'Y',
+ 'C', 'A', 'R', 'Y', 'S', 'T', 'I', 'A', 'N',
+ 'C', 'E', 'N', 'T', 'U', 'R', 'I', 'A', 'L',
+ 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R',
+ 'C', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E',
+ 'C', 'L', 'O', 'S', 'E', 'N', 'E', 'S', 'S',
+ 'C', 'O', 'M', 'B', 'I', 'N', 'I', 'N', 'G',
+ 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', 'D',
+ 'C', 'O', 'N', 'G', 'R', 'U', 'E', 'N', 'T',
+ 'C', 'O', 'N', 'J', 'U', 'G', 'A', 'T', 'E',
+ 'C', 'O', 'N', 'S', 'O', 'N', 'A', 'N', 'T',
+ 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'C', 'Y',
+ 'C', 'O', 'N', 'T', 'O', 'U', 'R', 'E', 'D',
+ 'C', 'O', 'P', 'R', 'O', 'D', 'U', 'C', 'T',
+ 'C', 'O', 'P', 'Y', 'R', 'I', 'G', 'H', 'T',
+ 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'D', 'O',
+ 'C', 'U', 'A', 'T', 'R', 'I', 'L', 'L', 'O',
+ 'C', 'U', 'N', 'E', 'I', 'F', 'O', 'R', 'M',
+ 'D', 'A', 'H', 'Y', 'A', 'A', 'U', 'S', 'H',
+ 'D', 'A', 'R', 'K', 'E', 'N', 'I', 'N', 'G',
+ 'D', 'E', 'L', 'I', 'M', 'I', 'T', 'E', 'R',
+ 'D', 'E', 'N', 'T', 'I', 'S', 'T', 'R', 'Y',
+ 'D', 'E', 'P', 'A', 'R', 'T', 'I', 'N', 'G',
+ 'D', 'E', 'P', 'A', 'R', 'T', 'U', 'R', 'E',
+ 'D', 'E', 'S', 'C', 'E', 'N', 'D', 'E', 'R',
+ 'D', 'I', 'A', 'E', 'R', 'E', 'S', 'I', 'S',
+ 'D', 'I', 'A', 'L', 'E', 'C', 'T', '-', 'P',
+ 'D', 'I', 'A', 'L', 'Y', 'T', 'I', 'K', 'A',
+ 'D', 'I', 'A', 'T', 'O', 'N', 'I', 'K', 'I',
+ 'D', 'I', 'F', 'T', 'O', 'G', 'G', 'O', 'S',
+ 'D', 'I', 'G', 'R', 'A', 'M', 'M', 'O', 'S',
+ 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '5', '6', '7', '8',
+ 'D', 'O', 'W', 'N', 'W', 'A', 'R', 'D', 'S',
+ 'D', 'U', 'P', 'O', 'N', 'D', 'I', 'U', 'S',
+ 'E', 'D', 'I', 'T', 'O', 'R', 'I', 'A', 'L',
+ 'E', 'E', 'B', 'E', 'E', 'F', 'I', 'L', 'I',
+ 'E', 'M', 'B', 'E', 'D', 'D', 'I', 'N', 'G',
+ 'E', 'N', 'C', 'L', 'O', 'S', 'I', 'N', 'G',
+ 'E', 'N', 'C', 'L', 'O', 'S', 'U', 'R', 'E',
+ 'E', 'N', 'D', 'E', 'A', 'V', 'O', 'U', 'R',
+ 'E', 'N', 'D', 'O', 'F', 'O', 'N', 'O', 'N',
+ 'E', 'S', 'T', 'I', 'M', 'A', 'T', 'E', 'D',
+ 'E', 'S', 'T', 'I', 'M', 'A', 'T', 'E', 'S',
+ 'E', 'X', 'C', 'E', 'L', 'L', 'E', 'N', 'T',
+ 'E', 'X', 'T', 'E', 'N', 'S', 'I', 'O', 'N',
+ 'E', 'X', 'T', 'R', 'A', '-', 'L', 'O', 'W',
+ 'E', 'Y', 'B', 'E', 'Y', 'F', 'I', 'L', 'I',
+ 'F', 'A', 'C', 'S', 'I', 'M', 'I', 'L', 'E',
+ 'F', 'A', 'N', 'E', 'R', 'O', 'S', 'I', 'S',
+ 'F', 'I', 'N', 'A', 'N', 'C', 'I', 'A', 'L',
+ 'F', 'I', 'V', 'E', '-', 'L', 'I', 'N', 'E',
+ 'F', 'L', 'A', 'T', 'T', 'E', 'N', 'E', 'D',
+ 'F', 'O', 'L', 'L', 'O', 'W', 'I', 'N', 'G',
+ 'F', 'O', 'O', 'T', 'S', 'T', 'O', 'O', 'L',
+ 'F', 'O', 'S', 'T', 'E', 'R', 'I', 'N', 'G',
+ 'F', 'O', 'U', 'R', '-', 'L', 'I', 'N', 'E',
+ 'F', 'R', 'E', 'T', 'B', 'O', 'A', 'R', 'D',
+ 'F', 'R', 'I', 'C', 'A', 'T', 'I', 'V', 'E',
+ 'F', 'U', 'L', 'L', 'W', 'I', 'D', 'T', 'H',
+ 'G', 'A', 'T', 'H', 'E', 'R', 'I', 'N', 'G',
+ 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'I', 'C',
+ 'G', 'E', 'R', 'S', 'H', 'A', 'Y', 'I', 'M',
+ 'G', 'L', 'I', 'S', 'S', 'A', 'N', 'D', 'O',
+ 'G', 'N', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'G', 'O', 'R', 'G', 'O', 'T', 'E', 'R', 'I',
+ 'G', 'R', 'E', 'A', 'T', 'N', 'E', 'S', 'S',
+ 'G', 'R', 'E', 'G', 'O', 'R', 'I', 'A', 'N',
+ 'G', 'U', 'R', 'A', 'M', 'U', 'T', 'O', 'N',
+ 'H', 'A', 'L', 'F', 'W', 'I', 'D', 'T', 'H',
+ 'H', 'E', 'K', 'U', 'T', 'A', 'A', 'R', 'U',
+ 'H', 'E', 'R', 'M', 'I', 'T', 'I', 'A', 'N',
+ 'H', 'O', 'U', 'R', 'G', 'L', 'A', 'S', 'S',
+ 'I', 'C', 'H', 'I', 'M', 'A', 'T', 'O', 'S',
+ 'I', 'D', 'E', 'N', 'T', 'I', 'C', 'A', 'L',
+ 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H',
+ 'I', 'L', 'U', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'I', 'M', 'I', 'F', 'T', 'H', 'O', 'R', 'A',
+ 'I', 'N', 'C', 'L', 'U', 'D', 'I', 'N', 'G',
+ 'I', 'N', 'C', 'R', 'E', 'A', 'S', 'E', 'S',
+ 'I', 'N', 'C', 'R', 'E', 'M', 'E', 'N', 'T',
+ 'I', 'N', 'D', 'I', 'C', 'A', 'T', 'O', 'R',
+ 'I', 'N', 'F', 'L', 'U', 'E', 'N', 'C', 'E',
+ 'I', 'N', 'N', 'O', 'C', 'E', 'N', 'C', 'E',
+ 'I', 'N', 'S', 'E', 'R', 'T', 'I', 'O', 'N',
+ 'I', 'N', 'V', 'I', 'S', 'I', 'B', 'L', 'E',
+ 'I', 'R', 'U', 'U', 'Y', 'A', 'N', 'N', 'A',
+ 'I', 'T', 'E', 'R', 'A', 'T', 'I', 'O', 'N',
+ 'J', 'E', 'R', 'U', 'S', 'A', 'L', 'E', 'M',
+ 'J', 'O', 'N', 'G', 'S', 'E', 'O', 'N', 'G',
+ 'J', 'U', 'N', 'G', 'S', 'E', 'O', 'N', 'G',
+ 'K', 'A', 'T', 'A', 'V', 'A', 'S', 'M', 'A',
+ 'K', 'E', 'M', 'P', 'H', 'R', 'E', 'N', 'G',
+ 'K', 'E', 'N', 'T', 'I', 'M', 'A', 'T', 'A',
+ 'K', 'I', 'R', 'O', 'W', 'A', 'T', 'T', 'O',
+ 'K', 'R', 'A', 'T', 'I', 'M', 'A', 'T', 'A',
+ 'K', 'U', 'R', 'U', 'Z', 'E', 'I', 'R', 'O',
+ 'L', 'A', 'B', 'O', 'U', 'R', 'I', 'N', 'G',
+ 'L', 'A', 'R', 'Y', 'N', 'G', 'E', 'A', 'L',
+ 'L', 'E', 'F', 'T', '-', 'H', 'A', 'N', 'D',
+ 'L', 'E', 'F', 'T', '-', 'S', 'I', 'D', 'E',
+ 'L', 'E', 'F', 'T', '-', 'S', 'T', 'E', 'M',
+ 'L', 'E', 'F', 'T', 'W', 'A', 'R', 'D', 'S',
+ 'L', 'E', 'S', 'S', '-', 'T', 'H', 'A', 'N',
+ 'L', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'L', 'I', 'A', 'B', 'I', 'L', 'I', 'T', 'Y',
+ 'L', 'I', 'G', 'H', 'T', 'N', 'I', 'N', 'G',
+ 'M', 'A', 'H', 'A', 'P', 'R', 'A', 'N', 'A',
+ 'M', 'A', 'I', 'T', 'A', 'I', 'K', 'H', 'U',
+ 'M', 'A', 'L', 'A', 'Y', 'A', 'L', 'A', 'M',
+ 'M', 'A', 'S', 'C', 'U', 'L', 'I', 'N', 'E',
+ 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', 'S',
+ 'M', 'E', 'S', 'S', 'E', 'N', 'I', 'A', 'N',
+ 'M', 'E', 'T', 'O', 'B', 'E', 'L', 'U', 'S',
+ 'M', 'I', 'R', 'I', 'B', 'A', 'A', 'R', 'U',
+ 'M', 'O', 'N', 'G', 'O', 'L', 'I', 'A', 'N',
+ 'M', 'O', 'N', 'O', 'C', 'U', 'L', 'A', 'R',
+ 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'P', 'H',
+ 'M', 'O', 'N', 'O', 'S', 'P', 'A', 'C', 'E',
+ 'M', 'U', 'K', 'P', 'H', 'R', 'E', 'N', 'G',
+ 'M', 'U', 'U', 'R', 'D', 'H', 'A', 'J', 'A',
+ 'N', 'I', 'G', 'G', 'A', 'H', 'I', 'T', 'A',
+ 'N', 'I', 'G', 'I', 'D', 'A', 'E', 'S', 'H',
+ 'N', 'I', 'G', 'I', 'D', 'A', 'M', 'I', 'N',
+ 'N', 'O', 'R', 'T', 'H', 'W', 'E', 'S', 'T',
+ 'N', 'U', 'M', 'E', 'R', 'A', 'T', 'O', 'R',
+ 'O', 'A', 'B', 'O', 'A', 'F', 'I', 'L', 'I',
+ 'O', 'O', 'B', 'O', 'O', 'F', 'I', 'L', 'I',
+ 'O', 'Y', 'R', 'A', 'N', 'I', 'S', 'M', 'A',
+ 'P', 'A', 'A', '-', 'P', 'I', 'L', 'L', 'A',
+ 'P', 'A', 'I', 'Y', 'A', 'N', 'N', 'O', 'I',
+ 'P', 'A', 'M', 'I', 'N', 'G', 'K', 'A', 'L',
+ 'P', 'A', 'M', 'U', 'N', 'G', 'K', 'A', 'H',
+ 'P', 'A', 'N', 'G', 'L', 'A', 'Y', 'A', 'R',
+ 'P', 'A', 'N', 'G', 'W', 'I', 'S', 'A', 'D',
+ 'P', 'A', 'R', 'A', 'G', 'R', 'A', 'P', 'H',
+ 'P', 'E', 'N', 'T', 'A', 'S', 'E', 'M', 'E',
+ 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'U', 'M',
+ 'P', 'E', 'R', 'M', 'A', 'N', 'E', 'N', 'T',
+ 'P', 'I', 'A', 'S', 'U', 'T', 'O', 'R', 'U',
+ 'P', 'I', 'T', 'C', 'H', 'F', 'O', 'R', 'K',
+ 'P', 'I', 'Z', 'Z', 'I', 'C', 'A', 'T', 'O',
+ 'P', 'O', 'R', 'R', 'E', 'C', 'T', 'U', 'S',
+ 'P', 'R', 'A', 'M', '-', 'B', 'U', 'O', 'N',
+ 'P', 'R', 'A', 'M', '-', 'M', 'U', 'O', 'Y',
+ 'P', 'R', 'E', 'C', 'E', 'D', 'I', 'N', 'G',
+ 'P', 'R', 'O', 'L', 'O', 'N', 'G', 'E', 'D',
+ 'P', 'R', 'O', 'P', 'E', 'L', 'L', 'E', 'R',
+ 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'N',
+ 'Q', 'U', 'A', 'D', 'R', 'U', 'P', 'L', 'E',
+ 'Q', 'U', 'I', 'N', 'A', 'R', 'I', 'U', 'S',
+ 'Q', 'U', 'O', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'Q', 'U', 'S', 'H', 'S', 'H', 'A', 'Y', 'A',
+ 'R', 'E', 'C', 'E', 'P', 'T', 'I', 'V', 'E',
+ 'R', 'E', 'C', 'O', 'R', 'D', 'I', 'N', 'G',
+ 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E',
+ 'R', 'E', 'C', 'Y', 'C', 'L', 'I', 'N', 'G',
+ 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E',
+ 'R', 'E', 'P', 'R', 'E', 'S', 'E', 'N', 'T',
+ 'R', 'E', 'S', 'I', 'D', 'E', 'N', 'C', 'E',
+ 'R', 'E', 'S', 'U', 'P', 'I', 'N', 'U', 'S',
+ 'R', 'E', 'T', 'R', 'O', 'F', 'L', 'E', 'X',
+ 'R', 'I', 'G', 'H', 'T', 'H', 'A', 'N', 'D',
+ 'S', 'A', 'M', 'A', 'R', 'I', 'T', 'A', 'N',
+ 'S', 'C', 'A', 'N', 'D', 'I', 'C', 'U', 'S',
+ 'S', 'E', 'B', 'A', 'T', 'B', 'E', 'I', 'T',
+ 'S', 'E', 'M', 'I', 'C', 'O', 'L', 'O', 'N',
+ 'S', 'E', 'M', 'I', 'V', 'O', 'W', 'E', 'L',
+ 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'O', 'R',
+ 'S', 'E', 'P', 'T', 'E', 'M', 'B', 'E', 'R',
+ 'S', 'E', 'V', 'E', 'N', 'T', 'E', 'E', 'N',
+ 'S', 'E', 'V', 'E', 'R', 'A', 'N', 'C', 'E',
+ 'S', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I',
+ 'S', 'H', 'O', 'R', 'T', 'E', 'N', 'E', 'R',
+ 'S', 'I', 'X', 'T', 'E', 'E', 'N', 'T', 'H',
+ 'S', 'N', 'O', 'W', 'F', 'L', 'A', 'K', 'E',
+ 'S', 'P', 'H', 'E', 'R', 'I', 'C', 'A', 'L',
+ 'S', 'P', 'L', 'I', 'T', 'T', 'I', 'N', 'G',
+ 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'S', 'T', 'R', 'E', 'T', 'C', 'H', 'E', 'D',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '1', '0',
+ 'S', 'T', 'R', 'O', 'K', 'E', '-', '1', '1',
+ 'S', 'U', 'B', 'J', 'O', 'I', 'N', 'E', 'D',
+ 'S', 'U', 'B', 'L', 'I', 'N', 'E', 'A', 'R',
+ 'S', 'U', 'B', 'S', 'C', 'R', 'I', 'P', 'T',
+ 'S', 'U', 'M', 'M', 'A', 'T', 'I', 'O', 'N',
+ 'S', 'U', 'N', 'D', 'A', 'N', 'E', 'S', 'E',
+ 'S', 'U', 'P', 'E', 'R', 'V', 'I', 'S', 'E',
+ 'S', 'Y', 'L', 'L', 'A', 'B', 'I', 'C', 'S',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '0',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '1',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '3',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '4',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '5',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '6',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '7',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '8',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '9',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '0',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '1',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '3',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '4',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '5',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '6',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '7',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '9',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '0',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '6',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '7',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '8',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '9',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '0',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '3',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '5',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '7',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '8',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '9',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '0',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '1',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '2',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '3',
+ 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '4',
+ 'S', 'Y', 'M', 'M', 'E', 'T', 'R', 'I', 'C',
+ 'S', 'Y', 'N', 'D', 'E', 'S', 'M', 'O', 'S',
+ 'S', 'Y', 'R', 'M', 'A', 'T', 'I', 'K', 'I',
+ 'T', 'A', 'K', 'H', 'A', 'L', 'L', 'U', 'S',
+ 'T', 'E', 'L', 'E', 'G', 'R', 'A', 'P', 'H',
+ 'T', 'E', 'L', 'E', 'P', 'H', 'O', 'N', 'E',
+ 'T', 'E', 'T', 'R', 'A', 'G', 'R', 'A', 'M',
+ 'T', 'E', 'T', 'R', 'A', 'S', 'E', 'M', 'E',
+ 'T', 'H', 'E', 'R', 'E', 'F', 'O', 'R', 'E',
+ 'T', 'H', 'O', 'U', 'S', 'A', 'N', 'D', 'S',
+ 'T', 'R', 'A', 'P', 'E', 'Z', 'I', 'U', 'M',
+ 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '1',
+ 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '2',
+ 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '3',
+ 'T', 'R', 'I', 'F', 'O', 'N', 'I', 'A', 'S',
+ 'T', 'R', 'I', 'G', 'O', 'R', 'G', 'O', 'N',
+ 'T', 'R', 'U', 'N', 'C', 'A', 'T', 'E', 'D',
+ 'T', 'U', 'R', 'N', 'S', 'T', 'I', 'L', 'E',
+ 'T', 'U', 'T', 'E', 'Y', 'A', 'S', 'A', 'T',
+ 'U', 'K', 'R', 'A', 'I', 'N', 'I', 'A', 'N',
+ 'U', 'N', 'D', 'E', 'R', 'L', 'I', 'N', 'E',
+ 'U', 'N', 'I', 'V', 'E', 'R', 'S', 'A', 'L',
+ 'U', 'N', 'M', 'A', 'R', 'R', 'I', 'E', 'D',
+ 'V', 'A', 'R', 'I', 'A', 'T', 'I', 'O', 'N',
+ 'V', 'I', 'S', 'A', 'R', 'G', 'A', 'Y', 'A',
+ 'V', 'O', 'I', 'C', 'E', 'L', 'E', 'S', 'S',
+ 'W', 'A', 'S', 'S', 'A', 'L', 'L', 'A', 'M',
+ 'W', 'E', 'S', 'T', '-', 'C', 'R', 'E', 'E',
+ 'W', 'O', 'R', 'D', 'S', 'P', 'A', 'C', 'E',
+ 'Y', 'P', 'O', 'K', 'R', 'I', 'S', 'I', 'S',
+ 'A', 'C', 'R', 'O', 'P', 'H', 'O', 'N', 'I', 'C',
+ 'A', 'E', 'D', 'A', '-', 'P', 'I', 'L', 'L', 'A',
+ 'A', 'E', 'L', 'A', '-', 'P', 'I', 'L', 'L', 'A',
+ 'A', 'L', 'P', 'A', 'P', 'R', 'A', 'A', 'N', 'A',
+ 'A', 'N', 'G', 'K', 'H', 'A', 'N', 'K', 'H', 'U',
+ 'A', 'N', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'N', 'T', 'I', 'K', 'E', 'N', 'O', 'M', 'A',
+ 'A', 'N', 'U', 'S', 'V', 'A', 'R', 'A', 'Y', 'A',
+ 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'F', 'O', 'I',
+ 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'F', 'O', 'S',
+ 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'P', 'H', 'E',
+ 'A', 'P', 'P', 'R', 'O', 'A', 'C', 'H', 'E', 'S',
+ 'A', 'R', 'P', 'E', 'G', 'G', 'I', 'A', 'T', 'O',
+ 'A', 'R', 'R', 'O', 'W', '-', 'T', 'A', 'I', 'L',
+ 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'C', 'U', 'S',
+ 'A', 'T', 'H', 'A', 'P', 'A', 'S', 'C', 'A', 'N',
+ 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A',
+ 'B', 'A', 'R', 'I', 'Y', 'O', 'O', 'S', 'A', 'N',
+ 'B', 'A', 'T', 'H', 'A', 'M', 'A', 'S', 'A', 'T',
+ 'B', 'I', 'B', 'L', 'E', '-', 'C', 'R', 'E', 'E',
+ 'C', 'E', 'N', 'T', 'R', 'E', 'L', 'I', 'N', 'E',
+ 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', 'S',
+ 'C', 'I', 'R', 'C', 'U', 'M', 'F', 'L', 'E', 'X',
+ 'C', 'O', 'M', 'M', 'E', 'R', 'C', 'I', 'A', 'L',
+ 'C', 'O', 'M', 'P', 'L', 'E', 'M', 'E', 'N', 'T',
+ 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'M', 'P', 'L', 'I', 'A', 'N', 'C', 'E',
+ 'C', 'O', 'N', 'J', 'O', 'I', 'N', 'I', 'N', 'G',
+ 'C', 'O', 'N', 'T', 'A', 'I', 'N', 'I', 'N', 'G',
+ 'C', 'O', 'N', 'T', 'E', 'N', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'O', 'U', 'S',
+ 'C', 'R', 'O', 'S', 'S', 'B', 'O', 'N', 'E', 'S',
+ 'C', 'R', 'O', 'S', 'S', 'H', 'A', 'T', 'C', 'H',
+ 'D', 'A', 'G', 'B', 'A', 'S', 'I', 'N', 'N', 'A',
+ 'D', 'E', 'F', 'I', 'N', 'I', 'T', 'I', 'O', 'N',
+ 'D', 'E', 'S', 'C', 'E', 'N', 'D', 'I', 'N', 'G',
+ 'D', 'E', 'V', 'A', 'N', 'A', 'G', 'A', 'R', 'I',
+ 'D', 'I', 'F', 'F', 'E', 'R', 'E', 'N', 'C', 'E',
+ 'D', 'I', 'F', 'F', 'I', 'C', 'U', 'L', 'T', 'Y',
+ 'D', 'I', 'S', 'P', 'E', 'R', 'S', 'I', 'O', 'N',
+ 'D', 'I', 'S', 'T', 'O', 'R', 'T', 'I', 'O', 'N',
+ 'D', 'I', 'V', 'E', 'R', 'G', 'E', 'N', 'C', 'E',
+ 'D', 'I', 'V', 'I', 'N', 'A', 'T', 'I', 'O', 'N',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '4', '5', '6', '7', '8',
+ 'E', 'K', 'S', 'T', 'R', 'E', 'P', 'T', 'O', 'N',
+ 'E', 'L', 'E', 'C', 'T', 'R', 'I', 'C', 'A', 'L',
+ 'E', 'M', 'B', 'R', 'O', 'I', 'D', 'E', 'R', 'Y',
+ 'E', 'N', 'A', 'R', 'M', 'O', 'N', 'I', 'O', 'S',
+ 'E', 'N', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S',
+ 'E', 'N', 'T', 'E', 'R', 'P', 'R', 'I', 'S', 'E',
+ 'E', 'N', 'T', 'H', 'U', 'S', 'I', 'A', 'S', 'M',
+ 'E', 'P', 'I', 'D', 'A', 'U', 'R', 'E', 'A', 'N',
+ 'E', 'P', 'I', 'G', 'R', 'A', 'P', 'H', 'I', 'C',
+ 'E', 'Q', 'U', 'I', 'V', 'A', 'L', 'E', 'N', 'T',
+ 'E', 'X', 'H', 'A', 'U', 'S', 'T', 'I', 'O', 'N',
+ 'E', 'X', 'T', 'R', 'A', '-', 'H', 'I', 'G', 'H',
+ 'F', 'A', 'H', 'R', 'E', 'N', 'H', 'E', 'I', 'T',
+ 'F', 'E', 'L', 'L', 'O', 'W', 'S', 'H', 'I', 'P',
+ 'F', 'I', 'X', 'E', 'D', '-', 'F', 'O', 'R', 'M',
+ 'F', 'O', 'R', 'M', 'A', 'T', 'T', 'I', 'N', 'G',
+ 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', 'A', 'L',
+ 'G', 'B', 'A', 'K', 'U', 'R', 'U', 'N', 'E', 'N',
+ 'G', 'E', 'M', 'I', 'N', 'A', 'T', 'I', 'O', 'N',
+ 'G', 'L', 'A', 'G', 'O', 'L', 'I', 'T', 'I', 'C',
+ 'G', 'O', 'R', 'T', 'H', 'M', 'I', 'K', 'O', 'N',
+ 'H', 'E', 'R', 'M', 'I', 'O', 'N', 'I', 'A', 'N',
+ 'H', 'O', 'M', 'O', 'T', 'H', 'E', 'T', 'I', 'C',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L',
+ 'H', 'Y', 'S', 'T', 'E', 'R', 'E', 'S', 'I', 'S',
+ 'I', 'E', 'U', 'N', 'G', '-', 'S', 'I', 'O', 'S',
+ 'I', 'M', 'I', 'D', 'I', 'A', 'R', 'G', 'O', 'N',
+ 'I', 'M', 'I', 'F', 'T', 'H', 'O', 'R', 'O', 'N',
+ 'I', 'M', 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'A',
+ 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E',
+ 'I', 'N', 'D', 'U', 'S', 'T', 'R', 'I', 'A', 'L',
+ 'K', 'H', 'A', 'K', 'A', 'S', 'S', 'I', 'A', 'N',
+ 'K', 'H', 'A', 'R', 'O', 'S', 'H', 'T', 'H', 'I',
+ 'K', 'I', 'R', 'O', 'G', 'U', 'R', 'A', 'M', 'U',
+ 'K', 'U', 'N', 'D', 'D', 'A', 'L', 'I', 'Y', 'A',
+ 'L', 'A', 'J', 'A', 'N', 'Y', 'A', 'L', 'A', 'N',
+ 'L', 'E', 'N', 'G', 'T', 'H', 'E', 'N', 'E', 'R',
+ 'L', 'E', 'N', 'T', 'I', 'C', 'U', 'L', 'A', 'R',
+ 'L', 'I', 'M', 'I', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'M', 'E', 'M', 'B', 'E', 'R', 'S', 'H', 'I', 'P',
+ 'M', 'I', 'E', 'U', 'M', '-', 'S', 'I', 'O', 'S',
+ 'M', 'O', 'N', 'O', 'F', 'O', 'N', 'I', 'A', 'S',
+ 'M', 'O', 'N', 'O', 'S', 'T', 'A', 'B', 'L', 'E',
+ 'M', 'O', 'O', 'S', 'E', '-', 'C', 'R', 'E', 'E',
+ 'M', 'U', '-', 'G', 'A', 'A', 'H', 'L', 'A', 'A',
+ 'N', 'A', 'A', 'S', 'I', 'K', 'Y', 'A', 'Y', 'A',
+ 'N', 'A', 'N', 'G', 'M', 'O', 'N', 'T', 'H', 'O',
+ 'N', 'I', 'E', 'U', 'N', '-', 'S', 'I', 'O', 'S',
+ 'N', 'O', 'N', '-', 'J', 'O', 'I', 'N', 'E', 'R',
+ 'N', 'O', 'N', 'F', 'O', 'R', 'K', 'I', 'N', 'G',
+ 'O', 'P', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N',
+ 'O', 'P', 'P', 'R', 'E', 'S', 'S', 'I', 'O', 'N',
+ 'O', 'R', 'T', 'H', 'O', 'G', 'O', 'N', 'A', 'L',
+ 'P', 'A', 'M', 'P', 'H', 'Y', 'L', 'I', 'A', 'N',
+ 'P', 'A', 'N', 'A', 'E', 'L', 'A', 'E', 'N', 'G',
+ 'P', 'A', 'N', 'E', 'U', 'L', 'E', 'U', 'N', 'G',
+ 'P', 'A', 'R', 'A', 'P', 'H', 'R', 'A', 'S', 'E',
+ 'P', 'A', 'T', 'H', 'A', 'M', 'A', 'S', 'A', 'T',
+ 'P', 'E', 'D', 'E', 'S', 'T', 'R', 'I', 'A', 'N',
+ 'P', 'E', 'R', 'C', 'U', 'S', 'S', 'I', 'V', 'E',
+ 'P', 'H', 'A', 'R', 'Y', 'N', 'G', 'E', 'A', 'L',
+ 'P', 'H', 'I', 'L', 'I', 'P', 'P', 'I', 'N', 'E',
+ 'P', 'H', 'O', 'E', 'N', 'I', 'C', 'I', 'A', 'N',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S',
+ 'P', 'L', 'U', 'S', '-', 'M', 'I', 'N', 'U', 'S',
+ 'P', 'O', 'S', 'S', 'E', 'S', 'S', 'I', 'O', 'N',
+ 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E',
+ 'P', 'R', 'O', 'L', 'A', 'T', 'I', 'O', 'N', 'E',
+ 'P', 'R', 'O', 'P', 'O', 'R', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'O', 'T', 'O', 'V', 'A', 'R', 'Y', 'S',
+ 'Q', 'U', 'A', 'T', 'E', 'R', 'N', 'I', 'O', 'N',
+ 'Q', 'U', 'E', 'S', 'T', 'I', 'O', 'N', 'E', 'D',
+ 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'E', 'D',
+ 'R', 'E', 'L', 'A', 'T', 'I', 'O', 'N', 'A', 'L',
+ 'R', 'E', 'S', 'I', 'S', 'T', 'A', 'N', 'C', 'E',
+ 'R', 'E', 'S', 'O', 'L', 'U', 'T', 'I', 'O', 'N',
+ 'R', 'E', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N',
+ 'R', 'I', 'E', 'U', 'L', '-', 'S', 'I', 'O', 'S',
+ 'R', 'I', 'G', 'H', 'T', '-', 'H', 'A', 'N', 'D',
+ 'R', 'I', 'G', 'H', 'T', '-', 'S', 'I', 'D', 'E',
+ 'R', 'I', 'G', 'H', 'T', 'W', 'A', 'R', 'D', 'S',
+ 'S', 'A', 'N', 'S', '-', 'S', 'E', 'R', 'I', 'F',
+ 'S', 'A', 'U', 'R', 'A', 'S', 'H', 'T', 'R', 'A',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9',
+ 'S', 'E', 'M', 'I', 'B', 'R', 'E', 'V', 'I', 'S',
+ 'S', 'E', 'M', 'I', 'C', 'I', 'R', 'C', 'L', 'E',
+ 'S', 'E', 'M', 'I', 'D', 'I', 'R', 'E', 'C', 'T',
+ 'S', 'E', 'M', 'I', 'M', 'I', 'N', 'I', 'M', 'A',
+ 'S', 'E', 'S', 'T', 'E', 'R', 'T', 'I', 'U', 'S',
+ 'S', 'H', 'A', 'L', 'S', 'H', 'E', 'L', 'E', 'T',
+ 'S', 'H', 'O', 'U', 'L', 'D', 'E', 'R', 'E', 'D',
+ 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D',
+ 'S', 'I', 'O', 'S', '-', 'C', 'I', 'E', 'U', 'C',
+ 'S', 'I', 'O', 'S', '-', 'H', 'I', 'E', 'U', 'H',
+ 'S', 'I', 'O', 'S', '-', 'I', 'E', 'U', 'N', 'G',
+ 'S', 'I', 'O', 'S', '-', 'M', 'I', 'E', 'U', 'M',
+ 'S', 'I', 'O', 'S', '-', 'N', 'I', 'E', 'U', 'N',
+ 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P',
+ 'S', 'I', 'O', 'S', '-', 'R', 'I', 'E', 'U', 'L',
+ 'S', 'I', 'X', '-', 'P', 'E', 'R', '-', 'E', 'M',
+ 'S', 'I', 'X', '-', 'S', 'T', 'R', 'I', 'N', 'G',
+ 'S', 'S', 'A', 'N', 'G', 'A', 'R', 'A', 'E', 'A',
+ 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C',
+ 'S', 'S', 'A', 'N', 'G', 'H', 'I', 'E', 'U', 'H',
+ 'S', 'S', 'A', 'N', 'G', 'I', 'E', 'U', 'N', 'G',
+ 'S', 'S', 'A', 'N', 'G', 'N', 'I', 'E', 'U', 'N',
+ 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P',
+ 'S', 'S', 'A', 'N', 'G', 'R', 'I', 'E', 'U', 'L',
+ 'S', 'T', 'A', 'N', 'D', 'S', 'T', 'I', 'L', 'L',
+ 'S', 'U', 'B', 'P', 'U', 'N', 'C', 'T', 'I', 'S',
+ 'S', 'U', 'B', 'S', 'T', 'I', 'T', 'U', 'T', 'E',
+ 'S', 'U', 'P', 'E', 'R', 'F', 'I', 'X', 'E', 'D',
+ 'S', 'U', 'S', 'P', 'E', 'N', 'S', 'I', 'O', 'N',
+ 'T', 'A', 'B', 'U', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'T', 'A', 'W', 'E', 'L', 'L', 'E', 'M', 'E', 'T',
+ 'T', 'E', 'R', 'M', 'I', 'N', 'A', 'T', 'O', 'R',
+ 'T', 'E', 'T', 'R', 'A', 'S', 'I', 'M', 'O', 'U',
+ 'T', 'H', 'I', 'R', 'T', 'Y', '-', 'O', 'N', 'E',
+ 'T', 'H', 'R', 'E', 'E', '-', 'L', 'I', 'N', 'E',
+ 'T', 'R', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R',
+ 'T', 'R', 'I', 'F', 'O', 'L', 'I', 'A', 'T', 'E',
+ 'T', 'R', 'I', 'G', 'R', 'A', 'M', 'M', 'O', 'S',
+ 'T', 'R', 'O', 'E', 'Z', 'E', 'N', 'I', 'A', 'N',
+ 'T', 'R', 'O', 'K', 'U', 'T', 'A', 'S', 'T', 'I',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'O', 'N', 'E',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'S', 'I', 'X',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'T', 'W', 'O',
+ 'T', 'W', 'O', '-', 'H', 'E', 'A', 'D', 'E', 'D',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', 'L', 'Y',
+ 'V', 'I', 'S', 'I', 'G', 'O', 'T', 'H', 'I', 'C',
+ 'W', 'H', 'E', 'E', 'L', 'C', 'H', 'A', 'I', 'R',
+ 'W', 'O', 'O', 'D', 'S', '-', 'C', 'R', 'E', 'E',
+ 'A', 'C', 'K', 'N', 'O', 'W', 'L', 'E', 'D', 'G', 'E',
+ 'A', 'E', 'S', 'C', 'U', 'L', 'A', 'P', 'I', 'U', 'S',
+ 'A', 'G', 'G', 'R', 'A', 'V', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'I', 'V', 'E',
+ 'A', 'P', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'P', 'P', 'R', 'O', 'X', 'I', 'M', 'A', 'T', 'E',
+ 'B', 'A', 'C', 'K', '-', 'T', 'I', 'L', 'T', 'E', 'D',
+ 'C', 'A', 'N', 'D', 'R', 'A', 'B', 'I', 'N', 'D', 'U',
+ 'C', 'I', 'E', 'U', 'C', '-', 'I', 'E', 'U', 'N', 'G',
+ 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'C', 'L', 'U', 'B', '-', 'S', 'P', 'O', 'K', 'E', 'D',
+ 'C', 'O', 'M', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'N', 'J', 'U', 'N', 'C', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'N', 'S', 'E', 'C', 'U', 'T', 'I', 'V', 'E',
+ 'C', 'O', 'N', 'T', 'R', 'A', 'C', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'N', 'T', 'R', 'A', 'R', 'I', 'E', 'T', 'Y',
+ 'C', 'O', 'R', 'P', 'O', 'R', 'A', 'T', 'I', 'O', 'N',
+ 'C', 'O', 'R', 'R', 'E', 'S', 'P', 'O', 'N', 'D', 'S',
+ 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'B', 'O', 'R', 'E',
+ 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', 'I', 'N', 'K',
+ 'D', 'A', 'H', 'Y', 'A', 'A', 'U', 'S', 'H', '-', '2',
+ 'D', 'E', 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'D', 'O',
+ 'D', 'E', 'L', 'I', 'V', 'E', 'R', 'A', 'N', 'C', 'E',
+ 'D', 'E', 'N', 'O', 'M', 'I', 'N', 'A', 'T', 'O', 'R',
+ 'D', 'E', 'R', 'E', 'T', '-', 'H', 'I', 'D', 'E', 'T',
+ 'D', 'E', 'S', 'C', 'R', 'I', 'P', 'T', 'I', 'O', 'N',
+ 'D', 'E', 'V', 'E', 'L', 'O', 'P', 'M', 'E', 'N', 'T',
+ 'D', 'I', 'A', 'E', 'R', 'E', 'S', 'I', 'Z', 'E', 'D',
+ 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N', 'A', 'L',
+ 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'A', 'L',
+ 'D', 'I', 'S', 'T', 'I', 'N', 'G', 'U', 'I', 'S', 'H',
+ 'D', 'O', 'A', 'C', 'H', 'A', 'S', 'H', 'M', 'E', 'E',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '7', '8',
+ 'D', 'O', 'U', 'B', 'L', 'E', '-', 'L', 'I', 'N', 'E',
+ 'E', 'A', 'M', 'H', 'A', 'N', 'C', 'H', 'O', 'L', 'L',
+ 'E', 'K', 'F', 'O', 'N', 'I', 'T', 'I', 'K', 'O', 'N',
+ 'E', 'N', 'L', 'A', 'R', 'G', 'E', 'M', 'E', 'N', 'T',
+ 'E', 'Q', 'U', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R',
+ 'E', 'X', 'C', 'L', 'A', 'M', 'A', 'T', 'I', 'O', 'N',
+ 'F', 'I', 'N', 'G', 'E', 'R', 'N', 'A', 'I', 'L', 'S',
+ 'F', 'O', 'U', 'R', '-', 'P', 'E', 'R', '-', 'E', 'M',
+ 'F', 'O', 'U', 'R', '-', 'S', 'T', 'R', 'I', 'N', 'G',
+ 'G', 'A', 'Y', 'A', 'N', 'U', 'K', 'I', 'T', 'T', 'A',
+ 'G', 'U', 'A', 'R', 'D', 'E', 'D', 'N', 'E', 'S', 'S',
+ 'H', 'A', 'U', 'P', 'T', 'S', 'T', 'I', 'M', 'M', 'E',
+ 'H', 'B', 'A', 'S', 'A', '-', 'E', 'S', 'A', 'S', 'A',
+ 'H', 'I', 'E', 'U', 'H', '-', 'M', 'I', 'E', 'U', 'M',
+ 'H', 'I', 'E', 'U', 'H', '-', 'N', 'I', 'E', 'U', 'N',
+ 'H', 'I', 'E', 'U', 'H', '-', 'P', 'I', 'E', 'U', 'P',
+ 'H', 'I', 'E', 'U', 'H', '-', 'R', 'I', 'E', 'U', 'L',
+ 'H', 'Y', 'P', 'H', 'E', 'N', 'A', 'T', 'I', 'O', 'N',
+ 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', 'I', 'C',
+ 'I', 'E', 'U', 'N', 'G', '-', 'C', 'I', 'E', 'U', 'C',
+ 'I', 'E', 'U', 'N', 'G', '-', 'M', 'I', 'E', 'U', 'M',
+ 'I', 'E', 'U', 'N', 'G', '-', 'P', 'I', 'E', 'U', 'P',
+ 'I', 'M', 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'U', 'M',
+ 'I', 'N', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T',
+ 'I', 'N', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N',
+ 'I', 'N', 'T', 'E', 'G', 'R', 'A', 'T', 'I', 'O', 'N',
+ 'I', 'N', 'T', 'E', 'R', 'C', 'A', 'L', 'A', 'T', 'E',
+ 'I', 'N', 'T', 'E', 'R', 'L', 'I', 'N', 'E', 'A', 'R',
+ 'I', 'N', 'T', 'E', 'R', 'L', 'O', 'C', 'K', 'E', 'D',
+ 'I', 'N', 'T', 'E', 'R', 'R', 'O', 'B', 'A', 'N', 'G',
+ 'J', 'I', 'H', 'V', 'A', 'M', 'U', 'L', 'I', 'Y', 'A',
+ 'K', 'I', 'R', 'O', 'M', 'E', 'E', 'T', 'O', 'R', 'U',
+ 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S',
+ 'L', 'A', 'K', 'K', 'H', 'A', 'N', 'G', 'Y', 'A', 'O',
+ 'L', 'E', 'F', 'T', '-', 'S', 'H', 'A', 'D', 'E', 'D',
+ 'M', 'A', 'H', 'A', 'A', 'P', 'R', 'A', 'A', 'N', 'A',
+ 'M', 'I', 'E', 'U', 'M', '-', 'H', 'I', 'E', 'U', 'H',
+ 'M', 'I', 'E', 'U', 'M', '-', 'P', 'I', 'E', 'U', 'P',
+ 'M', 'I', 'E', 'U', 'M', '-', 'R', 'I', 'E', 'U', 'L',
+ 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'M', 'M', 'O', 'S',
+ 'M', 'U', 'L', 'T', 'I', 'O', 'C', 'U', 'L', 'A', 'R',
+ 'M', 'U', 'U', 'S', 'I', 'K', 'A', 'T', 'O', 'A', 'N',
+ 'N', 'A', 'A', 'K', 'S', 'I', 'K', 'Y', 'A', 'Y', 'A',
+ 'N', 'E', 'B', 'E', 'N', 'S', 'T', 'I', 'M', 'M', 'E',
+ 'N', 'I', 'E', 'U', 'N', '-', 'C', 'I', 'E', 'U', 'C',
+ 'N', 'I', 'E', 'U', 'N', '-', 'H', 'I', 'E', 'U', 'H',
+ 'N', 'I', 'E', 'U', 'N', '-', 'P', 'I', 'E', 'U', 'P',
+ 'O', 'B', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N',
+ 'O', 'P', 'E', 'N', '-', 'H', 'E', 'A', 'D', 'E', 'D',
+ 'O', 'V', 'E', 'R', 'L', 'A', 'P', 'P', 'I', 'N', 'G',
+ 'P', 'A', 'L', 'A', 'T', 'A', 'L', 'I', 'Z', 'E', 'D',
+ 'P', 'A', 'R', 'A', 'G', 'R', 'A', 'P', 'H', 'O', 'S',
+ 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A',
+ 'P', 'A', 'R', 'A', 'K', 'L', 'I', 'T', 'I', 'K', 'I',
+ 'P', 'A', 'R', 'E', 'N', 'T', 'H', 'E', 'S', 'I', 'S',
+ 'P', 'A', 'R', 'T', 'N', 'E', 'R', 'S', 'H', 'I', 'P',
+ 'P', 'E', 'N', 'E', 'T', 'R', 'A', 'T', 'I', 'O', 'N',
+ 'P', 'E', 'R', 'I', 'S', 'P', 'O', 'M', 'E', 'N', 'I',
+ 'P', 'E', 'R', 'S', 'P', 'E', 'C', 'T', 'I', 'V', 'E',
+ 'P', 'I', 'E', 'U', 'P', '-', 'C', 'I', 'E', 'U', 'C',
+ 'P', 'I', 'E', 'U', 'P', '-', 'H', 'I', 'E', 'U', 'H',
+ 'P', 'I', 'E', 'U', 'P', '-', 'N', 'I', 'E', 'U', 'N',
+ 'P', 'I', 'E', 'U', 'P', '-', 'R', 'I', 'E', 'U', 'L',
+ 'P', 'U', 'N', 'C', 'T', 'U', 'A', 'T', 'I', 'O', 'N',
+ 'R', 'A', 'D', 'I', 'O', 'A', 'C', 'T', 'I', 'V', 'E',
+ 'R', 'A', 'H', 'M', 'A', 'T', 'U', 'L', 'L', 'A', 'H',
+ 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'U', 'L', 'A', 'R',
+ 'R', 'E', 'C', 'T', 'I', 'L', 'I', 'N', 'E', 'A', 'R',
+ 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T',
+ 'R', 'I', 'E', 'U', 'L', '-', 'H', 'I', 'E', 'U', 'H',
+ 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M',
+ 'R', 'I', 'E', 'U', 'L', '-', 'N', 'I', 'E', 'U', 'N',
+ 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P',
+ 'R', 'I', 'N', 'F', 'O', 'R', 'Z', 'A', 'N', 'D', 'O',
+ 'S', 'A', 'C', 'R', 'I', 'F', 'I', 'C', 'I', 'A', 'L',
+ 'S', 'A', 'G', 'I', 'T', 'T', 'A', 'R', 'I', 'U', 'S',
+ 'S', 'A', 'L', 'L', 'A', 'L', 'L', 'A', 'H', 'O', 'U',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '3', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '4', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '5', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '6', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '7', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '8', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '9', '9',
+ 'S', 'E', 'M', 'I', '-', 'V', 'O', 'I', 'C', 'E', 'D',
+ 'S', 'E', 'M', 'I', 'S', 'E', 'X', 'T', 'I', 'L', 'E',
+ 'S', 'I', 'N', 'G', 'L', 'E', '-', 'L', 'I', 'N', 'E',
+ 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'S', 'I', 'O', 'S', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'S', 'S', 'A', 'N', 'G', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'S', 'U', 'P', 'E', 'R', 'S', 'C', 'R', 'I', 'P', 'T',
+ 'S', 'U', 'P', 'R', 'A', 'L', 'I', 'N', 'E', 'A', 'R',
+ 'S', 'Y', 'N', 'C', 'H', 'R', 'O', 'N', 'O', 'U', 'S',
+ 'T', 'E', 'T', 'R', 'A', 'F', 'O', 'N', 'I', 'A', 'S',
+ 'T', 'H', 'A', 'N', 'T', 'H', 'A', 'K', 'H', 'A', 'T',
+ 'T', 'H', 'E', 'M', 'A', 'T', 'I', 'S', 'M', 'O', 'S',
+ 'T', 'O', 'A', 'N', 'D', 'A', 'K', 'H', 'I', 'A', 'T',
+ 'T', 'O', 'P', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D',
+ 'T', 'R', 'A', 'N', 'S', 'V', 'E', 'R', 'S', 'A', 'L',
+ 'T', 'R', 'I', 'T', 'I', 'M', 'O', 'R', 'I', 'O', 'N',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'F', 'I', 'V', 'E',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'F', 'O', 'U', 'R',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'N', 'I', 'N', 'E',
+ 'U', 'N', 'A', 'S', 'P', 'I', 'R', 'A', 'T', 'E', 'D',
+ 'U', 'P', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G',
+ 'U', 'P', 'A', 'D', 'H', 'M', 'A', 'N', 'I', 'Y', 'A',
+ 'W', 'I', 'D', 'E', '-', 'H', 'E', 'A', 'D', 'E', 'D',
+ 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H',
+ 'A', 'B', 'B', 'R', 'E', 'V', 'I', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'C', 'C', 'U', 'M', 'U', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'C', 'U', 'T', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N',
+ 'A', 'K', 'T', 'I', 'E', 'S', 'E', 'L', 'S', 'K', 'A', 'B',
+ 'A', 'M', 'A', 'L', 'G', 'A', 'M', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'N', 'A', 'T', 'R', 'I', 'C', 'H', 'I', 'S', 'M', 'A',
+ 'A', 'R', 'A', 'B', 'I', 'C', '-', 'I', 'N', 'D', 'I', 'C',
+ 'A', 'S', 'T', 'R', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L',
+ 'A', 'U', 'G', 'M', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A', '-', '2',
+ 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A', 'H', 'A',
+ 'B', 'L', 'A', 'C', 'K', '-', 'L', 'E', 'T', 'T', 'E', 'R',
+ 'B', 'R', 'E', 'A', 'K', 'T', 'H', 'R', 'O', 'U', 'G', 'H',
+ 'B', 'R', 'E', 'V', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N',
+ 'C', '-', 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D',
+ 'C', 'A', 'N', 'C', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'C', 'A', 'N', 'T', 'I', 'L', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'I', 'O', 'S',
+ 'C', 'R', 'O', 'S', 'S', 'E', 'D', '-', 'T', 'A', 'I', 'L',
+ 'C', 'Y', 'L', 'I', 'N', 'D', 'R', 'I', 'C', 'I', 'T', 'Y',
+ 'D', 'E', 'C', 'I', 'S', 'I', 'V', 'E', 'N', 'E', 'S', 'S',
+ 'D', 'I', 'F', 'F', 'E', 'R', 'E', 'N', 'T', 'I', 'A', 'L',
+ 'D', 'I', 'F', 'F', 'I', 'C', 'U', 'L', 'T', 'I', 'E', 'S',
+ 'D', 'I', 'M', 'I', 'N', 'I', 'S', 'H', 'M', 'E', 'N', 'T',
+ 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '1',
+ 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '2',
+ 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '3',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '7',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '7', '8',
+ 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '7', '8',
+ 'D', 'O', 'U', 'B', 'L', 'E', '-', 'E', 'N', 'D', 'E', 'D',
+ 'E', 'R', 'R', 'O', 'R', '-', 'B', 'A', 'R', 'R', 'E', 'D',
+ 'F', 'L', 'E', 'U', 'R', '-', 'D', 'E', '-', 'L', 'I', 'S',
+ 'F', 'R', 'O', 'N', 'T', '-', 'T', 'I', 'L', 'T', 'E', 'D',
+ 'G', 'A', 'E', 'T', 'T', 'A', '-', 'P', 'I', 'L', 'L', 'A',
+ 'G', 'R', 'A', 'V', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N',
+ 'G', 'R', 'E', 'A', 'T', 'E', 'R', '-', 'T', 'H', 'A', 'N',
+ 'G', 'R', 'O', 'N', 'T', 'H', 'I', 'S', 'M', 'A', 'T', 'A',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', 'L', 'Y',
+ 'H', 'Y', 'P', 'H', 'E', 'N', '-', 'M', 'I', 'N', 'U', 'S',
+ 'H', 'Y', 'P', 'O', 'D', 'I', 'A', 'S', 'T', 'O', 'L', 'E',
+ 'I', 'C', 'E', 'L', 'A', 'N', 'D', 'I', 'C', '-', 'Y', 'R',
+ 'I', 'E', 'U', 'N', 'G', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'I', 'E', 'U', 'N', 'G', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'I', 'N', 'S', 'T', 'R', 'U', 'M', 'E', 'N', 'T', 'A', 'L',
+ 'I', 'N', 'T', 'E', 'R', 'S', 'E', 'C', 'T', 'I', 'N', 'G',
+ 'I', 'N', 'T', 'E', 'R', 'S', 'E', 'C', 'T', 'I', 'O', 'N',
+ 'J', '-', 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D',
+ 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'R', 'I', 'E', 'U', 'L',
+ 'M', 'A', 'C', 'R', 'O', 'N', '-', 'A', 'C', 'U', 'T', 'E',
+ 'M', 'A', 'C', 'R', 'O', 'N', '-', 'B', 'R', 'E', 'V', 'E',
+ 'M', 'A', 'C', 'R', 'O', 'N', '-', 'G', 'R', 'A', 'V', 'E',
+ 'M', 'A', 'T', 'H', 'E', 'M', 'A', 'T', 'I', 'C', 'A', 'L',
+ 'M', 'I', 'D', 'D', 'L', 'E', '-', 'W', 'E', 'L', 'S', 'H',
+ 'M', 'I', 'E', 'U', 'M', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'N', 'A', 'S', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N',
+ 'N', 'I', 'E', 'U', 'N', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'N', 'I', 'E', 'U', 'N', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'N', 'O', 'N', '-', 'B', 'R', 'E', 'A', 'K', 'I', 'N', 'G',
+ 'P', 'I', 'E', 'U', 'P', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'P', 'I', 'E', 'U', 'P', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'P', 'O', 'S', 'T', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'E', 'S', 'C', 'R', 'I', 'P', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'E', 'S', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'O', 'P', 'O', 'R', 'T', 'I', 'O', 'N', 'A', 'L',
+ 'Q', 'U', 'I', 'N', 'D', 'I', 'C', 'E', 'S', 'I', 'M', 'A',
+ 'R', 'I', 'E', 'U', 'L', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'R', 'I', 'E', 'U', 'L', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'R', 'I', 'G', 'H', 'T', '-', 'S', 'H', 'A', 'D', 'E', 'D',
+ 'R', 'O', 'U', 'N', 'D', '-', 'T', 'I', 'P', 'P', 'E', 'D',
+ 'R', 'U', 'L', 'E', '-', 'D', 'E', 'L', 'A', 'Y', 'E', 'D',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '0', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '1', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '2', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '3', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '4', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '5', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '6', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '7', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '8', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '1', '9', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '0', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '1', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '2', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '3', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '6',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '7',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '8',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '4', '9',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '0',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '1',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '2',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '3',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '4',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '5',
+ 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', '-', '2', '5', '6',
+ 'S', 'E', 'M', 'I', 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R',
+ 'S', 'I', 'O', 'S', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'S', 'I', 'O', 'S', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H',
+ 'S', 'I', 'O', 'S', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'S', 'I', 'O', 'S', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'S', 'I', 'X', 'T', 'Y', '-', 'F', 'O', 'U', 'R', 'T', 'H',
+ 'S', 'O', 'U', 'T', 'H', '-', 'S', 'L', 'A', 'V', 'E', 'Y',
+ 'S', 'P', 'R', 'E', 'C', 'H', 'G', 'E', 'S', 'A', 'N', 'G',
+ 'S', 'T', 'R', 'A', 'G', 'G', 'I', 'S', 'M', 'A', 'T', 'A',
+ 'S', 'T', 'R', 'A', 'I', 'G', 'H', 'T', 'N', 'E', 'S', 'S',
+ 'S', 'U', 'B', 'S', 'T', 'I', 'T', 'U', 'T', 'I', 'O', 'N',
+ 'S', 'U', 'P', 'E', 'R', 'I', 'M', 'P', 'O', 'S', 'E', 'D',
+ 'T', 'H', 'R', 'E', 'E', '-', 'P', 'E', 'R', '-', 'E', 'M',
+ 'T', 'H', 'U', 'N', 'D', 'E', 'R', 'S', 'T', 'O', 'R', 'M',
+ 'T', 'I', 'K', 'E', 'U', 'T', '-', 'R', 'I', 'E', 'U', 'L',
+ 'T', 'R', 'A', 'N', 'S', 'M', 'I', 'S', 'S', 'I', 'O', 'N',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'E', 'I', 'G', 'H', 'T',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'S', 'E', 'V', 'E', 'N',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'T', 'H', 'R', 'E', 'E',
+ 'W', 'E', 'D', 'G', 'E', '-', 'T', 'A', 'I', 'L', 'E', 'D',
+ 'X', 'S', 'H', 'A', 'A', 'Y', 'A', 'T', 'H', 'I', 'Y', 'A',
+ 'Y', 'O', 'U', 'T', 'H', 'F', 'U', 'L', 'N', 'E', 'S', 'S',
+ 'A', 'N', 'T', 'I', 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E',
+ 'A', 'P', 'P', 'R', 'O', 'X', 'I', 'M', 'A', 'T', 'E', 'L', 'Y',
+ 'A', 'R', 'G', 'O', 'S', 'Y', 'N', 'T', 'H', 'E', 'T', 'O', 'N',
+ 'A', 'V', 'A', 'K', 'R', 'A', 'H', 'A', 'S', 'A', 'N', 'Y', 'A',
+ 'C', 'H', 'I', 'E', 'U', 'C', 'H', '-', 'H', 'I', 'E', 'U', 'H',
+ 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'C', 'I', 'E', 'U', 'C',
+ 'C', 'H', 'R', 'Y', 'S', 'A', 'N', 'T', 'H', 'E', 'M', 'U', 'M',
+ 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y',
+ 'C', 'O', 'N', 'C', 'A', 'V', 'E', '-', 'S', 'I', 'D', 'E', 'D',
+ 'C', 'O', 'N', 'T', 'E', 'M', 'P', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'C', 'R', 'Y', 'P', 'T', 'O', 'G', 'R', 'A', 'M', 'M', 'I', 'C',
+ 'D', 'E', 'F', 'E', 'C', 'T', 'I', 'V', 'E', 'N', 'E', 'S', 'S',
+ 'D', 'I', 'S', 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'O', 'U', 'S',
+ 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '7', '8',
+ 'D', 'O', 'U', 'B', 'L', 'E', '-', 'S', 'T', 'R', 'U', 'C', 'K',
+ 'D', 'O', 'W', 'N', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G',
+ 'D', 'R', 'O', 'P', '-', 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D',
+ 'E', 'G', 'Y', 'P', 'T', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L',
+ 'E', 'M', 'B', 'E', 'L', 'L', 'I', 'S', 'H', 'M', 'E', 'N', 'T',
+ 'E', 'U', 'R', 'O', '-', 'C', 'U', 'R', 'R', 'E', 'N', 'C', 'Y',
+ 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'I', 'C', 'A', 'L', 'L', 'Y',
+ 'I', 'E', 'U', 'N', 'G', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'I', 'E', 'U', 'N', 'G', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H',
+ 'I', 'E', 'U', 'N', 'G', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'I', 'E', 'U', 'N', 'G', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'I', 'E', 'U', 'N', 'G', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'I', 'N', 'T', 'E', 'R', 'S', 'Y', 'L', 'L', 'A', 'B', 'I', 'C',
+ 'J', 'U', 'D', 'E', 'O', '-', 'S', 'P', 'A', 'N', 'I', 'S', 'H',
+ 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'M', 'I', 'E', 'U', 'M',
+ 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P',
+ 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'R', 'I', 'E', 'U', 'L',
+ 'L', 'A', 'B', 'I', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N',
+ 'L', 'E', 'F', 'T', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G',
+ 'L', 'E', 'F', 'T', '-', 'T', 'O', '-', 'R', 'I', 'G', 'H', 'T',
+ 'M', 'I', 'E', 'U', 'M', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'M', 'I', 'E', 'U', 'M', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'M', 'I', 'N', 'U', 'S', '-', 'O', 'R', '-', 'P', 'L', 'U', 'S',
+ 'M', 'O', 'R', 'P', 'H', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L',
+ 'N', 'I', 'E', 'U', 'N', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'N', 'I', 'E', 'U', 'N', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'O', 'P', 'E', 'N', '-', 'O', 'U', 'T', 'L', 'I', 'N', 'E', 'D',
+ 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', 'O', 'G', 'R', 'A', 'M',
+ 'P', 'A', 'R', 'E', 'N', 'T', 'H', 'E', 'S', 'I', 'Z', 'E', 'D',
+ 'P', 'A', 'R', 'E', 'S', 'T', 'I', 'G', 'M', 'E', 'N', 'O', 'N',
+ 'P', 'E', 'R', 'P', 'E', 'N', 'D', 'I', 'C', 'U', 'L', 'A', 'R',
+ 'P', 'H', 'I', 'E', 'U', 'P', 'H', '-', 'P', 'I', 'E', 'U', 'P',
+ 'P', 'I', 'E', 'U', 'P', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'P', 'I', 'E', 'U', 'P', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'P', 'I', 'E', 'U', 'P', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'P', 'R', 'E', 'P', 'O', 'N', 'D', 'E', 'R', 'A', 'N', 'C', 'E',
+ 'R', 'I', 'E', 'U', 'L', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H',
+ 'R', 'I', 'E', 'U', 'L', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'R', 'I', 'E', 'U', 'L', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'R', 'I', 'E', 'U', 'L', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H',
+ 'R', 'I', 'G', 'H', 'T', '-', 'T', 'O', '-', 'L', 'E', 'F', 'T',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'A', 'R',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'Y', 'R',
+ 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'I', 'S', 'S', 'I', 'M', 'O',
+ 'S', 'T', 'R', 'I', 'K', 'E', 'T', 'H', 'R', 'O', 'U', 'G', 'H',
+ 'T', 'E', 'T', 'A', 'R', 'T', 'I', 'M', 'O', 'R', 'I', 'O', 'N',
+ 'T', 'H', 'E', 'R', 'M', 'O', 'D', 'Y', 'N', 'A', 'M', 'I', 'C',
+ 'T', 'H', 'I', 'R', 'T', 'Y', '-', 'S', 'E', 'C', 'O', 'N', 'D',
+ 'T', 'I', 'K', 'E', 'U', 'T', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N',
+ 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'E', 'I', 'G', 'H', 'T', 'H',
+ 'V', 'O', 'W', 'E', 'L', '-', 'C', 'A', 'R', 'R', 'I', 'E', 'R',
+ 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'S', 'I', 'O', 'S',
+ 'Y', 'P', 'O', 'G', 'E', 'G', 'R', 'A', 'M', 'M', 'E', 'N', 'I',
+ 'Y', 'U', 'U', 'K', 'A', 'L', 'E', 'A', 'P', 'I', 'N', 'T', 'U',
+ 'A', 'F', 'O', 'R', 'E', 'M', 'E', 'N', 'T', 'I', 'O', 'N', 'E', 'D',
+ 'A', 'R', 'O', 'U', 'N', 'D', '-', 'P', 'R', 'O', 'F', 'I', 'L', 'E',
+ 'A', 'S', 'Y', 'M', 'P', 'T', 'O', 'T', 'I', 'C', 'A', 'L', 'L', 'Y',
+ 'B', 'A', 'L', 'L', 'O', 'O', 'N', '-', 'S', 'P', 'O', 'K', 'E', 'D',
+ 'B', 'O', 'T', 'T', 'O', 'M', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D',
+ 'C', 'O', 'N', 'G', 'R', 'A', 'T', 'U', 'L', 'A', 'T', 'I', 'O', 'N',
+ 'G', 'O', 'R', 'G', 'O', 'S', 'Y', 'N', 'T', 'H', 'E', 'T', 'O', 'N',
+ 'I', 'D', 'E', 'N', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'A', 'R',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'Y', 'R',
+ 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N',
+ 'P', 'A', 'L', 'A', 'T', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N',
+ 'P', 'R', 'O', 'S', 'G', 'E', 'G', 'R', 'A', 'M', 'M', 'E', 'N', 'I',
+ 'R', 'I', 'G', 'H', 'T', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G',
+ 'R', 'I', 'G', 'H', 'T', '-', 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D',
+ 'S', 'E', 'S', 'Q', 'U', 'I', 'Q', 'U', 'A', 'D', 'R', 'A', 'T', 'E',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'O', 'S', 'S',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'S', 'O', 'L',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'T', 'Y', 'R',
+ 'S', 'I', 'O', 'S', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '-', 'R', 'O', 'U', 'N', 'D',
+ 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'L', 'Y', 'G', 'I', 'S', 'M', 'A',
+ 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'S', 'Y', 'N', 'A', 'G', 'M', 'A',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '6',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '0',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '1',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '2',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '3',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '4',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '5',
+ 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '6',
+ 'A', 'C', 'C', 'E', 'N', 'T', '-', 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O',
+ 'A', 'N', 'T', 'I', 'K', 'E', 'N', 'O', 'K', 'Y', 'L', 'I', 'S', 'M', 'A',
+ 'A', 'N', 'T', 'I', 'R', 'E', 'S', 'T', 'R', 'I', 'C', 'T', 'I', 'O', 'N',
+ 'B', 'L', 'A', 'C', 'K', '-', 'F', 'E', 'A', 'T', 'H', 'E', 'R', 'E', 'D',
+ 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'I', 'O', 'S',
+ 'C', 'H', 'I', 'E', 'U', 'C', 'H', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H',
+ 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'C', 'O', 'N', 'C', 'A', 'V', 'E', '-', 'P', 'O', 'I', 'N', 'T', 'E', 'D',
+ 'H', 'I', 'G', 'H', '-', 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D', '-', '9',
+ 'J', 'A', 'L', 'L', 'A', 'J', 'A', 'L', 'A', 'L', 'O', 'U', 'H', 'O', 'U',
+ 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'H', 'I', 'E', 'U', 'P', 'H',
+ 'K', 'R', 'A', 'T', 'I', 'M', 'O', 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A',
+ 'K', 'R', 'A', 'T', 'I', 'M', 'O', 'Y', 'P', 'O', 'R', 'R', 'O', 'O', 'N',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'O', 'S', 'S',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'S', 'O', 'L',
+ 'M', 'I', 'E', 'U', 'M', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'P', 'E', 'T', 'A', 'S', 'T', 'O', 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'L', 'Y', 'G', 'I', 'S', 'M', 'A',
+ 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'S', 'Y', 'N', 'A', 'G', 'M', 'A',
+ 'R', 'I', 'E', 'U', 'L', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'M', 'A', 'D', 'R',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'N', 'A', 'U', 'D',
+ 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'B', 'A', 'R', 'B', 'E', 'D',
+ 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'S', 'P', 'O', 'K', 'E', 'D',
+ 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '-', 'H', 'E', 'A', 'D', 'E', 'D',
+ 'W', 'H', 'I', 'T', 'E', '-', 'F', 'E', 'A', 'T', 'H', 'E', 'R', 'E', 'D',
+ 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'C', 'I', 'E', 'U', 'C',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '6',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '0',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '1',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '2',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '3',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '4',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '5',
+ 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '6',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'M', 'A', 'D', 'R',
+ 'M', 'A', 'R', 'C', 'A', 'T', 'O', '-', 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'C', 'I', 'E', 'U', 'C',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P',
+ 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', '-', 'S', 'I', 'O', 'S',
+ 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S',
+ 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'S', 'H', 'A', 'N', 'K', 'E', 'D',
+ 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'N',
+ 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S',
+ 'A', 'C', 'U', 'T', 'E', '-', 'G', 'R', 'A', 'V', 'E', '-', 'A', 'C', 'U', 'T', 'E',
+ 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'G', 'R', 'A', 'V', 'E', '-', 'A', 'C', 'U', 'T', 'E', '-', 'G', 'R', 'A', 'V', 'E',
+ 'I', 'E', 'U', 'N', 'G', '-', 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'K', 'A', 'T', 'A', 'K', 'A', 'N', 'A', '-', 'H', 'I', 'R', 'A', 'G', 'A', 'N', 'A',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'T', 'I', 'K', 'E', 'U', 'T',
+ 'R', 'I', 'E', 'U', 'L', '-', 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S',
+ 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'H', 'I', 'E', 'U', 'H',
+ 'R', 'I', 'E', 'U', 'L', '-', 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'H', 'A', 'G', 'A', 'L', 'L',
+ 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'S', 'O', 'F', 'T', 'W', 'A', 'R', 'E', '-', 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N',
+ 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'C', 'H', 'I', 'E', 'U', 'C', 'H',
+ 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C',
+ 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P',
+ 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'H', 'A', 'G', 'A', 'L', 'L',
+ 'P', 'A', 'R', 'T', 'I', 'A', 'L', 'L', 'Y', '-', 'R', 'E', 'C', 'Y', 'C', 'L', 'E', 'D',
+ 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', '-', 'K', 'I', 'Y', 'E', 'O', 'K',
+ 'R', 'I', 'E', 'U', 'L', '-', 'T', 'I', 'K', 'E', 'U', 'T', '-', 'H', 'I', 'E', 'U', 'H',
+ 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'B', 'J', 'A', 'R', 'K', 'A', 'N',
+ 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A',
+ 'O', 'P', 'E', 'N', '-', 'C', 'I', 'R', 'C', 'U', 'I', 'T', '-', 'O', 'U', 'T', 'P', 'U', 'T',
+ 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A',
+ 'R', 'I', 'E', 'U', 'L', '-', 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P',
+ 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S',
+ 'A', 'N', 'T', 'I', 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E', '-', 'R', 'O', 'T', 'A', 'T', 'E', 'D',
+ 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C',
+ 'B', 'Y', 'E', 'L', 'O', 'R', 'U', 'S', 'S', 'I', 'A', 'N', '-', 'U', 'K', 'R', 'A', 'I', 'N', 'I', 'A', 'N',
+ 'P', 'A', 'S', 'S', 'I', 'V', 'E', '-', 'P', 'U', 'L', 'L', '-', 'U', 'P', '-', 'O', 'U', 'T', 'P', 'U', 'T',
+ 'P', 'A', 'S', 'S', 'I', 'V', 'E', '-', 'P', 'U', 'L', 'L', '-', 'D', 'O', 'W', 'N', '-', 'O', 'U', 'T', 'P', 'U', 'T',
+};
+#define UNICODE_CHARNAME_NUM_WORDS 6710
+static const struct { uint16_t extra_offset; uint16_t ind_offset; } unicode_name_by_length[26] = {
+ { 0, 0 },
+ { 0, 0 },
+ { 26, 26 },
+ { 658, 342 },
+ { 4468, 1612 },
+ { 10756, 3184 },
+ { 14596, 3952 },
+ { 17782, 4483 },
+ { 20883, 4926 },
+ { 24251, 5347 },
+ { 27446, 5702 },
+ { 29846, 5942 },
+ { 32629, 6195 },
+ { 35689, 6450 },
+ { 36599, 6520 },
+ { 37607, 6592 },
+ { 38012, 6619 },
+ { 38956, 6678 },
+ { 39177, 6691 },
+ { 39357, 6701 },
+ { 39414, 6704 },
+ { 39434, 6705 },
+ { 39476, 6707 },
+ { 39520, 6709 },
+ { 39520, 6709 },
+ { 39544, 6710 }
+};
+#define UNICODE_CHARNAME_WORD_HANGUL 4143
+#define UNICODE_CHARNAME_WORD_SYLLABLE 5292
+#define UNICODE_CHARNAME_WORD_CJK 454
+#define UNICODE_CHARNAME_WORD_COMPATIBILITY 6457
+static const uint16_t unicode_names[75152] = {
+ 23, 3, 761, 8774,
+ 37, 275, 10642,
+ 47, 275, 1, 11203, 826,
+ 51, 10365, 753, 11680,
+ 51, 10365, 4849, 6989, 9050,
+ 51, 10365, 4849, 9045, 9050,
+ 51, 10365, 5782,
+ 51, 10365, 6031, 6610,
+ 51, 10365, 7421, 13188,
+ 51, 10365, 7443, 6989, 9050,
+ 51, 10365, 7443, 9045, 9050,
+ 51, 10365, 8131, 13188,
+ 51, 10365, 8675, 8590,
+ 51, 10365, 8675, 11734,
+ 51, 10365, 8675, 11908,
+ 51, 10365, 11751, 11908,
+ 63, 9128,
+ 175, 3992,
+ 175, 5496,
+ 175, 7608,
+ 177, 3992,
+ 177, 5496,
+ 177, 7608,
+ 435, 6573, 385, 9798,
+ 435, 6573, 3232,
+ 435, 6573, 6689, 2170,
+ 435, 6573, 6689, 2540,
+ 435, 6573, 6689, 2778,
+ 435, 6573, 6689, 4200,
+ 435, 6573, 6689, 4214,
+ 435, 6573, 6689, 5190,
+ 435, 6573, 6689, 6260,
+ 435, 6573, 6689, 6722,
+ 435, 6573, 6689, 7508,
+ 435, 6573, 6689, 7694,
+ 435, 6573, 7430,
+ 435, 6573, 8405, 68,
+ 435, 6573, 8405, 76,
+ 435, 6573, 8405, 90,
+ 435, 6573, 8405, 176,
+ 435, 6573, 8405, 180,
+ 435, 6573, 8405, 264,
+ 435, 6573, 8405, 280,
+ 435, 6573, 8405, 282,
+ 435, 6573, 8405, 332,
+ 435, 6573, 8405, 336,
+ 435, 6573, 8405, 340,
+ 435, 6573, 8405, 350,
+ 435, 6573, 8405, 354,
+ 435, 6573, 8405, 424,
+ 435, 6573, 8405, 430,
+ 435, 6573, 8405, 452,
+ 435, 6573, 8405, 586,
+ 435, 6573, 8405, 588,
+ 435, 6573, 8405, 608,
+ 435, 6573, 8405, 692,
+ 435, 6573, 8405, 694,
+ 435, 6573, 8405, 696,
+ 435, 6573, 8405, 698,
+ 435, 6573, 8405, 722,
+ 435, 6573, 8405, 1096,
+ 435, 6573, 8405, 1120,
+ 435, 6573, 8405, 1492,
+ 435, 6573, 8405, 1732,
+ 435, 6573, 8405, 2182,
+ 435, 6573, 8405, 2814,
+ 435, 6573, 9299, 10654,
+ 435, 6573, 10426,
+ 435, 6573, 11691, 10654,
+ 435, 6573, 12133, 8153, 8488,
+ 435, 6573, 12133, 8488,
+ 445, 6121, 1045, 8318,
+ 601, 3713, 4849, 4117, 3713, 4849, 9326,
+ 601, 3713, 4849, 4117, 3713, 7443, 9326,
+ 601, 3713, 7443, 4117, 3713, 4849, 9326,
+ 601, 3713, 7443, 4117, 3713, 7443, 9326,
+ 601, 4117, 6434,
+ 601, 4117, 6435, 6121, 3716,
+ 601, 4117, 6505, 6434,
+ 601, 4117, 7821, 6434,
+ 601, 4117, 8153, 6434,
+ 601, 4197, 5878,
+ 601, 5876,
+ 601, 5877, 6121, 8057, 6376,
+ 601, 6435, 9785, 8056,
+ 601, 7443, 10001, 10154,
+ 601, 10716,
+ 601, 10717, 9043, 2779, 11649, 3714,
+ 657, 9617, 134,
+ 657, 9617, 152,
+ 657, 9617, 216,
+ 657, 9617, 298,
+ 657, 9617, 310,
+ 657, 9617, 340,
+ 657, 9617, 374,
+ 657, 9617, 442,
+ 657, 9617, 576,
+ 657, 9617, 632,
+ 657, 9617, 660,
+ 657, 9617, 670,
+ 657, 9617, 832,
+ 657, 9617, 886,
+ 657, 9617, 902,
+ 657, 9617, 946,
+ 657, 9617, 950,
+ 657, 9617, 1242,
+ 657, 9617, 1294,
+ 657, 9617, 1406,
+ 657, 9617, 1538,
+ 657, 9617, 1636,
+ 657, 9617, 1782,
+ 657, 9617, 1844,
+ 657, 9617, 1940,
+ 657, 9617, 2262,
+ 657, 9617, 2278,
+ 657, 9617, 2324,
+ 657, 9617, 2526,
+ 657, 9617, 2570,
+ 657, 9617, 2656,
+ 657, 9617, 2860,
+ 657, 9617, 2890,
+ 657, 9617, 3074,
+ 657, 9617, 3182,
+ 657, 9617, 3194,
+ 657, 9617, 3196,
+ 657, 9617, 3748,
+ 657, 9617, 3962,
+ 657, 9617, 4040,
+ 657, 9617, 4292,
+ 657, 9617, 4298,
+ 657, 9617, 4572,
+ 657, 9617, 4576,
+ 657, 9617, 4582,
+ 657, 9617, 4646,
+ 657, 9617, 4666,
+ 657, 9617, 5064,
+ 657, 9617, 5304,
+ 657, 9617, 5318,
+ 657, 9617, 5356,
+ 657, 9617, 5674,
+ 657, 9617, 5712,
+ 657, 9617, 5726,
+ 657, 9617, 7896,
+ 657, 10585, 0,
+ 657, 10585, 8,
+ 657, 10585, 16,
+ 657, 10585, 28,
+ 657, 10585, 84,
+ 657, 10585, 90,
+ 657, 10585, 96,
+ 657, 10585, 100,
+ 657, 10585, 102,
+ 657, 10585, 106,
+ 657, 10585, 108,
+ 657, 10585, 112,
+ 657, 10585, 114,
+ 657, 10585, 116,
+ 657, 10585, 122,
+ 657, 10585, 126,
+ 657, 10585, 130,
+ 657, 10585, 132,
+ 657, 10585, 134,
+ 657, 10585, 138,
+ 657, 10585, 142,
+ 657, 10585, 144,
+ 657, 10585, 150,
+ 657, 10585, 152,
+ 657, 10585, 194,
+ 657, 10585, 196,
+ 657, 10585, 202,
+ 657, 10585, 208,
+ 657, 10585, 210,
+ 657, 10585, 212,
+ 657, 10585, 216,
+ 657, 10585, 220,
+ 657, 10585, 224,
+ 657, 10585, 228,
+ 657, 10585, 230,
+ 657, 10585, 236,
+ 657, 10585, 238,
+ 657, 10585, 246,
+ 657, 10585, 258,
+ 657, 10585, 278,
+ 657, 10585, 284,
+ 657, 10585, 288,
+ 657, 10585, 296,
+ 657, 10585, 298,
+ 657, 10585, 300,
+ 657, 10585, 302,
+ 657, 10585, 306,
+ 657, 10585, 310,
+ 657, 10585, 314,
+ 657, 10585, 322,
+ 657, 10585, 326,
+ 657, 10585, 332,
+ 657, 10585, 336,
+ 657, 10585, 340,
+ 657, 10585, 350,
+ 657, 10585, 354,
+ 657, 10585, 360,
+ 657, 10585, 364,
+ 657, 10585, 368,
+ 657, 10585, 374,
+ 657, 10585, 380,
+ 657, 10585, 384,
+ 657, 10585, 390,
+ 657, 10585, 392,
+ 657, 10585, 396,
+ 657, 10585, 404,
+ 657, 10585, 412,
+ 657, 10585, 416,
+ 657, 10585, 442,
+ 657, 10585, 448,
+ 657, 10585, 456,
+ 657, 10585, 462,
+ 657, 10585, 476,
+ 657, 10585, 480,
+ 657, 10585, 486,
+ 657, 10585, 492,
+ 657, 10585, 500,
+ 657, 10585, 502,
+ 657, 10585, 506,
+ 657, 10585, 508,
+ 657, 10585, 510,
+ 657, 10585, 512,
+ 657, 10585, 516,
+ 657, 10585, 520,
+ 657, 10585, 522,
+ 657, 10585, 524,
+ 657, 10585, 526,
+ 657, 10585, 532,
+ 657, 10585, 536,
+ 657, 10585, 546,
+ 657, 10585, 552,
+ 657, 10585, 556,
+ 657, 10585, 560,
+ 657, 10585, 564,
+ 657, 10585, 568,
+ 657, 10585, 576,
+ 657, 10585, 598,
+ 657, 10585, 610,
+ 657, 10585, 614,
+ 657, 10585, 616,
+ 657, 10585, 618,
+ 657, 10585, 620,
+ 657, 10585, 622,
+ 657, 10585, 626,
+ 657, 10585, 632,
+ 657, 10585, 634,
+ 657, 10585, 644,
+ 657, 10585, 646,
+ 657, 10585, 650,
+ 657, 10585, 656,
+ 657, 10585, 660,
+ 657, 10585, 664,
+ 657, 10585, 668,
+ 657, 10585, 670,
+ 657, 10585, 672,
+ 657, 10585, 676,
+ 657, 10585, 678,
+ 657, 10585, 680,
+ 657, 10585, 682,
+ 657, 10585, 758,
+ 657, 10585, 762,
+ 657, 10585, 764,
+ 657, 10585, 766,
+ 657, 10585, 768,
+ 657, 10585, 770,
+ 657, 10585, 772,
+ 657, 10585, 774,
+ 657, 10585, 776,
+ 657, 10585, 786,
+ 657, 10585, 790,
+ 657, 10585, 804,
+ 657, 10585, 808,
+ 657, 10585, 810,
+ 657, 10585, 812,
+ 657, 10585, 820,
+ 657, 10585, 822,
+ 657, 10585, 826,
+ 657, 10585, 828,
+ 657, 10585, 830,
+ 657, 10585, 832,
+ 657, 10585, 834,
+ 657, 10585, 836,
+ 657, 10585, 846,
+ 657, 10585, 848,
+ 657, 10585, 850,
+ 657, 10585, 852,
+ 657, 10585, 860,
+ 657, 10585, 862,
+ 657, 10585, 864,
+ 657, 10585, 880,
+ 657, 10585, 882,
+ 657, 10585, 884,
+ 657, 10585, 886,
+ 657, 10585, 890,
+ 657, 10585, 892,
+ 657, 10585, 894,
+ 657, 10585, 896,
+ 657, 10585, 902,
+ 657, 10585, 904,
+ 657, 10585, 906,
+ 657, 10585, 916,
+ 657, 10585, 918,
+ 657, 10585, 922,
+ 657, 10585, 926,
+ 657, 10585, 928,
+ 657, 10585, 930,
+ 657, 10585, 932,
+ 657, 10585, 934,
+ 657, 10585, 946,
+ 657, 10585, 948,
+ 657, 10585, 950,
+ 657, 10585, 952,
+ 657, 10585, 964,
+ 657, 10585, 968,
+ 657, 10585, 970,
+ 657, 10585, 974,
+ 657, 10585, 976,
+ 657, 10585, 978,
+ 657, 10585, 980,
+ 657, 10585, 982,
+ 657, 10585, 992,
+ 657, 10585, 994,
+ 657, 10585, 1008,
+ 657, 10585, 1014,
+ 657, 10585, 1016,
+ 657, 10585, 1018,
+ 657, 10585, 1042,
+ 657, 10585, 1044,
+ 657, 10585, 1046,
+ 657, 10585, 1062,
+ 657, 10585, 1064,
+ 657, 10585, 1066,
+ 657, 10585, 1068,
+ 657, 10585, 1070,
+ 657, 10585, 1144,
+ 657, 10585, 1146,
+ 657, 10585, 1148,
+ 657, 10585, 1162,
+ 657, 10585, 1164,
+ 657, 10585, 1166,
+ 657, 10585, 1174,
+ 657, 10585, 1178,
+ 657, 10585, 1180,
+ 657, 10585, 1182,
+ 657, 10585, 1184,
+ 657, 10585, 1186,
+ 657, 10585, 1196,
+ 657, 10585, 1198,
+ 657, 10585, 1200,
+ 657, 10585, 1218,
+ 657, 10585, 1222,
+ 657, 10585, 1224,
+ 657, 10585, 1242,
+ 657, 10585, 1246,
+ 657, 10585, 1248,
+ 657, 10585, 1250,
+ 657, 10585, 1252,
+ 657, 10585, 1254,
+ 657, 10585, 1256,
+ 657, 10585, 1258,
+ 657, 10585, 1274,
+ 657, 10585, 1278,
+ 657, 10585, 1280,
+ 657, 10585, 1282,
+ 657, 10585, 1292,
+ 657, 10585, 1294,
+ 657, 10585, 1296,
+ 657, 10585, 1312,
+ 657, 10585, 1314,
+ 657, 10585, 1316,
+ 657, 10585, 1318,
+ 657, 10585, 1320,
+ 657, 10585, 1348,
+ 657, 10585, 1352,
+ 657, 10585, 1354,
+ 657, 10585, 1364,
+ 657, 10585, 1368,
+ 657, 10585, 1380,
+ 657, 10585, 1388,
+ 657, 10585, 1390,
+ 657, 10585, 1392,
+ 657, 10585, 1394,
+ 657, 10585, 1396,
+ 657, 10585, 1398,
+ 657, 10585, 1400,
+ 657, 10585, 1402,
+ 657, 10585, 1404,
+ 657, 10585, 1406,
+ 657, 10585, 1408,
+ 657, 10585, 1410,
+ 657, 10585, 1412,
+ 657, 10585, 1414,
+ 657, 10585, 1416,
+ 657, 10585, 1426,
+ 657, 10585, 1428,
+ 657, 10585, 1430,
+ 657, 10585, 1438,
+ 657, 10585, 1450,
+ 657, 10585, 1452,
+ 657, 10585, 1454,
+ 657, 10585, 1456,
+ 657, 10585, 1476,
+ 657, 10585, 1478,
+ 657, 10585, 1480,
+ 657, 10585, 1518,
+ 657, 10585, 1522,
+ 657, 10585, 1524,
+ 657, 10585, 1526,
+ 657, 10585, 1532,
+ 657, 10585, 1534,
+ 657, 10585, 1536,
+ 657, 10585, 1538,
+ 657, 10585, 1544,
+ 657, 10585, 1546,
+ 657, 10585, 1548,
+ 657, 10585, 1552,
+ 657, 10585, 1554,
+ 657, 10585, 1556,
+ 657, 10585, 1558,
+ 657, 10585, 1560,
+ 657, 10585, 1564,
+ 657, 10585, 1566,
+ 657, 10585, 1568,
+ 657, 10585, 1570,
+ 657, 10585, 1590,
+ 657, 10585, 1592,
+ 657, 10585, 1594,
+ 657, 10585, 1604,
+ 657, 10585, 1606,
+ 657, 10585, 1608,
+ 657, 10585, 1626,
+ 657, 10585, 1634,
+ 657, 10585, 1636,
+ 657, 10585, 1638,
+ 657, 10585, 1662,
+ 657, 10585, 1664,
+ 657, 10585, 1666,
+ 657, 10585, 1692,
+ 657, 10585, 1694,
+ 657, 10585, 1696,
+ 657, 10585, 1698,
+ 657, 10585, 1700,
+ 657, 10585, 1742,
+ 657, 10585, 1746,
+ 657, 10585, 1750,
+ 657, 10585, 1766,
+ 657, 10585, 1768,
+ 657, 10585, 1782,
+ 657, 10585, 1788,
+ 657, 10585, 1790,
+ 657, 10585, 1792,
+ 657, 10585, 1804,
+ 657, 10585, 1806,
+ 657, 10585, 1810,
+ 657, 10585, 1824,
+ 657, 10585, 1826,
+ 657, 10585, 1828,
+ 657, 10585, 1830,
+ 657, 10585, 1832,
+ 657, 10585, 1842,
+ 657, 10585, 1844,
+ 657, 10585, 1846,
+ 657, 10585, 1848,
+ 657, 10585, 1862,
+ 657, 10585, 1866,
+ 657, 10585, 1868,
+ 657, 10585, 1898,
+ 657, 10585, 1900,
+ 657, 10585, 1902,
+ 657, 10585, 1904,
+ 657, 10585, 1906,
+ 657, 10585, 1912,
+ 657, 10585, 1924,
+ 657, 10585, 1926,
+ 657, 10585, 1928,
+ 657, 10585, 1940,
+ 657, 10585, 1942,
+ 657, 10585, 1944,
+ 657, 10585, 1954,
+ 657, 10585, 1956,
+ 657, 10585, 1958,
+ 657, 10585, 1960,
+ 657, 10585, 1962,
+ 657, 10585, 1974,
+ 657, 10585, 1976,
+ 657, 10585, 1978,
+ 657, 10585, 1990,
+ 657, 10585, 1994,
+ 657, 10585, 1996,
+ 657, 10585, 1998,
+ 657, 10585, 2000,
+ 657, 10585, 2002,
+ 657, 10585, 2004,
+ 657, 10585, 2006,
+ 657, 10585, 2008,
+ 657, 10585, 2010,
+ 657, 10585, 2012,
+ 657, 10585, 2014,
+ 657, 10585, 2022,
+ 657, 10585, 2028,
+ 657, 10585, 2030,
+ 657, 10585, 2032,
+ 657, 10585, 2038,
+ 657, 10585, 2050,
+ 657, 10585, 2056,
+ 657, 10585, 2058,
+ 657, 10585, 2060,
+ 657, 10585, 2066,
+ 657, 10585, 2068,
+ 657, 10585, 2070,
+ 657, 10585, 2072,
+ 657, 10585, 2086,
+ 657, 10585, 2090,
+ 657, 10585, 2094,
+ 657, 10585, 2096,
+ 657, 10585, 2098,
+ 657, 10585, 2100,
+ 657, 10585, 2102,
+ 657, 10585, 2104,
+ 657, 10585, 2112,
+ 657, 10585, 2114,
+ 657, 10585, 2116,
+ 657, 10585, 2118,
+ 657, 10585, 2120,
+ 657, 10585, 2132,
+ 657, 10585, 2134,
+ 657, 10585, 2136,
+ 657, 10585, 2138,
+ 657, 10585, 2140,
+ 657, 10585, 2142,
+ 657, 10585, 2144,
+ 657, 10585, 2146,
+ 657, 10585, 2194,
+ 657, 10585, 2198,
+ 657, 10585, 2202,
+ 657, 10585, 2222,
+ 657, 10585, 2228,
+ 657, 10585, 2230,
+ 657, 10585, 2232,
+ 657, 10585, 2240,
+ 657, 10585, 2242,
+ 657, 10585, 2244,
+ 657, 10585, 2256,
+ 657, 10585, 2258,
+ 657, 10585, 2260,
+ 657, 10585, 2262,
+ 657, 10585, 2264,
+ 657, 10585, 2274,
+ 657, 10585, 2276,
+ 657, 10585, 2278,
+ 657, 10585, 2280,
+ 657, 10585, 2306,
+ 657, 10585, 2310,
+ 657, 10585, 2312,
+ 657, 10585, 2314,
+ 657, 10585, 2322,
+ 657, 10585, 2324,
+ 657, 10585, 2326,
+ 657, 10585, 2336,
+ 657, 10585, 2338,
+ 657, 10585, 2340,
+ 657, 10585, 2342,
+ 657, 10585, 2348,
+ 657, 10585, 2364,
+ 657, 10585, 2366,
+ 657, 10585, 2368,
+ 657, 10585, 2372,
+ 657, 10585, 2390,
+ 657, 10585, 2392,
+ 657, 10585, 2394,
+ 657, 10585, 2406,
+ 657, 10585, 2408,
+ 657, 10585, 2432,
+ 657, 10585, 2434,
+ 657, 10585, 2436,
+ 657, 10585, 2438,
+ 657, 10585, 2440,
+ 657, 10585, 2442,
+ 657, 10585, 2444,
+ 657, 10585, 2446,
+ 657, 10585, 2456,
+ 657, 10585, 2458,
+ 657, 10585, 2460,
+ 657, 10585, 2462,
+ 657, 10585, 2464,
+ 657, 10585, 2470,
+ 657, 10585, 2472,
+ 657, 10585, 2474,
+ 657, 10585, 2476,
+ 657, 10585, 2492,
+ 657, 10585, 2496,
+ 657, 10585, 2500,
+ 657, 10585, 2508,
+ 657, 10585, 2512,
+ 657, 10585, 2516,
+ 657, 10585, 2518,
+ 657, 10585, 2522,
+ 657, 10585, 2524,
+ 657, 10585, 2526,
+ 657, 10585, 2528,
+ 657, 10585, 2536,
+ 657, 10585, 2538,
+ 657, 10585, 2540,
+ 657, 10585, 2556,
+ 657, 10585, 2558,
+ 657, 10585, 2564,
+ 657, 10585, 2566,
+ 657, 10585, 2568,
+ 657, 10585, 2570,
+ 657, 10585, 2572,
+ 657, 10585, 2574,
+ 657, 10585, 2576,
+ 657, 10585, 2588,
+ 657, 10585, 2590,
+ 657, 10585, 2592,
+ 657, 10585, 2594,
+ 657, 10585, 2596,
+ 657, 10585, 2612,
+ 657, 10585, 2614,
+ 657, 10585, 2616,
+ 657, 10585, 2618,
+ 657, 10585, 2652,
+ 657, 10585, 2656,
+ 657, 10585, 2664,
+ 657, 10585, 2672,
+ 657, 10585, 2676,
+ 657, 10585, 2690,
+ 657, 10585, 2696,
+ 657, 10585, 2700,
+ 657, 10585, 2702,
+ 657, 10585, 2724,
+ 657, 10585, 2726,
+ 657, 10585, 2728,
+ 657, 10585, 2762,
+ 657, 10585, 2764,
+ 657, 10585, 2766,
+ 657, 10585, 2768,
+ 657, 10585, 2770,
+ 657, 10585, 2818,
+ 657, 10585, 2820,
+ 657, 10585, 2848,
+ 657, 10585, 2850,
+ 657, 10585, 2854,
+ 657, 10585, 2860,
+ 657, 10585, 2864,
+ 657, 10585, 2866,
+ 657, 10585, 2870,
+ 657, 10585, 2872,
+ 657, 10585, 2874,
+ 657, 10585, 2878,
+ 657, 10585, 2880,
+ 657, 10585, 2886,
+ 657, 10585, 2888,
+ 657, 10585, 2890,
+ 657, 10585, 2892,
+ 657, 10585, 2894,
+ 657, 10585, 2898,
+ 657, 10585, 2900,
+ 657, 10585, 2902,
+ 657, 10585, 2904,
+ 657, 10585, 2912,
+ 657, 10585, 2914,
+ 657, 10585, 2920,
+ 657, 10585, 2928,
+ 657, 10585, 2930,
+ 657, 10585, 2944,
+ 657, 10585, 2946,
+ 657, 10585, 2950,
+ 657, 10585, 2960,
+ 657, 10585, 2962,
+ 657, 10585, 2964,
+ 657, 10585, 2966,
+ 657, 10585, 2970,
+ 657, 10585, 2974,
+ 657, 10585, 2976,
+ 657, 10585, 2978,
+ 657, 10585, 2996,
+ 657, 10585, 2998,
+ 657, 10585, 3000,
+ 657, 10585, 3004,
+ 657, 10585, 3064,
+ 657, 10585, 3072,
+ 657, 10585, 3074,
+ 657, 10585, 3076,
+ 657, 10585, 3084,
+ 657, 10585, 3086,
+ 657, 10585, 3088,
+ 657, 10585, 3090,
+ 657, 10585, 3092,
+ 657, 10585, 3094,
+ 657, 10585, 3098,
+ 657, 10585, 3100,
+ 657, 10585, 3112,
+ 657, 10585, 3114,
+ 657, 10585, 3116,
+ 657, 10585, 3118,
+ 657, 10585, 3130,
+ 657, 10585, 3132,
+ 657, 10585, 3134,
+ 657, 10585, 3142,
+ 657, 10585, 3144,
+ 657, 10585, 3146,
+ 657, 10585, 3148,
+ 657, 10585, 3152,
+ 657, 10585, 3154,
+ 657, 10585, 3156,
+ 657, 10585, 3162,
+ 657, 10585, 3166,
+ 657, 10585, 3168,
+ 657, 10585, 3170,
+ 657, 10585, 3180,
+ 657, 10585, 3182,
+ 657, 10585, 3184,
+ 657, 10585, 3192,
+ 657, 10585, 3194,
+ 657, 10585, 3196,
+ 657, 10585, 3198,
+ 657, 10585, 3200,
+ 657, 10585, 3204,
+ 657, 10585, 3206,
+ 657, 10585, 3208,
+ 657, 10585, 3210,
+ 657, 10585, 3212,
+ 657, 10585, 3214,
+ 657, 10585, 3216,
+ 657, 10585, 3218,
+ 657, 10585, 3220,
+ 657, 10585, 3222,
+ 657, 10585, 3718,
+ 657, 10585, 3720,
+ 657, 10585, 3722,
+ 657, 10585, 3724,
+ 657, 10585, 3726,
+ 657, 10585, 3728,
+ 657, 10585, 3730,
+ 657, 10585, 3732,
+ 657, 10585, 3734,
+ 657, 10585, 3736,
+ 657, 10585, 3738,
+ 657, 10585, 3740,
+ 657, 10585, 3742,
+ 657, 10585, 3744,
+ 657, 10585, 3746,
+ 657, 10585, 3748,
+ 657, 10585, 3750,
+ 657, 10585, 3752,
+ 657, 10585, 3754,
+ 657, 10585, 3756,
+ 657, 10585, 3782,
+ 657, 10585, 3784,
+ 657, 10585, 3786,
+ 657, 10585, 3816,
+ 657, 10585, 3818,
+ 657, 10585, 3824,
+ 657, 10585, 3828,
+ 657, 10585, 3882,
+ 657, 10585, 3886,
+ 657, 10585, 3888,
+ 657, 10585, 3896,
+ 657, 10585, 3898,
+ 657, 10585, 3900,
+ 657, 10585, 3910,
+ 657, 10585, 3912,
+ 657, 10585, 3914,
+ 657, 10585, 3916,
+ 657, 10585, 3918,
+ 657, 10585, 3920,
+ 657, 10585, 3922,
+ 657, 10585, 3926,
+ 657, 10585, 3928,
+ 657, 10585, 3930,
+ 657, 10585, 3932,
+ 657, 10585, 3934,
+ 657, 10585, 3936,
+ 657, 10585, 3938,
+ 657, 10585, 3962,
+ 657, 10585, 3964,
+ 657, 10585, 3968,
+ 657, 10585, 3976,
+ 657, 10585, 4002,
+ 657, 10585, 4004,
+ 657, 10585, 4006,
+ 657, 10585, 4012,
+ 657, 10585, 4014,
+ 657, 10585, 4020,
+ 657, 10585, 4022,
+ 657, 10585, 4024,
+ 657, 10585, 4026,
+ 657, 10585, 4030,
+ 657, 10585, 4032,
+ 657, 10585, 4034,
+ 657, 10585, 4036,
+ 657, 10585, 4038,
+ 657, 10585, 4040,
+ 657, 10585, 4042,
+ 657, 10585, 4044,
+ 657, 10585, 4082,
+ 657, 10585, 4084,
+ 657, 10585, 4130,
+ 657, 10585, 4134,
+ 657, 10585, 4224,
+ 657, 10585, 4272,
+ 657, 10585, 4274,
+ 657, 10585, 4276,
+ 657, 10585, 4280,
+ 657, 10585, 4282,
+ 657, 10585, 4284,
+ 657, 10585, 4286,
+ 657, 10585, 4288,
+ 657, 10585, 4290,
+ 657, 10585, 4292,
+ 657, 10585, 4294,
+ 657, 10585, 4296,
+ 657, 10585, 4298,
+ 657, 10585, 4300,
+ 657, 10585, 4302,
+ 657, 10585, 4304,
+ 657, 10585, 4306,
+ 657, 10585, 4326,
+ 657, 10585, 4328,
+ 657, 10585, 4330,
+ 657, 10585, 4360,
+ 657, 10585, 4362,
+ 657, 10585, 4364,
+ 657, 10585, 4368,
+ 657, 10585, 4420,
+ 657, 10585, 4426,
+ 657, 10585, 4428,
+ 657, 10585, 4430,
+ 657, 10585, 4432,
+ 657, 10585, 4434,
+ 657, 10585, 4436,
+ 657, 10585, 4438,
+ 657, 10585, 4440,
+ 657, 10585, 4442,
+ 657, 10585, 4444,
+ 657, 10585, 4446,
+ 657, 10585, 4448,
+ 657, 10585, 4450,
+ 657, 10585, 4452,
+ 657, 10585, 4454,
+ 657, 10585, 4456,
+ 657, 10585, 4458,
+ 657, 10585, 4460,
+ 657, 10585, 4462,
+ 657, 10585, 4464,
+ 657, 10585, 4466,
+ 657, 10585, 4468,
+ 657, 10585, 4470,
+ 657, 10585, 4472,
+ 657, 10585, 4474,
+ 657, 10585, 4476,
+ 657, 10585, 4478,
+ 657, 10585, 4480,
+ 657, 10585, 4482,
+ 657, 10585, 4484,
+ 657, 10585, 4486,
+ 657, 10585, 4488,
+ 657, 10585, 4490,
+ 657, 10585, 4492,
+ 657, 10585, 4494,
+ 657, 10585, 4496,
+ 657, 10585, 4498,
+ 657, 10585, 4500,
+ 657, 10585, 4502,
+ 657, 10585, 4504,
+ 657, 10585, 4506,
+ 657, 10585, 4508,
+ 657, 10585, 4510,
+ 657, 10585, 4512,
+ 657, 10585, 4514,
+ 657, 10585, 4516,
+ 657, 10585, 4518,
+ 657, 10585, 4520,
+ 657, 10585, 4522,
+ 657, 10585, 4524,
+ 657, 10585, 4526,
+ 657, 10585, 4528,
+ 657, 10585, 4550,
+ 657, 10585, 4552,
+ 657, 10585, 4554,
+ 657, 10585, 4558,
+ 657, 10585, 4560,
+ 657, 10585, 4562,
+ 657, 10585, 4564,
+ 657, 10585, 4566,
+ 657, 10585, 4568,
+ 657, 10585, 4570,
+ 657, 10585, 4572,
+ 657, 10585, 4574,
+ 657, 10585, 4576,
+ 657, 10585, 4578,
+ 657, 10585, 4580,
+ 657, 10585, 4582,
+ 657, 10585, 4638,
+ 657, 10585, 4640,
+ 657, 10585, 4642,
+ 657, 10585, 4646,
+ 657, 10585, 4648,
+ 657, 10585, 4650,
+ 657, 10585, 4652,
+ 657, 10585, 4654,
+ 657, 10585, 4656,
+ 657, 10585, 4658,
+ 657, 10585, 4660,
+ 657, 10585, 4662,
+ 657, 10585, 4664,
+ 657, 10585, 4666,
+ 657, 10585, 4668,
+ 657, 10585, 4670,
+ 657, 10585, 4672,
+ 657, 10585, 4674,
+ 657, 10585, 4688,
+ 657, 10585, 4690,
+ 657, 10585, 4692,
+ 657, 10585, 4694,
+ 657, 10585, 4696,
+ 657, 10585, 4756,
+ 657, 10585, 4758,
+ 657, 10585, 4786,
+ 657, 10585, 4788,
+ 657, 10585, 4792,
+ 657, 10585, 4866,
+ 657, 10585, 4868,
+ 657, 10585, 4870,
+ 657, 10585, 4902,
+ 657, 10585, 4904,
+ 657, 10585, 4906,
+ 657, 10585, 4908,
+ 657, 10585, 4916,
+ 657, 10585, 4958,
+ 657, 10585, 4960,
+ 657, 10585, 4962,
+ 657, 10585, 4974,
+ 657, 10585, 4976,
+ 657, 10585, 4978,
+ 657, 10585, 4980,
+ 657, 10585, 4982,
+ 657, 10585, 4984,
+ 657, 10585, 4986,
+ 657, 10585, 4988,
+ 657, 10585, 4990,
+ 657, 10585, 4992,
+ 657, 10585, 4994,
+ 657, 10585, 4996,
+ 657, 10585, 4998,
+ 657, 10585, 5020,
+ 657, 10585, 5022,
+ 657, 10585, 5024,
+ 657, 10585, 5028,
+ 657, 10585, 5058,
+ 657, 10585, 5060,
+ 657, 10585, 5062,
+ 657, 10585, 5064,
+ 657, 10585, 5066,
+ 657, 10585, 5068,
+ 657, 10585, 5070,
+ 657, 10585, 5072,
+ 657, 10585, 5074,
+ 657, 10585, 5076,
+ 657, 10585, 5078,
+ 657, 10585, 5080,
+ 657, 10585, 5082,
+ 657, 10585, 5084,
+ 657, 10585, 5086,
+ 657, 10585, 5088,
+ 657, 10585, 5090,
+ 657, 10585, 5092,
+ 657, 10585, 5094,
+ 657, 10585, 5096,
+ 657, 10585, 5098,
+ 657, 10585, 5102,
+ 657, 10585, 5104,
+ 657, 10585, 5106,
+ 657, 10585, 5108,
+ 657, 10585, 5110,
+ 657, 10585, 5112,
+ 657, 10585, 5116,
+ 657, 10585, 5118,
+ 657, 10585, 5120,
+ 657, 10585, 5122,
+ 657, 10585, 5124,
+ 657, 10585, 5126,
+ 657, 10585, 5128,
+ 657, 10585, 5138,
+ 657, 10585, 5142,
+ 657, 10585, 5144,
+ 657, 10585, 5148,
+ 657, 10585, 5150,
+ 657, 10585, 5162,
+ 657, 10585, 5172,
+ 657, 10585, 5174,
+ 657, 10585, 5176,
+ 657, 10585, 5180,
+ 657, 10585, 5186,
+ 657, 10585, 5188,
+ 657, 10585, 5196,
+ 657, 10585, 5198,
+ 657, 10585, 5200,
+ 657, 10585, 5202,
+ 657, 10585, 5206,
+ 657, 10585, 5208,
+ 657, 10585, 5210,
+ 657, 10585, 5212,
+ 657, 10585, 5214,
+ 657, 10585, 5216,
+ 657, 10585, 5218,
+ 657, 10585, 5220,
+ 657, 10585, 5222,
+ 657, 10585, 5224,
+ 657, 10585, 5226,
+ 657, 10585, 5246,
+ 657, 10585, 5248,
+ 657, 10585, 5250,
+ 657, 10585, 5252,
+ 657, 10585, 5254,
+ 657, 10585, 5256,
+ 657, 10585, 5258,
+ 657, 10585, 5260,
+ 657, 10585, 5262,
+ 657, 10585, 5264,
+ 657, 10585, 5266,
+ 657, 10585, 5268,
+ 657, 10585, 5270,
+ 657, 10585, 5272,
+ 657, 10585, 5274,
+ 657, 10585, 5276,
+ 657, 10585, 5282,
+ 657, 10585, 5284,
+ 657, 10585, 5286,
+ 657, 10585, 5302,
+ 657, 10585, 5304,
+ 657, 10585, 5308,
+ 657, 10585, 5310,
+ 657, 10585, 5318,
+ 657, 10585, 5320,
+ 657, 10585, 5322,
+ 657, 10585, 5324,
+ 657, 10585, 5326,
+ 657, 10585, 5328,
+ 657, 10585, 5330,
+ 657, 10585, 5334,
+ 657, 10585, 5336,
+ 657, 10585, 5338,
+ 657, 10585, 5340,
+ 657, 10585, 5342,
+ 657, 10585, 5344,
+ 657, 10585, 5346,
+ 657, 10585, 5348,
+ 657, 10585, 5350,
+ 657, 10585, 5352,
+ 657, 10585, 5354,
+ 657, 10585, 5356,
+ 657, 10585, 5358,
+ 657, 10585, 5360,
+ 657, 10585, 5362,
+ 657, 10585, 5364,
+ 657, 10585, 5366,
+ 657, 10585, 5368,
+ 657, 10585, 5426,
+ 657, 10585, 5428,
+ 657, 10585, 5454,
+ 657, 10585, 5456,
+ 657, 10585, 5458,
+ 657, 10585, 5468,
+ 657, 10585, 5488,
+ 657, 10585, 5490,
+ 657, 10585, 5492,
+ 657, 10585, 5498,
+ 657, 10585, 5500,
+ 657, 10585, 5502,
+ 657, 10585, 5504,
+ 657, 10585, 5516,
+ 657, 10585, 5570,
+ 657, 10585, 5574,
+ 657, 10585, 5576,
+ 657, 10585, 5578,
+ 657, 10585, 5580,
+ 657, 10585, 5582,
+ 657, 10585, 5584,
+ 657, 10585, 5586,
+ 657, 10585, 5588,
+ 657, 10585, 5590,
+ 657, 10585, 5592,
+ 657, 10585, 5594,
+ 657, 10585, 5596,
+ 657, 10585, 5598,
+ 657, 10585, 5600,
+ 657, 10585, 5602,
+ 657, 10585, 5608,
+ 657, 10585, 5610,
+ 657, 10585, 5612,
+ 657, 10585, 5618,
+ 657, 10585, 5672,
+ 657, 10585, 5674,
+ 657, 10585, 5676,
+ 657, 10585, 5684,
+ 657, 10585, 5686,
+ 657, 10585, 5688,
+ 657, 10585, 5712,
+ 657, 10585, 5714,
+ 657, 10585, 5716,
+ 657, 10585, 5722,
+ 657, 10585, 5724,
+ 657, 10585, 5726,
+ 657, 10585, 5728,
+ 657, 10585, 5730,
+ 657, 10585, 5742,
+ 657, 10585, 5744,
+ 657, 10585, 5746,
+ 657, 10585, 5748,
+ 657, 10585, 5752,
+ 657, 10585, 5754,
+ 657, 10585, 5788,
+ 657, 10585, 5790,
+ 657, 10585, 5792,
+ 657, 10585, 5796,
+ 657, 10585, 5798,
+ 657, 10585, 5800,
+ 657, 10585, 5802,
+ 657, 10585, 5804,
+ 657, 10585, 5806,
+ 657, 10585, 5808,
+ 657, 10585, 5810,
+ 657, 10585, 5812,
+ 657, 10585, 5814,
+ 657, 10585, 5816,
+ 657, 10585, 5818,
+ 657, 10585, 5820,
+ 657, 10585, 5822,
+ 657, 10585, 5824,
+ 657, 10585, 5826,
+ 657, 10585, 5848,
+ 657, 10585, 5850,
+ 657, 10585, 5856,
+ 657, 10585, 5864,
+ 657, 10585, 5936,
+ 657, 10585, 5938,
+ 657, 10585, 6014,
+ 657, 10585, 6016,
+ 657, 10585, 6018,
+ 657, 10585, 6022,
+ 657, 10585, 6084,
+ 657, 10585, 6086,
+ 657, 10585, 6088,
+ 657, 10585, 6094,
+ 657, 10585, 6096,
+ 657, 10585, 6134,
+ 657, 10585, 6136,
+ 657, 10585, 6140,
+ 657, 10585, 6142,
+ 657, 10585, 6144,
+ 657, 10585, 6146,
+ 657, 10585, 6156,
+ 657, 10585, 6206,
+ 657, 10585, 6208,
+ 657, 10585, 6210,
+ 657, 10585, 6238,
+ 657, 10585, 6240,
+ 657, 10585, 6242,
+ 657, 10585, 6244,
+ 657, 10585, 6252,
+ 657, 10585, 6266,
+ 657, 10585, 6270,
+ 657, 10585, 6272,
+ 657, 10585, 6276,
+ 657, 10585, 6278,
+ 657, 10585, 6280,
+ 657, 10585, 6284,
+ 657, 10585, 6286,
+ 657, 10585, 6288,
+ 657, 10585, 6290,
+ 657, 10585, 6292,
+ 657, 10585, 6294,
+ 657, 10585, 6296,
+ 657, 10585, 6298,
+ 657, 10585, 6304,
+ 657, 10585, 6306,
+ 657, 10585, 6308,
+ 657, 10585, 6310,
+ 657, 10585, 6314,
+ 657, 10585, 6316,
+ 657, 10585, 6320,
+ 657, 10585, 6322,
+ 657, 10585, 6324,
+ 657, 10585, 6326,
+ 657, 10585, 6330,
+ 657, 10585, 6332,
+ 657, 10585, 6334,
+ 657, 10585, 6338,
+ 657, 10585, 6340,
+ 657, 10585, 6342,
+ 657, 10585, 6344,
+ 657, 10585, 6346,
+ 657, 10585, 6348,
+ 657, 10585, 6350,
+ 657, 10585, 6352,
+ 657, 10585, 6354,
+ 657, 10585, 6356,
+ 657, 10585, 6358,
+ 657, 10585, 6360,
+ 657, 10585, 6362,
+ 657, 10585, 6364,
+ 657, 10585, 6366,
+ 657, 10585, 6470,
+ 657, 10585, 6472,
+ 657, 10585, 6474,
+ 657, 10585, 6476,
+ 657, 10585, 6478,
+ 657, 10585, 6480,
+ 657, 10585, 6584,
+ 657, 10585, 6586,
+ 657, 10585, 6588,
+ 657, 10585, 6590,
+ 657, 10585, 6592,
+ 657, 10585, 6660,
+ 657, 10585, 6662,
+ 657, 10585, 6664,
+ 657, 10585, 6666,
+ 657, 10585, 6668,
+ 657, 10585, 6834,
+ 657, 10585, 6836,
+ 657, 10585, 6838,
+ 657, 10585, 6840,
+ 657, 10585, 6842,
+ 657, 10585, 6844,
+ 657, 10585, 6916,
+ 657, 10585, 6918,
+ 657, 10585, 6920,
+ 657, 10585, 6922,
+ 657, 10585, 6924,
+ 657, 10585, 6926,
+ 657, 10585, 6928,
+ 657, 10585, 6930,
+ 657, 10585, 6932,
+ 657, 10585, 6934,
+ 657, 10585, 6936,
+ 657, 10585, 6938,
+ 657, 10585, 6940,
+ 657, 10585, 6942,
+ 657, 10585, 6944,
+ 657, 10585, 6946,
+ 657, 10585, 6962,
+ 657, 10585, 6964,
+ 657, 10585, 6966,
+ 657, 10585, 6968,
+ 657, 10585, 6970,
+ 657, 10585, 6972,
+ 657, 10585, 6998,
+ 657, 10585, 7000,
+ 657, 10585, 7002,
+ 657, 10585, 7004,
+ 657, 10585, 7006,
+ 657, 10585, 7008,
+ 657, 10585, 7156,
+ 657, 10585, 7158,
+ 657, 10585, 7160,
+ 657, 10585, 7162,
+ 657, 10585, 7212,
+ 657, 10585, 7214,
+ 657, 10585, 7216,
+ 657, 10585, 7218,
+ 657, 10585, 7220,
+ 657, 10585, 7224,
+ 657, 10585, 7234,
+ 657, 10585, 7236,
+ 657, 10585, 7240,
+ 657, 10585, 7242,
+ 657, 10585, 7250,
+ 657, 10585, 7252,
+ 657, 10585, 7254,
+ 657, 10585, 7256,
+ 657, 10585, 7258,
+ 657, 10585, 7260,
+ 657, 10585, 7278,
+ 657, 10585, 7280,
+ 657, 10585, 7286,
+ 657, 10585, 7288,
+ 657, 10585, 7290,
+ 657, 10585, 7292,
+ 657, 10585, 7294,
+ 657, 10585, 7296,
+ 657, 10585, 7298,
+ 657, 10585, 7300,
+ 657, 10585, 7302,
+ 657, 10585, 7304,
+ 657, 10585, 7456,
+ 657, 10585, 7458,
+ 657, 10585, 7460,
+ 657, 10585, 7552,
+ 657, 10585, 7554,
+ 657, 10585, 7556,
+ 657, 10585, 7564,
+ 657, 10585, 7620,
+ 657, 10585, 7622,
+ 657, 10585, 7624,
+ 657, 10585, 7876,
+ 657, 10585, 7878,
+ 657, 10585, 7880,
+ 657, 10585, 7882,
+ 657, 10585, 7894,
+ 657, 10585, 7896,
+ 657, 10585, 7898,
+ 657, 10585, 7900,
+ 657, 10585, 7902,
+ 705, 8694,
+ 719, 6741, 568,
+ 719, 13042,
+ 721, 6121, 1044,
+ 729, 11635, 8775, 601, 5707, 1546,
+ 729, 11635, 8775, 601, 5877, 1546,
+ 729, 11635, 8775, 601, 5877, 9546,
+ 729, 11635, 8775, 601, 5877, 10804,
+ 729, 11635, 8775, 601, 6543, 7708,
+ 729, 11635, 8775, 991, 7636,
+ 729, 11635, 8775, 991, 7708,
+ 729, 11635, 8775, 991, 10804,
+ 729, 11635, 8775, 1547, 10666,
+ 729, 11635, 8775, 1547, 10804,
+ 729, 11635, 8775, 2412,
+ 729, 11635, 8775, 4117, 5707, 7636,
+ 729, 11635, 8775, 4117, 5877, 1546,
+ 729, 11635, 8775, 4117, 5877, 10666,
+ 729, 11635, 8775, 4117, 6543, 7708,
+ 729, 11635, 8775, 4614,
+ 729, 11635, 8775, 4615, 10666,
+ 729, 11635, 8775, 4849, 5707, 7636,
+ 729, 11635, 8775, 5496,
+ 729, 11635, 8775, 5497, 601, 6542,
+ 729, 11635, 8775, 5497, 990,
+ 729, 11635, 8775, 5497, 1546,
+ 729, 11635, 8775, 5497, 2091, 6740,
+ 729, 11635, 8775, 5497, 4117, 6542,
+ 729, 11635, 8775, 5497, 6610,
+ 729, 11635, 8775, 5497, 6674,
+ 729, 11635, 8775, 5497, 6740,
+ 729, 11635, 8775, 5497, 7580,
+ 729, 11635, 8775, 5497, 8056,
+ 729, 11635, 8775, 5497, 8122,
+ 729, 11635, 8775, 5497, 9158,
+ 729, 11635, 8775, 5497, 9811, 6434,
+ 729, 11635, 8775, 5497, 10468,
+ 729, 11635, 8775, 5497, 10728,
+ 729, 11635, 8775, 5497, 10959, 6434,
+ 729, 11635, 8775, 5497, 11097, 6434,
+ 729, 11635, 8775, 5497, 11098,
+ 729, 11635, 8775, 5497, 11765, 6434,
+ 729, 11635, 8775, 5497, 12472,
+ 729, 11635, 8775, 5831, 10804,
+ 729, 11635, 8775, 6406,
+ 729, 11635, 8775, 6407, 10666,
+ 729, 11635, 8775, 6617, 760,
+ 729, 11635, 8775, 6675, 7636,
+ 729, 11635, 8775, 6675, 10666,
+ 729, 11635, 8775, 7316,
+ 729, 11635, 8775, 7317, 10666,
+ 729, 11635, 8775, 7415, 5496,
+ 729, 11635, 8775, 7415, 10666,
+ 729, 11635, 8775, 7581, 760,
+ 729, 11635, 8775, 7637, 7708,
+ 729, 11635, 8775, 7709, 10804,
+ 729, 11635, 8775, 7884,
+ 729, 11635, 8775, 8057, 1546,
+ 729, 11635, 8775, 8057, 5830,
+ 729, 11635, 8775, 8057, 7636,
+ 729, 11635, 8775, 8057, 10666,
+ 729, 11635, 8775, 8057, 10728,
+ 729, 11635, 8775, 8057, 10804,
+ 729, 11635, 8775, 8308,
+ 729, 11635, 8775, 8747, 5496,
+ 729, 11635, 8775, 9159, 10666,
+ 729, 11635, 8775, 9271, 10666,
+ 729, 11635, 8775, 9811, 6074,
+ 729, 11635, 8775, 10729, 760,
+ 729, 11635, 8775, 10959, 6074,
+ 729, 11635, 8775, 11097, 6074,
+ 729, 11635, 8775, 11225, 10666,
+ 729, 11635, 8775, 11765, 6074,
+ 729, 11635, 8775, 12473, 10804,
+ 730,
+ 789, 8774,
+ 807, 9633, 9718,
+ 807, 9718,
+ 827, 10145, 601, 6909, 721, 4117, 11649, 7100,
+ 827, 10145, 601, 6909, 721, 4849, 4117, 7100,
+ 827, 10145, 601, 6909, 721, 4849, 7100,
+ 827, 10145, 601, 6909, 721, 7443, 4117, 7100,
+ 827, 10145, 601, 6909, 721, 7443, 7100,
+ 827, 10145, 601, 6909, 721, 11649, 7100,
+ 827, 10145, 601, 7101, 721, 4117, 11649, 6908,
+ 827, 10145, 601, 7101, 721, 4849, 4117, 6908,
+ 827, 10145, 601, 7101, 721, 4849, 6908,
+ 827, 10145, 601, 7101, 721, 7443, 4117, 6908,
+ 827, 10145, 601, 7101, 721, 7443, 6908,
+ 827, 10145, 601, 7101, 721, 11649, 6908,
+ 827, 10145, 601, 8153, 721, 4849, 8716,
+ 827, 10145, 601, 8153, 721, 7443, 8716,
+ 827, 10145, 601, 8153, 721, 11649, 8716,
+ 827, 10145, 601, 8717, 721, 4849, 8152,
+ 827, 10145, 601, 8717, 721, 7443, 8152,
+ 827, 10145, 601, 8717, 721, 11649, 8152,
+ 827, 10145, 4117, 6909, 721, 601, 11649, 7100,
+ 827, 10145, 4117, 6909, 721, 4849, 601, 7100,
+ 827, 10145, 4117, 6909, 721, 4849, 7100,
+ 827, 10145, 4117, 6909, 721, 7443, 601, 7100,
+ 827, 10145, 4117, 6909, 721, 7443, 7100,
+ 827, 10145, 4117, 6909, 721, 11649, 7100,
+ 827, 10145, 4117, 7101, 721, 601, 11649, 6908,
+ 827, 10145, 4117, 7101, 721, 4849, 601, 6908,
+ 827, 10145, 4117, 7101, 721, 4849, 6908,
+ 827, 10145, 4117, 7101, 721, 7443, 601, 6908,
+ 827, 10145, 4117, 7101, 721, 7443, 6908,
+ 827, 10145, 4117, 7101, 721, 11649, 6908,
+ 827, 10145, 4117, 8153, 721, 4849, 8716,
+ 827, 10145, 4117, 8153, 721, 7443, 8716,
+ 827, 10145, 4117, 8153, 721, 11649, 8716,
+ 827, 10145, 4117, 8717, 721, 4849, 8152,
+ 827, 10145, 4117, 8717, 721, 7443, 8152,
+ 827, 10145, 4117, 8717, 721, 11649, 8152,
+ 827, 10145, 4849, 601, 6909, 721, 7443, 4117, 7100,
+ 827, 10145, 4849, 4117, 6909, 721, 7443, 601, 7100,
+ 827, 10145, 4849, 6909, 721, 7443, 601, 7100,
+ 827, 10145, 4849, 6909, 721, 7443, 4117, 7100,
+ 827, 10145, 4849, 6909, 721, 7443, 10677, 7100,
+ 827, 10145, 4849, 7101, 721, 7443, 601, 6908,
+ 827, 10145, 4849, 7101, 721, 7443, 4117, 6908,
+ 827, 10145, 4849, 7101, 721, 7443, 10677, 6908,
+ 827, 10145, 6909, 600,
+ 827, 10145, 6909, 601, 721, 4848,
+ 827, 10145, 6909, 601, 721, 7101, 4116,
+ 827, 10145, 6909, 601, 721, 7442,
+ 827, 10145, 6909, 601, 721, 11648,
+ 827, 10145, 6909, 4116,
+ 827, 10145, 6909, 4117, 721, 4848,
+ 827, 10145, 6909, 4117, 721, 7442,
+ 827, 10145, 6909, 4117, 721, 11648,
+ 827, 10145, 6909, 4848,
+ 827, 10145, 6909, 4849, 721, 7101, 7442,
+ 827, 10145, 6909, 7442,
+ 827, 10145, 6909, 8153, 3993, 10676,
+ 827, 10145, 6909, 8153, 3993, 11648,
+ 827, 10145, 6909, 8849, 3993, 10676,
+ 827, 10145, 6909, 8849, 3993, 11648,
+ 827, 10145, 6909, 10676,
+ 827, 10145, 6909, 10677, 721, 4848,
+ 827, 10145, 6909, 10677, 721, 7442,
+ 827, 10145, 6909, 10677, 721, 11648,
+ 827, 10145, 6909, 11191, 3993, 10676,
+ 827, 10145, 6909, 11191, 3993, 11648,
+ 827, 10145, 6909, 11648,
+ 827, 10145, 7101, 600,
+ 827, 10145, 7101, 601, 721, 4848,
+ 827, 10145, 7101, 601, 721, 6909, 4116,
+ 827, 10145, 7101, 601, 721, 7442,
+ 827, 10145, 7101, 601, 721, 11648,
+ 827, 10145, 7101, 731, 601, 721, 4848,
+ 827, 10145, 7101, 731, 601, 721, 7442,
+ 827, 10145, 7101, 731, 4117, 721, 4848,
+ 827, 10145, 7101, 731, 4117, 721, 7442,
+ 827, 10145, 7101, 4116,
+ 827, 10145, 7101, 4117, 721, 4848,
+ 827, 10145, 7101, 4117, 721, 7442,
+ 827, 10145, 7101, 4117, 721, 11648,
+ 827, 10145, 7101, 4848,
+ 827, 10145, 7101, 4849, 721, 6909, 7442,
+ 827, 10145, 7101, 7442,
+ 827, 10145, 7101, 8153, 3993, 10676,
+ 827, 10145, 7101, 8153, 3993, 11648,
+ 827, 10145, 7101, 8849, 3993, 10676,
+ 827, 10145, 7101, 8849, 3993, 11648,
+ 827, 10145, 7101, 10001, 6622,
+ 827, 10145, 7101, 10001, 7773, 4849, 569, 7121, 7442,
+ 827, 10145, 7101, 10001, 7773, 7443, 569, 7121, 4848,
+ 827, 10145, 7101, 10676,
+ 827, 10145, 7101, 10677, 721, 4848,
+ 827, 10145, 7101, 10677, 721, 7442,
+ 827, 10145, 7101, 10677, 721, 11648,
+ 827, 10145, 7101, 11191, 3993, 10676,
+ 827, 10145, 7101, 11191, 3993, 11648,
+ 827, 10145, 7101, 11648,
+ 827, 10145, 7443, 601, 6909, 721, 4849, 4117, 7100,
+ 827, 10145, 7443, 4117, 6909, 721, 4849, 601, 7100,
+ 827, 10145, 7443, 6909, 721, 4849, 601, 7100,
+ 827, 10145, 7443, 6909, 721, 4849, 4117, 7100,
+ 827, 10145, 7443, 6909, 721, 4849, 10677, 7100,
+ 827, 10145, 7443, 7101, 721, 4849, 601, 6908,
+ 827, 10145, 7443, 7101, 721, 4849, 4117, 6908,
+ 827, 10145, 7443, 7101, 721, 4849, 10677, 6908,
+ 827, 10145, 8153, 601, 721, 4848,
+ 827, 10145, 8153, 601, 721, 7442,
+ 827, 10145, 8153, 601, 721, 11648,
+ 827, 10145, 8153, 4117, 721, 4848,
+ 827, 10145, 8153, 4117, 721, 7442,
+ 827, 10145, 8153, 4117, 721, 11648,
+ 827, 10145, 8153, 10676,
+ 827, 10145, 8153, 10677, 721, 4848,
+ 827, 10145, 8153, 10677, 721, 7442,
+ 827, 10145, 8153, 10677, 721, 11648,
+ 827, 10145, 8153, 11648,
+ 827, 10145, 10677, 6909, 721, 4849, 7100,
+ 827, 10145, 10677, 6909, 721, 7443, 7100,
+ 827, 10145, 10677, 6909, 721, 11649, 7100,
+ 827, 10145, 10677, 7101, 721, 4849, 6908,
+ 827, 10145, 10677, 7101, 721, 7443, 6908,
+ 827, 10145, 10677, 7101, 721, 11649, 6908,
+ 827, 10145, 10677, 8153, 721, 4849, 8716,
+ 827, 10145, 10677, 8153, 721, 7443, 8716,
+ 827, 10145, 10677, 8153, 721, 11649, 8716,
+ 827, 10145, 10677, 8717, 721, 4849, 8152,
+ 827, 10145, 10677, 8717, 721, 7443, 8152,
+ 827, 10145, 10677, 8717, 721, 11649, 8152,
+ 889, 2412,
+ 909, 8759, 6,
+ 909, 8759, 14,
+ 909, 8759, 26,
+ 909, 8759, 30,
+ 909, 8759, 32,
+ 909, 8759, 36,
+ 909, 8759, 38,
+ 909, 8759, 240,
+ 909, 8759, 248,
+ 909, 8759, 254,
+ 909, 8759, 466,
+ 909, 8759, 472,
+ 909, 8759, 494,
+ 909, 8759, 528,
+ 909, 8759, 538,
+ 909, 8759, 544,
+ 909, 8759, 550,
+ 909, 8759, 554,
+ 909, 8759, 566,
+ 909, 8759, 628,
+ 909, 8759, 642,
+ 909, 8759, 844,
+ 909, 8759, 1458,
+ 909, 8759, 1460,
+ 909, 8759, 1462,
+ 909, 8759, 1464,
+ 909, 8759, 2602,
+ 909, 8759, 2608,
+ 909, 8759, 2630,
+ 909, 8759, 4542,
+ 909, 8759, 4584,
+ 909, 8759, 4586,
+ 909, 8759, 4588,
+ 909, 8759, 4590,
+ 909, 8759, 5872,
+ 909, 8759, 6974,
+ 909, 9617, 826,
+ 909, 9617, 920,
+ 909, 9617, 1036,
+ 909, 9617, 1093, 2170,
+ 909, 9617, 1093, 2778,
+ 909, 9617, 1093, 7694,
+ 909, 9617, 1132,
+ 909, 9617, 1136,
+ 909, 9617, 2025, 2170,
+ 909, 9617, 2025, 2778,
+ 909, 9617, 2025, 4214,
+ 909, 9617, 2025, 7694,
+ 909, 9617, 2166,
+ 909, 9617, 2201, 2170,
+ 909, 9617, 2201, 2778,
+ 909, 9617, 2386,
+ 909, 9617, 2390,
+ 909, 9617, 2586,
+ 909, 9617, 3794,
+ 909, 9617, 3805, 429, 6604,
+ 909, 9617, 3806,
+ 909, 9617, 3940,
+ 909, 9617, 4194,
+ 909, 9617, 4208,
+ 909, 9617, 4390,
+ 909, 9617, 4398,
+ 909, 9617, 4536,
+ 909, 9617, 4628,
+ 909, 9617, 4835, 2170,
+ 909, 9617, 4835, 2778,
+ 909, 9617, 4835, 4214,
+ 909, 9617, 4835, 7694,
+ 909, 9617, 4895, 2170,
+ 909, 9617, 4895, 2778,
+ 909, 9617, 4940,
+ 909, 9617, 4950,
+ 909, 9617, 5012,
+ 909, 9617, 5524,
+ 909, 9617, 5646,
+ 909, 9617, 5764,
+ 909, 9617, 6101, 2170,
+ 909, 9617, 6101, 2778,
+ 909, 9617, 6113, 2170,
+ 909, 9617, 6113, 2778,
+ 909, 9617, 6521, 2170,
+ 909, 9617, 6521, 2778,
+ 909, 9617, 6578,
+ 909, 9617, 6600,
+ 909, 9617, 6670,
+ 909, 9617, 6852,
+ 909, 9617, 6873, 2170,
+ 909, 9617, 6873, 2778,
+ 909, 9617, 6873, 7694,
+ 909, 9617, 6907, 2170,
+ 909, 9617, 6907, 2778,
+ 909, 9617, 7057, 2170,
+ 909, 9617, 7057, 2778,
+ 909, 9617, 7185, 2170,
+ 909, 9617, 7185, 2778,
+ 909, 9617, 7526,
+ 909, 9617, 7593, 2170,
+ 909, 9617, 7593, 2778,
+ 909, 9617, 7600,
+ 909, 9617, 7603, 2170,
+ 909, 9617, 7603, 2778,
+ 909, 9617, 7662,
+ 909, 9617, 7704,
+ 909, 9617, 7813, 2170,
+ 909, 9617, 7813, 2778,
+ 909, 9617, 7974,
+ 909, 9617, 8484,
+ 909, 9617, 8486,
+ 909, 9617, 8576,
+ 909, 9617, 8640,
+ 909, 9617, 8681, 2170,
+ 909, 9617, 8681, 2778,
+ 909, 9617, 8681, 7694,
+ 909, 9617, 8735, 2170,
+ 909, 9617, 8735, 2778,
+ 909, 9617, 8824,
+ 909, 9617, 8870,
+ 909, 9617, 9102,
+ 909, 9617, 9948,
+ 909, 9617, 11488,
+ 909, 9617, 11803, 4389, 5969, 7736,
+ 909, 9617, 11803, 4536,
+ 909, 9617, 11803, 6100,
+ 909, 9617, 11803, 7816,
+ 909, 9617, 11803, 8946,
+ 909, 9617, 12419, 1092,
+ 909, 9617, 12419, 1170,
+ 909, 9617, 12419, 2504,
+ 909, 9617, 12419, 3788,
+ 909, 9617, 12419, 3850,
+ 909, 9617, 12419, 4172,
+ 909, 9617, 12419, 4196,
+ 909, 9617, 12419, 4218,
+ 909, 9617, 12419, 4244,
+ 909, 9617, 12419, 4342,
+ 909, 9617, 12419, 4844,
+ 909, 9617, 12419, 4894,
+ 909, 9617, 12419, 5632,
+ 909, 9617, 12419, 5764,
+ 909, 9617, 12419, 6116,
+ 909, 9617, 12419, 6952,
+ 909, 9617, 12419, 7532,
+ 909, 9617, 12419, 7726,
+ 909, 9617, 12419, 8154,
+ 909, 9617, 12419, 8730,
+ 909, 9617, 12419, 8793, 9426,
+ 909, 9617, 12419, 8870,
+ 909, 9617, 12495, 4172,
+ 909, 9617, 12495, 7726,
+ 909, 9617, 12495, 8154,
+ 909, 9617, 12495, 8870,
+ 1009, 8178,
+ 1009, 8180,
+ 1009, 8182,
+ 1009, 8184,
+ 1009, 8186,
+ 1009, 8188,
+ 1045, 5444,
+ 1045, 6376,
+ 1045, 7172,
+ 1045, 10374,
+ 1109, 429, 7394,
+ 1177, 718,
+ 1429, 9730,
+ 1429, 9912,
+ 1635, 5758,
+ 1741, 247, 380,
+ 1741, 247, 412,
+ 1741, 323, 332,
+ 1741, 5965, 1859, 170,
+ 1741, 5965, 1859, 564,
+ 1741, 5965, 1859, 2684,
+ 1741, 5965, 1859, 8034,
+ 1741, 6689, 2170,
+ 1741, 6689, 2540,
+ 1741, 6689, 2778,
+ 1741, 6689, 4200,
+ 1741, 6689, 4214,
+ 1741, 6689, 5190,
+ 1741, 6689, 6260,
+ 1741, 6689, 6722,
+ 1741, 6689, 7508,
+ 1741, 6689, 7694,
+ 1741, 7803, 5759, 0,
+ 1741, 7803, 5759, 8,
+ 1741, 7803, 5759, 16,
+ 1741, 7803, 5759, 28,
+ 1741, 7803, 5759, 40,
+ 1741, 7803, 5759, 48,
+ 1741, 7803, 5759, 58,
+ 1741, 7803, 5759, 72,
+ 1741, 7803, 5759, 78,
+ 1741, 7803, 5759, 98,
+ 1741, 7803, 5759, 168,
+ 1741, 7803, 5759, 266,
+ 1741, 7803, 5759, 606,
+ 1741, 7803, 5759, 668,
+ 1741, 7803, 5759, 1859, 1588,
+ 1741, 7803, 5759, 1859, 1658,
+ 1741, 8405, 28,
+ 1741, 8405, 108,
+ 1741, 8405, 130,
+ 1741, 8405, 150,
+ 1741, 8405, 209, 2646,
+ 1741, 8405, 209, 5846,
+ 1741, 8405, 247, 2646,
+ 1741, 8405, 247, 5846,
+ 1741, 8405, 322,
+ 1741, 8405, 351, 4878,
+ 1741, 8405, 351, 4898,
+ 1741, 8405, 380,
+ 1741, 8405, 412,
+ 1741, 8405, 480,
+ 1741, 8405, 537, 2646,
+ 1741, 8405, 537, 5846,
+ 1741, 8405, 568,
+ 1741, 8405, 632,
+ 1741, 8405, 660,
+ 1741, 8405, 1619, 2646,
+ 1741, 8405, 1619, 5846,
+ 1741, 8405, 2038,
+ 1741, 8405, 2134,
+ 1741, 8405, 2219, 2646,
+ 1741, 8405, 2219, 5846,
+ 1741, 8405, 2685, 2646,
+ 1741, 8405, 2685, 5846,
+ 1741, 10154,
+ 1741, 11134,
+ 1741, 11227, 5759, 350,
+ 1741, 11227, 5759, 2134,
+ 1741, 12421, 4926,
+ 1764,
+ 1809, 4876,
+ 1809, 8153, 7391, 11195, 4926,
+ 1809, 9898,
+ 2027, 2643, 1817, 5759, 1734,
+ 2027, 2643, 1817, 5759, 4826,
+ 2027, 2643, 1817, 5965, 8442,
+ 2027, 2643, 1817, 5965, 8444,
+ 2027, 2643, 1817, 6689, 2170,
+ 2027, 2643, 1817, 6689, 2540,
+ 2027, 2643, 1817, 6689, 2778,
+ 2027, 2643, 1817, 6689, 4200,
+ 2027, 2643, 1817, 6689, 4214,
+ 2027, 2643, 1817, 6689, 5190,
+ 2027, 2643, 1817, 6689, 6260,
+ 2027, 2643, 1817, 6689, 6722,
+ 2027, 2643, 1817, 6689, 7508,
+ 2027, 2643, 1817, 6689, 7694,
+ 2027, 2643, 1817, 7803, 5759, 8,
+ 2027, 2643, 1817, 7803, 5759, 28,
+ 2027, 2643, 1817, 7803, 5759, 40,
+ 2027, 2643, 1817, 7803, 5759, 58,
+ 2027, 2643, 1817, 7803, 5759, 66,
+ 2027, 2643, 1817, 7803, 5759, 98,
+ 2027, 2643, 1817, 7803, 5759, 266,
+ 2027, 2643, 1817, 7803, 5759, 290,
+ 2027, 2643, 1817, 7803, 5759, 422,
+ 2027, 2643, 1817, 7803, 5759, 458,
+ 2027, 2643, 1817, 7803, 5759, 590,
+ 2027, 2643, 1817, 7803, 5759, 606,
+ 2027, 2643, 1817, 7803, 5759, 608,
+ 2027, 2643, 1817, 7803, 5759, 700,
+ 2027, 2643, 1817, 7803, 5759, 2156,
+ 2027, 2643, 1817, 7803, 5759, 2806,
+ 2027, 2643, 1817, 7803, 5759, 7803, 11238,
+ 2027, 2643, 1817, 8405, 1809, 100,
+ 2027, 2643, 1817, 8405, 1809, 138,
+ 2027, 2643, 1817, 8405, 1809, 196,
+ 2027, 2643, 1817, 8405, 1809, 236,
+ 2027, 2643, 1817, 8405, 1809, 306,
+ 2027, 2643, 1817, 8405, 1809, 332,
+ 2027, 2643, 1817, 8405, 1809, 364,
+ 2027, 2643, 1817, 8405, 1809, 392,
+ 2027, 2643, 1817, 8405, 1809, 462,
+ 2027, 2643, 1817, 8405, 1809, 496,
+ 2027, 2643, 1817, 8405, 1809, 524,
+ 2027, 2643, 1817, 8405, 1809, 556,
+ 2027, 2643, 1817, 8405, 1809, 610,
+ 2027, 2643, 1817, 8405, 1809, 638,
+ 2027, 2643, 1817, 8405, 1809, 652,
+ 2027, 2643, 1817, 8405, 1809, 1702,
+ 2027, 2643, 1817, 8405, 1809, 2030,
+ 2027, 2643, 1817, 8405, 1809, 2212,
+ 2027, 2643, 1817, 8405, 1809, 2678,
+ 2027, 2643, 1817, 8405, 1809, 2732,
+ 2027, 2643, 1817, 8405, 1809, 2980,
+ 2027, 2643, 1817, 8405, 4423, 100,
+ 2027, 2643, 1817, 8405, 4423, 138,
+ 2027, 2643, 1817, 8405, 4423, 196,
+ 2027, 2643, 1817, 8405, 4423, 236,
+ 2027, 2643, 1817, 8405, 4423, 306,
+ 2027, 2643, 1817, 8405, 4423, 332,
+ 2027, 2643, 1817, 8405, 4423, 364,
+ 2027, 2643, 1817, 8405, 4423, 392,
+ 2027, 2643, 1817, 8405, 4423, 462,
+ 2027, 2643, 1817, 8405, 4423, 496,
+ 2027, 2643, 1817, 8405, 4423, 524,
+ 2027, 2643, 1817, 8405, 4423, 556,
+ 2027, 2643, 1817, 8405, 4423, 610,
+ 2027, 2643, 1817, 8405, 4423, 638,
+ 2027, 2643, 1817, 8405, 4423, 652,
+ 2027, 2643, 1817, 8405, 4423, 1702,
+ 2027, 2643, 1817, 8405, 4423, 2030,
+ 2027, 2643, 1817, 8405, 4423, 2212,
+ 2027, 2643, 1817, 8405, 4423, 2678,
+ 2027, 2643, 1817, 8405, 4423, 2732,
+ 2027, 2643, 1817, 8405, 4423, 2980,
+ 2027, 2643, 1817, 8405, 6789, 2,
+ 2027, 2643, 1817, 8405, 6789, 6,
+ 2027, 2643, 1817, 8405, 6789, 20,
+ 2027, 2643, 1817, 8405, 6789, 24,
+ 2027, 2643, 1817, 8405, 6789, 26,
+ 2027, 2643, 1817, 8405, 6789, 42,
+ 2027, 2643, 1817, 8405, 6789, 400,
+ 2027, 8701, 5758,
+ 2075, 1809, 5965, 11424,
+ 2075, 4423, 5965, 11424,
+ 2075, 6616,
+ 2075, 6689, 2170,
+ 2075, 6689, 2540,
+ 2075, 6689, 2778,
+ 2075, 6689, 4200,
+ 2075, 6689, 4214,
+ 2075, 6689, 5190,
+ 2075, 6689, 6260,
+ 2075, 6689, 6722,
+ 2075, 6689, 7508,
+ 2075, 6689, 7694,
+ 2075, 8405, 0,
+ 2075, 8405, 8,
+ 2075, 8405, 16,
+ 2075, 8405, 26,
+ 2075, 8405, 28,
+ 2075, 8405, 40,
+ 2075, 8405, 100,
+ 2075, 8405, 138,
+ 2075, 8405, 162,
+ 2075, 8405, 196,
+ 2075, 8405, 236,
+ 2075, 8405, 292,
+ 2075, 8405, 306,
+ 2075, 8405, 332,
+ 2075, 8405, 364,
+ 2075, 8405, 392,
+ 2075, 8405, 393, 8936,
+ 2075, 8405, 440,
+ 2075, 8405, 462,
+ 2075, 8405, 510,
+ 2075, 8405, 524,
+ 2075, 8405, 556,
+ 2075, 8405, 622,
+ 2075, 8405, 652,
+ 2075, 8405, 884,
+ 2075, 8405, 1228,
+ 2075, 8405, 2126,
+ 2075, 8405, 2127, 8936,
+ 2075, 8405, 2438,
+ 2075, 8405, 4679, 292,
+ 2075, 8405, 4679, 510,
+ 2075, 8405, 4679, 884,
+ 2075, 8405, 11470,
+ 2075, 8775, 441, 8104,
+ 2075, 8775, 11636,
+ 2075, 10767, 4895, 1809, 5964,
+ 2075, 10767, 4895, 4423, 5964,
+ 2075, 10767, 4895, 8649, 5964,
+ 2075, 10767, 4895, 11475, 5964,
+ 2075, 10767, 7551, 1809, 5964,
+ 2075, 10767, 7551, 4423, 5964,
+ 2075, 10767, 7551, 8649, 5964,
+ 2075, 10767, 8153, 1045, 6376,
+ 2075, 10767, 12511, 4926,
+ 2075, 11672,
+ 2075, 12017, 4926,
+ 2088,
+ 2091, 1, 8763, 428,
+ 2091, 1, 10579, 428,
+ 2091, 81, 9263, 428,
+ 2091, 5758,
+ 2091, 5972,
+ 2091, 6569, 4926,
+ 2091, 6741, 568,
+ 2091, 7708,
+ 2091, 7919, 6741, 568,
+ 2091, 8521, 10573, 428,
+ 2091, 8521, 10573, 429, 445, 6741, 568,
+ 2091, 8745, 6989, 429, 445, 6741, 568,
+ 2091, 8745, 10379, 429, 445, 6741, 568,
+ 2091, 10411, 568,
+ 2091, 11041, 568,
+ 2091, 11098,
+ 2091, 11621, 568,
+ 2091, 12472,
+ 2091, 13045, 6741, 568,
+ 2159, 825, 2690,
+ 2159, 3771, 8020,
+ 2159, 3992,
+ 2159, 4210,
+ 2159, 4530,
+ 2159, 6564,
+ 2159, 7921, 429, 6568,
+ 2159, 8009, 3711, 13054,
+ 2159, 8153, 10728,
+ 2159, 9973, 8975, 8524,
+ 2159, 10267, 4210,
+ 2163, 5758,
+ 2167, 8325, 8405, 0,
+ 2167, 8325, 8405, 8,
+ 2167, 8325, 8405, 16,
+ 2167, 8325, 8405, 28,
+ 2167, 8325, 8405, 40,
+ 2167, 8325, 8405, 102,
+ 2167, 8325, 8405, 142,
+ 2167, 8325, 8405, 164,
+ 2167, 8325, 8405, 172,
+ 2167, 8325, 8405, 174,
+ 2167, 8325, 8405, 176,
+ 2167, 8325, 8405, 182,
+ 2167, 8325, 8405, 184,
+ 2167, 8325, 8405, 238,
+ 2167, 8325, 8405, 266,
+ 2167, 8325, 8405, 306,
+ 2167, 8325, 8405, 310,
+ 2167, 8325, 8405, 326,
+ 2167, 8325, 8405, 468,
+ 2167, 8325, 8405, 560,
+ 2167, 8325, 8405, 606,
+ 2167, 8325, 8405, 612,
+ 2167, 8325, 8405, 672,
+ 2167, 8325, 8405, 886,
+ 2167, 8325, 8405, 1106,
+ 2167, 8325, 8405, 1122,
+ 2167, 8325, 8405, 1124,
+ 2167, 8325, 8405, 1614,
+ 2167, 8325, 8405, 2214,
+ 2167, 8325, 8405, 2518,
+ 2167, 8325, 8405, 2680,
+ 2167, 8325, 9513, 2170,
+ 2167, 8325, 9513, 2670,
+ 2167, 8325, 9513, 4200,
+ 2167, 8325, 9513, 6784,
+ 2167, 9583, 5759, 0,
+ 2167, 9583, 5759, 16,
+ 2167, 9583, 5759, 40,
+ 2167, 9583, 5759, 100,
+ 2167, 9583, 5759, 116,
+ 2167, 9583, 5759, 138,
+ 2167, 9583, 5759, 144,
+ 2167, 9583, 5759, 152,
+ 2167, 9583, 5759, 196,
+ 2167, 9583, 5759, 216,
+ 2167, 9583, 5759, 230,
+ 2167, 9583, 5759, 236,
+ 2167, 9583, 5759, 292,
+ 2167, 9583, 5759, 296,
+ 2167, 9583, 5759, 306,
+ 2167, 9583, 5759, 326,
+ 2167, 9583, 5759, 332,
+ 2167, 9583, 5759, 364,
+ 2167, 9583, 5759, 374,
+ 2167, 9583, 5759, 384,
+ 2167, 9583, 5759, 392,
+ 2167, 9583, 5759, 416,
+ 2167, 9583, 5759, 462,
+ 2167, 9583, 5759, 510,
+ 2167, 9583, 5759, 520,
+ 2167, 9583, 5759, 524,
+ 2167, 9583, 5759, 556,
+ 2167, 9583, 5759, 576,
+ 2167, 9583, 5759, 610,
+ 2167, 9583, 5759, 614,
+ 2167, 9583, 5759, 638,
+ 2167, 9583, 5759, 652,
+ 2167, 9583, 5759, 670,
+ 2167, 9583, 5759, 2516,
+ 2167, 9583, 5759, 2566,
+ 2167, 9583, 5759, 2678,
+ 2167, 9583, 5759, 3700,
+ 2167, 9583, 5759, 9058,
+ 2167, 9583, 5759, 10790,
+ 2167, 9583, 5759, 11436,
+ 2167, 9583, 5759, 11926,
+ 2167, 9583, 5759, 12408,
+ 2167, 9583, 5759, 12410,
+ 2167, 9583, 5759, 12896,
+ 2167, 9583, 6129, 9178,
+ 2167, 9583, 8525, 2170,
+ 2167, 9583, 8525, 2670,
+ 2167, 9583, 8525, 2778,
+ 2167, 9583, 8525, 8876,
+ 2167, 9583, 8525, 9344,
+ 2171, 1045, 5387, 2779, 4113, 12132,
+ 2171, 1045, 8392,
+ 2209, 2671, 10625, 5758,
+ 2209, 5758,
+ 2209, 7171, 5758,
+ 2241, 11945, 11632,
+ 2511, 7172,
+ 2541, 9601, 6505, 5830,
+ 2541, 10425, 6505, 721, 7821, 10194,
+ 2586,
+ 2639, 1809, 4876,
+ 2639, 4223, 5836,
+ 2639, 4849, 6627, 9050,
+ 2639, 4849, 8745, 9050,
+ 2639, 4849, 12114,
+ 2639, 5445, 5758,
+ 2639, 6610,
+ 2639, 6616,
+ 2639, 6689, 2170,
+ 2639, 6689, 2540,
+ 2639, 6689, 2778,
+ 2639, 6689, 4200,
+ 2639, 6689, 4214,
+ 2639, 6689, 5190,
+ 2639, 6689, 6260,
+ 2639, 6689, 6722,
+ 2639, 6689, 7508,
+ 2639, 6689, 7694,
+ 2639, 6875, 7908,
+ 2639, 7089, 7593, 8405, 0,
+ 2639, 7089, 7593, 8405, 2,
+ 2639, 7089, 7593, 8405, 4,
+ 2639, 7089, 7593, 8405, 6,
+ 2639, 7089, 7593, 8405, 8,
+ 2639, 7089, 7593, 8405, 10,
+ 2639, 7089, 7593, 8405, 12,
+ 2639, 7089, 7593, 8405, 14,
+ 2639, 7089, 7593, 8405, 16,
+ 2639, 7089, 7593, 8405, 18,
+ 2639, 7089, 7593, 8405, 20,
+ 2639, 7089, 7593, 8405, 22,
+ 2639, 7089, 7593, 8405, 24,
+ 2639, 7089, 7593, 8405, 26,
+ 2639, 7089, 7593, 8405, 28,
+ 2639, 7089, 7593, 8405, 30,
+ 2639, 7089, 7593, 8405, 32,
+ 2639, 7089, 7593, 8405, 34,
+ 2639, 7089, 7593, 8405, 36,
+ 2639, 7089, 7593, 8405, 38,
+ 2639, 7089, 7593, 8405, 40,
+ 2639, 7089, 7593, 8405, 42,
+ 2639, 7089, 7593, 8405, 44,
+ 2639, 7089, 7593, 8405, 46,
+ 2639, 7089, 7593, 8405, 48,
+ 2639, 7089, 7593, 8405, 50,
+ 2639, 7089, 9063, 8405, 0,
+ 2639, 7089, 9063, 8405, 2,
+ 2639, 7089, 9063, 8405, 4,
+ 2639, 7089, 9063, 8405, 6,
+ 2639, 7089, 9063, 8405, 8,
+ 2639, 7089, 9063, 8405, 10,
+ 2639, 7089, 9063, 8405, 12,
+ 2639, 7089, 9063, 8405, 14,
+ 2639, 7089, 9063, 8405, 16,
+ 2639, 7089, 9063, 8405, 18,
+ 2639, 7089, 9063, 8405, 20,
+ 2639, 7089, 9063, 8405, 22,
+ 2639, 7089, 9063, 8405, 24,
+ 2639, 7089, 9063, 8405, 26,
+ 2639, 7089, 9063, 8405, 28,
+ 2639, 7089, 9063, 8405, 30,
+ 2639, 7089, 9063, 8405, 32,
+ 2639, 7089, 9063, 8405, 34,
+ 2639, 7089, 9063, 8405, 36,
+ 2639, 7089, 9063, 8405, 38,
+ 2639, 7089, 9063, 8405, 40,
+ 2639, 7089, 9063, 8405, 42,
+ 2639, 7089, 9063, 8405, 44,
+ 2639, 7089, 9063, 8405, 46,
+ 2639, 7089, 9063, 8405, 48,
+ 2639, 7089, 9063, 8405, 50,
+ 2639, 7443, 6627, 9050,
+ 2639, 7443, 8745, 9050,
+ 2639, 7443, 12114,
+ 2639, 7608,
+ 2639, 7708,
+ 2639, 8129, 5758,
+ 2639, 8167, 5758,
+ 2639, 8525, 5758,
+ 2639, 9581, 5758,
+ 2639, 9633, 9718,
+ 2639, 9718,
+ 2639, 9898,
+ 2639, 10469, 4926,
+ 2639, 10677, 4876,
+ 2639, 10708,
+ 2639, 11099, 5758,
+ 2639, 11195, 4926,
+ 2639, 11224,
+ 2639, 11424,
+ 2639, 11449, 7908,
+ 2639, 11451, 90,
+ 2639, 12017, 4926,
+ 2639, 12473, 5758,
+ 2639, 12478,
+ 2643, 337, 8405, 0,
+ 2643, 337, 8405, 8,
+ 2643, 337, 8405, 16,
+ 2643, 337, 8405, 28,
+ 2643, 337, 8405, 40,
+ 2643, 337, 8405, 72,
+ 2643, 337, 8405, 162,
+ 2643, 337, 8405, 166,
+ 2643, 337, 8405, 196,
+ 2643, 337, 8405, 236,
+ 2643, 337, 8405, 306,
+ 2643, 337, 8405, 332,
+ 2643, 337, 8405, 364,
+ 2643, 337, 8405, 392,
+ 2643, 337, 8405, 440,
+ 2643, 337, 8405, 462,
+ 2643, 337, 8405, 496,
+ 2643, 337, 8405, 524,
+ 2643, 337, 8405, 556,
+ 2643, 337, 8405, 590,
+ 2643, 337, 8405, 610,
+ 2643, 337, 8405, 638,
+ 2643, 337, 8405, 652,
+ 2643, 337, 8405, 738,
+ 2643, 337, 8405, 1612,
+ 2643, 337, 8405, 2030,
+ 2643, 337, 8405, 2212,
+ 2643, 337, 8405, 2678,
+ 2643, 337, 8405, 2732,
+ 2643, 337, 8405, 5978,
+ 2643, 337, 8405, 8834,
+ 2643, 337, 8405, 8836,
+ 2643, 337, 8405, 8838,
+ 2643, 337, 8405, 8840,
+ 2643, 337, 8405, 8842,
+ 2691, 5387, 10256,
+ 2725, 731, 10763, 6435, 6121, 7172,
+ 2725, 731, 12901, 6434,
+ 2725, 731, 12901, 6435, 6121, 5444,
+ 2725, 4389, 10260,
+ 2725, 4849, 3958,
+ 2725, 4849, 4389, 9050,
+ 2725, 4849, 8076,
+ 2725, 6627, 9050,
+ 2725, 7443, 3958,
+ 2725, 7443, 4389, 9050,
+ 2725, 7443, 8076,
+ 2725, 8745, 9050,
+ 2725, 10637, 7533, 9050,
+ 2725, 12114,
+ 2779, 1045, 8392,
+ 2779, 1045, 12132,
+ 2779, 4113, 5387, 2171, 1045, 12132,
+ 2779, 8329, 9734,
+ 2779, 9437, 445, 10374,
+ 2779, 9437, 721, 10374,
+ 2779, 10725, 8993, 11876,
+ 2779, 11913, 8167, 7570,
+ 2779, 12491, 9437, 444,
+ 2779, 12491, 9437, 720,
+ 2847, 4223, 5836,
+ 2847, 6616,
+ 2847, 6689, 2170,
+ 2847, 6689, 2540,
+ 2847, 6689, 2778,
+ 2847, 6689, 4200,
+ 2847, 6689, 4214,
+ 2847, 6689, 5190,
+ 2847, 6689, 6260,
+ 2847, 6689, 6722,
+ 2847, 6689, 7508,
+ 2847, 6689, 7694,
+ 2847, 8775, 1140,
+ 2847, 8775, 2052,
+ 2847, 8775, 2634,
+ 2847, 8775, 3708,
+ 2847, 8775, 3986,
+ 2847, 8775, 4100,
+ 2847, 8775, 4680,
+ 2847, 8775, 4784,
+ 2847, 8775, 5944,
+ 2847, 8775, 5966,
+ 2847, 8775, 6700,
+ 2847, 8775, 6776,
+ 2847, 8775, 7032,
+ 2847, 10469, 4926,
+ 2847, 10585, 0,
+ 2847, 10585, 8,
+ 2847, 10585, 16,
+ 2847, 10585, 28,
+ 2847, 10585, 40,
+ 2847, 10585, 80,
+ 2847, 10585, 100,
+ 2847, 10585, 102,
+ 2847, 10585, 106,
+ 2847, 10585, 108,
+ 2847, 10585, 112,
+ 2847, 10585, 116,
+ 2847, 10585, 122,
+ 2847, 10585, 126,
+ 2847, 10585, 130,
+ 2847, 10585, 132,
+ 2847, 10585, 138,
+ 2847, 10585, 142,
+ 2847, 10585, 144,
+ 2847, 10585, 150,
+ 2847, 10585, 152,
+ 2847, 10585, 162,
+ 2847, 10585, 176,
+ 2847, 10585, 196,
+ 2847, 10585, 198,
+ 2847, 10585, 202,
+ 2847, 10585, 208,
+ 2847, 10585, 210,
+ 2847, 10585, 216,
+ 2847, 10585, 220,
+ 2847, 10585, 224,
+ 2847, 10585, 228,
+ 2847, 10585, 230,
+ 2847, 10585, 236,
+ 2847, 10585, 238,
+ 2847, 10585, 242,
+ 2847, 10585, 246,
+ 2847, 10585, 250,
+ 2847, 10585, 274,
+ 2847, 10585, 292,
+ 2847, 10585, 294,
+ 2847, 10585, 296,
+ 2847, 10585, 298,
+ 2847, 10585, 300,
+ 2847, 10585, 306,
+ 2847, 10585, 310,
+ 2847, 10585, 314,
+ 2847, 10585, 322,
+ 2847, 10585, 326,
+ 2847, 10585, 332,
+ 2847, 10585, 336,
+ 2847, 10585, 340,
+ 2847, 10585, 350,
+ 2847, 10585, 354,
+ 2847, 10585, 364,
+ 2847, 10585, 368,
+ 2847, 10585, 374,
+ 2847, 10585, 380,
+ 2847, 10585, 384,
+ 2847, 10585, 392,
+ 2847, 10585, 396,
+ 2847, 10585, 400,
+ 2847, 10585, 404,
+ 2847, 10585, 412,
+ 2847, 10585, 416,
+ 2847, 10585, 438,
+ 2847, 10585, 440,
+ 2847, 10585, 462,
+ 2847, 10585, 468,
+ 2847, 10585, 476,
+ 2847, 10585, 480,
+ 2847, 10585, 486,
+ 2847, 10585, 510,
+ 2847, 10585, 512,
+ 2847, 10585, 514,
+ 2847, 10585, 516,
+ 2847, 10585, 520,
+ 2847, 10585, 524,
+ 2847, 10585, 526,
+ 2847, 10585, 532,
+ 2847, 10585, 536,
+ 2847, 10585, 546,
+ 2847, 10585, 556,
+ 2847, 10585, 560,
+ 2847, 10585, 564,
+ 2847, 10585, 568,
+ 2847, 10585, 576,
+ 2847, 10585, 596,
+ 2847, 10585, 610,
+ 2847, 10585, 612,
+ 2847, 10585, 614,
+ 2847, 10585, 616,
+ 2847, 10585, 618,
+ 2847, 10585, 622,
+ 2847, 10585, 626,
+ 2847, 10585, 630,
+ 2847, 10585, 632,
+ 2847, 10585, 634,
+ 2847, 10585, 652,
+ 2847, 10585, 654,
+ 2847, 10585, 656,
+ 2847, 10585, 660,
+ 2847, 10585, 664,
+ 2847, 10585, 670,
+ 2847, 10585, 672,
+ 2847, 10585, 676,
+ 2847, 10585, 678,
+ 2847, 10585, 680,
+ 2847, 10585, 778,
+ 2847, 10585, 792,
+ 2847, 10585, 794,
+ 2847, 10585, 796,
+ 2847, 10585, 798,
+ 2847, 10585, 800,
+ 2847, 10585, 818,
+ 2847, 10585, 876,
+ 2847, 10585, 914,
+ 2847, 10585, 984,
+ 2847, 10585, 996,
+ 2847, 10585, 998,
+ 2847, 10585, 1000,
+ 2847, 10585, 1002,
+ 2847, 10585, 1004,
+ 2847, 10585, 1040,
+ 2847, 10585, 1098,
+ 2847, 10585, 1150,
+ 2847, 10585, 1172,
+ 2847, 10585, 1228,
+ 2847, 10585, 1230,
+ 2847, 10585, 1232,
+ 2847, 10585, 1234,
+ 2847, 10585, 1236,
+ 2847, 10585, 1238,
+ 2847, 10585, 1240,
+ 2847, 10585, 1290,
+ 2847, 10585, 1346,
+ 2847, 10585, 1356,
+ 2847, 10585, 1362,
+ 2847, 10585, 1384,
+ 2847, 10585, 1422,
+ 2847, 10585, 1424,
+ 2847, 10585, 1436,
+ 2847, 10585, 1506,
+ 2847, 10585, 1542,
+ 2847, 10585, 1588,
+ 2847, 10585, 1598,
+ 2847, 10585, 1660,
+ 2847, 10585, 1668,
+ 2847, 10585, 1670,
+ 2847, 10585, 1672,
+ 2847, 10585, 1674,
+ 2847, 10585, 1676,
+ 2847, 10585, 1758,
+ 2847, 10585, 1802,
+ 2847, 10585, 1878,
+ 2847, 10585, 1880,
+ 2847, 10585, 1882,
+ 2847, 10585, 1884,
+ 2847, 10585, 1886,
+ 2847, 10585, 1890,
+ 2847, 10585, 1938,
+ 2847, 10585, 2006,
+ 2847, 10585, 2008,
+ 2847, 10585, 2010,
+ 2847, 10585, 2012,
+ 2847, 10585, 2014,
+ 2847, 10585, 2016,
+ 2847, 10585, 2062,
+ 2847, 10585, 2064,
+ 2847, 10585, 2066,
+ 2847, 10585, 2068,
+ 2847, 10585, 2070,
+ 2847, 10585, 2084,
+ 2847, 10585, 2126,
+ 2847, 10585, 2130,
+ 2847, 10585, 2132,
+ 2847, 10585, 2134,
+ 2847, 10585, 2136,
+ 2847, 10585, 2178,
+ 2847, 10585, 2204,
+ 2847, 10585, 2238,
+ 2847, 10585, 2402,
+ 2847, 10585, 2430,
+ 2847, 10585, 2504,
+ 2847, 10585, 2516,
+ 2847, 10585, 2518,
+ 2847, 10585, 2520,
+ 2847, 10585, 2522,
+ 2847, 10585, 2524,
+ 2847, 10585, 2554,
+ 2847, 10585, 2666,
+ 2847, 10585, 2678,
+ 2847, 10585, 2680,
+ 2847, 10585, 2682,
+ 2847, 10585, 2684,
+ 2847, 10585, 2686,
+ 2847, 10585, 2722,
+ 2847, 10585, 2856,
+ 2847, 10585, 2876,
+ 2847, 10585, 2910,
+ 2847, 10585, 2922,
+ 2847, 10585, 2924,
+ 2847, 10585, 2934,
+ 2847, 10585, 2940,
+ 2847, 10585, 2942,
+ 2847, 10585, 2948,
+ 2847, 10585, 3050,
+ 2847, 10585, 3082,
+ 2847, 10585, 3138,
+ 2847, 10585, 3146,
+ 2847, 10585, 3148,
+ 2847, 10585, 3150,
+ 2847, 10585, 3152,
+ 2847, 10585, 3154,
+ 2847, 10585, 3178,
+ 2847, 10585, 3778,
+ 2847, 10585, 3780,
+ 2847, 10585, 4068,
+ 2847, 10585, 4070,
+ 2847, 10585, 4072,
+ 2847, 10585, 4074,
+ 2847, 10585, 4076,
+ 2847, 10585, 4078,
+ 2847, 10585, 4080,
+ 2847, 10585, 4246,
+ 2847, 10585, 4248,
+ 2847, 10585, 4250,
+ 2847, 10585, 4252,
+ 2847, 10585, 4774,
+ 2847, 10585, 4776,
+ 2847, 10585, 4778,
+ 2847, 10585, 4780,
+ 2847, 10585, 4932,
+ 2847, 10585, 4934,
+ 2847, 10585, 4964,
+ 2847, 10585, 4966,
+ 2847, 10585, 4968,
+ 2847, 10585, 4970,
+ 2847, 10585, 4972,
+ 2847, 10585, 5100,
+ 2847, 10585, 5114,
+ 2847, 10585, 5136,
+ 2847, 10585, 5146,
+ 2847, 10585, 5152,
+ 2847, 10585, 5154,
+ 2847, 10585, 5156,
+ 2847, 10585, 5158,
+ 2847, 10585, 5160,
+ 2847, 10585, 5168,
+ 2847, 10585, 5194,
+ 2847, 10585, 5204,
+ 2847, 10585, 5296,
+ 2847, 10585, 5316,
+ 2847, 10585, 5678,
+ 2847, 10585, 5710,
+ 2847, 10585, 5914,
+ 2847, 10585, 5930,
+ 2847, 10585, 6108,
+ 2847, 10585, 6126,
+ 2847, 10585, 6274,
+ 2847, 10585, 6282,
+ 2847, 10585, 6682,
+ 2847, 10585, 6684,
+ 2847, 10585, 7152,
+ 2847, 10585, 7154,
+ 2847, 10585, 7223, 150,
+ 2847, 10585, 7223, 196,
+ 2847, 10585, 7223, 306,
+ 2847, 10585, 7223, 364,
+ 2847, 10585, 7223, 2554,
+ 2847, 10585, 7228,
+ 2847, 10585, 7230,
+ 2847, 10585, 7232,
+ 2847, 10585, 11674,
+ 2941, 5758,
+ 2972,
+ 3055, 5758,
+ 3071, 6178,
+ 3245, 8774,
+ 3264,
+ 3285, 8774,
+ 3769, 8774,
+ 3839, 2812,
+ 3849, 428,
+ 3871, 5758,
+ 3873, 5758,
+ 3879, 6689, 2170,
+ 3879, 6689, 2540,
+ 3879, 6689, 2778,
+ 3879, 6689, 4200,
+ 3879, 6689, 4214,
+ 3879, 6689, 5190,
+ 3879, 6689, 6260,
+ 3879, 6689, 6722,
+ 3879, 6689, 7508,
+ 3879, 6689, 7694,
+ 3879, 7803, 5759, 16,
+ 3879, 7803, 5759, 28,
+ 3879, 7803, 5759, 40,
+ 3879, 7803, 5759, 58,
+ 3879, 7803, 5759, 72,
+ 3879, 7803, 5759, 92,
+ 3879, 7803, 5759, 168,
+ 3879, 7803, 5759, 266,
+ 3879, 7803, 5759, 426,
+ 3879, 7803, 5759, 590,
+ 3879, 8405, 0,
+ 3879, 8405, 8,
+ 3879, 8405, 16,
+ 3879, 8405, 28,
+ 3879, 8405, 40,
+ 3879, 8405, 72,
+ 3879, 8405, 100,
+ 3879, 8405, 138,
+ 3879, 8405, 216,
+ 3879, 8405, 236,
+ 3879, 8405, 292,
+ 3879, 8405, 306,
+ 3879, 8405, 332,
+ 3879, 8405, 364,
+ 3879, 8405, 392,
+ 3879, 8405, 462,
+ 3879, 8405, 510,
+ 3879, 8405, 524,
+ 3879, 8405, 556,
+ 3879, 8405, 610,
+ 3879, 8405, 652,
+ 3879, 8405, 766,
+ 3879, 8405, 792,
+ 3879, 8405, 884,
+ 3879, 8405, 974,
+ 3879, 8405, 996,
+ 3879, 8405, 1260,
+ 3879, 8405, 1512,
+ 3879, 8405, 1612,
+ 3879, 8405, 1948,
+ 3879, 8405, 2030,
+ 3879, 8405, 2042,
+ 3879, 8405, 2106,
+ 3879, 8405, 2212,
+ 3879, 8405, 2246,
+ 3879, 8405, 2566,
+ 3879, 8405, 2678,
+ 3879, 8405, 3902,
+ 3879, 8405, 5178,
+ 3879, 8405, 5182,
+ 3879, 8405, 5184,
+ 3879, 8405, 6789, 12,
+ 3879, 8405, 6789, 20,
+ 3879, 8405, 6789, 22,
+ 3879, 8405, 6789, 26,
+ 3879, 8405, 6789, 30,
+ 3879, 8405, 6789, 34,
+ 3879, 8405, 6789, 38,
+ 3879, 8405, 6789, 48,
+ 3879, 8405, 6789, 124,
+ 3879, 8405, 6789, 400,
+ 3879, 8405, 6789, 542,
+ 3879, 10775, 5759, 332,
+ 3879, 10775, 5759, 510,
+ 3879, 10775, 5759, 622,
+ 3879, 10775, 5759, 652,
+ 3879, 10775, 5759, 6789, 14,
+ 3879, 10775, 5759, 6789, 24,
+ 3879, 10775, 5759, 6789, 400,
+ 3879, 12133, 6646,
+ 3879, 12133, 8153, 6646,
+ 3879, 12133, 8732,
+ 3879, 12133, 8849, 6646,
+ 3961, 5566,
+ 3989, 7512,
+ 4103, 2091, 6798,
+ 4103, 2091, 7396,
+ 4103, 2091, 8122,
+ 4103, 2091, 8123, 6121, 10489, 10355, 7580,
+ 4103, 2091, 9113, 89, 8466,
+ 4103, 2091, 9113, 89, 8521, 10572,
+ 4103, 2091, 9113, 89, 8521, 10573, 445, 6740,
+ 4103, 2091, 9604,
+ 4103, 2091, 9605, 445, 6740,
+ 4103, 2091, 9750,
+ 4103, 2091, 9751, 445, 6740,
+ 4107, 5758,
+ 4117, 4197, 5878,
+ 4117, 5876,
+ 4117, 5877, 6121, 8057, 6490,
+ 4117, 7443, 10001, 10154,
+ 4117, 10716,
+ 4153, 8781, 6622,
+ 4171, 5758,
+ 4201, 1045, 4926,
+ 4201, 1045, 12132,
+ 4215, 1045, 4926,
+ 4215, 1045, 12132,
+ 4215, 11907, 9898,
+ 4215, 13047, 9898,
+ 4215, 13233, 9898,
+ 4223, 5836,
+ 4223, 6510,
+ 4223, 7327, 4676,
+ 4228,
+ 4260,
+ 4269, 4926,
+ 4387, 7608,
+ 4401, 8774,
+ 4423, 9831, 5758,
+ 4676,
+ 4686,
+ 4837, 9615, 5012,
+ 4849, 721, 7443, 5876,
+ 4849, 721, 7443, 8153, 11378,
+ 4849, 731, 11099, 9050,
+ 4849, 1809, 11715, 9050,
+ 4849, 2171, 8159, 6510,
+ 4849, 2171, 9615, 6510,
+ 4849, 3713, 601, 7443, 3713, 601, 9326,
+ 4849, 3713, 601, 7443, 3713, 4117, 9326,
+ 4849, 3713, 4117, 7443, 3713, 601, 9326,
+ 4849, 3713, 4117, 7443, 3713, 4117, 9326,
+ 4849, 4197, 5878,
+ 4849, 4201, 9259, 6510,
+ 4849, 4389, 6505, 8056,
+ 4849, 4389, 6510,
+ 4849, 5876,
+ 4849, 6409, 9050,
+ 4849, 6409, 9051, 6121, 1044,
+ 4849, 6435, 6121, 7593, 8056,
+ 4849, 6435, 6121, 9095, 5444,
+ 4849, 6505, 10637, 7533, 9050,
+ 4849, 6505, 11677, 9050,
+ 4849, 6627, 9050,
+ 4849, 6627, 9051, 7121, 4530,
+ 4849, 6627, 9051, 7773, 4530,
+ 4849, 6627, 9051, 8473, 7370,
+ 4849, 6792,
+ 4849, 7327, 4676,
+ 4849, 7443, 6105, 6434,
+ 4849, 7443, 6434,
+ 4849, 7443, 6435, 6121, 8153, 10677, 8758,
+ 4849, 7443, 6435, 6121, 8758,
+ 4849, 7443, 6435, 6121, 10677, 8758,
+ 4849, 7443, 6435, 9785, 7593, 8056,
+ 4849, 7443, 6505, 6434,
+ 4849, 7443, 7821, 6434,
+ 4849, 7443, 8153, 6434,
+ 4849, 7443, 8153, 6435, 6121, 8758,
+ 4849, 7443, 8153, 6435, 6121, 10677, 8758,
+ 4849, 7443, 12103, 6434,
+ 4849, 7509, 9259, 6510,
+ 4849, 7695, 9259, 6510,
+ 4849, 7695, 10467, 6510,
+ 4849, 7821, 6627, 9050,
+ 4849, 7821, 8077, 9050,
+ 4849, 7821, 8745, 9050,
+ 4849, 7821, 10637, 7533, 9050,
+ 4849, 7821, 11677, 9050,
+ 4849, 7821, 12114,
+ 4849, 8077, 9050,
+ 4849, 8151, 12877, 9050,
+ 4849, 8153, 6409, 9050,
+ 4849, 8153, 8933, 6778,
+ 4849, 8153, 11195, 4926,
+ 4849, 8153, 12114,
+ 4849, 8521, 8191, 11793, 9610,
+ 4849, 8631, 10371, 9050,
+ 4849, 8717, 11195, 4926,
+ 4849, 8745, 9050,
+ 4849, 8745, 9051, 6121, 5935, 275, 2725, 8076,
+ 4849, 8745, 9051, 6121, 5935, 275, 8005, 8076,
+ 4849, 8745, 9051, 6121, 7412,
+ 4849, 8745, 9051, 6121, 10666,
+ 4849, 8745, 9051, 7121, 8076,
+ 4849, 8745, 9051, 7773, 8076,
+ 4849, 8745, 9051, 10982,
+ 4849, 8933, 6778,
+ 4849, 9074,
+ 4849, 10346,
+ 4849, 10493, 753, 10794,
+ 4849, 10523, 41, 9050,
+ 4849, 10637, 7533, 9050,
+ 4849, 10643, 7991, 10677, 760,
+ 4849, 10677, 761, 6121, 7412,
+ 4849, 10677, 827, 4876,
+ 4849, 11793, 9610,
+ 4849, 12114,
+ 4849, 12115, 7121, 4530,
+ 4849, 12115, 7773, 4530,
+ 4849, 12115, 10982,
+ 4849, 12877, 9050,
+ 4849, 13029, 9050,
+ 4877, 11228,
+ 4877, 12057, 2091, 11049, 2681, 5446,
+ 4877, 12057, 6121, 12139, 5403, 7939, 5446,
+ 4877, 12057, 6121, 12857, 5403, 7939, 5446,
+ 4883, 5758,
+ 4895, 3993, 4221, 4849, 8467, 429, 8153, 10676,
+ 4895, 4849, 5876,
+ 4895, 4849, 7443, 6434,
+ 4895, 4849, 7443, 8153, 6434,
+ 4895, 7443, 5876,
+ 4895, 10016,
+ 4895, 11097, 6434,
+ 4895, 11097, 6435, 4221, 760,
+ 4895, 11097, 8153, 6434,
+ 4895, 11097, 8153, 6435, 4221, 760,
+ 4895, 11097, 10531, 6434,
+ 4895, 11765, 6434,
+ 4895, 11765, 6435, 4221, 760,
+ 4895, 11765, 8153, 6434,
+ 4895, 11765, 8153, 6435, 4221, 760,
+ 4895, 11765, 10531, 6434,
+ 4923, 721, 8197, 5758,
+ 4923, 5758,
+ 4923, 6121, 8759, 721, 4923, 721, 8197, 5758,
+ 4923, 6121, 8759, 5758,
+ 4931, 4926,
+ 5003, 5758,
+ 5006,
+ 5017, 11098,
+ 5017, 12472,
+ 5050,
+ 5131, 5392,
+ 5385, 826,
+ 5385, 8037, 6505, 5830,
+ 5385, 8037, 6622,
+ 5385, 8037, 9898,
+ 5385, 8037, 13233, 9898,
+ 5385, 8762,
+ 5385, 10578,
+ 5395, 8008,
+ 5401, 11891, 4926,
+ 5409, 5758,
+ 5445, 5758,
+ 5445, 5759, 275, 4849, 4389, 8056,
+ 5445, 5759, 275, 7443, 4389, 8056,
+ 5445, 5759, 275, 10642,
+ 5445, 5759, 6121, 1045, 6490,
+ 5445, 5759, 6121, 6505, 10642,
+ 5445, 5759, 6121, 7593, 8057, 6376,
+ 5445, 5759, 6121, 7709, 6376,
+ 5445, 5759, 6121, 7709, 6490,
+ 5445, 5759, 6121, 11261, 2778,
+ 5445, 5759, 6121, 11449, 7909, 6376,
+ 5445, 5759, 6377, 8167, 5758,
+ 5545, 5758,
+ 5551, 275, 6741, 568,
+ 5551, 6376,
+ 5551, 6741, 568,
+ 5551, 7382,
+ 5551, 10374,
+ 5769, 6104,
+ 5781, 8306,
+ 5831, 429, 6656,
+ 5831, 721, 9964,
+ 5831, 8166,
+ 5831, 10374,
+ 5887, 6704,
+ 5909, 6689, 2170,
+ 5909, 6689, 2540,
+ 5909, 6689, 2778,
+ 5909, 6689, 4200,
+ 5909, 6689, 4214,
+ 5909, 6689, 5190,
+ 5909, 6689, 6260,
+ 5909, 6689, 6722,
+ 5909, 6689, 7508,
+ 5909, 6689, 7694,
+ 5909, 9971, 8775, 3702,
+ 5909, 10759, 29, 722,
+ 5909, 10759, 109, 7968,
+ 5909, 10759, 151, 988,
+ 5909, 10759, 151, 6562,
+ 5909, 10759, 209, 196,
+ 5909, 10759, 209, 1142,
+ 5909, 10759, 247, 1386,
+ 5909, 10759, 247, 8518,
+ 5909, 10759, 323, 1582,
+ 5909, 10759, 351, 4878,
+ 5909, 10759, 351, 6582,
+ 5909, 10759, 354,
+ 5909, 10759, 381, 364,
+ 5909, 10759, 413, 416,
+ 5909, 10759, 413, 2018,
+ 5909, 10759, 481, 2234,
+ 5909, 10759, 517, 2448,
+ 5909, 10759, 520,
+ 5909, 10759, 537, 536,
+ 5909, 10759, 537, 2580,
+ 5909, 10759, 537, 5614,
+ 5909, 10759, 537, 5630,
+ 5909, 10759, 569, 2650,
+ 5909, 10759, 569, 7344,
+ 5909, 10759, 633, 6098,
+ 5909, 10759, 661, 3022,
+ 5909, 10759, 661, 6212,
+ 5909, 10759, 891, 3880,
+ 5909, 10759, 891, 3908,
+ 5909, 10759, 891, 6566,
+ 5909, 10759, 891, 6576,
+ 5909, 10759, 1619, 4738,
+ 5909, 10759, 1619, 4750,
+ 5909, 10759, 1619, 7050,
+ 5909, 10759, 1619, 7052,
+ 5909, 10759, 1619, 9618,
+ 5909, 10759, 1859, 170,
+ 5909, 10759, 1859, 2684,
+ 5909, 10759, 1859, 2730,
+ 5909, 10759, 1859, 9938,
+ 5909, 10759, 1859, 10228,
+ 5909, 10759, 2039, 2040,
+ 5909, 10759, 2219, 5412,
+ 5909, 10759, 2219, 7366,
+ 5909, 10759, 2219, 9652,
+ 5909, 10759, 2685, 5912,
+ 5909, 10759, 2685, 7690,
+ 5909, 10759, 2685, 7696,
+ 5909, 10759, 2685, 8812,
+ 5909, 10759, 2685, 9592,
+ 5909, 10759, 2685, 11694,
+ 5909, 10759, 5637, 0,
+ 5909, 10759, 5637, 8,
+ 5909, 10759, 5637, 16,
+ 5909, 10759, 5637, 28,
+ 5909, 10759, 5637, 40,
+ 5909, 10759, 5637, 58,
+ 5909, 10759, 5637, 66,
+ 5909, 10759, 5637, 73, 9446,
+ 5909, 10759, 5637, 73, 10312,
+ 5909, 10759, 5637, 78,
+ 5909, 10759, 5637, 266,
+ 5909, 10759, 5637, 590,
+ 5909, 10759, 5637, 606,
+ 5909, 10759, 5637, 2804,
+ 5909, 10759, 8358,
+ 5909, 10759, 9290,
+ 5909, 10759, 9590,
+ 5909, 10759, 10314,
+ 5909, 10759, 10358,
+ 5909, 10759, 10684,
+ 5909, 10759, 11108,
+ 5909, 10759, 11152,
+ 5909, 10759, 11412,
+ 5909, 10759, 12072,
+ 5909, 10759, 12362,
+ 5927, 7608,
+ 5946,
+ 5972,
+ 6051, 8774,
+ 6081, 5017, 11098,
+ 6081, 5017, 12472,
+ 6105, 3992,
+ 6105, 6435, 10441, 10015, 4848,
+ 6105, 6435, 10441, 10015, 7442,
+ 6107, 1809, 4876,
+ 6107, 3992,
+ 6107, 4876,
+ 6107, 10388,
+ 6113, 8781, 6622,
+ 6129, 8330,
+ 6261, 7825, 7608,
+ 6261, 7825, 8330,
+ 6261, 7825, 10363, 7608,
+ 6261, 7825, 11698,
+ 6379, 6408,
+ 6379, 7908,
+ 6408,
+ 6409, 6121, 37, 8318,
+ 6409, 6121, 10666,
+ 6428,
+ 6435, 10441, 10959, 5919, 9131, 11096,
+ 6435, 10441, 10959, 5919, 9131, 11764,
+ 6435, 10441, 11765, 5919, 9131, 9810,
+ 6435, 10441, 11765, 5919, 9131, 10958,
+ 6505, 2048,
+ 6505, 2587, 6121, 5528,
+ 6505, 3949, 5842,
+ 6505, 4202,
+ 6505, 4215, 9601, 5830,
+ 6505, 4849, 10441, 6992,
+ 6505, 5013, 8406,
+ 6505, 5830,
+ 6505, 6081, 7593, 8744,
+ 6505, 6571, 4760,
+ 6505, 6571, 5404,
+ 6505, 6571, 5564,
+ 6505, 6571, 7410,
+ 6505, 6571, 7996,
+ 6505, 6571, 8368,
+ 6505, 6907, 5842,
+ 6505, 7085, 8056,
+ 6505, 7085, 8744,
+ 6505, 7121, 4849, 10642,
+ 6505, 7121, 7443, 10642,
+ 6505, 7443, 10441, 6992,
+ 6505, 7547, 7370,
+ 6505, 7593, 5830,
+ 6505, 7593, 8744,
+ 6505, 7593, 9158,
+ 6505, 7593, 9438,
+ 6505, 7611, 5842,
+ 6505, 7773, 4849, 10642,
+ 6505, 7773, 7443, 10642,
+ 6505, 8006,
+ 6505, 8037, 7821, 5830,
+ 6505, 8056,
+ 6505, 8057, 6121, 2779, 7821, 4112,
+ 6505, 8057, 6121, 4117, 6434,
+ 6505, 8057, 6121, 7821, 1045, 7442,
+ 6505, 8463, 7593, 8744,
+ 6505, 8463, 8744,
+ 6505, 8463, 9158,
+ 6505, 8463, 9438,
+ 6505, 8744,
+ 6505, 9158,
+ 6505, 9159, 5842,
+ 6505, 9159, 6121, 4117, 6434,
+ 6505, 9159, 7173, 7821, 46,
+ 6505, 9338,
+ 6505, 9438,
+ 6505, 9711, 4178,
+ 6505, 10143, 1860,
+ 6505, 10143, 4760,
+ 6505, 10194,
+ 6505, 10420,
+ 6505, 10502,
+ 6505, 10677, 9264,
+ 6505, 10677, 11202,
+ 6505, 11036,
+ 6505, 11097, 8022,
+ 6505, 11202,
+ 6505, 11354,
+ 6505, 11387, 11205, 8774,
+ 6505, 11649, 9264,
+ 6505, 11765, 6434,
+ 6505, 11765, 8022,
+ 6505, 11765, 10716,
+ 6505, 12383, 7593, 10642,
+ 6505, 12383, 10642,
+ 6505, 12931, 7593, 10642,
+ 6505, 12931, 10642,
+ 6505, 12967, 7593, 10642,
+ 6505, 12967, 9602,
+ 6505, 12967, 10642,
+ 6505, 12984,
+ 6505, 13067, 7593, 10642,
+ 6505, 13067, 9602,
+ 6505, 13067, 10420,
+ 6505, 13067, 10642,
+ 6509, 8774,
+ 6516,
+ 6531, 7803, 5759, 16,
+ 6531, 7803, 5759, 40,
+ 6531, 8405, 0,
+ 6531, 8405, 16,
+ 6531, 8405, 40,
+ 6531, 8405, 100,
+ 6531, 8405, 138,
+ 6531, 8405, 216,
+ 6531, 8405, 236,
+ 6531, 8405, 306,
+ 6531, 8405, 332,
+ 6531, 8405, 364,
+ 6531, 8405, 392,
+ 6531, 8405, 462,
+ 6531, 8405, 510,
+ 6531, 8405, 524,
+ 6531, 8405, 556,
+ 6531, 8405, 622,
+ 6531, 8405, 652,
+ 6531, 8405, 2030,
+ 6542,
+ 6543, 11061, 7382,
+ 6546,
+ 6560,
+ 6569, 4926,
+ 6597, 8677, 8774,
+ 6603, 600,
+ 6606,
+ 6610,
+ 6611, 5758,
+ 6611, 8166,
+ 6614,
+ 6616,
+ 6623, 429, 10308,
+ 6623, 429, 11068,
+ 6627, 9051, 10982,
+ 6627, 9437, 444,
+ 6627, 9437, 720,
+ 6643, 8774,
+ 6675, 6741, 568,
+ 6689, 2170,
+ 6689, 2171, 4223, 5836,
+ 6689, 2540,
+ 6689, 2541, 4223, 5836,
+ 6689, 2778,
+ 6689, 2779, 4223, 5836,
+ 6689, 4200,
+ 6689, 4201, 4223, 5836,
+ 6689, 4214,
+ 6689, 4215, 4223, 5836,
+ 6689, 5190,
+ 6689, 5191, 4223, 5836,
+ 6689, 6260,
+ 6689, 6722,
+ 6689, 6723, 4223, 5836,
+ 6689, 7508,
+ 6689, 7509, 4223, 5836,
+ 6689, 7694,
+ 6689, 7695, 4223, 5836,
+ 6695, 4926,
+ 6716,
+ 6717, 8272,
+ 6723, 8737, 9898,
+ 6723, 9601, 6505, 5830,
+ 6723, 9601, 10433, 5830,
+ 6723, 9601, 12141, 6505, 5830,
+ 6723, 10425, 10385, 6505, 10194,
+ 6723, 13233, 11187, 9898,
+ 6725, 8774,
+ 6731, 2510,
+ 6731, 2511, 6121, 4849, 6435, 6376,
+ 6731, 2511, 6121, 7443, 6435, 6376,
+ 6731, 2511, 6121, 7593, 8057, 6376,
+ 6731, 2511, 6121, 9546,
+ 6735, 8774,
+ 6741, 569, 115, 11472,
+ 6741, 569, 445, 10452,
+ 6741, 569, 445, 10574,
+ 6741, 569, 445, 11098,
+ 6741, 569, 445, 12472,
+ 6741, 721, 10411, 568,
+ 6745, 569, 2681, 4848,
+ 6745, 569, 2681, 7442,
+ 6763, 9956,
+ 6771, 8774,
+ 6791, 9615, 5012,
+ 6812,
+ 6857, 8774,
+ 6875, 7908,
+ 6879, 477, 8774,
+ 6879, 727, 8798,
+ 6879, 1583, 8774,
+ 6879, 2171, 4389, 5758,
+ 6879, 2171, 4389, 5759, 10707, 4212,
+ 6879, 2217, 8774,
+ 6879, 2413, 6121, 8759, 8774,
+ 6879, 2413, 8774,
+ 6879, 2779, 7307, 5758,
+ 6879, 2779, 8819, 5758,
+ 6879, 3775, 8774,
+ 6879, 4201, 7307, 5758,
+ 6879, 4215, 7307, 5758,
+ 6879, 5375, 5758,
+ 6879, 5388,
+ 6879, 6197, 5758,
+ 6879, 6261, 5758,
+ 6879, 6654,
+ 6879, 6655, 721, 5388,
+ 6879, 6655, 721, 7782,
+ 6879, 6655, 721, 12120,
+ 6879, 7023, 8774,
+ 6879, 7111, 5758,
+ 6879, 7121, 9513, 5758,
+ 6879, 7398,
+ 6879, 7399, 721, 5388,
+ 6879, 7399, 721, 7782,
+ 6879, 7399, 721, 12120,
+ 6879, 7593, 8151, 8427, 7569, 8774,
+ 6879, 7593, 8405, 384,
+ 6879, 7593, 8405, 416,
+ 6879, 7593, 8405, 476,
+ 6879, 7593, 8405, 644,
+ 6879, 7593, 8405, 888,
+ 6879, 7593, 8405, 1128,
+ 6879, 7593, 8405, 1129, 6121, 5388,
+ 6879, 7593, 8405, 1129, 6121, 5389, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 6654,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 12120,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 6655, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 7398,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 12120,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 7399, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 7724,
+ 6879, 7593, 8405, 1129, 6121, 7782,
+ 6879, 7593, 8405, 1129, 6121, 7783, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 12120,
+ 6879, 7593, 8405, 1129, 6121, 12121, 721, 13036,
+ 6879, 7593, 8405, 1129, 6121, 13036,
+ 6879, 7593, 8405, 2216,
+ 6879, 7593, 8405, 2250,
+ 6879, 7593, 8405, 2412,
+ 6879, 7593, 8405, 2413, 6121, 6654,
+ 6879, 7593, 8405, 2413, 6121, 7398,
+ 6879, 7593, 8405, 2490,
+ 6879, 7593, 8405, 2522,
+ 6879, 7593, 8405, 2658,
+ 6879, 7593, 8405, 3774,
+ 6879, 7593, 8405, 4408,
+ 6879, 7593, 8405, 4614,
+ 6879, 7593, 8405, 4615, 6121, 5388,
+ 6879, 7593, 8405, 4615, 6121, 6654,
+ 6879, 7593, 8405, 4615, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 4615, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 4615, 6121, 6655, 721, 12120,
+ 6879, 7593, 8405, 4615, 6121, 7398,
+ 6879, 7593, 8405, 4615, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 4615, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 4615, 6121, 7399, 721, 12120,
+ 6879, 7593, 8405, 4615, 6121, 7724,
+ 6879, 7593, 8405, 4615, 6121, 7782,
+ 6879, 7593, 8405, 4615, 6121, 8432,
+ 6879, 7593, 8405, 4615, 6121, 8924,
+ 6879, 7593, 8405, 4615, 6121, 10808,
+ 6879, 7593, 8405, 4615, 6121, 10809, 721, 5388,
+ 6879, 7593, 8405, 4615, 6121, 10809, 721, 7724,
+ 6879, 7593, 8405, 4615, 6121, 10809, 721, 7782,
+ 6879, 7593, 8405, 4615, 6121, 10809, 721, 12120,
+ 6879, 7593, 8405, 4615, 6121, 12120,
+ 6879, 7593, 8405, 6262,
+ 6879, 7593, 8405, 6406,
+ 6879, 7593, 8405, 6407, 6121, 5388,
+ 6879, 7593, 8405, 6407, 6121, 5389, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 6654,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 12120,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 6655, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 7398,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 12120,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 7399, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 7724,
+ 6879, 7593, 8405, 6407, 6121, 7782,
+ 6879, 7593, 8405, 6407, 6121, 7783, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 8432,
+ 6879, 7593, 8405, 6407, 6121, 8924,
+ 6879, 7593, 8405, 6407, 6121, 12120,
+ 6879, 7593, 8405, 6407, 6121, 12121, 721, 13036,
+ 6879, 7593, 8405, 6407, 6121, 13036,
+ 6879, 7593, 8405, 6674,
+ 6879, 7593, 8405, 6789, 7568,
+ 6879, 7593, 8405, 6824,
+ 6879, 7593, 8405, 7022,
+ 6879, 7593, 8405, 7062,
+ 6879, 7593, 8405, 7080,
+ 6879, 7593, 8405, 7316,
+ 6879, 7593, 8405, 7317, 6121, 5388,
+ 6879, 7593, 8405, 7317, 6121, 5389, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 6654,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 12120,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 6655, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 7398,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 5389, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 7783, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 12120,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 12121, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 7399, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 7724,
+ 6879, 7593, 8405, 7317, 6121, 7782,
+ 6879, 7593, 8405, 7317, 6121, 7783, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 12120,
+ 6879, 7593, 8405, 7317, 6121, 12121, 721, 13036,
+ 6879, 7593, 8405, 7317, 6121, 13036,
+ 6879, 7593, 8405, 7484,
+ 6879, 7593, 8405, 7568,
+ 6879, 7593, 8405, 7682,
+ 6879, 7593, 8405, 8748,
+ 6879, 7593, 8405, 9007, 7062,
+ 6879, 7593, 8405, 9007, 7484,
+ 6879, 7593, 8405, 9162,
+ 6879, 7593, 8405, 9270,
+ 6879, 7593, 8405, 9271, 6121, 5388,
+ 6879, 7593, 8405, 9271, 6121, 6654,
+ 6879, 7593, 8405, 9271, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 9271, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 9271, 6121, 7398,
+ 6879, 7593, 8405, 9271, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 9271, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 9271, 6121, 7724,
+ 6879, 7593, 8405, 9271, 6121, 7782,
+ 6879, 7593, 8405, 9530,
+ 6879, 7593, 8405, 9531, 6121, 5388,
+ 6879, 7593, 8405, 9531, 6121, 6654,
+ 6879, 7593, 8405, 9531, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 9531, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 9531, 6121, 7398,
+ 6879, 7593, 8405, 9531, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 9531, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 9531, 6121, 7724,
+ 6879, 7593, 8405, 9531, 6121, 7782,
+ 6879, 7593, 8405, 9808,
+ 6879, 7593, 8405, 9809, 6121, 5388,
+ 6879, 7593, 8405, 9809, 6121, 6654,
+ 6879, 7593, 8405, 9809, 6121, 6655, 721, 5388,
+ 6879, 7593, 8405, 9809, 6121, 6655, 721, 7782,
+ 6879, 7593, 8405, 9809, 6121, 6655, 721, 12120,
+ 6879, 7593, 8405, 9809, 6121, 7398,
+ 6879, 7593, 8405, 9809, 6121, 7399, 721, 5388,
+ 6879, 7593, 8405, 9809, 6121, 7399, 721, 7782,
+ 6879, 7593, 8405, 9809, 6121, 7399, 721, 12120,
+ 6879, 7593, 8405, 9809, 6121, 7724,
+ 6879, 7593, 8405, 9809, 6121, 7782,
+ 6879, 7593, 8405, 9809, 6121, 8432,
+ 6879, 7593, 8405, 9809, 6121, 8924,
+ 6879, 7593, 8405, 9809, 6121, 10808,
+ 6879, 7593, 8405, 9809, 6121, 10809, 721, 5388,
+ 6879, 7593, 8405, 9809, 6121, 10809, 721, 7724,
+ 6879, 7593, 8405, 9809, 6121, 10809, 721, 7782,
+ 6879, 7593, 8405, 9809, 6121, 10809, 721, 12120,
+ 6879, 7593, 8405, 9809, 6121, 12120,
+ 6879, 7593, 8405, 11709, 9162,
+ 6879, 7593, 10489, 8151, 8427, 7569, 8774,
+ 6879, 7593, 10489, 8427, 7569, 8774,
+ 6879, 7683, 8774,
+ 6879, 7695, 7307, 5758,
+ 6879, 7695, 10467, 5758,
+ 6879, 7724,
+ 6879, 7782,
+ 6879, 7801, 10365, 10586,
+ 6879, 7801, 10365, 10588,
+ 6879, 7801, 10365, 10590,
+ 6879, 7801, 10365, 10592,
+ 6879, 7801, 10365, 10594,
+ 6879, 7801, 10365, 10596,
+ 6879, 7801, 10365, 10598,
+ 6879, 7801, 10365, 10600,
+ 6879, 7801, 10365, 10602,
+ 6879, 7801, 10365, 11270,
+ 6879, 7801, 10365, 11272,
+ 6879, 7801, 10365, 11274,
+ 6879, 7801, 10365, 11276,
+ 6879, 7801, 10365, 11278,
+ 6879, 7801, 10365, 11280,
+ 6879, 7801, 10365, 11282,
+ 6879, 7801, 10365, 11284,
+ 6879, 7801, 10365, 11286,
+ 6879, 7801, 10365, 11288,
+ 6879, 7801, 10365, 11290,
+ 6879, 7801, 10365, 11292,
+ 6879, 7801, 10365, 11294,
+ 6879, 7801, 10365, 11296,
+ 6879, 7801, 10365, 11298,
+ 6879, 7801, 10365, 11334,
+ 6879, 7801, 10365, 11336,
+ 6879, 7801, 10365, 11338,
+ 6879, 7801, 10365, 11340,
+ 6879, 7801, 10365, 11342,
+ 6879, 7941, 5758,
+ 6879, 7949, 5758,
+ 6879, 8269, 5758,
+ 6879, 8405, 3086,
+ 6879, 8405, 7062,
+ 6879, 8405, 7484,
+ 6879, 8405, 7593, 9063, 476,
+ 6879, 8405, 7593, 9063, 2250,
+ 6879, 8405, 7593, 9063, 2412,
+ 6879, 8405, 7593, 9063, 6824,
+ 6879, 8405, 7593, 9063, 7080,
+ 6879, 8405, 8748,
+ 6879, 8405, 9007, 7062,
+ 6879, 8405, 9162,
+ 6879, 8427, 7569, 8774,
+ 6879, 8427, 9271, 8774,
+ 6879, 8555, 5758,
+ 6879, 8787, 5758,
+ 6879, 8941, 5758,
+ 6879, 9063, 1583, 8774,
+ 6879, 9063, 7683, 8774,
+ 6879, 9063, 8151, 8427, 7569, 8774,
+ 6879, 9063, 8405, 384,
+ 6879, 9063, 8405, 416,
+ 6879, 9063, 8405, 476,
+ 6879, 9063, 8405, 644,
+ 6879, 9063, 8405, 888,
+ 6879, 9063, 8405, 1128,
+ 6879, 9063, 8405, 1129, 6121, 5388,
+ 6879, 9063, 8405, 1129, 6121, 6654,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 12120,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 6655, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 7398,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 12120,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 7399, 721, 13064,
+ 6879, 9063, 8405, 1129, 6121, 7724,
+ 6879, 9063, 8405, 1129, 6121, 7782,
+ 6879, 9063, 8405, 1129, 6121, 13064,
+ 6879, 9063, 8405, 2216,
+ 6879, 9063, 8405, 2250,
+ 6879, 9063, 8405, 2412,
+ 6879, 9063, 8405, 2413, 6121, 6654,
+ 6879, 9063, 8405, 2490,
+ 6879, 9063, 8405, 2522,
+ 6879, 9063, 8405, 2658,
+ 6879, 9063, 8405, 3774,
+ 6879, 9063, 8405, 4408,
+ 6879, 9063, 8405, 4614,
+ 6879, 9063, 8405, 4615, 6121, 5388,
+ 6879, 9063, 8405, 4615, 6121, 6654,
+ 6879, 9063, 8405, 4615, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 4615, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 4615, 6121, 6655, 721, 12120,
+ 6879, 9063, 8405, 4615, 6121, 7398,
+ 6879, 9063, 8405, 4615, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 4615, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 4615, 6121, 7399, 721, 12120,
+ 6879, 9063, 8405, 4615, 6121, 7724,
+ 6879, 9063, 8405, 4615, 6121, 7782,
+ 6879, 9063, 8405, 4615, 6121, 8432,
+ 6879, 9063, 8405, 4615, 6121, 8924,
+ 6879, 9063, 8405, 4615, 6121, 10808,
+ 6879, 9063, 8405, 6262,
+ 6879, 9063, 8405, 6406,
+ 6879, 9063, 8405, 6407, 6121, 5388,
+ 6879, 9063, 8405, 6407, 6121, 6654,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 12120,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 6655, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 7398,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 12120,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 7399, 721, 13064,
+ 6879, 9063, 8405, 6407, 6121, 7724,
+ 6879, 9063, 8405, 6407, 6121, 7782,
+ 6879, 9063, 8405, 6407, 6121, 8432,
+ 6879, 9063, 8405, 6407, 6121, 8924,
+ 6879, 9063, 8405, 6407, 6121, 13064,
+ 6879, 9063, 8405, 6674,
+ 6879, 9063, 8405, 6824,
+ 6879, 9063, 8405, 7022,
+ 6879, 9063, 8405, 7080,
+ 6879, 9063, 8405, 7316,
+ 6879, 9063, 8405, 7317, 6121, 5388,
+ 6879, 9063, 8405, 7317, 6121, 6654,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 12120,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 6655, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 7398,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 5389, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 7783, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 12120,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 12121, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 7399, 721, 13064,
+ 6879, 9063, 8405, 7317, 6121, 7724,
+ 6879, 9063, 8405, 7317, 6121, 7782,
+ 6879, 9063, 8405, 7317, 6121, 13064,
+ 6879, 9063, 8405, 7568,
+ 6879, 9063, 8405, 7682,
+ 6879, 9063, 8405, 9007, 7484,
+ 6879, 9063, 8405, 9270,
+ 6879, 9063, 8405, 9271, 6121, 5388,
+ 6879, 9063, 8405, 9271, 6121, 6654,
+ 6879, 9063, 8405, 9271, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 9271, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 9271, 6121, 7398,
+ 6879, 9063, 8405, 9271, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 9271, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 9271, 6121, 7724,
+ 6879, 9063, 8405, 9271, 6121, 7782,
+ 6879, 9063, 8405, 9530,
+ 6879, 9063, 8405, 9531, 6121, 5388,
+ 6879, 9063, 8405, 9531, 6121, 6654,
+ 6879, 9063, 8405, 9531, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 9531, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 9531, 6121, 7398,
+ 6879, 9063, 8405, 9531, 6121, 7399, 721, 5388,
+ 6879, 9063, 8405, 9531, 6121, 7399, 721, 7782,
+ 6879, 9063, 8405, 9531, 6121, 7724,
+ 6879, 9063, 8405, 9531, 6121, 7782,
+ 6879, 9063, 8405, 9808,
+ 6879, 9063, 8405, 9809, 6121, 5388,
+ 6879, 9063, 8405, 9809, 6121, 6654,
+ 6879, 9063, 8405, 9809, 6121, 6655, 721, 5388,
+ 6879, 9063, 8405, 9809, 6121, 6655, 721, 7782,
+ 6879, 9063, 8405, 9809, 6121, 6655, 721, 12120,
+ 6879, 9063, 8405, 9809, 6121, 7724,
+ 6879, 9063, 8405, 9809, 6121, 7782,
+ 6879, 9063, 8405, 9809, 6121, 8432,
+ 6879, 9063, 8405, 9809, 6121, 8924,
+ 6879, 9063, 8405, 9809, 6121, 10808,
+ 6879, 9063, 8405, 11709, 9162,
+ 6879, 9063, 8427, 7569, 8774,
+ 6879, 9063, 10489, 8151, 8427, 7569, 8774,
+ 6879, 9063, 10489, 8427, 7569, 8774,
+ 6879, 9245, 5758,
+ 6879, 9412,
+ 6879, 9419, 3717, 5758,
+ 6879, 9483, 8396,
+ 6879, 9513, 5758,
+ 6879, 9809, 6121, 4531, 8774,
+ 6879, 9809, 6121, 6379, 721, 4531, 8774,
+ 6879, 9809, 6121, 10805, 721, 4531, 8774,
+ 6879, 10331, 5758,
+ 6879, 10469, 4926,
+ 6879, 10489, 8427, 9271, 8774,
+ 6879, 10651, 3717, 5758,
+ 6879, 10809, 721, 5388,
+ 6879, 10809, 721, 7782,
+ 6879, 10809, 721, 12120,
+ 6879, 10809, 7724,
+ 6879, 11261, 7593, 8405, 888,
+ 6879, 11261, 7593, 8405, 2216,
+ 6879, 11261, 7593, 8405, 2412,
+ 6879, 11261, 7593, 8405, 3774,
+ 6879, 11261, 7593, 8405, 6824,
+ 6879, 11405, 6443, 2171, 4388,
+ 6879, 11405, 6443, 2171, 9244,
+ 6879, 11405, 6443, 2171, 9345, 9736,
+ 6879, 11405, 6443, 2171, 9345, 9764,
+ 6879, 11405, 6443, 2171, 9614,
+ 6879, 11405, 6443, 2171, 10625, 9736,
+ 6879, 11405, 6443, 2171, 10625, 9764,
+ 6879, 11405, 6443, 2671, 5010,
+ 6879, 11405, 6443, 2671, 9736,
+ 6879, 11405, 6443, 2671, 9764,
+ 6879, 11405, 6443, 2671, 10625, 9736,
+ 6879, 11405, 6443, 4200,
+ 6879, 11405, 6443, 4201, 9344,
+ 6879, 11405, 6443, 4201, 9345, 9736,
+ 6879, 11405, 6443, 4201, 9345, 9764,
+ 6879, 11405, 6443, 4201, 9736,
+ 6879, 11405, 6443, 4201, 9764,
+ 6879, 11405, 6443, 4201, 10624,
+ 6879, 11405, 6443, 4201, 10625, 9764,
+ 6879, 11405, 6443, 6784,
+ 6879, 11405, 6443, 6785, 9736,
+ 6879, 11405, 6443, 6785, 9764,
+ 6879, 11405, 6443, 6785, 10624,
+ 6879, 11405, 6443, 6785, 10625, 9736,
+ 6879, 11405, 8505, 4201, 9344,
+ 6879, 11405, 9153, 4201, 5010,
+ 6879, 11405, 9337, 2171, 10436,
+ 6879, 11405, 9975, 2779, 10138,
+ 6879, 11405, 10549, 6785, 5010,
+ 6879, 11405, 10621, 2170,
+ 6879, 11405, 10621, 2171, 9344,
+ 6879, 11405, 10621, 2171, 10624,
+ 6879, 11405, 10621, 2670,
+ 6879, 11405, 10621, 2778,
+ 6879, 11405, 10621, 4201, 9344,
+ 6879, 11405, 10621, 4201, 10624,
+ 6879, 11405, 10621, 6784,
+ 6879, 11405, 10621, 7695, 9344,
+ 6879, 11405, 10621, 8820,
+ 6879, 11405, 10755, 4201, 9344,
+ 6879, 11405, 11117, 2670,
+ 6879, 11405, 11617, 2778,
+ 6879, 11405, 11617, 2779, 10138,
+ 6879, 11405, 11617, 4201, 9344,
+ 6879, 11405, 11645, 2170,
+ 6879, 11405, 11645, 2670,
+ 6879, 11405, 11645, 6784,
+ 6879, 11405, 11865, 2670,
+ 6879, 11405, 11865, 2671, 10707, 4212,
+ 6879, 11405, 11865, 4200,
+ 6879, 11405, 11865, 4201, 9344,
+ 6879, 11405, 11865, 6784,
+ 6879, 11405, 11865, 6785, 10707, 4212,
+ 6879, 12120,
+ 6879, 12489, 10365, 10586,
+ 6879, 12489, 10365, 10588,
+ 6879, 12489, 10365, 10592,
+ 6879, 12489, 10365, 10594,
+ 6879, 12489, 10365, 10598,
+ 6879, 12489, 10365, 10600,
+ 6879, 12489, 10365, 11272,
+ 6879, 12489, 10365, 11274,
+ 6879, 12489, 10365, 11276,
+ 6879, 12489, 10365, 11278,
+ 6879, 12489, 10365, 11284,
+ 6879, 12489, 10365, 11286,
+ 6879, 12489, 10365, 11288,
+ 6879, 12489, 10365, 11296,
+ 6879, 12489, 10365, 11298,
+ 6879, 12489, 10365, 11300,
+ 6879, 12489, 10365, 11302,
+ 6879, 12489, 10365, 11304,
+ 6879, 12489, 10365, 11306,
+ 6879, 12489, 10365, 11308,
+ 6879, 12489, 10365, 11310,
+ 6879, 12489, 10365, 11312,
+ 6879, 12489, 10365, 11314,
+ 6879, 12489, 10365, 11316,
+ 6879, 12489, 10365, 11318,
+ 6879, 12489, 10365, 11320,
+ 6879, 12489, 10365, 11322,
+ 6879, 12489, 10365, 11324,
+ 6879, 12489, 10365, 11326,
+ 6879, 12489, 10365, 11328,
+ 6879, 12489, 10365, 11330,
+ 6879, 12489, 10365, 11332,
+ 6879, 12489, 10365, 11334,
+ 6879, 12489, 10365, 11336,
+ 6879, 12489, 10365, 11338,
+ 6879, 12489, 10365, 11340,
+ 6879, 12489, 10365, 11342,
+ 6879, 13036,
+ 6879, 13064,
+ 6909, 4215, 13047, 9898,
+ 6909, 5385, 8037, 6622,
+ 6909, 6505, 6906,
+ 6909, 6505, 8083, 9811, 721, 11765, 6434,
+ 6909, 6505, 8083, 10959, 721, 11765, 6434,
+ 6909, 6569, 4926,
+ 6909, 6723, 9601, 12141, 6505, 5830,
+ 6909, 6723, 13233, 11187, 9898,
+ 6909, 6879, 6622,
+ 6909, 6907, 12017, 4927, 10380,
+ 6909, 7121, 13069, 7821, 11765, 6434,
+ 6909, 7271, 4153, 6434,
+ 6909, 7607, 4153, 6434,
+ 6909, 7773, 13069, 7821, 11765, 6434,
+ 6909, 7971, 46,
+ 6909, 8097, 13235, 11765, 6434,
+ 6909, 8153, 6617, 11195, 4927, 10380,
+ 6909, 8153, 8869, 6617, 11195, 4927, 10380,
+ 6909, 8717, 6617, 11195, 4927, 10380,
+ 6909, 8717, 8869, 6617, 11195, 4927, 10380,
+ 6909, 9085, 11242,
+ 6909, 9722,
+ 6909, 9898,
+ 6909, 10385, 6505, 5830,
+ 6909, 10677, 760,
+ 6909, 11765, 6434,
+ 6909, 12017, 4927, 10380,
+ 6909, 12387, 11765, 6434,
+ 6909, 12539, 11765, 6434,
+ 6909, 12895, 11765, 6434,
+ 6909, 12967, 6409, 9051, 10380,
+ 6909, 12967, 6409, 11195, 4927, 10380,
+ 6909, 13061, 46,
+ 6909, 13067, 6409, 9051, 10380,
+ 6909, 13067, 6409, 11195, 4927, 10380,
+ 6909, 13191, 7271, 4153, 6434,
+ 6909, 13191, 7607, 4153, 6434,
+ 6909, 13191, 11765, 6434,
+ 6909, 13199, 6505, 11765, 6434,
+ 6909, 13233, 9898,
+ 6909, 13233, 10433, 9898,
+ 6909, 13235, 11765, 6434,
+ 6909, 13351, 11765, 6434,
+ 6954,
+ 6989, 428,
+ 6989, 429, 445, 12903, 6741, 568,
+ 7031, 341, 5759, 940,
+ 7031, 341, 5759, 5740,
+ 7031, 341, 5965, 6540,
+ 7031, 341, 5965, 6541, 8596,
+ 7031, 341, 5965, 8596,
+ 7031, 341, 6689, 2170,
+ 7031, 341, 6689, 2540,
+ 7031, 341, 6689, 2778,
+ 7031, 341, 6689, 4200,
+ 7031, 341, 6689, 4214,
+ 7031, 341, 6689, 5190,
+ 7031, 341, 6689, 6260,
+ 7031, 341, 6689, 6722,
+ 7031, 341, 6689, 7508,
+ 7031, 341, 6689, 7694,
+ 7031, 341, 7803, 8,
+ 7031, 341, 7803, 28,
+ 7031, 341, 7803, 40,
+ 7031, 341, 7803, 162,
+ 7031, 341, 7803, 590,
+ 7031, 341, 8405, 0,
+ 7031, 341, 8405, 16,
+ 7031, 341, 8405, 100,
+ 7031, 341, 8405, 116,
+ 7031, 341, 8405, 138,
+ 7031, 341, 8405, 216,
+ 7031, 341, 8405, 236,
+ 7031, 341, 8405, 306,
+ 7031, 341, 8405, 332,
+ 7031, 341, 8405, 364,
+ 7031, 341, 8405, 392,
+ 7031, 341, 8405, 426,
+ 7031, 341, 8405, 440,
+ 7031, 341, 8405, 462,
+ 7031, 341, 8405, 510,
+ 7031, 341, 8405, 524,
+ 7031, 341, 8405, 556,
+ 7031, 341, 8405, 610,
+ 7031, 341, 8405, 622,
+ 7031, 341, 8405, 652,
+ 7031, 341, 8405, 670,
+ 7031, 341, 8405, 1434,
+ 7031, 341, 8405, 1612,
+ 7031, 341, 8405, 2030,
+ 7031, 341, 8405, 2126,
+ 7031, 341, 8405, 2212,
+ 7031, 341, 8405, 2516,
+ 7031, 341, 8405, 2678,
+ 7049, 5759, 1763, 2722,
+ 7049, 5759, 4740,
+ 7049, 5759, 6388,
+ 7049, 5759, 6608,
+ 7049, 5759, 7450,
+ 7049, 5759, 7976,
+ 7049, 5759, 7992,
+ 7049, 5759, 8025, 2227, 4794,
+ 7049, 5759, 8583, 5014,
+ 7049, 5759, 8663, 8666,
+ 7049, 5759, 8918,
+ 7049, 5759, 9382,
+ 7049, 5759, 9408,
+ 7049, 5759, 9506,
+ 7049, 5759, 9624,
+ 7049, 5759, 9794,
+ 7049, 5759, 9902,
+ 7049, 5759, 11438,
+ 7049, 5759, 11440,
+ 7049, 5759, 12088,
+ 7049, 5759, 12366,
+ 7049, 5759, 12906,
+ 7049, 5759, 13038,
+ 7049, 6689, 2170,
+ 7049, 6689, 2540,
+ 7049, 6689, 2778,
+ 7049, 6689, 4200,
+ 7049, 6689, 4214,
+ 7049, 6689, 5190,
+ 7049, 6689, 6260,
+ 7049, 6689, 6722,
+ 7049, 6689, 7508,
+ 7049, 6689, 7694,
+ 7049, 7803, 5759, 8,
+ 7049, 7803, 5759, 16,
+ 7049, 7803, 5759, 40,
+ 7049, 7803, 5759, 48,
+ 7049, 7803, 5759, 58,
+ 7049, 7803, 5759, 66,
+ 7049, 7803, 5759, 72,
+ 7049, 7803, 5759, 92,
+ 7049, 7803, 5759, 258,
+ 7049, 7803, 5759, 266,
+ 7049, 7803, 5759, 426,
+ 7049, 7803, 5759, 440,
+ 7049, 7803, 5759, 582,
+ 7049, 7803, 5759, 606,
+ 7049, 7803, 5759, 652,
+ 7049, 7803, 5759, 668,
+ 7049, 7803, 10259, 58,
+ 7049, 7803, 10259, 86,
+ 7049, 8405, 100,
+ 7049, 8405, 116,
+ 7049, 8405, 130,
+ 7049, 8405, 138,
+ 7049, 8405, 150,
+ 7049, 8405, 236,
+ 7049, 8405, 306,
+ 7049, 8405, 322,
+ 7049, 8405, 332,
+ 7049, 8405, 350,
+ 7049, 8405, 380,
+ 7049, 8405, 412,
+ 7049, 8405, 480,
+ 7049, 8405, 496,
+ 7049, 8405, 516,
+ 7049, 8405, 524,
+ 7049, 8405, 556,
+ 7049, 8405, 568,
+ 7049, 8405, 616,
+ 7049, 8405, 660,
+ 7049, 8405, 884,
+ 7049, 8405, 890,
+ 7049, 8405, 1612,
+ 7049, 8405, 1618,
+ 7049, 8405, 2038,
+ 7049, 8405, 2080,
+ 7049, 8405, 2134,
+ 7049, 8405, 2212,
+ 7049, 8405, 2218,
+ 7049, 8405, 2516,
+ 7049, 8405, 2572,
+ 7049, 8405, 2678,
+ 7049, 8405, 2684,
+ 7049, 8405, 5994,
+ 7049, 8405, 6000,
+ 7049, 8775, 783, 2426,
+ 7049, 8775, 783, 4768,
+ 7049, 8775, 965, 2426,
+ 7049, 8775, 965, 4768,
+ 7049, 8775, 1763, 6441, 782,
+ 7049, 8775, 1763, 6441, 2226,
+ 7049, 8775, 1763, 6441, 2552,
+ 7049, 8775, 1763, 6441, 3814,
+ 7049, 8775, 1763, 6441, 5026,
+ 7049, 8775, 1763, 6441, 5450,
+ 7049, 8775, 1763, 6441, 10446,
+ 7049, 8775, 1763, 6441, 10448,
+ 7049, 8775, 1763, 6441, 11178,
+ 7049, 8775, 1763, 6441, 11180,
+ 7049, 8775, 2227, 2426,
+ 7049, 8775, 2227, 4768,
+ 7049, 8775, 3815, 2426,
+ 7049, 8775, 3815, 4768,
+ 7049, 8775, 5027, 2426,
+ 7049, 8775, 5027, 4768,
+ 7049, 8775, 5451, 2426,
+ 7049, 8775, 5451, 4768,
+ 7049, 8775, 9143, 2426,
+ 7049, 8775, 9143, 4768,
+ 7049, 8775, 9145, 2426,
+ 7049, 8775, 9145, 4768,
+ 7049, 8775, 9981, 2426,
+ 7049, 8775, 9981, 4768,
+ 7049, 8775, 9983, 2426,
+ 7049, 8775, 9983, 4768,
+ 7049, 8775, 9985, 2426,
+ 7049, 8775, 9985, 4768,
+ 7049, 8775, 10447, 2426,
+ 7049, 8775, 10447, 4768,
+ 7049, 8775, 10449, 2426,
+ 7049, 8775, 10449, 4768,
+ 7049, 8775, 11179, 2426,
+ 7049, 8775, 11179, 4768,
+ 7049, 8775, 11181, 2426,
+ 7049, 8775, 11181, 4768,
+ 7049, 8775, 11380,
+ 7049, 8775, 11716,
+ 7049, 9971, 8775, 5548,
+ 7049, 12053, 7803, 360,
+ 7049, 12053, 7803, 498,
+ 7049, 12053, 7803, 500,
+ 7049, 12053, 7803, 506,
+ 7049, 12053, 7803, 522,
+ 7049, 12053, 7803, 1850,
+ 7049, 12053, 7803, 2282,
+ 7049, 12053, 7803, 2286,
+ 7049, 12053, 7803, 2288,
+ 7049, 12053, 7803, 2292,
+ 7049, 12053, 7803, 2308,
+ 7049, 12053, 7803, 2321, 6031, 2170,
+ 7049, 12053, 7803, 2321, 6031, 2778,
+ 7049, 12053, 7803, 2334,
+ 7049, 12053, 7803, 2344,
+ 7049, 12053, 7803, 2478,
+ 7049, 12053, 7803, 5506,
+ 7085, 601, 5876,
+ 7085, 4117, 5876,
+ 7085, 4849, 10643, 10374,
+ 7085, 8056,
+ 7085, 8849, 10677, 761, 10374,
+ 7089, 6622,
+ 7089, 7593, 8405, 0,
+ 7089, 7593, 8405, 1, 6121, 1045, 6376,
+ 7089, 7593, 8405, 1, 6121, 1045, 6377, 721, 8432,
+ 7089, 7593, 8405, 1, 6121, 1045, 6490,
+ 7089, 7593, 8405, 1, 6121, 4531, 6376,
+ 7089, 7593, 8405, 1, 6121, 5551, 6376,
+ 7089, 7593, 8405, 1, 6121, 5551, 6377, 721, 6378,
+ 7089, 7593, 8405, 1, 6121, 5551, 6490,
+ 7089, 7593, 8405, 1, 6121, 6378,
+ 7089, 7593, 8405, 1, 6121, 6516,
+ 7089, 7593, 8405, 1, 6121, 6517, 721, 1045, 6490,
+ 7089, 7593, 8405, 1, 6121, 6517, 721, 4531, 6376,
+ 7089, 7593, 8405, 1, 6121, 6517, 721, 6378,
+ 7089, 7593, 8405, 1, 6121, 6517, 721, 6874,
+ 7089, 7593, 8405, 1, 6121, 6517, 721, 7708,
+ 7089, 7593, 8405, 1, 6121, 6546,
+ 7089, 7593, 8405, 1, 6121, 6874,
+ 7089, 7593, 8405, 1, 6121, 7443, 4389, 5550,
+ 7089, 7593, 8405, 1, 6121, 7708,
+ 7089, 7593, 8405, 1, 6121, 8153, 6874,
+ 7089, 7593, 8405, 1, 6121, 8432,
+ 7089, 7593, 8405, 1, 6121, 8534,
+ 7089, 7593, 8405, 1, 6121, 8758,
+ 7089, 7593, 8405, 1, 6121, 10267, 6516,
+ 7089, 7593, 8405, 1, 6121, 10804,
+ 7089, 7593, 8405, 1, 6121, 10805, 721, 8432,
+ 7089, 7593, 8405, 1, 6121, 11215, 4530,
+ 7089, 7593, 8405, 1, 6121, 11448,
+ 7089, 7593, 8405, 1, 6121, 11449, 721, 1045, 6490,
+ 7089, 7593, 8405, 1, 6121, 11449, 721, 4531, 6376,
+ 7089, 7593, 8405, 1, 6121, 11449, 721, 6378,
+ 7089, 7593, 8405, 1, 6121, 11449, 721, 6874,
+ 7089, 7593, 8405, 1, 6121, 11449, 721, 7708,
+ 7089, 7593, 8405, 2,
+ 7089, 7593, 8405, 3, 6121, 1045, 6376,
+ 7089, 7593, 8405, 3, 6121, 1045, 6490,
+ 7089, 7593, 8405, 3, 6121, 4530,
+ 7089, 7593, 8405, 3, 6121, 4877, 6490,
+ 7089, 7593, 8405, 3, 6121, 8473, 7708,
+ 7089, 7593, 8405, 3, 6121, 8758,
+ 7089, 7593, 8405, 3, 6121, 8846,
+ 7089, 7593, 8405, 3, 6121, 9553, 4530,
+ 7089, 7593, 8405, 4,
+ 7089, 7593, 8405, 5, 6121, 1045, 6376,
+ 7089, 7593, 8405, 5, 6121, 3966,
+ 7089, 7593, 8405, 5, 6121, 4530,
+ 7089, 7593, 8405, 5, 6121, 6378,
+ 7089, 7593, 8405, 5, 6121, 6546,
+ 7089, 7593, 8405, 5, 6121, 8758,
+ 7089, 7593, 8405, 5, 6121, 9072,
+ 7089, 7593, 8405, 5, 6121, 9073, 721, 6378,
+ 7089, 7593, 8405, 5, 6121, 11448,
+ 7089, 7593, 8405, 6,
+ 7089, 7593, 8405, 7, 6121, 1045, 6376,
+ 7089, 7593, 8405, 7, 6121, 1045, 6490,
+ 7089, 7593, 8405, 7, 6121, 3966,
+ 7089, 7593, 8405, 7, 6121, 4530,
+ 7089, 7593, 8405, 7, 6121, 4531, 721, 5878,
+ 7089, 7593, 8405, 7, 6121, 4877, 6490,
+ 7089, 7593, 8405, 7, 6121, 5878,
+ 7089, 7593, 8405, 7, 6121, 6546,
+ 7089, 7593, 8405, 7, 6121, 8473, 7708,
+ 7089, 7593, 8405, 7, 6121, 8758,
+ 7089, 7593, 8405, 7, 6121, 8846,
+ 7089, 7593, 8405, 7, 6121, 9072,
+ 7089, 7593, 8405, 7, 6121, 9553, 4530,
+ 7089, 7593, 8405, 7, 6121, 11449, 6490,
+ 7089, 7593, 8405, 8,
+ 7089, 7593, 8405, 9, 6121, 1045, 6376,
+ 7089, 7593, 8405, 9, 6121, 1045, 6490,
+ 7089, 7593, 8405, 9, 6121, 4531, 6376,
+ 7089, 7593, 8405, 9, 6121, 6378,
+ 7089, 7593, 8405, 9, 6121, 6516,
+ 7089, 7593, 8405, 9, 6121, 6546,
+ 7089, 7593, 8405, 9, 6121, 6874,
+ 7089, 7593, 8405, 9, 6121, 7272,
+ 7089, 7593, 8405, 9, 6121, 7708,
+ 7089, 7593, 8405, 9, 6121, 7709, 6490,
+ 7089, 7593, 8405, 9, 6121, 8153, 6874,
+ 7089, 7593, 8405, 9, 6121, 8432,
+ 7089, 7593, 8405, 9, 6121, 8433, 721, 6378,
+ 7089, 7593, 8405, 9, 6121, 8433, 721, 6874,
+ 7089, 7593, 8405, 9, 6121, 8534,
+ 7089, 7593, 8405, 9, 6121, 8758,
+ 7089, 7593, 8405, 9, 6121, 9072,
+ 7089, 7593, 8405, 9, 6121, 9073, 721, 6516,
+ 7089, 7593, 8405, 9, 6121, 10267, 6516,
+ 7089, 7593, 8405, 9, 6121, 10804,
+ 7089, 7593, 8405, 9, 6121, 11215, 4530,
+ 7089, 7593, 8405, 9, 6121, 11448,
+ 7089, 7593, 8405, 9, 6121, 11449, 721, 1045, 6490,
+ 7089, 7593, 8405, 9, 6121, 11449, 721, 4531, 6376,
+ 7089, 7593, 8405, 9, 6121, 11449, 721, 6378,
+ 7089, 7593, 8405, 9, 6121, 11449, 721, 6874,
+ 7089, 7593, 8405, 9, 6121, 11449, 721, 7708,
+ 7089, 7593, 8405, 9, 6121, 11449, 6490,
+ 7089, 7593, 8405, 10,
+ 7089, 7593, 8405, 11, 6121, 1045, 6376,
+ 7089, 7593, 8405, 11, 6121, 4530,
+ 7089, 7593, 8405, 11, 6121, 8473, 7708,
+ 7089, 7593, 8405, 11, 6121, 9553, 4530,
+ 7089, 7593, 8405, 12,
+ 7089, 7593, 8405, 13, 6121, 1045, 6376,
+ 7089, 7593, 8405, 13, 6121, 4530,
+ 7089, 7593, 8405, 13, 6121, 6378,
+ 7089, 7593, 8405, 13, 6121, 6516,
+ 7089, 7593, 8405, 13, 6121, 6546,
+ 7089, 7593, 8405, 13, 6121, 8432,
+ 7089, 7593, 8405, 13, 6121, 8758,
+ 7089, 7593, 8405, 13, 6121, 9072,
+ 7089, 7593, 8405, 13, 6121, 9553, 4530,
+ 7089, 7593, 8405, 13, 6121, 11448,
+ 7089, 7593, 8405, 14,
+ 7089, 7593, 8405, 15, 6121, 1045, 6376,
+ 7089, 7593, 8405, 15, 6121, 1045, 6490,
+ 7089, 7593, 8405, 15, 6121, 4530,
+ 7089, 7593, 8405, 15, 6121, 4877, 6490,
+ 7089, 7593, 8405, 15, 6121, 6517, 6490,
+ 7089, 7593, 8405, 15, 6121, 6546,
+ 7089, 7593, 8405, 15, 6121, 8758,
+ 7089, 7593, 8405, 15, 6121, 9072,
+ 7089, 7593, 8405, 15, 6121, 10802,
+ 7089, 7593, 8405, 15, 6121, 10804,
+ 7089, 7593, 8405, 15, 6121, 11448,
+ 7089, 7593, 8405, 16,
+ 7089, 7593, 8405, 17, 6121, 1045, 6490,
+ 7089, 7593, 8405, 17, 6121, 4531, 6376,
+ 7089, 7593, 8405, 17, 6121, 6378,
+ 7089, 7593, 8405, 17, 6121, 6516,
+ 7089, 7593, 8405, 17, 6121, 6546,
+ 7089, 7593, 8405, 17, 6121, 6874,
+ 7089, 7593, 8405, 17, 6121, 7708,
+ 7089, 7593, 8405, 17, 6121, 7709, 6490,
+ 7089, 7593, 8405, 17, 6121, 8153, 6874,
+ 7089, 7593, 8405, 17, 6121, 8432,
+ 7089, 7593, 8405, 17, 6121, 8534,
+ 7089, 7593, 8405, 17, 6121, 8758,
+ 7089, 7593, 8405, 17, 6121, 10267, 6516,
+ 7089, 7593, 8405, 17, 6121, 10804,
+ 7089, 7593, 8405, 17, 6121, 10805, 721, 6378,
+ 7089, 7593, 8405, 17, 6121, 11215, 4530,
+ 7089, 7593, 8405, 17, 6121, 11448,
+ 7089, 7593, 8405, 18,
+ 7089, 7593, 8405, 19, 6121, 6546,
+ 7089, 7593, 8405, 19, 6121, 8758,
+ 7089, 7593, 8405, 19, 6121, 11448,
+ 7089, 7593, 8405, 19, 6121, 12426,
+ 7089, 7593, 8405, 20,
+ 7089, 7593, 8405, 21, 6121, 1045, 6490,
+ 7089, 7593, 8405, 21, 6121, 4530,
+ 7089, 7593, 8405, 21, 6121, 4877, 6490,
+ 7089, 7593, 8405, 21, 6121, 6378,
+ 7089, 7593, 8405, 21, 6121, 6546,
+ 7089, 7593, 8405, 21, 6121, 8758,
+ 7089, 7593, 8405, 21, 6121, 8759, 721, 10001, 8758,
+ 7089, 7593, 8405, 21, 6121, 9072,
+ 7089, 7593, 8405, 21, 6121, 9553, 4530,
+ 7089, 7593, 8405, 21, 6121, 10001, 8758,
+ 7089, 7593, 8405, 21, 6121, 10802,
+ 7089, 7593, 8405, 22,
+ 7089, 7593, 8405, 23, 6121, 760,
+ 7089, 7593, 8405, 23, 6121, 1045, 6490,
+ 7089, 7593, 8405, 23, 6121, 1045, 6491, 721, 8432,
+ 7089, 7593, 8405, 23, 6121, 3770,
+ 7089, 7593, 8405, 23, 6121, 3966,
+ 7089, 7593, 8405, 23, 6121, 4423, 8758,
+ 7089, 7593, 8405, 23, 6121, 4877, 6490,
+ 7089, 7593, 8405, 23, 6121, 6378,
+ 7089, 7593, 8405, 23, 6121, 6546,
+ 7089, 7593, 8405, 23, 6121, 8153, 760,
+ 7089, 7593, 8405, 23, 6121, 8473, 1044,
+ 7089, 7593, 8405, 23, 6121, 8473, 7708,
+ 7089, 7593, 8405, 23, 6121, 8758,
+ 7089, 7593, 8405, 23, 6121, 9072,
+ 7089, 7593, 8405, 23, 6121, 9553, 4530,
+ 7089, 7593, 8405, 23, 6121, 11215, 4530,
+ 7089, 7593, 8405, 23, 6121, 11449, 6490,
+ 7089, 7593, 8405, 24,
+ 7089, 7593, 8405, 25, 6121, 1045, 6376,
+ 7089, 7593, 8405, 25, 6121, 1045, 6490,
+ 7089, 7593, 8405, 25, 6121, 4530,
+ 7089, 7593, 8405, 25, 6121, 6378,
+ 7089, 7593, 8405, 25, 6121, 8473, 7708,
+ 7089, 7593, 8405, 25, 6121, 9553, 4530,
+ 7089, 7593, 8405, 26,
+ 7089, 7593, 8405, 27, 6121, 1045, 6376,
+ 7089, 7593, 8405, 27, 6121, 1045, 6490,
+ 7089, 7593, 8405, 27, 6121, 3966,
+ 7089, 7593, 8405, 27, 6121, 4849, 4530,
+ 7089, 7593, 8405, 27, 6121, 4877, 6490,
+ 7089, 7593, 8405, 27, 6121, 4895, 7443, 1760,
+ 7089, 7593, 8405, 27, 6121, 6378,
+ 7089, 7593, 8405, 27, 6121, 6546,
+ 7089, 7593, 8405, 27, 6121, 6874,
+ 7089, 7593, 8405, 27, 6121, 7708,
+ 7089, 7593, 8405, 27, 6121, 8473, 7708,
+ 7089, 7593, 8405, 27, 6121, 9072,
+ 7089, 7593, 8405, 27, 6121, 9553, 4530,
+ 7089, 7593, 8405, 27, 6121, 11215, 4530,
+ 7089, 7593, 8405, 27, 6121, 11449, 6490,
+ 7089, 7593, 8405, 27, 10451, 115, 11424,
+ 7089, 7593, 8405, 28,
+ 7089, 7593, 8405, 29, 6121, 1045, 6376,
+ 7089, 7593, 8405, 29, 6121, 1045, 6377, 721, 8432,
+ 7089, 7593, 8405, 29, 6121, 1045, 6490,
+ 7089, 7593, 8405, 29, 6121, 1809, 5551, 8318,
+ 7089, 7593, 8405, 29, 6121, 4531, 6376,
+ 7089, 7593, 8405, 29, 6121, 4536,
+ 7089, 7593, 8405, 29, 6121, 4537, 721, 1045, 6490,
+ 7089, 7593, 8405, 29, 6121, 4537, 721, 4531, 6376,
+ 7089, 7593, 8405, 29, 6121, 4537, 721, 6378,
+ 7089, 7593, 8405, 29, 6121, 4537, 721, 6874,
+ 7089, 7593, 8405, 29, 6121, 4537, 721, 7708,
+ 7089, 7593, 8405, 29, 6121, 4895, 8759, 9548,
+ 7089, 7593, 8405, 29, 6121, 4896,
+ 7089, 7593, 8405, 29, 6121, 6378,
+ 7089, 7593, 8405, 29, 6121, 6516,
+ 7089, 7593, 8405, 29, 6121, 6546,
+ 7089, 7593, 8405, 29, 6121, 6874,
+ 7089, 7593, 8405, 29, 6121, 7708,
+ 7089, 7593, 8405, 29, 6121, 7709, 721, 6378,
+ 7089, 7593, 8405, 29, 6121, 7709, 721, 8432,
+ 7089, 7593, 8405, 29, 6121, 7709, 721, 10804,
+ 7089, 7593, 8405, 29, 6121, 8153, 6378,
+ 7089, 7593, 8405, 29, 6121, 8153, 6874,
+ 7089, 7593, 8405, 29, 6121, 8432,
+ 7089, 7593, 8405, 29, 6121, 8433, 721, 6378,
+ 7089, 7593, 8405, 29, 6121, 8433, 721, 6874,
+ 7089, 7593, 8405, 29, 6121, 8534,
+ 7089, 7593, 8405, 29, 6121, 8535, 721, 8432,
+ 7089, 7593, 8405, 29, 6121, 8758,
+ 7089, 7593, 8405, 29, 6121, 8759, 721, 6378,
+ 7089, 7593, 8405, 29, 6121, 10267, 6516,
+ 7089, 7593, 8405, 29, 6121, 10804,
+ 7089, 7593, 8405, 29, 6121, 10805, 721, 8432,
+ 7089, 7593, 8405, 29, 6121, 11448,
+ 7089, 7593, 8405, 29, 6121, 11449, 721, 1045, 6490,
+ 7089, 7593, 8405, 29, 6121, 11449, 721, 4531, 6376,
+ 7089, 7593, 8405, 29, 6121, 11449, 721, 6378,
+ 7089, 7593, 8405, 29, 6121, 11449, 721, 6874,
+ 7089, 7593, 8405, 29, 6121, 11449, 721, 7708,
+ 7089, 7593, 8405, 30,
+ 7089, 7593, 8405, 31, 6121, 1045, 6376,
+ 7089, 7593, 8405, 31, 6121, 4530,
+ 7089, 7593, 8405, 31, 6121, 6378,
+ 7089, 7593, 8405, 31, 6121, 8473, 7708,
+ 7089, 7593, 8405, 31, 6121, 8758,
+ 7089, 7593, 8405, 31, 6121, 8759, 9785, 10802,
+ 7089, 7593, 8405, 31, 6121, 9553, 4530,
+ 7089, 7593, 8405, 31, 6121, 10196,
+ 7089, 7593, 8405, 31, 6121, 10533, 5878,
+ 7089, 7593, 8405, 32,
+ 7089, 7593, 8405, 33, 6121, 4530,
+ 7089, 7593, 8405, 33, 6121, 4531, 5878,
+ 7089, 7593, 8405, 33, 6121, 8759, 9785, 10802,
+ 7089, 7593, 8405, 33, 6121, 10001, 8758,
+ 7089, 7593, 8405, 34,
+ 7089, 7593, 8405, 35, 6121, 1045, 6376,
+ 7089, 7593, 8405, 35, 6121, 1045, 6490,
+ 7089, 7593, 8405, 35, 6121, 1045, 6491, 721, 8432,
+ 7089, 7593, 8405, 35, 6121, 4877, 6490,
+ 7089, 7593, 8405, 35, 6121, 4895, 1760,
+ 7089, 7593, 8405, 35, 6121, 5878,
+ 7089, 7593, 8405, 35, 6121, 6378,
+ 7089, 7593, 8405, 35, 6121, 6546,
+ 7089, 7593, 8405, 35, 6121, 8153, 6874,
+ 7089, 7593, 8405, 35, 6121, 8473, 7708,
+ 7089, 7593, 8405, 35, 6121, 8758,
+ 7089, 7593, 8405, 35, 6121, 9072,
+ 7089, 7593, 8405, 35, 6121, 9553, 4530,
+ 7089, 7593, 8405, 35, 6121, 10190,
+ 7089, 7593, 8405, 35, 6121, 10191, 721, 8473, 7708,
+ 7089, 7593, 8405, 35, 6121, 10267, 6516,
+ 7089, 7593, 8405, 35, 9642,
+ 7089, 7593, 8405, 36,
+ 7089, 7593, 8405, 37, 6121, 1045, 6376,
+ 7089, 7593, 8405, 37, 6121, 1045, 6490,
+ 7089, 7593, 8405, 37, 6121, 1045, 6491, 721, 1045, 6376,
+ 7089, 7593, 8405, 37, 6121, 4530,
+ 7089, 7593, 8405, 37, 6121, 6378,
+ 7089, 7593, 8405, 37, 6121, 6379, 721, 1045, 6376,
+ 7089, 7593, 8405, 37, 6121, 6546,
+ 7089, 7593, 8405, 37, 6121, 6547, 721, 1045, 6376,
+ 7089, 7593, 8405, 37, 6121, 6617, 6490,
+ 7089, 7593, 8405, 37, 6121, 7653, 5878,
+ 7089, 7593, 8405, 37, 6121, 8473, 7708,
+ 7089, 7593, 8405, 37, 6121, 9072,
+ 7089, 7593, 8405, 37, 6121, 9553, 4530,
+ 7089, 7593, 8405, 37, 6121, 11448,
+ 7089, 7593, 8405, 38,
+ 7089, 7593, 8405, 39, 6121, 1045, 6376,
+ 7089, 7593, 8405, 39, 6121, 1045, 6490,
+ 7089, 7593, 8405, 39, 6121, 3966,
+ 7089, 7593, 8405, 39, 6121, 4530,
+ 7089, 7593, 8405, 39, 6121, 4877, 6490,
+ 7089, 7593, 8405, 39, 6121, 6546,
+ 7089, 7593, 8405, 39, 6121, 6617, 6490,
+ 7089, 7593, 8405, 39, 6121, 8473, 7708,
+ 7089, 7593, 8405, 39, 6121, 8758,
+ 7089, 7593, 8405, 39, 6121, 9072,
+ 7089, 7593, 8405, 39, 6121, 9553, 4530,
+ 7089, 7593, 8405, 39, 6121, 10001, 8758,
+ 7089, 7593, 8405, 39, 6121, 10804,
+ 7089, 7593, 8405, 39, 6121, 11215, 4530,
+ 7089, 7593, 8405, 39, 6121, 11449, 6490,
+ 7089, 7593, 8405, 40,
+ 7089, 7593, 8405, 41, 760,
+ 7089, 7593, 8405, 41, 6121, 1045, 6490,
+ 7089, 7593, 8405, 41, 6121, 4531, 6376,
+ 7089, 7593, 8405, 41, 6121, 4536,
+ 7089, 7593, 8405, 41, 6121, 4537, 721, 1045, 6490,
+ 7089, 7593, 8405, 41, 6121, 4537, 721, 4531, 6376,
+ 7089, 7593, 8405, 41, 6121, 4537, 721, 6378,
+ 7089, 7593, 8405, 41, 6121, 4537, 721, 6874,
+ 7089, 7593, 8405, 41, 6121, 4537, 721, 7708,
+ 7089, 7593, 8405, 41, 6121, 5551, 6376,
+ 7089, 7593, 8405, 41, 6121, 6378,
+ 7089, 7593, 8405, 41, 6121, 6516,
+ 7089, 7593, 8405, 41, 6121, 6546,
+ 7089, 7593, 8405, 41, 6121, 6874,
+ 7089, 7593, 8405, 41, 6121, 7708,
+ 7089, 7593, 8405, 41, 6121, 7709, 721, 6378,
+ 7089, 7593, 8405, 41, 6121, 7709, 6490,
+ 7089, 7593, 8405, 41, 6121, 8153, 6378,
+ 7089, 7593, 8405, 41, 6121, 8153, 6874,
+ 7089, 7593, 8405, 41, 6121, 8432,
+ 7089, 7593, 8405, 41, 6121, 8433, 721, 10804,
+ 7089, 7593, 8405, 41, 6121, 8534,
+ 7089, 7593, 8405, 41, 6121, 10267, 6516,
+ 7089, 7593, 8405, 41, 6121, 10804,
+ 7089, 7593, 8405, 41, 6121, 10805, 721, 6378,
+ 7089, 7593, 8405, 41, 6121, 10805, 721, 6546,
+ 7089, 7593, 8405, 41, 6121, 10805, 721, 6874,
+ 7089, 7593, 8405, 41, 6121, 10805, 721, 8432,
+ 7089, 7593, 8405, 41, 6121, 10805, 6490,
+ 7089, 7593, 8405, 41, 6121, 11215, 4530,
+ 7089, 7593, 8405, 41, 6121, 11448,
+ 7089, 7593, 8405, 41, 6121, 11449, 6490,
+ 7089, 7593, 8405, 42,
+ 7089, 7593, 8405, 43, 6121, 1045, 6490,
+ 7089, 7593, 8405, 43, 6121, 3966,
+ 7089, 7593, 8405, 43, 6121, 4530,
+ 7089, 7593, 8405, 43, 6121, 7443, 4530,
+ 7089, 7593, 8405, 43, 6121, 7708,
+ 7089, 7593, 8405, 43, 6121, 9553, 4530,
+ 7089, 7593, 8405, 43, 6121, 10001, 8758,
+ 7089, 7593, 8405, 44,
+ 7089, 7593, 8405, 45, 6121, 1045, 6376,
+ 7089, 7593, 8405, 45, 6121, 1045, 6490,
+ 7089, 7593, 8405, 45, 6121, 4530,
+ 7089, 7593, 8405, 45, 6121, 5551, 6376,
+ 7089, 7593, 8405, 45, 6121, 6378,
+ 7089, 7593, 8405, 45, 6121, 6874,
+ 7089, 7593, 8405, 45, 6121, 10804,
+ 7089, 7593, 8405, 45, 6121, 11448,
+ 7089, 7593, 8405, 46,
+ 7089, 7593, 8405, 47, 6121, 1045, 6376,
+ 7089, 7593, 8405, 47, 6121, 9553, 4530,
+ 7089, 7593, 8405, 47, 6121, 10804,
+ 7089, 7593, 8405, 48,
+ 7089, 7593, 8405, 49, 6121, 1045, 6376,
+ 7089, 7593, 8405, 49, 6121, 1045, 6490,
+ 7089, 7593, 8405, 49, 6121, 4530,
+ 7089, 7593, 8405, 49, 6121, 4531, 6376,
+ 7089, 7593, 8405, 49, 6121, 4896,
+ 7089, 7593, 8405, 49, 6121, 5551, 6376,
+ 7089, 7593, 8405, 49, 6121, 6378,
+ 7089, 7593, 8405, 49, 6121, 6874,
+ 7089, 7593, 8405, 49, 6121, 7708,
+ 7089, 7593, 8405, 49, 6121, 8432,
+ 7089, 7593, 8405, 49, 6121, 8758,
+ 7089, 7593, 8405, 49, 6121, 10804,
+ 7089, 7593, 8405, 49, 6121, 11448,
+ 7089, 7593, 8405, 50,
+ 7089, 7593, 8405, 51, 6121, 1045, 6376,
+ 7089, 7593, 8405, 51, 6121, 1045, 6490,
+ 7089, 7593, 8405, 51, 6121, 3966,
+ 7089, 7593, 8405, 51, 6121, 4530,
+ 7089, 7593, 8405, 51, 6121, 4877, 6490,
+ 7089, 7593, 8405, 51, 6121, 6378,
+ 7089, 7593, 8405, 51, 6121, 6546,
+ 7089, 7593, 8405, 51, 6121, 7653, 5878,
+ 7089, 7593, 8405, 51, 6121, 8473, 7708,
+ 7089, 7593, 8405, 51, 6121, 8758,
+ 7089, 7593, 8405, 51, 6121, 9553, 4530,
+ 7089, 7593, 8405, 51, 6121, 10802,
+ 7089, 7593, 8405, 51, 6121, 11215, 4530,
+ 7089, 7593, 8405, 51, 6121, 11448,
+ 7089, 7593, 8405, 58,
+ 7089, 7593, 8405, 66,
+ 7089, 7593, 8405, 67, 6121, 6378,
+ 7089, 7593, 8405, 67, 6121, 8432,
+ 7089, 7593, 8405, 82,
+ 7089, 7593, 8405, 92,
+ 7089, 7593, 8405, 94,
+ 7089, 7593, 8405, 95, 6121, 11649, 760,
+ 7089, 7593, 8405, 98,
+ 7089, 7593, 8405, 141, 9164,
+ 7089, 7593, 8405, 156,
+ 7089, 7593, 8405, 157, 6121, 6546,
+ 7089, 7593, 8405, 157, 9164,
+ 7089, 7593, 8405, 157, 9165, 6121, 3966,
+ 7089, 7593, 8405, 186,
+ 7089, 7593, 8405, 252,
+ 7089, 7593, 8405, 282,
+ 7089, 7593, 8405, 342,
+ 7089, 7593, 8405, 353, 9164,
+ 7089, 7593, 8405, 363, 9164,
+ 7089, 7593, 8405, 406,
+ 7089, 7593, 8405, 432,
+ 7089, 7593, 8405, 440,
+ 7089, 7593, 8405, 450,
+ 7089, 7593, 8405, 505, 9164,
+ 7089, 7593, 8405, 559, 9165, 6121, 3966,
+ 7089, 7593, 8405, 563, 6121, 13018,
+ 7089, 7593, 8405, 573, 9164,
+ 7089, 7593, 8405, 578,
+ 7089, 7593, 8405, 590,
+ 7089, 7593, 8405, 594,
+ 7089, 7593, 8405, 620,
+ 7089, 7593, 8405, 912,
+ 7089, 7593, 8405, 1058,
+ 7089, 7593, 8405, 1110,
+ 7089, 7593, 8405, 1124,
+ 7089, 7593, 8405, 1125, 6121, 3966,
+ 7089, 7593, 8405, 1125, 6121, 9553, 4530,
+ 7089, 7593, 8405, 1125, 6121, 11215, 4530,
+ 7089, 7593, 8405, 1130,
+ 7089, 7593, 8405, 1138,
+ 7089, 7593, 8405, 1139, 6121, 3966,
+ 7089, 7593, 8405, 1139, 6121, 5878,
+ 7089, 7593, 8405, 1139, 6121, 6546,
+ 7089, 7593, 8405, 1139, 6121, 11215, 4530,
+ 7089, 7593, 8405, 1139, 10488,
+ 7089, 7593, 8405, 1678,
+ 7089, 7593, 8405, 1822,
+ 7089, 7593, 8405, 1952,
+ 7089, 7593, 8405, 2108,
+ 7089, 7593, 8405, 2216,
+ 7089, 7593, 8405, 2452,
+ 7089, 7593, 8405, 2453, 9642,
+ 7089, 7593, 8405, 2725, 4389, 28,
+ 7089, 7593, 8405, 2760,
+ 7089, 7593, 8405, 4065, 9164,
+ 7089, 7593, 8405, 4187, 9164,
+ 7089, 7593, 8405, 4389, 14,
+ 7089, 7593, 8405, 4404,
+ 7089, 7593, 8405, 4405, 6121, 4530,
+ 7089, 7593, 8405, 4614,
+ 7089, 7593, 8405, 4615, 6121, 8758,
+ 7089, 7593, 8405, 4854,
+ 7089, 7593, 8405, 4895, 36,
+ 7089, 7593, 8405, 4895, 37, 6121, 1045, 6376,
+ 7089, 7593, 8405, 4895, 37, 6121, 4423, 8758,
+ 7089, 7593, 8405, 4895, 37, 6121, 10001, 8758,
+ 7089, 7593, 8405, 5385, 8,
+ 7089, 7593, 8405, 5385, 9, 6121, 11215, 4530,
+ 7089, 7593, 8405, 5385, 28,
+ 7089, 7593, 8405, 5385, 29, 6121, 11215, 4530,
+ 7089, 7593, 8405, 5527, 4536,
+ 7089, 7593, 8405, 5901, 9164,
+ 7089, 7593, 8405, 5965, 2540,
+ 7089, 7593, 8405, 5965, 2778,
+ 7089, 7593, 8405, 5965, 4200,
+ 7089, 7593, 8405, 6078,
+ 7089, 7593, 8405, 6220,
+ 7089, 7593, 8405, 6406,
+ 7089, 7593, 8405, 6407, 6121, 11215, 4530,
+ 7089, 7593, 8405, 6674,
+ 7089, 7593, 8405, 6824,
+ 7089, 7593, 8405, 7494,
+ 7089, 7593, 8405, 7495, 6121, 4530,
+ 7089, 7593, 8405, 7495, 6121, 11215, 4530,
+ 7089, 7593, 8405, 7519, 36,
+ 7089, 7593, 8405, 7619, 10489, 1124,
+ 7089, 7593, 8405, 7692,
+ 7089, 7593, 8405, 7693, 6121, 8758,
+ 7089, 7593, 8405, 7693, 6121, 8759, 9785, 10802,
+ 7089, 7593, 8405, 7981, 28,
+ 7089, 7593, 8405, 8005, 4389, 28,
+ 7089, 7593, 8405, 8017, 22,
+ 7089, 7593, 8405, 8065, 5385, 8,
+ 7089, 7593, 8405, 8065, 7316,
+ 7089, 7593, 8405, 8065, 10489, 5385, 8,
+ 7089, 7593, 8405, 8387, 6121, 8758,
+ 7089, 7593, 8405, 8679, 12,
+ 7089, 7593, 8405, 8869, 0,
+ 7089, 7593, 8405, 8869, 8,
+ 7089, 7593, 8405, 8869, 12,
+ 7089, 7593, 8405, 8869, 14,
+ 7089, 7593, 8405, 8869, 15, 6121, 10190,
+ 7089, 7593, 8405, 8869, 15, 6121, 10191, 721, 5878,
+ 7089, 7593, 8405, 8869, 16,
+ 7089, 7593, 8405, 8869, 20,
+ 7089, 7593, 8405, 8869, 22,
+ 7089, 7593, 8405, 8869, 24,
+ 7089, 7593, 8405, 8869, 25, 6121, 4895, 1760,
+ 7089, 7593, 8405, 8869, 34,
+ 7089, 7593, 8405, 8869, 35, 6121, 4530,
+ 7089, 7593, 8405, 8869, 35, 6121, 4895, 1760,
+ 7089, 7593, 8405, 8869, 35, 6121, 5878,
+ 7089, 7593, 8405, 8869, 38,
+ 7089, 7593, 8405, 8869, 42,
+ 7089, 7593, 8405, 8869, 44,
+ 7089, 7593, 8405, 8869, 48,
+ 7089, 7593, 8405, 8869, 66,
+ 7089, 7593, 8405, 8869, 426,
+ 7089, 7593, 8405, 8869, 5385, 8,
+ 7089, 7593, 8405, 8869, 6406,
+ 7089, 7593, 8405, 8869, 6674,
+ 7089, 7593, 8405, 8869, 9365, 12,
+ 7089, 7593, 8405, 9185, 16,
+ 7089, 7593, 8405, 9185, 18,
+ 7089, 7593, 8405, 9185, 19, 6121, 8758,
+ 7089, 7593, 8405, 9185, 19, 6121, 8759, 721, 4530,
+ 7089, 7593, 8405, 9313, 5836,
+ 7089, 7593, 8405, 9365, 6,
+ 7089, 7593, 8405, 9365, 10,
+ 7089, 7593, 8405, 9365, 12,
+ 7089, 7593, 8405, 9365, 34,
+ 7089, 7593, 8405, 9365, 36,
+ 7089, 7593, 8405, 9365, 38,
+ 7089, 7593, 8405, 9808,
+ 7089, 7593, 8405, 9809, 6121, 8758,
+ 7089, 7593, 8405, 10489, 4,
+ 7089, 7593, 8405, 10489, 5, 6121, 1044,
+ 7089, 7593, 8405, 10489, 8,
+ 7089, 7593, 8405, 10489, 35, 6121, 10190,
+ 7089, 7593, 8405, 10489, 5385, 8,
+ 7089, 7593, 8405, 10489, 5385, 9, 6121, 4530,
+ 7089, 7593, 8405, 10489, 5385, 9, 6121, 11215, 4530,
+ 7089, 7593, 8405, 10494,
+ 7089, 7593, 8405, 10523, 28,
+ 7089, 7593, 8405, 10523, 29, 6121, 8758,
+ 7089, 7593, 8405, 10523, 40,
+ 7089, 7593, 8405, 10523, 5385, 28,
+ 7089, 7593, 8405, 10523, 8869, 24,
+ 7089, 7593, 8405, 10523, 11941, 40,
+ 7089, 7593, 8405, 10609, 2216,
+ 7089, 7593, 8405, 10640,
+ 7089, 7593, 8405, 10786,
+ 7089, 7593, 8405, 10787, 6121, 6616,
+ 7089, 7593, 8405, 11879, 50,
+ 7089, 7593, 8405, 12507, 42,
+ 7089, 7593, 8405, 12507, 344,
+ 7089, 7593, 8405, 12935, 710,
+ 7089, 7593, 8405, 12935, 3244,
+ 7089, 7593, 9063, 8405, 17, 6121, 8758,
+ 7089, 7593, 9063, 8405, 41, 6121, 8758,
+ 7089, 7593, 10301, 200,
+ 7089, 7593, 10301, 202,
+ 7089, 7593, 10301, 204,
+ 7089, 7593, 10301, 268,
+ 7089, 7593, 10301, 426,
+ 7089, 7593, 10301, 544,
+ 7089, 7593, 10301, 1156,
+ 7089, 7593, 10301, 1158,
+ 7089, 7593, 10301, 4895, 37, 38,
+ 7089, 8405, 662,
+ 7089, 8405, 710,
+ 7089, 8405, 2779, 6121, 8758,
+ 7089, 8405, 6138,
+ 7089, 8405, 7593, 9063, 0,
+ 7089, 8405, 7593, 9063, 2,
+ 7089, 8405, 7593, 9063, 4,
+ 7089, 8405, 7593, 9063, 6,
+ 7089, 8405, 7593, 9063, 8,
+ 7089, 8405, 7593, 9063, 10,
+ 7089, 8405, 7593, 9063, 12,
+ 7089, 8405, 7593, 9063, 13, 6121, 4530,
+ 7089, 8405, 7593, 9063, 14,
+ 7089, 8405, 7593, 9063, 16,
+ 7089, 8405, 7593, 9063, 18,
+ 7089, 8405, 7593, 9063, 20,
+ 7089, 8405, 7593, 9063, 22,
+ 7089, 8405, 7593, 9063, 23, 6121, 8758,
+ 7089, 8405, 7593, 9063, 24,
+ 7089, 8405, 7593, 9063, 26,
+ 7089, 8405, 7593, 9063, 28,
+ 7089, 8405, 7593, 9063, 30,
+ 7089, 8405, 7593, 9063, 34,
+ 7089, 8405, 7593, 9063, 36,
+ 7089, 8405, 7593, 9063, 38,
+ 7089, 8405, 7593, 9063, 40,
+ 7089, 8405, 7593, 9063, 42,
+ 7089, 8405, 7593, 9063, 44,
+ 7089, 8405, 7593, 9063, 48,
+ 7089, 8405, 7593, 9063, 50,
+ 7089, 8405, 7593, 9063, 66,
+ 7089, 8405, 7593, 9063, 426,
+ 7089, 8405, 7593, 9063, 450,
+ 7089, 8405, 7593, 9063, 1130,
+ 7089, 8405, 7593, 9063, 1138,
+ 7089, 8405, 7593, 9063, 2452,
+ 7089, 8405, 7593, 9063, 5385, 28,
+ 7089, 8405, 7593, 9063, 7981, 2,
+ 7089, 8405, 7593, 9063, 8869, 8,
+ 7089, 8405, 7593, 9063, 8869, 34,
+ 7089, 8405, 7593, 9063, 10267, 34,
+ 7089, 8405, 7593, 9063, 10489, 26,
+ 7089, 8405, 7593, 9063, 10489, 34,
+ 7089, 8405, 8107, 6598,
+ 7089, 8405, 8921, 11089, 9728,
+ 7089, 8405, 9313, 5836,
+ 7089, 8405, 9313, 5837, 6121, 8758,
+ 7089, 8405, 9423, 6598,
+ 7089, 8405, 9865, 6598,
+ 7089, 8405, 9915, 11720,
+ 7089, 8405, 9917, 6598,
+ 7089, 8405, 9917, 11720,
+ 7089, 8405, 10267, 9313, 5836,
+ 7089, 8405, 10267, 9313, 5837, 6121, 8758,
+ 7089, 8405, 10489, 1125, 4896,
+ 7089, 8405, 10489, 9313, 5837, 6121, 8758,
+ 7089, 8405, 11215, 6598,
+ 7089, 8405, 11251, 4,
+ 7089, 8405, 11723, 8921, 11008,
+ 7089, 9063, 8405, 0,
+ 7089, 9063, 8405, 1, 6121, 1045, 6376,
+ 7089, 9063, 8405, 1, 6121, 1045, 6377, 721, 8432,
+ 7089, 9063, 8405, 1, 6121, 1045, 6490,
+ 7089, 9063, 8405, 1, 6121, 4531, 6376,
+ 7089, 9063, 8405, 1, 6121, 5551, 6376,
+ 7089, 9063, 8405, 1, 6121, 5551, 6377, 721, 6378,
+ 7089, 9063, 8405, 1, 6121, 5551, 6490,
+ 7089, 9063, 8405, 1, 6121, 6378,
+ 7089, 9063, 8405, 1, 6121, 6516,
+ 7089, 9063, 8405, 1, 6121, 6517, 721, 1045, 6490,
+ 7089, 9063, 8405, 1, 6121, 6517, 721, 4531, 6376,
+ 7089, 9063, 8405, 1, 6121, 6517, 721, 6378,
+ 7089, 9063, 8405, 1, 6121, 6517, 721, 6874,
+ 7089, 9063, 8405, 1, 6121, 6517, 721, 7708,
+ 7089, 9063, 8405, 1, 6121, 6546,
+ 7089, 9063, 8405, 1, 6121, 6874,
+ 7089, 9063, 8405, 1, 6121, 7708,
+ 7089, 9063, 8405, 1, 6121, 8153, 6874,
+ 7089, 9063, 8405, 1, 6121, 8432,
+ 7089, 9063, 8405, 1, 6121, 8534,
+ 7089, 9063, 8405, 1, 6121, 8758,
+ 7089, 9063, 8405, 1, 6121, 10267, 6516,
+ 7089, 9063, 8405, 1, 6121, 10804,
+ 7089, 9063, 8405, 1, 6121, 10805, 721, 8432,
+ 7089, 9063, 8405, 1, 6121, 11448,
+ 7089, 9063, 8405, 1, 6121, 11449, 721, 1045, 6490,
+ 7089, 9063, 8405, 1, 6121, 11449, 721, 4531, 6376,
+ 7089, 9063, 8405, 1, 6121, 11449, 721, 6378,
+ 7089, 9063, 8405, 1, 6121, 11449, 721, 6874,
+ 7089, 9063, 8405, 1, 6121, 11449, 721, 7708,
+ 7089, 9063, 8405, 2,
+ 7089, 9063, 8405, 3, 6121, 1045, 6376,
+ 7089, 9063, 8405, 3, 6121, 1045, 6490,
+ 7089, 9063, 8405, 3, 6121, 4530,
+ 7089, 9063, 8405, 3, 6121, 4877, 6490,
+ 7089, 9063, 8405, 3, 6121, 8758,
+ 7089, 9063, 8405, 3, 6121, 8846,
+ 7089, 9063, 8405, 4,
+ 7089, 9063, 8405, 5, 6121, 1045, 6376,
+ 7089, 9063, 8405, 5, 6121, 4530,
+ 7089, 9063, 8405, 5, 6121, 6378,
+ 7089, 9063, 8405, 5, 6121, 6546,
+ 7089, 9063, 8405, 5, 6121, 8758,
+ 7089, 9063, 8405, 5, 6121, 9072,
+ 7089, 9063, 8405, 5, 6121, 9073, 721, 6378,
+ 7089, 9063, 8405, 5, 6121, 11448,
+ 7089, 9063, 8405, 6,
+ 7089, 9063, 8405, 7, 6121, 1045, 6376,
+ 7089, 9063, 8405, 7, 6121, 1045, 6490,
+ 7089, 9063, 8405, 7, 6121, 4530,
+ 7089, 9063, 8405, 7, 6121, 4877, 6490,
+ 7089, 9063, 8405, 7, 6121, 6546,
+ 7089, 9063, 8405, 7, 6121, 7593, 8405, 50,
+ 7089, 9063, 8405, 7, 6121, 7593, 8405, 51, 6121, 6546,
+ 7089, 9063, 8405, 7, 6121, 8758,
+ 7089, 9063, 8405, 7, 6121, 8846,
+ 7089, 9063, 8405, 7, 6121, 9072,
+ 7089, 9063, 8405, 7, 6121, 11449, 6490,
+ 7089, 9063, 8405, 8,
+ 7089, 9063, 8405, 9, 6121, 1045, 6376,
+ 7089, 9063, 8405, 9, 6121, 1045, 6490,
+ 7089, 9063, 8405, 9, 6121, 4531, 6376,
+ 7089, 9063, 8405, 9, 6121, 6378,
+ 7089, 9063, 8405, 9, 6121, 6516,
+ 7089, 9063, 8405, 9, 6121, 6546,
+ 7089, 9063, 8405, 9, 6121, 6874,
+ 7089, 9063, 8405, 9, 6121, 7708,
+ 7089, 9063, 8405, 9, 6121, 7709, 6490,
+ 7089, 9063, 8405, 9, 6121, 8153, 6874,
+ 7089, 9063, 8405, 9, 6121, 8432,
+ 7089, 9063, 8405, 9, 6121, 8433, 721, 6378,
+ 7089, 9063, 8405, 9, 6121, 8433, 721, 6874,
+ 7089, 9063, 8405, 9, 6121, 8534,
+ 7089, 9063, 8405, 9, 6121, 8758,
+ 7089, 9063, 8405, 9, 6121, 9072,
+ 7089, 9063, 8405, 9, 6121, 9073, 721, 6516,
+ 7089, 9063, 8405, 9, 6121, 10267, 6516,
+ 7089, 9063, 8405, 9, 6121, 10804,
+ 7089, 9063, 8405, 9, 6121, 11448,
+ 7089, 9063, 8405, 9, 6121, 11449, 721, 1045, 6490,
+ 7089, 9063, 8405, 9, 6121, 11449, 721, 4531, 6376,
+ 7089, 9063, 8405, 9, 6121, 11449, 721, 6378,
+ 7089, 9063, 8405, 9, 6121, 11449, 721, 6874,
+ 7089, 9063, 8405, 9, 6121, 11449, 721, 7708,
+ 7089, 9063, 8405, 9, 6121, 11449, 6490,
+ 7089, 9063, 8405, 10,
+ 7089, 9063, 8405, 11, 6121, 1045, 6376,
+ 7089, 9063, 8405, 11, 6121, 4530,
+ 7089, 9063, 8405, 12,
+ 7089, 9063, 8405, 13, 6121, 1045, 6376,
+ 7089, 9063, 8405, 13, 6121, 4530,
+ 7089, 9063, 8405, 13, 6121, 6378,
+ 7089, 9063, 8405, 13, 6121, 6516,
+ 7089, 9063, 8405, 13, 6121, 6546,
+ 7089, 9063, 8405, 13, 6121, 8432,
+ 7089, 9063, 8405, 13, 6121, 8758,
+ 7089, 9063, 8405, 13, 6121, 9072,
+ 7089, 9063, 8405, 13, 6121, 11448,
+ 7089, 9063, 8405, 14,
+ 7089, 9063, 8405, 15, 6121, 1045, 6376,
+ 7089, 9063, 8405, 15, 6121, 1045, 6490,
+ 7089, 9063, 8405, 15, 6121, 6517, 6490,
+ 7089, 9063, 8405, 15, 6121, 6546,
+ 7089, 9063, 8405, 15, 6121, 8758,
+ 7089, 9063, 8405, 15, 6121, 9072,
+ 7089, 9063, 8405, 15, 6121, 10802,
+ 7089, 9063, 8405, 15, 6121, 10804,
+ 7089, 9063, 8405, 15, 6121, 11448,
+ 7089, 9063, 8405, 16,
+ 7089, 9063, 8405, 17, 6121, 1045, 6376,
+ 7089, 9063, 8405, 17, 6121, 1045, 6490,
+ 7089, 9063, 8405, 17, 6121, 4531, 6376,
+ 7089, 9063, 8405, 17, 6121, 6378,
+ 7089, 9063, 8405, 17, 6121, 6516,
+ 7089, 9063, 8405, 17, 6121, 6546,
+ 7089, 9063, 8405, 17, 6121, 6874,
+ 7089, 9063, 8405, 17, 6121, 7708,
+ 7089, 9063, 8405, 17, 6121, 7709, 6490,
+ 7089, 9063, 8405, 17, 6121, 8153, 6874,
+ 7089, 9063, 8405, 17, 6121, 8432,
+ 7089, 9063, 8405, 17, 6121, 8534,
+ 7089, 9063, 8405, 17, 6121, 8758,
+ 7089, 9063, 8405, 17, 6121, 10267, 6516,
+ 7089, 9063, 8405, 17, 6121, 10804,
+ 7089, 9063, 8405, 17, 6121, 10805, 721, 6378,
+ 7089, 9063, 8405, 17, 6121, 11448,
+ 7089, 9063, 8405, 18,
+ 7089, 9063, 8405, 19, 6121, 8758,
+ 7089, 9063, 8405, 19, 6121, 11448,
+ 7089, 9063, 8405, 20,
+ 7089, 9063, 8405, 21, 6121, 1045, 6490,
+ 7089, 9063, 8405, 21, 6121, 4530,
+ 7089, 9063, 8405, 21, 6121, 4877, 6490,
+ 7089, 9063, 8405, 21, 6121, 6378,
+ 7089, 9063, 8405, 21, 6121, 6546,
+ 7089, 9063, 8405, 21, 6121, 8758,
+ 7089, 9063, 8405, 21, 6121, 8759, 721, 10001, 8758,
+ 7089, 9063, 8405, 21, 6121, 9072,
+ 7089, 9063, 8405, 21, 6121, 10001, 8758,
+ 7089, 9063, 8405, 21, 6121, 10802,
+ 7089, 9063, 8405, 22,
+ 7089, 9063, 8405, 23, 6121, 760,
+ 7089, 9063, 8405, 23, 6121, 1045, 6490,
+ 7089, 9063, 8405, 23, 6121, 1045, 6491, 721, 8432,
+ 7089, 9063, 8405, 23, 6121, 4423, 8758,
+ 7089, 9063, 8405, 23, 6121, 4877, 6490,
+ 7089, 9063, 8405, 23, 6121, 6378,
+ 7089, 9063, 8405, 23, 6121, 6546,
+ 7089, 9063, 8405, 23, 6121, 7593, 8405, 18,
+ 7089, 9063, 8405, 23, 6121, 8153, 760,
+ 7089, 9063, 8405, 23, 6121, 8473, 1044,
+ 7089, 9063, 8405, 23, 6121, 8473, 7708,
+ 7089, 9063, 8405, 23, 6121, 8758,
+ 7089, 9063, 8405, 23, 6121, 9072,
+ 7089, 9063, 8405, 23, 6121, 11449, 6490,
+ 7089, 9063, 8405, 24,
+ 7089, 9063, 8405, 25, 6121, 1045, 6376,
+ 7089, 9063, 8405, 25, 6121, 1045, 6490,
+ 7089, 9063, 8405, 25, 6121, 4530,
+ 7089, 9063, 8405, 25, 6121, 6378,
+ 7089, 9063, 8405, 26,
+ 7089, 9063, 8405, 27, 6121, 1045, 6376,
+ 7089, 9063, 8405, 27, 6121, 1045, 6490,
+ 7089, 9063, 8405, 27, 6121, 4849, 4530,
+ 7089, 9063, 8405, 27, 6121, 4877, 6490,
+ 7089, 9063, 8405, 27, 6121, 4895, 7443, 1760,
+ 7089, 9063, 8405, 27, 6121, 6378,
+ 7089, 9063, 8405, 27, 6121, 6546,
+ 7089, 9063, 8405, 27, 6121, 6874,
+ 7089, 9063, 8405, 27, 6121, 7593, 8405, 18,
+ 7089, 9063, 8405, 27, 6121, 7708,
+ 7089, 9063, 8405, 27, 6121, 9072,
+ 7089, 9063, 8405, 27, 6121, 11449, 6490,
+ 7089, 9063, 8405, 28,
+ 7089, 9063, 8405, 29, 6121, 1045, 6376,
+ 7089, 9063, 8405, 29, 6121, 1045, 6377, 721, 8432,
+ 7089, 9063, 8405, 29, 6121, 1045, 6490,
+ 7089, 9063, 8405, 29, 6121, 4531, 6376,
+ 7089, 9063, 8405, 29, 6121, 4536,
+ 7089, 9063, 8405, 29, 6121, 4537, 721, 1045, 6490,
+ 7089, 9063, 8405, 29, 6121, 4537, 721, 4531, 6376,
+ 7089, 9063, 8405, 29, 6121, 4537, 721, 6378,
+ 7089, 9063, 8405, 29, 6121, 4537, 721, 6874,
+ 7089, 9063, 8405, 29, 6121, 4537, 721, 7708,
+ 7089, 9063, 8405, 29, 6121, 4895, 8759, 9548,
+ 7089, 9063, 8405, 29, 6121, 4896,
+ 7089, 9063, 8405, 29, 6121, 6378,
+ 7089, 9063, 8405, 29, 6121, 6516,
+ 7089, 9063, 8405, 29, 6121, 6546,
+ 7089, 9063, 8405, 29, 6121, 6874,
+ 7089, 9063, 8405, 29, 6121, 7708,
+ 7089, 9063, 8405, 29, 6121, 7709, 721, 6378,
+ 7089, 9063, 8405, 29, 6121, 7709, 721, 8432,
+ 7089, 9063, 8405, 29, 6121, 7709, 721, 10804,
+ 7089, 9063, 8405, 29, 6121, 8153, 6378,
+ 7089, 9063, 8405, 29, 6121, 8153, 6874,
+ 7089, 9063, 8405, 29, 6121, 8432,
+ 7089, 9063, 8405, 29, 6121, 8433, 721, 6378,
+ 7089, 9063, 8405, 29, 6121, 8433, 721, 6874,
+ 7089, 9063, 8405, 29, 6121, 8473, 7708,
+ 7089, 9063, 8405, 29, 6121, 8534,
+ 7089, 9063, 8405, 29, 6121, 8535, 721, 8432,
+ 7089, 9063, 8405, 29, 6121, 8758,
+ 7089, 9063, 8405, 29, 6121, 8759, 721, 6378,
+ 7089, 9063, 8405, 29, 6121, 10267, 6516,
+ 7089, 9063, 8405, 29, 6121, 10804,
+ 7089, 9063, 8405, 29, 6121, 10805, 721, 8432,
+ 7089, 9063, 8405, 29, 6121, 11448,
+ 7089, 9063, 8405, 29, 6121, 11449, 721, 1045, 6490,
+ 7089, 9063, 8405, 29, 6121, 11449, 721, 4531, 6376,
+ 7089, 9063, 8405, 29, 6121, 11449, 721, 6378,
+ 7089, 9063, 8405, 29, 6121, 11449, 721, 6874,
+ 7089, 9063, 8405, 29, 6121, 11449, 721, 7708,
+ 7089, 9063, 8405, 30,
+ 7089, 9063, 8405, 31, 6121, 1045, 6376,
+ 7089, 9063, 8405, 31, 6121, 4530,
+ 7089, 9063, 8405, 31, 6121, 6378,
+ 7089, 9063, 8405, 31, 6121, 8758,
+ 7089, 9063, 8405, 31, 6121, 8759, 9785, 10802,
+ 7089, 9063, 8405, 31, 6121, 10196,
+ 7089, 9063, 8405, 31, 6121, 10533, 5878,
+ 7089, 9063, 8405, 32,
+ 7089, 9063, 8405, 33, 6121, 8759, 9785, 10802,
+ 7089, 9063, 8405, 33, 6121, 10001, 8758,
+ 7089, 9063, 8405, 34,
+ 7089, 9063, 8405, 35, 6121, 1045, 6376,
+ 7089, 9063, 8405, 35, 6121, 1045, 6490,
+ 7089, 9063, 8405, 35, 6121, 1045, 6491, 721, 8432,
+ 7089, 9063, 8405, 35, 6121, 4877, 6490,
+ 7089, 9063, 8405, 35, 6121, 5878,
+ 7089, 9063, 8405, 35, 6121, 6378,
+ 7089, 9063, 8405, 35, 6121, 6546,
+ 7089, 9063, 8405, 35, 6121, 8153, 6874,
+ 7089, 9063, 8405, 35, 6121, 8758,
+ 7089, 9063, 8405, 35, 6121, 9072,
+ 7089, 9063, 8405, 35, 6121, 10267, 6516,
+ 7089, 9063, 8405, 35, 9642,
+ 7089, 9063, 8405, 36,
+ 7089, 9063, 8405, 37, 6121, 1045, 6376,
+ 7089, 9063, 8405, 37, 6121, 1045, 6490,
+ 7089, 9063, 8405, 37, 6121, 1045, 6491, 721, 1045, 6376,
+ 7089, 9063, 8405, 37, 6121, 6378,
+ 7089, 9063, 8405, 37, 6121, 6379, 721, 1045, 6376,
+ 7089, 9063, 8405, 37, 6121, 6546,
+ 7089, 9063, 8405, 37, 6121, 6547, 721, 1045, 6376,
+ 7089, 9063, 8405, 37, 6121, 6617, 6490,
+ 7089, 9063, 8405, 37, 6121, 9072,
+ 7089, 9063, 8405, 37, 6121, 11448,
+ 7089, 9063, 8405, 38,
+ 7089, 9063, 8405, 39, 6121, 1045, 6376,
+ 7089, 9063, 8405, 39, 6121, 1045, 6490,
+ 7089, 9063, 8405, 39, 6121, 4530,
+ 7089, 9063, 8405, 39, 6121, 4877, 6490,
+ 7089, 9063, 8405, 39, 6121, 6546,
+ 7089, 9063, 8405, 39, 6121, 6617, 6490,
+ 7089, 9063, 8405, 39, 6121, 8758,
+ 7089, 9063, 8405, 39, 6121, 9072,
+ 7089, 9063, 8405, 39, 6121, 10001, 8758,
+ 7089, 9063, 8405, 39, 6121, 11215, 4530,
+ 7089, 9063, 8405, 39, 6121, 11449, 6490,
+ 7089, 9063, 8405, 40,
+ 7089, 9063, 8405, 41, 760,
+ 7089, 9063, 8405, 41, 6121, 1045, 6490,
+ 7089, 9063, 8405, 41, 6121, 4531, 6376,
+ 7089, 9063, 8405, 41, 6121, 4536,
+ 7089, 9063, 8405, 41, 6121, 4537, 721, 1045, 6490,
+ 7089, 9063, 8405, 41, 6121, 4537, 721, 4531, 6376,
+ 7089, 9063, 8405, 41, 6121, 4537, 721, 6378,
+ 7089, 9063, 8405, 41, 6121, 4537, 721, 6874,
+ 7089, 9063, 8405, 41, 6121, 4537, 721, 7708,
+ 7089, 9063, 8405, 41, 6121, 5551, 6376,
+ 7089, 9063, 8405, 41, 6121, 6378,
+ 7089, 9063, 8405, 41, 6121, 6516,
+ 7089, 9063, 8405, 41, 6121, 6546,
+ 7089, 9063, 8405, 41, 6121, 6874,
+ 7089, 9063, 8405, 41, 6121, 7708,
+ 7089, 9063, 8405, 41, 6121, 7709, 721, 6378,
+ 7089, 9063, 8405, 41, 6121, 7709, 6490,
+ 7089, 9063, 8405, 41, 6121, 8153, 6378,
+ 7089, 9063, 8405, 41, 6121, 8153, 6874,
+ 7089, 9063, 8405, 41, 6121, 8432,
+ 7089, 9063, 8405, 41, 6121, 8433, 721, 10804,
+ 7089, 9063, 8405, 41, 6121, 8534,
+ 7089, 9063, 8405, 41, 6121, 10267, 6516,
+ 7089, 9063, 8405, 41, 6121, 10804,
+ 7089, 9063, 8405, 41, 6121, 10805, 721, 6378,
+ 7089, 9063, 8405, 41, 6121, 10805, 721, 6546,
+ 7089, 9063, 8405, 41, 6121, 10805, 721, 6874,
+ 7089, 9063, 8405, 41, 6121, 10805, 721, 8432,
+ 7089, 9063, 8405, 41, 6121, 10805, 6490,
+ 7089, 9063, 8405, 41, 6121, 11448,
+ 7089, 9063, 8405, 41, 6121, 11449, 6490,
+ 7089, 9063, 8405, 42,
+ 7089, 9063, 8405, 43, 6121, 1045, 6490,
+ 7089, 9063, 8405, 43, 6121, 4530,
+ 7089, 9063, 8405, 43, 6121, 7708,
+ 7089, 9063, 8405, 43, 6121, 10001, 8758,
+ 7089, 9063, 8405, 44,
+ 7089, 9063, 8405, 45, 6121, 1045, 6376,
+ 7089, 9063, 8405, 45, 6121, 1045, 6490,
+ 7089, 9063, 8405, 45, 6121, 4530,
+ 7089, 9063, 8405, 45, 6121, 6378,
+ 7089, 9063, 8405, 45, 6121, 6874,
+ 7089, 9063, 8405, 45, 6121, 10804,
+ 7089, 9063, 8405, 45, 6121, 11448,
+ 7089, 9063, 8405, 46,
+ 7089, 9063, 8405, 47, 6121, 1045, 6376,
+ 7089, 9063, 8405, 47, 6121, 10804,
+ 7089, 9063, 8405, 48,
+ 7089, 9063, 8405, 49, 6121, 1045, 6376,
+ 7089, 9063, 8405, 49, 6121, 1045, 6490,
+ 7089, 9063, 8405, 49, 6121, 4530,
+ 7089, 9063, 8405, 49, 6121, 4531, 6376,
+ 7089, 9063, 8405, 49, 6121, 4896,
+ 7089, 9063, 8405, 49, 6121, 6378,
+ 7089, 9063, 8405, 49, 6121, 6874,
+ 7089, 9063, 8405, 49, 6121, 7708,
+ 7089, 9063, 8405, 49, 6121, 8432,
+ 7089, 9063, 8405, 49, 6121, 8758,
+ 7089, 9063, 8405, 49, 6121, 10804,
+ 7089, 9063, 8405, 49, 6121, 11448,
+ 7089, 9063, 8405, 50,
+ 7089, 9063, 8405, 51, 6121, 1045, 6376,
+ 7089, 9063, 8405, 51, 6121, 1045, 6490,
+ 7089, 9063, 8405, 51, 6121, 4530,
+ 7089, 9063, 8405, 51, 6121, 4877, 6490,
+ 7089, 9063, 8405, 51, 6121, 6378,
+ 7089, 9063, 8405, 51, 6121, 6546,
+ 7089, 9063, 8405, 51, 6121, 8758,
+ 7089, 9063, 8405, 51, 6121, 10802,
+ 7089, 9063, 8405, 51, 6121, 11448,
+ 7089, 9063, 8405, 58,
+ 7089, 9063, 8405, 66,
+ 7089, 9063, 8405, 67, 6121, 6378,
+ 7089, 9063, 8405, 67, 6121, 8432,
+ 7089, 9063, 8405, 82,
+ 7089, 9063, 8405, 92,
+ 7089, 9063, 8405, 94,
+ 7089, 9063, 8405, 95, 6121, 11649, 760,
+ 7089, 9063, 8405, 98,
+ 7089, 9063, 8405, 156,
+ 7089, 9063, 8405, 157, 6121, 6546,
+ 7089, 9063, 8405, 186,
+ 7089, 9063, 8405, 282,
+ 7089, 9063, 8405, 342,
+ 7089, 9063, 8405, 406,
+ 7089, 9063, 8405, 432,
+ 7089, 9063, 8405, 440,
+ 7089, 9063, 8405, 450,
+ 7089, 9063, 8405, 578,
+ 7089, 9063, 8405, 620,
+ 7089, 9063, 8405, 912,
+ 7089, 9063, 8405, 1110,
+ 7089, 9063, 8405, 1124,
+ 7089, 9063, 8405, 1130,
+ 7089, 9063, 8405, 1138,
+ 7089, 9063, 8405, 1139, 6121, 6546,
+ 7089, 9063, 8405, 1139, 10488,
+ 7089, 9063, 8405, 2453, 9642,
+ 7089, 9063, 8405, 4389, 14,
+ 7089, 9063, 8405, 4404,
+ 7089, 9063, 8405, 4614,
+ 7089, 9063, 8405, 5385, 8,
+ 7089, 9063, 8405, 5385, 28,
+ 7089, 9063, 8405, 5965, 2540,
+ 7089, 9063, 8405, 5965, 2778,
+ 7089, 9063, 8405, 5965, 4200,
+ 7089, 9063, 8405, 6078,
+ 7089, 9063, 8405, 6138,
+ 7089, 9063, 8405, 6220,
+ 7089, 9063, 8405, 6406,
+ 7089, 9063, 8405, 6824,
+ 7089, 9063, 8405, 6960,
+ 7089, 9063, 8405, 7494,
+ 7089, 9063, 8405, 7519, 36,
+ 7089, 9063, 8405, 7593, 33, 6121, 4531, 5878,
+ 7089, 9063, 8405, 7692,
+ 7089, 9063, 8405, 7693, 6121, 8758,
+ 7089, 9063, 8405, 7693, 6121, 8759, 9785, 10802,
+ 7089, 9063, 8405, 8017, 22,
+ 7089, 9063, 8405, 8869, 0,
+ 7089, 9063, 8405, 8869, 22,
+ 7089, 9063, 8405, 8869, 24,
+ 7089, 9063, 8405, 8869, 42,
+ 7089, 9063, 8405, 8869, 9365, 12,
+ 7089, 9063, 8405, 8983, 6,
+ 7089, 9063, 8405, 9313, 5836,
+ 7089, 9063, 8405, 9365, 6,
+ 7089, 9063, 8405, 9365, 10,
+ 7089, 9063, 8405, 9365, 12,
+ 7089, 9063, 8405, 9365, 34,
+ 7089, 9063, 8405, 9365, 36,
+ 7089, 9063, 8405, 9365, 38,
+ 7089, 9063, 8405, 9808,
+ 7089, 9063, 8405, 10489, 5, 6121, 1044,
+ 7089, 9063, 8405, 10489, 8,
+ 7089, 9063, 8405, 10494,
+ 7089, 9063, 8405, 10640,
+ 7089, 9063, 8405, 10786,
+ 7089, 9063, 8405, 10787, 6121, 6616,
+ 7089, 9063, 8405, 11879, 50,
+ 7089, 9063, 8405, 12507, 42,
+ 7089, 9063, 8405, 12507, 344,
+ 7089, 9063, 8405, 12935, 710,
+ 7089, 9063, 8405, 12935, 3244,
+ 7089, 9063, 10301, 268,
+ 7089, 9063, 10301, 426,
+ 7089, 11261, 7593, 8405, 0,
+ 7089, 11261, 7593, 8405, 8,
+ 7089, 11261, 7593, 8405, 16,
+ 7089, 11261, 7593, 8405, 18,
+ 7089, 11261, 7593, 8405, 28,
+ 7089, 11261, 7593, 8405, 34,
+ 7089, 11261, 7593, 8405, 40,
+ 7089, 11261, 7593, 8405, 42,
+ 7089, 11261, 7593, 8405, 46,
+ 7089, 11261, 7593, 8405, 7494,
+ 7089, 11619, 8405, 17, 7112,
+ 7089, 11619, 8405, 9007, 24,
+ 7089, 11619, 8405, 10267, 24,
+ 7089, 11619, 8405, 10489, 10,
+ 7089, 11619, 8405, 10489, 30,
+ 7098,
+ 7101, 4849, 10637, 7533, 9051, 10380,
+ 7101, 7443, 10637, 7533, 9051, 10380,
+ 7101, 7512,
+ 7101, 10677, 760,
+ 7103, 5759, 1802,
+ 7103, 5759, 5620,
+ 7103, 5759, 11076,
+ 7103, 5759, 11130,
+ 7103, 6689, 2170,
+ 7103, 6689, 2540,
+ 7103, 6689, 2778,
+ 7103, 6689, 4200,
+ 7103, 6689, 4214,
+ 7103, 6689, 5190,
+ 7103, 6689, 6260,
+ 7103, 6689, 6722,
+ 7103, 6689, 7508,
+ 7103, 6689, 7694,
+ 7103, 7593, 8405, 306,
+ 7103, 7593, 8405, 332,
+ 7103, 7593, 8405, 364,
+ 7103, 7593, 8405, 392,
+ 7103, 7593, 8405, 462,
+ 7103, 7593, 8405, 510,
+ 7103, 7593, 8405, 556,
+ 7103, 7593, 8405, 2030,
+ 7103, 7593, 8405, 9870,
+ 7103, 7803, 5759, 0,
+ 7103, 7803, 5759, 8,
+ 7103, 7803, 5759, 16,
+ 7103, 7803, 5759, 28,
+ 7103, 7803, 5759, 40,
+ 7103, 7803, 5759, 72,
+ 7103, 7803, 5759, 92,
+ 7103, 7803, 5759, 162,
+ 7103, 7803, 5759, 440,
+ 7103, 8405, 100,
+ 7103, 8405, 116,
+ 7103, 8405, 138,
+ 7103, 8405, 216,
+ 7103, 8405, 236,
+ 7103, 8405, 292,
+ 7103, 8405, 306,
+ 7103, 8405, 332,
+ 7103, 8405, 364,
+ 7103, 8405, 392,
+ 7103, 8405, 462,
+ 7103, 8405, 510,
+ 7103, 8405, 524,
+ 7103, 8405, 556,
+ 7103, 8405, 622,
+ 7103, 8405, 652,
+ 7103, 8405, 792,
+ 7103, 8405, 884,
+ 7103, 8405, 996,
+ 7103, 8405, 1260,
+ 7103, 8405, 1512,
+ 7103, 8405, 1612,
+ 7103, 8405, 2030,
+ 7103, 8405, 2212,
+ 7103, 8405, 2516,
+ 7103, 8405, 2566,
+ 7103, 8405, 2678,
+ 7103, 8405, 3028,
+ 7103, 10469, 4926,
+ 7103, 11257, 8405, 510,
+ 7103, 11257, 8405, 622,
+ 7103, 11257, 8405, 652,
+ 7103, 12017, 4926,
+ 7103, 13033, 8404,
+ 7121, 2171, 8159, 6510,
+ 7121, 2171, 9615, 6510,
+ 7121, 4201, 9259, 6510,
+ 7121, 4389, 6510,
+ 7121, 4389, 8056,
+ 7121, 4389, 9367, 7821, 8056,
+ 7121, 4849, 10465, 9947, 730,
+ 7121, 4849, 10642,
+ 7121, 4849, 12857, 12901, 6434,
+ 7121, 6507, 10502,
+ 7121, 7443, 8077, 6121, 1044,
+ 7121, 7443, 8570,
+ 7121, 7443, 10465, 9947, 730,
+ 7121, 7443, 10513, 7821, 8744,
+ 7121, 7443, 10642,
+ 7121, 7443, 12857, 10763, 6434,
+ 7121, 7443, 12933, 7821, 8744,
+ 7121, 7509, 9259, 6510,
+ 7121, 7695, 9259, 6510,
+ 7121, 7695, 10467, 6510,
+ 7165, 5758,
+ 7173, 5758,
+ 7173, 5759, 275, 10642,
+ 7173, 5759, 6121, 1045, 6490,
+ 7173, 5759, 6121, 6617, 6376,
+ 7173, 5759, 6121, 8649, 4112,
+ 7173, 5759, 6121, 9279, 4112,
+ 7173, 7708,
+ 7199, 4205, 5758,
+ 7199, 7519, 5758,
+ 7199, 9491, 5758,
+ 7201, 7711, 10374,
+ 7201, 7768,
+ 7201, 7769, 10375, 6121, 1044,
+ 7201, 7769, 10375, 6121, 5444,
+ 7201, 7821, 10677, 760,
+ 7201, 8745, 7769, 10374,
+ 7201, 8745, 12493, 10374,
+ 7201, 9095, 1045, 10374,
+ 7201, 9095, 5445, 10374,
+ 7201, 9095, 7711, 10374,
+ 7201, 9437, 444,
+ 7201, 9437, 720,
+ 7201, 9610,
+ 7201, 10780,
+ 7201, 11262,
+ 7201, 12492,
+ 7202,
+ 7209, 5758,
+ 7271, 4153, 721, 7607, 6113, 6434,
+ 7271, 4153, 6434,
+ 7271, 4153, 6435, 721, 7607, 4153, 6434,
+ 7271, 4153, 6435, 6121, 4530,
+ 7271, 4153, 6435, 9967, 7271, 6113, 6434,
+ 7271, 4153, 6435, 9967, 7607, 4153, 6434,
+ 7271, 4153, 6505, 6434,
+ 7271, 4153, 7821, 6434,
+ 7271, 4153, 8153, 6434,
+ 7271, 6113, 721, 7607, 4153, 6434,
+ 7271, 6113, 6434,
+ 7271, 6113, 6435, 569, 4895, 760,
+ 7271, 6113, 6435, 569, 8076,
+ 7271, 6113, 6435, 721, 7271, 4153, 6434,
+ 7271, 6113, 6435, 6121, 4530,
+ 7271, 6113, 6435, 9967, 7271, 4153, 6434,
+ 7271, 6113, 6505, 6434,
+ 7271, 6113, 7821, 6434,
+ 7271, 6113, 8153, 6434,
+ 7309, 7609, 4926,
+ 7309, 8405, 444,
+ 7309, 8405, 602,
+ 7309, 8405, 2174,
+ 7309, 8405, 3236,
+ 7309, 8405, 3952,
+ 7309, 8405, 3982,
+ 7309, 8405, 4348,
+ 7309, 8405, 4600,
+ 7309, 8405, 4900,
+ 7309, 8405, 5018,
+ 7309, 8405, 5192,
+ 7309, 8405, 5604,
+ 7309, 8405, 5628,
+ 7309, 8405, 6044,
+ 7309, 8405, 6488,
+ 7309, 8405, 6558,
+ 7309, 8405, 6774,
+ 7309, 8405, 7356,
+ 7309, 8405, 7712,
+ 7309, 8405, 8752,
+ 7309, 8405, 9246,
+ 7309, 8405, 9248,
+ 7309, 8405, 9368,
+ 7309, 8405, 9504,
+ 7309, 8405, 10662,
+ 7309, 8405, 12008,
+ 7309, 9283, 4926,
+ 7309, 10489, 9283, 4926,
+ 7321, 73, 8399, 4926,
+ 7321, 93, 8399, 4926,
+ 7321, 5759, 7282,
+ 7321, 5759, 8916,
+ 7321, 5759, 9824,
+ 7321, 5759, 9870,
+ 7321, 5759, 9904,
+ 7321, 5759, 11900,
+ 7321, 6689, 2170,
+ 7321, 6689, 2540,
+ 7321, 6689, 2778,
+ 7321, 6689, 4200,
+ 7321, 6689, 4214,
+ 7321, 6689, 5190,
+ 7321, 6689, 6260,
+ 7321, 6689, 6722,
+ 7321, 6689, 7508,
+ 7321, 6689, 7694,
+ 7321, 7803, 5759, 8,
+ 7321, 7803, 5759, 16,
+ 7321, 7803, 5759, 28,
+ 7321, 7803, 5759, 40,
+ 7321, 7803, 5759, 58,
+ 7321, 7803, 5759, 72,
+ 7321, 7803, 5759, 92,
+ 7321, 7803, 5759, 266,
+ 7321, 7803, 5759, 606,
+ 7321, 7803, 5759, 9827, 22,
+ 7321, 7803, 5759, 9827, 34,
+ 7321, 7803, 5759, 9827, 344,
+ 7321, 7803, 5759, 9827, 518,
+ 7321, 8322,
+ 7321, 8405, 0,
+ 7321, 8405, 8,
+ 7321, 8405, 16,
+ 7321, 8405, 28,
+ 7321, 8405, 40,
+ 7321, 8405, 58,
+ 7321, 8405, 72,
+ 7321, 8405, 92,
+ 7321, 8405, 100,
+ 7321, 8405, 116,
+ 7321, 8405, 138,
+ 7321, 8405, 216,
+ 7321, 8405, 236,
+ 7321, 8405, 266,
+ 7321, 8405, 292,
+ 7321, 8405, 306,
+ 7321, 8405, 332,
+ 7321, 8405, 364,
+ 7321, 8405, 392,
+ 7321, 8405, 462,
+ 7321, 8405, 510,
+ 7321, 8405, 524,
+ 7321, 8405, 556,
+ 7321, 8405, 606,
+ 7321, 8405, 610,
+ 7321, 8405, 622,
+ 7321, 8405, 652,
+ 7321, 8405, 792,
+ 7321, 8405, 884,
+ 7321, 8405, 974,
+ 7321, 8405, 996,
+ 7321, 8405, 1260,
+ 7321, 8405, 1512,
+ 7321, 8405, 1612,
+ 7321, 8405, 1796,
+ 7321, 8405, 2030,
+ 7321, 8405, 2076,
+ 7321, 8405, 2126,
+ 7321, 8405, 2212,
+ 7321, 8405, 2410,
+ 7321, 8405, 2438,
+ 7321, 8405, 2516,
+ 7321, 8405, 2566,
+ 7321, 8405, 2678,
+ 7321, 8405, 2746,
+ 7321, 8405, 3110,
+ 7321, 8405, 4016,
+ 7321, 8405, 5994,
+ 7321, 8405, 9827, 22,
+ 7321, 8405, 9827, 34,
+ 7321, 8405, 9827, 344,
+ 7321, 8405, 9827, 518,
+ 7325, 5758,
+ 7349, 8774,
+ 7377, 429, 10263, 5758,
+ 7380,
+ 7387, 5758,
+ 7390,
+ 7393, 8677, 8774,
+ 7424,
+ 7443, 731, 12473, 9050,
+ 7443, 1809, 11715, 9050,
+ 7443, 2171, 8159, 6510,
+ 7443, 4197, 5878,
+ 7443, 4389, 6505, 8056,
+ 7443, 4389, 6510,
+ 7443, 5876,
+ 7443, 6408,
+ 7443, 6409, 6121, 730,
+ 7443, 6409, 6121, 10959, 8963, 6434,
+ 7443, 6409, 8151, 12877, 8450,
+ 7443, 6409, 9050,
+ 7443, 6409, 9051, 6121, 1044,
+ 7443, 6409, 9817, 6121, 8744,
+ 7443, 6409, 12877, 8450,
+ 7443, 6435, 6121, 7593, 8056,
+ 7443, 6435, 6121, 9095, 5444,
+ 7443, 6505, 10637, 7533, 9050,
+ 7443, 6505, 11677, 9050,
+ 7443, 6627, 9050,
+ 7443, 6627, 9051, 7121, 4530,
+ 7443, 6627, 9051, 7773, 4530,
+ 7443, 6627, 9051, 8473, 7370,
+ 7443, 6792,
+ 7443, 7327, 4676,
+ 7443, 7821, 6627, 9050,
+ 7443, 7821, 8077, 9050,
+ 7443, 7821, 8745, 9050,
+ 7443, 7821, 10637, 7533, 9050,
+ 7443, 7821, 11677, 9050,
+ 7443, 7821, 12114,
+ 7443, 8077, 9050,
+ 7443, 8151, 12877, 9050,
+ 7443, 8153, 6409, 9050,
+ 7443, 8153, 6435, 6121, 9645, 4398,
+ 7443, 8153, 8933, 6778,
+ 7443, 8153, 11195, 4926,
+ 7443, 8153, 12114,
+ 7443, 8521, 8191, 11793, 9610,
+ 7443, 8631, 10371, 9050,
+ 7443, 8717, 11195, 4926,
+ 7443, 8745, 9050,
+ 7443, 8745, 9051, 6121, 5935, 275, 2725, 8076,
+ 7443, 8745, 9051, 6121, 5935, 275, 8005, 8076,
+ 7443, 8745, 9051, 6121, 7412,
+ 7443, 8745, 9051, 6121, 10666,
+ 7443, 8745, 9051, 7121, 8076,
+ 7443, 8745, 9051, 7773, 8076,
+ 7443, 8745, 9051, 10982,
+ 7443, 8933, 6778,
+ 7443, 9074,
+ 7443, 10493, 753, 10794,
+ 7443, 10523, 41, 9050,
+ 7443, 10637, 7533, 9050,
+ 7443, 10642,
+ 7443, 10643, 6377, 4849, 10642,
+ 7443, 10677, 761, 6121, 7412,
+ 7443, 10677, 827, 4876,
+ 7443, 11793, 9610,
+ 7443, 12114,
+ 7443, 12115, 7121, 4530,
+ 7443, 12115, 7773, 4530,
+ 7443, 12115, 10982,
+ 7443, 12877, 9050,
+ 7443, 13029, 9050,
+ 7453, 89, 5758,
+ 7453, 7765, 5758,
+ 7453, 9167, 9679, 5758,
+ 7453, 9513, 2170,
+ 7453, 9513, 2171, 9344,
+ 7453, 9513, 2171, 9345, 10624,
+ 7453, 9513, 2171, 10624,
+ 7453, 9513, 2171, 10625, 5, 6,
+ 7453, 9513, 2540,
+ 7453, 9513, 2541, 4839, 4212,
+ 7453, 9513, 2670,
+ 7453, 9513, 2671, 10624,
+ 7453, 9513, 2778,
+ 7453, 9513, 4200,
+ 7453, 9513, 4201, 9344,
+ 7453, 9513, 4201, 10624,
+ 7453, 9513, 4214,
+ 7453, 9513, 5190,
+ 7453, 9513, 6722,
+ 7453, 9513, 6784,
+ 7453, 9513, 6785, 6715, 4212,
+ 7453, 9513, 6785, 10624,
+ 7453, 9513, 7508,
+ 7453, 9513, 7694,
+ 7453, 9513, 8162,
+ 7453, 9513, 8874,
+ 7453, 9513, 10489, 2171, 9344,
+ 7453, 9675, 5758,
+ 7453, 9679, 5758,
+ 7453, 9691, 5758,
+ 7453, 9995, 5758,
+ 7453, 10511, 5758,
+ 7453, 10757, 5758,
+ 7453, 10961, 5758,
+ 7453, 11193, 5758,
+ 7453, 11797, 5758,
+ 7467, 6623, 12132,
+ 7467, 7935, 8774,
+ 7467, 8405, 4,
+ 7467, 8405, 6,
+ 7467, 8405, 8,
+ 7467, 8405, 12,
+ 7467, 8405, 28,
+ 7467, 8405, 32,
+ 7467, 8405, 42,
+ 7467, 8405, 44,
+ 7467, 8405, 46,
+ 7467, 8405, 48,
+ 7467, 8405, 50,
+ 7467, 8405, 63, 0,
+ 7467, 8405, 426,
+ 7467, 8405, 438,
+ 7467, 8405, 447, 28,
+ 7467, 8405, 662,
+ 7467, 8405, 878,
+ 7467, 8405, 1090,
+ 7467, 8405, 1110,
+ 7467, 8405, 1130,
+ 7467, 8405, 1220,
+ 7467, 8405, 1244,
+ 7467, 8405, 1486,
+ 7467, 8405, 1494,
+ 7467, 8405, 3230,
+ 7467, 8405, 3840,
+ 7467, 8405, 4185, 4189, 199, 10,
+ 7467, 8405, 4265, 4381, 12,
+ 7467, 8405, 4617, 283, 1501, 16,
+ 7467, 8405, 4625, 1114,
+ 7467, 8405, 4731, 20,
+ 7467, 8405, 5828,
+ 7467, 8405, 6059, 603, 40,
+ 7467, 8405, 6401, 6738,
+ 7467, 8405, 6415, 0,
+ 7467, 8405, 6554,
+ 7467, 8405, 6635, 3979, 6,
+ 7467, 8405, 6721, 167, 8,
+ 7467, 8405, 6891, 14,
+ 7467, 8405, 6997, 18,
+ 7467, 8405, 7028,
+ 7467, 8405, 7419, 2383, 5533, 34,
+ 7467, 8405, 7567, 13213, 36,
+ 7467, 8405, 7719, 2699, 2789, 38,
+ 7467, 8405, 7835, 6139, 44,
+ 7467, 8405, 8283, 14,
+ 7467, 8405, 8312,
+ 7467, 8405, 8391, 4829, 4891, 22,
+ 7467, 8405, 8441, 1861, 24,
+ 7467, 8405, 8501, 2129, 5057, 26,
+ 7467, 8405, 8540,
+ 7467, 8405, 8579, 8575, 30,
+ 7467, 8405, 8727, 36,
+ 7467, 8405, 9132,
+ 7467, 8405, 9543, 6759, 28,
+ 7467, 8405, 9911, 6495, 9047, 2,
+ 7467, 8405, 10132,
+ 7467, 8405, 10134,
+ 7467, 8405, 10136,
+ 7467, 8405, 10627, 7699, 7692,
+ 7467, 8405, 12482,
+ 7467, 8405, 13013, 0,
+ 7467, 8405, 13014,
+ 7467, 8405, 13057, 66,
+ 7467, 8405, 13058,
+ 7467, 8405, 13073, 28,
+ 7467, 8405, 13075, 36,
+ 7467, 8405, 13077, 38,
+ 7467, 8405, 13211, 28,
+ 7467, 8405, 13227, 24,
+ 7467, 8405, 13229, 26,
+ 7467, 8405, 13339, 24,
+ 7467, 8405, 13377, 14,
+ 7467, 8405, 13391, 14,
+ 7467, 8405, 13399, 2,
+ 7467, 8717, 12132,
+ 7467, 9909, 8774,
+ 7467, 10349, 12132,
+ 7467, 10657, 8774,
+ 7469, 5758,
+ 7551, 601, 5876,
+ 7551, 601, 5877, 6121, 10666,
+ 7551, 601, 5877, 6377, 7551, 4117, 5876,
+ 7551, 4117, 5876,
+ 7551, 4117, 5877, 6121, 9546,
+ 7551, 4849, 5876,
+ 7551, 11765, 6435, 6377, 11097, 6434,
+ 7579, 721, 11466,
+ 7588,
+ 7593, 175, 3992,
+ 7593, 2857, 6121, 10666,
+ 7593, 4223, 5836,
+ 7593, 4849, 6627, 9050,
+ 7593, 4849, 10637, 7533, 9050,
+ 7593, 4849, 12114,
+ 7593, 5445, 5758,
+ 7593, 6610,
+ 7593, 6616,
+ 7593, 7443, 6627, 9050,
+ 7593, 7443, 10637, 7533, 9050,
+ 7593, 7443, 12114,
+ 7593, 7453, 9513, 2170,
+ 7593, 7453, 9513, 2171, 9344,
+ 7593, 7453, 9513, 2171, 10624,
+ 7593, 7453, 9513, 2540,
+ 7593, 7453, 9513, 2670,
+ 7593, 7453, 9513, 2778,
+ 7593, 7453, 9513, 4200,
+ 7593, 7453, 9513, 4201, 9344,
+ 7593, 7453, 9513, 4214,
+ 7593, 7453, 9513, 5190,
+ 7593, 7453, 9513, 6722,
+ 7593, 7453, 9513, 6784,
+ 7593, 7453, 9513, 7508,
+ 7593, 7453, 9513, 7694,
+ 7593, 7453, 9513, 8162,
+ 7593, 7453, 9513, 8874,
+ 7593, 7708,
+ 7593, 8129, 5758,
+ 7593, 8167, 5758,
+ 7593, 8525, 5758,
+ 7593, 9263, 428,
+ 7593, 9263, 429, 6121, 9546,
+ 7593, 9263, 429, 6121, 10677, 761, 91, 1109, 429, 11649, 8758,
+ 7593, 9581, 5758,
+ 7593, 9633, 9718,
+ 7593, 9898,
+ 7593, 9959, 89, 8466,
+ 7593, 9959, 6121, 9546,
+ 7593, 9959, 6121, 10677, 761, 91, 1109, 429, 11649, 8758,
+ 7593, 10469, 4926,
+ 7593, 10708,
+ 7593, 11099, 5758,
+ 7593, 11224,
+ 7593, 11451, 90,
+ 7593, 12017, 4926,
+ 7593, 12043, 6616,
+ 7593, 12473, 5758,
+ 7593, 12478,
+ 7595, 9610,
+ 7598,
+ 7605, 11201, 10782,
+ 7607, 4153, 6434,
+ 7607, 4153, 6435, 569, 8076,
+ 7607, 4153, 6435, 721, 7607, 6113, 6434,
+ 7607, 4153, 6435, 6121, 4530,
+ 7607, 4153, 6435, 9967, 7271, 4153, 6434,
+ 7607, 4153, 6505, 6434,
+ 7607, 4153, 7821, 6434,
+ 7607, 4153, 8153, 6434,
+ 7607, 6113, 6434,
+ 7607, 6113, 6435, 721, 7271, 6113, 6434,
+ 7607, 6113, 6435, 6121, 4530,
+ 7607, 6113, 6505, 6434,
+ 7607, 6113, 7821, 6434,
+ 7607, 6113, 8153, 6434,
+ 7608,
+ 7619, 6505, 11765, 6434,
+ 7627, 429, 8298,
+ 7627, 429, 11886,
+ 7659, 3992,
+ 7665, 89, 6377, 5758,
+ 7665, 93, 8399, 4926,
+ 7665, 436,
+ 7665, 973, 5758,
+ 7665, 5759, 8916,
+ 7665, 5759, 9824,
+ 7665, 5759, 9870,
+ 7665, 6197, 5758,
+ 7665, 6673, 5758,
+ 7665, 6689, 2170,
+ 7665, 6689, 2540,
+ 7665, 6689, 2778,
+ 7665, 6689, 4200,
+ 7665, 6689, 4214,
+ 7665, 6689, 5190,
+ 7665, 6689, 6260,
+ 7665, 6689, 6722,
+ 7665, 6689, 7508,
+ 7665, 6689, 7694,
+ 7665, 7183, 5758,
+ 7665, 7469, 5758,
+ 7665, 7803, 5759, 8,
+ 7665, 7803, 5759, 16,
+ 7665, 7803, 5759, 28,
+ 7665, 7803, 5759, 40,
+ 7665, 7803, 5759, 58,
+ 7665, 7803, 5759, 72,
+ 7665, 7803, 5759, 92,
+ 7665, 7803, 5759, 162,
+ 7665, 7803, 5759, 266,
+ 7665, 7803, 5759, 440,
+ 7665, 7803, 5759, 606,
+ 7665, 8081, 5758,
+ 7665, 8405, 0,
+ 7665, 8405, 8,
+ 7665, 8405, 16,
+ 7665, 8405, 28,
+ 7665, 8405, 40,
+ 7665, 8405, 58,
+ 7665, 8405, 72,
+ 7665, 8405, 92,
+ 7665, 8405, 116,
+ 7665, 8405, 162,
+ 7665, 8405, 236,
+ 7665, 8405, 266,
+ 7665, 8405, 292,
+ 7665, 8405, 306,
+ 7665, 8405, 332,
+ 7665, 8405, 364,
+ 7665, 8405, 392,
+ 7665, 8405, 440,
+ 7665, 8405, 462,
+ 7665, 8405, 510,
+ 7665, 8405, 524,
+ 7665, 8405, 556,
+ 7665, 8405, 606,
+ 7665, 8405, 610,
+ 7665, 8405, 652,
+ 7665, 8405, 1796,
+ 7665, 8405, 2030,
+ 7665, 8405, 2076,
+ 7665, 8405, 2126,
+ 7665, 8405, 2438,
+ 7665, 8405, 2516,
+ 7665, 8405, 2566,
+ 7665, 8405, 2746,
+ 7665, 8405, 4888,
+ 7665, 8405, 5234,
+ 7665, 8525, 2171, 9344,
+ 7665, 8525, 2171, 10624,
+ 7665, 8525, 2670,
+ 7665, 8525, 5758,
+ 7681, 4103, 2091, 6764,
+ 7681, 8174,
+ 7695, 1045, 12132,
+ 7695, 11097, 7944,
+ 7695, 11765, 7944,
+ 7695, 11913, 8167, 7570,
+ 7695, 11943, 6408,
+ 7707, 11861, 11242,
+ 7708,
+ 7709, 6121, 1045, 6376,
+ 7709, 6121, 1045, 6490,
+ 7709, 6121, 5551, 6376,
+ 7709, 10374,
+ 7709, 10375, 6121, 1045, 6376,
+ 7709, 10375, 6121, 8649, 4112,
+ 7709, 10375, 6377, 11097, 6434,
+ 7709, 10375, 6377, 11765, 6434,
+ 7711, 6121, 4849, 4389, 6504,
+ 7711, 6121, 7443, 4389, 6504,
+ 7729, 8654,
+ 7733, 4927, 5758,
+ 7768,
+ 7769, 6121, 7173, 5758,
+ 7769, 6121, 9437, 444,
+ 7769, 6121, 9546,
+ 7769, 6377, 761, 6377, 12492,
+ 7769, 6377, 12492,
+ 7769, 7991, 721, 8329, 6121, 7768,
+ 7773, 2171, 8159, 6510,
+ 7773, 4389, 6510,
+ 7773, 4389, 8056,
+ 7773, 4389, 9367, 7821, 8056,
+ 7773, 4849, 445, 7121, 7443, 6627, 9051, 9664,
+ 7773, 4849, 8077, 6121, 1044,
+ 7773, 4849, 10465, 9947, 730,
+ 7773, 4849, 10642,
+ 7773, 6507, 10502,
+ 7773, 7443, 445, 7121, 4849, 6627, 9051, 9664,
+ 7773, 7443, 8570,
+ 7773, 7443, 10465, 9947, 730,
+ 7773, 7443, 10513, 7821, 8744,
+ 7773, 7443, 10642,
+ 7773, 7443, 12933, 7821, 8744,
+ 7794,
+ 7798,
+ 7810,
+ 7819, 429, 8112,
+ 7821, 601, 10441, 6992,
+ 7821, 2048,
+ 7821, 2587, 6121, 5528,
+ 7821, 3949, 5842,
+ 7821, 4117, 10441, 6992,
+ 7821, 4202,
+ 7821, 4215, 9601, 5830,
+ 7821, 4849, 10441, 6992,
+ 7821, 5830,
+ 7821, 6081, 7593, 8744,
+ 7821, 6571, 4760,
+ 7821, 6571, 5404,
+ 7821, 6571, 5564,
+ 7821, 6571, 7410,
+ 7821, 6571, 7996,
+ 7821, 6571, 8368,
+ 7821, 6907, 5842,
+ 7821, 7085, 8744,
+ 7821, 7443, 10441, 6992,
+ 7821, 7547, 7370,
+ 7821, 7593, 5830,
+ 7821, 7593, 8744,
+ 7821, 7593, 9438,
+ 7821, 7611, 5842,
+ 7821, 8022,
+ 7821, 8056,
+ 7821, 8057, 6121, 1045, 7442,
+ 7821, 8057, 6121, 2779, 4112,
+ 7821, 8057, 6121, 4117, 6434,
+ 7821, 8057, 6121, 7121, 4849, 10464,
+ 7821, 8057, 6121, 7121, 7443, 10464,
+ 7821, 8057, 6121, 7773, 4849, 10464,
+ 7821, 8057, 6121, 7773, 7443, 10464,
+ 7821, 8463, 5830,
+ 7821, 8463, 7593, 8744,
+ 7821, 8463, 8744,
+ 7821, 8463, 9158,
+ 7821, 8463, 9438,
+ 7821, 8691, 1044,
+ 7821, 8744,
+ 7821, 8745, 6121, 7121, 4849, 10464,
+ 7821, 8745, 6121, 7121, 7443, 10464,
+ 7821, 8745, 6121, 7773, 4849, 10464,
+ 7821, 8745, 6121, 7773, 7443, 10464,
+ 7821, 8745, 6121, 8037, 10677, 4876,
+ 7821, 8745, 6121, 9645, 9118,
+ 7821, 8745, 6121, 10677, 10739, 4876,
+ 7821, 8745, 6121, 11097, 5934,
+ 7821, 8745, 6121, 11765, 5934,
+ 7821, 8745, 11461, 6505, 7593, 8744,
+ 7821, 9158,
+ 7821, 9159, 5842,
+ 7821, 9159, 6121, 9079, 1044,
+ 7821, 9159, 11461, 6505, 7593, 9158,
+ 7821, 9338,
+ 7821, 9711, 4178,
+ 7821, 10143, 1860,
+ 7821, 10143, 4760,
+ 7821, 10194,
+ 7821, 10209, 4178,
+ 7821, 10420,
+ 7821, 10502,
+ 7821, 10643, 11461, 7593, 7821, 10642,
+ 7821, 10677, 760,
+ 7821, 10677, 9264,
+ 7821, 10677, 11202,
+ 7821, 11036,
+ 7821, 11202,
+ 7821, 11354,
+ 7821, 11364,
+ 7821, 11649, 9264,
+ 7821, 12383, 7593, 10642,
+ 7821, 12383, 10642,
+ 7821, 12383, 10643, 6121, 1044,
+ 7821, 12917, 9158,
+ 7821, 12917, 9159, 6121, 11097, 5934,
+ 7821, 12917, 9159, 6121, 11765, 5934,
+ 7821, 12931, 7593, 10642,
+ 7821, 12931, 10642,
+ 7821, 12967, 7593, 10642,
+ 7821, 12967, 9602,
+ 7821, 12967, 10642,
+ 7821, 12984,
+ 7821, 13067, 7593, 10642,
+ 7821, 13067, 9602,
+ 7821, 13067, 10420,
+ 7821, 13067, 10642,
+ 7911, 1049, 9467, 6791, 9748,
+ 7911, 6129, 11229, 1044,
+ 7911, 6129, 11229, 4876,
+ 7911, 6569, 4926,
+ 7911, 8423, 9467, 6791, 9748,
+ 7911, 8525, 2170,
+ 7911, 8525, 2171, 9344,
+ 7911, 8525, 2171, 10624,
+ 7911, 8525, 2540,
+ 7911, 8525, 2541, 9344,
+ 7911, 8525, 2541, 10624,
+ 7911, 8525, 2670,
+ 7911, 8525, 2671, 10624,
+ 7911, 8525, 2778,
+ 7911, 8525, 2779, 9344,
+ 7911, 8525, 2779, 10624,
+ 7911, 8525, 4200,
+ 7911, 8525, 4201, 9344,
+ 7911, 8525, 4201, 10624,
+ 7911, 8525, 4214,
+ 7911, 8525, 4215, 9344,
+ 7911, 8525, 4215, 10624,
+ 7911, 8525, 5190,
+ 7911, 8525, 5191, 9344,
+ 7911, 8525, 5191, 10624,
+ 7911, 8525, 6722,
+ 7911, 8525, 6723, 9344,
+ 7911, 8525, 6723, 10624,
+ 7911, 8525, 6784,
+ 7911, 8525, 6785, 10624,
+ 7911, 8525, 6804,
+ 7911, 8525, 6805, 10624,
+ 7911, 8525, 7508,
+ 7911, 8525, 7509, 9344,
+ 7911, 8525, 7509, 10624,
+ 7911, 8525, 7576,
+ 7911, 8525, 7577, 10624,
+ 7911, 8525, 7694,
+ 7911, 8525, 7695, 9344,
+ 7911, 8525, 7695, 10624,
+ 7911, 8525, 8160,
+ 7911, 8525, 8161, 10624,
+ 7911, 8525, 8514,
+ 7911, 8525, 8515, 10624,
+ 7911, 8525, 8820,
+ 7911, 8525, 8821, 10624,
+ 7911, 8525, 8876,
+ 7911, 8525, 8877, 10624,
+ 7911, 8525, 9672,
+ 7911, 8525, 9673, 10624,
+ 7911, 8931, 3717, 6052,
+ 7911, 8931, 6791, 9748,
+ 7911, 8931, 7687, 9748,
+ 7911, 8931, 8233, 9748,
+ 7911, 8931, 8681, 9748,
+ 7911, 9467, 7687, 9748,
+ 7911, 9467, 8681, 9748,
+ 7919, 6741, 445, 6741, 568,
+ 7919, 6741, 568,
+ 7919, 6741, 569, 6121, 11449, 7908,
+ 7922,
+ 7931, 1109, 429, 3288,
+ 7931, 2396,
+ 7931, 3997, 11228,
+ 7931, 4201, 9601, 5830,
+ 7931, 4223, 5836,
+ 7931, 4927, 5241, 8260,
+ 7931, 5759, 5521, 8995, 3262,
+ 7931, 5759, 7176,
+ 7931, 5759, 7476,
+ 7931, 5759, 7486,
+ 7931, 5759, 7917, 9894,
+ 7931, 5759, 8715, 10708,
+ 7931, 5759, 8715, 12523, 1894,
+ 7931, 5759, 11350,
+ 7931, 5759, 12137, 7916,
+ 7931, 5759, 12159, 7917, 11396,
+ 7931, 5879, 10204,
+ 7931, 6616,
+ 7931, 6644,
+ 7931, 6645, 8461, 4212,
+ 7931, 6645, 10275, 4212,
+ 7931, 6731, 8037, 1809, 5836,
+ 7931, 6731, 8037, 4423, 5836,
+ 7931, 6772,
+ 7931, 6773, 6121, 2779, 4112,
+ 7931, 6773, 8461, 4212,
+ 7931, 6773, 10275, 4212,
+ 7931, 6895, 6376,
+ 7931, 6895, 6490,
+ 7931, 7026,
+ 7931, 7027, 8461, 4212,
+ 7931, 7027, 10275, 4212,
+ 7931, 7377, 429, 8658,
+ 7931, 7593, 1809, 4942,
+ 7931, 7593, 1809, 5648,
+ 7931, 7593, 2918,
+ 7931, 7593, 3052,
+ 7931, 7593, 4423, 1739, 3244,
+ 7931, 7593, 4423, 2640,
+ 7931, 7593, 4423, 3052,
+ 7931, 7593, 4423, 4630,
+ 7931, 7593, 4423, 4943, 9363, 4212,
+ 7931, 7593, 4423, 4943, 10275, 4212,
+ 7931, 7593, 4423, 5240,
+ 7931, 7593, 4423, 5648,
+ 7931, 7593, 4423, 6254,
+ 7931, 7593, 4423, 7124,
+ 7931, 7593, 4423, 7695, 4112,
+ 7931, 7593, 4423, 9185, 4399, 429, 4736,
+ 7931, 7593, 4423, 9645, 6260,
+ 7931, 7593, 4423, 9807, 12139, 6260,
+ 7931, 7593, 4423, 10301, 2285, 6121, 1739, 6121, 3245, 9448,
+ 7931, 7593, 4423, 10301, 2485, 6121, 1739, 6121, 3245, 9448,
+ 7931, 7593, 4423, 10301, 3245, 6121, 1739, 6121, 3052,
+ 7931, 7593, 6644,
+ 7931, 7593, 6772,
+ 7931, 7593, 7026,
+ 7931, 7633, 429, 2451, 173, 4424,
+ 7931, 7650,
+ 7931, 7651, 8461, 4212,
+ 7931, 7651, 10275, 4212,
+ 7931, 7803, 5759, 1045, 6490,
+ 7931, 7803, 5759, 7593, 43, 6376,
+ 7931, 7803, 5759, 10267, 7593, 43, 6376,
+ 7931, 8405, 8,
+ 7931, 8405, 9, 6789, 4212,
+ 7931, 8405, 9, 8461, 4212,
+ 7931, 8405, 9, 9363, 4212,
+ 7931, 8405, 9, 10275, 4212,
+ 7931, 8405, 40,
+ 7931, 8405, 41, 6121, 6895, 6376,
+ 7931, 8405, 41, 6121, 6895, 6377, 10275, 4212,
+ 7931, 8405, 41, 6789, 4212,
+ 7931, 8405, 41, 10275, 4212,
+ 7931, 8405, 66,
+ 7931, 8405, 400,
+ 7931, 8405, 401, 6789, 4212,
+ 7931, 8405, 401, 8461, 4212,
+ 7931, 8405, 401, 9363, 4212,
+ 7931, 8405, 401, 10275, 4212,
+ 7931, 8405, 426,
+ 7931, 8405, 427, 6789, 4212,
+ 7931, 8405, 427, 10275, 4212,
+ 7931, 8405, 612,
+ 7931, 8405, 613, 6789, 4212,
+ 7931, 8405, 613, 10275, 4212,
+ 7931, 8405, 664,
+ 7931, 8405, 665, 6789, 4212,
+ 7931, 8405, 665, 10275, 4212,
+ 7931, 8405, 710,
+ 7931, 8405, 711, 6121, 2779, 4113, 6376,
+ 7931, 8405, 711, 6121, 2779, 4113, 11877, 6376,
+ 7931, 8405, 711, 6121, 7695, 4113, 6376,
+ 7931, 8405, 711, 6121, 7695, 4113, 10441, 10959, 6376,
+ 7931, 8405, 711, 6789, 4212,
+ 7931, 8405, 711, 8461, 4212,
+ 7931, 8405, 711, 9363, 4212,
+ 7931, 8405, 711, 10275, 4212,
+ 7931, 8405, 780,
+ 7931, 8405, 781, 6121, 1045, 6491, 721, 7695, 4113, 6376,
+ 7931, 8405, 781, 6121, 2779, 4113, 6491, 721, 1045, 6376,
+ 7931, 8405, 781, 6121, 7593, 42,
+ 7931, 8405, 781, 6121, 7695, 4113, 10441, 9811, 6490,
+ 7931, 8405, 781, 6121, 7695, 4113, 10441, 9811, 6491, 721, 2779, 4113, 6376,
+ 7931, 8405, 781, 6121, 7695, 4113, 12477, 6490,
+ 7931, 8405, 781, 6121, 10267, 7593, 43, 6490,
+ 7931, 8405, 781, 6789, 4212,
+ 7931, 8405, 781, 8461, 4212,
+ 7931, 8405, 781, 9363, 4212,
+ 7931, 8405, 781, 10275, 4212,
+ 7931, 8405, 956,
+ 7931, 8405, 957, 6121, 1045, 6490,
+ 7931, 8405, 957, 6789, 4212,
+ 7931, 8405, 957, 8461, 4212,
+ 7931, 8405, 957, 9363, 4212,
+ 7931, 8405, 957, 10275, 4212,
+ 7931, 8405, 960,
+ 7931, 8405, 961, 6121, 1045, 6490,
+ 7931, 8405, 961, 6121, 1045, 6491, 721, 7593, 2640,
+ 7931, 8405, 961, 6121, 2779, 4113, 11877, 6491, 721, 7593, 2640,
+ 7931, 8405, 961, 6121, 4215, 4113, 6376,
+ 7931, 8405, 961, 6121, 5550,
+ 7931, 8405, 961, 6121, 7695, 4113, 6377, 10958,
+ 7931, 8405, 961, 6121, 10267, 42,
+ 7931, 8405, 961, 6121, 10267, 7593, 43, 6490,
+ 7931, 8405, 961, 6789, 4212,
+ 7931, 8405, 961, 10275, 4212,
+ 7931, 8405, 1056,
+ 7931, 8405, 1057, 6789, 4212,
+ 7931, 8405, 1057, 10275, 4212,
+ 7931, 8405, 1152,
+ 7931, 8405, 1153, 6121, 1045, 6490,
+ 7931, 8405, 1153, 6121, 1045, 7189, 6490,
+ 7931, 8405, 1153, 6121, 2779, 4113, 6490,
+ 7931, 8405, 1153, 6121, 7695, 4113, 6490,
+ 7931, 8405, 1153, 6121, 7695, 4113, 10441, 9811, 6490,
+ 7931, 8405, 1153, 6789, 4212,
+ 7931, 8405, 1153, 8461, 4212,
+ 7931, 8405, 1153, 9363, 4212,
+ 7931, 8405, 1153, 10275, 4212,
+ 7931, 8405, 1208,
+ 7931, 8405, 1209, 6121, 2779, 4113, 6490,
+ 7931, 8405, 1209, 6121, 5550,
+ 7931, 8405, 1209, 6121, 7695, 4113, 6376,
+ 7931, 8405, 1209, 6789, 4212,
+ 7931, 8405, 1209, 8461, 4212,
+ 7931, 8405, 1209, 9363, 4212,
+ 7931, 8405, 1209, 10275, 4212,
+ 7931, 8405, 1342,
+ 7931, 8405, 1343, 6121, 2779, 4113, 6376,
+ 7931, 8405, 1343, 6121, 2779, 4113, 10677, 6376,
+ 7931, 8405, 1343, 6121, 6895, 6376,
+ 7931, 8405, 1343, 6121, 7593, 7931, 8405, 2641, 721, 2779, 4112,
+ 7931, 8405, 1343, 6121, 7593, 7931, 8405, 2641, 6376,
+ 7931, 8405, 1343, 6121, 7593, 7931, 8405, 2641, 6490,
+ 7931, 8405, 1343, 6121, 7695, 4113, 6376,
+ 7931, 8405, 1343, 6121, 7695, 4113, 10441, 9811, 6490,
+ 7931, 8405, 1343, 6121, 10173, 12403, 6689, 4215, 6490,
+ 7931, 8405, 1343, 6789, 4212,
+ 7931, 8405, 1343, 8461, 4212,
+ 7931, 8405, 1343, 9363, 4212,
+ 7931, 8405, 1343, 10275, 4212,
+ 7931, 8405, 1358,
+ 7931, 8405, 1359, 4340,
+ 7931, 8405, 1359, 4341, 6121, 6895, 6376,
+ 7931, 8405, 1359, 4341, 6789, 4212,
+ 7931, 8405, 1359, 4341, 8461, 4212,
+ 7931, 8405, 1359, 4341, 9363, 4212,
+ 7931, 8405, 1359, 4341, 10275, 4212,
+ 7931, 8405, 1359, 6121, 3053, 6376,
+ 7931, 8405, 1359, 6121, 3053, 6377, 6789, 4212,
+ 7931, 8405, 1359, 6121, 3053, 6377, 10275, 4212,
+ 7931, 8405, 1359, 6121, 10267, 42,
+ 7931, 8405, 1359, 6789, 4212,
+ 7931, 8405, 1359, 8461, 4212,
+ 7931, 8405, 1359, 9363, 4212,
+ 7931, 8405, 1359, 10275, 4212,
+ 7931, 8405, 1359, 11948,
+ 7931, 8405, 1359, 11949, 6789, 4212,
+ 7931, 8405, 1359, 11949, 8461, 4212,
+ 7931, 8405, 1359, 11949, 9363, 4212,
+ 7931, 8405, 1359, 11949, 10275, 4212,
+ 7931, 8405, 1508,
+ 7931, 8405, 1509, 6789, 4212,
+ 7931, 8405, 1509, 10275, 4212,
+ 7931, 8405, 1578,
+ 7931, 8405, 1579, 6121, 1045, 6376,
+ 7931, 8405, 1579, 6121, 2779, 4113, 6376,
+ 7931, 8405, 1579, 6121, 5550,
+ 7931, 8405, 1579, 6121, 7695, 4113, 6490,
+ 7931, 8405, 1579, 6789, 4212,
+ 7931, 8405, 1579, 8461, 4212,
+ 7931, 8405, 1579, 9363, 4212,
+ 7931, 8405, 1579, 10275, 4212,
+ 7931, 8405, 1738,
+ 7931, 8405, 1739, 6121, 760,
+ 7931, 8405, 1739, 6121, 1045, 6376,
+ 7931, 8405, 1739, 6121, 7593, 42,
+ 7931, 8405, 1739, 6121, 7695, 4113, 6376,
+ 7931, 8405, 1739, 6121, 7695, 4113, 6490,
+ 7931, 8405, 1739, 6789, 4212,
+ 7931, 8405, 1739, 8461, 4212,
+ 7931, 8405, 1739, 9363, 4212,
+ 7931, 8405, 1739, 10275, 4212,
+ 7931, 8405, 2206,
+ 7931, 8405, 2207, 6789, 4212,
+ 7931, 8405, 2207, 8461, 4212,
+ 7931, 8405, 2207, 9363, 4212,
+ 7931, 8405, 2207, 10275, 4212,
+ 7931, 8405, 2284,
+ 7931, 8405, 2285, 6121, 1045, 6376,
+ 7931, 8405, 2285, 6121, 7695, 4113, 6376,
+ 7931, 8405, 2285, 6789, 4212,
+ 7931, 8405, 2285, 8461, 4212,
+ 7931, 8405, 2285, 9363, 4212,
+ 7931, 8405, 2285, 10275, 4212,
+ 7931, 8405, 2404,
+ 7931, 8405, 2405, 6121, 1045, 6490,
+ 7931, 8405, 2405, 6121, 1045, 6491, 721, 1045, 6376,
+ 7931, 8405, 2405, 6121, 2779, 4113, 6376,
+ 7931, 8405, 2405, 6121, 2779, 4113, 11877, 6376,
+ 7931, 8405, 2405, 6121, 4215, 4113, 6376,
+ 7931, 8405, 2405, 6121, 5550,
+ 7931, 8405, 2405, 6121, 6895, 6376,
+ 7931, 8405, 2405, 6121, 7593, 42,
+ 7931, 8405, 2405, 6121, 7593, 43, 6490,
+ 7931, 8405, 2405, 6121, 7593, 7931, 8405, 2641, 721, 2779, 4112,
+ 7931, 8405, 2405, 6121, 8758,
+ 7931, 8405, 2405, 6121, 10267, 42,
+ 7931, 8405, 2405, 6789, 4212,
+ 7931, 8405, 2405, 10275, 4212,
+ 7931, 8405, 2484,
+ 7931, 8405, 2485, 6121, 2779, 4113, 6490,
+ 7931, 8405, 2485, 6121, 7695, 4113, 6376,
+ 7931, 8405, 2485, 6789, 4212,
+ 7931, 8405, 2485, 8461, 4212,
+ 7931, 8405, 2485, 9363, 4212,
+ 7931, 8405, 2485, 10275, 4212,
+ 7931, 8405, 2640,
+ 7931, 8405, 2641, 6121, 7695, 4113, 6376,
+ 7931, 8405, 2641, 6789, 4212,
+ 7931, 8405, 2641, 8461, 4212,
+ 7931, 8405, 2641, 9363, 4212,
+ 7931, 8405, 2641, 10275, 4212,
+ 7931, 8405, 2668,
+ 7931, 8405, 2669, 6121, 5550,
+ 7931, 8405, 2669, 6121, 7695, 4113, 6377, 10958,
+ 7931, 8405, 2669, 6789, 4212,
+ 7931, 8405, 2669, 8461, 4212,
+ 7931, 8405, 2669, 9363, 4212,
+ 7931, 8405, 2669, 9456,
+ 7931, 8405, 2669, 9457, 4340,
+ 7931, 8405, 2669, 9457, 6789, 4212,
+ 7931, 8405, 2669, 9457, 10275, 4212,
+ 7931, 8405, 2669, 10275, 4212,
+ 7931, 8405, 2858,
+ 7931, 8405, 2859, 6789, 4212,
+ 7931, 8405, 2859, 8461, 4212,
+ 7931, 8405, 2859, 9363, 4212,
+ 7931, 8405, 2859, 10275, 4212,
+ 7931, 8405, 2918,
+ 7931, 8405, 2919, 6121, 1045, 6376,
+ 7931, 8405, 2919, 6121, 2779, 4113, 6376,
+ 7931, 8405, 2919, 6121, 5550,
+ 7931, 8405, 2919, 6121, 6895, 6376,
+ 7931, 8405, 2919, 6121, 6895, 6377, 6789, 4212,
+ 7931, 8405, 2919, 6121, 6895, 6377, 10275, 4212,
+ 7931, 8405, 2919, 6121, 10173, 12403, 6689, 2779, 6376,
+ 7931, 8405, 2919, 6121, 10173, 12403, 6689, 7695, 6376,
+ 7931, 8405, 2919, 6789, 4212,
+ 7931, 8405, 2919, 10275, 4212,
+ 7931, 8405, 3052,
+ 7931, 8405, 3053, 6121, 5878,
+ 7931, 8405, 3053, 6121, 6895, 6376,
+ 7931, 8405, 3053, 6121, 6895, 6377, 6789, 4212,
+ 7931, 8405, 3053, 6121, 6895, 6377, 8461, 4212,
+ 7931, 8405, 3053, 6121, 6895, 6377, 9363, 4212,
+ 7931, 8405, 3053, 6121, 6895, 6377, 10275, 4212,
+ 7931, 8405, 3053, 6121, 7593, 42,
+ 7931, 8405, 3053, 6121, 7695, 4113, 6490,
+ 7931, 8405, 3053, 6789, 4212,
+ 7931, 8405, 3053, 7982,
+ 7931, 8405, 3053, 7983, 6121, 6895, 6376,
+ 7931, 8405, 3053, 7983, 6121, 6895, 6377, 6789, 4212,
+ 7931, 8405, 3053, 7983, 6121, 6895, 6377, 10275, 4212,
+ 7931, 8405, 3053, 7983, 6121, 10173, 12403, 6689, 2779, 6376,
+ 7931, 8405, 3053, 7983, 6121, 10173, 12403, 6689, 7695, 6376,
+ 7931, 8405, 3053, 7983, 6789, 4212,
+ 7931, 8405, 3053, 7983, 10275, 4212,
+ 7931, 8405, 3053, 8461, 4212,
+ 7931, 8405, 3053, 9363, 4212,
+ 7931, 8405, 3053, 10275, 4212,
+ 7931, 8405, 3124,
+ 7931, 8405, 3125, 6789, 4212,
+ 7931, 8405, 3125, 8461, 4212,
+ 7931, 8405, 3125, 9363, 4212,
+ 7931, 8405, 3125, 10275, 4212,
+ 7931, 8405, 3244,
+ 7931, 8405, 3245, 6121, 6107, 6895, 6376,
+ 7931, 8405, 3245, 6121, 6107, 6895, 6490,
+ 7931, 8405, 3245, 6121, 6895, 6376,
+ 7931, 8405, 3245, 6121, 6895, 6377, 6789, 4212,
+ 7931, 8405, 3245, 6121, 6895, 6377, 10275, 4212,
+ 7931, 8405, 3245, 6121, 6895, 6490,
+ 7931, 8405, 3245, 6121, 6895, 6491, 6789, 4212,
+ 7931, 8405, 3245, 6121, 6895, 6491, 10275, 4212,
+ 7931, 8405, 3245, 6121, 7125, 6376,
+ 7931, 8405, 3245, 6121, 7125, 6377, 6789, 4212,
+ 7931, 8405, 3245, 6121, 7125, 6377, 10275, 4212,
+ 7931, 8405, 3245, 6121, 10173, 12403, 6689, 2779, 6376,
+ 7931, 8405, 3245, 6121, 10173, 12403, 6689, 7695, 6376,
+ 7931, 8405, 3245, 6789, 4212,
+ 7931, 8405, 3245, 7808,
+ 7931, 8405, 3245, 7809, 6789, 4212,
+ 7931, 8405, 3245, 7809, 10275, 4212,
+ 7931, 8405, 3245, 9448,
+ 7931, 8405, 3245, 9449, 6789, 4212,
+ 7931, 8405, 3245, 9449, 10275, 4212,
+ 7931, 8405, 3245, 10275, 4212,
+ 7931, 8405, 3766,
+ 7931, 8405, 3767, 6789, 4212,
+ 7931, 8405, 3767, 8461, 4212,
+ 7931, 8405, 3767, 9363, 4212,
+ 7931, 8405, 3767, 10275, 4212,
+ 7931, 8405, 4000,
+ 7931, 8405, 4001, 6789, 4212,
+ 7931, 8405, 4001, 10275, 4212,
+ 7931, 8405, 4136,
+ 7931, 8405, 4137, 6789, 4212,
+ 7931, 8405, 4137, 8461, 4212,
+ 7931, 8405, 4137, 9363, 4212,
+ 7931, 8405, 4137, 10275, 4212,
+ 7931, 8405, 4356,
+ 7931, 8405, 4357, 6789, 4212,
+ 7931, 8405, 4357, 8461, 4212,
+ 7931, 8405, 4357, 9363, 4212,
+ 7931, 8405, 4357, 10275, 4212,
+ 7931, 8405, 4423, 6894,
+ 7931, 8405, 4423, 6895, 2918,
+ 7931, 8405, 4423, 6895, 3052,
+ 7931, 8405, 4423, 6895, 3244,
+ 7931, 8405, 4630,
+ 7931, 8405, 4631, 6789, 4212,
+ 7931, 8405, 4631, 8461, 4212,
+ 7931, 8405, 4631, 9363, 4212,
+ 7931, 8405, 4631, 10275, 4212,
+ 7931, 8405, 4736,
+ 7931, 8405, 4737, 6789, 4212,
+ 7931, 8405, 4737, 8461, 4212,
+ 7931, 8405, 4737, 9363, 4212,
+ 7931, 8405, 4737, 10275, 4212,
+ 7931, 8405, 4942,
+ 7931, 8405, 4943, 6121, 1045, 6376,
+ 7931, 8405, 4943, 6121, 1045, 6490,
+ 7931, 8405, 4943, 6789, 4212,
+ 7931, 8405, 4943, 8461, 4212,
+ 7931, 8405, 4943, 9363, 4212,
+ 7931, 8405, 4943, 10275, 4212,
+ 7931, 8405, 5240,
+ 7931, 8405, 5241, 6121, 1045, 6490,
+ 7931, 8405, 5241, 6121, 2779, 4113, 6490,
+ 7931, 8405, 5241, 6121, 5550,
+ 7931, 8405, 5241, 6121, 7593, 42,
+ 7931, 8405, 5241, 6121, 7593, 2640,
+ 7931, 8405, 5241, 6121, 7695, 4113, 6376,
+ 7931, 8405, 5241, 6789, 4212,
+ 7931, 8405, 5241, 8260,
+ 7931, 8405, 5241, 8261, 6789, 4212,
+ 7931, 8405, 5241, 8261, 10275, 4212,
+ 7931, 8405, 5241, 8461, 4212,
+ 7931, 8405, 5241, 9363, 4212,
+ 7931, 8405, 5241, 10275, 4212,
+ 7931, 8405, 5298,
+ 7931, 8405, 5299, 6789, 4212,
+ 7931, 8405, 5299, 8461, 4212,
+ 7931, 8405, 5299, 9363, 4212,
+ 7931, 8405, 5299, 10275, 4212,
+ 7931, 8405, 5572,
+ 7931, 8405, 5573, 6789, 4212,
+ 7931, 8405, 5573, 10275, 4212,
+ 7931, 8405, 5648,
+ 7931, 8405, 5649, 6121, 1045, 6491, 721, 1045, 6376,
+ 7931, 8405, 5649, 6121, 2779, 4113, 11877, 6376,
+ 7931, 8405, 5649, 6121, 4215, 4113, 6376,
+ 7931, 8405, 5649, 6121, 7593, 7931, 8405, 2641, 721, 2779, 4112,
+ 7931, 8405, 5649, 6121, 7695, 4113, 6490,
+ 7931, 8405, 5649, 6121, 7695, 4113, 6491, 721, 7695, 4113, 6376,
+ 7931, 8405, 5649, 6121, 10173, 12403, 6689, 4215, 6376,
+ 7931, 8405, 5649, 6121, 10267, 42,
+ 7931, 8405, 5649, 6789, 4212,
+ 7931, 8405, 5649, 8461, 4212,
+ 7931, 8405, 5649, 9363, 4212,
+ 7931, 8405, 5649, 10275, 4212,
+ 7931, 8405, 5910,
+ 7931, 8405, 5911, 6789, 4212,
+ 7931, 8405, 5911, 10275, 4212,
+ 7931, 8405, 5916,
+ 7931, 8405, 5917, 6789, 4212,
+ 7931, 8405, 5917, 8461, 4212,
+ 7931, 8405, 5917, 9363, 4212,
+ 7931, 8405, 5917, 10275, 4212,
+ 7931, 8405, 5992,
+ 7931, 8405, 5993, 6789, 4212,
+ 7931, 8405, 5993, 8461, 4212,
+ 7931, 8405, 5993, 9363, 4212,
+ 7931, 8405, 5993, 10275, 4212,
+ 7931, 8405, 6254,
+ 7931, 8405, 6255, 6789, 4212,
+ 7931, 8405, 6255, 10275, 4212,
+ 7931, 8405, 6486,
+ 7931, 8405, 6487, 6789, 4212,
+ 7931, 8405, 6487, 8461, 4212,
+ 7931, 8405, 6487, 9363, 4212,
+ 7931, 8405, 6487, 10275, 4212,
+ 7931, 8405, 6636,
+ 7931, 8405, 6637, 6789, 4212,
+ 7931, 8405, 6637, 10275, 4212,
+ 7931, 8405, 6771, 3052,
+ 7931, 8405, 6771, 3053, 6121, 2779, 4113, 6376,
+ 7931, 8405, 6771, 3053, 6121, 7695, 4113, 6376,
+ 7931, 8405, 6771, 3053, 6121, 10173, 12403, 6689, 2779, 6376,
+ 7931, 8405, 6771, 3053, 6121, 10173, 12403, 6689, 4215, 6490,
+ 7931, 8405, 6771, 3053, 6121, 10173, 12403, 6689, 7695, 6376,
+ 7931, 8405, 6771, 3053, 6121, 10267, 42,
+ 7931, 8405, 6771, 3053, 6789, 4212,
+ 7931, 8405, 6771, 3053, 8461, 4212,
+ 7931, 8405, 6771, 3053, 9363, 4212,
+ 7931, 8405, 6771, 3053, 10275, 4212,
+ 7931, 8405, 6850,
+ 7931, 8405, 6851, 6121, 1045, 6490,
+ 7931, 8405, 6851, 6789, 4212,
+ 7931, 8405, 6851, 8461, 4212,
+ 7931, 8405, 6851, 9363, 4212,
+ 7931, 8405, 6851, 10275, 4212,
+ 7931, 8405, 6894,
+ 7931, 8405, 6895, 10275, 4212,
+ 7931, 8405, 7036,
+ 7931, 8405, 7037, 6121, 1045, 6376,
+ 7931, 8405, 7037, 6121, 2779, 4113, 6376,
+ 7931, 8405, 7037, 6121, 7695, 4113, 6376,
+ 7931, 8405, 7037, 6121, 7695, 4113, 6490,
+ 7931, 8405, 7037, 6121, 7695, 4113, 10441, 9811, 6490,
+ 7931, 8405, 7037, 6789, 4212,
+ 7931, 8405, 7037, 8461, 4212,
+ 7931, 8405, 7037, 9363, 4212,
+ 7931, 8405, 7037, 10275, 4212,
+ 7931, 8405, 7238,
+ 7931, 8405, 7239, 6789, 4212,
+ 7931, 8405, 7239, 8461, 4212,
+ 7931, 8405, 7239, 9363, 4212,
+ 7931, 8405, 7239, 10275, 4212,
+ 7931, 8405, 7354,
+ 7931, 8405, 7355, 6789, 4212,
+ 7931, 8405, 7355, 8461, 4212,
+ 7931, 8405, 7355, 9363, 4212,
+ 7931, 8405, 7355, 10275, 4212,
+ 7931, 8405, 7448,
+ 7931, 8405, 7449, 6789, 4212,
+ 7931, 8405, 7449, 8461, 4212,
+ 7931, 8405, 7449, 9363, 4212,
+ 7931, 8405, 7449, 10275, 4212,
+ 7931, 8405, 7524,
+ 7931, 8405, 7525, 6121, 1045, 6490,
+ 7931, 8405, 7525, 6789, 4212,
+ 7931, 8405, 7525, 8461, 4212,
+ 7931, 8405, 7525, 9363, 4212,
+ 7931, 8405, 7525, 10275, 4212,
+ 7931, 8405, 7653, 1578,
+ 7931, 8405, 7668,
+ 7931, 8405, 7669, 6121, 1045, 6376,
+ 7931, 8405, 7669, 6789, 4212,
+ 7931, 8405, 7669, 8461, 4212,
+ 7931, 8405, 7669, 9363, 4212,
+ 7931, 8405, 7669, 10275, 4212,
+ 7931, 8405, 7672,
+ 7931, 8405, 7673, 6789, 4212,
+ 7931, 8405, 7673, 8461, 4212,
+ 7931, 8405, 7673, 9363, 4212,
+ 7931, 8405, 7673, 10275, 4212,
+ 7931, 8405, 8098,
+ 7931, 8405, 8099, 6789, 4212,
+ 7931, 8405, 8099, 10275, 4212,
+ 7931, 8405, 8860,
+ 7931, 8405, 8861, 6789, 4212,
+ 7931, 8405, 8861, 8461, 4212,
+ 7931, 8405, 8861, 9363, 4212,
+ 7931, 8405, 8861, 10275, 4212,
+ 7931, 8405, 8895, 8345, 9405, 3245, 9449, 8461, 4212,
+ 7931, 8405, 8895, 8345, 9405, 3245, 9449, 9363, 4212,
+ 7931, 8405, 9185, 780,
+ 7931, 8405, 9185, 1152,
+ 7931, 8405, 9185, 2284,
+ 7931, 8405, 9405, 426,
+ 7931, 8405, 9405, 427, 6789, 4212,
+ 7931, 8405, 9405, 427, 10275, 4212,
+ 7931, 8405, 9405, 664,
+ 7931, 8405, 9405, 665, 6789, 4212,
+ 7931, 8405, 9405, 665, 10275, 4212,
+ 7931, 8405, 9770,
+ 7931, 8405, 9771, 6789, 4212,
+ 7931, 8405, 9771, 8461, 4212,
+ 7931, 8405, 9771, 9363, 4212,
+ 7931, 8405, 9771, 10275, 4212,
+ 7931, 8405, 12355, 3244,
+ 7931, 8435, 6376,
+ 7931, 8525, 5758,
+ 7931, 8601, 7793, 5758,
+ 7931, 8692,
+ 7931, 8693, 8461, 4212,
+ 7931, 8693, 10275, 4212,
+ 7931, 8849, 1045, 12133, 4926,
+ 7931, 9151, 11228,
+ 7931, 9581, 5758,
+ 7931, 9645, 4423, 5837, 6121, 8205, 8036,
+ 7931, 9766,
+ 7931, 9767, 6121, 10175, 6376,
+ 7931, 9978,
+ 7931, 9979, 10275, 4212,
+ 7931, 10174,
+ 7931, 10175, 10275, 4212,
+ 7931, 10199, 8450,
+ 7931, 10267, 6644,
+ 7931, 10280,
+ 7931, 10281, 10275, 4212,
+ 7931, 10301, 711, 6121, 3053, 6789, 4212,
+ 7931, 10301, 711, 6121, 3053, 10275, 4212,
+ 7931, 10301, 711, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 711, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 711, 6121, 4631, 6121, 4943, 6789, 4212,
+ 7931, 10301, 711, 6121, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 711, 6121, 4631, 9363, 4212,
+ 7931, 10301, 711, 6121, 4631, 10275, 4212,
+ 7931, 10301, 711, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 711, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 711, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 711, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 711, 6121, 4943, 9363, 4212,
+ 7931, 10301, 711, 6121, 4943, 10275, 4212,
+ 7931, 10301, 781, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 781, 6121, 1343, 9363, 4212,
+ 7931, 10301, 781, 6121, 1343, 10275, 4212,
+ 7931, 10301, 781, 6121, 1359, 8461, 4212,
+ 7931, 10301, 781, 6121, 1359, 9363, 4212,
+ 7931, 10301, 781, 6121, 2405, 6789, 4212,
+ 7931, 10301, 781, 6121, 3053, 6789, 4212,
+ 7931, 10301, 781, 6121, 3053, 10275, 4212,
+ 7931, 10301, 781, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 781, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 781, 6121, 4631, 9363, 4212,
+ 7931, 10301, 781, 6121, 4631, 10275, 4212,
+ 7931, 10301, 781, 6121, 4737, 6121, 3053, 6789, 4212,
+ 7931, 10301, 781, 6121, 4737, 9363, 4212,
+ 7931, 10301, 781, 6121, 4737, 10275, 4212,
+ 7931, 10301, 781, 6121, 4943, 6789, 4212,
+ 7931, 10301, 781, 6121, 4943, 8461, 4212,
+ 7931, 10301, 781, 6121, 4943, 9363, 4212,
+ 7931, 10301, 781, 6121, 4943, 10275, 4212,
+ 7931, 10301, 781, 6121, 5241, 6789, 4212,
+ 7931, 10301, 781, 6121, 6255, 6789, 4212,
+ 7931, 10301, 957, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 957, 6121, 1343, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 957, 6121, 1343, 9363, 4212,
+ 7931, 10301, 957, 6121, 1343, 10275, 4212,
+ 7931, 10301, 957, 6121, 2405, 6789, 4212,
+ 7931, 10301, 957, 6121, 2405, 10275, 4212,
+ 7931, 10301, 957, 6121, 3053, 6789, 4212,
+ 7931, 10301, 957, 6121, 3053, 10275, 4212,
+ 7931, 10301, 957, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 957, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 957, 6121, 4631, 9363, 4212,
+ 7931, 10301, 957, 6121, 4631, 10275, 4212,
+ 7931, 10301, 957, 6121, 4737, 6121, 4943, 6789, 4212,
+ 7931, 10301, 957, 6121, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 957, 6121, 4737, 9363, 4212,
+ 7931, 10301, 957, 6121, 4737, 10275, 4212,
+ 7931, 10301, 957, 6121, 4943, 9363, 4212,
+ 7931, 10301, 957, 6121, 4943, 10275, 4212,
+ 7931, 10301, 1153, 6121, 1343, 9363, 4212,
+ 7931, 10301, 1153, 6121, 1343, 10275, 4212,
+ 7931, 10301, 1153, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1153, 6121, 3053, 10275, 4212,
+ 7931, 10301, 1153, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1153, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 1153, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1153, 6121, 4631, 10275, 4212,
+ 7931, 10301, 1153, 6121, 4737, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1153, 6121, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1153, 6121, 4737, 9363, 4212,
+ 7931, 10301, 1153, 6121, 4737, 10275, 4212,
+ 7931, 10301, 1153, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1153, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1153, 6121, 4943, 10275, 4212,
+ 7931, 10301, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1343, 6121, 3053, 10275, 4212,
+ 7931, 10301, 1343, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1343, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 1343, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1343, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1343, 6121, 4631, 10275, 4212,
+ 7931, 10301, 1343, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1343, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1343, 6121, 4943, 10275, 4212,
+ 7931, 10301, 1359, 6121, 3053, 10275, 4212,
+ 7931, 10301, 1359, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 1359, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1359, 6121, 4631, 10275, 4212,
+ 7931, 10301, 1359, 6121, 4943, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1359, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1359, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1359, 6121, 4943, 10275, 4212,
+ 7931, 10301, 1359, 6121, 12355, 3245, 9363, 4212,
+ 7931, 10301, 1579, 6121, 1343, 9363, 4212,
+ 7931, 10301, 1579, 6121, 1343, 10275, 4212,
+ 7931, 10301, 1579, 6121, 1739, 6789, 4212,
+ 7931, 10301, 1579, 6121, 1739, 8461, 4212,
+ 7931, 10301, 1579, 6121, 1739, 9363, 4212,
+ 7931, 10301, 1579, 6121, 1739, 10275, 4212,
+ 7931, 10301, 1579, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1579, 6121, 3053, 10275, 4212,
+ 7931, 10301, 1579, 6121, 3245, 6789, 4212,
+ 7931, 10301, 1579, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1579, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 1579, 6121, 3245, 10275, 4212,
+ 7931, 10301, 1579, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1579, 6121, 4631, 10275, 4212,
+ 7931, 10301, 1579, 6121, 4737, 9363, 4212,
+ 7931, 10301, 1579, 6121, 4737, 10275, 4212,
+ 7931, 10301, 1579, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1579, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1579, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1579, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1579, 6121, 4943, 8461, 4212,
+ 7931, 10301, 1579, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1579, 6121, 4943, 10275, 4212,
+ 7931, 10301, 1739, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1739, 6121, 1343, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1739, 6121, 1343, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1739, 6121, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1739, 6121, 1343, 9363, 4212,
+ 7931, 10301, 1739, 6121, 1343, 10275, 4212,
+ 7931, 10301, 1739, 6121, 1359, 9363, 4212,
+ 7931, 10301, 1739, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3053, 10275, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 6895, 6377, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 6895, 6377, 10275, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 6895, 6491, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 6895, 6491, 10275, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 7125, 6377, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6121, 7125, 6377, 10275, 4212,
+ 7931, 10301, 1739, 6121, 3245, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 1739, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 1739, 6121, 3245, 10275, 4212,
+ 7931, 10301, 1739, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4631, 6121, 4631, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4631, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4631, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4631, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4631, 10275, 4212,
+ 7931, 10301, 1739, 6121, 4737, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4737, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4737, 10275, 4212,
+ 7931, 10301, 1739, 6121, 4943, 6121, 1343, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4943, 6789, 4212,
+ 7931, 10301, 1739, 6121, 4943, 8461, 4212,
+ 7931, 10301, 1739, 6121, 4943, 9363, 4212,
+ 7931, 10301, 1739, 6121, 4943, 10275, 4212,
+ 7931, 10301, 2285, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2285, 6121, 1343, 10275, 4212,
+ 7931, 10301, 2285, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2285, 6121, 3053, 10275, 4212,
+ 7931, 10301, 2285, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2285, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 2285, 6121, 4943, 6121, 1343, 6789, 4212,
+ 7931, 10301, 2285, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2285, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2285, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 2285, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2285, 6121, 4943, 10275, 4212,
+ 7931, 10301, 2405, 6121, 12355, 3245, 10275, 4212,
+ 7931, 10301, 2485, 6121, 1343, 6121, 1343, 6789, 4212,
+ 7931, 10301, 2485, 6121, 1343, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2485, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2485, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2485, 6121, 1343, 10275, 4212,
+ 7931, 10301, 2485, 6121, 2405, 6789, 4212,
+ 7931, 10301, 2485, 6121, 2405, 10275, 4212,
+ 7931, 10301, 2485, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2485, 6121, 3053, 10275, 4212,
+ 7931, 10301, 2485, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2485, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 2485, 6121, 4737, 9363, 4212,
+ 7931, 10301, 2485, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 2485, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2485, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2485, 6121, 4943, 10275, 4212,
+ 7931, 10301, 2641, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2641, 6121, 1343, 10275, 4212,
+ 7931, 10301, 2641, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2641, 6121, 3053, 10275, 4212,
+ 7931, 10301, 2641, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2641, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 2641, 6121, 4943, 6121, 1343, 6789, 4212,
+ 7931, 10301, 2641, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2641, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2641, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2641, 6121, 4943, 8461, 4212,
+ 7931, 10301, 2641, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2641, 6121, 4943, 10275, 4212,
+ 7931, 10301, 2669, 6121, 1343, 6121, 4631, 6789, 4212,
+ 7931, 10301, 2669, 6121, 1343, 6121, 4631, 9363, 4212,
+ 7931, 10301, 2669, 6121, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2669, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2669, 6121, 1343, 10275, 4212,
+ 7931, 10301, 2669, 6121, 1359, 8461, 4212,
+ 7931, 10301, 2669, 6121, 1359, 9363, 4212,
+ 7931, 10301, 2669, 6121, 2405, 6789, 4212,
+ 7931, 10301, 2669, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2669, 6121, 3053, 10275, 4212,
+ 7931, 10301, 2669, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2669, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 2669, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4631, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4631, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4631, 10275, 4212,
+ 7931, 10301, 2669, 6121, 4737, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4737, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4737, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4737, 10275, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6121, 4631, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6121, 4737, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4943, 6789, 4212,
+ 7931, 10301, 2669, 6121, 4943, 8461, 4212,
+ 7931, 10301, 2669, 6121, 4943, 9363, 4212,
+ 7931, 10301, 2669, 6121, 4943, 10275, 4212,
+ 7931, 10301, 2669, 6121, 5241, 6789, 4212,
+ 7931, 10301, 2669, 6121, 6255, 6789, 4212,
+ 7931, 10301, 3053, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 3053, 6121, 1343, 9363, 4212,
+ 7931, 10301, 3053, 6121, 1343, 10275, 4212,
+ 7931, 10301, 3053, 6121, 1359, 8461, 4212,
+ 7931, 10301, 3053, 6121, 1359, 9363, 4212,
+ 7931, 10301, 3053, 6121, 2405, 6789, 4212,
+ 7931, 10301, 3053, 6121, 3053, 6789, 4212,
+ 7931, 10301, 3053, 6121, 3053, 10275, 4212,
+ 7931, 10301, 3053, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 3053, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 3053, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 3053, 6121, 4631, 9363, 4212,
+ 7931, 10301, 3053, 6121, 4631, 10275, 4212,
+ 7931, 10301, 3053, 6121, 4737, 9363, 4212,
+ 7931, 10301, 3053, 6121, 4737, 10275, 4212,
+ 7931, 10301, 3053, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 3053, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 3053, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 3053, 6121, 4943, 6789, 4212,
+ 7931, 10301, 3053, 6121, 4943, 8461, 4212,
+ 7931, 10301, 3053, 6121, 4943, 9363, 4212,
+ 7931, 10301, 3053, 6121, 4943, 10275, 4212,
+ 7931, 10301, 3053, 6121, 5241, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6255, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 9, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 9, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 9, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 41, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 41, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 67, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 67, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 427, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 427, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 665, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 665, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 1343, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 1343, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 1359, 8461, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 1359, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 2405, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 2919, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 2919, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3053, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3053, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3245, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 3245, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4631, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4631, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4737, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4943, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4943, 8461, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4943, 9363, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 4943, 10275, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 5241, 6789, 4212,
+ 7931, 10301, 3053, 6121, 6895, 6377, 6121, 6255, 6789, 4212,
+ 7931, 10301, 3125, 6121, 4943, 8461, 4212,
+ 7931, 10301, 3125, 6121, 4943, 9363, 4212,
+ 7931, 10301, 3125, 6121, 4943, 10275, 4212,
+ 7931, 10301, 3245, 6121, 10175, 6789, 4212,
+ 7931, 10301, 3245, 6121, 10175, 10275, 4212,
+ 7931, 10301, 3245, 9449, 6121, 12355, 3245, 6789, 4212,
+ 7931, 10301, 3245, 9449, 6121, 12355, 3245, 10275, 4212,
+ 7931, 10301, 4631, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4631, 6121, 1343, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 4631, 6121, 1343, 9363, 4212,
+ 7931, 10301, 4631, 6121, 1343, 10275, 4212,
+ 7931, 10301, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4631, 6121, 3053, 10275, 4212,
+ 7931, 10301, 4631, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 4631, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 4631, 6121, 4943, 6121, 1343, 6789, 4212,
+ 7931, 10301, 4631, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 4631, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4631, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4631, 6121, 4943, 10275, 4212,
+ 7931, 10301, 4737, 6121, 1343, 10275, 4212,
+ 7931, 10301, 4737, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4737, 6121, 3053, 10275, 4212,
+ 7931, 10301, 4737, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 4737, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 4737, 6121, 4631, 9363, 4212,
+ 7931, 10301, 4737, 6121, 4631, 10275, 4212,
+ 7931, 10301, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4737, 6121, 4943, 10275, 4212,
+ 7931, 10301, 4943, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4943, 6121, 1343, 6121, 4631, 9363, 4212,
+ 7931, 10301, 4943, 6121, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 4943, 6121, 1343, 10275, 4212,
+ 7931, 10301, 4943, 6121, 3053, 10275, 4212,
+ 7931, 10301, 4943, 6121, 3245, 6789, 4212,
+ 7931, 10301, 4943, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 4943, 6121, 4631, 6121, 1343, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4943, 6121, 4631, 6121, 4737, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4631, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4631, 10275, 4212,
+ 7931, 10301, 4943, 6121, 4737, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4943, 6121, 4737, 6121, 4631, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4737, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4737, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4737, 10275, 4212,
+ 7931, 10301, 4943, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 4943, 6121, 4943, 10275, 4212,
+ 7931, 10301, 5241, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5241, 6121, 1343, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5241, 6121, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5241, 6121, 1343, 9363, 4212,
+ 7931, 10301, 5241, 6121, 1343, 10275, 4212,
+ 7931, 10301, 5241, 6121, 1359, 8461, 4212,
+ 7931, 10301, 5241, 6121, 1359, 9363, 4212,
+ 7931, 10301, 5241, 6121, 2405, 6789, 4212,
+ 7931, 10301, 5241, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5241, 6121, 3053, 10275, 4212,
+ 7931, 10301, 5241, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5241, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 1343, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 1343, 9363, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 4943, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4631, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5241, 6121, 4631, 9363, 4212,
+ 7931, 10301, 5241, 6121, 4631, 10275, 4212,
+ 7931, 10301, 5241, 6121, 4737, 9363, 4212,
+ 7931, 10301, 5241, 6121, 4737, 10275, 4212,
+ 7931, 10301, 5241, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4943, 6789, 4212,
+ 7931, 10301, 5241, 6121, 4943, 8461, 4212,
+ 7931, 10301, 5241, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5241, 6121, 4943, 10275, 4212,
+ 7931, 10301, 5241, 6121, 5241, 6789, 4212,
+ 7931, 10301, 5241, 6121, 6255, 6789, 4212,
+ 7931, 10301, 5475, 6061, 89, 9411, 5837, 5759, 10275, 4212,
+ 7931, 10301, 5649, 6121, 1343, 6121, 4631, 9363, 4212,
+ 7931, 10301, 5649, 6121, 1343, 8461, 4212,
+ 7931, 10301, 5649, 6121, 1343, 9363, 4212,
+ 7931, 10301, 5649, 6121, 1343, 10275, 4212,
+ 7931, 10301, 5649, 6121, 1359, 8461, 4212,
+ 7931, 10301, 5649, 6121, 1359, 9363, 4212,
+ 7931, 10301, 5649, 6121, 2405, 6789, 4212,
+ 7931, 10301, 5649, 6121, 2405, 10275, 4212,
+ 7931, 10301, 5649, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5649, 6121, 3053, 10275, 4212,
+ 7931, 10301, 5649, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5649, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 5649, 6121, 4631, 6121, 1343, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4631, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5649, 6121, 4631, 8461, 4212,
+ 7931, 10301, 5649, 6121, 4631, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4631, 10275, 4212,
+ 7931, 10301, 5649, 6121, 4737, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5649, 6121, 4737, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5649, 6121, 4737, 8461, 4212,
+ 7931, 10301, 5649, 6121, 4737, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4737, 10275, 4212,
+ 7931, 10301, 5649, 6121, 4943, 6121, 1343, 6789, 4212,
+ 7931, 10301, 5649, 6121, 4943, 6121, 1343, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4943, 6121, 4631, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 5649, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4943, 8461, 4212,
+ 7931, 10301, 5649, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5649, 6121, 4943, 10275, 4212,
+ 7931, 10301, 5911, 6121, 12355, 3245, 10275, 4212,
+ 7931, 10301, 5917, 6121, 1359, 8461, 4212,
+ 7931, 10301, 5917, 6121, 2405, 6789, 4212,
+ 7931, 10301, 5917, 6121, 3053, 6789, 4212,
+ 7931, 10301, 5917, 6121, 3053, 10275, 4212,
+ 7931, 10301, 5917, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 5917, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 5917, 6121, 4631, 10275, 4212,
+ 7931, 10301, 5917, 6121, 4943, 6789, 4212,
+ 7931, 10301, 5917, 6121, 4943, 8461, 4212,
+ 7931, 10301, 5917, 6121, 4943, 9363, 4212,
+ 7931, 10301, 5917, 6121, 4943, 10275, 4212,
+ 7931, 10301, 5917, 6121, 5241, 6789, 4212,
+ 7931, 10301, 5917, 6121, 6255, 6789, 4212,
+ 7931, 10301, 6393, 10275, 4212,
+ 7931, 10301, 6405, 10275, 4212,
+ 7931, 10301, 6851, 6121, 3053, 6789, 4212,
+ 7931, 10301, 6851, 6121, 3053, 10275, 4212,
+ 7931, 10301, 6851, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 6851, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 6851, 6121, 4631, 9363, 4212,
+ 7931, 10301, 6851, 6121, 4631, 10275, 4212,
+ 7931, 10301, 6851, 6121, 4943, 6121, 3053, 6789, 4212,
+ 7931, 10301, 6851, 6121, 4943, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 6851, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 6851, 6121, 4943, 9363, 4212,
+ 7931, 10301, 6851, 6121, 4943, 10275, 4212,
+ 7931, 10301, 7479, 10275, 4212,
+ 7931, 10301, 7481, 6061, 89, 9411, 5837, 5759, 10275, 4212,
+ 7931, 10301, 7481, 10275, 4212,
+ 7931, 10301, 7525, 6121, 1343, 6121, 3053, 6789, 4212,
+ 7931, 10301, 7525, 6121, 1343, 6121, 4943, 6789, 4212,
+ 7931, 10301, 7525, 6121, 1343, 6121, 4943, 9363, 4212,
+ 7931, 10301, 7525, 6121, 1343, 6789, 4212,
+ 7931, 10301, 7525, 6121, 1343, 8461, 4212,
+ 7931, 10301, 7525, 6121, 1343, 9363, 4212,
+ 7931, 10301, 7525, 6121, 1343, 10275, 4212,
+ 7931, 10301, 7525, 6121, 1359, 8461, 4212,
+ 7931, 10301, 7525, 6121, 1359, 9363, 4212,
+ 7931, 10301, 7525, 6121, 2405, 6789, 4212,
+ 7931, 10301, 7525, 6121, 2405, 10275, 4212,
+ 7931, 10301, 7525, 6121, 3053, 6789, 4212,
+ 7931, 10301, 7525, 6121, 3053, 10275, 4212,
+ 7931, 10301, 7525, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 7525, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 7525, 6121, 4631, 6121, 3053, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4631, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4631, 8461, 4212,
+ 7931, 10301, 7525, 6121, 4631, 9363, 4212,
+ 7931, 10301, 7525, 6121, 4631, 10275, 4212,
+ 7931, 10301, 7525, 6121, 4737, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4737, 8461, 4212,
+ 7931, 10301, 7525, 6121, 4737, 9363, 4212,
+ 7931, 10301, 7525, 6121, 4737, 10275, 4212,
+ 7931, 10301, 7525, 6121, 4943, 6121, 4737, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4943, 6121, 4737, 9363, 4212,
+ 7931, 10301, 7525, 6121, 4943, 6121, 4943, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4943, 6121, 4943, 9363, 4212,
+ 7931, 10301, 7525, 6121, 4943, 6789, 4212,
+ 7931, 10301, 7525, 6121, 4943, 8461, 4212,
+ 7931, 10301, 7525, 6121, 4943, 9363, 4212,
+ 7931, 10301, 7525, 6121, 4943, 10275, 4212,
+ 7931, 10301, 7917, 10275, 4212,
+ 7931, 10301, 8635, 10275, 4212,
+ 7931, 10301, 8693, 6121, 6645, 8461, 4212,
+ 7931, 10301, 8693, 6121, 6645, 10275, 4212,
+ 7931, 10301, 8693, 6121, 6773, 8461, 4212,
+ 7931, 10301, 8693, 6121, 6773, 10275, 4212,
+ 7931, 10301, 8693, 6121, 7027, 8461, 4212,
+ 7931, 10301, 8693, 6121, 7027, 10275, 4212,
+ 7931, 10301, 8693, 6121, 9979, 10275, 4212,
+ 7931, 10301, 8693, 6121, 10281, 10275, 4212,
+ 7931, 10301, 8693, 6121, 12355, 3245, 10275, 4212,
+ 7931, 10301, 8895, 9405, 3053, 6121, 6895, 6377, 6121, 3245, 9449, 6789, 4212,
+ 7931, 10301, 8895, 9405, 3053, 6121, 6895, 6377, 6121, 3245, 9449, 9363, 4212,
+ 7931, 10301, 8895, 9405, 3053, 6121, 6895, 6377, 6121, 3245, 9449, 10275, 4212,
+ 7931, 10301, 10341, 10275, 4212,
+ 7931, 10301, 10683, 10275, 4212,
+ 7931, 10301, 10741, 10715, 10712,
+ 7931, 10301, 12159, 7917, 10682,
+ 7931, 10301, 13202,
+ 7931, 10469, 4926,
+ 7931, 10489, 6644,
+ 7931, 10692,
+ 7931, 11224,
+ 7931, 11261, 3244,
+ 7931, 11363, 11228,
+ 7971, 46,
+ 7971, 826,
+ 7971, 827, 6121, 46,
+ 7971, 827, 6121, 6568,
+ 7985, 8159, 7274,
+ 7985, 11241, 7274,
+ 8005, 731, 12901, 6434,
+ 8005, 4389, 10260,
+ 8005, 4849, 3958,
+ 8005, 4849, 4389, 9050,
+ 8005, 4849, 8076,
+ 8005, 6627, 9050,
+ 8005, 7443, 3958,
+ 8005, 7443, 4389, 9050,
+ 8005, 7443, 8076,
+ 8005, 8745, 9050,
+ 8005, 8745, 9051, 5387, 2725, 8745, 9050,
+ 8005, 10637, 7533, 9050,
+ 8005, 12114,
+ 8006,
+ 8007, 6121, 4849, 4389, 6504,
+ 8007, 6121, 7443, 4389, 6504,
+ 8017, 760,
+ 8017, 8057, 6121, 11141, 6434,
+ 8022,
+ 8023, 10374,
+ 8027, 2638,
+ 8028,
+ 8033, 8405, 0,
+ 8033, 8405, 2,
+ 8033, 8405, 6,
+ 8033, 8405, 8,
+ 8033, 8405, 12,
+ 8033, 8405, 16,
+ 8033, 8405, 20,
+ 8033, 8405, 22,
+ 8033, 8405, 24,
+ 8033, 8405, 26,
+ 8033, 8405, 28,
+ 8033, 8405, 30,
+ 8033, 8405, 32,
+ 8033, 8405, 34,
+ 8033, 8405, 36,
+ 8033, 8405, 38,
+ 8033, 8405, 40,
+ 8033, 8405, 46,
+ 8033, 8405, 54,
+ 8033, 8405, 136,
+ 8033, 8405, 158,
+ 8033, 8405, 214,
+ 8033, 8405, 266,
+ 8033, 8405, 304,
+ 8033, 8405, 334,
+ 8033, 8405, 366,
+ 8033, 8405, 394,
+ 8033, 8405, 400,
+ 8033, 8405, 410,
+ 8033, 8405, 460,
+ 8033, 8405, 518,
+ 8033, 8405, 530,
+ 8033, 8405, 542,
+ 8033, 8405, 544,
+ 8033, 8405, 574,
+ 8033, 8405, 606,
+ 8033, 8405, 1756,
+ 8033, 8405, 1872,
+ 8033, 8405, 1874,
+ 8033, 8405, 1876,
+ 8033, 8405, 2514,
+ 8033, 8405, 2578,
+ 8033, 8405, 2744,
+ 8033, 8405, 2838,
+ 8033, 8405, 3832,
+ 8033, 8405, 3834,
+ 8033, 8405, 6068,
+ 8033, 8405, 6070,
+ 8033, 8405, 6072,
+ 8037, 4877, 8774,
+ 8048,
+ 8057, 6121, 719, 835, 7773, 4849, 10465, 6504,
+ 8057, 6121, 2779, 11649, 9745, 569, 2681, 7442,
+ 8057, 6121, 4849, 4389, 6504,
+ 8057, 6121, 7121, 4389, 6504,
+ 8057, 6121, 7443, 4389, 6504,
+ 8057, 6121, 7593, 8057, 569, 2681, 7442,
+ 8057, 6121, 7773, 4389, 6504,
+ 8057, 6121, 7773, 7443, 10465, 6504,
+ 8057, 6121, 10677, 4192,
+ 8057, 6121, 11649, 760,
+ 8057, 6121, 12879, 46,
+ 8057, 9177, 115, 11649, 761, 721, 2725, 4389, 9177, 115, 10677, 760,
+ 8065, 7769, 6121, 8688,
+ 8065, 7769, 6121, 8689, 721, 7595, 9610,
+ 8065, 8762,
+ 8065, 8763, 445, 6741, 568,
+ 8065, 10578,
+ 8065, 10579, 445, 6741, 568,
+ 8065, 12493, 6121, 8688,
+ 8066,
+ 8075, 2167, 8523, 4223, 5836,
+ 8075, 2167, 8523, 7793, 9178,
+ 8075, 2167, 8523, 8121, 10469, 4926,
+ 8075, 2167, 8523, 10255, 10469, 4926,
+ 8075, 4223, 5836,
+ 8075, 7593, 8405, 28,
+ 8075, 7593, 8405, 202,
+ 8075, 7593, 8405, 374,
+ 8075, 7593, 8405, 404,
+ 8075, 7593, 8405, 476,
+ 8075, 7593, 8405, 516,
+ 8075, 7593, 8405, 582,
+ 8075, 7593, 8405, 986,
+ 8075, 7593, 8405, 1102,
+ 8075, 7593, 8405, 1154,
+ 8075, 7593, 8405, 1616,
+ 8075, 7593, 8405, 1680,
+ 8075, 7593, 8405, 2167, 8075, 236,
+ 8075, 7593, 8405, 2167, 8075, 710,
+ 8075, 7593, 8405, 2167, 8075, 1020,
+ 8075, 7593, 8405, 2167, 8075, 1124,
+ 8075, 7593, 8405, 2167, 8075, 1352,
+ 8075, 7593, 8405, 2167, 8075, 1360,
+ 8075, 7593, 8405, 2167, 8075, 2180,
+ 8075, 7593, 8405, 2167, 8075, 4534,
+ 8075, 7593, 8405, 2167, 8075, 5680,
+ 8075, 7593, 8405, 2167, 8075, 7542,
+ 8075, 7593, 8405, 2167, 8075, 8238,
+ 8075, 7593, 8405, 2167, 8523, 2036,
+ 8075, 7593, 8405, 2167, 8523, 2132,
+ 8075, 7593, 8405, 2167, 8523, 2916,
+ 8075, 7593, 8405, 2167, 8523, 7542,
+ 8075, 7593, 8405, 2180,
+ 8075, 7593, 8405, 2250,
+ 8075, 7593, 8405, 2560,
+ 8075, 7593, 8405, 2658,
+ 8075, 7593, 8405, 3246,
+ 8075, 7593, 8405, 4394,
+ 8075, 7593, 8405, 4534,
+ 8075, 7593, 8405, 4722,
+ 8075, 7593, 8405, 4746,
+ 8075, 7593, 8405, 5680,
+ 8075, 7593, 8405, 5766,
+ 8075, 7593, 8405, 6082,
+ 8075, 7593, 8405, 6258,
+ 8075, 7593, 8405, 6640,
+ 8075, 7593, 8405, 6824,
+ 8075, 7593, 8405, 6976,
+ 8075, 7593, 8405, 7090,
+ 8075, 7593, 8405, 7484,
+ 8075, 7593, 8405, 7542,
+ 8075, 7593, 8405, 8238,
+ 8075, 7593, 8405, 8816,
+ 8075, 7593, 8405, 9127, 5680,
+ 8075, 7593, 8405, 9861, 4746,
+ 8075, 7593, 8405, 10295, 236,
+ 8075, 7593, 8405, 10807, 404,
+ 8075, 7593, 8405, 10807, 3244,
+ 8075, 7593, 8405, 10807, 4534,
+ 8075, 7593, 8405, 10807, 4722,
+ 8075, 7593, 8405, 12921, 404,
+ 8075, 7593, 8405, 12921, 1102,
+ 8075, 8775, 375, 516,
+ 8075, 8775, 477, 516,
+ 8075, 8775, 1582,
+ 8075, 8775, 1617, 516,
+ 8075, 8775, 2659, 516,
+ 8075, 8775, 7543, 5766,
+ 8075, 8775, 9738,
+ 8075, 9063, 8405, 28,
+ 8075, 9063, 8405, 202,
+ 8075, 9063, 8405, 374,
+ 8075, 9063, 8405, 404,
+ 8075, 9063, 8405, 476,
+ 8075, 9063, 8405, 516,
+ 8075, 9063, 8405, 582,
+ 8075, 9063, 8405, 986,
+ 8075, 9063, 8405, 1102,
+ 8075, 9063, 8405, 1154,
+ 8075, 9063, 8405, 1616,
+ 8075, 9063, 8405, 1680,
+ 8075, 9063, 8405, 2167, 8075, 236,
+ 8075, 9063, 8405, 2167, 8075, 710,
+ 8075, 9063, 8405, 2167, 8075, 1020,
+ 8075, 9063, 8405, 2167, 8075, 1124,
+ 8075, 9063, 8405, 2167, 8075, 1352,
+ 8075, 9063, 8405, 2167, 8075, 1360,
+ 8075, 9063, 8405, 2167, 8075, 2180,
+ 8075, 9063, 8405, 2167, 8075, 4534,
+ 8075, 9063, 8405, 2167, 8075, 5680,
+ 8075, 9063, 8405, 2167, 8075, 7542,
+ 8075, 9063, 8405, 2167, 8075, 8238,
+ 8075, 9063, 8405, 2167, 8523, 2036,
+ 8075, 9063, 8405, 2167, 8523, 2132,
+ 8075, 9063, 8405, 2167, 8523, 2916,
+ 8075, 9063, 8405, 2167, 8523, 7542,
+ 8075, 9063, 8405, 2180,
+ 8075, 9063, 8405, 2250,
+ 8075, 9063, 8405, 2560,
+ 8075, 9063, 8405, 2658,
+ 8075, 9063, 8405, 3246,
+ 8075, 9063, 8405, 4394,
+ 8075, 9063, 8405, 4534,
+ 8075, 9063, 8405, 4722,
+ 8075, 9063, 8405, 4746,
+ 8075, 9063, 8405, 5680,
+ 8075, 9063, 8405, 5766,
+ 8075, 9063, 8405, 6082,
+ 8075, 9063, 8405, 6258,
+ 8075, 9063, 8405, 6640,
+ 8075, 9063, 8405, 6824,
+ 8075, 9063, 8405, 6976,
+ 8075, 9063, 8405, 7090,
+ 8075, 9063, 8405, 7484,
+ 8075, 9063, 8405, 7542,
+ 8075, 9063, 8405, 8238,
+ 8075, 9063, 8405, 8816,
+ 8075, 9063, 8405, 9127, 5680,
+ 8075, 9063, 8405, 9861, 4746,
+ 8075, 9063, 8405, 10295, 236,
+ 8075, 9063, 8405, 10807, 404,
+ 8075, 9063, 8405, 10807, 3244,
+ 8075, 9063, 8405, 10807, 4534,
+ 8075, 9063, 8405, 10807, 4722,
+ 8075, 9063, 8405, 12921, 404,
+ 8075, 9063, 8405, 12921, 1102,
+ 8075, 10203, 2171, 4388,
+ 8075, 12977, 9178,
+ 8083, 5833, 11163, 5759, 10380,
+ 8088,
+ 8097, 1809, 4876,
+ 8097, 10388,
+ 8097, 13235, 11765, 6434,
+ 8101, 5758,
+ 8101, 9076,
+ 8101, 11626,
+ 8117, 1177, 6716,
+ 8117, 1177, 6957, 6716,
+ 8117, 1177, 8403, 3070,
+ 8117, 1177, 8403, 6178,
+ 8117, 1177, 9251, 6956,
+ 8117, 1177, 9251, 8290,
+ 8117, 1177, 9315, 3070,
+ 8117, 1177, 9315, 6178,
+ 8117, 1177, 10239, 6716,
+ 8121, 9129, 8775, 4213, 2778,
+ 8129, 5758,
+ 8133, 5941, 10677, 3696,
+ 8133, 5941, 11649, 3696,
+ 8133, 5941, 13086,
+ 8133, 5941, 13088,
+ 8133, 5941, 13090,
+ 8133, 5941, 13092,
+ 8133, 5941, 13094,
+ 8133, 5941, 13096,
+ 8133, 5941, 13098,
+ 8133, 5941, 13100,
+ 8133, 5941, 13102,
+ 8133, 5941, 13104,
+ 8133, 5941, 13106,
+ 8133, 5941, 13108,
+ 8133, 5941, 13110,
+ 8133, 5941, 13112,
+ 8133, 5941, 13114,
+ 8133, 5941, 13116,
+ 8133, 5941, 13118,
+ 8133, 5941, 13120,
+ 8133, 5941, 13122,
+ 8133, 5941, 13124,
+ 8133, 5941, 13126,
+ 8133, 5941, 13128,
+ 8133, 5941, 13130,
+ 8133, 5941, 13132,
+ 8133, 5941, 13134,
+ 8133, 5941, 13136,
+ 8133, 5941, 13138,
+ 8133, 5941, 13140,
+ 8133, 5941, 13142,
+ 8133, 5941, 13144,
+ 8133, 5941, 13146,
+ 8133, 5941, 13148,
+ 8133, 5941, 13150,
+ 8133, 5941, 13152,
+ 8133, 5941, 13154,
+ 8133, 5941, 13156,
+ 8133, 5941, 13158,
+ 8133, 5941, 13160,
+ 8133, 5941, 13162,
+ 8133, 5941, 13164,
+ 8133, 5941, 13166,
+ 8133, 5941, 13168,
+ 8133, 5941, 13170,
+ 8133, 5941, 13172,
+ 8133, 5941, 13174,
+ 8133, 5941, 13176,
+ 8133, 5941, 13178,
+ 8133, 5941, 13180,
+ 8133, 5941, 13182,
+ 8133, 5941, 13240,
+ 8133, 5941, 13242,
+ 8133, 5941, 13244,
+ 8133, 5941, 13246,
+ 8133, 5941, 13248,
+ 8133, 5941, 13250,
+ 8133, 5941, 13252,
+ 8133, 5941, 13254,
+ 8133, 5941, 13256,
+ 8133, 5941, 13258,
+ 8133, 5941, 13260,
+ 8133, 5941, 13262,
+ 8133, 5941, 13264,
+ 8133, 5941, 13266,
+ 8133, 5941, 13268,
+ 8133, 5941, 13270,
+ 8133, 5941, 13272,
+ 8133, 5941, 13274,
+ 8133, 5941, 13276,
+ 8133, 5941, 13278,
+ 8133, 5941, 13280,
+ 8133, 5941, 13282,
+ 8133, 5941, 13284,
+ 8133, 5941, 13286,
+ 8133, 5941, 13288,
+ 8133, 5941, 13290,
+ 8133, 5941, 13292,
+ 8133, 5941, 13294,
+ 8133, 5941, 13296,
+ 8133, 5941, 13298,
+ 8133, 5941, 13300,
+ 8133, 5941, 13302,
+ 8133, 5941, 13304,
+ 8133, 5941, 13306,
+ 8133, 5941, 13308,
+ 8133, 5941, 13310,
+ 8133, 5941, 13312,
+ 8133, 5941, 13314,
+ 8133, 5941, 13316,
+ 8133, 5941, 13318,
+ 8133, 5941, 13320,
+ 8133, 5941, 13322,
+ 8133, 5941, 13324,
+ 8133, 5941, 13326,
+ 8133, 5941, 13328,
+ 8133, 5941, 13330,
+ 8133, 5941, 13332,
+ 8133, 5941, 13334,
+ 8133, 5941, 13336,
+ 8151, 6622,
+ 8151, 6778,
+ 8151, 8056,
+ 8151, 8528,
+ 8151, 8744,
+ 8151, 13029, 8450,
+ 8151, 13067, 6408,
+ 8153, 601, 5876,
+ 8153, 1809, 4876,
+ 8153, 4117, 5876,
+ 8153, 4849, 731, 12473, 9050,
+ 8153, 5444,
+ 8153, 6107, 10388,
+ 8153, 6379, 7908,
+ 8153, 6611, 6740,
+ 8153, 7119, 11195, 4926,
+ 8153, 7390,
+ 8153, 7391, 11195, 4926,
+ 8153, 7443, 731, 11099, 9050,
+ 8153, 7768,
+ 8153, 8088,
+ 8153, 8509, 11098,
+ 8153, 8509, 11099, 6121, 10666,
+ 8153, 8509, 12472,
+ 8153, 8745, 7768,
+ 8153, 8745, 12492,
+ 8153, 8759, 2091, 5758,
+ 8153, 8762,
+ 8153, 9095, 6689, 2170,
+ 8153, 9095, 6689, 2540,
+ 8153, 9095, 6689, 2778,
+ 8153, 9095, 6689, 4200,
+ 8153, 9095, 6689, 4214,
+ 8153, 9095, 6689, 5190,
+ 8153, 9095, 6689, 6722,
+ 8153, 9095, 6689, 7508,
+ 8153, 9095, 6689, 7694,
+ 8153, 9095, 8525, 2670,
+ 8153, 9437, 444,
+ 8153, 9437, 720,
+ 8153, 9525, 8306,
+ 8153, 9719, 10374,
+ 8153, 10260,
+ 8153, 10452,
+ 8153, 10469, 4926,
+ 8153, 10574,
+ 8153, 10578,
+ 8153, 10677, 761, 4849, 11378,
+ 8153, 10677, 761, 8153, 4849, 11378,
+ 8153, 10677, 761, 8153, 7443, 11378,
+ 8153, 10677, 4876,
+ 8153, 12017, 4926,
+ 8153, 12492,
+ 8153, 13201, 11195, 4926,
+ 8159, 5244,
+ 8167, 5758,
+ 8167, 5759, 721, 9705, 10410,
+ 8167, 5759, 721, 9705, 10411, 6121, 7709, 6376,
+ 8167, 5759, 6121, 1045, 6490,
+ 8167, 5759, 6121, 2779, 4113, 6377, 721, 2779, 4113, 6490,
+ 8167, 5759, 6121, 6537, 6376,
+ 8167, 5759, 6377, 5445, 5758,
+ 8167, 5759, 6377, 7709, 10374,
+ 8167, 5759, 6377, 11097, 6434,
+ 8167, 5759, 6377, 11765, 6434,
+ 8167, 6121, 9898,
+ 8167, 6610,
+ 8172,
+ 8197, 5758,
+ 8203, 3992,
+ 8203, 7608,
+ 8209, 5401, 10260,
+ 8225, 6906,
+ 8226,
+ 8227, 12133, 4926,
+ 8228,
+ 8231, 12108,
+ 8233, 5566,
+ 8235, 6809, 5758,
+ 8246,
+ 8255, 7359, 5758,
+ 8263, 7630,
+ 8267, 8405, 1104,
+ 8267, 8405, 1510,
+ 8267, 8405, 3234,
+ 8267, 8405, 3980,
+ 8267, 8405, 4324,
+ 8267, 8405, 4384,
+ 8267, 8405, 4622,
+ 8267, 8405, 5191, 9344,
+ 8267, 8405, 6056,
+ 8267, 8405, 6768,
+ 8267, 8405, 6960,
+ 8267, 8405, 6984,
+ 8267, 8405, 7064,
+ 8267, 8405, 7078,
+ 8267, 8405, 7130,
+ 8267, 8405, 7322,
+ 8267, 8405, 7416,
+ 8267, 8405, 7490,
+ 8267, 8405, 7674,
+ 8267, 8405, 7828,
+ 8267, 8405, 7912,
+ 8267, 8405, 8502,
+ 8267, 8405, 8514,
+ 8267, 8405, 8822,
+ 8267, 8405, 9018,
+ 8267, 8405, 10394,
+ 8267, 8405, 10462,
+ 8285, 721, 5424,
+ 8285, 721, 8712,
+ 8287, 8153, 1045, 5965, 4926,
+ 8287, 8206,
+ 8287, 8405, 0,
+ 8287, 8405, 8,
+ 8287, 8405, 16,
+ 8287, 8405, 28,
+ 8287, 8405, 40,
+ 8287, 8405, 66,
+ 8287, 8405, 178,
+ 8287, 8405, 188,
+ 8287, 8405, 426,
+ 8287, 8405, 622,
+ 8287, 8405, 626,
+ 8287, 8405, 630,
+ 8287, 8405, 652,
+ 8287, 8405, 654,
+ 8287, 8405, 656,
+ 8287, 8405, 660,
+ 8287, 8405, 664,
+ 8287, 8405, 2908,
+ 8287, 8405, 2926,
+ 8287, 8405, 3012,
+ 8287, 8405, 3056,
+ 8287, 8405, 5770,
+ 8287, 8405, 6216,
+ 8287, 8405, 6230,
+ 8287, 8405, 6422,
+ 8287, 8405, 6594,
+ 8287, 8405, 6912,
+ 8287, 8405, 6982,
+ 8287, 8405, 7166,
+ 8287, 8405, 7244,
+ 8287, 8405, 7372,
+ 8287, 8405, 7440,
+ 8287, 8405, 7862,
+ 8287, 8405, 7866,
+ 8287, 8405, 7932,
+ 8287, 8405, 8362,
+ 8287, 8405, 8828,
+ 8287, 8405, 8950,
+ 8287, 8405, 8956,
+ 8287, 8405, 9086,
+ 8287, 8405, 9400,
+ 8287, 8405, 9562,
+ 8287, 8405, 9588,
+ 8287, 8405, 9780,
+ 8287, 8405, 10686,
+ 8287, 8405, 11248,
+ 8287, 8405, 11682,
+ 8287, 8405, 11696,
+ 8287, 8405, 11728,
+ 8287, 8405, 11758,
+ 8287, 8405, 11804,
+ 8287, 8405, 11812,
+ 8287, 8405, 11814,
+ 8287, 8405, 11824,
+ 8287, 8405, 11826,
+ 8287, 8405, 11828,
+ 8287, 8405, 11830,
+ 8287, 8405, 11832,
+ 8287, 8405, 12070,
+ 8287, 8405, 12080,
+ 8287, 8405, 12094,
+ 8287, 8405, 12096,
+ 8287, 8405, 12124,
+ 8287, 8405, 12144,
+ 8287, 8405, 12146,
+ 8287, 8405, 12150,
+ 8287, 8405, 12346,
+ 8287, 8405, 12348,
+ 8287, 8405, 12350,
+ 8287, 8405, 12352,
+ 8287, 8405, 12388,
+ 8287, 8405, 12514,
+ 8287, 8405, 12518,
+ 8287, 8405, 12520,
+ 8287, 8405, 12532,
+ 8287, 8405, 12534,
+ 8287, 8405, 12958,
+ 8287, 8405, 12960,
+ 8287, 8405, 12972,
+ 8287, 8405, 12978,
+ 8287, 8405, 12998,
+ 8287, 8405, 13004,
+ 8287, 8405, 13006,
+ 8287, 8405, 13008,
+ 8287, 8405, 13034,
+ 8287, 8405, 13204,
+ 8287, 8405, 13348,
+ 8287, 8405, 13354,
+ 8287, 8405, 13366,
+ 8287, 8405, 13368,
+ 8287, 8405, 13370,
+ 8287, 8405, 13374,
+ 8287, 8405, 13386,
+ 8287, 8717, 1045, 5965, 4926,
+ 8287, 9945, 5770,
+ 8287, 9945, 6594,
+ 8287, 9945, 6912,
+ 8287, 9945, 6982,
+ 8287, 9945, 7166,
+ 8287, 9945, 7244,
+ 8287, 9945, 7372,
+ 8287, 9945, 7440,
+ 8287, 9945, 8206,
+ 8287, 9945, 8362,
+ 8287, 9945, 8828,
+ 8287, 9945, 9086,
+ 8287, 9945, 9400,
+ 8287, 9945, 9562,
+ 8287, 9945, 9588,
+ 8287, 9945, 9780,
+ 8287, 9945, 10686,
+ 8287, 9945, 11248,
+ 8287, 9945, 11652,
+ 8287, 9945, 11728,
+ 8287, 9945, 11804,
+ 8287, 9945, 11806,
+ 8287, 9945, 11808,
+ 8287, 9945, 11810,
+ 8287, 9945, 11812,
+ 8287, 9945, 11814,
+ 8287, 9945, 11816,
+ 8287, 9945, 11824,
+ 8287, 9945, 11826,
+ 8287, 9945, 11828,
+ 8287, 9945, 11830,
+ 8287, 9945, 11832,
+ 8287, 9945, 11834,
+ 8287, 9945, 11902,
+ 8287, 9945, 12044,
+ 8287, 9945, 12046,
+ 8287, 9945, 12048,
+ 8287, 9945, 12080,
+ 8287, 9945, 12098,
+ 8287, 9945, 12124,
+ 8287, 9945, 12128,
+ 8287, 9945, 12144,
+ 8287, 9945, 12148,
+ 8287, 9945, 12346,
+ 8287, 9945, 12348,
+ 8287, 9945, 12350,
+ 8287, 9945, 12352,
+ 8287, 9945, 12388,
+ 8287, 9945, 12424,
+ 8287, 9945, 12484,
+ 8287, 9945, 12486,
+ 8287, 9945, 12512,
+ 8287, 9945, 12514,
+ 8287, 9945, 12518,
+ 8287, 9945, 12520,
+ 8287, 9945, 12858,
+ 8287, 9945, 12860,
+ 8287, 9945, 12862,
+ 8287, 9945, 12864,
+ 8287, 9945, 12908,
+ 8287, 9945, 12910,
+ 8287, 9945, 12942,
+ 8287, 9945, 12946,
+ 8287, 9945, 12948,
+ 8287, 9945, 12950,
+ 8287, 9945, 12958,
+ 8287, 9945, 12960,
+ 8287, 9945, 12962,
+ 8287, 9945, 12992,
+ 8287, 9945, 12994,
+ 8287, 9945, 12996,
+ 8287, 9945, 12998,
+ 8287, 9945, 13026,
+ 8287, 9945, 13078,
+ 8287, 9945, 13192,
+ 8287, 9945, 13194,
+ 8287, 9945, 13196,
+ 8287, 9945, 13204,
+ 8287, 9945, 13218,
+ 8287, 9945, 13238,
+ 8287, 9945, 13342,
+ 8287, 9945, 13344,
+ 8287, 9945, 13358,
+ 8287, 9945, 13366,
+ 8287, 9945, 13368,
+ 8287, 9945, 13378,
+ 8287, 9945, 13382,
+ 8287, 9945, 13384,
+ 8287, 9945, 13386,
+ 8287, 9945, 13408,
+ 8287, 9945, 13412,
+ 8287, 11071, 5770,
+ 8287, 11071, 6594,
+ 8287, 11071, 6912,
+ 8287, 11071, 6982,
+ 8287, 11071, 7166,
+ 8287, 11071, 7244,
+ 8287, 11071, 7372,
+ 8287, 11071, 7440,
+ 8287, 11071, 8362,
+ 8287, 11071, 8828,
+ 8287, 11071, 9086,
+ 8287, 11071, 9400,
+ 8287, 11071, 9562,
+ 8287, 11071, 9588,
+ 8287, 11071, 9780,
+ 8287, 11071, 10686,
+ 8287, 11071, 11248,
+ 8287, 11071, 11682,
+ 8287, 11071, 11696,
+ 8287, 11071, 11728,
+ 8287, 11071, 11758,
+ 8287, 11071, 11814,
+ 8287, 11071, 11816,
+ 8287, 11071, 11828,
+ 8287, 11071, 11834,
+ 8287, 11071, 12032,
+ 8287, 11071, 12034,
+ 8287, 11071, 12036,
+ 8287, 11071, 12038,
+ 8287, 11071, 12070,
+ 8287, 11071, 12078,
+ 8287, 11071, 12080,
+ 8287, 11071, 12082,
+ 8287, 11071, 12094,
+ 8287, 11071, 12096,
+ 8287, 11071, 12126,
+ 8287, 11071, 12130,
+ 8287, 11071, 12144,
+ 8287, 11071, 12146,
+ 8287, 11071, 12148,
+ 8287, 11071, 12150,
+ 8287, 11071, 12346,
+ 8287, 11071, 12348,
+ 8287, 11071, 12350,
+ 8287, 11071, 12388,
+ 8287, 11071, 12484,
+ 8287, 11071, 12496,
+ 8287, 11071, 12508,
+ 8287, 11071, 12512,
+ 8287, 11071, 12514,
+ 8287, 11071, 12532,
+ 8287, 11071, 12534,
+ 8287, 11071, 12884,
+ 8287, 11071, 12944,
+ 8287, 11071, 12958,
+ 8287, 11071, 12960,
+ 8287, 11071, 12970,
+ 8287, 11071, 12972,
+ 8287, 11071, 12978,
+ 8287, 11071, 12980,
+ 8287, 11071, 12992,
+ 8287, 11071, 12996,
+ 8287, 11071, 13002,
+ 8287, 11071, 13004,
+ 8287, 11071, 13006,
+ 8287, 11071, 13008,
+ 8287, 11071, 13026,
+ 8287, 11071, 13034,
+ 8287, 11071, 13204,
+ 8287, 11071, 13214,
+ 8287, 11071, 13224,
+ 8287, 11071, 13346,
+ 8287, 11071, 13348,
+ 8287, 11071, 13354,
+ 8287, 11071, 13362,
+ 8287, 11071, 13370,
+ 8287, 11071, 13372,
+ 8287, 11071, 13374,
+ 8287, 11071, 13388,
+ 8287, 11071, 13394,
+ 8287, 11071, 13396,
+ 8287, 11071, 13406,
+ 8287, 11073, 0,
+ 8287, 11073, 8,
+ 8287, 11073, 16,
+ 8287, 11073, 28,
+ 8287, 11073, 40,
+ 8287, 11073, 66,
+ 8287, 11073, 178,
+ 8287, 11073, 188,
+ 8287, 11073, 426,
+ 8287, 11073, 622,
+ 8287, 11073, 626,
+ 8287, 11073, 630,
+ 8287, 11073, 652,
+ 8287, 11073, 654,
+ 8287, 11073, 656,
+ 8287, 11073, 660,
+ 8287, 11073, 664,
+ 8287, 11073, 686,
+ 8287, 11073, 688,
+ 8287, 11073, 1466,
+ 8287, 11073, 1468,
+ 8287, 11073, 1470,
+ 8287, 11073, 2148,
+ 8287, 11073, 2150,
+ 8287, 11073, 2152,
+ 8287, 11073, 2800,
+ 8287, 11073, 2802,
+ 8287, 11073, 2908,
+ 8287, 11073, 2926,
+ 8287, 11073, 3012,
+ 8287, 11073, 3056,
+ 8287, 11073, 4160,
+ 8287, 11073, 4162,
+ 8287, 11073, 4168,
+ 8287, 11073, 4592,
+ 8287, 11073, 4594,
+ 8287, 11073, 5370,
+ 8287, 11073, 5372,
+ 8287, 11073, 6040,
+ 8287, 11073, 6042,
+ 8287, 11073, 6158,
+ 8287, 11073, 6204,
+ 8287, 11073, 6216,
+ 8287, 11073, 6218,
+ 8287, 11073, 6226,
+ 8287, 11073, 6228,
+ 8287, 11073, 6230,
+ 8287, 11073, 6232,
+ 8287, 11073, 6422,
+ 8287, 11073, 6736,
+ 8287, 11073, 6760,
+ 8287, 11073, 7838,
+ 8287, 11073, 7850,
+ 8287, 11073, 7852,
+ 8287, 11073, 7862,
+ 8287, 11073, 7864,
+ 8287, 11073, 7866,
+ 8287, 11073, 8206,
+ 8287, 11073, 8950,
+ 8287, 11073, 8952,
+ 8287, 11073, 8956,
+ 8287, 11073, 9002,
+ 8287, 11073, 9004,
+ 8287, 11073, 9346,
+ 8287, 11073, 9800,
+ 8287, 11073, 9882,
+ 8287, 11073, 11822,
+ 8293, 4927, 7121, 1044,
+ 8293, 4927, 7773, 1044,
+ 8293, 4927, 8455, 8056,
+ 8293, 7383, 2535, 1044,
+ 8293, 7383, 5522,
+ 8293, 7383, 5699, 1044,
+ 8293, 7383, 6901, 7342,
+ 8293, 7383, 6901, 7502,
+ 8293, 7383, 6901, 8620,
+ 8293, 7383, 6914,
+ 8293, 7383, 6948,
+ 8293, 7383, 6949, 6899, 1177, 2852,
+ 8293, 7383, 7148,
+ 8293, 7383, 7342,
+ 8293, 7383, 7502,
+ 8293, 7383, 7536,
+ 8293, 7383, 7742,
+ 8293, 7383, 8087, 445, 7132,
+ 8293, 7383, 8620,
+ 8293, 7383, 8621, 7404,
+ 8293, 7383, 8626,
+ 8293, 7383, 12957, 8910,
+ 8293, 7909, 2168,
+ 8293, 7909, 4054,
+ 8293, 7909, 4604,
+ 8293, 7909, 6439, 8280,
+ 8293, 7909, 6652,
+ 8293, 7909, 7192,
+ 8293, 7909, 7346,
+ 8293, 7909, 7402,
+ 8293, 7909, 7432,
+ 8293, 7909, 7502,
+ 8293, 7909, 7676,
+ 8293, 7909, 7855, 785, 6222,
+ 8293, 7909, 7858,
+ 8293, 7909, 7869, 6816,
+ 8293, 7909, 7869, 7404,
+ 8293, 7909, 7870,
+ 8293, 7909, 7886,
+ 8293, 7909, 8252,
+ 8293, 7909, 8253, 8492,
+ 8293, 7909, 8468,
+ 8293, 7909, 8469, 8346,
+ 8293, 7909, 8568,
+ 8293, 7909, 8623, 5398,
+ 8293, 7909, 8830,
+ 8293, 7909, 9272,
+ 8293, 7909, 9773, 8244,
+ 8293, 7909, 9773, 8624,
+ 8293, 7909, 10310,
+ 8293, 7909, 11016,
+ 8293, 7909, 11798,
+ 8293, 8405, 238,
+ 8293, 8405, 239, 6121, 7132,
+ 8293, 8405, 468,
+ 8293, 8405, 469, 6121, 5522,
+ 8293, 8405, 469, 6121, 8086,
+ 8293, 8405, 788,
+ 8293, 8405, 789, 6121, 5522,
+ 8293, 8405, 789, 6121, 8086,
+ 8293, 8405, 1366,
+ 8293, 8405, 1578,
+ 8293, 8405, 1579, 6121, 5522,
+ 8293, 8405, 1579, 6121, 8086,
+ 8293, 8405, 1892,
+ 8293, 8405, 1893, 6121, 8086,
+ 8293, 8405, 2110,
+ 8293, 8405, 2111, 6121, 8086,
+ 8293, 8405, 2318,
+ 8293, 8405, 2319, 6121, 8086,
+ 8293, 8405, 2660,
+ 8293, 8405, 2661, 6121, 8086,
+ 8293, 8405, 2674,
+ 8293, 8405, 2675, 6121, 8086,
+ 8293, 8405, 2852,
+ 8293, 8405, 2853, 6121, 6948,
+ 8293, 8405, 2853, 6121, 8086,
+ 8293, 8405, 3080,
+ 8293, 8405, 3081, 6121, 6914,
+ 8293, 8405, 3081, 6121, 8086,
+ 8293, 8405, 3244,
+ 8293, 8405, 3245, 6121, 7132,
+ 8293, 8405, 3245, 6121, 7342,
+ 8293, 8405, 3245, 6121, 8620,
+ 8293, 8405, 3292,
+ 8293, 8405, 5538,
+ 8293, 8405, 5539, 6121, 8086,
+ 8293, 8405, 5698,
+ 8293, 8405, 5699, 6121, 2535, 1044,
+ 8293, 8405, 5699, 6121, 5699, 1044,
+ 8293, 8405, 5699, 6121, 8086,
+ 8293, 8405, 5699, 6121, 8087, 721, 2535, 1044,
+ 8293, 8405, 5699, 6121, 8087, 721, 5699, 1044,
+ 8293, 8405, 6115, 238,
+ 8293, 8405, 6115, 1578,
+ 8293, 8405, 6115, 2660,
+ 8293, 8405, 6115, 3244,
+ 8293, 8405, 6115, 5538,
+ 8293, 8405, 6115, 6642,
+ 8293, 8405, 6115, 6789, 1892,
+ 8293, 8405, 6115, 7082,
+ 8293, 8405, 6642,
+ 8293, 8405, 6643, 6121, 8086,
+ 8293, 8405, 6789, 468,
+ 8293, 8405, 6789, 469, 6121, 8086,
+ 8293, 8405, 6789, 1578,
+ 8293, 8405, 6789, 1579, 6121, 8086,
+ 8293, 8405, 6789, 1892,
+ 8293, 8405, 6789, 2110,
+ 8293, 8405, 6789, 7740,
+ 8293, 8405, 6856,
+ 8293, 8405, 6857, 6121, 8086,
+ 8293, 8405, 7082,
+ 8293, 8405, 7083, 6121, 8086,
+ 8293, 8405, 7740,
+ 8293, 8405, 7741, 6121, 8086,
+ 8293, 8405, 7872,
+ 8293, 8405, 7873, 6121, 8086,
+ 8293, 8405, 8660,
+ 8293, 8405, 8661, 6121, 8086,
+ 8293, 8405, 11893, 3292,
+ 8293, 8405, 11893, 5445, 5758,
+ 8293, 10301, 3245, 7082,
+ 8293, 10301, 9847, 2853, 3080,
+ 8293, 10301, 9847, 3081, 3081, 7342,
+ 8293, 10301, 9847, 8153, 2852,
+ 8293, 10301, 9847, 8153, 3080,
+ 8293, 12133, 2111, 9318,
+ 8293, 12133, 2551, 7340,
+ 8293, 12133, 7134,
+ 8293, 12133, 7338,
+ 8293, 12133, 8252,
+ 8293, 12133, 11016,
+ 8306,
+ 8307, 6121, 10804,
+ 8307, 8022,
+ 8337, 9617, 151, 2090,
+ 8337, 9617, 228,
+ 8337, 9617, 229, 8722,
+ 8337, 9617, 720,
+ 8337, 9617, 742,
+ 8337, 9617, 806,
+ 8337, 9617, 824,
+ 8337, 9617, 920,
+ 8337, 9617, 1036,
+ 8337, 9617, 1044,
+ 8337, 9617, 1048,
+ 8337, 9617, 1090,
+ 8337, 9617, 1092,
+ 8337, 9617, 1136,
+ 8337, 9617, 1170,
+ 8337, 9617, 1182,
+ 8337, 9617, 1474,
+ 8337, 9617, 1504,
+ 8337, 9617, 1780,
+ 8337, 9617, 1860,
+ 8337, 9617, 2024,
+ 8337, 9617, 2090,
+ 8337, 9617, 2166,
+ 8337, 9617, 2170,
+ 8337, 9617, 2224,
+ 8337, 9617, 2390,
+ 8337, 9617, 2392,
+ 8337, 9617, 2400,
+ 8337, 9617, 2454,
+ 8337, 9617, 2502,
+ 8337, 9617, 2504,
+ 8337, 9617, 2586,
+ 8337, 9617, 2670,
+ 8337, 9617, 2778,
+ 8337, 9617, 2779, 6896,
+ 8337, 9617, 2834,
+ 8337, 9617, 3762,
+ 8337, 9617, 3788,
+ 8337, 9617, 3794,
+ 8337, 9617, 3798,
+ 8337, 9617, 3800,
+ 8337, 9617, 3805, 429, 6604,
+ 8337, 9617, 3806,
+ 8337, 9617, 3850,
+ 8337, 9617, 3852,
+ 8337, 9617, 3940,
+ 8337, 9617, 3942,
+ 8337, 9617, 3944,
+ 8337, 9617, 4052,
+ 8337, 9617, 4094,
+ 8337, 9617, 4108,
+ 8337, 9617, 4117, 826,
+ 8337, 9617, 4120,
+ 8337, 9617, 4172,
+ 8337, 9617, 4178,
+ 8337, 9617, 4180,
+ 8337, 9617, 4194,
+ 8337, 9617, 4196,
+ 8337, 9617, 4208,
+ 8337, 9617, 4218,
+ 8337, 9617, 4244,
+ 8337, 9617, 4342,
+ 8337, 9617, 4386,
+ 8337, 9617, 4389, 5969, 7736,
+ 8337, 9617, 4390,
+ 8337, 9617, 4398,
+ 8337, 9617, 4402,
+ 8337, 9617, 4530,
+ 8337, 9617, 4536,
+ 8337, 9617, 4608,
+ 8337, 9617, 4628,
+ 8337, 9617, 4824,
+ 8337, 9617, 4834,
+ 8337, 9617, 4844,
+ 8337, 9617, 4846,
+ 8337, 9617, 4850,
+ 8337, 9617, 4872,
+ 8337, 9617, 4876,
+ 8337, 9617, 4894,
+ 8337, 9617, 4895, 8756,
+ 8337, 9617, 4940,
+ 8337, 9617, 5012,
+ 8337, 9617, 5242,
+ 8337, 9617, 5385, 826,
+ 8337, 9617, 5438,
+ 8337, 9617, 5524,
+ 8337, 9617, 5546,
+ 8337, 9617, 5562,
+ 8337, 9617, 5632,
+ 8337, 9617, 5646,
+ 8337, 9617, 5650,
+ 8337, 9617, 5764,
+ 8337, 9617, 5772,
+ 8337, 9617, 5834,
+ 8337, 9617, 5836,
+ 8337, 9617, 5884,
+ 8337, 9617, 5940,
+ 8337, 9617, 5968,
+ 8337, 9617, 6100,
+ 8337, 9617, 6101, 10970,
+ 8337, 9617, 6112,
+ 8337, 9617, 6116,
+ 8337, 9617, 6118,
+ 8337, 9617, 6130,
+ 8337, 9617, 6132,
+ 8337, 9617, 6384,
+ 8337, 9617, 6434,
+ 8337, 9617, 6504,
+ 8337, 9617, 6512,
+ 8337, 9617, 6520,
+ 8337, 9617, 6574,
+ 8337, 9617, 6600,
+ 8337, 9617, 6612,
+ 8337, 9617, 6618,
+ 8337, 9617, 6670,
+ 8337, 9617, 6716,
+ 8337, 9617, 6722,
+ 8337, 9617, 6734,
+ 8337, 9617, 6780,
+ 8337, 9617, 6786,
+ 8337, 9617, 6794,
+ 8337, 9617, 6852,
+ 8337, 9617, 6870,
+ 8337, 9617, 6872,
+ 8337, 9617, 6906,
+ 8337, 9617, 6952,
+ 8337, 9617, 7056,
+ 8337, 9617, 7144,
+ 8337, 9617, 7184,
+ 8337, 9617, 7186,
+ 8337, 9617, 7388,
+ 8337, 9617, 7443, 5385, 826,
+ 8337, 9617, 7446,
+ 8337, 9617, 7526,
+ 8337, 9617, 7532,
+ 8337, 9617, 7548,
+ 8337, 9617, 7551, 8785, 3788,
+ 8337, 9617, 7551, 8824,
+ 8337, 9617, 7580,
+ 8337, 9617, 7582,
+ 8337, 9617, 7584,
+ 8337, 9617, 7592,
+ 8337, 9617, 7602,
+ 8337, 9617, 7604,
+ 8337, 9617, 7612,
+ 8337, 9617, 7616,
+ 8337, 9617, 7628,
+ 8337, 9617, 7634,
+ 8337, 9617, 7642,
+ 8337, 9617, 7654,
+ 8337, 9617, 7662,
+ 8337, 9617, 7704,
+ 8337, 9617, 7726,
+ 8337, 9617, 7730,
+ 8337, 9617, 7812,
+ 8337, 9617, 7816,
+ 8337, 9617, 7820,
+ 8337, 9617, 7830,
+ 8337, 9617, 7832,
+ 8337, 9617, 7942,
+ 8337, 9617, 7964,
+ 8337, 9617, 7974,
+ 8337, 9617, 8000,
+ 8337, 9617, 8008,
+ 8337, 9617, 8078,
+ 8337, 9617, 8118,
+ 8337, 9617, 8151, 5896,
+ 8337, 9617, 8151, 6600,
+ 8337, 9617, 8153, 46,
+ 8337, 9617, 8154,
+ 8337, 9617, 8194,
+ 8337, 9617, 8303, 10970,
+ 8337, 9617, 8316,
+ 8337, 9617, 8476,
+ 8337, 9617, 8484,
+ 8337, 9617, 8542,
+ 8337, 9617, 8678,
+ 8337, 9617, 8680,
+ 8337, 9617, 8730,
+ 8337, 9617, 8734,
+ 8337, 9617, 8740,
+ 8337, 9617, 8744,
+ 8337, 9617, 8793, 9426,
+ 8337, 9617, 8844,
+ 8337, 9617, 8852,
+ 8337, 9617, 8866,
+ 8337, 9617, 8870,
+ 8337, 9617, 8906,
+ 8337, 9617, 8928,
+ 8337, 9617, 8946,
+ 8337, 9617, 9056,
+ 8337, 9617, 9102,
+ 8337, 9617, 9106,
+ 8337, 9617, 9274,
+ 8337, 9617, 9282,
+ 8337, 9617, 9322,
+ 8337, 9617, 9426,
+ 8337, 9617, 9480,
+ 8337, 9617, 9532,
+ 8337, 9617, 9608,
+ 8337, 9617, 9658,
+ 8337, 9617, 9822,
+ 8337, 9617, 9934,
+ 8337, 9617, 10206,
+ 8337, 9617, 10336,
+ 8337, 9617, 10344,
+ 8337, 9617, 10456,
+ 8337, 9617, 10520,
+ 8337, 9617, 10542,
+ 8337, 9617, 10970,
+ 8337, 9617, 11488,
+ 8337, 9617, 11606,
+ 8337, 9617, 11946,
+ 8337, 9617, 12155, 6118,
+ 8349, 5758,
+ 8371, 10539, 8774,
+ 8389, 5912,
+ 8389, 5913, 445, 6741, 568,
+ 8401, 5759, 2388,
+ 8401, 5759, 7282,
+ 8401, 6689, 2170,
+ 8401, 6689, 2540,
+ 8401, 6689, 2778,
+ 8401, 6689, 4200,
+ 8401, 6689, 4214,
+ 8401, 6689, 5190,
+ 8401, 6689, 6260,
+ 8401, 6689, 6722,
+ 8401, 6689, 7508,
+ 8401, 6689, 7694,
+ 8401, 7803, 5759, 8,
+ 8401, 7803, 5759, 16,
+ 8401, 7803, 5759, 28,
+ 8401, 7803, 5759, 40,
+ 8401, 7803, 5759, 58,
+ 8401, 7803, 5759, 440,
+ 8401, 7803, 5759, 606,
+ 8401, 8405, 0,
+ 8401, 8405, 100,
+ 8401, 8405, 116,
+ 8401, 8405, 138,
+ 8401, 8405, 196,
+ 8401, 8405, 216,
+ 8401, 8405, 236,
+ 8401, 8405, 292,
+ 8401, 8405, 306,
+ 8401, 8405, 332,
+ 8401, 8405, 364,
+ 8401, 8405, 392,
+ 8401, 8405, 462,
+ 8401, 8405, 510,
+ 8401, 8405, 524,
+ 8401, 8405, 556,
+ 8401, 8405, 610,
+ 8401, 8405, 622,
+ 8401, 8405, 652,
+ 8401, 8405, 814,
+ 8401, 8405, 884,
+ 8401, 8405, 974,
+ 8401, 8405, 1080,
+ 8401, 8405, 1168,
+ 8401, 8405, 1286,
+ 8401, 8405, 1390,
+ 8401, 8405, 1612,
+ 8401, 8405, 1652,
+ 8401, 8405, 1930,
+ 8401, 8405, 2030,
+ 8401, 8405, 2126,
+ 8401, 8405, 2212,
+ 8401, 8405, 2234,
+ 8401, 8405, 2516,
+ 8401, 8405, 2678,
+ 8401, 8405, 2732,
+ 8401, 8405, 2746,
+ 8401, 8405, 5978,
+ 8401, 8405, 5994,
+ 8401, 10775, 5759, 20,
+ 8401, 10775, 5759, 22,
+ 8401, 10775, 5759, 24,
+ 8401, 10775, 5759, 26,
+ 8401, 10775, 5759, 30,
+ 8401, 10775, 5759, 34,
+ 8401, 10775, 5759, 38,
+ 8401, 10775, 5759, 4720,
+ 8401, 10775, 5759, 9522,
+ 8401, 11257, 8405, 510,
+ 8401, 11257, 8405, 652,
+ 8401, 12133, 5301, 8827, 8782,
+ 8401, 12133, 8038,
+ 8401, 12133, 8782,
+ 8401, 12133, 8856,
+ 8401, 12133, 8857, 8038,
+ 8421, 3, 8775, 3328,
+ 8421, 3, 8775, 3330,
+ 8421, 3, 8775, 3336,
+ 8421, 3, 8775, 3360,
+ 8421, 3, 8775, 3384,
+ 8421, 3, 8775, 3388,
+ 8421, 3, 8775, 3402,
+ 8421, 3, 8775, 3416,
+ 8421, 3, 8775, 3418,
+ 8421, 3, 8775, 3448,
+ 8421, 3, 8775, 3454,
+ 8421, 3, 8775, 3456,
+ 8421, 3, 8775, 3460,
+ 8421, 3, 8775, 3464,
+ 8421, 3, 10247, 3471, 1860,
+ 8421, 3, 10247, 3473, 7830,
+ 8421, 3, 10247, 3475, 4052,
+ 8421, 3, 10247, 3477, 6742,
+ 8421, 3, 10247, 3479, 7816,
+ 8421, 3, 10247, 3481, 7978,
+ 8421, 3, 10247, 3483, 7314,
+ 8421, 3, 10247, 3485, 7614,
+ 8421, 3, 10247, 3487, 9134,
+ 8421, 3, 10247, 3493, 2164,
+ 8421, 3, 10247, 3495, 6118,
+ 8421, 3, 10247, 3496,
+ 8421, 3, 10247, 3503, 8018,
+ 8421, 3, 10247, 3505, 4342,
+ 8421, 3, 10247, 3506,
+ 8421, 3, 10247, 3509, 6124,
+ 8421, 3, 10247, 3510,
+ 8421, 3, 10247, 3512,
+ 8421, 3, 10247, 3515, 4536,
+ 8421, 3, 10247, 3516,
+ 8421, 3, 10247, 3518,
+ 8421, 3, 10247, 3520,
+ 8421, 3, 10247, 3526,
+ 8421, 3, 10247, 3528,
+ 8421, 3, 10247, 3531, 6604,
+ 8421, 3, 10247, 3532,
+ 8421, 3, 10247, 3534,
+ 8421, 3, 10247, 3537, 9300,
+ 8421, 3, 10247, 3539, 7936,
+ 8421, 3, 10247, 3540,
+ 8421, 3, 10247, 3542,
+ 8421, 3, 10247, 3544,
+ 8421, 3, 10247, 3546,
+ 8421, 3, 10247, 3548,
+ 8421, 3, 10247, 3550,
+ 8421, 3, 10247, 3552,
+ 8421, 3, 10247, 3554,
+ 8421, 3, 10247, 3556,
+ 8421, 3, 10247, 3559, 7182,
+ 8421, 3, 10247, 3560,
+ 8421, 3, 10247, 3563, 5968,
+ 8421, 3, 10247, 3564,
+ 8421, 3, 10247, 3566,
+ 8421, 3, 10247, 3568,
+ 8421, 3, 10247, 3570,
+ 8421, 3, 10247, 3572,
+ 8421, 3, 10247, 3574,
+ 8421, 3, 10247, 3576,
+ 8421, 3, 10247, 3578,
+ 8421, 3, 10247, 3580,
+ 8421, 3, 10247, 3582,
+ 8421, 3, 10247, 3584,
+ 8421, 3, 10247, 3587, 8296,
+ 8421, 3, 10247, 3629, 11000,
+ 8421, 3, 10247, 3635, 9030,
+ 8421, 3, 10247, 3645, 7612,
+ 8421, 3, 10247, 3647, 6434,
+ 8421, 3, 10247, 3648,
+ 8421, 3, 10247, 3651, 7656,
+ 8421, 3, 10247, 3652,
+ 8421, 3, 10247, 3654,
+ 8421, 3, 10247, 3657, 9841, 9082,
+ 8421, 3, 10247, 3659, 9082,
+ 8421, 3, 10247, 3661, 9083, 6806,
+ 8421, 3, 10247, 3663, 7818,
+ 8421, 3, 10247, 3664,
+ 8421, 3, 10247, 3666,
+ 8421, 3, 10247, 3670,
+ 8421, 3, 10247, 3672,
+ 8421, 3, 10247, 3676,
+ 8421, 3, 10247, 3678,
+ 8421, 3, 10247, 3680,
+ 8421, 3, 10247, 3683, 3990,
+ 8421, 3, 10247, 3684,
+ 8421, 3, 10247, 3686,
+ 8421, 3, 10247, 3688,
+ 8421, 3, 10247, 3690,
+ 8421, 3, 10247, 3692,
+ 8421, 3, 10247, 6445, 4924,
+ 8421, 3, 10247, 6447, 10536,
+ 8421, 3, 10247, 6449, 1132,
+ 8421, 3, 10247, 6451, 2386,
+ 8421, 3, 10247, 6453, 10516,
+ 8421, 3, 10247, 6455, 9332,
+ 8421, 3, 10247, 6457, 2562,
+ 8421, 3, 10247, 6459, 3796,
+ 8421, 3, 10247, 6461, 920,
+ 8421, 3, 10247, 6463, 3812,
+ 8421, 3, 10247, 8915, 3522,
+ 8421, 3, 10247, 8915, 3588,
+ 8421, 3, 10247, 8915, 3590,
+ 8421, 3, 10247, 8915, 3592,
+ 8421, 3, 10247, 8915, 3594,
+ 8421, 3, 10247, 8915, 3596,
+ 8421, 3, 10247, 8915, 3598,
+ 8421, 3, 10247, 8915, 3600,
+ 8421, 3, 10247, 8915, 3602,
+ 8421, 3, 10247, 8915, 3604,
+ 8421, 3, 10247, 8915, 3606,
+ 8421, 3, 10247, 8915, 3608,
+ 8421, 3, 10247, 8915, 3610,
+ 8421, 3, 10247, 8915, 3612,
+ 8421, 3, 10247, 8915, 3614,
+ 8421, 3, 10247, 8915, 3616,
+ 8421, 3, 10247, 8915, 3618,
+ 8421, 3, 10247, 8915, 3620,
+ 8421, 3, 10247, 8915, 3622,
+ 8421, 3, 10247, 8915, 3624,
+ 8421, 3, 10247, 8915, 3626,
+ 8421, 3, 10247, 8915, 3630,
+ 8421, 3, 10247, 8915, 3632,
+ 8421, 3, 10247, 8915, 3636,
+ 8421, 3, 10247, 8915, 3638,
+ 8421, 3, 10247, 8915, 3640,
+ 8421, 3, 10247, 8915, 3642,
+ 8421, 3, 10247, 8915, 3674,
+ 8421, 3, 10247, 8915, 3694,
+ 8421, 3, 10343, 3489, 4726,
+ 8421, 3, 10343, 3491, 8334,
+ 8421, 3, 10343, 3499, 6424,
+ 8421, 3, 10343, 3501, 4948,
+ 8421, 3, 10343, 3525, 7754,
+ 8421, 3, 10343, 3669, 6692,
+ 8421, 3, 10585, 3295, 138,
+ 8421, 3, 10585, 3297, 516,
+ 8421, 3, 10585, 3299, 462,
+ 8421, 3, 10585, 3301, 560,
+ 8421, 3, 10585, 3303, 568,
+ 8421, 3, 10585, 3305, 392,
+ 8421, 3, 10585, 3307, 144,
+ 8421, 3, 10585, 3309, 0,
+ 8421, 3, 10585, 3311, 526,
+ 8421, 3, 10585, 3313, 40,
+ 8421, 3, 10585, 3315, 480,
+ 8421, 3, 10585, 3317, 536,
+ 8421, 3, 10585, 3319, 368,
+ 8421, 3, 10585, 3321, 150,
+ 8421, 3, 10585, 3323, 380,
+ 8421, 3, 10585, 3325, 496,
+ 8421, 3, 10585, 3327, 670,
+ 8421, 3, 10585, 3333, 678,
+ 8421, 3, 10585, 3335, 500,
+ 8421, 3, 10585, 3339, 384,
+ 8421, 3, 10585, 3341, 396,
+ 8421, 3, 10585, 3343, 54,
+ 8421, 3, 10585, 3345, 520,
+ 8421, 3, 10585, 3347, 512,
+ 8421, 3, 10585, 3349, 16,
+ 8421, 3, 10585, 3351, 2254,
+ 8421, 3, 10585, 3353, 404,
+ 8421, 3, 10585, 3355, 524,
+ 8421, 3, 10585, 3357, 502,
+ 8421, 3, 10585, 3359, 2376,
+ 8421, 3, 10585, 3363, 298,
+ 8421, 3, 10585, 3365, 564,
+ 8421, 3, 10585, 3367, 8,
+ 8421, 3, 10585, 3369, 476,
+ 8421, 3, 10585, 3371, 630,
+ 8421, 3, 10585, 3373, 532,
+ 8421, 3, 10585, 3375, 632,
+ 8421, 3, 10585, 3377, 56,
+ 8421, 3, 10585, 3379, 310,
+ 8421, 3, 10585, 3381, 142,
+ 8421, 3, 10585, 3383, 294,
+ 8421, 3, 10585, 3387, 2122,
+ 8421, 3, 10585, 3391, 486,
+ 8421, 3, 10585, 3393, 152,
+ 8421, 3, 10585, 3395, 412,
+ 8421, 3, 10585, 3397, 514,
+ 8421, 3, 10585, 3399, 622,
+ 8421, 3, 10585, 3401, 416,
+ 8421, 3, 10585, 3405, 292,
+ 8421, 3, 10585, 3407, 546,
+ 8421, 3, 10585, 3409, 556,
+ 8421, 3, 10585, 3411, 510,
+ 8421, 3, 10585, 3413, 28,
+ 8421, 3, 10585, 3415, 2252,
+ 8421, 3, 10585, 3421, 300,
+ 8421, 3, 10585, 3423, 2632,
+ 8421, 3, 10585, 3425, 314,
+ 8421, 3, 10585, 3427, 2422,
+ 8421, 3, 10585, 3429, 576,
+ 8421, 3, 10585, 3431, 322,
+ 8421, 3, 10585, 3433, 1074,
+ 8421, 3, 10585, 3435, 468,
+ 8421, 3, 10585, 3437, 374,
+ 8421, 3, 10585, 3439, 672,
+ 8421, 3, 10585, 3441, 626,
+ 8421, 3, 10585, 3443, 2374,
+ 8421, 3, 10585, 3445, 306,
+ 8421, 3, 10585, 3447, 498,
+ 8421, 3, 10585, 3451, 364,
+ 8421, 3, 10585, 3453, 326,
+ 8421, 3, 10585, 3459, 92,
+ 8421, 3, 10585, 3463, 2774,
+ 8421, 3, 10585, 3467, 1076,
+ 8421, 3, 10585, 3469, 2778,
+ 8429, 8405, 0,
+ 8429, 8405, 2,
+ 8429, 8405, 6,
+ 8429, 8405, 8,
+ 8429, 8405, 12,
+ 8429, 8405, 14,
+ 8429, 8405, 16,
+ 8429, 8405, 18,
+ 8429, 8405, 20,
+ 8429, 8405, 22,
+ 8429, 8405, 24,
+ 8429, 8405, 26,
+ 8429, 8405, 30,
+ 8429, 8405, 32,
+ 8429, 8405, 34,
+ 8429, 8405, 36,
+ 8429, 8405, 38,
+ 8429, 8405, 40,
+ 8429, 8405, 44,
+ 8429, 8405, 46,
+ 8429, 8405, 50,
+ 8429, 8405, 80,
+ 8429, 8405, 104,
+ 8429, 8405, 176,
+ 8429, 8405, 316,
+ 8429, 8405, 378,
+ 8429, 8405, 410,
+ 8429, 8405, 562,
+ 8429, 8405, 574,
+ 8431, 8405, 0,
+ 8431, 8405, 2,
+ 8431, 8405, 4,
+ 8431, 8405, 6,
+ 8431, 8405, 8,
+ 8431, 8405, 10,
+ 8431, 8405, 12,
+ 8431, 8405, 16,
+ 8431, 8405, 20,
+ 8431, 8405, 22,
+ 8431, 8405, 24,
+ 8431, 8405, 26,
+ 8431, 8405, 28,
+ 8431, 8405, 32,
+ 8431, 8405, 34,
+ 8431, 8405, 36,
+ 8431, 8405, 38,
+ 8431, 8405, 40,
+ 8431, 8405, 42,
+ 8431, 8405, 48,
+ 8431, 8405, 80,
+ 8431, 8405, 176,
+ 8431, 8405, 360,
+ 8431, 8405, 410,
+ 8431, 8405, 542,
+ 8431, 8405, 574,
+ 8431, 11859, 4926,
+ 8432,
+ 8463, 4849, 6627, 9051, 10380,
+ 8463, 4849, 12115, 10380,
+ 8463, 6505, 8056,
+ 8463, 7443, 6627, 9051, 10380,
+ 8463, 7443, 12115, 10380,
+ 8463, 7512,
+ 8463, 7593, 7821, 8056,
+ 8463, 7821, 8056,
+ 8463, 10677, 760,
+ 8463, 10997, 4849, 12115, 10380,
+ 8463, 10997, 7443, 12115, 10380,
+ 8463, 12505, 7608,
+ 8463, 12967, 6409, 9051, 10380,
+ 8463, 13067, 6409, 9051, 10380,
+ 8473, 1044,
+ 8480,
+ 8483, 2779, 2584,
+ 8499, 10363, 7608,
+ 8510,
+ 8521, 10573, 428,
+ 8521, 10573, 429, 445, 6741, 568,
+ 8525, 2671, 4223, 5836,
+ 8525, 5758,
+ 8525, 8163, 4223, 5836,
+ 8525, 8875, 4223, 5836,
+ 8525, 8877, 4223, 5836,
+ 8525, 9287, 4223, 5836,
+ 8525, 9701, 4223, 5836,
+ 8525, 10151, 4223, 5836,
+ 8525, 10201, 4223, 5836,
+ 8525, 10361, 4223, 5836,
+ 8525, 10623, 4223, 5836,
+ 8525, 11233, 4223, 5836,
+ 8527, 5758,
+ 8533, 12143, 10758,
+ 8534,
+ 8545, 1610,
+ 8551, 4849, 12114,
+ 8551, 7443, 12114,
+ 8562,
+ 8570,
+ 8581, 5758,
+ 8592,
+ 8595, 9956,
+ 8595, 9957, 5387, 2779, 476,
+ 8609, 4926,
+ 8609, 4927, 4178,
+ 8631, 8151, 12953, 8450,
+ 8631, 8744,
+ 8631, 12953, 8450,
+ 8639, 7803, 5759, 8,
+ 8639, 7803, 5759, 16,
+ 8639, 7803, 5759, 28,
+ 8639, 7803, 5759, 40,
+ 8639, 7803, 5759, 72,
+ 8639, 7803, 5759, 92,
+ 8639, 7803, 5759, 160,
+ 8639, 7803, 5759, 188,
+ 8639, 8405, 0,
+ 8639, 8405, 100,
+ 8639, 8405, 116,
+ 8639, 8405, 138,
+ 8639, 8405, 216,
+ 8639, 8405, 236,
+ 8639, 8405, 292,
+ 8639, 8405, 306,
+ 8639, 8405, 332,
+ 8639, 8405, 364,
+ 8639, 8405, 392,
+ 8639, 8405, 462,
+ 8639, 8405, 510,
+ 8639, 8405, 524,
+ 8639, 8405, 556,
+ 8639, 8405, 622,
+ 8639, 8405, 652,
+ 8639, 8405, 1878,
+ 8639, 8405, 2006,
+ 8639, 8405, 2030,
+ 8639, 8405, 2126,
+ 8639, 8405, 5152,
+ 8639, 8405, 5312,
+ 8639, 8916,
+ 8639, 9665, 4926,
+ 8639, 10775, 5759, 14,
+ 8639, 10775, 5759, 26,
+ 8639, 10775, 5759, 34,
+ 8639, 10775, 5759, 400,
+ 8643, 8774,
+ 8649, 10001, 9967, 7607, 4153, 6434,
+ 8649, 10001, 9967, 9279, 10000,
+ 8668,
+ 8672,
+ 8679, 7593, 8,
+ 8679, 7593, 12,
+ 8679, 7593, 22,
+ 8679, 7593, 28,
+ 8679, 9063, 2,
+ 8679, 9063, 8,
+ 8679, 9063, 10,
+ 8679, 9063, 14,
+ 8679, 9063, 16,
+ 8679, 9063, 22,
+ 8679, 9063, 24,
+ 8679, 9063, 30,
+ 8679, 9063, 34,
+ 8684,
+ 8691, 1044,
+ 8717, 7119, 11195, 4926,
+ 8717, 12967, 6409, 11195, 4926,
+ 8717, 13067, 6409, 11195, 4926,
+ 8717, 13201, 11195, 4926,
+ 8745, 1, 5387, 24,
+ 8745, 5, 5387, 312,
+ 8745, 21, 2162,
+ 8745, 25, 2162,
+ 8745, 25, 5387, 36,
+ 8745, 25, 5387, 37, 9732,
+ 8745, 25, 6624,
+ 8745, 25, 9732,
+ 8745, 43, 5387, 24,
+ 8745, 78,
+ 8745, 92,
+ 8745, 110,
+ 8745, 118,
+ 8745, 120,
+ 8745, 128,
+ 8745, 129, 6624,
+ 8745, 129, 9732,
+ 8745, 130,
+ 8745, 138,
+ 8745, 140,
+ 8745, 146,
+ 8745, 148,
+ 8745, 149, 6624,
+ 8745, 149, 9732,
+ 8745, 190,
+ 8745, 206,
+ 8745, 218,
+ 8745, 234,
+ 8745, 236,
+ 8745, 240,
+ 8745, 248,
+ 8745, 254,
+ 8745, 274,
+ 8745, 286,
+ 8745, 306,
+ 8745, 308,
+ 8745, 312,
+ 8745, 316,
+ 8745, 318,
+ 8745, 320,
+ 8745, 321, 6624,
+ 8745, 321, 9062,
+ 8745, 321, 9732,
+ 8745, 324,
+ 8745, 328,
+ 8745, 330,
+ 8745, 346,
+ 8745, 348,
+ 8745, 358,
+ 8745, 364,
+ 8745, 366,
+ 8745, 367, 7592,
+ 8745, 370,
+ 8745, 376,
+ 8745, 378,
+ 8745, 379, 6624,
+ 8745, 379, 9732,
+ 8745, 382,
+ 8745, 385, 0,
+ 8745, 385, 10,
+ 8745, 385, 12,
+ 8745, 385, 22,
+ 8745, 385, 24,
+ 8745, 385, 36,
+ 8745, 385, 42,
+ 8745, 385, 44,
+ 8745, 386,
+ 8745, 387, 4946,
+ 8745, 388,
+ 8745, 389, 4946,
+ 8745, 392,
+ 8745, 398,
+ 8745, 408,
+ 8745, 414,
+ 8745, 418,
+ 8745, 420,
+ 8745, 452,
+ 8745, 462,
+ 8745, 463, 3260,
+ 8745, 464,
+ 8745, 470,
+ 8745, 474,
+ 8745, 478,
+ 8745, 482,
+ 8745, 484,
+ 8745, 488,
+ 8745, 490,
+ 8745, 540,
+ 8745, 548,
+ 8745, 624,
+ 8745, 760,
+ 8745, 856,
+ 8745, 860,
+ 8745, 928,
+ 8745, 1117, 5047, 7142,
+ 8745, 1117, 5047, 8294,
+ 8745, 1117, 5047, 8778,
+ 8745, 1117, 5047, 9762,
+ 8745, 1118,
+ 8745, 1212,
+ 8745, 1270,
+ 8745, 1298,
+ 8745, 1422,
+ 8745, 1432,
+ 8745, 1622,
+ 8745, 1668,
+ 8745, 1800,
+ 8745, 1908,
+ 8745, 1918,
+ 8745, 1934,
+ 8745, 1946,
+ 8745, 2248,
+ 8745, 2382,
+ 8745, 2383, 5387, 36,
+ 8745, 2383, 5387, 37, 9732,
+ 8745, 2688,
+ 8745, 2720,
+ 8745, 2816,
+ 8745, 3224,
+ 8745, 3790,
+ 8745, 4062,
+ 8745, 4110,
+ 8745, 4208,
+ 8745, 4332,
+ 8745, 4532,
+ 8745, 4612,
+ 8745, 4732,
+ 8745, 4762,
+ 8745, 4849, 5385, 827, 10374,
+ 8745, 4946,
+ 8745, 5008,
+ 8745, 5052,
+ 8745, 5378,
+ 8745, 5380,
+ 8745, 5408,
+ 8745, 5430,
+ 8745, 5534,
+ 8745, 5552,
+ 8745, 5566,
+ 8745, 6121, 2725, 4389, 6504,
+ 8745, 6121, 4849, 4389, 6504,
+ 8745, 6121, 7121, 4849, 10001, 4389, 6504,
+ 8745, 6121, 7121, 7443, 10001, 4389, 6504,
+ 8745, 6121, 7443, 4389, 6504,
+ 8745, 6121, 7773, 4849, 569, 7121, 7443, 4192,
+ 8745, 6121, 7773, 4849, 10001, 4389, 6504,
+ 8745, 6121, 7773, 7443, 569, 7121, 4849, 4192,
+ 8745, 6121, 7773, 7443, 10001, 4389, 6504,
+ 8745, 6121, 8005, 4389, 6504,
+ 8745, 6121, 10001, 11469, 4192,
+ 8745, 6121, 10677, 4192,
+ 8745, 6121, 10779, 9544,
+ 8745, 6121, 11649, 4192,
+ 8745, 6121, 11707, 11469, 4192,
+ 8745, 6234,
+ 8745, 6410,
+ 8745, 6482,
+ 8745, 6630,
+ 8745, 6718,
+ 8745, 6826,
+ 8745, 6828,
+ 8745, 6858,
+ 8745, 6892,
+ 8745, 6950,
+ 8745, 6958,
+ 8745, 6989, 428,
+ 8745, 6989, 429, 445, 2091, 6741, 568,
+ 8745, 6989, 429, 445, 6741, 568,
+ 8745, 7018,
+ 8745, 7034,
+ 8745, 7060,
+ 8745, 7126,
+ 8745, 7128,
+ 8745, 7276,
+ 8745, 7330,
+ 8745, 7352,
+ 8745, 7360,
+ 8745, 7384,
+ 8745, 7443, 5385, 827, 10374,
+ 8745, 7470,
+ 8745, 7504,
+ 8745, 7506,
+ 8745, 7814,
+ 8745, 7840,
+ 8745, 7842,
+ 8745, 7926,
+ 8745, 7950,
+ 8745, 8002,
+ 8745, 8274,
+ 8745, 8300,
+ 8745, 8304,
+ 8745, 8314,
+ 8745, 8372,
+ 8745, 8378,
+ 8745, 8452,
+ 8745, 8572,
+ 8745, 8588,
+ 8745, 8604,
+ 8745, 9016,
+ 8745, 9308,
+ 8745, 9388,
+ 8745, 9390,
+ 8745, 9416,
+ 8745, 9438,
+ 8745, 9444,
+ 8745, 9454,
+ 8745, 9468,
+ 8745, 9470,
+ 8745, 9476,
+ 8745, 9636,
+ 8745, 9646,
+ 8745, 9648,
+ 8745, 9698,
+ 8745, 9926,
+ 8745, 10166,
+ 8745, 10244,
+ 8745, 10379, 428,
+ 8745, 10379, 429, 445, 2091, 6741, 568,
+ 8745, 10379, 429, 445, 6741, 568,
+ 8745, 10392,
+ 8745, 10480,
+ 8745, 10496,
+ 8745, 11028,
+ 8745, 11032,
+ 8745, 11080,
+ 8745, 11084,
+ 8745, 11120,
+ 8745, 11170,
+ 8745, 11668,
+ 8745, 11918,
+ 8745, 12068,
+ 8755, 10385, 7821, 5830,
+ 8763, 428,
+ 8763, 429, 445, 6741, 568,
+ 8763, 429, 445, 6741, 569, 6121, 1045, 6376,
+ 8763, 429, 6121, 2091, 6741, 568,
+ 8763, 429, 6377, 2091, 6741, 568,
+ 8763, 429, 6377, 7709, 10374,
+ 8763, 429, 6377, 7919, 6741, 568,
+ 8763, 429, 6377, 8167, 5758,
+ 8763, 6121, 1044,
+ 8763, 6121, 5445, 5759, 6490,
+ 8763, 6121, 13061, 5759, 6490,
+ 8763, 6377, 8762,
+ 8763, 6377, 10578,
+ 8763, 6377, 11765, 6434,
+ 8773, 7207, 5759, 9328,
+ 8773, 7207, 5759, 9870,
+ 8773, 7207, 5759, 10148,
+ 8773, 7207, 7803, 5759, 0,
+ 8773, 7207, 7803, 5759, 8,
+ 8773, 7207, 7803, 5759, 16,
+ 8773, 7207, 7803, 5759, 40,
+ 8773, 7207, 7803, 5759, 440,
+ 8773, 7207, 8405, 0,
+ 8773, 7207, 8405, 8,
+ 8773, 7207, 8405, 16,
+ 8773, 7207, 8405, 28,
+ 8773, 7207, 8405, 40,
+ 8773, 7207, 8405, 108,
+ 8773, 7207, 8405, 130,
+ 8773, 7207, 8405, 150,
+ 8773, 7207, 8405, 228,
+ 8773, 7207, 8405, 246,
+ 8773, 7207, 8405, 298,
+ 8773, 7207, 8405, 322,
+ 8773, 7207, 8405, 350,
+ 8773, 7207, 8405, 380,
+ 8773, 7207, 8405, 412,
+ 8773, 7207, 8405, 480,
+ 8773, 7207, 8405, 516,
+ 8773, 7207, 8405, 536,
+ 8773, 7207, 8405, 568,
+ 8773, 7207, 8405, 798,
+ 8773, 7207, 8405, 890,
+ 8773, 7207, 8405, 980,
+ 8773, 7207, 8405, 1002,
+ 8773, 7207, 8405, 1266,
+ 8773, 7207, 8405, 1514,
+ 8773, 7207, 8405, 1618,
+ 8773, 7207, 8405, 2218,
+ 8773, 7207, 8405, 2442,
+ 8773, 7207, 8405, 2684,
+ 8773, 7207, 8405, 2754,
+ 8773, 7207, 8405, 4018,
+ 8773, 7207, 8405, 6000,
+ 8773, 7207, 8603, 8442,
+ 8773, 7207, 8603, 8444,
+ 8773, 7207, 8603, 8446,
+ 8773, 7207, 8603, 8448,
+ 8775, 1177, 1109, 429, 5904,
+ 8775, 1177, 1109, 429, 8462,
+ 8775, 1177, 1109, 429, 12886,
+ 8775, 1177, 1109, 429, 12887, 6510,
+ 8775, 1177, 3768,
+ 8775, 1177, 3995, 4881, 8168,
+ 8775, 1177, 4191, 11228,
+ 8775, 1177, 4213, 4182,
+ 8775, 1177, 4877, 4182,
+ 8775, 1177, 5280,
+ 8775, 1177, 6053, 11228,
+ 8775, 1177, 6883, 11228,
+ 8775, 1177, 7539, 274,
+ 8775, 1177, 7539, 2186,
+ 8775, 1177, 7608,
+ 8775, 1177, 7633, 429, 5904,
+ 8775, 1177, 7633, 429, 9334,
+ 8775, 1177, 8026,
+ 8775, 1177, 8102,
+ 8775, 1177, 8103, 4213, 2778,
+ 8775, 1177, 8109, 9117, 2170,
+ 8775, 1177, 8109, 9117, 2778,
+ 8775, 1177, 8109, 9117, 4214,
+ 8775, 1177, 8109, 9117, 7694,
+ 8775, 1177, 8168,
+ 8775, 1177, 8637, 11228,
+ 8775, 1177, 9268,
+ 8775, 1177, 9502,
+ 8775, 1177, 9933, 8642,
+ 8775, 1177, 10357, 11884,
+ 8775, 1177, 10677, 11846,
+ 8775, 1177, 10730,
+ 8775, 1177, 11219, 8724,
+ 8775, 1177, 11649, 11846,
+ 8775, 1177, 11840,
+ 8775, 1177, 11841, 4213, 2778,
+ 8775, 1177, 11884,
+ 8775, 1177, 12359, 4598,
+ 8781, 1109, 429, 11162,
+ 8781, 2779, 10677, 4113, 6376,
+ 8781, 2779, 10677, 4113, 6490,
+ 8781, 6611, 8721, 4848,
+ 8781, 6611, 8721, 7442,
+ 8781, 6751, 6376,
+ 8781, 6751, 6490,
+ 8781, 6905, 6376,
+ 8781, 6905, 6490,
+ 8781, 7198,
+ 8781, 7427, 6376,
+ 8781, 7427, 6490,
+ 8781, 7472,
+ 8781, 7695, 4113, 6376,
+ 8781, 7695, 4113, 6490,
+ 8781, 8151, 7889, 8996,
+ 8781, 8151, 7889, 11648,
+ 8781, 8405, 8,
+ 8781, 8405, 238,
+ 8781, 8405, 468,
+ 8781, 8405, 1920,
+ 8781, 8405, 2110,
+ 8781, 8405, 2662,
+ 8781, 8405, 2918,
+ 8781, 8405, 3776,
+ 8781, 8405, 4410,
+ 8781, 8405, 4724,
+ 8781, 8405, 5476,
+ 8781, 8405, 5554,
+ 8781, 8405, 5698,
+ 8781, 8405, 5902,
+ 8781, 8405, 5903, 10214,
+ 8781, 8405, 6236,
+ 8781, 8405, 6237, 238,
+ 8781, 8405, 6254,
+ 8781, 8405, 6394,
+ 8781, 8405, 6789, 9668,
+ 8781, 8405, 6820,
+ 8781, 8405, 6821, 10214,
+ 8781, 8405, 7474,
+ 8781, 8405, 8090,
+ 8781, 8405, 8384,
+ 8781, 8405, 9185, 8091, 5554,
+ 8781, 8405, 9583, 6496,
+ 8781, 8405, 9583, 8258,
+ 8781, 8405, 9583, 9156,
+ 8781, 8405, 9668,
+ 8781, 8405, 9717, 198,
+ 8781, 8405, 9717, 7046,
+ 8781, 8405, 9717, 7874,
+ 8781, 8405, 10489, 468,
+ 8781, 8405, 12355, 6394,
+ 8781, 8617, 6376,
+ 8781, 8617, 6490,
+ 8781, 8617, 8150,
+ 8781, 8965, 6376,
+ 8781, 8965, 6490,
+ 8781, 8965, 8150,
+ 8781, 9024,
+ 8781, 9525, 4877, 6376,
+ 8781, 9525, 4877, 6490,
+ 8781, 10179, 1044,
+ 8781, 10235, 8530,
+ 8781, 10235, 11118,
+ 8781, 10235, 11432,
+ 8781, 10490,
+ 8781, 11196,
+ 8781, 11259, 4223, 5836,
+ 8781, 11259, 6610,
+ 8781, 11259, 6611, 8721, 7442,
+ 8781, 11649, 6610,
+ 8781, 11914,
+ 8781, 12031, 8150,
+ 8781, 12357, 4223, 5836,
+ 8781, 12357, 6610,
+ 8781, 12357, 6611, 8721, 4848,
+ 8781, 12391, 4926,
+ 8794,
+ 8803, 73, 8399, 4926,
+ 8803, 5759, 7756,
+ 8803, 5759, 8916,
+ 8803, 5759, 9824,
+ 8803, 5759, 9870,
+ 8803, 5759, 9904,
+ 8803, 5759, 11900,
+ 8803, 6689, 2170,
+ 8803, 6689, 2540,
+ 8803, 6689, 2778,
+ 8803, 6689, 4200,
+ 8803, 6689, 4214,
+ 8803, 6689, 5190,
+ 8803, 6689, 6260,
+ 8803, 6689, 6722,
+ 8803, 6689, 7508,
+ 8803, 6689, 7694,
+ 8803, 7803, 5759, 8,
+ 8803, 7803, 5759, 16,
+ 8803, 7803, 5759, 28,
+ 8803, 7803, 5759, 40,
+ 8803, 7803, 5759, 58,
+ 8803, 7803, 5759, 72,
+ 8803, 7803, 5759, 92,
+ 8803, 7803, 5759, 162,
+ 8803, 7803, 5759, 266,
+ 8803, 7803, 5759, 440,
+ 8803, 7803, 5759, 606,
+ 8803, 7803, 5759, 9827, 22,
+ 8803, 7803, 5759, 9827, 34,
+ 8803, 7803, 5759, 9827, 344,
+ 8803, 7803, 5759, 9827, 518,
+ 8803, 8399, 4926,
+ 8803, 8405, 0,
+ 8803, 8405, 8,
+ 8803, 8405, 16,
+ 8803, 8405, 28,
+ 8803, 8405, 40,
+ 8803, 8405, 58,
+ 8803, 8405, 72,
+ 8803, 8405, 92,
+ 8803, 8405, 100,
+ 8803, 8405, 116,
+ 8803, 8405, 138,
+ 8803, 8405, 162,
+ 8803, 8405, 216,
+ 8803, 8405, 236,
+ 8803, 8405, 266,
+ 8803, 8405, 292,
+ 8803, 8405, 306,
+ 8803, 8405, 332,
+ 8803, 8405, 364,
+ 8803, 8405, 392,
+ 8803, 8405, 440,
+ 8803, 8405, 462,
+ 8803, 8405, 510,
+ 8803, 8405, 524,
+ 8803, 8405, 556,
+ 8803, 8405, 606,
+ 8803, 8405, 610,
+ 8803, 8405, 652,
+ 8803, 8405, 792,
+ 8803, 8405, 884,
+ 8803, 8405, 974,
+ 8803, 8405, 996,
+ 8803, 8405, 1080,
+ 8803, 8405, 1260,
+ 8803, 8405, 1512,
+ 8803, 8405, 1612,
+ 8803, 8405, 1796,
+ 8803, 8405, 2030,
+ 8803, 8405, 2076,
+ 8803, 8405, 2126,
+ 8803, 8405, 2212,
+ 8803, 8405, 2438,
+ 8803, 8405, 2516,
+ 8803, 8405, 2566,
+ 8803, 8405, 2678,
+ 8803, 8405, 2732,
+ 8803, 8405, 2746,
+ 8803, 8405, 4016,
+ 8803, 8405, 5994,
+ 8803, 8405, 9827, 22,
+ 8803, 8405, 9827, 34,
+ 8803, 8405, 9827, 344,
+ 8803, 8405, 9827, 518,
+ 8803, 10203, 6689, 2171, 1177, 2161, 8611, 429, 4214,
+ 8803, 10203, 6689, 2171, 1177, 4173, 8611, 429, 4214,
+ 8803, 10203, 6689, 2779, 1177, 2161, 8611, 429, 4214,
+ 8803, 10203, 6689, 2779, 1177, 4173, 8611, 429, 4214,
+ 8803, 10203, 6689, 6261, 1177, 2161, 8611, 429, 4214,
+ 8803, 10203, 6689, 7695, 1177, 2161, 8611, 429, 4214,
+ 8803, 10203, 6689, 7695, 1177, 4173, 8611, 429, 4214,
+ 8811, 7650,
+ 8811, 8405, 568,
+ 8811, 8405, 678,
+ 8811, 8405, 748,
+ 8811, 8405, 1338,
+ 8811, 8405, 1982,
+ 8811, 8405, 2378,
+ 8811, 8405, 3006,
+ 8811, 8405, 3120,
+ 8811, 8405, 3240,
+ 8811, 8405, 4412,
+ 8811, 8405, 4734,
+ 8811, 8405, 5906,
+ 8811, 8405, 5988,
+ 8811, 8405, 6402,
+ 8811, 8405, 6766,
+ 8811, 8405, 6814,
+ 8811, 8405, 7016,
+ 8811, 8405, 7070,
+ 8811, 8405, 7140,
+ 8811, 8405, 7268,
+ 8811, 8405, 7400,
+ 8811, 8405, 7498,
+ 8811, 8405, 7780,
+ 8811, 8405, 7806,
+ 8811, 8405, 8084,
+ 8811, 8405, 8110,
+ 8811, 8405, 8256,
+ 8811, 8405, 8656,
+ 8811, 8405, 8698,
+ 8811, 8405, 8808,
+ 8811, 8405, 9986,
+ 8811, 8405, 10278,
+ 8811, 8405, 10414,
+ 8811, 8405, 10612,
+ 8811, 8405, 10690,
+ 8811, 8405, 10760,
+ 8811, 8405, 11020,
+ 8811, 8405, 11100,
+ 8811, 8405, 11236,
+ 8811, 8968,
+ 8811, 9254,
+ 8811, 9348,
+ 8811, 9526,
+ 8811, 9804,
+ 8811, 10694,
+ 8811, 10964,
+ 8811, 10986,
+ 8811, 11144,
+ 8811, 11146,
+ 8849, 5444,
+ 8849, 6611, 10374,
+ 8849, 7390,
+ 8849, 7708,
+ 8849, 8509, 11098,
+ 8849, 8509, 12472,
+ 8849, 9719, 7995, 10476,
+ 8849, 10260,
+ 8849, 10677, 761, 6121, 11649, 8758,
+ 8849, 10677, 761, 7443, 11378,
+ 8849, 10677, 761, 7995, 10476,
+ 8849, 10677, 761, 10794,
+ 8849, 11649, 761, 6121, 8153, 10677, 8758,
+ 8849, 11649, 761, 6121, 8849, 10677, 8758,
+ 8865, 5758,
+ 8869, 2091, 5758,
+ 8869, 6408,
+ 8869, 6879, 7593, 8405, 4614,
+ 8869, 7593, 10,
+ 8869, 9063, 10,
+ 8869, 10708,
+ 8869, 11767, 9063, 12,
+ 8869, 11767, 9063, 22,
+ 8869, 11767, 9063, 48,
+ 8875, 9601, 6505, 5830,
+ 8900,
+ 8913, 445, 6623, 9610,
+ 8923, 10260,
+ 8927, 10203, 2171, 4388,
+ 8927, 10203, 2171, 6782,
+ 8927, 10203, 2171, 7574,
+ 8927, 10203, 2171, 7686,
+ 8927, 10203, 2171, 8158,
+ 8927, 10203, 2171, 9614,
+ 8927, 10203, 2779, 8200,
+ 8927, 10203, 2779, 8818,
+ 8927, 10203, 4201, 8718,
+ 8927, 10203, 4201, 9258,
+ 8927, 10203, 4215, 8200,
+ 8927, 10203, 7509, 9258,
+ 8927, 10203, 7695, 8200,
+ 8927, 10203, 7695, 9258,
+ 8927, 10203, 7695, 10466,
+ 8939, 9610,
+ 8975, 428,
+ 8981, 5758,
+ 8990,
+ 9011, 5758,
+ 9034,
+ 9039, 93, 8399, 4926,
+ 9039, 5759, 7282,
+ 9039, 5759, 8916,
+ 9039, 5759, 9824,
+ 9039, 5759, 9870,
+ 9039, 5759, 9904,
+ 9039, 5759, 11900,
+ 9039, 6689, 2170,
+ 9039, 6689, 2540,
+ 9039, 6689, 2778,
+ 9039, 6689, 4200,
+ 9039, 6689, 4214,
+ 9039, 6689, 5190,
+ 9039, 6689, 6260,
+ 9039, 6689, 6722,
+ 9039, 6689, 7508,
+ 9039, 6689, 7694,
+ 9039, 7469, 4926,
+ 9039, 7469, 5758,
+ 9039, 7803, 5759, 8,
+ 9039, 7803, 5759, 16,
+ 9039, 7803, 5759, 28,
+ 9039, 7803, 5759, 40,
+ 9039, 7803, 5759, 58,
+ 9039, 7803, 5759, 72,
+ 9039, 7803, 5759, 92,
+ 9039, 7803, 5759, 266,
+ 9039, 7803, 5759, 606,
+ 9039, 7803, 5759, 9827, 22,
+ 9039, 7803, 5759, 9827, 34,
+ 9039, 7803, 5759, 9827, 344,
+ 9039, 7803, 5759, 9827, 518,
+ 9039, 8322,
+ 9039, 8405, 0,
+ 9039, 8405, 8,
+ 9039, 8405, 16,
+ 9039, 8405, 28,
+ 9039, 8405, 40,
+ 9039, 8405, 58,
+ 9039, 8405, 72,
+ 9039, 8405, 92,
+ 9039, 8405, 100,
+ 9039, 8405, 116,
+ 9039, 8405, 138,
+ 9039, 8405, 216,
+ 9039, 8405, 236,
+ 9039, 8405, 266,
+ 9039, 8405, 292,
+ 9039, 8405, 306,
+ 9039, 8405, 332,
+ 9039, 8405, 364,
+ 9039, 8405, 392,
+ 9039, 8405, 462,
+ 9039, 8405, 510,
+ 9039, 8405, 511, 6121, 7121, 10000,
+ 9039, 8405, 511, 6121, 8473, 10000,
+ 9039, 8405, 524,
+ 9039, 8405, 556,
+ 9039, 8405, 606,
+ 9039, 8405, 652,
+ 9039, 8405, 792,
+ 9039, 8405, 884,
+ 9039, 8405, 974,
+ 9039, 8405, 996,
+ 9039, 8405, 1260,
+ 9039, 8405, 1512,
+ 9039, 8405, 1612,
+ 9039, 8405, 2030,
+ 9039, 8405, 2076,
+ 9039, 8405, 2126,
+ 9039, 8405, 2212,
+ 9039, 8405, 2410,
+ 9039, 8405, 2438,
+ 9039, 8405, 2516,
+ 9039, 8405, 2566,
+ 9039, 8405, 2678,
+ 9039, 8405, 2746,
+ 9039, 8405, 3110,
+ 9039, 8405, 4016,
+ 9039, 8405, 5994,
+ 9039, 8405, 8357, 556,
+ 9039, 8405, 9827, 22,
+ 9039, 8405, 9827, 34,
+ 9039, 8405, 9827, 344,
+ 9039, 8405, 9827, 518,
+ 9039, 9971, 11143, 2170,
+ 9039, 9971, 11143, 2171, 4853, 5913, 2681, 11932,
+ 9039, 9971, 11143, 2778,
+ 9039, 9971, 11143, 4214,
+ 9039, 9971, 11143, 7694,
+ 9039, 9971, 11933, 9700,
+ 9041, 5550,
+ 9041, 5551, 6121, 8056,
+ 9042,
+ 9053, 9575, 6508,
+ 9053, 9575, 8134,
+ 9053, 9575, 8136,
+ 9053, 9575, 8138,
+ 9053, 9575, 8140,
+ 9053, 9575, 8142,
+ 9053, 9575, 8144,
+ 9053, 9575, 8146,
+ 9053, 9575, 8148,
+ 9053, 9575, 9186,
+ 9053, 9575, 9188,
+ 9053, 9575, 9190,
+ 9053, 9575, 9192,
+ 9053, 9575, 9194,
+ 9053, 9575, 9196,
+ 9053, 9575, 9198,
+ 9053, 9575, 9200,
+ 9053, 9575, 9202,
+ 9053, 9575, 9204,
+ 9053, 9575, 9206,
+ 9053, 9575, 9208,
+ 9053, 9575, 9210,
+ 9053, 9575, 9212,
+ 9053, 9575, 9214,
+ 9053, 9575, 9216,
+ 9053, 9575, 9218,
+ 9053, 9575, 9220,
+ 9053, 9575, 9222,
+ 9053, 9575, 9224,
+ 9053, 9575, 9226,
+ 9053, 9575, 9228,
+ 9053, 9575, 9230,
+ 9053, 9575, 9232,
+ 9053, 9575, 9234,
+ 9053, 9575, 9236,
+ 9053, 9575, 9238,
+ 9053, 9575, 9240,
+ 9053, 9575, 10020,
+ 9053, 9575, 10022,
+ 9053, 9575, 10024,
+ 9053, 9575, 10026,
+ 9053, 9575, 10028,
+ 9053, 9575, 10030,
+ 9053, 9575, 10032,
+ 9053, 9575, 10034,
+ 9053, 9575, 10036,
+ 9053, 9575, 10038,
+ 9053, 9575, 10040,
+ 9053, 9575, 10042,
+ 9053, 9575, 10044,
+ 9053, 9575, 10046,
+ 9053, 9575, 10048,
+ 9053, 9575, 10050,
+ 9053, 9575, 10052,
+ 9053, 9575, 10054,
+ 9053, 9575, 10056,
+ 9053, 9575, 10058,
+ 9053, 9575, 10060,
+ 9053, 9575, 10062,
+ 9053, 9575, 10064,
+ 9053, 9575, 10066,
+ 9053, 9575, 10068,
+ 9053, 9575, 10070,
+ 9053, 9575, 10072,
+ 9053, 9575, 10074,
+ 9053, 9575, 10076,
+ 9053, 9575, 10078,
+ 9053, 9575, 10080,
+ 9053, 9575, 10082,
+ 9053, 9575, 10084,
+ 9053, 9575, 10086,
+ 9053, 9575, 10088,
+ 9053, 9575, 10090,
+ 9053, 9575, 10092,
+ 9053, 9575, 10094,
+ 9053, 9575, 10096,
+ 9053, 9575, 10098,
+ 9053, 9575, 10100,
+ 9053, 9575, 10102,
+ 9053, 9575, 10104,
+ 9053, 9575, 10106,
+ 9053, 9575, 10108,
+ 9053, 9575, 10110,
+ 9053, 9575, 10112,
+ 9053, 9575, 10114,
+ 9053, 9575, 10116,
+ 9053, 9575, 10118,
+ 9053, 9575, 10120,
+ 9053, 9575, 10122,
+ 9053, 9575, 10124,
+ 9053, 9575, 10126,
+ 9053, 9575, 10128,
+ 9053, 9575, 10130,
+ 9053, 9575, 10818,
+ 9053, 9575, 10820,
+ 9053, 9575, 10822,
+ 9053, 9575, 10824,
+ 9053, 9575, 10826,
+ 9053, 9575, 10828,
+ 9053, 9575, 10830,
+ 9053, 9575, 10832,
+ 9053, 9575, 10834,
+ 9053, 9575, 10836,
+ 9053, 9575, 10838,
+ 9053, 9575, 10840,
+ 9053, 9575, 10842,
+ 9053, 9575, 10844,
+ 9053, 9575, 10846,
+ 9053, 9575, 10848,
+ 9053, 9575, 10850,
+ 9053, 9575, 10852,
+ 9053, 9575, 10854,
+ 9053, 9575, 10856,
+ 9053, 9575, 10858,
+ 9053, 9575, 10860,
+ 9053, 9575, 10862,
+ 9053, 9575, 10864,
+ 9053, 9575, 10866,
+ 9053, 9575, 10868,
+ 9053, 9575, 10870,
+ 9053, 9575, 10872,
+ 9053, 9575, 10874,
+ 9053, 9575, 10876,
+ 9053, 9575, 10878,
+ 9053, 9575, 10880,
+ 9053, 9575, 10882,
+ 9053, 9575, 10884,
+ 9053, 9575, 10886,
+ 9053, 9575, 10888,
+ 9053, 9575, 10890,
+ 9053, 9575, 10892,
+ 9053, 9575, 10894,
+ 9053, 9575, 10896,
+ 9053, 9575, 10898,
+ 9053, 9575, 10900,
+ 9053, 9575, 10902,
+ 9053, 9575, 10904,
+ 9053, 9575, 10906,
+ 9053, 9575, 10908,
+ 9053, 9575, 10910,
+ 9053, 9575, 10912,
+ 9053, 9575, 10914,
+ 9053, 9575, 10916,
+ 9053, 9575, 10918,
+ 9053, 9575, 10920,
+ 9053, 9575, 10922,
+ 9053, 9575, 10924,
+ 9053, 9575, 10926,
+ 9053, 9575, 10928,
+ 9053, 9575, 10930,
+ 9053, 9575, 10932,
+ 9053, 9575, 10934,
+ 9053, 9575, 10936,
+ 9053, 9575, 10938,
+ 9053, 9575, 10940,
+ 9053, 9575, 10942,
+ 9053, 9575, 10944,
+ 9053, 9575, 10946,
+ 9053, 9575, 10948,
+ 9053, 9575, 10950,
+ 9053, 9575, 10952,
+ 9053, 9575, 10954,
+ 9053, 9575, 10956,
+ 9053, 9575, 11490,
+ 9053, 9575, 11492,
+ 9053, 9575, 11494,
+ 9053, 9575, 11496,
+ 9053, 9575, 11498,
+ 9053, 9575, 11500,
+ 9053, 9575, 11502,
+ 9053, 9575, 11504,
+ 9053, 9575, 11506,
+ 9053, 9575, 11508,
+ 9053, 9575, 11510,
+ 9053, 9575, 11512,
+ 9053, 9575, 11514,
+ 9053, 9575, 11516,
+ 9053, 9575, 11518,
+ 9053, 9575, 11520,
+ 9053, 9575, 11522,
+ 9053, 9575, 11524,
+ 9053, 9575, 11526,
+ 9053, 9575, 11528,
+ 9053, 9575, 11530,
+ 9053, 9575, 11532,
+ 9053, 9575, 11534,
+ 9053, 9575, 11536,
+ 9053, 9575, 11538,
+ 9053, 9575, 11540,
+ 9053, 9575, 11542,
+ 9053, 9575, 11544,
+ 9053, 9575, 11546,
+ 9053, 9575, 11548,
+ 9053, 9575, 11550,
+ 9053, 9575, 11552,
+ 9053, 9575, 11554,
+ 9053, 9575, 11556,
+ 9053, 9575, 11558,
+ 9053, 9575, 11560,
+ 9053, 9575, 11562,
+ 9053, 9575, 11564,
+ 9053, 9575, 11566,
+ 9053, 9575, 11568,
+ 9053, 9575, 11570,
+ 9053, 9575, 11572,
+ 9053, 9575, 11574,
+ 9053, 9575, 11576,
+ 9053, 9575, 11578,
+ 9053, 9575, 11580,
+ 9053, 9575, 11582,
+ 9053, 9575, 11584,
+ 9053, 9575, 11586,
+ 9053, 9575, 11588,
+ 9053, 9575, 11590,
+ 9053, 9575, 11592,
+ 9053, 9575, 11594,
+ 9053, 9575, 11596,
+ 9053, 9575, 11598,
+ 9053, 9575, 11600,
+ 9053, 9575, 11950,
+ 9053, 9575, 11952,
+ 9053, 9575, 11954,
+ 9053, 9575, 11956,
+ 9053, 9575, 11958,
+ 9053, 9575, 11960,
+ 9053, 9575, 11962,
+ 9053, 9575, 11964,
+ 9053, 9575, 11966,
+ 9053, 9575, 11968,
+ 9053, 9575, 11970,
+ 9053, 9575, 11972,
+ 9053, 9575, 11974,
+ 9053, 9575, 11976,
+ 9053, 9575, 11978,
+ 9053, 9575, 11980,
+ 9053, 9575, 11982,
+ 9053, 9575, 11984,
+ 9053, 9575, 11986,
+ 9053, 9575, 11988,
+ 9053, 9575, 11990,
+ 9053, 9575, 11992,
+ 9053, 9575, 11994,
+ 9053, 9575, 11996,
+ 9053, 9575, 11998,
+ 9053, 9575, 12000,
+ 9053, 9575, 12002,
+ 9053, 9575, 12004,
+ 9053, 9575, 12444,
+ 9053, 9575, 12446,
+ 9053, 9575, 12448,
+ 9053, 9575, 12450,
+ 9053, 9575, 12452,
+ 9053, 9575, 12454,
+ 9053, 9575, 12456,
+ 9053, 9575, 12458,
+ 9053, 9575, 12926,
+ 9069, 5758,
+ 9072,
+ 9095, 1045, 10374,
+ 9095, 3992,
+ 9095, 5385, 8037, 6723, 9601, 5830,
+ 9095, 5444,
+ 9095, 5551, 10374,
+ 9095, 6689, 2170,
+ 9095, 6689, 2540,
+ 9095, 6689, 2778,
+ 9095, 6689, 4200,
+ 9095, 6689, 4214,
+ 9095, 6689, 5190,
+ 9095, 6689, 6260,
+ 9095, 6689, 6722,
+ 9095, 6689, 7508,
+ 9095, 6689, 7694,
+ 9095, 6909, 7821, 11765, 6434,
+ 9095, 7089, 7593, 8405, 0,
+ 9095, 7089, 7593, 8405, 2,
+ 9095, 7089, 7593, 8405, 4,
+ 9095, 7089, 7593, 8405, 6,
+ 9095, 7089, 7593, 8405, 8,
+ 9095, 7089, 7593, 8405, 10,
+ 9095, 7089, 7593, 8405, 12,
+ 9095, 7089, 7593, 8405, 14,
+ 9095, 7089, 7593, 8405, 16,
+ 9095, 7089, 7593, 8405, 18,
+ 9095, 7089, 7593, 8405, 20,
+ 9095, 7089, 7593, 8405, 22,
+ 9095, 7089, 7593, 8405, 24,
+ 9095, 7089, 7593, 8405, 26,
+ 9095, 7089, 7593, 8405, 28,
+ 9095, 7089, 7593, 8405, 30,
+ 9095, 7089, 7593, 8405, 32,
+ 9095, 7089, 7593, 8405, 34,
+ 9095, 7089, 7593, 8405, 36,
+ 9095, 7089, 7593, 8405, 38,
+ 9095, 7089, 7593, 8405, 40,
+ 9095, 7089, 7593, 8405, 42,
+ 9095, 7089, 7593, 8405, 44,
+ 9095, 7089, 7593, 8405, 46,
+ 9095, 7089, 7593, 8405, 48,
+ 9095, 7089, 7593, 8405, 50,
+ 9095, 7089, 9063, 8405, 0,
+ 9095, 7089, 9063, 8405, 2,
+ 9095, 7089, 9063, 8405, 4,
+ 9095, 7089, 9063, 8405, 6,
+ 9095, 7089, 9063, 8405, 8,
+ 9095, 7089, 9063, 8405, 10,
+ 9095, 7089, 9063, 8405, 12,
+ 9095, 7089, 9063, 8405, 14,
+ 9095, 7089, 9063, 8405, 16,
+ 9095, 7089, 9063, 8405, 18,
+ 9095, 7089, 9063, 8405, 20,
+ 9095, 7089, 9063, 8405, 22,
+ 9095, 7089, 9063, 8405, 24,
+ 9095, 7089, 9063, 8405, 26,
+ 9095, 7089, 9063, 8405, 28,
+ 9095, 7089, 9063, 8405, 30,
+ 9095, 7089, 9063, 8405, 32,
+ 9095, 7089, 9063, 8405, 34,
+ 9095, 7089, 9063, 8405, 36,
+ 9095, 7089, 9063, 8405, 38,
+ 9095, 7089, 9063, 8405, 40,
+ 9095, 7089, 9063, 8405, 42,
+ 9095, 7089, 9063, 8405, 44,
+ 9095, 7089, 9063, 8405, 46,
+ 9095, 7089, 9063, 8405, 48,
+ 9095, 7089, 9063, 8405, 50,
+ 9095, 7172,
+ 9095, 7710,
+ 9095, 7821, 5830,
+ 9095, 7821, 8022,
+ 9095, 8022,
+ 9095, 8166,
+ 9095, 8287, 5770,
+ 9095, 8287, 5771, 0,
+ 9095, 8287, 6594,
+ 9095, 8287, 6595, 0,
+ 9095, 8287, 6912,
+ 9095, 8287, 6913, 0,
+ 9095, 8287, 6982,
+ 9095, 8287, 6983, 0,
+ 9095, 8287, 6983, 40,
+ 9095, 8287, 7166,
+ 9095, 8287, 7167, 0,
+ 9095, 8287, 7244,
+ 9095, 8287, 7245, 0,
+ 9095, 8287, 7372,
+ 9095, 8287, 7373, 0,
+ 9095, 8287, 7440,
+ 9095, 8287, 7441, 0,
+ 9095, 8287, 8362,
+ 9095, 8287, 8363, 0,
+ 9095, 8287, 8828,
+ 9095, 8287, 8829, 0,
+ 9095, 8287, 9086,
+ 9095, 8287, 9087, 0,
+ 9095, 8287, 9400,
+ 9095, 8287, 9401, 0,
+ 9095, 8287, 9588,
+ 9095, 8287, 9589, 0,
+ 9095, 8287, 9780,
+ 9095, 8287, 9781, 0,
+ 9095, 8371, 10759, 7014,
+ 9095, 8371, 10759, 8040,
+ 9095, 8525, 2670,
+ 9095, 8525, 6784,
+ 9095, 8525, 6804,
+ 9095, 8525, 6805, 2170,
+ 9095, 8525, 6805, 2540,
+ 9095, 8525, 6805, 2778,
+ 9095, 8525, 6805, 4200,
+ 9095, 8525, 6805, 4214,
+ 9095, 8525, 6805, 5190,
+ 9095, 8525, 6805, 6722,
+ 9095, 8525, 6805, 7508,
+ 9095, 8525, 6805, 7694,
+ 9095, 8525, 8162,
+ 9095, 8525, 8820,
+ 9095, 8525, 8821, 2170,
+ 9095, 8525, 8821, 2540,
+ 9095, 8525, 8821, 2778,
+ 9095, 8525, 8821, 4200,
+ 9095, 8525, 8821, 4214,
+ 9095, 8525, 8821, 5190,
+ 9095, 8525, 8821, 6722,
+ 9095, 8525, 8821, 7508,
+ 9095, 8525, 8821, 7694,
+ 9095, 8525, 8874,
+ 9095, 8525, 8876,
+ 9095, 8525, 8877, 2170,
+ 9095, 8525, 8877, 2540,
+ 9095, 8525, 8877, 2778,
+ 9095, 8525, 8877, 4200,
+ 9095, 8525, 8877, 4214,
+ 9095, 8525, 8877, 5190,
+ 9095, 8525, 8877, 6722,
+ 9095, 8525, 8877, 7508,
+ 9095, 8525, 8877, 7694,
+ 9095, 8525, 9286,
+ 9095, 8525, 9700,
+ 9095, 8525, 10150,
+ 9095, 8525, 10200,
+ 9095, 8525, 10360,
+ 9095, 8525, 10622,
+ 9095, 8525, 11232,
+ 9095, 8609, 4926,
+ 9095, 9633, 9718,
+ 9095, 9899, 10374,
+ 9095, 10017, 5758,
+ 9095, 10017, 7580,
+ 9095, 10283, 0,
+ 9095, 10283, 8,
+ 9095, 10283, 16,
+ 9095, 10283, 28,
+ 9095, 10283, 40,
+ 9095, 10283, 236,
+ 9095, 10283, 238,
+ 9095, 10283, 242,
+ 9095, 10283, 246,
+ 9095, 10283, 250,
+ 9095, 10283, 306,
+ 9095, 10283, 310,
+ 9095, 10283, 314,
+ 9095, 10283, 322,
+ 9095, 10283, 326,
+ 9095, 10283, 364,
+ 9095, 10283, 368,
+ 9095, 10283, 374,
+ 9095, 10283, 380,
+ 9095, 10283, 384,
+ 9095, 10283, 392,
+ 9095, 10283, 396,
+ 9095, 10283, 404,
+ 9095, 10283, 412,
+ 9095, 10283, 416,
+ 9095, 10283, 510,
+ 9095, 10283, 512,
+ 9095, 10283, 514,
+ 9095, 10283, 516,
+ 9095, 10283, 520,
+ 9095, 10283, 524,
+ 9095, 10283, 526,
+ 9095, 10283, 532,
+ 9095, 10283, 536,
+ 9095, 10283, 546,
+ 9095, 10283, 556,
+ 9095, 10283, 560,
+ 9095, 10283, 564,
+ 9095, 10283, 568,
+ 9095, 10283, 576,
+ 9095, 10283, 622,
+ 9095, 10283, 626,
+ 9095, 10283, 630,
+ 9095, 10283, 632,
+ 9095, 10283, 652,
+ 9095, 10283, 660,
+ 9095, 10283, 664,
+ 9095, 10410,
+ 9095, 10643, 4116,
+ 9095, 10677, 760,
+ 9095, 11043, 1808,
+ 9095, 11043, 2170,
+ 9095, 11043, 2540,
+ 9095, 11043, 2586,
+ 9095, 11043, 2670,
+ 9095, 11043, 2778,
+ 9095, 11043, 3956,
+ 9095, 11043, 4194,
+ 9095, 11043, 4200,
+ 9095, 11043, 4214,
+ 9095, 11043, 4396,
+ 9095, 11043, 4422,
+ 9095, 11043, 4620,
+ 9095, 11043, 4848,
+ 9095, 11043, 4922,
+ 9095, 11043, 5012,
+ 9095, 11043, 5046,
+ 9095, 11043, 5190,
+ 9095, 11043, 5540,
+ 9095, 11043, 6122,
+ 9095, 11043, 6716,
+ 9095, 11043, 6722,
+ 9095, 11043, 7072,
+ 9095, 11043, 7146,
+ 9095, 11043, 7246,
+ 9095, 11043, 7392,
+ 9095, 11043, 7442,
+ 9095, 11043, 7508,
+ 9095, 11043, 7640,
+ 9095, 11043, 7646,
+ 9095, 11043, 7694,
+ 9095, 11043, 7812,
+ 9095, 11043, 8036,
+ 9095, 11043, 8196,
+ 9095, 11043, 8682,
+ 9095, 11043, 9122,
+ 9095, 11043, 9714,
+ 9095, 11043, 9724,
+ 9095, 11043, 9862,
+ 9095, 11043, 10328,
+ 9095, 11043, 10478,
+ 9095, 11043, 10484,
+ 9095, 11043, 10576,
+ 9095, 11043, 10726,
+ 9095, 11043, 10980,
+ 9095, 11043, 10992,
+ 9095, 11043, 11266,
+ 9095, 11043, 11612,
+ 9095, 11043, 13050,
+ 9095, 11098,
+ 9095, 11649, 761, 6121, 7272,
+ 9095, 12472,
+ 9095, 12990,
+ 9095, 13061, 5759, 6121, 11449, 7908,
+ 9095, 13411, 10017, 5758,
+ 9109, 7666,
+ 9115, 10260,
+ 9127, 8770,
+ 9137, 10585, 0,
+ 9137, 10585, 8,
+ 9137, 10585, 16,
+ 9137, 10585, 28,
+ 9137, 10585, 40,
+ 9137, 10585, 292,
+ 9137, 10585, 298,
+ 9137, 10585, 306,
+ 9137, 10585, 310,
+ 9137, 10585, 314,
+ 9137, 10585, 322,
+ 9137, 10585, 326,
+ 9137, 10585, 332,
+ 9137, 10585, 336,
+ 9137, 10585, 340,
+ 9137, 10585, 350,
+ 9137, 10585, 354,
+ 9137, 10585, 364,
+ 9137, 10585, 368,
+ 9137, 10585, 374,
+ 9137, 10585, 380,
+ 9137, 10585, 384,
+ 9137, 10585, 392,
+ 9137, 10585, 396,
+ 9137, 10585, 404,
+ 9137, 10585, 412,
+ 9137, 10585, 416,
+ 9137, 10585, 462,
+ 9137, 10585, 468,
+ 9137, 10585, 476,
+ 9137, 10585, 480,
+ 9137, 10585, 486,
+ 9137, 10585, 510,
+ 9137, 10585, 512,
+ 9137, 10585, 514,
+ 9137, 10585, 516,
+ 9137, 10585, 520,
+ 9137, 10585, 524,
+ 9137, 10585, 526,
+ 9137, 10585, 532,
+ 9137, 10585, 536,
+ 9137, 10585, 546,
+ 9137, 10585, 556,
+ 9137, 10585, 560,
+ 9137, 10585, 564,
+ 9137, 10585, 568,
+ 9137, 10585, 576,
+ 9137, 10585, 622,
+ 9137, 10585, 626,
+ 9137, 10585, 630,
+ 9137, 10585, 632,
+ 9137, 10585, 638,
+ 9137, 10585, 640,
+ 9137, 10585, 670,
+ 9137, 10585, 678,
+ 9151, 11229, 1611, 8774,
+ 9155, 7593, 8405, 14,
+ 9155, 7593, 8405, 98,
+ 9155, 7593, 8405, 164,
+ 9155, 7593, 8405, 172,
+ 9155, 7593, 8405, 174,
+ 9155, 7593, 8405, 176,
+ 9155, 7593, 8405, 182,
+ 9155, 7593, 8405, 184,
+ 9155, 7593, 8405, 192,
+ 9155, 7593, 8405, 432,
+ 9155, 7593, 8405, 454,
+ 9155, 7593, 8405, 634,
+ 9155, 7593, 8405, 778,
+ 9155, 7593, 8405, 984,
+ 9155, 7593, 8405, 1110,
+ 9155, 7593, 8405, 1124,
+ 9155, 7593, 8405, 1130,
+ 9155, 7593, 8405, 1226,
+ 9155, 7593, 8405, 1506,
+ 9155, 7593, 8405, 1596,
+ 9155, 7593, 8405, 2204,
+ 9155, 7593, 8405, 2666,
+ 9155, 7593, 8405, 2856,
+ 9155, 7593, 8405, 3050,
+ 9155, 7593, 8405, 3138,
+ 9155, 7593, 8405, 3890,
+ 9155, 7593, 8405, 4895, 0,
+ 9155, 7593, 8405, 4895, 8,
+ 9155, 7593, 8405, 4895, 16,
+ 9155, 7593, 8405, 4895, 28,
+ 9155, 7593, 8405, 4895, 70,
+ 9155, 7593, 8405, 4895, 440,
+ 9155, 7593, 8405, 5914,
+ 9155, 7593, 8405, 6274,
+ 9155, 7593, 8405, 7551, 0,
+ 9155, 7593, 8405, 7551, 8,
+ 9155, 7593, 8405, 7551, 16,
+ 9155, 7593, 8405, 7551, 28,
+ 9155, 7593, 8405, 7551, 70,
+ 9155, 7593, 8405, 7551, 440,
+ 9155, 9063, 8405, 14,
+ 9155, 9063, 8405, 98,
+ 9155, 9063, 8405, 164,
+ 9155, 9063, 8405, 172,
+ 9155, 9063, 8405, 174,
+ 9155, 9063, 8405, 176,
+ 9155, 9063, 8405, 182,
+ 9155, 9063, 8405, 184,
+ 9155, 9063, 8405, 192,
+ 9155, 9063, 8405, 432,
+ 9155, 9063, 8405, 454,
+ 9155, 9063, 8405, 634,
+ 9155, 9063, 8405, 778,
+ 9155, 9063, 8405, 984,
+ 9155, 9063, 8405, 1110,
+ 9155, 9063, 8405, 1124,
+ 9155, 9063, 8405, 1130,
+ 9155, 9063, 8405, 1226,
+ 9155, 9063, 8405, 1506,
+ 9155, 9063, 8405, 1596,
+ 9155, 9063, 8405, 2204,
+ 9155, 9063, 8405, 2666,
+ 9155, 9063, 8405, 2856,
+ 9155, 9063, 8405, 3050,
+ 9155, 9063, 8405, 3138,
+ 9155, 9063, 8405, 3890,
+ 9155, 9063, 8405, 4895, 0,
+ 9155, 9063, 8405, 4895, 8,
+ 9155, 9063, 8405, 4895, 16,
+ 9155, 9063, 8405, 4895, 28,
+ 9155, 9063, 8405, 4895, 70,
+ 9155, 9063, 8405, 4895, 440,
+ 9155, 9063, 8405, 5914,
+ 9155, 9063, 8405, 6274,
+ 9155, 9063, 8405, 7551, 0,
+ 9155, 9063, 8405, 7551, 8,
+ 9155, 9063, 8405, 7551, 16,
+ 9155, 9063, 8405, 7551, 28,
+ 9155, 9063, 8405, 7551, 70,
+ 9155, 9063, 8405, 7551, 440,
+ 9159, 6121, 2725, 4389, 6504,
+ 9159, 6121, 4849, 4389, 6504,
+ 9159, 6121, 7443, 4389, 6504,
+ 9159, 6121, 8005, 4389, 6504,
+ 9159, 10374,
+ 9171, 9095, 11767, 6689, 2170,
+ 9171, 9095, 11767, 6689, 2540,
+ 9171, 9095, 11767, 6689, 2778,
+ 9171, 9095, 11767, 6689, 4200,
+ 9171, 9095, 11767, 6689, 4214,
+ 9171, 9095, 11767, 6689, 5190,
+ 9171, 9095, 11767, 6689, 6722,
+ 9171, 9095, 11767, 6689, 7508,
+ 9171, 9095, 11767, 6689, 7694,
+ 9171, 9095, 11767, 8525, 2670,
+ 9171, 10357, 9095, 6689, 2170,
+ 9171, 10357, 9095, 6689, 2540,
+ 9171, 10357, 9095, 6689, 2778,
+ 9171, 10357, 9095, 6689, 4200,
+ 9171, 10357, 9095, 6689, 4214,
+ 9171, 10357, 9095, 6689, 5190,
+ 9171, 10357, 9095, 6689, 6722,
+ 9171, 10357, 9095, 6689, 7508,
+ 9171, 10357, 9095, 6689, 7694,
+ 9171, 10357, 9095, 8525, 2670,
+ 9171, 10357, 9095, 11767, 6689, 2170,
+ 9171, 10357, 9095, 11767, 6689, 2540,
+ 9171, 10357, 9095, 11767, 6689, 2778,
+ 9171, 10357, 9095, 11767, 6689, 4200,
+ 9171, 10357, 9095, 11767, 6689, 4214,
+ 9171, 10357, 9095, 11767, 6689, 5190,
+ 9171, 10357, 9095, 11767, 6689, 6722,
+ 9171, 10357, 9095, 11767, 6689, 7508,
+ 9171, 10357, 9095, 11767, 6689, 7694,
+ 9171, 10357, 9095, 11767, 8525, 2670,
+ 9180,
+ 9183, 8774,
+ 9243, 4923, 5758,
+ 9243, 8197, 5758,
+ 9245, 5758,
+ 9263, 428,
+ 9263, 429, 6121, 1045, 6376,
+ 9263, 429, 6121, 2779, 11649, 9744,
+ 9263, 429, 6121, 4895, 11649, 8758,
+ 9263, 429, 6121, 9546,
+ 9263, 429, 6121, 10666,
+ 9263, 429, 6121, 10677, 761, 91, 1109, 429, 11649, 8758,
+ 9263, 429, 9537, 9810,
+ 9263, 429, 9537, 10958,
+ 9279, 10001, 9967, 7271, 4153, 6434,
+ 9279, 10001, 9967, 8649, 10000,
+ 9288,
+ 9292,
+ 9297, 2830,
+ 9317, 5758,
+ 9325, 5759, 10400,
+ 9325, 7803, 5759, 16,
+ 9325, 7803, 5759, 40,
+ 9325, 8405, 0,
+ 9325, 8405, 16,
+ 9325, 8405, 40,
+ 9325, 8405, 100,
+ 9325, 8405, 138,
+ 9325, 8405, 216,
+ 9325, 8405, 236,
+ 9325, 8405, 306,
+ 9325, 8405, 332,
+ 9325, 8405, 364,
+ 9325, 8405, 392,
+ 9325, 8405, 462,
+ 9325, 8405, 510,
+ 9325, 8405, 524,
+ 9325, 8405, 556,
+ 9325, 8405, 622,
+ 9325, 8405, 652,
+ 9325, 8405, 2030,
+ 9343, 5758,
+ 9361, 7931, 4213, 9680,
+ 9361, 11345, 10582,
+ 9367, 7821, 8056,
+ 9367, 8022,
+ 9380,
+ 9385, 73, 8399, 4926,
+ 9385, 5759, 7282,
+ 9385, 5759, 8916,
+ 9385, 5759, 9824,
+ 9385, 5759, 9870,
+ 9385, 5759, 9904,
+ 9385, 5759, 12066,
+ 9385, 5759, 12384,
+ 9385, 6689, 2170,
+ 9385, 6689, 2540,
+ 9385, 6689, 2778,
+ 9385, 6689, 4200,
+ 9385, 6689, 4214,
+ 9385, 6689, 5190,
+ 9385, 6689, 6260,
+ 9385, 6689, 6722,
+ 9385, 6689, 7508,
+ 9385, 6689, 7694,
+ 9385, 7803, 5759, 8,
+ 9385, 7803, 5759, 16,
+ 9385, 7803, 5759, 28,
+ 9385, 7803, 5759, 40,
+ 9385, 7803, 5759, 58,
+ 9385, 7803, 5759, 72,
+ 9385, 7803, 5759, 92,
+ 9385, 7803, 5759, 162,
+ 9385, 7803, 5759, 266,
+ 9385, 7803, 5759, 440,
+ 9385, 7803, 5759, 606,
+ 9385, 7803, 5759, 9827, 22,
+ 9385, 7803, 5759, 9827, 34,
+ 9385, 7803, 5759, 9827, 344,
+ 9385, 7803, 5759, 9827, 518,
+ 9385, 8399, 4926,
+ 9385, 8405, 0,
+ 9385, 8405, 8,
+ 9385, 8405, 16,
+ 9385, 8405, 28,
+ 9385, 8405, 40,
+ 9385, 8405, 58,
+ 9385, 8405, 72,
+ 9385, 8405, 92,
+ 9385, 8405, 100,
+ 9385, 8405, 116,
+ 9385, 8405, 138,
+ 9385, 8405, 162,
+ 9385, 8405, 196,
+ 9385, 8405, 216,
+ 9385, 8405, 236,
+ 9385, 8405, 266,
+ 9385, 8405, 292,
+ 9385, 8405, 306,
+ 9385, 8405, 332,
+ 9385, 8405, 364,
+ 9385, 8405, 392,
+ 9385, 8405, 440,
+ 9385, 8405, 462,
+ 9385, 8405, 510,
+ 9385, 8405, 524,
+ 9385, 8405, 556,
+ 9385, 8405, 606,
+ 9385, 8405, 610,
+ 9385, 8405, 652,
+ 9385, 8405, 792,
+ 9385, 8405, 884,
+ 9385, 8405, 974,
+ 9385, 8405, 996,
+ 9385, 8405, 1260,
+ 9385, 8405, 1512,
+ 9385, 8405, 1612,
+ 9385, 8405, 1796,
+ 9385, 8405, 2030,
+ 9385, 8405, 2076,
+ 9385, 8405, 2126,
+ 9385, 8405, 2212,
+ 9385, 8405, 2438,
+ 9385, 8405, 2516,
+ 9385, 8405, 2566,
+ 9385, 8405, 2678,
+ 9385, 8405, 2746,
+ 9385, 8405, 4016,
+ 9385, 8405, 5994,
+ 9385, 8405, 9827, 22,
+ 9385, 8405, 9827, 34,
+ 9385, 8405, 9827, 344,
+ 9385, 8405, 9827, 518,
+ 9431, 11103, 5758,
+ 9437, 444,
+ 9437, 445, 6121, 1045, 6376,
+ 9437, 445, 6121, 8153, 9546,
+ 9437, 445, 6121, 8153, 10666,
+ 9437, 445, 6121, 8473, 5832,
+ 9437, 445, 6121, 11649, 3992,
+ 9437, 445, 12105, 9437, 720,
+ 9437, 720,
+ 9437, 721, 6121, 1045, 6376,
+ 9437, 721, 6121, 8153, 9546,
+ 9437, 721, 6121, 8153, 10666,
+ 9437, 721, 6121, 8473, 5832,
+ 9437, 721, 6121, 10666,
+ 9437, 721, 6121, 11649, 3992,
+ 9438,
+ 9439, 9177, 115, 11649, 5606,
+ 9443, 5941, 2171, 429, 9020,
+ 9443, 5941, 2171, 429, 9096,
+ 9443, 5941, 2171, 429, 11446,
+ 9443, 5941, 2401, 8154,
+ 9443, 5941, 2541, 429, 9020,
+ 9443, 5941, 2541, 429, 9096,
+ 9443, 5941, 2541, 429, 11446,
+ 9443, 5941, 2779, 429, 9020,
+ 9443, 5941, 2779, 429, 9096,
+ 9443, 5941, 2779, 429, 11446,
+ 9443, 5941, 3696,
+ 9443, 5941, 4153, 6116,
+ 9443, 5941, 4201, 429, 9020,
+ 9443, 5941, 4201, 429, 9096,
+ 9443, 5941, 4201, 429, 11446,
+ 9443, 5941, 4215, 429, 9020,
+ 9443, 5941, 4215, 429, 9096,
+ 9443, 5941, 4215, 429, 11446,
+ 9443, 5941, 5191, 429, 9020,
+ 9443, 5941, 5191, 429, 9096,
+ 9443, 5941, 5191, 429, 11446,
+ 9443, 5941, 5442,
+ 9443, 5941, 6113, 6116,
+ 9443, 5941, 6723, 429, 9020,
+ 9443, 5941, 6723, 429, 9096,
+ 9443, 5941, 6723, 429, 11446,
+ 9443, 5941, 6881, 8154,
+ 9443, 5941, 7010,
+ 9443, 5941, 7271, 6116,
+ 9443, 5941, 7509, 429, 9020,
+ 9443, 5941, 7509, 429, 9096,
+ 9443, 5941, 7509, 429, 11446,
+ 9443, 5941, 7607, 6116,
+ 9443, 5941, 7695, 429, 9020,
+ 9443, 5941, 7695, 429, 9096,
+ 9443, 5941, 7695, 429, 11446,
+ 9443, 5941, 7821, 8154,
+ 9443, 5941, 7960,
+ 9443, 5941, 7974,
+ 9443, 5941, 8546,
+ 9443, 5941, 8738,
+ 9443, 5941, 8766,
+ 9443, 5941, 8934,
+ 9443, 5941, 12912,
+ 9453, 6622,
+ 9472,
+ 9475, 11649, 10154,
+ 9483, 8775, 5, 3946,
+ 9483, 8775, 11, 3946,
+ 9483, 8775, 11, 3947, 8553, 3254,
+ 9483, 8775, 11, 3947, 8553, 6468,
+ 9483, 8775, 13, 3946,
+ 9483, 8775, 13, 3947, 8553, 3254,
+ 9483, 8775, 13, 3947, 8553, 6468,
+ 9483, 8775, 47, 10366,
+ 9483, 8775, 50,
+ 9483, 8775, 139, 3846,
+ 9483, 8775, 570,
+ 9483, 8775, 933, 5942,
+ 9483, 8775, 961, 7500,
+ 9483, 8775, 1109, 429, 8750,
+ 9483, 8775, 1109, 2690,
+ 9483, 8775, 1109, 3760,
+ 9483, 8775, 1109, 5776,
+ 9483, 8775, 1109, 8584,
+ 9483, 8775, 2171, 9345, 13031, 5244,
+ 9483, 8775, 2171, 9345, 13031, 5540,
+ 9483, 8775, 2211, 11838,
+ 9483, 8775, 3950,
+ 9483, 8775, 3984,
+ 9483, 8775, 3985, 718,
+ 9483, 8775, 4121, 8058,
+ 9483, 8775, 4121, 8060,
+ 9483, 8775, 4205, 600,
+ 9483, 8775, 4205, 4116,
+ 9483, 8775, 4227, 6504,
+ 9483, 8775, 4227, 7820,
+ 9483, 8775, 4389, 5244,
+ 9483, 8775, 4389, 5540,
+ 9483, 8775, 4389, 7351, 4926,
+ 9483, 8775, 4849, 8641, 5758,
+ 9483, 8775, 5013, 10367, 6504,
+ 9483, 8775, 5013, 10367, 7820,
+ 9483, 8775, 5281, 10366,
+ 9483, 8775, 5445, 10366,
+ 9483, 8775, 6020,
+ 9483, 8775, 6021, 600,
+ 9483, 8775, 6021, 7580,
+ 9483, 8775, 6093, 10366,
+ 9483, 8775, 6121, 12018,
+ 9483, 8775, 6485, 2690,
+ 9483, 8775, 6485, 3760,
+ 9483, 8775, 6485, 5776,
+ 9483, 8775, 6485, 8584,
+ 9483, 8775, 6514,
+ 9483, 8775, 6516,
+ 9483, 8775, 6620,
+ 9483, 8775, 6789, 9022,
+ 9483, 8775, 6802,
+ 9483, 8775, 6869, 5245, 413, 7580,
+ 9483, 8775, 6869, 5245, 7580,
+ 9483, 8775, 7112,
+ 9483, 8775, 7113, 10423, 5540,
+ 9483, 8775, 7113, 11659, 5540,
+ 9483, 8775, 7150,
+ 9483, 8775, 7191, 5540,
+ 9483, 8775, 7351, 601, 4926,
+ 9483, 8775, 7351, 4926,
+ 9483, 8775, 7368,
+ 9483, 8775, 7443, 8641, 5758,
+ 9483, 8775, 7500,
+ 9483, 8775, 7519, 600,
+ 9483, 8775, 7519, 4116,
+ 9483, 8775, 7551, 9022,
+ 9483, 8775, 7796,
+ 9483, 8775, 7823, 5244,
+ 9483, 8775, 7823, 5540,
+ 9483, 8775, 8011, 4926,
+ 9483, 8775, 8012,
+ 9483, 8775, 8013, 5540,
+ 9483, 8775, 8057, 47, 10366,
+ 9483, 8775, 8062,
+ 9483, 8775, 8073, 5942,
+ 9483, 8775, 8097, 9022,
+ 9483, 8775, 8101, 7580,
+ 9483, 8775, 8153, 4204,
+ 9483, 8775, 8153, 7518,
+ 9483, 8775, 8153, 9022,
+ 9483, 8775, 8159, 5244,
+ 9483, 8775, 8159, 5540,
+ 9483, 8775, 8458,
+ 9483, 8775, 8478,
+ 9483, 8775, 8479, 5540,
+ 9483, 8775, 8479, 6504,
+ 9483, 8775, 8553, 3254,
+ 9483, 8775, 8553, 6468,
+ 9483, 8775, 8641, 4112,
+ 9483, 8775, 8717, 9022,
+ 9483, 8775, 8745, 2,
+ 9483, 8775, 8745, 10367, 6504,
+ 9483, 8775, 8745, 10367, 7820,
+ 9483, 8775, 8760,
+ 9483, 8775, 8805, 11167, 925, 11739, 10422,
+ 9483, 8775, 8805, 11167, 925, 11739, 10423, 12438,
+ 9483, 8775, 8805, 11167, 925, 11739, 11658,
+ 9483, 8775, 8805, 12051, 925, 11739, 10422,
+ 9483, 8775, 8805, 12051, 925, 11739, 11658,
+ 9483, 8775, 8805, 12051, 925, 11739, 11659, 12438,
+ 9483, 8775, 8805, 12051, 925, 11739, 11659, 12440,
+ 9483, 8775, 8805, 12051, 925, 11739, 11659, 12442,
+ 9483, 8775, 9050,
+ 9483, 8775, 9060,
+ 9483, 8775, 9105, 10367, 6504,
+ 9483, 8775, 9105, 10367, 7820,
+ 9483, 8775, 9284,
+ 9483, 8775, 9285, 6490,
+ 9483, 8775, 9491, 600,
+ 9483, 8775, 9491, 4116,
+ 9483, 8775, 9598,
+ 9483, 8775, 9615, 5244,
+ 9483, 8775, 9615, 5540,
+ 9483, 8775, 9615, 5965, 4204,
+ 9483, 8775, 9615, 5965, 7518,
+ 9483, 8775, 9633, 6789, 9022,
+ 9483, 8775, 9950,
+ 9483, 8775, 10189, 11366,
+ 9483, 8775, 10189, 11368,
+ 9483, 8775, 10189, 11370,
+ 9483, 8775, 10267, 6020,
+ 9483, 8775, 10349, 9467, 5540,
+ 9483, 8775, 10367, 6504,
+ 9483, 8775, 10373, 7626,
+ 9483, 8775, 10381, 10554,
+ 9483, 8775, 10381, 10556,
+ 9483, 8775, 10381, 10558,
+ 9483, 8775, 10381, 10560,
+ 9483, 8775, 10381, 10562,
+ 9483, 8775, 10381, 10564,
+ 9483, 8775, 10381, 10566,
+ 9483, 8775, 10381, 10568,
+ 9483, 8775, 10381, 10570,
+ 9483, 8775, 10381, 11252,
+ 9483, 8775, 10381, 11254,
+ 9483, 8775, 10483, 10182,
+ 9483, 8775, 10483, 10184,
+ 9483, 8775, 10483, 10186,
+ 9483, 8775, 10527, 7626,
+ 9483, 8775, 10634,
+ 9483, 8775, 10635, 11212,
+ 9483, 8775, 10643, 10367, 601, 6504,
+ 9483, 8775, 10643, 10367, 601, 7443, 6504,
+ 9483, 8775, 10643, 10367, 601, 7443, 7820,
+ 9483, 8775, 10643, 10367, 601, 7820,
+ 9483, 8775, 10643, 10367, 4117, 6504,
+ 9483, 8775, 10643, 10367, 4117, 7820,
+ 9483, 8775, 10643, 10367, 4849, 6504,
+ 9483, 8775, 10643, 10367, 4849, 7820,
+ 9483, 8775, 10643, 10367, 7443, 6504,
+ 9483, 8775, 10643, 10367, 7443, 7820,
+ 9483, 8775, 10659, 7626,
+ 9483, 8775, 10767, 601, 824,
+ 9483, 8775, 10767, 2418,
+ 9483, 8775, 10767, 3772,
+ 9483, 8775, 10767, 4104,
+ 9483, 8775, 10767, 4117, 824,
+ 9483, 8775, 10767, 4206,
+ 9483, 8775, 10767, 5779, 11174,
+ 9483, 8775, 10767, 5832,
+ 9483, 8775, 10767, 7116,
+ 9483, 8775, 10767, 7596,
+ 9483, 8775, 10767, 7908,
+ 9483, 8775, 10767, 8153, 8844,
+ 9483, 8775, 10767, 8210,
+ 9483, 8775, 10767, 8212,
+ 9483, 8775, 10767, 8214,
+ 9483, 8775, 10767, 8216,
+ 9483, 8775, 10767, 8218,
+ 9483, 8775, 10767, 8806,
+ 9483, 8775, 10767, 8849, 8844,
+ 9483, 8775, 10767, 9458,
+ 9483, 8775, 10767, 10236,
+ 9483, 8775, 10767, 10534,
+ 9483, 8775, 10767, 11366,
+ 9483, 8775, 10767, 11368,
+ 9483, 8775, 10767, 11370,
+ 9483, 8775, 10767, 12407, 1044,
+ 9483, 8775, 10767, 12871, 5832,
+ 9483, 8775, 10767, 13016,
+ 9483, 8775, 10767, 13184,
+ 9483, 8775, 10767, 13340,
+ 9483, 8775, 10784,
+ 9483, 8775, 10995, 7626,
+ 9483, 8775, 11005, 7626,
+ 9483, 8775, 11019, 600,
+ 9483, 8775, 11019, 4116,
+ 9483, 8775, 11027, 5, 3946,
+ 9483, 8775, 11027, 11, 3946,
+ 9483, 8775, 11176,
+ 9483, 8775, 11177, 8220,
+ 9483, 8775, 11220,
+ 9483, 8775, 11221, 8220,
+ 9483, 8775, 11241, 5244,
+ 9483, 8775, 11241, 5540,
+ 9483, 8775, 11429, 600,
+ 9483, 8775, 11429, 4116,
+ 9483, 8775, 11789, 5540,
+ 9483, 8775, 11789, 6504,
+ 9483, 8775, 11789, 7820,
+ 9483, 8775, 11795, 5540,
+ 9483, 8775, 11795, 6504,
+ 9483, 8775, 11795, 7820,
+ 9483, 8775, 11821, 11006,
+ 9483, 8775, 11857, 7626,
+ 9483, 8775, 11928,
+ 9483, 8775, 12023, 11006,
+ 9483, 8775, 12028,
+ 9483, 8775, 12092,
+ 9483, 8775, 12115, 10366,
+ 9483, 8775, 12152,
+ 9483, 8775, 12531, 3254,
+ 9483, 8775, 12531, 6468,
+ 9483, 8775, 12867, 5244,
+ 9483, 8775, 12867, 5540,
+ 9483, 8775, 13025, 5244,
+ 9483, 8775, 13025, 5540,
+ 9483, 8775, 13081, 10367, 4117, 6504,
+ 9483, 8775, 13081, 10367, 4117, 7820,
+ 9485, 5671, 6689, 2170,
+ 9485, 5671, 6689, 2540,
+ 9485, 5671, 6689, 2778,
+ 9485, 5671, 6689, 4200,
+ 9485, 5671, 6689, 4214,
+ 9485, 5671, 6689, 5190,
+ 9485, 5671, 6689, 6260,
+ 9485, 5671, 6689, 6722,
+ 9485, 5671, 6689, 7508,
+ 9485, 5671, 6689, 7694,
+ 9485, 5759, 1045, 6490,
+ 9485, 5759, 3278,
+ 9485, 5759, 5671, 8834,
+ 9485, 5759, 5671, 8836,
+ 9485, 5759, 5671, 8840,
+ 9485, 5759, 5671, 8842,
+ 9485, 5759, 5671, 9125, 8834,
+ 9485, 5759, 5671, 9125, 8836,
+ 9485, 5759, 5671, 9125, 10159, 5964,
+ 9485, 5759, 7465, 9555, 8840,
+ 9485, 5759, 8425, 9664,
+ 9485, 5759, 8916,
+ 9485, 5759, 9664,
+ 9485, 5759, 9824,
+ 9485, 5759, 9839, 2273, 7025, 8832,
+ 9485, 5759, 9839, 2273, 7025, 8834,
+ 9485, 5759, 9839, 2273, 7025, 8836,
+ 9485, 5759, 9839, 2273, 7025, 8838,
+ 9485, 5759, 9839, 2273, 7025, 8840,
+ 9485, 5759, 9870,
+ 9485, 5965, 4927, 5657, 7025, 311, 2218,
+ 9485, 5965, 4927, 5657, 7025, 6902,
+ 9485, 6689, 2170,
+ 9485, 6689, 2540,
+ 9485, 6689, 2778,
+ 9485, 6689, 4200,
+ 9485, 6689, 4214,
+ 9485, 6689, 5190,
+ 9485, 6689, 6260,
+ 9485, 6689, 6722,
+ 9485, 6689, 7508,
+ 9485, 6689, 7694,
+ 9485, 7803, 5759, 8,
+ 9485, 7803, 5759, 9, 6376,
+ 9485, 7803, 5759, 16,
+ 9485, 7803, 5759, 40,
+ 9485, 7803, 5759, 58,
+ 9485, 7803, 5759, 72,
+ 9485, 7803, 5759, 266,
+ 9485, 7803, 5759, 606,
+ 9485, 7803, 5759, 1937, 28,
+ 9485, 7803, 5759, 1937, 266,
+ 9485, 7803, 5759, 4263, 7025, 16,
+ 9485, 7803, 5759, 5657, 7025, 188,
+ 9485, 7803, 5759, 5671, 8,
+ 9485, 7803, 5759, 5671, 9, 6376,
+ 9485, 7803, 5759, 5671, 58,
+ 9485, 7803, 5759, 5671, 6789, 48,
+ 9485, 7803, 5759, 5885, 58,
+ 9485, 7803, 5759, 7031, 40,
+ 9485, 7803, 5759, 7031, 162,
+ 9485, 7803, 5759, 7031, 426,
+ 9485, 7803, 5759, 9827, 22,
+ 9485, 7803, 5759, 9827, 34,
+ 9485, 7803, 5759, 9827, 344,
+ 9485, 7803, 5759, 9827, 518,
+ 9485, 7803, 5759, 9839, 2273, 7025, 188,
+ 9485, 7803, 5759, 9839, 2273, 7025, 590,
+ 9485, 8405, 0,
+ 9485, 8405, 8,
+ 9485, 8405, 16,
+ 9485, 8405, 28,
+ 9485, 8405, 40,
+ 9485, 8405, 92,
+ 9485, 8405, 100,
+ 9485, 8405, 116,
+ 9485, 8405, 138,
+ 9485, 8405, 216,
+ 9485, 8405, 236,
+ 9485, 8405, 266,
+ 9485, 8405, 292,
+ 9485, 8405, 306,
+ 9485, 8405, 332,
+ 9485, 8405, 364,
+ 9485, 8405, 392,
+ 9485, 8405, 462,
+ 9485, 8405, 510,
+ 9485, 8405, 524,
+ 9485, 8405, 556,
+ 9485, 8405, 606,
+ 9485, 8405, 622,
+ 9485, 8405, 652,
+ 9485, 8405, 792,
+ 9485, 8405, 884,
+ 9485, 8405, 974,
+ 9485, 8405, 996,
+ 9485, 8405, 1260,
+ 9485, 8405, 1512,
+ 9485, 8405, 1612,
+ 9485, 8405, 1796,
+ 9485, 8405, 1937, 8,
+ 9485, 8405, 1937, 766,
+ 9485, 8405, 1937, 768,
+ 9485, 8405, 1937, 1512,
+ 9485, 8405, 1937, 2030,
+ 9485, 8405, 2030,
+ 9485, 8405, 2076,
+ 9485, 8405, 2126,
+ 9485, 8405, 2212,
+ 9485, 8405, 2516,
+ 9485, 8405, 2566,
+ 9485, 8405, 2678,
+ 9485, 8405, 2746,
+ 9485, 8405, 4016,
+ 9485, 8405, 5236,
+ 9485, 8405, 5657, 7025, 2516,
+ 9485, 8405, 5671, 0,
+ 9485, 8405, 5671, 100,
+ 9485, 8405, 5671, 116,
+ 9485, 8405, 5671, 138,
+ 9485, 8405, 5671, 196,
+ 9485, 8405, 5671, 216,
+ 9485, 8405, 5671, 236,
+ 9485, 8405, 5671, 306,
+ 9485, 8405, 5671, 392,
+ 9485, 8405, 5671, 670,
+ 9485, 8405, 5671, 1612,
+ 9485, 8405, 5671, 2126,
+ 9485, 8405, 5671, 2212,
+ 9485, 8405, 5671, 2678,
+ 9485, 8405, 5994,
+ 9485, 8405, 6877, 524,
+ 9485, 8405, 7465, 9555, 196,
+ 9485, 8405, 9253, 2273, 7025, 2076,
+ 9485, 8405, 9253, 2273, 7025, 3102,
+ 9485, 8405, 9253, 2273, 7025, 4322,
+ 9485, 8405, 9827, 22,
+ 9485, 8405, 9827, 34,
+ 9485, 8405, 9827, 344,
+ 9485, 8405, 9827, 518,
+ 9485, 8405, 9839, 2273, 7025, 2266,
+ 9485, 8405, 9839, 2273, 7025, 2678,
+ 9485, 8775, 5671, 2170,
+ 9485, 8775, 5671, 12016,
+ 9485, 8775, 10218,
+ 9485, 8775, 10304,
+ 9485, 8775, 10768,
+ 9485, 8775, 13040,
+ 9485, 10775, 5759, 1937, 8461, 332,
+ 9485, 10775, 5759, 1937, 8461, 364,
+ 9485, 10775, 5759, 1937, 8461, 392,
+ 9485, 10775, 5759, 5671, 8461, 622,
+ 9485, 10775, 5759, 8461, 236,
+ 9485, 10775, 5759, 8461, 510,
+ 9485, 10775, 5759, 8461, 622,
+ 9485, 10775, 5759, 8461, 652,
+ 9495, 8153, 10677, 761, 8153, 7443, 11378,
+ 9497, 1, 8763, 429, 2089, 6741, 568,
+ 9497, 1, 10579, 429, 2089, 6741, 568,
+ 9497, 11099, 2089, 6741, 568,
+ 9497, 11099, 2089, 11621, 568,
+ 9497, 11099, 2089, 12472,
+ 9497, 12473, 2089, 6741, 568,
+ 9497, 12473, 2089, 11098,
+ 9497, 12473, 2089, 11621, 568,
+ 9497, 12903, 2089, 9855, 6741, 568,
+ 9498,
+ 9509, 6689, 8696,
+ 9511, 7121, 13069, 7821, 11765, 6434,
+ 9511, 7773, 13069, 7821, 11765, 6434,
+ 9525, 6409, 9537, 600,
+ 9525, 6409, 9537, 4116,
+ 9541, 6689, 2170,
+ 9541, 6689, 2540,
+ 9541, 6689, 2778,
+ 9541, 6689, 4200,
+ 9541, 6689, 4214,
+ 9541, 6689, 5190,
+ 9541, 6689, 6260,
+ 9541, 6689, 6722,
+ 9541, 6689, 7508,
+ 9541, 6689, 7694,
+ 9541, 8405, 0,
+ 9541, 8405, 8,
+ 9541, 8405, 16,
+ 9541, 8405, 28,
+ 9541, 8405, 40,
+ 9541, 8405, 58,
+ 9541, 8405, 100,
+ 9541, 8405, 162,
+ 9541, 8405, 196,
+ 9541, 8405, 216,
+ 9541, 8405, 236,
+ 9541, 8405, 292,
+ 9541, 8405, 440,
+ 9541, 8405, 510,
+ 9541, 8405, 524,
+ 9541, 8405, 556,
+ 9541, 8405, 638,
+ 9541, 8405, 652,
+ 9541, 8405, 996,
+ 9541, 8405, 1612,
+ 9541, 8405, 2918,
+ 9541, 8405, 3244,
+ 9541, 8405, 3854,
+ 9541, 8405, 4050,
+ 9541, 8405, 4698,
+ 9541, 8405, 4820,
+ 9541, 8405, 5000,
+ 9541, 8405, 5288,
+ 9541, 8405, 5470,
+ 9541, 8405, 7540,
+ 9573, 12432,
+ 9581, 5758,
+ 9595, 5758,
+ 9615, 5244,
+ 9617, 8775, 8004,
+ 9633, 7709, 10375, 6377, 11097, 6434,
+ 9633, 7709, 10375, 6377, 11765, 6434,
+ 9633, 9718,
+ 9633, 9719, 6121, 11649, 8758,
+ 9633, 9719, 10374,
+ 9633, 9719, 11183, 8762,
+ 9641, 6909, 6505, 6907, 8022,
+ 9641, 8225, 6907, 8022,
+ 9641, 9063, 32,
+ 9650,
+ 9660,
+ 9665, 5758,
+ 9666,
+ 9671, 4926,
+ 9676,
+ 9683, 8405, 70,
+ 9683, 8405, 260,
+ 9683, 8405, 438,
+ 9683, 8405, 444,
+ 9683, 8405, 536,
+ 9683, 8405, 600,
+ 9683, 8405, 706,
+ 9683, 8405, 708,
+ 9683, 8405, 712,
+ 9683, 8405, 732,
+ 9683, 8405, 736,
+ 9683, 8405, 740,
+ 9683, 8405, 802,
+ 9683, 8405, 1090,
+ 9683, 8405, 1092,
+ 9683, 8405, 1100,
+ 9683, 8405, 1120,
+ 9683, 8405, 1150,
+ 9683, 8405, 1210,
+ 9683, 8405, 1472,
+ 9683, 8405, 1474,
+ 9683, 8405, 2110,
+ 9683, 8405, 2154,
+ 9683, 8405, 2164,
+ 9683, 8405, 2186,
+ 9683, 8405, 2726,
+ 9683, 8405, 2884,
+ 9683, 8405, 2938,
+ 9683, 8405, 3048,
+ 9683, 8405, 3060,
+ 9683, 8405, 3178,
+ 9683, 8405, 4048,
+ 9683, 8405, 4548,
+ 9683, 8405, 4754,
+ 9683, 8405, 4892,
+ 9683, 8405, 5004,
+ 9683, 8405, 5382,
+ 9683, 8405, 5406,
+ 9683, 8405, 5560,
+ 9683, 8405, 5854,
+ 9683, 8405, 5922,
+ 9683, 8405, 6124,
+ 9683, 8405, 6432,
+ 9683, 8405, 6886,
+ 9683, 8405, 7012,
+ 9683, 8405, 7684,
+ 9683, 8405, 8054,
+ 9683, 8405, 9466,
+ 9689, 9610,
+ 9693, 445, 11098,
+ 9693, 445, 12472,
+ 9693, 6377, 11099, 6377, 8167, 5758,
+ 9693, 6377, 12473, 6377, 8167, 5758,
+ 9693, 7173, 9692,
+ 9695, 5759, 10702,
+ 9695, 5759, 11392,
+ 9695, 5759, 11418,
+ 9695, 7803, 5759, 4087, 9406,
+ 9695, 7803, 5759, 4087, 10272,
+ 9695, 7803, 5759, 4087, 11150,
+ 9695, 7803, 5759, 4087, 11406,
+ 9695, 7803, 5759, 4087, 12024,
+ 9695, 7803, 5759, 4087, 12468,
+ 9695, 7803, 5759, 7043, 10272,
+ 9695, 7803, 5759, 7043, 11150,
+ 9695, 7803, 5759, 7043, 11406,
+ 9695, 7803, 5759, 7059, 4056,
+ 9695, 7803, 5759, 9406,
+ 9695, 7803, 5759, 9407, 1339, 4087, 11408,
+ 9695, 7803, 5759, 9407, 1339, 11408,
+ 9695, 7803, 5759, 9407, 1339, 12024,
+ 9695, 7803, 5759, 11408,
+ 9695, 7803, 5759, 12024,
+ 9695, 7803, 5759, 12468,
+ 9695, 8405, 3259, 9032,
+ 9695, 8405, 7962,
+ 9695, 8405, 8176,
+ 9695, 8405, 8326,
+ 9695, 8405, 8558,
+ 9695, 8405, 8904,
+ 9695, 8405, 8966,
+ 9695, 8405, 8978,
+ 9695, 8405, 8988,
+ 9695, 8405, 9012,
+ 9695, 8405, 9141, 9424,
+ 9695, 8405, 9141, 9492,
+ 9695, 8405, 9141, 9656,
+ 9695, 8405, 9256,
+ 9695, 8405, 9280,
+ 9695, 8405, 9330,
+ 9695, 8405, 9352,
+ 9695, 8405, 9387, 11692,
+ 9695, 8405, 9464,
+ 9695, 8405, 9534,
+ 9695, 8405, 9622,
+ 9695, 8405, 9655, 9146,
+ 9695, 8405, 9655, 9302,
+ 9695, 8405, 9655, 9376,
+ 9695, 8405, 9655, 9988,
+ 9695, 8405, 9759, 9656,
+ 9695, 8405, 9759, 10499, 12090,
+ 9695, 8405, 9759, 11692,
+ 9695, 8405, 9812,
+ 9695, 8405, 9818,
+ 9695, 8405, 9844,
+ 9695, 8405, 9856,
+ 9695, 8405, 10248,
+ 9695, 8405, 10270,
+ 9695, 8405, 11044,
+ 9695, 8405, 11064,
+ 9695, 8405, 11133, 9424,
+ 9695, 8405, 11133, 9492,
+ 9695, 8405, 11133, 9656,
+ 9695, 8405, 11411, 9032,
+ 9695, 8405, 11411, 9070,
+ 9695, 8405, 11411, 9146,
+ 9695, 8405, 11411, 9302,
+ 9695, 8405, 11411, 9376,
+ 9695, 8405, 11411, 9392,
+ 9695, 8405, 11411, 9576,
+ 9695, 8405, 11411, 9768,
+ 9695, 8405, 11411, 9988,
+ 9695, 8405, 11411, 10652,
+ 9695, 8405, 12077, 9032,
+ 9695, 8405, 12077, 9070,
+ 9695, 8405, 12077, 9146,
+ 9695, 8405, 12077, 9302,
+ 9695, 8405, 12077, 9376,
+ 9695, 8405, 12077, 9392,
+ 9695, 8405, 12077, 9576,
+ 9695, 8405, 12077, 9768,
+ 9695, 8405, 12077, 9988,
+ 9695, 8405, 12077, 10652,
+ 9695, 12133, 11670,
+ 9701, 9601, 9898,
+ 9705, 6741, 569, 445, 11098,
+ 9705, 6741, 569, 445, 11099, 6121, 1045, 8318,
+ 9705, 6741, 569, 445, 12472,
+ 9705, 6741, 569, 445, 12473, 6121, 1045, 8318,
+ 9707, 7085, 444,
+ 9707, 7085, 720,
+ 9709, 5912,
+ 9709, 5913, 445, 6741, 568,
+ 9712,
+ 9718,
+ 9719, 6121, 9546,
+ 9722,
+ 9733, 1045, 10374,
+ 9733, 4215, 1045, 12132,
+ 9733, 5444,
+ 9733, 7172,
+ 9733, 7593, 8056,
+ 9733, 7710,
+ 9733, 8649, 10001, 7580,
+ 9733, 8744,
+ 9733, 9279, 10001, 7580,
+ 9733, 9898,
+ 9753, 10260,
+ 9761, 5759, 8916,
+ 9761, 7803, 5759, 16,
+ 9761, 7803, 5759, 40,
+ 9761, 8405, 0,
+ 9761, 8405, 16,
+ 9761, 8405, 40,
+ 9761, 8405, 100,
+ 9761, 8405, 138,
+ 9761, 8405, 216,
+ 9761, 8405, 236,
+ 9761, 8405, 306,
+ 9761, 8405, 332,
+ 9761, 8405, 364,
+ 9761, 8405, 392,
+ 9761, 8405, 462,
+ 9761, 8405, 524,
+ 9761, 8405, 556,
+ 9761, 8405, 622,
+ 9761, 8405, 652,
+ 9761, 8405, 2030,
+ 9783, 12369, 11765, 10716,
+ 9783, 13049, 11765, 10716,
+ 9789, 327, 521, 1612,
+ 9789, 327, 521, 1613, 3831, 1915, 858,
+ 9789, 4927, 723, 7045, 4376,
+ 9789, 4927, 723, 7045, 4382,
+ 9789, 4927, 887, 1904,
+ 9789, 4927, 1307, 7463, 4376,
+ 9789, 4927, 1307, 7463, 4382,
+ 9789, 4927, 2417, 3895, 8743, 5668,
+ 9789, 4927, 2733, 6374,
+ 9789, 4927, 3067, 1905, 7745, 5669, 364,
+ 9789, 4927, 3793, 5709, 3067, 1904,
+ 9789, 4927, 4355, 3067, 1905, 685, 4355, 7745, 364,
+ 9789, 4927, 4355, 3067, 1905, 685, 5559, 3759, 364,
+ 9789, 4927, 4355, 3067, 1905, 11377, 0,
+ 9789, 4927, 4355, 7744,
+ 9789, 4927, 5141, 6539, 2133, 3174,
+ 9789, 4927, 5141, 6539, 5659, 7462,
+ 9789, 4927, 5307, 5668,
+ 9789, 4927, 5307, 7744,
+ 9789, 4927, 5307, 7745, 5668,
+ 9789, 4927, 5543, 4351, 5668,
+ 9789, 4927, 5668,
+ 9789, 4927, 6523, 7462,
+ 9789, 4927, 6525, 5709, 225, 1905, 7436,
+ 9789, 4927, 6527, 3067, 1904,
+ 9789, 4927, 6543, 3067, 1905, 5421, 5669, 364,
+ 9789, 4927, 6543, 6373, 7463, 369, 4895, 858,
+ 9789, 4927, 6543, 6373, 7463, 3831, 1915, 858,
+ 9789, 4927, 7179, 3067, 225, 1905, 7436,
+ 9789, 4927, 7493, 5668,
+ 9789, 4927, 7745, 5668,
+ 9789, 4927, 8564,
+ 9789, 4927, 9099, 3067, 1905, 5655, 364,
+ 9789, 4927, 9099, 3809, 8653, 3067, 1905, 5655, 364,
+ 9789, 4927, 9320,
+ 9789, 4927, 9363, 3067, 1905, 4939, 364,
+ 9789, 4927, 9363, 3809, 8653, 3067, 1905, 4939, 364,
+ 9789, 4927, 10795, 7745, 6528,
+ 9789, 4927, 12955, 7744,
+ 9789, 5759, 1301, 859, 9634,
+ 9789, 5759, 1301, 1889, 9634,
+ 9789, 5759, 1753, 2733, 858,
+ 9789, 5759, 1755, 7462,
+ 9789, 5759, 1865, 7746,
+ 9789, 5759, 2133, 3175, 1983, 138,
+ 9789, 5759, 2547, 4842,
+ 9789, 5759, 3035, 7746,
+ 9789, 5759, 4937, 858,
+ 9789, 5759, 5531, 1985, 4256,
+ 9789, 5759, 5531, 1985, 4352,
+ 9789, 5759, 5531, 1985, 5531, 4096,
+ 9789, 5759, 5531, 1985, 6862,
+ 9789, 5759, 5531, 4097, 4256,
+ 9789, 5759, 5531, 4097, 4352,
+ 9789, 5759, 5531, 4097, 5531, 1984,
+ 9789, 5759, 5531, 4097, 6862,
+ 9789, 5759, 5557, 547, 2031, 516,
+ 9789, 5759, 5559, 3758,
+ 9789, 5759, 6179, 7462,
+ 9789, 6689, 2170,
+ 9789, 6689, 2540,
+ 9789, 6689, 2778,
+ 9789, 6689, 4200,
+ 9789, 6689, 4214,
+ 9789, 6689, 4389, 2170,
+ 9789, 6689, 4389, 2540,
+ 9789, 6689, 4389, 2778,
+ 9789, 6689, 4389, 4200,
+ 9789, 6689, 4389, 4214,
+ 9789, 6689, 4389, 5190,
+ 9789, 6689, 4389, 6260,
+ 9789, 6689, 4389, 6722,
+ 9789, 6689, 4389, 7508,
+ 9789, 6689, 4389, 7694,
+ 9789, 6689, 5190,
+ 9789, 6689, 6260,
+ 9789, 6689, 6722,
+ 9789, 6689, 7508,
+ 9789, 6689, 7694,
+ 9789, 7803, 5759, 8,
+ 9789, 7803, 5759, 16,
+ 9789, 7803, 5759, 28,
+ 9789, 7803, 5759, 40,
+ 9789, 7803, 5759, 58,
+ 9789, 7803, 5759, 162,
+ 9789, 7803, 5759, 266,
+ 9789, 7803, 5759, 440,
+ 9789, 7803, 5759, 606,
+ 9789, 7803, 5759, 9827, 22,
+ 9789, 7803, 5759, 9827, 34,
+ 9789, 7803, 5759, 9827, 344,
+ 9789, 7803, 5759, 9827, 518,
+ 9789, 7803, 5759, 10489, 16,
+ 9789, 7803, 5759, 10489, 266,
+ 9789, 8405, 0,
+ 9789, 8405, 52,
+ 9789, 8405, 100,
+ 9789, 8405, 116,
+ 9789, 8405, 138,
+ 9789, 8405, 216,
+ 9789, 8405, 236,
+ 9789, 8405, 292,
+ 9789, 8405, 306,
+ 9789, 8405, 332,
+ 9789, 8405, 364,
+ 9789, 8405, 392,
+ 9789, 8405, 462,
+ 9789, 8405, 510,
+ 9789, 8405, 524,
+ 9789, 8405, 556,
+ 9789, 8405, 622,
+ 9789, 8405, 652,
+ 9789, 8405, 670,
+ 9789, 8405, 792,
+ 9789, 8405, 884,
+ 9789, 8405, 974,
+ 9789, 8405, 996,
+ 9789, 8405, 1080,
+ 9789, 8405, 1260,
+ 9789, 8405, 1612,
+ 9789, 8405, 1642,
+ 9789, 8405, 2030,
+ 9789, 8405, 2076,
+ 9789, 8405, 2126,
+ 9789, 8405, 2212,
+ 9789, 8405, 2438,
+ 9789, 8405, 2516,
+ 9789, 8405, 2566,
+ 9789, 8405, 2678,
+ 9789, 8405, 2732,
+ 9789, 8405, 2746,
+ 9789, 8405, 3146,
+ 9789, 8405, 4016,
+ 9789, 8405, 4140,
+ 9789, 8405, 4782,
+ 9789, 8405, 5978,
+ 9789, 8405, 5994,
+ 9789, 8405, 11631, 510,
+ 9789, 8775, 2089, 112,
+ 9789, 8775, 2089, 113, 3831, 7904,
+ 9789, 8775, 2089, 113, 4353, 7904,
+ 9789, 8775, 2089, 113, 5307, 7904,
+ 9789, 8775, 2399, 2420,
+ 9789, 8775, 2399, 2421, 5543, 4350,
+ 9789, 8775, 4119, 112,
+ 9789, 8775, 5421, 462,
+ 9789, 8775, 7333, 4258,
+ 9789, 10307, 5759, 3877, 7462,
+ 9789, 10307, 5759, 4859, 7462,
+ 9789, 10585, 436,
+ 9789, 11257, 8405, 0,
+ 9789, 11257, 8405, 52,
+ 9789, 11257, 8405, 100,
+ 9789, 11257, 8405, 116,
+ 9789, 11257, 8405, 138,
+ 9789, 11257, 8405, 216,
+ 9789, 11257, 8405, 236,
+ 9789, 11257, 8405, 292,
+ 9789, 11257, 8405, 306,
+ 9789, 11257, 8405, 332,
+ 9789, 11257, 8405, 364,
+ 9789, 11257, 8405, 392,
+ 9789, 11257, 8405, 462,
+ 9789, 11257, 8405, 510,
+ 9789, 11257, 8405, 524,
+ 9789, 11257, 8405, 556,
+ 9789, 11257, 8405, 622,
+ 9789, 11257, 8405, 652,
+ 9789, 11257, 8405, 670,
+ 9789, 11257, 8405, 792,
+ 9789, 11257, 8405, 884,
+ 9789, 11257, 8405, 974,
+ 9789, 11257, 8405, 996,
+ 9789, 11257, 8405, 1080,
+ 9789, 11257, 8405, 1260,
+ 9789, 11257, 8405, 1612,
+ 9789, 11257, 8405, 2030,
+ 9789, 11257, 8405, 2076,
+ 9789, 11257, 8405, 2126,
+ 9789, 11257, 8405, 2212,
+ 9789, 11257, 8405, 2516,
+ 9789, 11257, 8405, 2566,
+ 9789, 11257, 8405, 2678,
+ 9789, 11257, 8405, 2732,
+ 9789, 11257, 8405, 2746,
+ 9789, 11257, 8405, 3146,
+ 9789, 11257, 8405, 4016,
+ 9789, 11257, 8405, 4140,
+ 9789, 11257, 8405, 4782,
+ 9789, 11257, 8405, 5978,
+ 9789, 11257, 8405, 5994,
+ 9789, 11257, 8405, 11631, 510,
+ 9789, 11257, 8405, 11631, 622,
+ 9789, 11257, 8405, 11631, 652,
+ 9789, 12405, 5759, 5661, 4255, 6371, 7462,
+ 9789, 12405, 5759, 7497, 8858,
+ 9789, 12405, 5759, 7907, 462,
+ 9789, 12423, 5759, 3845, 5892,
+ 9789, 12423, 5759, 5641, 6368,
+ 9789, 12423, 5759, 6909, 3764,
+ 9789, 12423, 5759, 7101, 3764,
+ 9793, 1177, 4194,
+ 9793, 1177, 4830,
+ 9793, 1177, 6116,
+ 9793, 1177, 6716,
+ 9793, 1177, 7812,
+ 9793, 1177, 8290,
+ 9793, 1177, 9786,
+ 9793, 1177, 10344,
+ 9811, 2779, 8289, 6434,
+ 9811, 6434,
+ 9811, 6435, 569, 760,
+ 9811, 6435, 4221, 760,
+ 9811, 6435, 6121, 2697, 11096,
+ 9811, 6435, 6121, 2697, 11764,
+ 9811, 6435, 6121, 8153, 8758,
+ 9811, 6435, 6121, 11649, 8758,
+ 9811, 6435, 11097, 429, 10959, 6434,
+ 9811, 6505, 6434,
+ 9811, 7821, 6434,
+ 9811, 7821, 6435, 439, 10416,
+ 9811, 7821, 6435, 439, 10417, 6121, 10677, 760,
+ 9811, 7821, 6435, 439, 10417, 6121, 11649, 760,
+ 9811, 7821, 6435, 4221, 760,
+ 9811, 7821, 8153, 6434,
+ 9811, 7821, 8153, 6435, 439, 10416,
+ 9811, 7924,
+ 9811, 8097, 6434,
+ 9811, 8153, 6434,
+ 9811, 8561, 7944,
+ 9811, 8849, 6434,
+ 9811, 9327, 6121, 3713, 4849, 569, 760,
+ 9811, 9327, 6121, 3713, 4849, 4221, 760,
+ 9811, 9327, 6121, 3713, 4849, 7991, 9811, 9327, 6121, 3713, 7442,
+ 9811, 9327, 6121, 3713, 4849, 7991, 10959, 9327, 6121, 3713, 7442,
+ 9811, 9327, 6121, 3713, 7443, 569, 760,
+ 9811, 9327, 6121, 3713, 7443, 4221, 760,
+ 9811, 9327, 6121, 3713, 11096,
+ 9811, 9327, 6121, 3713, 11764,
+ 9811, 11191, 6434,
+ 9811, 11875, 6435, 4221, 7593, 8056,
+ 9821, 4390,
+ 9835, 5758,
+ 9843, 4390,
+ 9853, 7931, 4213, 9680,
+ 9853, 11345, 10582,
+ 9858,
+ 9867, 5758,
+ 9880,
+ 9891, 4223, 5836,
+ 9891, 6616,
+ 9891, 7593, 8405, 116,
+ 9891, 7593, 8405, 130,
+ 9891, 7593, 8405, 138,
+ 9891, 7593, 8405, 166,
+ 9891, 7593, 8405, 186,
+ 9891, 7593, 8405, 246,
+ 9891, 7593, 8405, 292,
+ 9891, 7593, 8405, 430,
+ 9891, 7593, 8405, 510,
+ 9891, 7593, 8405, 568,
+ 9891, 7593, 8405, 616,
+ 9891, 7593, 8405, 656,
+ 9891, 7593, 8405, 670,
+ 9891, 7593, 8405, 744,
+ 9891, 7593, 8405, 784,
+ 9891, 7593, 8405, 884,
+ 9891, 7593, 8405, 1094,
+ 9891, 7593, 8405, 1152,
+ 9891, 7593, 8405, 1276,
+ 9891, 7593, 8405, 1488,
+ 9891, 7593, 8405, 1600,
+ 9891, 7593, 8405, 1602,
+ 9891, 7593, 8405, 1894,
+ 9891, 7593, 8405, 2092,
+ 9891, 7593, 8405, 2206,
+ 9891, 7593, 8405, 2404,
+ 9891, 7593, 8405, 2506,
+ 9891, 7593, 8405, 2516,
+ 9891, 7593, 8405, 2862,
+ 9891, 7593, 8405, 2958,
+ 9891, 7593, 8405, 3148,
+ 9891, 7593, 8405, 3892,
+ 9891, 7593, 8405, 4314,
+ 9891, 7593, 8405, 4636,
+ 9891, 7593, 8405, 4886,
+ 9891, 7593, 8405, 5434,
+ 9891, 7593, 8405, 5948,
+ 9891, 7593, 8405, 6214,
+ 9891, 7593, 10301, 1095, 6214,
+ 9891, 7593, 10301, 1895, 1094,
+ 9891, 7593, 10301, 1895, 1488,
+ 9891, 7593, 10301, 1895, 2092,
+ 9891, 7593, 10301, 1895, 2958,
+ 9891, 7593, 10301, 2863, 2092,
+ 9891, 8306,
+ 9891, 9063, 8405, 116,
+ 9891, 9063, 8405, 130,
+ 9891, 9063, 8405, 138,
+ 9891, 9063, 8405, 166,
+ 9891, 9063, 8405, 186,
+ 9891, 9063, 8405, 246,
+ 9891, 9063, 8405, 292,
+ 9891, 9063, 8405, 430,
+ 9891, 9063, 8405, 510,
+ 9891, 9063, 8405, 568,
+ 9891, 9063, 8405, 616,
+ 9891, 9063, 8405, 656,
+ 9891, 9063, 8405, 670,
+ 9891, 9063, 8405, 744,
+ 9891, 9063, 8405, 784,
+ 9891, 9063, 8405, 884,
+ 9891, 9063, 8405, 1094,
+ 9891, 9063, 8405, 1152,
+ 9891, 9063, 8405, 1276,
+ 9891, 9063, 8405, 1488,
+ 9891, 9063, 8405, 1600,
+ 9891, 9063, 8405, 1602,
+ 9891, 9063, 8405, 1894,
+ 9891, 9063, 8405, 2092,
+ 9891, 9063, 8405, 2206,
+ 9891, 9063, 8405, 2404,
+ 9891, 9063, 8405, 2506,
+ 9891, 9063, 8405, 2516,
+ 9891, 9063, 8405, 2862,
+ 9891, 9063, 8405, 2958,
+ 9891, 9063, 8405, 3148,
+ 9891, 9063, 8405, 3892,
+ 9891, 9063, 8405, 4314,
+ 9891, 9063, 8405, 4636,
+ 9891, 9063, 8405, 4886,
+ 9891, 9063, 8405, 5434,
+ 9891, 9063, 8405, 5948,
+ 9891, 9063, 8405, 6214,
+ 9891, 10157, 4926,
+ 9891, 10339, 8405, 4849, 4389, 5550,
+ 9891, 10469, 4926,
+ 9891, 11424,
+ 9891, 12017, 4926,
+ 9891, 12391, 4926,
+ 9898,
+ 9899, 10374,
+ 9900,
+ 9907, 3229, 3228,
+ 9907, 5759, 2811, 7438,
+ 9907, 5759, 2811, 8030,
+ 9907, 5759, 6502,
+ 9907, 5759, 6556,
+ 9907, 5759, 8768,
+ 9907, 5759, 9628,
+ 9907, 6545, 5762,
+ 9907, 6545, 9570,
+ 9907, 6545, 11156,
+ 9907, 6689, 2170,
+ 9907, 6689, 2540,
+ 9907, 6689, 2778,
+ 9907, 6689, 4200,
+ 9907, 6689, 4214,
+ 9907, 6689, 5190,
+ 9907, 6689, 6260,
+ 9907, 6689, 6722,
+ 9907, 6689, 7508,
+ 9907, 6689, 7694,
+ 9907, 7334,
+ 9907, 7803, 5759, 333, 7094,
+ 9907, 7803, 5759, 333, 7095, 8796,
+ 9907, 7803, 5759, 511, 5536,
+ 9907, 7803, 5759, 511, 5537, 8796,
+ 9907, 7803, 5759, 2810,
+ 9907, 7803, 5759, 2811, 5638,
+ 9907, 7803, 5759, 5844,
+ 9907, 7803, 5759, 5845, 4602,
+ 9907, 7803, 5759, 7362,
+ 9907, 7803, 5759, 7363, 8796,
+ 9907, 7803, 5759, 8788,
+ 9907, 7803, 5759, 8789, 5536,
+ 9907, 7803, 5759, 8789, 5537, 8796,
+ 9907, 7803, 5759, 8789, 8796,
+ 9907, 7803, 5759, 8796,
+ 9907, 7826,
+ 9907, 8405, 100,
+ 9907, 8405, 101, 9396,
+ 9907, 8405, 116,
+ 9907, 8405, 117, 4822,
+ 9907, 8405, 138,
+ 9907, 8405, 139, 4920,
+ 9907, 8405, 139, 7195, 10704,
+ 9907, 8405, 139, 7195, 11106,
+ 9907, 8405, 165, 7488,
+ 9907, 8405, 216,
+ 9907, 8405, 217, 4346,
+ 9907, 8405, 236,
+ 9907, 8405, 292,
+ 9907, 8405, 293, 4632,
+ 9907, 8405, 306,
+ 9907, 8405, 307, 11106,
+ 9907, 8405, 332,
+ 9907, 8405, 333, 7094,
+ 9907, 8405, 333, 7095, 8796,
+ 9907, 8405, 364,
+ 9907, 8405, 392,
+ 9907, 8405, 393, 8632,
+ 9907, 8405, 462,
+ 9907, 8405, 463, 7020,
+ 9907, 8405, 510,
+ 9907, 8405, 511, 5536,
+ 9907, 8405, 511, 5537, 8796,
+ 9907, 8405, 524,
+ 9907, 8405, 525, 5626,
+ 9907, 8405, 525, 5634,
+ 9907, 8405, 556,
+ 9907, 8405, 557, 5888,
+ 9907, 8405, 557, 7086,
+ 9907, 8405, 557, 7195, 11106,
+ 9907, 8405, 613, 7488,
+ 9907, 8405, 622,
+ 9907, 8405, 652,
+ 9907, 8405, 1579, 7488,
+ 9907, 8405, 2030,
+ 9907, 8405, 2126,
+ 9907, 8405, 3129, 7488,
+ 9907, 8405, 4753, 7488,
+ 9907, 8405, 6037, 7488,
+ 9907, 8405, 6390,
+ 9907, 8405, 6391, 8796,
+ 9907, 8405, 6726,
+ 9907, 8405, 6986,
+ 9907, 8405, 6987, 8796,
+ 9907, 8405, 7312,
+ 9907, 8405, 7313, 8796,
+ 9907, 8405, 7760,
+ 9907, 8405, 7761, 8796,
+ 9907, 8405, 7914,
+ 9907, 8405, 7957, 7488,
+ 9907, 8566,
+ 9907, 9483, 8775, 3986,
+ 9907, 9483, 8775, 3987, 4266,
+ 9907, 9483, 8775, 3987, 8768,
+ 9907, 9483, 8775, 4060,
+ 9907, 9483, 8775, 4090,
+ 9907, 9483, 8775, 4106,
+ 9907, 9483, 8775, 4128,
+ 9907, 9483, 8775, 6632,
+ 9907, 9483, 8775, 6638,
+ 9907, 9483, 8775, 6678,
+ 9907, 9483, 8775, 10767, 4344,
+ 9907, 9483, 8775, 10767, 6492,
+ 9907, 9483, 8775, 10767, 6732,
+ 9907, 9483, 8775, 10767, 7670,
+ 9907, 9483, 8775, 10767, 8350,
+ 9907, 9483, 8775, 10767, 8351, 6121, 9378,
+ 9907, 9483, 8775, 10767, 8352,
+ 9907, 9483, 8775, 10767, 8353, 6121, 9378,
+ 9907, 9483, 8775, 10767, 9378,
+ 9907, 9483, 8775, 11091, 5385, 5396,
+ 9907, 9483, 8775, 11091, 5385, 5432,
+ 9907, 9483, 8775, 11091, 5385, 5452,
+ 9907, 9483, 8775, 11091, 8065, 5436,
+ 9907, 9483, 8775, 11091, 8065, 5440,
+ 9907, 9483, 8775, 11761, 5385, 958,
+ 9907, 9483, 8775, 11761, 5385, 1052,
+ 9907, 9483, 8775, 11761, 8065, 2644,
+ 9907, 9483, 8775, 11761, 8065, 2758,
+ 9907, 10398,
+ 9919, 6789, 8405, 14,
+ 9919, 6789, 8405, 20,
+ 9919, 6789, 8405, 30,
+ 9919, 6789, 8405, 38,
+ 9919, 8405, 0,
+ 9919, 8405, 2,
+ 9919, 8405, 4,
+ 9919, 8405, 6,
+ 9919, 8405, 8,
+ 9919, 8405, 10,
+ 9919, 8405, 12,
+ 9919, 8405, 14,
+ 9919, 8405, 16,
+ 9919, 8405, 18,
+ 9919, 8405, 20,
+ 9919, 8405, 22,
+ 9919, 8405, 24,
+ 9919, 8405, 26,
+ 9919, 8405, 28,
+ 9919, 8405, 30,
+ 9919, 8405, 32,
+ 9919, 8405, 34,
+ 9919, 8405, 36,
+ 9919, 8405, 38,
+ 9919, 8405, 40,
+ 9919, 8405, 42,
+ 9919, 8405, 46,
+ 9919, 8405, 50,
+ 9919, 8405, 72,
+ 9919, 8405, 78,
+ 9919, 8405, 80,
+ 9919, 8405, 92,
+ 9919, 8405, 112,
+ 9919, 8405, 124,
+ 9919, 8405, 162,
+ 9919, 8405, 166,
+ 9919, 8405, 168,
+ 9919, 8405, 176,
+ 9919, 8405, 182,
+ 9919, 8405, 226,
+ 9919, 8405, 230,
+ 9919, 8405, 264,
+ 9919, 8405, 272,
+ 9919, 8405, 280,
+ 9919, 8405, 286,
+ 9919, 8405, 296,
+ 9919, 8405, 400,
+ 9919, 8405, 436,
+ 9919, 8405, 440,
+ 9919, 8405, 450,
+ 9919, 8405, 530,
+ 9919, 8405, 674,
+ 9919, 8405, 676,
+ 9919, 8405, 722,
+ 9919, 8405, 724,
+ 9919, 8405, 1110,
+ 9919, 8405, 1112,
+ 9919, 8405, 1490,
+ 9919, 8405, 2034,
+ 9919, 8405, 2172,
+ 9919, 8405, 2174,
+ 9919, 8405, 2814,
+ 9919, 8405, 3238,
+ 9919, 8405, 3286,
+ 9919, 8405, 4610,
+ 9923, 1109, 429, 9664,
+ 9923, 7803, 5759, 8,
+ 9923, 7803, 5759, 16,
+ 9923, 7803, 5759, 28,
+ 9923, 7803, 5759, 40,
+ 9923, 7803, 5759, 66,
+ 9923, 8405, 0,
+ 9923, 8405, 100,
+ 9923, 8405, 116,
+ 9923, 8405, 138,
+ 9923, 8405, 216,
+ 9923, 8405, 236,
+ 9923, 8405, 292,
+ 9923, 8405, 306,
+ 9923, 8405, 332,
+ 9923, 8405, 364,
+ 9923, 8405, 392,
+ 9923, 8405, 462,
+ 9923, 8405, 510,
+ 9923, 8405, 524,
+ 9923, 8405, 556,
+ 9923, 8405, 610,
+ 9923, 8405, 652,
+ 9923, 8405, 1946,
+ 9923, 8405, 2030,
+ 9923, 8405, 2096,
+ 9923, 8405, 2126,
+ 9923, 8405, 5166,
+ 9923, 8405, 5294,
+ 9923, 9556,
+ 9924,
+ 9928,
+ 9931, 11269, 0,
+ 9931, 11269, 4,
+ 9931, 11269, 8,
+ 9931, 11269, 10,
+ 9931, 11269, 16,
+ 9931, 11269, 20,
+ 9931, 11269, 22,
+ 9931, 11269, 24,
+ 9931, 11269, 26,
+ 9931, 11269, 28,
+ 9931, 11269, 30,
+ 9931, 11269, 32,
+ 9931, 11269, 34,
+ 9931, 11269, 36,
+ 9931, 11269, 38,
+ 9931, 11269, 48,
+ 9931, 11269, 58,
+ 9931, 11269, 72,
+ 9931, 11269, 80,
+ 9931, 11269, 116,
+ 9931, 11269, 122,
+ 9931, 11269, 126,
+ 9931, 11269, 130,
+ 9931, 11269, 176,
+ 9931, 11269, 196,
+ 9931, 11269, 198,
+ 9931, 11269, 202,
+ 9931, 11269, 208,
+ 9931, 11269, 244,
+ 9931, 11269, 266,
+ 9931, 11269, 274,
+ 9931, 11269, 306,
+ 9931, 11269, 310,
+ 9931, 11269, 314,
+ 9931, 11269, 322,
+ 9931, 11269, 330,
+ 9931, 11269, 332,
+ 9931, 11269, 336,
+ 9931, 11269, 338,
+ 9931, 11269, 340,
+ 9931, 11269, 350,
+ 9931, 11269, 364,
+ 9931, 11269, 368,
+ 9931, 11269, 372,
+ 9931, 11269, 374,
+ 9931, 11269, 380,
+ 9931, 11269, 392,
+ 9931, 11269, 396,
+ 9931, 11269, 400,
+ 9931, 11269, 402,
+ 9931, 11269, 404,
+ 9931, 11269, 412,
+ 9931, 11269, 438,
+ 9931, 11269, 440,
+ 9931, 11269, 462,
+ 9931, 11269, 468,
+ 9931, 11269, 476,
+ 9931, 11269, 480,
+ 9931, 11269, 496,
+ 9931, 11269, 500,
+ 9931, 11269, 502,
+ 9931, 11269, 510,
+ 9931, 11269, 512,
+ 9931, 11269, 514,
+ 9931, 11269, 516,
+ 9931, 11269, 524,
+ 9931, 11269, 526,
+ 9931, 11269, 530,
+ 9931, 11269, 532,
+ 9931, 11269, 536,
+ 9931, 11269, 550,
+ 9931, 11269, 556,
+ 9931, 11269, 560,
+ 9931, 11269, 562,
+ 9931, 11269, 564,
+ 9931, 11269, 568,
+ 9931, 11269, 622,
+ 9931, 11269, 626,
+ 9931, 11269, 630,
+ 9931, 11269, 632,
+ 9931, 11269, 652,
+ 9931, 11269, 654,
+ 9931, 11269, 656,
+ 9931, 11269, 660,
+ 9931, 11269, 690,
+ 9931, 11269, 854,
+ 9931, 11269, 889, 5758,
+ 9931, 11269, 898,
+ 9931, 11269, 914,
+ 9931, 11269, 936,
+ 9931, 11269, 938,
+ 9931, 11269, 940,
+ 9931, 11269, 942,
+ 9931, 11269, 1140,
+ 9931, 11269, 1160,
+ 9931, 11269, 1172,
+ 9931, 11269, 1574,
+ 9931, 11269, 1630,
+ 9931, 11269, 1660,
+ 9931, 11269, 1704,
+ 9931, 11269, 1706,
+ 9931, 11269, 1708,
+ 9931, 11269, 1710,
+ 9931, 11269, 1732,
+ 9931, 11269, 1770,
+ 9931, 11269, 1774,
+ 9931, 11269, 1776,
+ 9931, 11269, 1784,
+ 9931, 11269, 1802,
+ 9931, 11269, 1834,
+ 9931, 11269, 1836,
+ 9931, 11269, 1838,
+ 9931, 11269, 1840,
+ 9931, 11269, 1854,
+ 9931, 11269, 1916,
+ 9931, 11269, 1938,
+ 9931, 11269, 1964,
+ 9931, 11269, 1966,
+ 9931, 11269, 1968,
+ 9931, 11269, 1970,
+ 9931, 11269, 1982,
+ 9931, 11269, 2030,
+ 9931, 11269, 2036,
+ 9931, 11269, 2038,
+ 9931, 11269, 2052,
+ 9931, 11269, 2078,
+ 9931, 11269, 2084,
+ 9931, 11269, 2122,
+ 9931, 11269, 2124,
+ 9931, 11269, 2188,
+ 9931, 11269, 2226,
+ 9931, 11269, 2238,
+ 9931, 11269, 2266,
+ 9931, 11269, 2268,
+ 9931, 11269, 2270,
+ 9931, 11269, 2272,
+ 9931, 11269, 2282,
+ 9931, 11269, 2286,
+ 9931, 11269, 2308,
+ 9931, 11269, 2320,
+ 9931, 11269, 2378,
+ 9931, 11269, 2414,
+ 9931, 11269, 2430,
+ 9931, 11269, 2482,
+ 9931, 11269, 2516,
+ 9931, 11269, 2518,
+ 9931, 11269, 2520,
+ 9931, 11269, 2522,
+ 9931, 11269, 2532,
+ 9931, 11269, 2554,
+ 9931, 11269, 2598,
+ 9931, 11269, 2600,
+ 9931, 11269, 2604,
+ 9931, 11269, 2606,
+ 9931, 11269, 2634,
+ 9931, 11269, 2678,
+ 9931, 11269, 2680,
+ 9931, 11269, 2682,
+ 9931, 11269, 2684,
+ 9931, 11269, 2692,
+ 9931, 11269, 2722,
+ 9931, 11269, 2746,
+ 9931, 11269, 2748,
+ 9931, 11269, 2750,
+ 9931, 11269, 2752,
+ 9931, 11269, 2754,
+ 9931, 11269, 2772,
+ 9931, 11269, 2774,
+ 9931, 11269, 2776,
+ 9931, 11269, 2778,
+ 9931, 11269, 2780,
+ 9931, 11269, 2782,
+ 9931, 11269, 2784,
+ 9931, 11269, 2786,
+ 9931, 11269, 2906,
+ 9931, 11269, 2932,
+ 9931, 11269, 2942,
+ 9931, 11269, 3006,
+ 9931, 11269, 3068,
+ 9931, 11269, 3082,
+ 9931, 11269, 3102,
+ 9931, 11269, 3104,
+ 9931, 11269, 3106,
+ 9931, 11269, 3108,
+ 9931, 11269, 3836,
+ 9931, 11269, 3970,
+ 9931, 11269, 3972,
+ 9931, 11269, 3974,
+ 9931, 11269, 4176,
+ 9931, 11269, 4223, 5836,
+ 9931, 11269, 4230,
+ 9931, 11269, 4700,
+ 9931, 11269, 4796,
+ 9931, 11269, 4800,
+ 9931, 11269, 4802,
+ 9931, 11269, 4818,
+ 9931, 11269, 4856,
+ 9931, 11269, 4862,
+ 9931, 11269, 4864,
+ 9931, 11269, 4910,
+ 9931, 11269, 4912,
+ 9931, 11269, 4914,
+ 9931, 11269, 4918,
+ 9931, 11269, 5032,
+ 9931, 11269, 5036,
+ 9931, 11269, 5038,
+ 9931, 11269, 5040,
+ 9931, 11269, 5132,
+ 9931, 11269, 5134,
+ 9931, 11269, 5164,
+ 9931, 11269, 5170,
+ 9931, 11269, 5228,
+ 9931, 11269, 5230,
+ 9931, 11269, 5232,
+ 9931, 11269, 5290,
+ 9931, 11269, 5390,
+ 9931, 11269, 5460,
+ 9931, 11269, 5464,
+ 9931, 11269, 5466,
+ 9931, 11269, 5472,
+ 9931, 11269, 5518,
+ 9931, 11269, 5616,
+ 9931, 11269, 5622,
+ 9931, 11269, 5666,
+ 9931, 11269, 5694,
+ 9931, 11269, 5710,
+ 9931, 11269, 5732,
+ 9931, 11269, 5734,
+ 9931, 11269, 5736,
+ 9931, 11269, 5738,
+ 9931, 11269, 5858,
+ 9931, 11269, 5860,
+ 9931, 11269, 5862,
+ 9931, 11269, 5874,
+ 9931, 11269, 5906,
+ 9931, 11269, 5924,
+ 9931, 11269, 5930,
+ 9931, 11269, 5952,
+ 9931, 11269, 5954,
+ 9931, 11269, 5956,
+ 9931, 11269, 5958,
+ 9931, 11269, 5994,
+ 9931, 11269, 5996,
+ 9931, 11269, 5998,
+ 9931, 11269, 6000,
+ 9931, 11269, 6024,
+ 9931, 11269, 6026,
+ 9931, 11269, 6028,
+ 9931, 11269, 6160,
+ 9931, 11269, 6246,
+ 9931, 11269, 6248,
+ 9931, 11269, 6250,
+ 9931, 11269, 6789, 2725, 4389, 5550,
+ 9931, 11269, 6789, 4117, 5876,
+ 9931, 11269, 6789, 5444,
+ 9931, 11269, 6789, 5550,
+ 9931, 11269, 6789, 6378,
+ 9931, 11269, 6789, 6874,
+ 9931, 11269, 6789, 7443, 4389, 5550,
+ 9931, 11269, 6789, 7551, 11649, 8758,
+ 9931, 11269, 6789, 8005, 4389, 5550,
+ 9931, 11269, 6789, 8153, 6378,
+ 9931, 11269, 6789, 8153, 7551, 10677, 9744,
+ 9931, 11269, 6789, 8473, 1044,
+ 9931, 11269, 7226,
+ 9931, 11269, 7262,
+ 9931, 11269, 7264,
+ 9931, 11269, 7266,
+ 9931, 11269, 7558,
+ 9931, 11269, 7560,
+ 9931, 11269, 7562,
+ 9931, 11269, 7700,
+ 9931, 11269, 8461, 22,
+ 9931, 11269, 8461, 34,
+ 9931, 11269, 8497, 2680,
+ 9931, 11269, 8497, 2682,
+ 9931, 11269, 8497, 5924,
+ 9931, 11269, 8629, 512,
+ 9931, 11269, 8671, 24,
+ 9931, 11269, 8671, 236,
+ 9931, 11269, 8671, 238,
+ 9931, 11269, 8671, 242,
+ 9931, 11269, 8671, 246,
+ 9931, 11269, 8671, 296,
+ 9931, 11269, 8671, 300,
+ 9931, 11269, 8671, 562,
+ 9931, 11269, 8671, 656,
+ 9931, 11269, 8671, 2516,
+ 9931, 11269, 8671, 2518,
+ 9931, 11269, 8671, 2520,
+ 9931, 11269, 8671, 2522,
+ 9931, 11269, 8943, 44,
+ 9931, 11269, 8943, 440,
+ 9931, 11269, 8943, 914,
+ 9931, 11269, 8943, 1660,
+ 9931, 11269, 8943, 1802,
+ 9931, 11269, 8943, 1938,
+ 9931, 11269, 8943, 2084,
+ 9931, 11269, 8943, 2238,
+ 9931, 11269, 8943, 2554,
+ 9931, 11269, 8943, 2722,
+ 9931, 11269, 8943, 3082,
+ 9931, 11269, 8943, 5460,
+ 9931, 11269, 8987, 2,
+ 9931, 11269, 9067, 14,
+ 9931, 11269, 9067, 16,
+ 9931, 11269, 9067, 30,
+ 9931, 11269, 9067, 50,
+ 9931, 11269, 9067, 144,
+ 9931, 11269, 9067, 162,
+ 9931, 11269, 9067, 216,
+ 9931, 11269, 9067, 220,
+ 9931, 11269, 9067, 224,
+ 9931, 11269, 9067, 228,
+ 9931, 11269, 9067, 230,
+ 9931, 11269, 9067, 242,
+ 9931, 11269, 9067, 292,
+ 9931, 11269, 9067, 294,
+ 9931, 11269, 9067, 296,
+ 9931, 11269, 9067, 298,
+ 9931, 11269, 9067, 300,
+ 9931, 11269, 9067, 316,
+ 9931, 11269, 9067, 332,
+ 9931, 11269, 9067, 336,
+ 9931, 11269, 9067, 340,
+ 9931, 11269, 9067, 350,
+ 9931, 11269, 9067, 354,
+ 9931, 11269, 9067, 364,
+ 9931, 11269, 9067, 368,
+ 9931, 11269, 9067, 374,
+ 9931, 11269, 9067, 380,
+ 9931, 11269, 9067, 384,
+ 9931, 11269, 9067, 392,
+ 9931, 11269, 9067, 396,
+ 9931, 11269, 9067, 400,
+ 9931, 11269, 9067, 404,
+ 9931, 11269, 9067, 412,
+ 9931, 11269, 9067, 416,
+ 9931, 11269, 9067, 462,
+ 9931, 11269, 9067, 468,
+ 9931, 11269, 9067, 476,
+ 9931, 11269, 9067, 480,
+ 9931, 11269, 9067, 486,
+ 9931, 11269, 9067, 510,
+ 9931, 11269, 9067, 512,
+ 9931, 11269, 9067, 514,
+ 9931, 11269, 9067, 516,
+ 9931, 11269, 9067, 520,
+ 9931, 11269, 9067, 524,
+ 9931, 11269, 9067, 526,
+ 9931, 11269, 9067, 530,
+ 9931, 11269, 9067, 532,
+ 9931, 11269, 9067, 536,
+ 9931, 11269, 9067, 546,
+ 9931, 11269, 9067, 622,
+ 9931, 11269, 9067, 626,
+ 9931, 11269, 9067, 630,
+ 9931, 11269, 9067, 632,
+ 9931, 11269, 9067, 634,
+ 9931, 11269, 9067, 652,
+ 9931, 11269, 9067, 654,
+ 9931, 11269, 9067, 656,
+ 9931, 11269, 9067, 660,
+ 9931, 11269, 9067, 664,
+ 9931, 11269, 9067, 670,
+ 9931, 11269, 9067, 672,
+ 9931, 11269, 9067, 676,
+ 9931, 11269, 9067, 678,
+ 9931, 11269, 9067, 680,
+ 9931, 11269, 9067, 884,
+ 9931, 11269, 9067, 886,
+ 9931, 11269, 9067, 888,
+ 9931, 11269, 9067, 890,
+ 9931, 11269, 9067, 892,
+ 9931, 11269, 9067, 984,
+ 9931, 11269, 9067, 1024,
+ 9931, 11269, 9067, 1026,
+ 9931, 11269, 9067, 1028,
+ 9931, 11269, 9067, 1030,
+ 9931, 11269, 9067, 1032,
+ 9931, 11269, 9067, 1080,
+ 9931, 11269, 9067, 1082,
+ 9931, 11269, 9067, 1084,
+ 9931, 11269, 9067, 1086,
+ 9931, 11269, 9067, 1088,
+ 9931, 11269, 9067, 1238,
+ 9931, 11269, 9067, 1260,
+ 9931, 11269, 9067, 1262,
+ 9931, 11269, 9067, 1264,
+ 9931, 11269, 9067, 1266,
+ 9931, 11269, 9067, 1268,
+ 9931, 11269, 9067, 1356,
+ 9931, 11269, 9067, 1440,
+ 9931, 11269, 9067, 1442,
+ 9931, 11269, 9067, 1444,
+ 9931, 11269, 9067, 1446,
+ 9931, 11269, 9067, 1448,
+ 9931, 11269, 9067, 1506,
+ 9931, 11269, 9067, 1528,
+ 9931, 11269, 9067, 1530,
+ 9931, 11269, 9067, 1532,
+ 9931, 11269, 9067, 1534,
+ 9931, 11269, 9067, 1536,
+ 9931, 11269, 9067, 1612,
+ 9931, 11269, 9067, 1614,
+ 9931, 11269, 9067, 1616,
+ 9931, 11269, 9067, 1618,
+ 9931, 11269, 9067, 1620,
+ 9931, 11269, 9067, 1642,
+ 9931, 11269, 9067, 1644,
+ 9931, 11269, 9067, 1646,
+ 9931, 11269, 9067, 1648,
+ 9931, 11269, 9067, 1650,
+ 9931, 11269, 9067, 1758,
+ 9931, 11269, 9067, 1770,
+ 9931, 11269, 9067, 1772,
+ 9931, 11269, 9067, 1774,
+ 9931, 11269, 9067, 1776,
+ 9931, 11269, 9067, 1778,
+ 9931, 11269, 9067, 1890,
+ 9931, 11269, 9067, 2016,
+ 9931, 11269, 9067, 2204,
+ 9931, 11269, 9067, 2402,
+ 9931, 11269, 9067, 2504,
+ 9931, 11269, 9067, 2516,
+ 9931, 11269, 9067, 2518,
+ 9931, 11269, 9067, 2520,
+ 9931, 11269, 9067, 2522,
+ 9931, 11269, 9067, 2524,
+ 9931, 11269, 9067, 2678,
+ 9931, 11269, 9067, 2680,
+ 9931, 11269, 9067, 2682,
+ 9931, 11269, 9067, 2684,
+ 9931, 11269, 9067, 2686,
+ 9931, 11269, 9067, 2706,
+ 9931, 11269, 9067, 2708,
+ 9931, 11269, 9067, 2710,
+ 9931, 11269, 9067, 2712,
+ 9931, 11269, 9067, 2714,
+ 9931, 11269, 9067, 2732,
+ 9931, 11269, 9067, 2734,
+ 9931, 11269, 9067, 2736,
+ 9931, 11269, 9067, 2738,
+ 9931, 11269, 9067, 2740,
+ 9931, 11269, 9067, 2746,
+ 9931, 11269, 9067, 2748,
+ 9931, 11269, 9067, 2752,
+ 9931, 11269, 9067, 2754,
+ 9931, 11269, 9067, 2756,
+ 9931, 11269, 9067, 2922,
+ 9931, 11269, 9067, 3050,
+ 9931, 11269, 9067, 3138,
+ 9931, 11269, 9067, 3890,
+ 9931, 11269, 9067, 4098,
+ 9931, 11269, 9067, 4138,
+ 9931, 11269, 9067, 4318,
+ 9931, 11269, 9067, 4556,
+ 9931, 11269, 9067, 4644,
+ 9931, 11269, 9067, 4744,
+ 9931, 11269, 9067, 4766,
+ 9931, 11269, 9067, 4860,
+ 9931, 11269, 9067, 5678,
+ 9931, 11269, 9067, 5914,
+ 9931, 11269, 9067, 5950,
+ 9931, 11269, 9067, 5952,
+ 9931, 11269, 9067, 5954,
+ 9931, 11269, 9067, 5956,
+ 9931, 11269, 9067, 5958,
+ 9931, 11269, 9067, 5960,
+ 9931, 11269, 9067, 5976,
+ 9931, 11269, 9067, 5990,
+ 9931, 11269, 9067, 6002,
+ 9931, 11269, 9067, 6004,
+ 9931, 11269, 9067, 6006,
+ 9931, 11269, 9067, 6008,
+ 9931, 11269, 9067, 6010,
+ 9931, 11269, 9067, 7720,
+ 9931, 11269, 9067, 7748,
+ 9931, 11269, 9067, 9363, 50,
+ 9931, 11269, 9313, 5836,
+ 9931, 11269, 9489, 2480,
+ 9931, 11269, 9489, 2544,
+ 9931, 11269, 9489, 2906,
+ 9931, 11269, 9489, 2942,
+ 9931, 11269, 9489, 3970,
+ 9931, 11269, 9489, 4796,
+ 9931, 11269, 9489, 5032,
+ 9931, 11269, 9489, 5290,
+ 9931, 11269, 9489, 5644,
+ 9931, 11269, 9489, 5774,
+ 9931, 11269, 9489, 5784,
+ 9931, 11269, 9489, 5838,
+ 9931, 11269, 9489, 5858,
+ 9931, 11269, 9489, 6024,
+ 9931, 11269, 9489, 6246,
+ 9931, 11269, 9517, 14,
+ 9931, 11269, 9517, 236,
+ 9931, 11269, 9517, 238,
+ 9931, 11269, 9517, 242,
+ 9931, 11269, 9517, 246,
+ 9931, 11269, 9517, 1338,
+ 9931, 11269, 9517, 1382,
+ 9931, 11269, 9517, 1424,
+ 9931, 11269, 9519, 14,
+ 9931, 11269, 9777, 562,
+ 9931, 11269, 9777, 2678,
+ 9931, 11269, 9777, 2680,
+ 9931, 11269, 9777, 2682,
+ 9931, 11269, 9777, 2684,
+ 9931, 11269, 9777, 5906,
+ 9931, 11269, 9777, 5924,
+ 9931, 11269, 9777, 5930,
+ 9931, 11269, 10743, 0,
+ 9931, 11269, 10743, 8,
+ 9931, 11269, 10743, 16,
+ 9931, 11269, 10743, 28,
+ 9931, 11269, 10743, 36,
+ 9931, 11269, 10743, 306,
+ 9931, 11269, 10743, 310,
+ 9931, 11269, 10743, 314,
+ 9931, 11269, 10743, 322,
+ 9931, 11269, 10743, 392,
+ 9931, 11269, 10743, 396,
+ 9931, 11269, 10743, 404,
+ 9931, 11269, 10743, 412,
+ 9931, 11269, 10743, 622,
+ 9931, 11269, 10743, 626,
+ 9931, 11269, 10743, 630,
+ 9931, 11269, 10743, 632,
+ 9931, 11269, 11399, 22,
+ 9931, 11269, 11399, 24,
+ 9931, 11269, 11399, 30,
+ 9931, 11269, 11399, 34,
+ 9931, 11269, 11399, 48,
+ 9931, 11269, 11399, 332,
+ 9931, 11269, 11399, 336,
+ 9931, 11269, 11399, 350,
+ 9931, 11269, 11399, 510,
+ 9931, 11269, 11399, 512,
+ 9931, 11269, 11399, 514,
+ 9931, 11269, 11399, 516,
+ 9931, 11269, 11399, 622,
+ 9931, 11269, 11399, 626,
+ 9931, 11269, 11399, 630,
+ 9931, 11269, 11399, 632,
+ 9931, 11269, 11399, 936,
+ 9931, 11269, 11399, 938,
+ 9931, 11269, 11399, 940,
+ 9931, 11269, 11399, 942,
+ 9931, 11269, 11399, 1704,
+ 9931, 11269, 11399, 1706,
+ 9931, 11269, 11399, 1708,
+ 9931, 11269, 11399, 1710,
+ 9931, 11269, 11399, 1834,
+ 9931, 11269, 11399, 1836,
+ 9931, 11269, 11399, 1838,
+ 9931, 11269, 11399, 1840,
+ 9931, 11269, 11399, 1964,
+ 9931, 11269, 11399, 1966,
+ 9931, 11269, 11399, 1968,
+ 9931, 11269, 11399, 1970,
+ 9931, 11269, 11399, 2122,
+ 9931, 11269, 11399, 2124,
+ 9931, 11269, 11399, 2266,
+ 9931, 11269, 11399, 2268,
+ 9931, 11269, 11399, 2270,
+ 9931, 11269, 11399, 2272,
+ 9931, 11269, 11399, 2598,
+ 9931, 11269, 11399, 2600,
+ 9931, 11269, 11399, 2604,
+ 9931, 11269, 11399, 2606,
+ 9931, 11269, 11399, 2772,
+ 9931, 11269, 11399, 2774,
+ 9931, 11269, 11399, 2776,
+ 9931, 11269, 11399, 2778,
+ 9931, 11269, 11399, 2906,
+ 9931, 11269, 11399, 2932,
+ 9931, 11269, 11399, 2942,
+ 9931, 11269, 11399, 3102,
+ 9931, 11269, 11399, 3104,
+ 9931, 11269, 11399, 3106,
+ 9931, 11269, 11399, 3108,
+ 9931, 11269, 11399, 3970,
+ 9931, 11269, 11399, 3972,
+ 9931, 11269, 11399, 3974,
+ 9931, 11269, 11399, 4230,
+ 9931, 11269, 11399, 4796,
+ 9931, 11269, 11399, 4800,
+ 9931, 11269, 11399, 4802,
+ 9931, 11269, 11399, 4910,
+ 9931, 11269, 11399, 4912,
+ 9931, 11269, 11399, 4914,
+ 9931, 11269, 11399, 5032,
+ 9931, 11269, 11399, 5036,
+ 9931, 11269, 11399, 5038,
+ 9931, 11269, 11399, 5290,
+ 9931, 11269, 11399, 5460,
+ 9931, 11269, 11399, 5464,
+ 9931, 11269, 11399, 5466,
+ 9931, 11269, 11399, 5616,
+ 9931, 11269, 11399, 5732,
+ 9931, 11269, 11399, 5734,
+ 9931, 11269, 11399, 5736,
+ 9931, 11269, 11399, 5738,
+ 9931, 11269, 11399, 5858,
+ 9931, 11269, 11399, 5860,
+ 9931, 11269, 11399, 5862,
+ 9931, 11269, 11399, 6024,
+ 9931, 11269, 11399, 6026,
+ 9931, 11269, 11399, 6028,
+ 9931, 11269, 11399, 6246,
+ 9931, 11269, 11399, 6248,
+ 9931, 11269, 11399, 6250,
+ 9931, 11269, 11399, 7558,
+ 9931, 11269, 11399, 7560,
+ 9931, 11269, 11399, 7562,
+ 9931, 11269, 11399, 7700,
+ 9931, 11269, 11435, 24,
+ 9931, 11269, 11435, 36,
+ 9931, 11269, 11443, 48,
+ 9931, 11269, 11689, 534,
+ 9931, 11269, 11883, 562,
+ 9931, 11269, 11883, 2678,
+ 9931, 11269, 11883, 2680,
+ 9931, 11269, 11883, 2682,
+ 9931, 11269, 11883, 2684,
+ 9931, 11269, 12869, 1580,
+ 9931, 11269, 12869, 1600,
+ 9931, 11269, 12869, 1628,
+ 9931, 11269, 12869, 1656,
+ 9941, 8405, 0,
+ 9941, 8405, 8,
+ 9941, 8405, 16,
+ 9941, 8405, 28,
+ 9941, 8405, 36,
+ 9941, 8405, 40,
+ 9941, 8405, 42,
+ 9941, 8405, 138,
+ 9941, 8405, 142,
+ 9941, 8405, 144,
+ 9941, 8405, 150,
+ 9941, 8405, 152,
+ 9941, 8405, 154,
+ 9941, 8405, 216,
+ 9941, 8405, 220,
+ 9941, 8405, 224,
+ 9941, 8405, 228,
+ 9941, 8405, 230,
+ 9941, 8405, 232,
+ 9941, 8405, 236,
+ 9941, 8405, 238,
+ 9941, 8405, 242,
+ 9941, 8405, 246,
+ 9941, 8405, 250,
+ 9941, 8405, 252,
+ 9941, 8405, 306,
+ 9941, 8405, 332,
+ 9941, 8405, 336,
+ 9941, 8405, 340,
+ 9941, 8405, 350,
+ 9941, 8405, 354,
+ 9941, 8405, 356,
+ 9941, 8405, 364,
+ 9941, 8405, 368,
+ 9941, 8405, 374,
+ 9941, 8405, 380,
+ 9941, 8405, 384,
+ 9941, 8405, 392,
+ 9941, 8405, 396,
+ 9941, 8405, 404,
+ 9941, 8405, 412,
+ 9941, 8405, 416,
+ 9941, 8405, 418,
+ 9941, 8405, 524,
+ 9941, 8405, 526,
+ 9941, 8405, 532,
+ 9941, 8405, 536,
+ 9941, 8405, 546,
+ 9941, 8405, 548,
+ 9941, 8405, 556,
+ 9941, 8405, 560,
+ 9941, 8405, 564,
+ 9941, 8405, 622,
+ 9941, 8405, 626,
+ 9941, 8405, 630,
+ 9941, 8405, 632,
+ 9941, 8405, 634,
+ 9941, 8405, 636,
+ 9941, 8405, 652,
+ 9941, 8405, 654,
+ 9941, 8405, 656,
+ 9941, 8405, 660,
+ 9941, 8405, 664,
+ 9941, 8405, 666,
+ 9941, 8405, 1024,
+ 9941, 8405, 1412,
+ 9941, 8405, 1986,
+ 9941, 8405, 2328,
+ 9941, 8405, 2330,
+ 9941, 8405, 2332,
+ 9941, 8405, 2336,
+ 9941, 8405, 2344,
+ 9941, 8405, 2346,
+ 9941, 8405, 2706,
+ 9941, 8405, 2708,
+ 9941, 8405, 2710,
+ 9941, 8405, 2712,
+ 9941, 8405, 2714,
+ 9941, 8405, 2716,
+ 9941, 8405, 2732,
+ 9941, 8405, 2734,
+ 9941, 8405, 2736,
+ 9941, 8405, 2738,
+ 9941, 8405, 2740,
+ 9941, 8405, 2742,
+ 9959, 89, 8466,
+ 9959, 89, 8521, 10572,
+ 9959, 89, 8521, 10573, 445, 6741, 568,
+ 9959, 6121, 4895, 11649, 8758,
+ 9959, 6121, 9546,
+ 9959, 6121, 10677, 761, 91, 1109, 429, 11649, 8758,
+ 9961, 2429, 5895, 6689, 2170,
+ 9961, 2429, 5895, 6689, 2540,
+ 9961, 2429, 5895, 6689, 2778,
+ 9961, 2429, 5895, 6689, 4200,
+ 9961, 2429, 5895, 6689, 4214,
+ 9961, 2429, 5895, 6689, 5190,
+ 9961, 2429, 5895, 6689, 6722,
+ 9961, 2429, 5895, 6689, 7508,
+ 9961, 2429, 5895, 6689, 7694,
+ 9961, 2429, 6053, 6689, 2170,
+ 9961, 2429, 6053, 6689, 2540,
+ 9961, 2429, 6053, 6689, 2778,
+ 9961, 2429, 6053, 6689, 4200,
+ 9961, 2429, 6053, 6689, 4214,
+ 9961, 2429, 6053, 6689, 5190,
+ 9961, 2429, 6053, 6689, 6722,
+ 9961, 2429, 6053, 6689, 7508,
+ 9961, 2429, 6053, 6689, 7694,
+ 9969, 5758,
+ 9971, 5758,
+ 9977, 7593, 8405, 0,
+ 9977, 7593, 8405, 1, 6121, 6516,
+ 9977, 7593, 8405, 1, 6121, 10804,
+ 9977, 7593, 8405, 8,
+ 9977, 7593, 8405, 9, 6121, 10804,
+ 9977, 7593, 8405, 16,
+ 9977, 7593, 8405, 17, 6121, 6874,
+ 9977, 7593, 8405, 17, 6121, 8432,
+ 9977, 7593, 8405, 17, 6121, 10804,
+ 9977, 7593, 8405, 28,
+ 9977, 7593, 8405, 29, 6121, 10804,
+ 9977, 7593, 8405, 40,
+ 9977, 7593, 8405, 41, 6121, 8153, 6378,
+ 9977, 7593, 8405, 41, 6121, 8432,
+ 9977, 7593, 8405, 41, 6121, 10804,
+ 9977, 7593, 8405, 102,
+ 9977, 7593, 8405, 142,
+ 9977, 7593, 8405, 164,
+ 9977, 7593, 8405, 172,
+ 9977, 7593, 8405, 173, 6121, 4530,
+ 9977, 7593, 8405, 173, 6121, 5878,
+ 9977, 7593, 8405, 173, 6121, 8473, 4530,
+ 9977, 7593, 8405, 174,
+ 9977, 7593, 8405, 175, 6121, 5878,
+ 9977, 7593, 8405, 176,
+ 9977, 7593, 8405, 177, 6121, 4530,
+ 9977, 7593, 8405, 177, 6121, 5878,
+ 9977, 7593, 8405, 177, 6121, 8473, 4530,
+ 9977, 7593, 8405, 177, 6121, 10802,
+ 9977, 7593, 8405, 182,
+ 9977, 7593, 8405, 183, 6121, 5934,
+ 9977, 7593, 8405, 184,
+ 9977, 7593, 8405, 185, 6121, 10802,
+ 9977, 7593, 8405, 236,
+ 9977, 7593, 8405, 237, 6121, 4530,
+ 9977, 7593, 8405, 237, 6121, 8758,
+ 9977, 7593, 8405, 237, 6121, 10802,
+ 9977, 7593, 8405, 258,
+ 9977, 7593, 8405, 259, 6121, 6516,
+ 9977, 7593, 8405, 259, 6121, 6874,
+ 9977, 7593, 8405, 276,
+ 9977, 7593, 8405, 294,
+ 9977, 7593, 8405, 306,
+ 9977, 7593, 8405, 307, 6121, 4530,
+ 9977, 7593, 8405, 307, 6121, 8758,
+ 9977, 7593, 8405, 307, 6121, 10677, 8758,
+ 9977, 7593, 8405, 307, 6121, 10802,
+ 9977, 7593, 8405, 448,
+ 9977, 7593, 8405, 468,
+ 9977, 7593, 8405, 469, 6121, 8473, 4530,
+ 9977, 7593, 8405, 496,
+ 9977, 7593, 8405, 560,
+ 9977, 7593, 8405, 561, 6121, 8473, 4530,
+ 9977, 7593, 8405, 561, 6121, 10802,
+ 9977, 7593, 8405, 592,
+ 9977, 7593, 8405, 612,
+ 9977, 7593, 8405, 626,
+ 9977, 7593, 8405, 652,
+ 9977, 7593, 8405, 656,
+ 9977, 7593, 8405, 658,
+ 9977, 7593, 8405, 664,
+ 9977, 7593, 8405, 672,
+ 9977, 7593, 8405, 673, 6121, 10802,
+ 9977, 7593, 8405, 673, 6121, 10804,
+ 9977, 7593, 8405, 807, 3096,
+ 9977, 7593, 8405, 886,
+ 9977, 7593, 8405, 887, 6121, 10677, 8758,
+ 9977, 7593, 8405, 887, 6121, 10802,
+ 9977, 7593, 8405, 887, 6121, 10804,
+ 9977, 7593, 8405, 1022,
+ 9977, 7593, 8405, 1074,
+ 9977, 7593, 8405, 1082,
+ 9977, 7593, 8405, 1262,
+ 9977, 7593, 8405, 1263, 6121, 8473, 4530,
+ 9977, 7593, 8405, 1263, 6121, 8758,
+ 9977, 7593, 8405, 1263, 6121, 8759, 721, 4530,
+ 9977, 7593, 8405, 1263, 6121, 8896,
+ 9977, 7593, 8405, 1263, 6121, 10802,
+ 9977, 7593, 8405, 1284,
+ 9977, 7593, 8405, 1442,
+ 9977, 7593, 8405, 1640,
+ 9977, 7593, 8405, 1680,
+ 9977, 7593, 8405, 1770,
+ 9977, 7593, 8405, 1794,
+ 9977, 7593, 8405, 2064,
+ 9977, 7593, 8405, 2250,
+ 9977, 7593, 8405, 2410,
+ 9977, 7593, 8405, 2516,
+ 9977, 7593, 8405, 2734,
+ 9977, 7593, 8405, 2774,
+ 9977, 7593, 8405, 3012,
+ 9977, 7593, 8405, 3038,
+ 9977, 7593, 8405, 3148,
+ 9977, 7593, 8405, 3149, 6121, 6516,
+ 9977, 7593, 8405, 3149, 6121, 10802,
+ 9977, 7593, 8405, 3149, 6121, 10804,
+ 9977, 7593, 8405, 3862,
+ 9977, 7593, 8405, 4142,
+ 9977, 7593, 8405, 4146,
+ 9977, 7593, 8405, 4148,
+ 9977, 7593, 8405, 4198,
+ 9977, 7593, 8405, 4393, 5758,
+ 9977, 7593, 8405, 4614,
+ 9977, 7593, 8405, 4771, 142,
+ 9977, 7593, 8405, 4771, 1022,
+ 9977, 7593, 8405, 4771, 1794,
+ 9977, 7593, 8405, 4771, 2064,
+ 9977, 7593, 8405, 4771, 2542,
+ 9977, 7593, 8405, 4771, 2704,
+ 9977, 7593, 8405, 4771, 3172,
+ 9977, 7593, 8405, 4771, 4144,
+ 9977, 7593, 8405, 5690,
+ 9977, 7593, 8405, 5734,
+ 9977, 7593, 8405, 5781, 142,
+ 9977, 7593, 8405, 5781, 172,
+ 9977, 7593, 8405, 5781, 174,
+ 9977, 7593, 8405, 5781, 5758,
+ 9977, 7593, 8405, 5890,
+ 9977, 7593, 8405, 5980,
+ 9977, 7593, 8405, 5982,
+ 9977, 7593, 8405, 5986,
+ 9977, 7593, 8405, 6200,
+ 9977, 7593, 8405, 6201, 6121, 3697, 3058,
+ 9977, 7593, 8405, 6201, 6121, 10804,
+ 9977, 7593, 8405, 6302,
+ 9977, 7593, 8405, 6399, 306,
+ 9977, 7593, 8405, 6519, 7316,
+ 9977, 7593, 8405, 6696,
+ 9977, 7593, 8405, 6710,
+ 9977, 7593, 8405, 7062,
+ 9977, 7593, 8405, 7316,
+ 9977, 7593, 8405, 7317, 6121, 7716,
+ 9977, 7593, 8405, 7455, 7316,
+ 9977, 7593, 8405, 7494,
+ 9977, 7593, 8405, 7495, 6121, 10804,
+ 9977, 7593, 8405, 7522,
+ 9977, 7593, 8405, 7551, 16,
+ 9977, 7593, 8405, 7551, 17, 6121, 5878,
+ 9977, 7593, 8405, 7551, 40,
+ 9977, 7593, 8405, 7981, 28,
+ 9977, 7593, 8405, 7981, 29, 6121, 10804,
+ 9977, 7593, 8405, 8065, 8425, 3096,
+ 9977, 7593, 8405, 8153, 11125, 28,
+ 9977, 7593, 8405, 8425, 3096,
+ 9977, 7593, 8405, 8960,
+ 9977, 7593, 8405, 9029, 306,
+ 9977, 7593, 8405, 9049, 3096,
+ 9977, 7593, 8405, 9372,
+ 9977, 7593, 8405, 9373, 6121, 8153, 6875, 7908,
+ 9977, 7593, 8405, 9501, 3058,
+ 9977, 7593, 8405, 10269, 0,
+ 9977, 7593, 8405, 10269, 8,
+ 9977, 7593, 8405, 10269, 807, 3096,
+ 9977, 7593, 8405, 10269, 3038,
+ 9977, 7593, 8405, 10269, 8065, 8425, 3096,
+ 9977, 7593, 8405, 10269, 8425, 3096,
+ 9977, 7593, 8405, 10396,
+ 9977, 7593, 8405, 10489, 664,
+ 9977, 7593, 8405, 10489, 672,
+ 9977, 7593, 8405, 10489, 1082,
+ 9977, 7593, 8405, 10509, 5758,
+ 9977, 7593, 8405, 10545, 40,
+ 9977, 7593, 8405, 10545, 41, 6121, 8758,
+ 9977, 7593, 8405, 10697, 236,
+ 9977, 7593, 8405, 10697, 886,
+ 9977, 7593, 8405, 10697, 887, 6121, 10802,
+ 9977, 7593, 8405, 10697, 1082,
+ 9977, 7593, 8405, 10735, 28,
+ 9977, 7593, 8405, 11125, 28,
+ 9977, 7593, 8405, 11127, 592,
+ 9977, 7593, 8405, 11383, 258,
+ 9977, 7593, 8405, 11665, 886,
+ 9977, 7593, 8405, 13415, 16,
+ 9977, 7593, 10301, 1, 258,
+ 9977, 7593, 10301, 177, 1262,
+ 9977, 7593, 10301, 561, 2734,
+ 9977, 8342,
+ 9977, 8405, 7593, 9063, 172,
+ 9977, 8405, 10396,
+ 9977, 8405, 12087, 28,
+ 9977, 9063, 8405, 0,
+ 9977, 9063, 8405, 1, 6121, 6516,
+ 9977, 9063, 8405, 1, 6121, 10804,
+ 9977, 9063, 8405, 8,
+ 9977, 9063, 8405, 9, 6121, 10804,
+ 9977, 9063, 8405, 16,
+ 9977, 9063, 8405, 17, 6121, 6874,
+ 9977, 9063, 8405, 17, 6121, 8432,
+ 9977, 9063, 8405, 17, 6121, 10804,
+ 9977, 9063, 8405, 28,
+ 9977, 9063, 8405, 29, 6121, 10804,
+ 9977, 9063, 8405, 40,
+ 9977, 9063, 8405, 41, 6121, 8153, 6378,
+ 9977, 9063, 8405, 41, 6121, 8432,
+ 9977, 9063, 8405, 41, 6121, 10804,
+ 9977, 9063, 8405, 102,
+ 9977, 9063, 8405, 142,
+ 9977, 9063, 8405, 164,
+ 9977, 9063, 8405, 172,
+ 9977, 9063, 8405, 173, 6121, 4530,
+ 9977, 9063, 8405, 173, 6121, 5878,
+ 9977, 9063, 8405, 173, 6121, 8473, 4530,
+ 9977, 9063, 8405, 174,
+ 9977, 9063, 8405, 175, 6121, 5878,
+ 9977, 9063, 8405, 176,
+ 9977, 9063, 8405, 177, 6121, 4530,
+ 9977, 9063, 8405, 177, 6121, 5878,
+ 9977, 9063, 8405, 177, 6121, 8473, 4530,
+ 9977, 9063, 8405, 177, 6121, 10802,
+ 9977, 9063, 8405, 182,
+ 9977, 9063, 8405, 183, 6121, 5934,
+ 9977, 9063, 8405, 184,
+ 9977, 9063, 8405, 185, 6121, 10802,
+ 9977, 9063, 8405, 236,
+ 9977, 9063, 8405, 237, 6121, 4530,
+ 9977, 9063, 8405, 237, 6121, 8758,
+ 9977, 9063, 8405, 237, 6121, 10802,
+ 9977, 9063, 8405, 258,
+ 9977, 9063, 8405, 259, 6121, 6516,
+ 9977, 9063, 8405, 259, 6121, 6874,
+ 9977, 9063, 8405, 276,
+ 9977, 9063, 8405, 294,
+ 9977, 9063, 8405, 306,
+ 9977, 9063, 8405, 307, 6121, 4530,
+ 9977, 9063, 8405, 307, 6121, 8758,
+ 9977, 9063, 8405, 307, 6121, 10677, 8758,
+ 9977, 9063, 8405, 307, 6121, 10802,
+ 9977, 9063, 8405, 448,
+ 9977, 9063, 8405, 468,
+ 9977, 9063, 8405, 469, 6121, 8473, 4530,
+ 9977, 9063, 8405, 496,
+ 9977, 9063, 8405, 560,
+ 9977, 9063, 8405, 561, 6121, 8473, 4530,
+ 9977, 9063, 8405, 561, 6121, 10802,
+ 9977, 9063, 8405, 592,
+ 9977, 9063, 8405, 612,
+ 9977, 9063, 8405, 626,
+ 9977, 9063, 8405, 652,
+ 9977, 9063, 8405, 656,
+ 9977, 9063, 8405, 658,
+ 9977, 9063, 8405, 664,
+ 9977, 9063, 8405, 672,
+ 9977, 9063, 8405, 673, 6121, 10802,
+ 9977, 9063, 8405, 673, 6121, 10804,
+ 9977, 9063, 8405, 807, 3096,
+ 9977, 9063, 8405, 886,
+ 9977, 9063, 8405, 887, 6121, 10677, 8758,
+ 9977, 9063, 8405, 887, 6121, 10802,
+ 9977, 9063, 8405, 887, 6121, 10804,
+ 9977, 9063, 8405, 1022,
+ 9977, 9063, 8405, 1074,
+ 9977, 9063, 8405, 1082,
+ 9977, 9063, 8405, 1262,
+ 9977, 9063, 8405, 1263, 6121, 8473, 4530,
+ 9977, 9063, 8405, 1263, 6121, 8758,
+ 9977, 9063, 8405, 1263, 6121, 8759, 721, 4530,
+ 9977, 9063, 8405, 1263, 6121, 8896,
+ 9977, 9063, 8405, 1263, 6121, 10802,
+ 9977, 9063, 8405, 1284,
+ 9977, 9063, 8405, 1442,
+ 9977, 9063, 8405, 1640,
+ 9977, 9063, 8405, 1680,
+ 9977, 9063, 8405, 1770,
+ 9977, 9063, 8405, 1794,
+ 9977, 9063, 8405, 2064,
+ 9977, 9063, 8405, 2250,
+ 9977, 9063, 8405, 2410,
+ 9977, 9063, 8405, 2516,
+ 9977, 9063, 8405, 2734,
+ 9977, 9063, 8405, 2774,
+ 9977, 9063, 8405, 3012,
+ 9977, 9063, 8405, 3038,
+ 9977, 9063, 8405, 3148,
+ 9977, 9063, 8405, 3149, 6121, 6516,
+ 9977, 9063, 8405, 3149, 6121, 10802,
+ 9977, 9063, 8405, 3149, 6121, 10804,
+ 9977, 9063, 8405, 3862,
+ 9977, 9063, 8405, 4142,
+ 9977, 9063, 8405, 4146,
+ 9977, 9063, 8405, 4148,
+ 9977, 9063, 8405, 4198,
+ 9977, 9063, 8405, 4393, 5758,
+ 9977, 9063, 8405, 4614,
+ 9977, 9063, 8405, 4771, 142,
+ 9977, 9063, 8405, 4771, 1022,
+ 9977, 9063, 8405, 4771, 1794,
+ 9977, 9063, 8405, 4771, 2064,
+ 9977, 9063, 8405, 4771, 2542,
+ 9977, 9063, 8405, 4771, 2704,
+ 9977, 9063, 8405, 4771, 3172,
+ 9977, 9063, 8405, 4771, 4144,
+ 9977, 9063, 8405, 5690,
+ 9977, 9063, 8405, 5734,
+ 9977, 9063, 8405, 5781, 142,
+ 9977, 9063, 8405, 5781, 172,
+ 9977, 9063, 8405, 5781, 174,
+ 9977, 9063, 8405, 5781, 5758,
+ 9977, 9063, 8405, 5890,
+ 9977, 9063, 8405, 5980,
+ 9977, 9063, 8405, 5982,
+ 9977, 9063, 8405, 5986,
+ 9977, 9063, 8405, 6200,
+ 9977, 9063, 8405, 6201, 6121, 3697, 3058,
+ 9977, 9063, 8405, 6201, 6121, 10804,
+ 9977, 9063, 8405, 6302,
+ 9977, 9063, 8405, 6399, 306,
+ 9977, 9063, 8405, 6519, 7316,
+ 9977, 9063, 8405, 6696,
+ 9977, 9063, 8405, 6710,
+ 9977, 9063, 8405, 7062,
+ 9977, 9063, 8405, 7316,
+ 9977, 9063, 8405, 7317, 6121, 7716,
+ 9977, 9063, 8405, 7455, 7316,
+ 9977, 9063, 8405, 7494,
+ 9977, 9063, 8405, 7495, 6121, 10804,
+ 9977, 9063, 8405, 7522,
+ 9977, 9063, 8405, 7551, 16,
+ 9977, 9063, 8405, 7551, 17, 6121, 5878,
+ 9977, 9063, 8405, 7551, 40,
+ 9977, 9063, 8405, 7981, 28,
+ 9977, 9063, 8405, 7981, 29, 6121, 10804,
+ 9977, 9063, 8405, 8065, 8425, 3096,
+ 9977, 9063, 8405, 8153, 11125, 28,
+ 9977, 9063, 8405, 8425, 3096,
+ 9977, 9063, 8405, 8960,
+ 9977, 9063, 8405, 9029, 306,
+ 9977, 9063, 8405, 9049, 3096,
+ 9977, 9063, 8405, 9372,
+ 9977, 9063, 8405, 9373, 6121, 8153, 6875, 7908,
+ 9977, 9063, 8405, 9501, 3058,
+ 9977, 9063, 8405, 10269, 0,
+ 9977, 9063, 8405, 10269, 8,
+ 9977, 9063, 8405, 10269, 807, 3096,
+ 9977, 9063, 8405, 10269, 3038,
+ 9977, 9063, 8405, 10269, 8065, 8425, 3096,
+ 9977, 9063, 8405, 10269, 8425, 3096,
+ 9977, 9063, 8405, 10489, 664,
+ 9977, 9063, 8405, 10489, 672,
+ 9977, 9063, 8405, 10489, 1082,
+ 9977, 9063, 8405, 10509, 5758,
+ 9977, 9063, 8405, 10545, 40,
+ 9977, 9063, 8405, 10545, 41, 6121, 8758,
+ 9977, 9063, 8405, 10697, 236,
+ 9977, 9063, 8405, 10697, 886,
+ 9977, 9063, 8405, 10697, 887, 6121, 10802,
+ 9977, 9063, 8405, 10697, 1082,
+ 9977, 9063, 8405, 10735, 28,
+ 9977, 9063, 8405, 11125, 28,
+ 9977, 9063, 8405, 11127, 592,
+ 9977, 9063, 8405, 11383, 258,
+ 9977, 9063, 8405, 11665, 886,
+ 9977, 9063, 8405, 13415, 16,
+ 9977, 9063, 10301, 1, 258,
+ 9977, 9063, 10301, 177, 1262,
+ 9977, 9063, 10301, 561, 2734,
+ 9977, 9578,
+ 9977, 11363, 5758,
+ 10003, 5758,
+ 10017, 5758,
+ 10017, 7580,
+ 10017, 7710,
+ 10141, 7383, 11765, 6434,
+ 10153, 6434,
+ 10157, 8774,
+ 10162,
+ 10171, 4223, 5836,
+ 10171, 6610,
+ 10171, 6616,
+ 10171, 6689, 2170,
+ 10171, 6689, 2540,
+ 10171, 6689, 2778,
+ 10171, 6689, 4200,
+ 10171, 6689, 4214,
+ 10171, 6689, 5190,
+ 10171, 6689, 6722,
+ 10171, 6689, 7508,
+ 10171, 6689, 7694,
+ 10171, 7723, 4927, 4790,
+ 10171, 7723, 4927, 6676,
+ 10171, 7723, 4927, 6686,
+ 10171, 7723, 4927, 6910,
+ 10171, 7723, 4927, 7038,
+ 10171, 7723, 4927, 7551, 8646,
+ 10171, 7723, 4927, 7860,
+ 10171, 7723, 4927, 8046,
+ 10171, 7723, 4927, 8646,
+ 10171, 7723, 4927, 11934,
+ 10171, 8525, 2670,
+ 10171, 8525, 2671, 10624,
+ 10171, 8525, 6784,
+ 10171, 8525, 6804,
+ 10171, 8525, 7576,
+ 10171, 8525, 8160,
+ 10171, 8525, 8514,
+ 10171, 8525, 8820,
+ 10171, 8525, 8876,
+ 10171, 8525, 9344,
+ 10171, 8525, 9672,
+ 10171, 9607, 6610,
+ 10171, 9665, 4926,
+ 10171, 10469, 4926,
+ 10171, 10585, 100,
+ 10171, 10585, 102,
+ 10171, 10585, 106,
+ 10171, 10585, 108,
+ 10171, 10585, 112,
+ 10171, 10585, 116,
+ 10171, 10585, 122,
+ 10171, 10585, 126,
+ 10171, 10585, 130,
+ 10171, 10585, 132,
+ 10171, 10585, 138,
+ 10171, 10585, 142,
+ 10171, 10585, 144,
+ 10171, 10585, 150,
+ 10171, 10585, 152,
+ 10171, 10585, 196,
+ 10171, 10585, 198,
+ 10171, 10585, 202,
+ 10171, 10585, 208,
+ 10171, 10585, 210,
+ 10171, 10585, 216,
+ 10171, 10585, 220,
+ 10171, 10585, 224,
+ 10171, 10585, 228,
+ 10171, 10585, 230,
+ 10171, 10585, 236,
+ 10171, 10585, 238,
+ 10171, 10585, 242,
+ 10171, 10585, 246,
+ 10171, 10585, 250,
+ 10171, 10585, 292,
+ 10171, 10585, 294,
+ 10171, 10585, 296,
+ 10171, 10585, 298,
+ 10171, 10585, 300,
+ 10171, 10585, 306,
+ 10171, 10585, 310,
+ 10171, 10585, 314,
+ 10171, 10585, 322,
+ 10171, 10585, 326,
+ 10171, 10585, 332,
+ 10171, 10585, 336,
+ 10171, 10585, 340,
+ 10171, 10585, 350,
+ 10171, 10585, 354,
+ 10171, 10585, 364,
+ 10171, 10585, 368,
+ 10171, 10585, 374,
+ 10171, 10585, 380,
+ 10171, 10585, 384,
+ 10171, 10585, 392,
+ 10171, 10585, 396,
+ 10171, 10585, 404,
+ 10171, 10585, 412,
+ 10171, 10585, 416,
+ 10171, 10585, 462,
+ 10171, 10585, 468,
+ 10171, 10585, 476,
+ 10171, 10585, 480,
+ 10171, 10585, 486,
+ 10171, 10585, 496,
+ 10171, 10585, 498,
+ 10171, 10585, 500,
+ 10171, 10585, 502,
+ 10171, 10585, 506,
+ 10171, 10585, 510,
+ 10171, 10585, 512,
+ 10171, 10585, 514,
+ 10171, 10585, 516,
+ 10171, 10585, 520,
+ 10171, 10585, 524,
+ 10171, 10585, 526,
+ 10171, 10585, 532,
+ 10171, 10585, 536,
+ 10171, 10585, 546,
+ 10171, 10585, 556,
+ 10171, 10585, 560,
+ 10171, 10585, 564,
+ 10171, 10585, 568,
+ 10171, 10585, 576,
+ 10171, 10585, 610,
+ 10171, 10585, 612,
+ 10171, 10585, 614,
+ 10171, 10585, 616,
+ 10171, 10585, 618,
+ 10171, 10585, 622,
+ 10171, 10585, 626,
+ 10171, 10585, 630,
+ 10171, 10585, 632,
+ 10171, 10585, 634,
+ 10171, 10585, 638,
+ 10171, 10585, 640,
+ 10171, 10585, 644,
+ 10171, 10585, 646,
+ 10171, 10585, 648,
+ 10171, 10585, 652,
+ 10171, 10585, 654,
+ 10171, 10585, 656,
+ 10171, 10585, 660,
+ 10171, 10585, 664,
+ 10171, 10585, 670,
+ 10171, 10585, 672,
+ 10171, 10585, 676,
+ 10171, 10585, 678,
+ 10171, 10585, 680,
+ 10171, 10585, 748,
+ 10171, 10585, 778,
+ 10171, 10585, 816,
+ 10171, 10585, 838,
+ 10171, 10585, 840,
+ 10171, 10585, 842,
+ 10171, 10585, 854,
+ 10171, 10585, 866,
+ 10171, 10585, 868,
+ 10171, 10585, 870,
+ 10171, 10585, 872,
+ 10171, 10585, 874,
+ 10171, 10585, 876,
+ 10171, 10585, 884,
+ 10171, 10585, 886,
+ 10171, 10585, 888,
+ 10171, 10585, 890,
+ 10171, 10585, 892,
+ 10171, 10585, 910,
+ 10171, 10585, 936,
+ 10171, 10585, 954,
+ 10171, 10585, 974,
+ 10171, 10585, 976,
+ 10171, 10585, 978,
+ 10171, 10585, 980,
+ 10171, 10585, 982,
+ 10171, 10585, 984,
+ 10171, 10585, 1034,
+ 10171, 10585, 1072,
+ 10171, 10585, 1140,
+ 10171, 10585, 1150,
+ 10171, 10585, 1188,
+ 10171, 10585, 1190,
+ 10171, 10585, 1192,
+ 10171, 10585, 1194,
+ 10171, 10585, 1204,
+ 10171, 10585, 1238,
+ 10171, 10585, 1250,
+ 10171, 10585, 1252,
+ 10171, 10585, 1254,
+ 10171, 10585, 1256,
+ 10171, 10585, 1258,
+ 10171, 10585, 1288,
+ 10171, 10585, 1322,
+ 10171, 10585, 1324,
+ 10171, 10585, 1326,
+ 10171, 10585, 1328,
+ 10171, 10585, 1330,
+ 10171, 10585, 1332,
+ 10171, 10585, 1334,
+ 10171, 10585, 1336,
+ 10171, 10585, 1338,
+ 10171, 10585, 1356,
+ 10171, 10585, 1370,
+ 10171, 10585, 1372,
+ 10171, 10585, 1374,
+ 10171, 10585, 1376,
+ 10171, 10585, 1378,
+ 10171, 10585, 1418,
+ 10171, 10585, 1502,
+ 10171, 10585, 1506,
+ 10171, 10585, 1540,
+ 10171, 10585, 1562,
+ 10171, 10585, 1574,
+ 10171, 10585, 1598,
+ 10171, 10585, 1654,
+ 10171, 10585, 1704,
+ 10171, 10585, 1706,
+ 10171, 10585, 1708,
+ 10171, 10585, 1712,
+ 10171, 10585, 1714,
+ 10171, 10585, 1716,
+ 10171, 10585, 1718,
+ 10171, 10585, 1720,
+ 10171, 10585, 1722,
+ 10171, 10585, 1724,
+ 10171, 10585, 1726,
+ 10171, 10585, 1728,
+ 10171, 10585, 1730,
+ 10171, 10585, 1732,
+ 10171, 10585, 1758,
+ 10171, 10585, 1798,
+ 10171, 10585, 1834,
+ 10171, 10585, 1854,
+ 10171, 10585, 1890,
+ 10171, 10585, 1932,
+ 10171, 10585, 1964,
+ 10171, 10585, 1966,
+ 10171, 10585, 1968,
+ 10171, 10585, 1972,
+ 10171, 10585, 1982,
+ 10171, 10585, 2016,
+ 10171, 10585, 2082,
+ 10171, 10585, 2122,
+ 10171, 10585, 2126,
+ 10171, 10585, 2130,
+ 10171, 10585, 2132,
+ 10171, 10585, 2134,
+ 10171, 10585, 2136,
+ 10171, 10585, 2188,
+ 10171, 10585, 2204,
+ 10171, 10585, 2212,
+ 10171, 10585, 2214,
+ 10171, 10585, 2216,
+ 10171, 10585, 2218,
+ 10171, 10585, 2220,
+ 10171, 10585, 2236,
+ 10171, 10585, 2266,
+ 10171, 10585, 2268,
+ 10171, 10585, 2270,
+ 10171, 10585, 2282,
+ 10171, 10585, 2294,
+ 10171, 10585, 2296,
+ 10171, 10585, 2298,
+ 10171, 10585, 2300,
+ 10171, 10585, 2302,
+ 10171, 10585, 2304,
+ 10171, 10585, 2316,
+ 10171, 10585, 2350,
+ 10171, 10585, 2352,
+ 10171, 10585, 2354,
+ 10171, 10585, 2356,
+ 10171, 10585, 2358,
+ 10171, 10585, 2360,
+ 10171, 10585, 2362,
+ 10171, 10585, 2370,
+ 10171, 10585, 2378,
+ 10171, 10585, 2402,
+ 10171, 10585, 2424,
+ 10171, 10585, 2466,
+ 10171, 10585, 2468,
+ 10171, 10585, 2482,
+ 10171, 10585, 2504,
+ 10171, 10585, 2516,
+ 10171, 10585, 2518,
+ 10171, 10585, 2520,
+ 10171, 10585, 2522,
+ 10171, 10585, 2524,
+ 10171, 10585, 2548,
+ 10171, 10585, 2566,
+ 10171, 10585, 2568,
+ 10171, 10585, 2570,
+ 10171, 10585, 2572,
+ 10171, 10585, 2574,
+ 10171, 10585, 2598,
+ 10171, 10585, 2620,
+ 10171, 10585, 2622,
+ 10171, 10585, 2624,
+ 10171, 10585, 2626,
+ 10171, 10585, 2628,
+ 10171, 10585, 2634,
+ 10171, 10585, 2666,
+ 10171, 10585, 2678,
+ 10171, 10585, 2680,
+ 10171, 10585, 2682,
+ 10171, 10585, 2684,
+ 10171, 10585, 2686,
+ 10171, 10585, 2718,
+ 10171, 10585, 2732,
+ 10171, 10585, 2734,
+ 10171, 10585, 2736,
+ 10171, 10585, 2738,
+ 10171, 10585, 2740,
+ 10171, 10585, 2772,
+ 10171, 10585, 2790,
+ 10171, 10585, 2792,
+ 10171, 10585, 2794,
+ 10171, 10585, 2796,
+ 10171, 10585, 2798,
+ 10171, 10585, 2844,
+ 10171, 10585, 2856,
+ 10171, 10585, 2896,
+ 10171, 10585, 2906,
+ 10171, 10585, 2922,
+ 10171, 10585, 2936,
+ 10171, 10585, 2952,
+ 10171, 10585, 2956,
+ 10171, 10585, 2968,
+ 10171, 10585, 2982,
+ 10171, 10585, 2984,
+ 10171, 10585, 2986,
+ 10171, 10585, 2988,
+ 10171, 10585, 2990,
+ 10171, 10585, 2992,
+ 10171, 10585, 2994,
+ 10171, 10585, 3002,
+ 10171, 10585, 3006,
+ 10171, 10585, 3050,
+ 10171, 10585, 3078,
+ 10171, 10585, 3120,
+ 10171, 10585, 3138,
+ 10171, 10585, 3146,
+ 10171, 10585, 3148,
+ 10171, 10585, 3150,
+ 10171, 10585, 3152,
+ 10171, 10585, 3154,
+ 10171, 10585, 3176,
+ 10171, 10585, 3202,
+ 10171, 10585, 3212,
+ 10171, 10585, 3214,
+ 10171, 10585, 3216,
+ 10171, 10585, 3218,
+ 10171, 10585, 3220,
+ 10171, 10585, 3826,
+ 10171, 10585, 3856,
+ 10171, 10585, 3858,
+ 10171, 10585, 3860,
+ 10171, 10585, 3862,
+ 10171, 10585, 3864,
+ 10171, 10585, 3866,
+ 10171, 10585, 3868,
+ 10171, 10585, 3874,
+ 10171, 10585, 3890,
+ 10171, 10585, 3906,
+ 10171, 10585, 3924,
+ 10171, 10585, 3998,
+ 10171, 10585, 4010,
+ 10171, 10585, 4028,
+ 10171, 10585, 4046,
+ 10171, 10585, 4232,
+ 10171, 10585, 4270,
+ 10171, 10585, 4278,
+ 10171, 10585, 4308,
+ 10171, 10585, 4310,
+ 10171, 10585, 4312,
+ 10171, 10585, 4370,
+ 10171, 10585, 4372,
+ 10171, 10585, 4374,
+ 10171, 10585, 4378,
+ 10171, 10585, 4412,
+ 10171, 10585, 4414,
+ 10171, 10585, 4416,
+ 10171, 10585, 4796,
+ 10171, 10585, 4798,
+ 10171, 10585, 4804,
+ 10171, 10585, 4806,
+ 10171, 10585, 4808,
+ 10171, 10585, 4810,
+ 10171, 10585, 4812,
+ 10171, 10585, 4814,
+ 10171, 10585, 4816,
+ 10171, 10585, 5034,
+ 10171, 10585, 5292,
+ 10171, 10585, 5296,
+ 10171, 10585, 5314,
+ 10171, 10585, 5332,
+ 10171, 10585, 5410,
+ 10171, 10585, 5416,
+ 10171, 10585, 5418,
+ 10171, 10585, 5422,
+ 10171, 10585, 5462,
+ 10171, 10585, 5478,
+ 10171, 10585, 5480,
+ 10171, 10585, 5482,
+ 10171, 10585, 5484,
+ 10171, 10585, 5486,
+ 10171, 10585, 5508,
+ 10171, 10585, 5510,
+ 10171, 10585, 5512,
+ 10171, 10585, 5514,
+ 10171, 10585, 5666,
+ 10171, 10585, 5678,
+ 10171, 10585, 5704,
+ 10171, 10585, 5732,
+ 10171, 10585, 5786,
+ 10171, 10585, 5794,
+ 10171, 10585, 5866,
+ 10171, 10585, 5868,
+ 10171, 10585, 5870,
+ 10171, 10585, 5906,
+ 10171, 10585, 5914,
+ 10171, 10585, 5928,
+ 10171, 10585, 5932,
+ 10171, 10585, 5974,
+ 10171, 10585, 5976,
+ 10171, 10585, 5984,
+ 10171, 10585, 6032,
+ 10171, 10585, 6034,
+ 10171, 10585, 6038,
+ 10171, 10585, 6148,
+ 10171, 10585, 6150,
+ 10171, 10585, 6152,
+ 10171, 10585, 6154,
+ 10171, 10585, 6264,
+ 10171, 10585, 6274,
+ 10171, 10585, 6300,
+ 10171, 10585, 6328,
+ 10171, 10585, 6336,
+ 10171, 10585, 6550,
+ 10171, 10585, 6552,
+ 10171, 10585, 6846,
+ 10171, 10585, 6848,
+ 10171, 10585, 7066,
+ 10171, 10585, 7068,
+ 10171, 10585, 7406,
+ 10171, 10585, 7408,
+ 10171, 10585, 9313, 0,
+ 10171, 10585, 9313, 8,
+ 10171, 10585, 9313, 16,
+ 10171, 10585, 9313, 28,
+ 10171, 10585, 9313, 40,
+ 10171, 10585, 9313, 58,
+ 10171, 10585, 9313, 162,
+ 10171, 10585, 9313, 422,
+ 10171, 10585, 9313, 622,
+ 10171, 10585, 11223, 838,
+ 10171, 10585, 11223, 1188,
+ 10171, 10585, 11223, 1964,
+ 10171, 10585, 11223, 2266,
+ 10171, 10585, 11723, 0,
+ 10171, 10585, 11723, 8,
+ 10171, 10585, 11723, 16,
+ 10171, 10585, 11723, 28,
+ 10171, 10585, 11723, 40,
+ 10171, 10585, 11723, 58,
+ 10171, 10585, 11723, 162,
+ 10171, 10767, 11639, 4926,
+ 10171, 11163, 11228,
+ 10171, 11224,
+ 10171, 11400,
+ 10173, 12403, 6689, 2170,
+ 10173, 12403, 6689, 2540,
+ 10173, 12403, 6689, 2778,
+ 10173, 12403, 6689, 4200,
+ 10173, 12403, 6689, 4214,
+ 10173, 12403, 6689, 5190,
+ 10173, 12403, 6689, 6260,
+ 10173, 12403, 6689, 6722,
+ 10173, 12403, 6689, 7508,
+ 10173, 12403, 6689, 7694,
+ 10179, 9539, 11054,
+ 10192,
+ 10203, 7580,
+ 10203, 11143, 2170,
+ 10213, 11894,
+ 10221, 7593, 8405, 80,
+ 10221, 7593, 8405, 176,
+ 10221, 7593, 8405, 238,
+ 10221, 7593, 8405, 274,
+ 10221, 7593, 8405, 438,
+ 10221, 7593, 8405, 596,
+ 10221, 7593, 8405, 626,
+ 10221, 7593, 8405, 756,
+ 10221, 7593, 8405, 858,
+ 10221, 7593, 8405, 900,
+ 10221, 7593, 8405, 1038,
+ 10221, 7593, 8405, 1216,
+ 10221, 7593, 8405, 1340,
+ 10221, 7593, 8405, 1350,
+ 10221, 7593, 8405, 1380,
+ 10221, 7593, 8405, 1420,
+ 10221, 7593, 8405, 1520,
+ 10221, 7593, 8405, 1588,
+ 10221, 7593, 8405, 1744,
+ 10221, 7593, 8405, 1860,
+ 10221, 7593, 8405, 1992,
+ 10221, 7593, 8405, 2196,
+ 10221, 7593, 8405, 2290,
+ 10221, 7593, 8405, 2384,
+ 10221, 7593, 8405, 2490,
+ 10221, 7593, 8405, 2648,
+ 10221, 7593, 8405, 2654,
+ 10221, 7593, 8405, 2868,
+ 10221, 7593, 8405, 2954,
+ 10221, 7593, 8405, 3140,
+ 10221, 7593, 8405, 3884,
+ 10221, 7593, 8405, 3904,
+ 10221, 7593, 8405, 4316,
+ 10221, 7593, 8405, 4634,
+ 10221, 7593, 8405, 4742,
+ 10221, 7593, 8405, 5414,
+ 10221, 7593, 8405, 5698,
+ 10221, 7593, 8405, 6268,
+ 10221, 8405, 80,
+ 10221, 8405, 176,
+ 10221, 8405, 202,
+ 10221, 8405, 238,
+ 10221, 8405, 274,
+ 10221, 8405, 438,
+ 10221, 8405, 596,
+ 10221, 8405, 626,
+ 10221, 8405, 658,
+ 10221, 8405, 710,
+ 10221, 8405, 756,
+ 10221, 8405, 858,
+ 10221, 8405, 900,
+ 10221, 8405, 1038,
+ 10221, 8405, 1216,
+ 10221, 8405, 1340,
+ 10221, 8405, 1350,
+ 10221, 8405, 1380,
+ 10221, 8405, 1420,
+ 10221, 8405, 1520,
+ 10221, 8405, 1588,
+ 10221, 8405, 1744,
+ 10221, 8405, 1860,
+ 10221, 8405, 1992,
+ 10221, 8405, 2196,
+ 10221, 8405, 2290,
+ 10221, 8405, 2384,
+ 10221, 8405, 2490,
+ 10221, 8405, 2648,
+ 10221, 8405, 2654,
+ 10221, 8405, 2868,
+ 10221, 8405, 2954,
+ 10221, 8405, 3140,
+ 10221, 8405, 3884,
+ 10221, 8405, 3904,
+ 10221, 8405, 4316,
+ 10221, 8405, 4634,
+ 10221, 8405, 4742,
+ 10221, 8405, 5414,
+ 10221, 8405, 5698,
+ 10221, 8405, 6268,
+ 10221, 8405, 6728,
+ 10221, 8405, 8869, 1216,
+ 10221, 9063, 8405, 80,
+ 10221, 9063, 8405, 176,
+ 10221, 9063, 8405, 238,
+ 10221, 9063, 8405, 274,
+ 10221, 9063, 8405, 438,
+ 10221, 9063, 8405, 596,
+ 10221, 9063, 8405, 626,
+ 10221, 9063, 8405, 756,
+ 10221, 9063, 8405, 858,
+ 10221, 9063, 8405, 900,
+ 10221, 9063, 8405, 1038,
+ 10221, 9063, 8405, 1216,
+ 10221, 9063, 8405, 1340,
+ 10221, 9063, 8405, 1350,
+ 10221, 9063, 8405, 1380,
+ 10221, 9063, 8405, 1420,
+ 10221, 9063, 8405, 1520,
+ 10221, 9063, 8405, 1588,
+ 10221, 9063, 8405, 1744,
+ 10221, 9063, 8405, 1860,
+ 10221, 9063, 8405, 1992,
+ 10221, 9063, 8405, 2196,
+ 10221, 9063, 8405, 2290,
+ 10221, 9063, 8405, 2384,
+ 10221, 9063, 8405, 2490,
+ 10221, 9063, 8405, 2648,
+ 10221, 9063, 8405, 2654,
+ 10221, 9063, 8405, 2868,
+ 10221, 9063, 8405, 2954,
+ 10221, 9063, 8405, 3140,
+ 10221, 9063, 8405, 3884,
+ 10221, 9063, 8405, 3904,
+ 10221, 9063, 8405, 4316,
+ 10221, 9063, 8405, 4634,
+ 10221, 9063, 8405, 4742,
+ 10221, 9063, 8405, 5414,
+ 10221, 9063, 8405, 5698,
+ 10221, 9063, 8405, 6268,
+ 10221, 11163, 11228,
+ 10225, 436,
+ 10225, 5759, 7282,
+ 10225, 5759, 8916,
+ 10225, 5759, 9824,
+ 10225, 5759, 9870,
+ 10225, 5759, 9904,
+ 10225, 5759, 11900,
+ 10225, 6689, 2170,
+ 10225, 6689, 2540,
+ 10225, 6689, 2778,
+ 10225, 6689, 4200,
+ 10225, 6689, 4214,
+ 10225, 6689, 5190,
+ 10225, 6689, 6260,
+ 10225, 6689, 6722,
+ 10225, 6689, 7508,
+ 10225, 6689, 7694,
+ 10225, 7469, 5758,
+ 10225, 7803, 5759, 8,
+ 10225, 7803, 5759, 16,
+ 10225, 7803, 5759, 28,
+ 10225, 7803, 5759, 40,
+ 10225, 7803, 5759, 58,
+ 10225, 7803, 5759, 72,
+ 10225, 7803, 5759, 92,
+ 10225, 7803, 5759, 266,
+ 10225, 7803, 5759, 606,
+ 10225, 7803, 5759, 8031, 8,
+ 10225, 7803, 5759, 8031, 28,
+ 10225, 7803, 5759, 9827, 22,
+ 10225, 7803, 5759, 9827, 34,
+ 10225, 7803, 5759, 9827, 344,
+ 10225, 7803, 5759, 9827, 518,
+ 10225, 7803, 8031, 8,
+ 10225, 7803, 8031, 28,
+ 10225, 8405, 0,
+ 10225, 8405, 8,
+ 10225, 8405, 16,
+ 10225, 8405, 28,
+ 10225, 8405, 40,
+ 10225, 8405, 58,
+ 10225, 8405, 72,
+ 10225, 8405, 92,
+ 10225, 8405, 100,
+ 10225, 8405, 116,
+ 10225, 8405, 138,
+ 10225, 8405, 216,
+ 10225, 8405, 236,
+ 10225, 8405, 266,
+ 10225, 8405, 292,
+ 10225, 8405, 306,
+ 10225, 8405, 332,
+ 10225, 8405, 364,
+ 10225, 8405, 392,
+ 10225, 8405, 462,
+ 10225, 8405, 510,
+ 10225, 8405, 524,
+ 10225, 8405, 556,
+ 10225, 8405, 606,
+ 10225, 8405, 610,
+ 10225, 8405, 652,
+ 10225, 8405, 792,
+ 10225, 8405, 884,
+ 10225, 8405, 974,
+ 10225, 8405, 996,
+ 10225, 8405, 1260,
+ 10225, 8405, 1512,
+ 10225, 8405, 1612,
+ 10225, 8405, 1796,
+ 10225, 8405, 2030,
+ 10225, 8405, 2076,
+ 10225, 8405, 2126,
+ 10225, 8405, 2212,
+ 10225, 8405, 2516,
+ 10225, 8405, 2566,
+ 10225, 8405, 2678,
+ 10225, 8405, 2746,
+ 10225, 8405, 4016,
+ 10225, 8405, 5994,
+ 10225, 8405, 9827, 22,
+ 10225, 8405, 9827, 34,
+ 10225, 8405, 9827, 344,
+ 10225, 8405, 9827, 518,
+ 10227, 171, 7318,
+ 10227, 1496,
+ 10227, 2826,
+ 10227, 5759, 3227, 6498,
+ 10227, 5759, 6498,
+ 10227, 5759, 7282,
+ 10227, 5759, 7758,
+ 10227, 5759, 8916,
+ 10227, 5759, 8944,
+ 10227, 5759, 9824,
+ 10227, 6380,
+ 10227, 6689, 2170,
+ 10227, 6689, 2540,
+ 10227, 6689, 2778,
+ 10227, 6689, 4200,
+ 10227, 6689, 4214,
+ 10227, 6689, 5190,
+ 10227, 6689, 6260,
+ 10227, 6689, 6722,
+ 10227, 6689, 7508,
+ 10227, 6689, 7694,
+ 10227, 7714,
+ 10227, 7803, 5759, 16,
+ 10227, 7803, 5759, 40,
+ 10227, 7803, 5759, 58,
+ 10227, 7803, 5759, 72,
+ 10227, 7803, 5759, 92,
+ 10227, 7803, 5759, 162,
+ 10227, 7803, 5759, 266,
+ 10227, 7803, 5759, 440,
+ 10227, 7803, 5759, 606,
+ 10227, 8405, 0,
+ 10227, 8405, 16,
+ 10227, 8405, 40,
+ 10227, 8405, 58,
+ 10227, 8405, 72,
+ 10227, 8405, 92,
+ 10227, 8405, 100,
+ 10227, 8405, 116,
+ 10227, 8405, 138,
+ 10227, 8405, 162,
+ 10227, 8405, 196,
+ 10227, 8405, 216,
+ 10227, 8405, 236,
+ 10227, 8405, 266,
+ 10227, 8405, 292,
+ 10227, 8405, 306,
+ 10227, 8405, 332,
+ 10227, 8405, 364,
+ 10227, 8405, 392,
+ 10227, 8405, 440,
+ 10227, 8405, 462,
+ 10227, 8405, 510,
+ 10227, 8405, 524,
+ 10227, 8405, 556,
+ 10227, 8405, 606,
+ 10227, 8405, 610,
+ 10227, 8405, 652,
+ 10227, 8405, 670,
+ 10227, 8405, 792,
+ 10227, 8405, 884,
+ 10227, 8405, 974,
+ 10227, 8405, 996,
+ 10227, 8405, 1260,
+ 10227, 8405, 1512,
+ 10227, 8405, 1612,
+ 10227, 8405, 1796,
+ 10227, 8405, 2030,
+ 10227, 8405, 2076,
+ 10227, 8405, 2126,
+ 10227, 8405, 2212,
+ 10227, 8405, 2438,
+ 10227, 8405, 2516,
+ 10227, 8405, 2678,
+ 10227, 8405, 2746,
+ 10227, 8405, 4016,
+ 10227, 8405, 4320,
+ 10227, 8405, 4748,
+ 10227, 8405, 5994,
+ 10231, 9513, 2170,
+ 10231, 9513, 2540,
+ 10231, 9513, 2670,
+ 10231, 9513, 2778,
+ 10231, 9513, 4200,
+ 10231, 9513, 4214,
+ 10231, 9513, 5190,
+ 10231, 9513, 6722,
+ 10231, 9513, 7508,
+ 10231, 9513, 7694,
+ 10231, 9513, 8820,
+ 10231, 9513, 8876,
+ 10241, 1177, 2681, 3276,
+ 10241, 1177, 2681, 6110,
+ 10241, 1177, 2681, 8192,
+ 10241, 1177, 2681, 8251, 6116,
+ 10241, 1177, 2681, 8333, 4830,
+ 10241, 1177, 2681, 8971, 7812,
+ 10241, 1177, 2681, 9395, 7639, 10344,
+ 10241, 1177, 2681, 9893, 9786,
+ 10241, 1177, 2681, 9934,
+ 10241, 1177, 2681, 9953, 4194,
+ 10241, 1177, 2681, 9963, 8290,
+ 10241, 1177, 2681, 10323, 8436,
+ 10241, 1177, 2681, 10680,
+ 10241, 1177, 2681, 11199, 6716,
+ 10241, 1177, 6131, 439, 2681, 9148,
+ 10241, 1177, 6383, 11454,
+ 10241, 1177, 6868,
+ 10241, 1177, 6877, 7388,
+ 10241, 1177, 6877, 8790,
+ 10241, 1177, 6877, 11732,
+ 10241, 1177, 6877, 13000,
+ 10241, 1177, 6995, 7738,
+ 10241, 1177, 7187, 9118,
+ 10241, 1177, 7348,
+ 10241, 1177, 7593, 8790,
+ 10241, 1177, 7593, 13000,
+ 10241, 1177, 7987, 11454,
+ 10241, 1177, 7999, 9784,
+ 10241, 1177, 8071, 569, 4944,
+ 10241, 1177, 8642,
+ 10241, 1177, 9341, 10632,
+ 10241, 1177, 9478,
+ 10241, 1177, 9613, 8898,
+ 10241, 1177, 9630,
+ 10241, 1177, 9832,
+ 10241, 1177, 9878,
+ 10241, 1177, 9954,
+ 10241, 1177, 9992,
+ 10241, 1177, 10146,
+ 10241, 1177, 10252,
+ 10241, 1177, 10458,
+ 10241, 1177, 10638,
+ 10241, 1177, 10689, 6796,
+ 10241, 1177, 10698,
+ 10241, 1177, 10793, 429, 2681, 7100,
+ 10241, 1177, 10998,
+ 10241, 1177, 11013, 10632,
+ 10241, 1177, 11056,
+ 10241, 1177, 11058,
+ 10241, 1177, 11247, 6416,
+ 10241, 1177, 11481, 91, 2681, 10732,
+ 10241, 1177, 11482,
+ 10241, 1177, 11614,
+ 10241, 1177, 11628,
+ 10241, 1177, 11678,
+ 10241, 1177, 11702,
+ 10241, 1177, 11704,
+ 10241, 1177, 11756,
+ 10241, 1177, 11836,
+ 10241, 1177, 11930,
+ 10241, 1177, 11938,
+ 10241, 1177, 12100,
+ 10241, 1177, 12414,
+ 10241, 1177, 12918,
+ 10243, 8405, 0,
+ 10243, 8405, 8,
+ 10243, 8405, 16,
+ 10243, 8405, 26,
+ 10243, 8405, 28,
+ 10243, 8405, 40,
+ 10243, 8405, 100,
+ 10243, 8405, 102,
+ 10243, 8405, 106,
+ 10243, 8405, 108,
+ 10243, 8405, 112,
+ 10243, 8405, 138,
+ 10243, 8405, 142,
+ 10243, 8405, 144,
+ 10243, 8405, 150,
+ 10243, 8405, 152,
+ 10243, 8405, 216,
+ 10243, 8405, 220,
+ 10243, 8405, 224,
+ 10243, 8405, 228,
+ 10243, 8405, 230,
+ 10243, 8405, 236,
+ 10243, 8405, 238,
+ 10243, 8405, 242,
+ 10243, 8405, 246,
+ 10243, 8405, 250,
+ 10243, 8405, 306,
+ 10243, 8405, 310,
+ 10243, 8405, 314,
+ 10243, 8405, 322,
+ 10243, 8405, 326,
+ 10243, 8405, 364,
+ 10243, 8405, 368,
+ 10243, 8405, 374,
+ 10243, 8405, 380,
+ 10243, 8405, 384,
+ 10243, 8405, 392,
+ 10243, 8405, 396,
+ 10243, 8405, 404,
+ 10243, 8405, 412,
+ 10243, 8405, 416,
+ 10243, 8405, 462,
+ 10243, 8405, 468,
+ 10243, 8405, 476,
+ 10243, 8405, 480,
+ 10243, 8405, 486,
+ 10243, 8405, 510,
+ 10243, 8405, 512,
+ 10243, 8405, 514,
+ 10243, 8405, 516,
+ 10243, 8405, 520,
+ 10243, 8405, 524,
+ 10243, 8405, 526,
+ 10243, 8405, 532,
+ 10243, 8405, 536,
+ 10243, 8405, 546,
+ 10243, 8405, 556,
+ 10243, 8405, 560,
+ 10243, 8405, 564,
+ 10243, 8405, 568,
+ 10243, 8405, 576,
+ 10243, 8405, 618,
+ 10243, 8405, 622,
+ 10243, 8405, 626,
+ 10243, 8405, 630,
+ 10243, 8405, 632,
+ 10243, 8405, 652,
+ 10243, 8405, 660,
+ 10243, 8405, 664,
+ 10243, 8405, 670,
+ 10243, 8405, 672,
+ 10243, 8405, 676,
+ 10243, 8405, 678,
+ 10243, 8405, 680,
+ 10243, 8405, 7593, 0,
+ 10243, 8405, 7593, 8,
+ 10243, 8405, 7593, 16,
+ 10243, 8405, 7593, 28,
+ 10243, 8405, 7593, 40,
+ 10243, 8405, 7593, 306,
+ 10243, 8405, 7593, 310,
+ 10243, 8405, 7593, 576,
+ 10243, 8405, 7593, 622,
+ 10243, 8405, 7593, 652,
+ 10243, 8405, 7593, 660,
+ 10243, 8405, 7593, 664,
+ 10243, 8921, 11067, 4926,
+ 10243, 9165, 6224,
+ 10243, 11067, 4926,
+ 10256,
+ 10257, 9495, 6121, 10677, 760,
+ 10260,
+ 10261, 6121, 7711, 5758,
+ 10261, 6121, 7768,
+ 10261, 6121, 8153, 8758,
+ 10261, 6121, 9546,
+ 10261, 6121, 10666,
+ 10261, 6121, 11097, 6435, 6121, 4530,
+ 10261, 6121, 12492,
+ 10261, 7939, 1, 7383, 10374,
+ 10261, 9015, 6121, 7580,
+ 10261, 10982,
+ 10265, 9610,
+ 10267, 2163, 5758,
+ 10267, 4841, 36,
+ 10267, 10469, 4926,
+ 10267, 10670,
+ 10267, 12017, 4926,
+ 10267, 12064,
+ 10277, 11663, 10539, 8774,
+ 10283, 8405, 0,
+ 10283, 8405, 8,
+ 10283, 8405, 16,
+ 10283, 8405, 26,
+ 10283, 8405, 28,
+ 10283, 8405, 40,
+ 10283, 8405, 100,
+ 10283, 8405, 102,
+ 10283, 8405, 106,
+ 10283, 8405, 108,
+ 10283, 8405, 112,
+ 10283, 8405, 138,
+ 10283, 8405, 142,
+ 10283, 8405, 144,
+ 10283, 8405, 150,
+ 10283, 8405, 152,
+ 10283, 8405, 216,
+ 10283, 8405, 220,
+ 10283, 8405, 224,
+ 10283, 8405, 228,
+ 10283, 8405, 230,
+ 10283, 8405, 236,
+ 10283, 8405, 238,
+ 10283, 8405, 242,
+ 10283, 8405, 246,
+ 10283, 8405, 250,
+ 10283, 8405, 306,
+ 10283, 8405, 310,
+ 10283, 8405, 314,
+ 10283, 8405, 322,
+ 10283, 8405, 326,
+ 10283, 8405, 364,
+ 10283, 8405, 368,
+ 10283, 8405, 374,
+ 10283, 8405, 380,
+ 10283, 8405, 384,
+ 10283, 8405, 392,
+ 10283, 8405, 396,
+ 10283, 8405, 404,
+ 10283, 8405, 412,
+ 10283, 8405, 416,
+ 10283, 8405, 462,
+ 10283, 8405, 468,
+ 10283, 8405, 476,
+ 10283, 8405, 480,
+ 10283, 8405, 486,
+ 10283, 8405, 510,
+ 10283, 8405, 512,
+ 10283, 8405, 514,
+ 10283, 8405, 516,
+ 10283, 8405, 520,
+ 10283, 8405, 524,
+ 10283, 8405, 526,
+ 10283, 8405, 532,
+ 10283, 8405, 536,
+ 10283, 8405, 546,
+ 10283, 8405, 556,
+ 10283, 8405, 560,
+ 10283, 8405, 564,
+ 10283, 8405, 568,
+ 10283, 8405, 576,
+ 10283, 8405, 610,
+ 10283, 8405, 612,
+ 10283, 8405, 614,
+ 10283, 8405, 616,
+ 10283, 8405, 618,
+ 10283, 8405, 622,
+ 10283, 8405, 626,
+ 10283, 8405, 630,
+ 10283, 8405, 632,
+ 10283, 8405, 652,
+ 10283, 8405, 660,
+ 10283, 8405, 664,
+ 10283, 8405, 670,
+ 10283, 8405, 672,
+ 10283, 8405, 676,
+ 10283, 8405, 678,
+ 10283, 8405, 680,
+ 10283, 8405, 7593, 0,
+ 10283, 8405, 7593, 8,
+ 10283, 8405, 7593, 16,
+ 10283, 8405, 7593, 28,
+ 10283, 8405, 7593, 40,
+ 10283, 8405, 7593, 236,
+ 10283, 8405, 7593, 238,
+ 10283, 8405, 7593, 242,
+ 10283, 8405, 7593, 246,
+ 10283, 8405, 7593, 250,
+ 10283, 8405, 7593, 306,
+ 10283, 8405, 7593, 310,
+ 10283, 8405, 7593, 326,
+ 10283, 8405, 7593, 384,
+ 10283, 8405, 7593, 416,
+ 10283, 8405, 7593, 510,
+ 10283, 8405, 7593, 512,
+ 10283, 8405, 7593, 514,
+ 10283, 8405, 7593, 516,
+ 10283, 8405, 7593, 520,
+ 10283, 8405, 7593, 532,
+ 10283, 8405, 7593, 546,
+ 10283, 8405, 7593, 568,
+ 10283, 8405, 7593, 576,
+ 10283, 8405, 7593, 622,
+ 10283, 8405, 7593, 652,
+ 10283, 8405, 7593, 660,
+ 10283, 8405, 7593, 664,
+ 10283, 8473, 1044,
+ 10283, 8921, 11067, 4926,
+ 10283, 9165, 4772,
+ 10283, 11067, 4926,
+ 10286,
+ 10297, 2638,
+ 10321, 8774,
+ 10327, 114,
+ 10327, 6408,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 601, 721, 4848,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 601, 721, 7442,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 4117, 721, 4848,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 4117, 721, 7442,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 4849, 721, 600,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 4849, 721, 4116,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 7443, 721, 600,
+ 10327, 6409, 6121, 5385, 735, 8165, 275, 6435, 10441, 7443, 721, 4116,
+ 10327, 6409, 9537, 4848,
+ 10327, 7443, 6409, 6121, 1044,
+ 10333, 2779, 8709, 5387, 4894,
+ 10333, 2779, 8709, 8328,
+ 10333, 4895, 5387, 2779, 8708,
+ 10333, 4895, 5387, 7550,
+ 10333, 6516,
+ 10333, 7551, 5387, 4894,
+ 10333, 9796,
+ 10333, 11164,
+ 10333, 11358,
+ 10339, 8405, 601, 5876,
+ 10339, 8405, 601, 10716,
+ 10339, 8405, 604,
+ 10339, 8405, 1045, 7580,
+ 10339, 8405, 1045, 10677, 760,
+ 10339, 8405, 1045, 11649, 760,
+ 10339, 8405, 1109, 1809, 5964,
+ 10339, 8405, 1109, 4423, 5964,
+ 10339, 8405, 1809, 601, 10716,
+ 10339, 8405, 1809, 4117, 10716,
+ 10339, 8405, 1809, 4849, 6434,
+ 10339, 8405, 1809, 4849, 10716,
+ 10339, 8405, 1809, 5550,
+ 10339, 8405, 1809, 5965, 760,
+ 10339, 8405, 1809, 6379, 7908,
+ 10339, 8405, 1809, 6875, 7908,
+ 10339, 8405, 1809, 7443, 10716,
+ 10339, 8405, 1809, 7708,
+ 10339, 8405, 1809, 8151, 5965, 760,
+ 10339, 8405, 1809, 8151, 11095, 5965, 760,
+ 10339, 8405, 1809, 8432,
+ 10339, 8405, 1809, 10267, 12017, 4926,
+ 10339, 8405, 1809, 10677, 4876,
+ 10339, 8405, 1809, 11095, 5965, 760,
+ 10339, 8405, 1809, 11449, 7908,
+ 10339, 8405, 1911, 5965, 760,
+ 10339, 8405, 1911, 8151, 5965, 760,
+ 10339, 8405, 1911, 8151, 11095, 5965, 760,
+ 10339, 8405, 1911, 11095, 5965, 760,
+ 10339, 8405, 3071, 10799, 5965, 4926,
+ 10339, 8405, 4117, 5876,
+ 10339, 8405, 4117, 10716,
+ 10339, 8405, 4389, 11859, 6610,
+ 10339, 8405, 4423, 5965, 760,
+ 10339, 8405, 4423, 8151, 5965, 760,
+ 10339, 8405, 4423, 8151, 11095, 5965, 760,
+ 10339, 8405, 4423, 11095, 5965, 760,
+ 10339, 8405, 4849, 4389, 5550,
+ 10339, 8405, 4849, 10716,
+ 10339, 8405, 5385, 7530,
+ 10339, 8405, 5445, 5758,
+ 10339, 8405, 6179, 10799, 5965, 4926,
+ 10339, 8405, 6379, 7908,
+ 10339, 8405, 6485, 1809, 5964,
+ 10339, 8405, 6485, 4423, 5964,
+ 10339, 8405, 6610,
+ 10339, 8405, 6623, 7908,
+ 10339, 8405, 6875, 7908,
+ 10339, 8405, 7121, 7443, 8077, 6408,
+ 10339, 8405, 7173, 5758,
+ 10339, 8405, 7390,
+ 10339, 8405, 7443, 4389, 5550,
+ 10339, 8405, 7443, 10716,
+ 10339, 8405, 7530,
+ 10339, 8405, 7551, 8167, 5758,
+ 10339, 8405, 7593, 0,
+ 10339, 8405, 7593, 2,
+ 10339, 8405, 7593, 4,
+ 10339, 8405, 7593, 5, 6121, 3966,
+ 10339, 8405, 7593, 6,
+ 10339, 8405, 7593, 8,
+ 10339, 8405, 7593, 10,
+ 10339, 8405, 7593, 12,
+ 10339, 8405, 7593, 14,
+ 10339, 8405, 7593, 15, 6121, 4530,
+ 10339, 8405, 7593, 17, 6121, 8758,
+ 10339, 8405, 7593, 18,
+ 10339, 8405, 7593, 19, 6121, 12426,
+ 10339, 8405, 7593, 20,
+ 10339, 8405, 7593, 22,
+ 10339, 8405, 7593, 23, 6121, 9553, 4530,
+ 10339, 8405, 7593, 23, 6121, 11215, 4530,
+ 10339, 8405, 7593, 24,
+ 10339, 8405, 7593, 25, 6121, 4530,
+ 10339, 8405, 7593, 27, 6121, 4849, 4530,
+ 10339, 8405, 7593, 27, 6121, 11215, 4530,
+ 10339, 8405, 7593, 28,
+ 10339, 8405, 7593, 30,
+ 10339, 8405, 7593, 34,
+ 10339, 8405, 7593, 36,
+ 10339, 8405, 7593, 37, 6121, 4530,
+ 10339, 8405, 7593, 38,
+ 10339, 8405, 7593, 39, 6121, 9553, 4530,
+ 10339, 8405, 7593, 40,
+ 10339, 8405, 7593, 41, 760,
+ 10339, 8405, 7593, 42,
+ 10339, 8405, 7593, 43, 6121, 4530,
+ 10339, 8405, 7593, 44,
+ 10339, 8405, 7593, 46,
+ 10339, 8405, 7593, 48,
+ 10339, 8405, 7593, 50,
+ 10339, 8405, 7593, 51, 6121, 3966,
+ 10339, 8405, 7593, 51, 6121, 11215, 4530,
+ 10339, 8405, 7593, 710,
+ 10339, 8405, 7593, 888,
+ 10339, 8405, 7593, 1110,
+ 10339, 8405, 7593, 1124,
+ 10339, 8405, 7593, 1130,
+ 10339, 8405, 7593, 1138,
+ 10339, 8405, 7593, 2216,
+ 10339, 8405, 7593, 2725, 4389, 28,
+ 10339, 8405, 7593, 3774,
+ 10339, 8405, 7593, 4614,
+ 10339, 8405, 7593, 5385, 8,
+ 10339, 8405, 7593, 5385, 28,
+ 10339, 8405, 7593, 6406,
+ 10339, 8405, 7593, 6674,
+ 10339, 8405, 7593, 6824,
+ 10339, 8405, 7593, 6879, 2216,
+ 10339, 8405, 7593, 6879, 6824,
+ 10339, 8405, 7593, 7494,
+ 10339, 8405, 7593, 7682,
+ 10339, 8405, 7593, 7981, 28,
+ 10339, 8405, 7593, 8005, 4389, 28,
+ 10339, 8405, 7593, 8679, 12,
+ 10339, 8405, 7593, 8869, 0,
+ 10339, 8405, 7593, 8869, 14,
+ 10339, 8405, 7593, 8869, 16,
+ 10339, 8405, 7593, 8869, 24,
+ 10339, 8405, 7593, 8869, 25, 6121, 4895, 1760,
+ 10339, 8405, 7593, 8869, 34,
+ 10339, 8405, 7593, 8869, 35, 6121, 4530,
+ 10339, 8405, 7593, 8869, 42,
+ 10339, 8405, 7593, 8869, 66,
+ 10339, 8405, 7593, 8869, 5385, 8,
+ 10339, 8405, 7593, 8869, 6406,
+ 10339, 8405, 7593, 9063, 16,
+ 10339, 8405, 7593, 9063, 17, 6121, 8758,
+ 10339, 8405, 7593, 9063, 22,
+ 10339, 8405, 7593, 9063, 26,
+ 10339, 8405, 7593, 9063, 40,
+ 10339, 8405, 7593, 9063, 10267, 34,
+ 10339, 8405, 7593, 9185, 19, 6121, 8758,
+ 10339, 8405, 7593, 9808,
+ 10339, 8405, 7593, 10489, 5385, 8,
+ 10339, 8405, 7593, 10489, 9313, 5836,
+ 10339, 8405, 7593, 10523, 40,
+ 10339, 8405, 8153, 7390,
+ 10339, 8405, 8153, 11424,
+ 10339, 8405, 8432,
+ 10339, 8405, 8473, 6875, 7908,
+ 10339, 8405, 8473, 8153, 6379, 7908,
+ 10339, 8405, 8473, 8153, 6875, 7908,
+ 10339, 8405, 8631, 601, 6434,
+ 10339, 8405, 8631, 4117, 6434,
+ 10339, 8405, 8631, 6610,
+ 10339, 8405, 8631, 10267, 12017, 4926,
+ 10339, 8405, 8631, 12017, 4926,
+ 10339, 8405, 8645, 4530,
+ 10339, 8405, 8755, 721, 1809, 5964,
+ 10339, 8405, 8755, 721, 4423, 5964,
+ 10339, 8405, 8869, 6616,
+ 10339, 8405, 9063, 0,
+ 10339, 8405, 9063, 2,
+ 10339, 8405, 9063, 6,
+ 10339, 8405, 9063, 8,
+ 10339, 8405, 9063, 12,
+ 10339, 8405, 9063, 14,
+ 10339, 8405, 9063, 16,
+ 10339, 8405, 9063, 18,
+ 10339, 8405, 9063, 20,
+ 10339, 8405, 9063, 22,
+ 10339, 8405, 9063, 24,
+ 10339, 8405, 9063, 26,
+ 10339, 8405, 9063, 28,
+ 10339, 8405, 9063, 30,
+ 10339, 8405, 9063, 34,
+ 10339, 8405, 9063, 38,
+ 10339, 8405, 9063, 40,
+ 10339, 8405, 9063, 42,
+ 10339, 8405, 9063, 44,
+ 10339, 8405, 9063, 66,
+ 10339, 8405, 9063, 450,
+ 10339, 8405, 9063, 7981, 2,
+ 10339, 8405, 9063, 10489, 8,
+ 10339, 8405, 9063, 10489, 26,
+ 10339, 8405, 9079, 4849, 4389, 5550,
+ 10339, 8405, 9079, 7443, 4389, 5550,
+ 10339, 8405, 9089, 5965, 3071, 506,
+ 10339, 8405, 9089, 5965, 3071, 520,
+ 10339, 8405, 9089, 5965, 3071, 5432,
+ 10339, 8405, 9089, 5965, 3071, 7514,
+ 10339, 8405, 9089, 5965, 6179, 506,
+ 10339, 8405, 9089, 5965, 6179, 520,
+ 10339, 8405, 9089, 5965, 6179, 5432,
+ 10339, 8405, 9089, 5965, 6179, 7514,
+ 10339, 8405, 9313, 5836,
+ 10339, 8405, 9828,
+ 10339, 8405, 9977, 176,
+ 10339, 8405, 10221, 1992,
+ 10339, 8405, 10489, 6616,
+ 10339, 8405, 10489, 9313, 5836,
+ 10339, 8405, 10677, 4876,
+ 10339, 8405, 10985, 5965, 760,
+ 10339, 8405, 10985, 8151, 5965, 760,
+ 10339, 8405, 10985, 8151, 11095, 5965, 760,
+ 10339, 8405, 10985, 11095, 5965, 760,
+ 10339, 8405, 11424,
+ 10339, 8405, 11449, 7908,
+ 10339, 8405, 11625, 5965, 760,
+ 10339, 8405, 11625, 8151, 5965, 760,
+ 10339, 8405, 11625, 8151, 11095, 5965, 760,
+ 10339, 8405, 11625, 11095, 5965, 760,
+ 10339, 8405, 11859, 6610,
+ 10339, 8405, 12380,
+ 10343, 1177, 3070,
+ 10343, 1177, 6178,
+ 10343, 1177, 6716,
+ 10346,
+ 10350,
+ 10351, 7768,
+ 10351, 13060,
+ 10353, 6689, 8696,
+ 10357, 9095, 6689, 6260,
+ 10357, 9095, 8525, 8162,
+ 10357, 9095, 8525, 8874,
+ 10357, 9095, 8525, 8876,
+ 10357, 9095, 8525, 9286,
+ 10357, 9095, 8525, 9700,
+ 10357, 9095, 8525, 10150,
+ 10357, 9095, 8525, 10200,
+ 10357, 9095, 8525, 10360,
+ 10357, 9095, 8525, 10622,
+ 10357, 9095, 8525, 11232,
+ 10363, 7608,
+ 10379, 428,
+ 10383, 6622,
+ 10385, 6505, 5830,
+ 10385, 6879, 6622,
+ 10385, 7089, 6622,
+ 10385, 7821, 5830,
+ 10388,
+ 10411, 568,
+ 10411, 6121, 7709, 10374,
+ 10411, 6121, 11649, 8758,
+ 10429, 4927, 5668,
+ 10429, 4927, 8153, 5668,
+ 10429, 8153, 4399, 4926,
+ 10429, 8405, 0,
+ 10429, 8405, 8,
+ 10429, 8405, 16,
+ 10429, 8405, 28,
+ 10429, 8405, 40,
+ 10429, 8405, 100,
+ 10429, 8405, 116,
+ 10429, 8405, 138,
+ 10429, 8405, 162,
+ 10429, 8405, 196,
+ 10429, 8405, 216,
+ 10429, 8405, 236,
+ 10429, 8405, 292,
+ 10429, 8405, 306,
+ 10429, 8405, 332,
+ 10429, 8405, 364,
+ 10429, 8405, 392,
+ 10429, 8405, 462,
+ 10429, 8405, 496,
+ 10429, 8405, 510,
+ 10429, 8405, 524,
+ 10429, 8405, 556,
+ 10429, 8405, 622,
+ 10429, 8405, 638,
+ 10429, 8405, 652,
+ 10429, 8405, 670,
+ 10429, 8405, 884,
+ 10429, 8405, 974,
+ 10429, 8405, 1080,
+ 10429, 8405, 1250,
+ 10429, 8405, 1612,
+ 10429, 8405, 2030,
+ 10429, 8405, 2076,
+ 10429, 8405, 2126,
+ 10429, 8405, 2212,
+ 10429, 8405, 2516,
+ 10429, 8405, 2678,
+ 10429, 8405, 2732,
+ 10429, 8405, 2746,
+ 10429, 8405, 3146,
+ 10429, 8405, 5978,
+ 10429, 8405, 5994,
+ 10429, 8405, 7593, 0,
+ 10429, 8405, 8921, 236,
+ 10429, 8405, 10707, 652,
+ 10429, 8405, 10721, 196,
+ 10429, 8405, 11395, 2516,
+ 10429, 8405, 11900,
+ 10429, 8717, 4399, 4926,
+ 10429, 11257, 8405, 510,
+ 10429, 11257, 8405, 622,
+ 10429, 11257, 8405, 652,
+ 10429, 11843, 8405, 510,
+ 10431, 4093, 5759, 457, 3696,
+ 10431, 4093, 5759, 778,
+ 10431, 4093, 5759, 824,
+ 10431, 4093, 5759, 862,
+ 10431, 4093, 5759, 1780,
+ 10431, 4093, 5759, 2386,
+ 10431, 4093, 5759, 2498,
+ 10431, 4093, 5759, 3948,
+ 10431, 4093, 5759, 3954,
+ 10431, 4093, 5759, 4114,
+ 10431, 4093, 5759, 4418,
+ 10431, 4093, 5759, 4536,
+ 10431, 4093, 5759, 4874,
+ 10431, 4093, 5759, 5700,
+ 10431, 4093, 5759, 6090,
+ 10431, 4093, 5759, 6107, 3706,
+ 10431, 4093, 5759, 6434,
+ 10431, 4093, 5759, 6533, 1760,
+ 10431, 4093, 5759, 6574,
+ 10431, 4093, 5759, 6712,
+ 10431, 4093, 5759, 6794,
+ 10431, 4093, 5759, 7379, 5968,
+ 10431, 4093, 5759, 7586,
+ 10431, 4093, 5759, 7593, 742,
+ 10431, 4093, 5759, 7702,
+ 10431, 4093, 5759, 7752,
+ 10431, 4093, 5759, 7830,
+ 10431, 4093, 5759, 8068,
+ 10431, 4093, 5759, 8126,
+ 10431, 4093, 5759, 8270,
+ 10431, 4093, 5759, 8296,
+ 10431, 4093, 5759, 8599, 4398,
+ 10431, 4093, 5759, 8704,
+ 10431, 4093, 5759, 9036,
+ 10431, 4093, 5759, 9064,
+ 10431, 4093, 5759, 9462,
+ 10431, 4093, 5759, 9568,
+ 10431, 4093, 5759, 9638,
+ 10431, 4093, 5759, 10216,
+ 10431, 4093, 5759, 10316,
+ 10431, 4093, 5759, 10546,
+ 10431, 4093, 5759, 10611, 4398,
+ 10431, 4093, 5759, 10744,
+ 10431, 4093, 5759, 10753, 7378,
+ 10431, 4093, 5759, 10767, 9525, 8758,
+ 10431, 4093, 5759, 11718,
+ 10433, 5830,
+ 10445, 11054,
+ 10452,
+ 10453, 445, 6741, 568,
+ 10453, 445, 11621, 568,
+ 10453, 835, 2091, 11621, 568,
+ 10453, 6377, 2091, 6741, 568,
+ 10453, 6377, 2091, 7919, 6741, 568,
+ 10453, 6377, 7919, 6741, 568,
+ 10453, 6377, 8167, 5758,
+ 10453, 6377, 12345, 2091, 6741, 568,
+ 10453, 6377, 12345, 8167, 5758,
+ 10453, 7767, 10476,
+ 10455, 5392,
+ 10461, 4876,
+ 10465, 7121, 4848,
+ 10465, 7121, 7442,
+ 10465, 7773, 4848,
+ 10465, 7773, 4849, 721, 7121, 4849, 721, 7121, 7442,
+ 10465, 7773, 4849, 721, 7121, 7442,
+ 10465, 7773, 4849, 721, 7773, 7443, 721, 7121, 4848,
+ 10465, 7773, 4849, 721, 7773, 7443, 721, 7121, 7442,
+ 10465, 7773, 7442,
+ 10465, 7773, 7443, 721, 7121, 4848,
+ 10465, 7773, 7443, 721, 7121, 4849, 721, 7121, 7442,
+ 10469, 4926,
+ 10469, 12017, 4926,
+ 10470,
+ 10475, 7337, 8774,
+ 10486,
+ 10489, 2091, 5758,
+ 10489, 6408,
+ 10489, 6409, 6121, 10666,
+ 10489, 6731, 2510,
+ 10489, 7390,
+ 10489, 7708,
+ 10489, 7709, 8166,
+ 10489, 8153, 7390,
+ 10489, 8153, 7391, 11195, 4926,
+ 10489, 8153, 8759, 2091, 5758,
+ 10489, 8231, 12108,
+ 10489, 8849, 7390,
+ 10489, 9595, 5758,
+ 10489, 9641, 8225, 6907, 8022,
+ 10489, 10469, 4926,
+ 10489, 11224,
+ 10489, 11767, 9063, 22,
+ 10504,
+ 10513, 7821, 5830,
+ 10513, 7821, 7089, 6622,
+ 10513, 7821, 8056,
+ 10514,
+ 10529, 9898,
+ 10553, 11621, 568,
+ 10574,
+ 10575, 445, 6741, 568,
+ 10575, 445, 11621, 568,
+ 10575, 835, 2091, 11621, 568,
+ 10575, 6377, 2091, 6741, 568,
+ 10575, 6377, 2091, 7919, 6741, 568,
+ 10575, 6377, 7919, 6741, 568,
+ 10575, 6377, 8167, 5758,
+ 10575, 6377, 12345, 2091, 6741, 568,
+ 10575, 6377, 12345, 8167, 5758,
+ 10575, 7767, 10476,
+ 10579, 428,
+ 10579, 429, 445, 6741, 568,
+ 10579, 429, 445, 6741, 569, 6121, 1045, 6376,
+ 10579, 429, 6121, 2091, 6741, 568,
+ 10579, 429, 6377, 2091, 6741, 568,
+ 10579, 429, 6377, 7709, 10374,
+ 10579, 429, 6377, 7919, 6741, 568,
+ 10579, 429, 6377, 8167, 5758,
+ 10579, 6121, 1044,
+ 10579, 6121, 5445, 5759, 6490,
+ 10579, 6121, 13061, 5759, 6490,
+ 10579, 6377, 8762,
+ 10579, 6377, 10578,
+ 10579, 6377, 11097, 6434,
+ 10579, 7991, 721, 8329, 115, 3993, 6121, 8762,
+ 10579, 7991, 8762,
+ 10579, 11183, 9718,
+ 10604,
+ 10607, 7803, 5759, 16,
+ 10607, 7803, 5759, 40,
+ 10607, 8405, 0,
+ 10607, 8405, 16,
+ 10607, 8405, 40,
+ 10607, 8405, 100,
+ 10607, 8405, 138,
+ 10607, 8405, 216,
+ 10607, 8405, 306,
+ 10607, 8405, 332,
+ 10607, 8405, 364,
+ 10607, 8405, 392,
+ 10607, 8405, 462,
+ 10607, 8405, 524,
+ 10607, 8405, 556,
+ 10607, 8405, 622,
+ 10607, 8405, 652,
+ 10607, 8405, 2030,
+ 10629, 8405, 652,
+ 10629, 8405, 656,
+ 10629, 8405, 664,
+ 10629, 8405, 3006,
+ 10629, 8405, 3008,
+ 10629, 8405, 3010,
+ 10629, 8405, 3014,
+ 10629, 8405, 3016,
+ 10629, 8405, 3018,
+ 10629, 8405, 3020,
+ 10629, 8405, 3022,
+ 10629, 8405, 3024,
+ 10629, 8405, 3026,
+ 10629, 8405, 3028,
+ 10629, 8405, 3030,
+ 10629, 8405, 3032,
+ 10629, 8405, 3034,
+ 10629, 8405, 3036,
+ 10629, 8405, 3038,
+ 10629, 8405, 3040,
+ 10629, 8405, 3042,
+ 10629, 8405, 3044,
+ 10629, 8405, 3046,
+ 10629, 8405, 3062,
+ 10629, 8405, 3291, 6170,
+ 10629, 8405, 6162,
+ 10629, 8405, 6164,
+ 10629, 8405, 6166,
+ 10629, 8405, 6168,
+ 10629, 8405, 6170,
+ 10629, 8405, 6174,
+ 10629, 8405, 6176,
+ 10629, 8405, 6180,
+ 10629, 8405, 6182,
+ 10629, 8405, 6184,
+ 10629, 8405, 6186,
+ 10629, 8405, 6190,
+ 10629, 8405, 6192,
+ 10629, 8405, 6194,
+ 10629, 8405, 7844,
+ 10629, 8405, 7846,
+ 10629, 8405, 7848,
+ 10629, 8405, 7989, 8973, 3018,
+ 10629, 8405, 7989, 8973, 3020,
+ 10629, 8405, 8863, 3018,
+ 10629, 8405, 8863, 3022,
+ 10629, 8405, 8863, 3032,
+ 10629, 8405, 8863, 6170,
+ 10629, 8405, 8863, 6172,
+ 10629, 8405, 8863, 6176,
+ 10629, 8405, 8863, 6178,
+ 10629, 8405, 8863, 6192,
+ 10629, 8405, 8985, 6192,
+ 10629, 8405, 11849, 3046,
+ 10629, 10339, 8405, 12965, 4926,
+ 10631, 5759, 186,
+ 10643, 6121, 1045, 6376,
+ 10643, 6121, 8689, 91, 8004,
+ 10643, 6121, 10666,
+ 10644,
+ 10661, 6129, 9178,
+ 10661, 8405, 16,
+ 10661, 8405, 40,
+ 10661, 8405, 246,
+ 10661, 8405, 486,
+ 10661, 8405, 568,
+ 10661, 8405, 632,
+ 10661, 8405, 680,
+ 10661, 8405, 710,
+ 10661, 8405, 1578,
+ 10661, 8405, 1612,
+ 10661, 8405, 1892,
+ 10661, 8405, 2110,
+ 10661, 8405, 2574,
+ 10661, 8405, 2674,
+ 10661, 8405, 3080,
+ 10661, 8405, 3252,
+ 10661, 8405, 3774,
+ 10661, 8405, 4066,
+ 10661, 8405, 4538,
+ 10661, 8405, 5494,
+ 10661, 8405, 5624,
+ 10661, 8405, 5698,
+ 10661, 8405, 6262,
+ 10661, 8405, 6674,
+ 10661, 8405, 6822,
+ 10661, 8405, 6850,
+ 10661, 8405, 7080,
+ 10661, 8405, 7422,
+ 10661, 8405, 7482,
+ 10661, 8405, 8814,
+ 10664,
+ 10665, 6121, 5525, 6706,
+ 10670,
+ 10674,
+ 10677, 761, 6121, 11649, 8758,
+ 10677, 761, 7991, 7443, 10642,
+ 10677, 761, 8153, 4849, 11378,
+ 10677, 761, 8849, 7443, 11378,
+ 10677, 4215, 4112,
+ 10677, 4719, 8641, 4926,
+ 10677, 4719, 8641, 4927, 7121, 4388,
+ 10677, 4719, 8641, 4927, 7773, 4388,
+ 10677, 4719, 8641, 6121, 8921, 7605, 4926,
+ 10677, 4719, 8641, 6121, 8921, 7605, 4927, 7773, 4388,
+ 10677, 4876,
+ 10677, 4877, 6121, 8057, 6376,
+ 10677, 4877, 6121, 8057, 6490,
+ 10677, 4877, 6121, 8473, 1044,
+ 10677, 4877, 10982,
+ 10677, 4923, 6121, 8759, 5758,
+ 10677, 7708,
+ 10677, 8963, 4876,
+ 10677, 10154,
+ 10677, 12043, 11067, 4926,
+ 10679, 8744,
+ 10701, 569, 2681, 9746,
+ 10708,
+ 10719, 5238,
+ 10722,
+ 10737, 5758,
+ 10749, 9483, 8775, 1078,
+ 10749, 9483, 8775, 1135, 12010,
+ 10749, 9483, 8775, 3268,
+ 10749, 9483, 8775, 4619, 2020,
+ 10749, 9483, 8775, 4619, 9884,
+ 10749, 9483, 8775, 5048,
+ 10749, 9483, 8775, 5921, 1583, 9000,
+ 10749, 9483, 8775, 5970,
+ 10749, 9483, 8775, 6203, 726,
+ 10749, 9483, 8775, 6203, 4728,
+ 10749, 9483, 8775, 6387, 3274,
+ 10749, 9483, 8775, 6387, 4952,
+ 10749, 9483, 8775, 6387, 5449, 3274,
+ 10749, 9483, 8775, 6387, 5449, 6866,
+ 10749, 9483, 8775, 6387, 6866,
+ 10749, 9483, 8775, 6387, 8470,
+ 10749, 9483, 8775, 6387, 9886,
+ 10749, 9483, 8775, 6387, 11022,
+ 10749, 9483, 8775, 6419, 1135, 2020,
+ 10749, 9483, 8775, 6419, 12010,
+ 10749, 9483, 8775, 6426,
+ 10749, 9483, 8775, 6581, 7892,
+ 10749, 9483, 8775, 6581, 8366,
+ 10749, 9483, 8775, 6581, 8728,
+ 10749, 9483, 8775, 6690,
+ 10749, 9483, 8775, 6691, 9884,
+ 10749, 9483, 8775, 7092,
+ 10749, 9483, 8775, 7329, 2020,
+ 10749, 9483, 8775, 7329, 6690,
+ 10749, 9483, 8775, 7329, 12010,
+ 10749, 9483, 8775, 7398,
+ 10749, 9483, 8775, 7434,
+ 10749, 9483, 8775, 7660,
+ 10749, 9483, 8775, 7678,
+ 10749, 9483, 8775, 7679, 7928,
+ 10749, 9483, 8775, 7688,
+ 10749, 9483, 8775, 7788,
+ 10749, 9483, 8775, 7837, 8364,
+ 10749, 9483, 8775, 8094,
+ 10749, 9483, 8775, 8115, 3269, 1079, 10018,
+ 10749, 9483, 8775, 8115, 10815, 195, 10018,
+ 10749, 9483, 8775, 8115, 11863, 5377, 10018,
+ 10749, 9483, 8775, 8115, 12085, 9775, 10018,
+ 10749, 9483, 8775, 8115, 12372,
+ 10749, 9483, 8775, 8115, 13020,
+ 10749, 9483, 8775, 8171, 12110,
+ 10749, 9483, 8775, 8171, 12904,
+ 10749, 9483, 8775, 8199, 9703, 8053, 7786,
+ 10749, 9483, 8775, 8237, 17, 8949, 13020,
+ 10749, 9483, 8775, 8237, 5055, 6978,
+ 10749, 9483, 8775, 8237, 8506,
+ 10749, 9483, 8775, 8237, 9451, 8053, 10008,
+ 10749, 9483, 8775, 8237, 9451, 8053, 11684,
+ 10749, 9483, 8775, 8237, 9703, 8053, 8776,
+ 10749, 9483, 8775, 8237, 9703, 10007, 144,
+ 10749, 9483, 8775, 8237, 9884,
+ 10749, 9483, 8775, 8237, 9885, 9999, 6980,
+ 10749, 9483, 8775, 8237, 10811, 144,
+ 10749, 9483, 8775, 8237, 10811, 310,
+ 10749, 9483, 8775, 8237, 10811, 405, 726,
+ 10749, 9483, 8775, 8237, 10811, 405, 4728,
+ 10749, 9483, 8775, 8237, 10811, 462,
+ 10749, 9483, 8775, 8237, 10811, 678,
+ 10749, 9483, 8775, 8237, 10811, 5048,
+ 10749, 9483, 8775, 8237, 11609, 10710,
+ 10749, 9483, 8775, 8249, 8114,
+ 10749, 9483, 8775, 8249, 8948,
+ 10749, 9483, 8775, 8265, 2021, 726,
+ 10749, 9483, 8775, 8265, 2021, 4728,
+ 10749, 9483, 8775, 8265, 9884,
+ 10749, 9483, 8775, 8265, 12989, 6680,
+ 10749, 9483, 8775, 8265, 12989, 9888,
+ 10749, 9483, 8775, 8321, 8801, 11038,
+ 10749, 9483, 8775, 8341, 10648,
+ 10749, 9483, 8775, 8364,
+ 10749, 9483, 8775, 8365, 726,
+ 10749, 9483, 8775, 8365, 4728,
+ 10749, 9483, 8775, 8397, 1079, 9090,
+ 10749, 9483, 8775, 8397, 4159, 9092,
+ 10749, 9483, 8775, 8397, 7735, 9090,
+ 10749, 9483, 8775, 8397, 9359, 9092,
+ 10749, 9483, 8775, 8397, 10615, 9090,
+ 10749, 9483, 8775, 8475, 4618,
+ 10749, 9483, 8775, 8537, 2020,
+ 10749, 9483, 8775, 8537, 9884,
+ 10749, 9483, 8775, 8538,
+ 10749, 9483, 8775, 8557, 9884,
+ 10749, 9483, 8775, 8587, 2020,
+ 10749, 9483, 8775, 8587, 9884,
+ 10749, 9483, 8775, 8614,
+ 10749, 9483, 8775, 8686,
+ 10749, 9483, 8775, 8687, 2020,
+ 10749, 9483, 8775, 8748,
+ 10749, 9483, 8775, 8798,
+ 10749, 9483, 8775, 8850,
+ 10749, 9483, 8775, 8909, 2020,
+ 10749, 9483, 8775, 8909, 6690,
+ 10749, 9483, 8775, 8909, 12010,
+ 10749, 9483, 8775, 8949, 3269, 1079, 10018,
+ 10749, 9483, 8775, 8949, 10815, 195, 10018,
+ 10749, 9483, 8775, 8949, 11863, 5377, 10018,
+ 10749, 9483, 8775, 8949, 12085, 9775, 10018,
+ 10749, 9483, 8775, 8949, 12372,
+ 10749, 9483, 8775, 8954,
+ 10749, 9483, 8775, 9009, 144,
+ 10749, 9483, 8775, 9009, 216,
+ 10749, 9483, 8775, 9009, 310,
+ 10749, 9483, 8775, 9009, 404,
+ 10749, 9483, 8775, 9009, 462,
+ 10749, 9483, 8775, 9009, 678,
+ 10749, 9483, 8775, 9009, 2882,
+ 10749, 9483, 8775, 9080,
+ 10749, 9483, 8775, 9160,
+ 10749, 9483, 8775, 9260,
+ 10749, 9483, 8775, 9267, 1583, 8237, 2882,
+ 10749, 9483, 8775, 9350,
+ 10749, 9483, 8775, 9399, 2021, 726,
+ 10749, 9483, 8775, 9399, 2021, 4728,
+ 10749, 9483, 8775, 9399, 2021, 4954,
+ 10749, 9483, 8775, 9399, 9884,
+ 10749, 9483, 8775, 9412,
+ 10749, 9483, 8775, 9415, 2020,
+ 10749, 9483, 8775, 9415, 3250,
+ 10749, 9483, 8775, 9415, 9884,
+ 10749, 9483, 8775, 9420,
+ 10749, 9483, 8775, 9440,
+ 10749, 9483, 8775, 9584,
+ 10749, 9483, 8775, 9586,
+ 10749, 9483, 8775, 9620,
+ 10749, 9483, 8775, 9740,
+ 10749, 9483, 8775, 9741, 9874,
+ 10749, 9483, 8775, 9755, 2020,
+ 10749, 9483, 8775, 9755, 4957, 9742,
+ 10749, 9483, 8775, 9755, 9884,
+ 10749, 9483, 8775, 9756,
+ 10749, 9483, 8775, 9774,
+ 10749, 9483, 8775, 9790,
+ 10749, 9483, 8775, 9815, 9884,
+ 10749, 9483, 8775, 9848,
+ 10749, 9483, 8775, 9873, 2020,
+ 10749, 9483, 8775, 9873, 9884,
+ 10749, 9483, 8775, 9876,
+ 10749, 9483, 8775, 9936,
+ 10749, 9483, 8775, 9943, 2020,
+ 10749, 9483, 8775, 9943, 9884,
+ 10749, 9483, 8775, 10005, 3269, 7168,
+ 10749, 9483, 8775, 10005, 3269, 8464,
+ 10749, 9483, 8775, 10005, 6690,
+ 10749, 9483, 8775, 10005, 9778,
+ 10749, 9483, 8775, 10010,
+ 10749, 9483, 8775, 10011, 12989, 6680,
+ 10749, 9483, 8775, 10011, 12989, 9889, 726,
+ 10749, 9483, 8775, 10011, 12989, 9889, 4728,
+ 10749, 9483, 8775, 10013, 222,
+ 10749, 9483, 8775, 10164,
+ 10749, 9483, 8775, 10250,
+ 10749, 9483, 8775, 10284,
+ 10749, 9483, 8775, 10288,
+ 10749, 9483, 8775, 10289, 3250,
+ 10749, 9483, 8775, 10290,
+ 10749, 9483, 8775, 10292,
+ 10749, 9483, 8775, 10325, 3249, 8613, 6978,
+ 10749, 9483, 8775, 10325, 3249, 9997, 6978,
+ 10749, 9483, 8775, 10325, 7785, 6978,
+ 10749, 9483, 8775, 10325, 8613, 6978,
+ 10749, 9483, 8775, 10325, 8855, 6978,
+ 10749, 9483, 8775, 10325, 9429, 6978,
+ 10749, 9483, 8775, 10325, 9597, 6978,
+ 10749, 9483, 8775, 10325, 9597, 10617, 6978,
+ 10749, 9483, 8775, 10325, 9997, 6978,
+ 10749, 9483, 8775, 10325, 10617, 6978,
+ 10749, 9483, 8775, 10325, 10617, 9429, 6978,
+ 10749, 9483, 8775, 10325, 11372,
+ 10749, 9483, 8775, 10325, 11743, 6978,
+ 10749, 9483, 8775, 10412,
+ 10749, 9483, 8775, 10418,
+ 10749, 9483, 8775, 10419, 2020,
+ 10749, 9483, 8775, 10500,
+ 10749, 9483, 8775, 10525, 7946,
+ 10749, 9483, 8775, 10525, 7947, 9174,
+ 10749, 9483, 8775, 10525, 7947, 10646,
+ 10749, 9483, 8775, 10525, 7947, 11852,
+ 10749, 9483, 8775, 10525, 9778,
+ 10749, 9483, 8775, 10525, 9779, 9174,
+ 10749, 9483, 8775, 10525, 9779, 10646,
+ 10749, 9483, 8775, 10525, 9779, 11852,
+ 10749, 9483, 8775, 10618,
+ 10749, 9483, 8775, 10649, 2020,
+ 10749, 9483, 8775, 10649, 3250,
+ 10749, 9483, 8775, 10649, 9884,
+ 10749, 9483, 8775, 10813, 450,
+ 10749, 9483, 8775, 10974,
+ 10749, 9483, 8775, 10991, 10008,
+ 10749, 9483, 8775, 10991, 11684,
+ 10749, 9483, 8775, 10991, 12360,
+ 10749, 9483, 8775, 11046,
+ 10749, 9483, 8775, 11074,
+ 10749, 9483, 8775, 11078,
+ 10749, 9483, 8775, 11079, 2021, 726,
+ 10749, 9483, 8775, 11079, 2021, 4728,
+ 10749, 9483, 8775, 11079, 2021, 4954,
+ 10749, 9483, 8775, 11079, 9884,
+ 10749, 9483, 8775, 11082,
+ 10749, 9483, 8775, 11149, 2020,
+ 10749, 9483, 8775, 11149, 9884,
+ 10749, 9483, 8775, 11188,
+ 10749, 9483, 8775, 11189, 2020,
+ 10749, 9483, 8775, 11348,
+ 10749, 9483, 8775, 11374,
+ 10749, 9483, 8775, 11402,
+ 10749, 9483, 8775, 11403, 6690,
+ 10749, 9483, 8775, 11416,
+ 10749, 9483, 8775, 11421, 8801, 11038,
+ 10749, 9483, 8775, 11421, 11347, 2020,
+ 10749, 9483, 8775, 11422,
+ 10749, 9483, 8775, 11423, 2020,
+ 10749, 9483, 8775, 11423, 6690,
+ 10749, 9483, 8775, 11602,
+ 10749, 9483, 8775, 11643, 27, 7928,
+ 10749, 9483, 8775, 11643, 27, 9172,
+ 10749, 9483, 8775, 11654,
+ 10749, 9483, 8775, 11656,
+ 10749, 9483, 8775, 12111, 2020,
+ 10749, 9483, 8775, 12111, 9884,
+ 10749, 9483, 8775, 12112,
+ 10749, 9483, 8775, 12113, 2020,
+ 10749, 9483, 8775, 12113, 9884,
+ 10749, 9483, 8775, 12120,
+ 10749, 9483, 8775, 12365, 1126,
+ 10749, 9483, 8775, 12365, 1134,
+ 10749, 9483, 8775, 12400,
+ 10749, 9483, 8775, 12474,
+ 10749, 9483, 8775, 12872,
+ 10749, 9483, 8775, 12904,
+ 10749, 9483, 8775, 13052,
+ 10749, 9483, 8775, 13082,
+ 10749, 9483, 8775, 13084,
+ 10749, 9483, 8775, 13186,
+ 10749, 9483, 8775, 13206,
+ 10749, 9483, 8775, 13208,
+ 10749, 9483, 8775, 13216,
+ 10749, 9483, 8775, 13220,
+ 10749, 9483, 8775, 13222,
+ 10749, 9483, 8775, 13352,
+ 10749, 9483, 8775, 13400,
+ 10749, 9483, 8775, 13404,
+ 10750,
+ 10759, 2690,
+ 10763, 2725, 11791, 6434,
+ 10763, 5385, 8057, 6434,
+ 10763, 8065, 8057, 6434,
+ 10763, 8241, 8057, 6434,
+ 10763, 9115, 10260,
+ 10763, 10260,
+ 10767, 47, 6376,
+ 10767, 47, 6490,
+ 10767, 283, 6490,
+ 10767, 601, 5877, 6490,
+ 10767, 603, 6376,
+ 10767, 605, 6376,
+ 10767, 1045, 6376,
+ 10767, 1045, 6377, 7442,
+ 10767, 1045, 6490,
+ 10767, 1809, 4876,
+ 10767, 2091, 7709, 6376,
+ 10767, 4117, 5877, 6490,
+ 10767, 4215, 4113, 6376,
+ 10767, 4531, 6376,
+ 10767, 4536,
+ 10767, 4849, 4389, 5551, 6376,
+ 10767, 4849, 4389, 5551, 6490,
+ 10767, 4849, 5877, 6490,
+ 10767, 4849, 6409, 6376,
+ 10767, 4849, 6409, 6490,
+ 10767, 4849, 6435, 6376,
+ 10767, 4849, 6435, 6490,
+ 10767, 4849, 7443, 6435, 6376,
+ 10767, 4849, 7443, 6435, 6490,
+ 10767, 4849, 9327, 6376,
+ 10767, 4849, 10717, 6376,
+ 10767, 4849, 10717, 6490,
+ 10767, 4895, 8153, 9719, 9548,
+ 10767, 4895, 8759, 9548,
+ 10767, 4895, 9719, 9548,
+ 10767, 4895, 10677, 4877, 9548,
+ 10767, 5445, 5759, 6490,
+ 10767, 5551, 6376,
+ 10767, 5551, 6490,
+ 10767, 5551, 9548,
+ 10767, 6115, 8015, 6376,
+ 10767, 6379, 5965, 4926,
+ 10767, 6379, 7908,
+ 10767, 6379, 7909, 6490,
+ 10767, 6516,
+ 10767, 6517, 6490,
+ 10767, 6546,
+ 10767, 6547, 6490,
+ 10767, 6617, 6376,
+ 10767, 6617, 6377, 7442,
+ 10767, 6617, 6490,
+ 10767, 6875, 5965, 4926,
+ 10767, 6875, 7908,
+ 10767, 6875, 7909, 6490,
+ 10767, 6879, 9412,
+ 10767, 6879, 9483, 9796,
+ 10767, 6879, 9483, 11164,
+ 10767, 6879, 9483, 11358,
+ 10767, 6879, 10809, 7724,
+ 10767, 6879, 12120,
+ 10767, 6879, 13036,
+ 10767, 7089, 7593, 8405, 0,
+ 10767, 7089, 7593, 8405, 4,
+ 10767, 7089, 7593, 8405, 5, 9072,
+ 10767, 7089, 7593, 8405, 6,
+ 10767, 7089, 7593, 8405, 8,
+ 10767, 7089, 7593, 8405, 12,
+ 10767, 7089, 7593, 8405, 14,
+ 10767, 7089, 7593, 8405, 16,
+ 10767, 7089, 7593, 8405, 20,
+ 10767, 7089, 7593, 8405, 22,
+ 10767, 7089, 7593, 8405, 24,
+ 10767, 7089, 7593, 8405, 26,
+ 10767, 7089, 7593, 8405, 28,
+ 10767, 7089, 7593, 8405, 34,
+ 10767, 7089, 7593, 8405, 35, 6490,
+ 10767, 7089, 7593, 8405, 35, 9642,
+ 10767, 7089, 7593, 8405, 36,
+ 10767, 7089, 7593, 8405, 38,
+ 10767, 7089, 7593, 8405, 40,
+ 10767, 7089, 7593, 8405, 42,
+ 10767, 7089, 7593, 8405, 46,
+ 10767, 7089, 7593, 8405, 50,
+ 10767, 7089, 7593, 8405, 66,
+ 10767, 7089, 7593, 8405, 82,
+ 10767, 7089, 7593, 8405, 94,
+ 10767, 7089, 7593, 8405, 1130,
+ 10767, 7089, 7593, 8405, 4895, 36,
+ 10767, 7089, 7593, 8405, 9365, 6,
+ 10767, 7089, 7593, 8405, 10997, 5385, 1, 6376,
+ 10767, 7089, 8405, 7593, 9063, 12,
+ 10767, 7089, 8405, 7593, 9063, 22,
+ 10767, 7089, 8405, 7593, 9063, 24,
+ 10767, 7089, 8405, 7593, 9063, 26,
+ 10767, 7089, 8405, 7593, 9063, 34,
+ 10767, 7173, 5759, 6490,
+ 10767, 7443, 4389, 5551, 6376,
+ 10767, 7443, 4389, 5551, 6490,
+ 10767, 7443, 5877, 6490,
+ 10767, 7443, 6435, 6376,
+ 10767, 7443, 6435, 6490,
+ 10767, 7443, 9327, 6376,
+ 10767, 7443, 10717, 721, 601, 10717, 6490,
+ 10767, 7443, 10717, 721, 4117, 10717, 6490,
+ 10767, 7443, 10717, 6376,
+ 10767, 7443, 10717, 6490,
+ 10767, 7551, 8759, 9548,
+ 10767, 7551, 9719, 9548,
+ 10767, 7551, 10677, 4877, 9548,
+ 10767, 7601, 6490,
+ 10767, 7695, 4113, 6376,
+ 10767, 7708,
+ 10767, 7709, 6490,
+ 10767, 7709, 9548,
+ 10767, 7919, 6741, 569, 6376,
+ 10767, 8015, 6376,
+ 10767, 8015, 6490,
+ 10767, 8151, 6379, 7908,
+ 10767, 8151, 6875, 7908,
+ 10767, 8153, 1809, 4876,
+ 10767, 8153, 5551, 6490,
+ 10767, 8153, 6379, 7908,
+ 10767, 8153, 6516,
+ 10767, 8153, 6517, 6490,
+ 10767, 8153, 6875, 7908,
+ 10767, 8153, 7708,
+ 10767, 8153, 7709, 4849, 4388,
+ 10767, 8153, 7709, 7443, 4388,
+ 10767, 8153, 8432,
+ 10767, 8153, 8433, 6490,
+ 10767, 8153, 10267, 6516,
+ 10767, 8153, 10388,
+ 10767, 8153, 10677, 4877, 6376,
+ 10767, 8153, 10677, 4877, 6490,
+ 10767, 8153, 10677, 8759, 9548,
+ 10767, 8153, 11449, 6376,
+ 10767, 8153, 11765, 6435, 6490,
+ 10767, 8167, 5759, 6490,
+ 10767, 8432,
+ 10767, 8433, 4849, 4388,
+ 10767, 8433, 6490,
+ 10767, 8433, 7443, 4388,
+ 10767, 8534,
+ 10767, 8535, 6376,
+ 10767, 8745, 6490,
+ 10767, 8849, 10668,
+ 10767, 8869, 6617, 6376,
+ 10767, 8963, 6376,
+ 10767, 8963, 6490,
+ 10767, 8999, 8774,
+ 10767, 9072,
+ 10767, 9284,
+ 10767, 9633, 9719, 9548,
+ 10767, 9663, 6490,
+ 10767, 9811, 6435, 6490,
+ 10767, 9899, 6376,
+ 10767, 9899, 6490,
+ 10767, 9977, 2671, 10335, 5758,
+ 10767, 9977, 6655, 10438,
+ 10767, 9977, 7399, 10438,
+ 10767, 9977, 7716,
+ 10767, 9977, 7804,
+ 10767, 9977, 8342,
+ 10767, 9977, 8405, 0,
+ 10767, 9977, 8405, 28,
+ 10767, 9977, 8405, 102,
+ 10767, 9977, 8405, 142,
+ 10767, 9977, 8405, 172,
+ 10767, 9977, 8405, 174,
+ 10767, 9977, 8405, 176,
+ 10767, 9977, 8405, 182,
+ 10767, 9977, 8405, 184,
+ 10767, 9977, 8405, 236,
+ 10767, 9977, 8405, 258,
+ 10767, 9977, 8405, 306,
+ 10767, 9977, 8405, 468,
+ 10767, 9977, 8405, 560,
+ 10767, 9977, 8405, 612,
+ 10767, 9977, 8405, 664,
+ 10767, 9977, 8405, 672,
+ 10767, 9977, 8405, 807, 3096,
+ 10767, 9977, 8405, 886,
+ 10767, 9977, 8405, 1262,
+ 10767, 9977, 8405, 2516,
+ 10767, 9977, 8405, 2734,
+ 10767, 9977, 8405, 3038,
+ 10767, 9977, 8405, 3148,
+ 10767, 9977, 8405, 4198,
+ 10767, 9977, 8405, 6696,
+ 10767, 9977, 8405, 6748,
+ 10767, 9977, 8405, 7522,
+ 10767, 9977, 8405, 8425, 3096,
+ 10767, 9977, 8405, 10269, 0,
+ 10767, 9977, 8405, 10269, 807, 3096,
+ 10767, 9977, 8405, 11127, 592,
+ 10767, 9977, 9345, 10335, 5758,
+ 10767, 9977, 9345, 11363, 5758,
+ 10767, 9977, 9578,
+ 10767, 9977, 10335, 5758,
+ 10767, 9977, 10442,
+ 10767, 9977, 10625, 10335, 5758,
+ 10767, 9977, 13062,
+ 10767, 10223, 8330,
+ 10767, 10267, 6516,
+ 10767, 10267, 6517, 6490,
+ 10767, 10267, 8015, 6490,
+ 10767, 10267, 8153, 3273, 6490,
+ 10767, 10301, 4849, 4388,
+ 10767, 10301, 7443, 4388,
+ 10767, 10388,
+ 10767, 10489, 6617, 6376,
+ 10767, 10677, 4877, 6376,
+ 10767, 10677, 4877, 6490,
+ 10767, 10677, 7708,
+ 10767, 10763, 5551, 9548,
+ 10767, 10763, 6435, 6376,
+ 10767, 10804,
+ 10767, 10805, 6490,
+ 10767, 10969, 8056,
+ 10767, 10969, 8057, 10728,
+ 10767, 10969, 8354,
+ 10767, 10969, 8676,
+ 10767, 10969, 8744,
+ 10767, 10969, 8899, 10441, 10642,
+ 10767, 10969, 9158,
+ 10767, 11097, 6435, 9548,
+ 10767, 11097, 9327, 6121, 3713, 10958,
+ 10767, 11215, 4531, 6490,
+ 10767, 11449, 7908,
+ 10767, 11449, 7909, 6490,
+ 10767, 11459, 8432,
+ 10767, 11647, 6376,
+ 10767, 11765, 9327, 6121, 3713, 10958,
+ 10767, 11845, 4926,
+ 10767, 11900,
+ 10767, 12107, 4531, 6490,
+ 10767, 12394,
+ 10767, 12416,
+ 10767, 12470,
+ 10767, 12498,
+ 10767, 12500,
+ 10767, 12502,
+ 10767, 12901, 5551, 9548,
+ 10767, 12901, 6435, 6376,
+ 10767, 13356,
+ 10767, 13360,
+ 10767, 13365, 8921, 7605, 4926,
+ 10767, 13365, 12341, 7605, 4926,
+ 10771, 6121, 1045, 6376,
+ 10783, 5758,
+ 10789, 5759, 0,
+ 10789, 5759, 1, 7711, 0,
+ 10789, 5759, 1, 7711, 236,
+ 10789, 5759, 1, 7711, 750,
+ 10789, 5759, 1, 7711, 1482,
+ 10789, 5759, 1, 7711, 2486,
+ 10789, 5759, 1, 7711, 4241, 5898,
+ 10789, 5759, 1, 7711, 5030,
+ 10789, 5759, 1, 7711, 7077, 4358,
+ 10789, 5759, 8,
+ 10789, 5759, 9, 5387, 9, 2111, 5387, 2110,
+ 10789, 5759, 9, 7711, 2194,
+ 10789, 5759, 16,
+ 10789, 5759, 17, 0,
+ 10789, 5759, 40,
+ 10789, 5759, 41, 41, 40,
+ 10789, 5759, 41, 1304,
+ 10789, 5759, 41, 5387, 41, 41, 10489, 5387, 41, 10488,
+ 10789, 5759, 41, 5387, 41, 463, 5387, 463, 1221, 5387, 1220,
+ 10789, 5759, 41, 5387, 41, 2593, 5387, 2592,
+ 10789, 5759, 54,
+ 10789, 5759, 60,
+ 10789, 5759, 61, 4358,
+ 10789, 5759, 61, 7711, 41, 5445, 41, 5445, 40,
+ 10789, 5759, 61, 7711, 236,
+ 10789, 5759, 61, 7711, 1212,
+ 10789, 5759, 61, 7711, 1483, 4358,
+ 10789, 5759, 61, 7711, 3280,
+ 10789, 5759, 61, 7711, 4125, 4358,
+ 10789, 5759, 61, 7711, 4241, 5898,
+ 10789, 5759, 61, 7711, 4606,
+ 10789, 5759, 61, 7711, 7074,
+ 10789, 5759, 61, 7711, 7534,
+ 10789, 5759, 64,
+ 10789, 5759, 74,
+ 10789, 5759, 75, 7711, 6746,
+ 10789, 5759, 75, 7711, 7545, 5445, 4338,
+ 10789, 5759, 76,
+ 10789, 5759, 77, 7711, 76,
+ 10789, 5759, 77, 7711, 236,
+ 10789, 5759, 77, 7711, 314,
+ 10789, 5759, 77, 7711, 2518,
+ 10789, 5759, 77, 7711, 2836,
+ 10789, 5759, 77, 7711, 4088,
+ 10789, 5759, 77, 7711, 4338,
+ 10789, 5759, 77, 7711, 4706,
+ 10789, 5759, 80,
+ 10789, 5759, 81, 5387, 80,
+ 10789, 5759, 81, 5445, 5043, 9732,
+ 10789, 5759, 81, 5445, 5043, 10377, 81, 5445, 5042,
+ 10789, 5759, 81, 7695, 7710,
+ 10789, 5759, 100,
+ 10789, 5759, 106,
+ 10789, 5759, 107, 7711, 0,
+ 10789, 5759, 107, 7711, 1220,
+ 10789, 5759, 107, 7711, 1483, 4358,
+ 10789, 5759, 112,
+ 10789, 5759, 113, 5387, 113, 60,
+ 10789, 5759, 113, 5387, 113, 596,
+ 10789, 5759, 113, 9967, 112,
+ 10789, 5759, 138,
+ 10789, 5759, 144,
+ 10789, 5759, 152,
+ 10789, 5759, 153, 4358,
+ 10789, 5759, 153, 5387, 152,
+ 10789, 5759, 153, 9684,
+ 10789, 5759, 158,
+ 10789, 5759, 159, 7711, 1, 5445, 237, 5445, 138,
+ 10789, 5759, 159, 7711, 40,
+ 10789, 5759, 159, 7711, 374,
+ 10789, 5759, 159, 7711, 1220,
+ 10789, 5759, 159, 7711, 2488,
+ 10789, 5759, 159, 7711, 2518,
+ 10789, 5759, 172,
+ 10789, 5759, 176,
+ 10789, 5759, 177, 7711, 368,
+ 10789, 5759, 177, 7711, 4240,
+ 10789, 5759, 177, 7711, 4241, 5898,
+ 10789, 5759, 177, 9732,
+ 10789, 5759, 177, 9967, 176,
+ 10789, 5759, 177, 10377, 176,
+ 10789, 5759, 216,
+ 10789, 5759, 217, 4358,
+ 10789, 5759, 224,
+ 10789, 5759, 225, 7711, 8,
+ 10789, 5759, 225, 7711, 40,
+ 10789, 5759, 225, 9967, 224,
+ 10789, 5759, 230,
+ 10789, 5759, 231, 9967, 230,
+ 10789, 5759, 236,
+ 10789, 5759, 237, 4358,
+ 10789, 5759, 237, 5898,
+ 10789, 5759, 242,
+ 10789, 5759, 243, 7711, 40,
+ 10789, 5759, 243, 7711, 736,
+ 10789, 5759, 243, 7711, 750,
+ 10789, 5759, 243, 7711, 1206,
+ 10789, 5759, 243, 7711, 1632,
+ 10789, 5759, 243, 7711, 2110,
+ 10789, 5759, 243, 7711, 2518,
+ 10789, 5759, 243, 7711, 3280,
+ 10789, 5759, 243, 7711, 4094,
+ 10789, 5759, 250,
+ 10789, 5759, 256,
+ 10789, 5759, 262,
+ 10789, 5759, 270,
+ 10789, 5759, 271, 7711, 4241, 5898,
+ 10789, 5759, 272,
+ 10789, 5759, 273, 7711, 5880,
+ 10789, 5759, 273, 9732,
+ 10789, 5759, 273, 9967, 272,
+ 10789, 5759, 273, 10377, 272,
+ 10789, 5759, 274,
+ 10789, 5759, 280,
+ 10789, 5759, 306,
+ 10789, 5759, 307, 7711, 0,
+ 10789, 5759, 307, 7711, 40,
+ 10789, 5759, 307, 7711, 64,
+ 10789, 5759, 307, 7711, 65, 5445, 1682,
+ 10789, 5759, 307, 7711, 106,
+ 10789, 5759, 307, 7711, 216,
+ 10789, 5759, 307, 7711, 224,
+ 10789, 5759, 307, 7711, 230,
+ 10789, 5759, 307, 7711, 272,
+ 10789, 5759, 307, 7711, 314,
+ 10789, 5759, 307, 7711, 340,
+ 10789, 5759, 307, 7711, 354,
+ 10789, 5759, 307, 7711, 368,
+ 10789, 5759, 307, 7711, 369, 5445, 152,
+ 10789, 5759, 307, 7711, 369, 5445, 224,
+ 10789, 5759, 307, 7711, 369, 5445, 560,
+ 10789, 5759, 307, 7711, 374,
+ 10789, 5759, 307, 7711, 375, 5445, 7284,
+ 10789, 5759, 307, 7711, 396,
+ 10789, 5759, 307, 7711, 476,
+ 10789, 5759, 307, 7711, 520,
+ 10789, 5759, 307, 7711, 524,
+ 10789, 5759, 307, 7711, 580,
+ 10789, 5759, 307, 7711, 588,
+ 10789, 5759, 307, 7711, 676,
+ 10789, 5759, 307, 7711, 750,
+ 10789, 5759, 307, 7711, 760,
+ 10789, 5759, 307, 7711, 1212,
+ 10789, 5759, 307, 7711, 1220,
+ 10789, 5759, 307, 7711, 1221, 5445, 5663, 5445, 0,
+ 10789, 5759, 307, 7711, 1482,
+ 10789, 5759, 307, 7711, 1584,
+ 10789, 5759, 307, 7711, 1624,
+ 10789, 5759, 307, 7711, 2110,
+ 10789, 5759, 307, 7711, 2494,
+ 10789, 5759, 307, 7711, 2516,
+ 10789, 5759, 307, 7711, 2518,
+ 10789, 5759, 307, 7711, 2524,
+ 10789, 5759, 307, 7711, 2530,
+ 10789, 5759, 307, 7711, 2654,
+ 10789, 5759, 307, 7711, 2836,
+ 10789, 5759, 307, 7711, 3280,
+ 10789, 5759, 307, 7711, 4166,
+ 10789, 5759, 307, 7711, 4241, 5898,
+ 10789, 5759, 307, 7711, 4334,
+ 10789, 5759, 307, 7711, 4339, 5445, 2494,
+ 10789, 5759, 307, 7711, 4339, 9967, 4338,
+ 10789, 5759, 307, 7711, 4366,
+ 10789, 5759, 307, 7711, 5692,
+ 10789, 5759, 307, 7711, 6049, 7711, 462,
+ 10789, 5759, 307, 7711, 6464,
+ 10789, 5759, 307, 7711, 6746,
+ 10789, 5759, 307, 7711, 7648,
+ 10789, 5759, 314,
+ 10789, 5759, 315, 7711, 40,
+ 10789, 5759, 315, 7711, 588,
+ 10789, 5759, 315, 7711, 750,
+ 10789, 5759, 326,
+ 10789, 5759, 327, 5387, 243, 7711, 3281, 327, 5387, 243, 7711, 3280,
+ 10789, 5759, 332,
+ 10789, 5759, 340,
+ 10789, 5759, 354,
+ 10789, 5759, 355, 7711, 750,
+ 10789, 5759, 364,
+ 10789, 5759, 365, 4358,
+ 10789, 5759, 365, 7711, 5880,
+ 10789, 5759, 368,
+ 10789, 5759, 374,
+ 10789, 5759, 384,
+ 10789, 5759, 385, 5387, 384,
+ 10789, 5759, 392,
+ 10789, 5759, 396,
+ 10789, 5759, 397, 7711, 0,
+ 10789, 5759, 397, 7711, 588,
+ 10789, 5759, 397, 9684,
+ 10789, 5759, 404,
+ 10789, 5759, 405, 7711, 8,
+ 10789, 5759, 416,
+ 10789, 5759, 462,
+ 10789, 5759, 476,
+ 10789, 5759, 477, 7711, 0,
+ 10789, 5759, 477, 7711, 8,
+ 10789, 5759, 477, 7711, 16,
+ 10789, 5759, 477, 7711, 40,
+ 10789, 5759, 477, 7711, 60,
+ 10789, 5759, 477, 7711, 106,
+ 10789, 5759, 477, 7711, 112,
+ 10789, 5759, 477, 7711, 256,
+ 10789, 5759, 477, 7711, 580,
+ 10789, 5759, 477, 9967, 476,
+ 10789, 5759, 510,
+ 10789, 5759, 514,
+ 10789, 5759, 520,
+ 10789, 5759, 524,
+ 10789, 5759, 532,
+ 10789, 5759, 533, 4358,
+ 10789, 5759, 546,
+ 10789, 5759, 547, 5387, 546,
+ 10789, 5759, 556,
+ 10789, 5759, 557, 4358,
+ 10789, 5759, 557, 7711, 242,
+ 10789, 5759, 557, 7711, 374,
+ 10789, 5759, 557, 9898,
+ 10789, 5759, 560,
+ 10789, 5759, 561, 4358,
+ 10789, 5759, 564,
+ 10789, 5759, 565, 5898,
+ 10789, 5759, 576,
+ 10789, 5759, 580,
+ 10789, 5759, 584,
+ 10789, 5759, 588,
+ 10789, 5759, 589, 4358,
+ 10789, 5759, 589, 7711, 41, 5445, 41, 5445, 40,
+ 10789, 5759, 589, 7711, 41, 5445, 41, 5445, 41, 4358,
+ 10789, 5759, 589, 7711, 374,
+ 10789, 5759, 589, 7711, 750,
+ 10789, 5759, 589, 8374,
+ 10789, 5759, 589, 9684,
+ 10789, 5759, 589, 9685, 7711, 750,
+ 10789, 5759, 594,
+ 10789, 5759, 595, 7711, 40,
+ 10789, 5759, 595, 7711, 369, 5445, 138,
+ 10789, 5759, 595, 7711, 5662,
+ 10789, 5759, 595, 7711, 7074,
+ 10789, 5759, 596,
+ 10789, 5759, 597, 4358,
+ 10789, 5759, 602,
+ 10789, 5759, 603, 9684,
+ 10789, 5759, 603, 9967, 602,
+ 10789, 5759, 670,
+ 10789, 5759, 671, 5898,
+ 10789, 5759, 671, 9733, 7711, 1696,
+ 10789, 5759, 676,
+ 10789, 5759, 677, 5387, 676,
+ 10789, 5759, 680,
+ 10789, 5759, 702,
+ 10789, 5759, 703, 7711, 369, 5445, 176,
+ 10789, 5759, 703, 7711, 4241, 5898,
+ 10789, 5759, 703, 7711, 5662,
+ 10789, 5759, 703, 7711, 5880,
+ 10789, 5759, 703, 7711, 6464,
+ 10789, 5759, 736,
+ 10789, 5759, 737, 4703, 5898,
+ 10789, 5759, 737, 5387, 737, 5387, 736,
+ 10789, 5759, 737, 5387, 737, 5387, 737, 9967, 737, 5387, 737, 5387, 736,
+ 10789, 5759, 737, 5387, 737, 6013, 5387, 6013, 6013, 5387, 6013, 2194,
+ 10789, 5759, 737, 6313, 5898,
+ 10789, 5759, 750,
+ 10789, 5759, 754,
+ 10789, 5759, 755, 5387, 754,
+ 10789, 5759, 760,
+ 10789, 5759, 832,
+ 10789, 5759, 958,
+ 10789, 5759, 959, 8361, 7711, 1, 5445, 4928,
+ 10789, 5759, 959, 8361, 7711, 106,
+ 10789, 5759, 959, 8361, 7711, 216,
+ 10789, 5759, 959, 8361, 7711, 217, 5445, 4928,
+ 10789, 5759, 959, 8361, 7711, 224,
+ 10789, 5759, 959, 8361, 7711, 236,
+ 10789, 5759, 959, 8361, 7711, 280,
+ 10789, 5759, 959, 8361, 7711, 281, 5445, 354,
+ 10789, 5759, 959, 8361, 7711, 332,
+ 10789, 5759, 959, 8361, 7711, 354,
+ 10789, 5759, 959, 8361, 7711, 355, 5445, 7138,
+ 10789, 5759, 959, 8361, 7711, 396,
+ 10789, 5759, 959, 8361, 7711, 532,
+ 10789, 5759, 959, 8361, 7711, 581, 5445, 4334,
+ 10789, 5759, 959, 8361, 7711, 1304,
+ 10789, 5759, 959, 8361, 7711, 1584,
+ 10789, 5759, 959, 8361, 7711, 1822,
+ 10789, 5759, 959, 8361, 7711, 2195, 5445, 2194,
+ 10789, 5759, 959, 8361, 7711, 2836,
+ 10789, 5759, 959, 8361, 7711, 3256,
+ 10789, 5759, 959, 8361, 7711, 4334,
+ 10789, 5759, 959, 8361, 7711, 5880,
+ 10789, 5759, 959, 8361, 7711, 6464,
+ 10789, 5759, 962,
+ 10789, 5759, 966,
+ 10789, 5759, 1006,
+ 10789, 5759, 1010,
+ 10789, 5759, 1011, 7711, 2518,
+ 10789, 5759, 1012,
+ 10789, 5759, 1013, 8339, 41, 4359, 4094,
+ 10789, 5759, 1050,
+ 10789, 5759, 1051, 7711, 4166,
+ 10789, 5759, 1052,
+ 10789, 5759, 1054,
+ 10789, 5759, 1060,
+ 10789, 5759, 1202,
+ 10789, 5759, 1203, 5387, 1202,
+ 10789, 5759, 1203, 7711, 1, 5445, 139, 5445, 236,
+ 10789, 5759, 1203, 7711, 1, 5445, 236,
+ 10789, 5759, 1203, 7711, 1, 5445, 1482,
+ 10789, 5759, 1203, 7711, 40,
+ 10789, 5759, 1203, 7711, 80,
+ 10789, 5759, 1203, 7711, 138,
+ 10789, 5759, 1203, 7711, 144,
+ 10789, 5759, 1203, 7711, 172,
+ 10789, 5759, 1203, 7711, 173, 5445, 332,
+ 10789, 5759, 1203, 7711, 176,
+ 10789, 5759, 1203, 7711, 177, 7711, 4241, 5898,
+ 10789, 5759, 1203, 7711, 224,
+ 10789, 5759, 1203, 7711, 237, 5445, 355, 5445, 4166,
+ 10789, 5759, 1203, 7711, 243, 5445, 340,
+ 10789, 5759, 1203, 7711, 332,
+ 10789, 5759, 1203, 7711, 369, 5445, 176,
+ 10789, 5759, 1203, 7711, 374,
+ 10789, 5759, 1203, 7711, 462,
+ 10789, 5759, 1203, 7711, 588,
+ 10789, 5759, 1203, 7711, 589, 5445, 152,
+ 10789, 5759, 1203, 7711, 703, 5899, 5445, 2636,
+ 10789, 5759, 1203, 7711, 736,
+ 10789, 5759, 1203, 7711, 750,
+ 10789, 5759, 1203, 7711, 761, 5445, 510,
+ 10789, 5759, 1203, 7711, 832,
+ 10789, 5759, 1203, 7711, 833, 5445, 510,
+ 10789, 5759, 1203, 7711, 1011, 7711, 2518,
+ 10789, 5759, 1203, 7711, 1050,
+ 10789, 5759, 1203, 7711, 1220,
+ 10789, 5759, 1203, 7711, 1272,
+ 10789, 5759, 1203, 7711, 1273, 5445, 0,
+ 10789, 5759, 1203, 7711, 1344,
+ 10789, 5759, 1203, 7711, 1345, 5445, 332,
+ 10789, 5759, 1203, 7711, 1483, 4358,
+ 10789, 5759, 1203, 7711, 1499, 5445, 251, 5445, 736,
+ 10789, 5759, 1203, 7711, 1584,
+ 10789, 5759, 1203, 7711, 1624,
+ 10789, 5759, 1203, 7711, 1625, 5445, 1736,
+ 10789, 5759, 1203, 7711, 1683, 5445, 80,
+ 10789, 5759, 1203, 7711, 2110,
+ 10789, 5759, 1203, 7711, 2111, 5387, 2110,
+ 10789, 5759, 1203, 7711, 2488,
+ 10789, 5759, 1203, 7711, 2494,
+ 10789, 5759, 1203, 7711, 2518,
+ 10789, 5759, 1203, 7711, 2519, 5445, 2766,
+ 10789, 5759, 1203, 7711, 2584,
+ 10789, 5759, 1203, 7711, 3281, 5445, 1212,
+ 10789, 5759, 1203, 7711, 4241, 5898,
+ 10789, 5759, 1203, 7711, 4335, 5445, 546,
+ 10789, 5759, 1203, 7711, 4544,
+ 10789, 5759, 1203, 7711, 5692,
+ 10789, 5759, 1203, 7711, 5880,
+ 10789, 5759, 1203, 7711, 8338,
+ 10789, 5759, 1206,
+ 10789, 5759, 1207, 5387, 1207, 1221, 5387, 1220,
+ 10789, 5759, 1212,
+ 10789, 5759, 1213, 1207, 5387, 1207, 1221, 5387, 1220,
+ 10789, 5759, 1214,
+ 10789, 5759, 1216,
+ 10789, 5759, 1220,
+ 10789, 5759, 1272,
+ 10789, 5759, 1273, 5387, 1272,
+ 10789, 5759, 1273, 9967, 1272,
+ 10789, 5759, 1302,
+ 10789, 5759, 1303, 4358,
+ 10789, 5759, 1303, 7711, 1584,
+ 10789, 5759, 1303, 7711, 1585, 7711, 1483, 4358,
+ 10789, 5759, 1303, 7711, 2110,
+ 10789, 5759, 1303, 7711, 2489, 5445, 6012,
+ 10789, 5759, 1304,
+ 10789, 5759, 1305, 5387, 1305, 7122,
+ 10789, 5759, 1305, 7711, 1, 5445, 1696,
+ 10789, 5759, 1305, 7711, 1696,
+ 10789, 5759, 1308,
+ 10789, 5759, 1310,
+ 10789, 5759, 1311, 7711, 2518,
+ 10789, 5759, 1316,
+ 10789, 5759, 1344,
+ 10789, 5759, 1482,
+ 10789, 5759, 1483, 514,
+ 10789, 5759, 1483, 1006,
+ 10789, 5759, 1483, 4358,
+ 10789, 5759, 1483, 5387, 1483, 5703, 5387, 5703, 589, 5387, 588,
+ 10789, 5759, 1484,
+ 10789, 5759, 1498,
+ 10789, 5759, 1572,
+ 10789, 5759, 1573, 9967, 1572,
+ 10789, 5759, 1576,
+ 10789, 5759, 1584,
+ 10789, 5759, 1585, 7711, 1483, 4358,
+ 10789, 5759, 1586,
+ 10789, 5759, 1587, 7711, 750,
+ 10789, 5759, 1587, 9967, 1586,
+ 10789, 5759, 1624,
+ 10789, 5759, 1632,
+ 10789, 5759, 1682,
+ 10789, 5759, 1684,
+ 10789, 5759, 1685, 9817, 4212,
+ 10789, 5759, 1686,
+ 10789, 5759, 1688,
+ 10789, 5759, 1689, 4358,
+ 10789, 5759, 1690,
+ 10789, 5759, 1696,
+ 10789, 5759, 1697, 10377, 1696,
+ 10789, 5759, 1736,
+ 10789, 5759, 1737, 7711, 1736,
+ 10789, 5759, 1738,
+ 10789, 5759, 1739, 7711, 1696,
+ 10789, 5759, 1739, 7711, 1697, 5445, 520,
+ 10789, 5759, 1786,
+ 10789, 5759, 1812,
+ 10789, 5759, 1813, 5898,
+ 10789, 5759, 1813, 7711, 76,
+ 10789, 5759, 1813, 7711, 243, 7711, 750,
+ 10789, 5759, 1813, 7711, 272,
+ 10789, 5759, 1813, 7711, 314,
+ 10789, 5759, 1813, 7711, 333, 5445, 736,
+ 10789, 5759, 1813, 7711, 369, 5445, 176,
+ 10789, 5759, 1813, 7711, 396,
+ 10789, 5759, 1813, 7711, 416,
+ 10789, 5759, 1813, 7711, 533, 5445, 736,
+ 10789, 5759, 1813, 7711, 750,
+ 10789, 5759, 1813, 7711, 4166,
+ 10789, 5759, 1813, 7711, 4167, 5898,
+ 10789, 5759, 1813, 7711, 4241, 5898,
+ 10789, 5759, 1813, 7711, 4704,
+ 10789, 5759, 1813, 7711, 4706,
+ 10789, 5759, 1813, 7711, 4707, 5445, 736,
+ 10789, 5759, 1813, 7711, 5761, 5445, 112,
+ 10789, 5759, 1813, 7711, 6012,
+ 10789, 5759, 1813, 7711, 7074,
+ 10789, 5759, 1813, 9684,
+ 10789, 5759, 1813, 9732,
+ 10789, 5759, 1813, 9967, 1812,
+ 10789, 5759, 1813, 10377, 1812,
+ 10789, 5759, 1814,
+ 10789, 5759, 1818,
+ 10789, 5759, 1820,
+ 10789, 5759, 1822,
+ 10789, 5759, 1823, 5387, 1822,
+ 10789, 5759, 1823, 5387, 1823, 1221, 5387, 1220,
+ 10789, 5759, 1852,
+ 10789, 5759, 1856,
+ 10789, 5759, 1864,
+ 10789, 5759, 1896,
+ 10789, 5759, 1922,
+ 10789, 5759, 1950,
+ 10789, 5759, 1951, 4358,
+ 10789, 5759, 1980,
+ 10789, 5759, 1988,
+ 10789, 5759, 1989, 9520,
+ 10789, 5759, 2044,
+ 10789, 5759, 2054,
+ 10789, 5759, 2055, 7711, 1221, 5445, 4241, 5898,
+ 10789, 5759, 2055, 7711, 4241, 5898,
+ 10789, 5759, 2110,
+ 10789, 5759, 2111, 5387, 2110,
+ 10789, 5759, 2111, 5898,
+ 10789, 5759, 2111, 7077, 7711, 1220,
+ 10789, 5759, 2111, 7077, 7711, 2488,
+ 10789, 5759, 2111, 7077, 7711, 2489, 5387, 2111, 7077, 7711, 2488,
+ 10789, 5759, 2111, 7077, 7711, 2836,
+ 10789, 5759, 2111, 7077, 7711, 4928,
+ 10789, 5759, 2111, 9967, 2110,
+ 10789, 5759, 2111, 9967, 2111, 7077, 5387, 7076,
+ 10789, 5759, 2190,
+ 10789, 5759, 2192,
+ 10789, 5759, 2194,
+ 10789, 5759, 2380,
+ 10789, 5759, 2486,
+ 10789, 5759, 2487, 4358,
+ 10789, 5759, 2487, 5387, 2486,
+ 10789, 5759, 2487, 7711, 0,
+ 10789, 5759, 2487, 7711, 152,
+ 10789, 5759, 2487, 7711, 236,
+ 10789, 5759, 2487, 7711, 374,
+ 10789, 5759, 2487, 7711, 580,
+ 10789, 5759, 2487, 7711, 584,
+ 10789, 5759, 2487, 7711, 594,
+ 10789, 5759, 2487, 7711, 602,
+ 10789, 5759, 2487, 7711, 1050,
+ 10789, 5759, 2487, 7711, 1584,
+ 10789, 5759, 2487, 7711, 1696,
+ 10789, 5759, 2487, 7711, 1822,
+ 10789, 5759, 2487, 7711, 2110,
+ 10789, 5759, 2487, 7711, 2488,
+ 10789, 5759, 2487, 7711, 2636,
+ 10789, 5759, 2487, 7711, 2836,
+ 10789, 5759, 2487, 7711, 5692,
+ 10789, 5759, 2487, 9520,
+ 10789, 5759, 2488,
+ 10789, 5759, 2489, 7075, 7711, 3280,
+ 10789, 5759, 2494,
+ 10789, 5759, 2516,
+ 10789, 5759, 2518,
+ 10789, 5759, 2519, 250,
+ 10789, 5759, 2519, 5387, 2519, 1207, 5387, 1207, 1221, 5387, 1220,
+ 10789, 5759, 2519, 5387, 2519, 2637, 5387, 2637, 1221, 5387, 1220,
+ 10789, 5759, 2524,
+ 10789, 5759, 2525, 5387, 10267, 2524,
+ 10789, 5759, 2530,
+ 10789, 5759, 2582,
+ 10789, 5759, 2584,
+ 10789, 5759, 2592,
+ 10789, 5759, 2636,
+ 10789, 5759, 2637, 5387, 2637, 405, 5387, 405, 4095, 5387, 4094,
+ 10789, 5759, 2637, 9732,
+ 10789, 5759, 2638,
+ 10789, 5759, 2639, 7711, 106,
+ 10789, 5759, 2639, 7711, 588,
+ 10789, 5759, 2639, 7711, 1304,
+ 10789, 5759, 2639, 7711, 2518,
+ 10789, 5759, 2639, 7711, 2524,
+ 10789, 5759, 2639, 7711, 6012,
+ 10789, 5759, 2654,
+ 10789, 5759, 2694,
+ 10789, 5759, 2698,
+ 10789, 5759, 2699, 5387, 2698,
+ 10789, 5759, 2699, 5387, 2699, 1207, 5387, 1207, 1221, 5387, 1220,
+ 10789, 5759, 2699, 7711, 5880,
+ 10789, 5759, 2758,
+ 10789, 5759, 2760,
+ 10789, 5759, 2766,
+ 10789, 5759, 2767, 5387, 2767, 671, 5387, 670,
+ 10789, 5759, 2822,
+ 10789, 5759, 2823, 7711, 1, 5445, 236,
+ 10789, 5759, 2823, 7711, 1, 5445, 392,
+ 10789, 5759, 2823, 7711, 76,
+ 10789, 5759, 2823, 7711, 236,
+ 10789, 5759, 2823, 7711, 580,
+ 10789, 5759, 2823, 7711, 581, 5445, 106,
+ 10789, 5759, 2823, 7711, 581, 5445, 736,
+ 10789, 5759, 2823, 7711, 2110,
+ 10789, 5759, 2824,
+ 10789, 5759, 2828,
+ 10789, 5759, 2832,
+ 10789, 5759, 2833, 7711, 0,
+ 10789, 5759, 2833, 7711, 41, 5445, 1304,
+ 10789, 5759, 2833, 7711, 216,
+ 10789, 5759, 2833, 7711, 230,
+ 10789, 5759, 2833, 7711, 236,
+ 10789, 5759, 2833, 7711, 272,
+ 10789, 5759, 2833, 7711, 314,
+ 10789, 5759, 2833, 7711, 462,
+ 10789, 5759, 2833, 7711, 576,
+ 10789, 5759, 2833, 7711, 588,
+ 10789, 5759, 2833, 7711, 760,
+ 10789, 5759, 2833, 7711, 1060,
+ 10789, 5759, 2833, 7711, 1212,
+ 10789, 5759, 2833, 7711, 1220,
+ 10789, 5759, 2833, 7711, 1482,
+ 10789, 5759, 2833, 7711, 1498,
+ 10789, 5759, 2833, 7711, 1822,
+ 10789, 5759, 2833, 7711, 1922,
+ 10789, 5759, 2833, 7711, 2518,
+ 10789, 5759, 2833, 7711, 4241, 5898,
+ 10789, 5759, 2833, 7711, 5756,
+ 10789, 5759, 2833, 7711, 7774,
+ 10789, 5759, 2833, 7711, 7954,
+ 10789, 5759, 2836,
+ 10789, 5759, 2837, 7711, 0,
+ 10789, 5759, 2837, 7711, 326,
+ 10789, 5759, 2837, 7711, 1696,
+ 10789, 5759, 2837, 7711, 5880,
+ 10789, 5759, 2840,
+ 10789, 5759, 2841, 7711, 8338,
+ 10789, 5759, 2842,
+ 10789, 5759, 3122,
+ 10789, 5759, 3136,
+ 10789, 5759, 3158,
+ 10789, 5759, 3160,
+ 10789, 5759, 3161, 4703, 5898,
+ 10789, 5759, 3164,
+ 10789, 5759, 3188,
+ 10789, 5759, 3189, 7711, 0,
+ 10789, 5759, 3190,
+ 10789, 5759, 3242,
+ 10789, 5759, 3256,
+ 10789, 5759, 3257, 7711, 2518,
+ 10789, 5759, 3266,
+ 10789, 5759, 3270,
+ 10789, 5759, 3271, 7711, 1696,
+ 10789, 5759, 3280,
+ 10789, 5759, 3698,
+ 10789, 5759, 3820,
+ 10789, 5759, 4088,
+ 10789, 5759, 4094,
+ 10789, 5759, 4122,
+ 10789, 5759, 4124,
+ 10789, 5759, 4125, 4358,
+ 10789, 5759, 4125, 4359, 4358,
+ 10789, 5759, 4126,
+ 10789, 5759, 4132,
+ 10789, 5759, 4154,
+ 10789, 5759, 4156,
+ 10789, 5759, 4164,
+ 10789, 5759, 4166,
+ 10789, 5759, 4174,
+ 10789, 5759, 4175, 7711, 0,
+ 10789, 5759, 4175, 7711, 1, 5445, 1736,
+ 10789, 5759, 4175, 7711, 1, 5445, 1737, 7711, 1736,
+ 10789, 5759, 4175, 7711, 80,
+ 10789, 5759, 4175, 7711, 236,
+ 10789, 5759, 4175, 7711, 237, 4358,
+ 10789, 5759, 4175, 7711, 332,
+ 10789, 5759, 4175, 7711, 340,
+ 10789, 5759, 4175, 7711, 354,
+ 10789, 5759, 4175, 7711, 580,
+ 10789, 5759, 4175, 7711, 588,
+ 10789, 5759, 4175, 7711, 750,
+ 10789, 5759, 4175, 7711, 1483, 4358,
+ 10789, 5759, 4175, 7711, 1682,
+ 10789, 5759, 4175, 7711, 1737, 7711, 1736,
+ 10789, 5759, 4175, 7711, 4125, 4358,
+ 10789, 5759, 4175, 7711, 4125, 4359, 4358,
+ 10789, 5759, 4175, 7711, 8338,
+ 10789, 5759, 4175, 7711, 8339, 9732,
+ 10789, 5759, 4234,
+ 10789, 5759, 4235, 9967, 4234,
+ 10789, 5759, 4240,
+ 10789, 5759, 4241, 5387, 4240,
+ 10789, 5759, 4241, 5898,
+ 10789, 5759, 4241, 9967, 4240,
+ 10789, 5759, 4242,
+ 10789, 5759, 4334,
+ 10789, 5759, 4335, 4358,
+ 10789, 5759, 4336,
+ 10789, 5759, 4337, 7711, 1, 5445, 1482,
+ 10789, 5759, 4337, 7711, 355, 5445, 1482,
+ 10789, 5759, 4337, 7711, 462,
+ 10789, 5759, 4337, 7711, 1482,
+ 10789, 5759, 4337, 7711, 4241, 5898,
+ 10789, 5759, 4338,
+ 10789, 5759, 4339, 5898,
+ 10789, 5759, 4339, 7711, 750,
+ 10789, 5759, 4339, 7711, 5880,
+ 10789, 5759, 4339, 9967, 4338,
+ 10789, 5759, 4366,
+ 10789, 5759, 4544,
+ 10789, 5759, 4545, 7711, 80,
+ 10789, 5759, 4545, 7711, 588,
+ 10789, 5759, 4545, 7711, 1344,
+ 10789, 5759, 4545, 7711, 4884,
+ 10789, 5759, 4545, 7711, 8338,
+ 10789, 5759, 4546,
+ 10789, 5759, 4596,
+ 10789, 5759, 4597, 5387, 4597, 832,
+ 10789, 5759, 4597, 5387, 4597, 9732,
+ 10789, 5759, 4606,
+ 10789, 5759, 4704,
+ 10789, 5759, 4706,
+ 10789, 5759, 4708,
+ 10789, 5759, 4710,
+ 10789, 5759, 4711, 5387, 4710,
+ 10789, 5759, 4714,
+ 10789, 5759, 4716,
+ 10789, 5759, 4764,
+ 10789, 5759, 4884,
+ 10789, 5759, 4928,
+ 10789, 5759, 5030,
+ 10789, 5759, 5031, 5387, 5030,
+ 10789, 5759, 5031, 5387, 5031, 7711, 1, 5445, 392,
+ 10789, 5759, 5031, 7711, 0,
+ 10789, 5759, 5031, 7711, 670,
+ 10789, 5759, 5031, 7711, 1696,
+ 10789, 5759, 5031, 9967, 5030,
+ 10789, 5759, 5042,
+ 10789, 5759, 5043, 7711, 2525, 5898,
+ 10789, 5759, 5043, 10266,
+ 10789, 5759, 5043, 10377, 5042,
+ 10789, 5759, 5044,
+ 10789, 5759, 5278,
+ 10789, 5759, 5662,
+ 10789, 5759, 5663, 7711, 0,
+ 10789, 5759, 5663, 7711, 40,
+ 10789, 5759, 5663, 7711, 41, 5445, 0,
+ 10789, 5759, 5663, 7711, 396,
+ 10789, 5759, 5663, 7711, 750,
+ 10789, 5759, 5663, 7711, 2766,
+ 10789, 5759, 5663, 7711, 4338,
+ 10789, 5759, 5663, 7711, 5720,
+ 10789, 5759, 5664,
+ 10789, 5759, 5682,
+ 10789, 5759, 5692,
+ 10789, 5759, 5693, 7711, 0,
+ 10789, 5759, 5693, 7711, 272,
+ 10789, 5759, 5696,
+ 10789, 5759, 5697, 7711, 0,
+ 10789, 5759, 5697, 7711, 754,
+ 10789, 5759, 5697, 7711, 1012,
+ 10789, 5759, 5697, 7711, 1220,
+ 10789, 5759, 5697, 7711, 1482,
+ 10789, 5759, 5697, 7711, 1483, 4358,
+ 10789, 5759, 5697, 7711, 1820,
+ 10789, 5759, 5697, 7711, 1950,
+ 10789, 5759, 5697, 7711, 2488,
+ 10789, 5759, 5697, 7711, 6534,
+ 10789, 5759, 5697, 7711, 8374,
+ 10789, 5759, 5702,
+ 10789, 5759, 5703, 5387, 5703, 833, 5387, 832,
+ 10789, 5759, 5703, 5898,
+ 10789, 5759, 5720,
+ 10789, 5759, 5756,
+ 10789, 5759, 5757, 5387, 5757, 5720,
+ 10789, 5759, 5760,
+ 10789, 5759, 5840,
+ 10789, 5759, 5852,
+ 10789, 5759, 5880,
+ 10789, 5759, 6012,
+ 10789, 5759, 6046,
+ 10789, 5759, 6048,
+ 10789, 5759, 6049, 7711, 462,
+ 10789, 5759, 6049, 7711, 8338,
+ 10789, 5759, 6054,
+ 10789, 5759, 6062,
+ 10789, 5759, 6064,
+ 10789, 5759, 6256,
+ 10789, 5759, 6318,
+ 10789, 5759, 6396,
+ 10789, 5759, 6412,
+ 10789, 5759, 6430,
+ 10789, 5759, 6436,
+ 10789, 5759, 6464,
+ 10789, 5759, 6466,
+ 10789, 5759, 6534,
+ 10789, 5759, 6535, 5387, 6534,
+ 10789, 5759, 6648,
+ 10789, 5759, 6650,
+ 10789, 5759, 6708,
+ 10789, 5759, 6746,
+ 10789, 5759, 6818,
+ 10789, 5759, 6854,
+ 10789, 5759, 6860,
+ 10789, 5759, 6884,
+ 10789, 5759, 7040,
+ 10789, 5759, 7054,
+ 10789, 5759, 7074,
+ 10789, 5759, 7075, 7711, 0,
+ 10789, 5759, 7075, 7711, 1, 5445, 139, 5445, 236,
+ 10789, 5759, 7075, 7711, 1, 5445, 1220,
+ 10789, 5759, 7075, 7711, 1, 5445, 1736,
+ 10789, 5759, 7075, 7711, 40,
+ 10789, 5759, 7075, 7711, 41, 5445, 0,
+ 10789, 5759, 7075, 7711, 41, 5445, 41, 5445, 40,
+ 10789, 5759, 7075, 7711, 76,
+ 10789, 5759, 7075, 7711, 80,
+ 10789, 5759, 7075, 7711, 106,
+ 10789, 5759, 7075, 7711, 176,
+ 10789, 5759, 7075, 7711, 216,
+ 10789, 5759, 7075, 7711, 236,
+ 10789, 5759, 7075, 7711, 243, 7711, 2110,
+ 10789, 5759, 7075, 7711, 272,
+ 10789, 5759, 7075, 7711, 273, 5445, 236,
+ 10789, 5759, 7075, 7711, 273, 5445, 354,
+ 10789, 5759, 7075, 7711, 314,
+ 10789, 5759, 7075, 7711, 354,
+ 10789, 5759, 7075, 7711, 368,
+ 10789, 5759, 7075, 7711, 369, 5445, 176,
+ 10789, 5759, 7075, 7711, 396,
+ 10789, 5759, 7075, 7711, 561, 5445, 1, 5445, 547, 5445, 392,
+ 10789, 5759, 7075, 7711, 581, 5445, 736,
+ 10789, 5759, 7075, 7711, 588,
+ 10789, 5759, 7075, 7711, 737, 6313, 5898,
+ 10789, 5759, 7075, 7711, 750,
+ 10789, 5759, 7075, 7711, 966,
+ 10789, 5759, 7075, 7711, 1220,
+ 10789, 5759, 7075, 7711, 1304,
+ 10789, 5759, 7075, 7711, 1305, 5445, 1304,
+ 10789, 5759, 7075, 7711, 1344,
+ 10789, 5759, 7075, 7711, 1483, 4358,
+ 10789, 5759, 7075, 7711, 1632,
+ 10789, 5759, 7075, 7711, 1682,
+ 10789, 5759, 7075, 7711, 1688,
+ 10789, 5759, 7075, 7711, 1689, 5445, 243, 5445, 0,
+ 10789, 5759, 7075, 7711, 1820,
+ 10789, 5759, 7075, 7711, 2519, 5445, 2584,
+ 10789, 5759, 7075, 7711, 2584,
+ 10789, 5759, 7075, 7711, 2638,
+ 10789, 5759, 7075, 7711, 2836,
+ 10789, 5759, 7075, 7711, 4884,
+ 10789, 5759, 7075, 7711, 5030,
+ 10789, 5759, 7075, 7711, 5720,
+ 10789, 5759, 7075, 7711, 5721, 5445, 5720,
+ 10789, 5759, 7075, 7711, 5880,
+ 10789, 5759, 7075, 7711, 7074,
+ 10789, 5759, 7075, 7711, 7545, 5445, 4339, 5445, 6746,
+ 10789, 5759, 7075, 7711, 7545, 5445, 4339, 5898,
+ 10789, 5759, 7075, 9732,
+ 10789, 5759, 7076,
+ 10789, 5759, 7077, 4358,
+ 10789, 5759, 7077, 4359, 5387, 7077, 4359, 2518,
+ 10789, 5759, 7077, 7711, 2518,
+ 10789, 5759, 7077, 7711, 2519, 5445, 2584,
+ 10789, 5759, 7122,
+ 10789, 5759, 7123, 5387, 7122,
+ 10789, 5759, 7123, 9684,
+ 10789, 5759, 7123, 10377, 7122,
+ 10789, 5759, 7138,
+ 10789, 5759, 7196,
+ 10789, 5759, 7197, 4358,
+ 10789, 5759, 7197, 7711, 0,
+ 10789, 5759, 7197, 7711, 1, 5445, 144,
+ 10789, 5759, 7197, 7711, 144,
+ 10789, 5759, 7204,
+ 10789, 5759, 7248,
+ 10789, 5759, 7284,
+ 10789, 5759, 7285, 703, 7711, 106,
+ 10789, 5759, 7285, 703, 7711, 332,
+ 10789, 5759, 7285, 703, 7711, 396,
+ 10789, 5759, 7285, 703, 7711, 580,
+ 10789, 5759, 7285, 703, 7711, 1052,
+ 10789, 5759, 7285, 703, 7711, 1304,
+ 10789, 5759, 7285, 703, 7711, 1483, 4358,
+ 10789, 5759, 7285, 703, 7711, 4706,
+ 10789, 5759, 7285, 703, 7711, 7572,
+ 10789, 5759, 7285, 703, 7711, 7954,
+ 10789, 5759, 7285, 8361, 7711, 106,
+ 10789, 5759, 7285, 8361, 7711, 107, 40,
+ 10789, 5759, 7364,
+ 10789, 5759, 7374,
+ 10789, 5759, 7375, 7711, 588,
+ 10789, 5759, 7375, 7711, 670,
+ 10789, 5759, 7375, 7711, 1586,
+ 10789, 5759, 7375, 10377, 7374,
+ 10789, 5759, 7510,
+ 10789, 5759, 7516,
+ 10789, 5759, 7528,
+ 10789, 5759, 7534,
+ 10789, 5759, 7544,
+ 10789, 5759, 7572,
+ 10789, 5759, 7648,
+ 10789, 5759, 7762,
+ 10789, 5759, 7774,
+ 10789, 5759, 7775, 7711, 40,
+ 10789, 5759, 7778,
+ 10789, 5759, 7890,
+ 10789, 5759, 7954,
+ 10789, 5759, 7966,
+ 10789, 5759, 8242,
+ 10789, 5759, 8276,
+ 10789, 5759, 8338,
+ 10789, 5759, 8339, 5387, 8339, 7075, 7711, 41, 5387, 7075, 7711, 40,
+ 10789, 5759, 8339, 7075, 7711, 41, 5387, 7075, 7711, 40,
+ 10789, 5759, 8360,
+ 10789, 5759, 8361, 5387, 8360,
+ 10789, 5759, 8374,
+ 10789, 5759, 8376,
+ 10789, 5759, 8382,
+ 10789, 5759, 8408,
+ 10789, 5759, 8490,
+ 10789, 5759, 8494,
+ 10789, 5759, 8512,
+ 10789, 5759, 8513, 7711, 80,
+ 10789, 5759, 8513, 7711, 369, 5445, 4241, 5898,
+ 10789, 5759, 8513, 7711, 396,
+ 10789, 5759, 8513, 7711, 581, 5445, 736,
+ 10789, 5759, 8513, 7711, 736,
+ 10789, 5759, 8513, 7711, 737, 5445, 736,
+ 10789, 5759, 8513, 7711, 1304,
+ 10789, 5759, 8513, 7711, 2110,
+ 10789, 5759, 8513, 7711, 2518,
+ 10789, 5759, 8513, 7711, 2519, 5445, 1, 80,
+ 10789, 5759, 8513, 7711, 2519, 5445, 736,
+ 10789, 5759, 8513, 7711, 2519, 5445, 737, 5445, 736,
+ 10789, 5759, 8513, 7711, 2836,
+ 10789, 5759, 8664,
+ 10789, 5759, 8702,
+ 10789, 5759, 8706,
+ 10789, 5759, 8710,
+ 10789, 5759, 8764,
+ 10789, 5759, 8902,
+ 10789, 5759, 9306,
+ 10789, 5759, 9307, 7711, 1696,
+ 10789, 5759, 10518,
+ 10789, 9515, 5759, 2167, 9897, 2171, 7574,
+ 10789, 9515, 5759, 2167, 9897, 2171, 9614,
+ 10789, 9515, 5759, 2171, 3704,
+ 10789, 9515, 5759, 2171, 3822,
+ 10789, 9515, 5759, 2171, 6756,
+ 10789, 9515, 5759, 2171, 6830,
+ 10789, 9515, 5759, 2171, 6832,
+ 10789, 9515, 5759, 2171, 7520,
+ 10789, 9515, 5759, 2171, 7687, 4094,
+ 10789, 9515, 5759, 2171, 7687, 9817, 4213, 0,
+ 10789, 9515, 5759, 2171, 8159, 736,
+ 10789, 9515, 5759, 2171, 9615, 736,
+ 10789, 9515, 5759, 2541, 40,
+ 10789, 9515, 5759, 2541, 736,
+ 10789, 9515, 5759, 2541, 737, 5898,
+ 10789, 9515, 5759, 2541, 4094,
+ 10789, 9515, 5759, 2541, 6830,
+ 10789, 9515, 5759, 2541, 7516,
+ 10789, 9515, 5759, 2541, 9817, 4213, 3282,
+ 10789, 9515, 5759, 2779, 736,
+ 10789, 9515, 5759, 2779, 737, 5898,
+ 10789, 9515, 5759, 2779, 3704,
+ 10789, 9515, 5759, 2779, 3822,
+ 10789, 9515, 5759, 2779, 6756,
+ 10789, 9515, 5759, 2779, 6830,
+ 10789, 9515, 5759, 2779, 6832,
+ 10789, 9515, 5759, 2779, 7516,
+ 10789, 9515, 5759, 2779, 7520,
+ 10789, 9515, 5759, 2779, 8819, 4094,
+ 10789, 9515, 5759, 2779, 8819, 9817, 4213, 0,
+ 10789, 9515, 5759, 4201, 40,
+ 10789, 9515, 5759, 4201, 736,
+ 10789, 9515, 5759, 4201, 737, 5898,
+ 10789, 9515, 5759, 4201, 3704,
+ 10789, 9515, 5759, 4201, 3705, 9817, 4212,
+ 10789, 9515, 5759, 4201, 3822,
+ 10789, 9515, 5759, 4201, 4094,
+ 10789, 9515, 5759, 4201, 6830,
+ 10789, 9515, 5759, 4201, 6832,
+ 10789, 9515, 5759, 4201, 7516,
+ 10789, 9515, 5759, 4201, 7520,
+ 10789, 9515, 5759, 4201, 8719, 4094,
+ 10789, 9515, 5759, 4215, 40,
+ 10789, 9515, 5759, 4215, 736,
+ 10789, 9515, 5759, 4215, 737, 5898,
+ 10789, 9515, 5759, 4215, 3704,
+ 10789, 9515, 5759, 4215, 3705, 9817, 4212,
+ 10789, 9515, 5759, 4215, 3822,
+ 10789, 9515, 5759, 4215, 4094,
+ 10789, 9515, 5759, 4215, 6830,
+ 10789, 9515, 5759, 4215, 6832,
+ 10789, 9515, 5759, 4215, 7516,
+ 10789, 9515, 5759, 4215, 7520,
+ 10789, 9515, 5759, 4215, 9817, 4213, 7106,
+ 10789, 9515, 5759, 4215, 9817, 4213, 7107, 0,
+ 10789, 9515, 5759, 4215, 9817, 4213, 7107, 2,
+ 10789, 9515, 5759, 4215, 9817, 4213, 8410,
+ 10789, 9515, 5759, 5191, 40,
+ 10789, 9515, 5759, 5191, 736,
+ 10789, 9515, 5759, 5191, 4094,
+ 10789, 9515, 5759, 5191, 6830,
+ 10789, 9515, 5759, 5191, 7516,
+ 10789, 9515, 5759, 5191, 9817, 4213, 8310,
+ 10789, 9515, 5759, 5191, 9817, 4213, 8311, 0,
+ 10789, 9515, 5759, 5191, 9817, 4213, 9354,
+ 10789, 9515, 5759, 5191, 9817, 4213, 9356,
+ 10789, 9515, 5759, 6723, 40,
+ 10789, 9515, 5759, 6723, 736,
+ 10789, 9515, 5759, 6723, 4094,
+ 10789, 9515, 5759, 6723, 6830,
+ 10789, 9515, 5759, 6723, 7516,
+ 10789, 9515, 5759, 6723, 9817, 4213, 6066,
+ 10789, 9515, 5759, 6723, 9817, 4213, 7776,
+ 10789, 9515, 5759, 7509, 40,
+ 10789, 9515, 5759, 7509, 736,
+ 10789, 9515, 5759, 7509, 4094,
+ 10789, 9515, 5759, 7509, 6830,
+ 10789, 9515, 5759, 7509, 7516,
+ 10789, 9515, 5759, 7509, 9817, 4213, 4607, 0,
+ 10789, 9515, 5759, 7509, 9817, 4213, 4607, 2,
+ 10789, 9515, 5759, 7509, 9817, 4213, 6990,
+ 10789, 9515, 5759, 7517, 7711, 1213, 5445, 1922,
+ 10789, 9515, 5759, 7517, 7711, 1213, 5445, 4094,
+ 10789, 9515, 5759, 7695, 736,
+ 10789, 9515, 5759, 7695, 737, 5898,
+ 10789, 9515, 5759, 7695, 3704,
+ 10789, 9515, 5759, 7695, 3822,
+ 10789, 9515, 5759, 7695, 3823, 9817, 4212,
+ 10789, 9515, 5759, 7695, 4094,
+ 10789, 9515, 5759, 7695, 6830,
+ 10789, 9515, 5759, 7695, 6832,
+ 10789, 9515, 5759, 7695, 7516,
+ 10789, 9515, 5759, 7695, 7517, 9817, 4212,
+ 10789, 9515, 5759, 7695, 7520,
+ 10789, 9515, 5759, 7695, 7521, 9817, 4212,
+ 10789, 9515, 5759, 7695, 9817, 4213, 6752,
+ 10789, 9515, 5759, 7695, 9817, 4213, 6754,
+ 10789, 9515, 5759, 11136,
+ 10789, 9515, 5759, 11138,
+ 10789, 12133, 5759, 2167, 9897, 6129, 9178,
+ 10789, 12133, 5759, 10001, 6610,
+ 10789, 12133, 5759, 10001, 10644,
+ 10789, 12133, 5759, 10677, 6610,
+ 10797, 8775, 7101, 601, 721, 11648,
+ 10797, 8775, 7101, 601, 721, 11649, 6121, 6104,
+ 10797, 8775, 7101, 601, 721, 11649, 6121, 8056,
+ 10797, 8775, 7101, 601, 721, 11649, 6121, 10642,
+ 10797, 8775, 7101, 4117, 721, 11648,
+ 10797, 8775, 7101, 4117, 721, 11649, 6121, 6104,
+ 10797, 8775, 7101, 4117, 721, 11649, 6121, 8056,
+ 10797, 8775, 7101, 4117, 721, 11649, 6121, 10642,
+ 10797, 8775, 7101, 10677, 721, 2725, 4848,
+ 10797, 8775, 7101, 10677, 721, 2725, 7442,
+ 10797, 8775, 7101, 10677, 721, 6104,
+ 10797, 8775, 7101, 10677, 721, 8005, 4848,
+ 10797, 8775, 7101, 10677, 721, 8005, 7442,
+ 10797, 8775, 7101, 10677, 6121, 8056,
+ 10797, 8775, 7101, 10677, 6121, 10642,
+ 10804,
+ 10817, 8548,
+ 10959, 2779, 8289, 6434,
+ 10959, 6434,
+ 10959, 6435, 569, 760,
+ 10959, 6435, 4221, 760,
+ 10959, 6435, 6121, 2697, 11096,
+ 10959, 6435, 6121, 2697, 11764,
+ 10959, 6435, 6121, 8077, 11096,
+ 10959, 6435, 6121, 8153, 8758,
+ 10959, 6435, 6121, 11649, 8758,
+ 10959, 6435, 11097, 429, 9811, 6434,
+ 10959, 6505, 6434,
+ 10959, 7821, 6434,
+ 10959, 7924,
+ 10959, 8097, 6434,
+ 10959, 8153, 6434,
+ 10959, 8561, 7944,
+ 10959, 8849, 6434,
+ 10959, 8963, 6434,
+ 10959, 9327, 6121, 3713, 4849, 569, 760,
+ 10959, 9327, 6121, 3713, 4849, 4221, 760,
+ 10959, 9327, 6121, 3713, 4849, 7991, 9811, 9327, 6121, 3713, 7442,
+ 10959, 9327, 6121, 3713, 4849, 7991, 10959, 9327, 6121, 3713, 7442,
+ 10959, 9327, 6121, 3713, 7443, 569, 760,
+ 10959, 9327, 6121, 3713, 7443, 4221, 760,
+ 10959, 9327, 6121, 3713, 11096,
+ 10959, 9327, 6121, 3713, 11764,
+ 10959, 11191, 6434,
+ 10963, 9120,
+ 10977, 8774,
+ 10978,
+ 10989, 5758,
+ 11011, 1809, 4876,
+ 11011, 2091, 5758,
+ 11011, 2941, 5758,
+ 11011, 3055, 5758,
+ 11011, 3873, 5758,
+ 11011, 4223, 5836,
+ 11011, 4849, 6627, 9050,
+ 11011, 4849, 7821, 12114,
+ 11011, 4849, 8745, 9050,
+ 11011, 4849, 12114,
+ 11011, 5445, 5758,
+ 11011, 6610,
+ 11011, 6616,
+ 11011, 6689, 2170,
+ 11011, 6689, 2540,
+ 11011, 6689, 2778,
+ 11011, 6689, 4200,
+ 11011, 6689, 4214,
+ 11011, 6689, 5190,
+ 11011, 6689, 6260,
+ 11011, 6689, 6722,
+ 11011, 6689, 7508,
+ 11011, 6689, 7694,
+ 11011, 6875, 7908,
+ 11011, 7089, 7593, 8405, 0,
+ 11011, 7089, 7593, 8405, 2,
+ 11011, 7089, 7593, 8405, 4,
+ 11011, 7089, 7593, 8405, 6,
+ 11011, 7089, 7593, 8405, 8,
+ 11011, 7089, 7593, 8405, 10,
+ 11011, 7089, 7593, 8405, 12,
+ 11011, 7089, 7593, 8405, 14,
+ 11011, 7089, 7593, 8405, 16,
+ 11011, 7089, 7593, 8405, 18,
+ 11011, 7089, 7593, 8405, 20,
+ 11011, 7089, 7593, 8405, 22,
+ 11011, 7089, 7593, 8405, 24,
+ 11011, 7089, 7593, 8405, 26,
+ 11011, 7089, 7593, 8405, 28,
+ 11011, 7089, 7593, 8405, 30,
+ 11011, 7089, 7593, 8405, 32,
+ 11011, 7089, 7593, 8405, 34,
+ 11011, 7089, 7593, 8405, 36,
+ 11011, 7089, 7593, 8405, 38,
+ 11011, 7089, 7593, 8405, 40,
+ 11011, 7089, 7593, 8405, 42,
+ 11011, 7089, 7593, 8405, 44,
+ 11011, 7089, 7593, 8405, 46,
+ 11011, 7089, 7593, 8405, 48,
+ 11011, 7089, 7593, 8405, 50,
+ 11011, 7089, 9063, 8405, 0,
+ 11011, 7089, 9063, 8405, 2,
+ 11011, 7089, 9063, 8405, 4,
+ 11011, 7089, 9063, 8405, 6,
+ 11011, 7089, 9063, 8405, 8,
+ 11011, 7089, 9063, 8405, 10,
+ 11011, 7089, 9063, 8405, 12,
+ 11011, 7089, 9063, 8405, 14,
+ 11011, 7089, 9063, 8405, 16,
+ 11011, 7089, 9063, 8405, 18,
+ 11011, 7089, 9063, 8405, 20,
+ 11011, 7089, 9063, 8405, 22,
+ 11011, 7089, 9063, 8405, 24,
+ 11011, 7089, 9063, 8405, 26,
+ 11011, 7089, 9063, 8405, 28,
+ 11011, 7089, 9063, 8405, 30,
+ 11011, 7089, 9063, 8405, 32,
+ 11011, 7089, 9063, 8405, 34,
+ 11011, 7089, 9063, 8405, 36,
+ 11011, 7089, 9063, 8405, 38,
+ 11011, 7089, 9063, 8405, 40,
+ 11011, 7089, 9063, 8405, 42,
+ 11011, 7089, 9063, 8405, 44,
+ 11011, 7089, 9063, 8405, 46,
+ 11011, 7089, 9063, 8405, 48,
+ 11011, 7089, 9063, 8405, 50,
+ 11011, 7387, 5758,
+ 11011, 7443, 6627, 9050,
+ 11011, 7443, 7821, 12114,
+ 11011, 7443, 8745, 9050,
+ 11011, 7443, 12114,
+ 11011, 7708,
+ 11011, 8017, 760,
+ 11011, 8129, 5758,
+ 11011, 8167, 5758,
+ 11011, 8432,
+ 11011, 8525, 5758,
+ 11011, 9581, 5758,
+ 11011, 9633, 9718,
+ 11011, 9718,
+ 11011, 9898,
+ 11011, 10469, 4926,
+ 11011, 10677, 4876,
+ 11011, 10708,
+ 11011, 11099, 5758,
+ 11011, 11195, 4926,
+ 11011, 11224,
+ 11011, 11424,
+ 11011, 11449, 7908,
+ 11011, 11451, 90,
+ 11011, 12017, 4926,
+ 11011, 12473, 5758,
+ 11011, 12478,
+ 11015, 11740,
+ 11031, 4849, 8077, 9050,
+ 11031, 6505, 8744,
+ 11031, 6801, 7101, 10676,
+ 11031, 7443, 8077, 9050,
+ 11031, 7821, 8056,
+ 11031, 8287, 8206,
+ 11031, 8287, 8405, 0,
+ 11031, 8287, 8405, 8,
+ 11031, 8287, 8405, 16,
+ 11031, 8287, 8405, 28,
+ 11031, 8287, 8405, 40,
+ 11031, 8287, 8405, 66,
+ 11031, 8287, 8405, 178,
+ 11031, 8287, 8405, 188,
+ 11031, 8287, 8405, 426,
+ 11031, 8287, 8405, 622,
+ 11031, 8287, 8405, 626,
+ 11031, 8287, 8405, 630,
+ 11031, 8287, 8405, 652,
+ 11031, 8287, 8405, 654,
+ 11031, 8287, 8405, 656,
+ 11031, 8287, 8405, 660,
+ 11031, 8287, 8405, 664,
+ 11031, 8287, 8405, 2908,
+ 11031, 8287, 8405, 2926,
+ 11031, 8287, 8405, 3012,
+ 11031, 8287, 8405, 3056,
+ 11031, 8287, 8405, 5770,
+ 11031, 8287, 8405, 6594,
+ 11031, 8287, 8405, 6912,
+ 11031, 8287, 8405, 6982,
+ 11031, 8287, 8405, 7166,
+ 11031, 8287, 8405, 7244,
+ 11031, 8287, 8405, 7372,
+ 11031, 8287, 8405, 7440,
+ 11031, 8287, 8405, 8362,
+ 11031, 8287, 8405, 8828,
+ 11031, 8287, 8405, 9086,
+ 11031, 8287, 8405, 9400,
+ 11031, 8287, 8405, 9588,
+ 11031, 8287, 8405, 9780,
+ 11031, 8287, 8405, 11248,
+ 11031, 8287, 8405, 11728,
+ 11031, 8287, 8405, 11758,
+ 11031, 8287, 8405, 11824,
+ 11031, 8287, 8405, 11832,
+ 11031, 8287, 8405, 12070,
+ 11031, 8287, 8405, 12094,
+ 11031, 8287, 8405, 12096,
+ 11031, 8287, 8405, 12144,
+ 11031, 8287, 8405, 12146,
+ 11031, 8287, 8405, 12150,
+ 11031, 8287, 8405, 12350,
+ 11031, 8287, 8405, 12352,
+ 11031, 8287, 8405, 12532,
+ 11031, 8287, 8405, 13006,
+ 11031, 8287, 8405, 13008,
+ 11031, 9811, 6434,
+ 11031, 10283, 8405, 0,
+ 11031, 10283, 8405, 8,
+ 11031, 10283, 8405, 16,
+ 11031, 10283, 8405, 26,
+ 11031, 10283, 8405, 28,
+ 11031, 10283, 8405, 40,
+ 11031, 10283, 8405, 236,
+ 11031, 10283, 8405, 238,
+ 11031, 10283, 8405, 242,
+ 11031, 10283, 8405, 246,
+ 11031, 10283, 8405, 250,
+ 11031, 10283, 8405, 306,
+ 11031, 10283, 8405, 310,
+ 11031, 10283, 8405, 314,
+ 11031, 10283, 8405, 322,
+ 11031, 10283, 8405, 326,
+ 11031, 10283, 8405, 364,
+ 11031, 10283, 8405, 368,
+ 11031, 10283, 8405, 374,
+ 11031, 10283, 8405, 380,
+ 11031, 10283, 8405, 384,
+ 11031, 10283, 8405, 392,
+ 11031, 10283, 8405, 396,
+ 11031, 10283, 8405, 404,
+ 11031, 10283, 8405, 412,
+ 11031, 10283, 8405, 416,
+ 11031, 10283, 8405, 510,
+ 11031, 10283, 8405, 512,
+ 11031, 10283, 8405, 514,
+ 11031, 10283, 8405, 516,
+ 11031, 10283, 8405, 520,
+ 11031, 10283, 8405, 524,
+ 11031, 10283, 8405, 526,
+ 11031, 10283, 8405, 532,
+ 11031, 10283, 8405, 536,
+ 11031, 10283, 8405, 546,
+ 11031, 10283, 8405, 556,
+ 11031, 10283, 8405, 560,
+ 11031, 10283, 8405, 564,
+ 11031, 10283, 8405, 568,
+ 11031, 10283, 8405, 576,
+ 11031, 10283, 8405, 622,
+ 11031, 10283, 8405, 632,
+ 11031, 10283, 8405, 652,
+ 11031, 10283, 8405, 660,
+ 11031, 10283, 8405, 664,
+ 11031, 10283, 8405, 7593, 0,
+ 11031, 10283, 8405, 7593, 8,
+ 11031, 10283, 8405, 7593, 16,
+ 11031, 10283, 8405, 7593, 28,
+ 11031, 10283, 8405, 7593, 40,
+ 11031, 10283, 8405, 7593, 576,
+ 11031, 10283, 8405, 7593, 652,
+ 11031, 10283, 8405, 7593, 660,
+ 11031, 10283, 8405, 7593, 664,
+ 11031, 10283, 8473, 1044,
+ 11031, 10283, 8921, 7605, 4926,
+ 11031, 10283, 12341, 7605, 4926,
+ 11031, 10959, 6434,
+ 11031, 11097, 6434,
+ 11031, 11765, 6434,
+ 11031, 12043, 4223, 5836,
+ 11031, 12043, 6616,
+ 11031, 13365, 11185, 7605, 4926,
+ 11035, 10773, 8456,
+ 11036,
+ 11041, 568,
+ 11041, 569, 721, 9705, 10410,
+ 11041, 6121, 1045, 6376,
+ 11051, 88,
+ 11052,
+ 11061, 8774,
+ 11063, 5444,
+ 11063, 7710,
+ 11063, 11228,
+ 11093, 731, 12901, 6434,
+ 11097, 2779, 8289, 6434,
+ 11097, 6105, 6434,
+ 11097, 6434,
+ 11097, 6435, 569, 760,
+ 11097, 6435, 569, 761, 5387, 11765, 6435, 569, 760,
+ 11097, 6435, 569, 6505, 9158,
+ 11097, 6435, 4221, 760,
+ 11097, 6435, 4221, 761, 569, 6505, 9158,
+ 11097, 6435, 5387, 11765, 6434,
+ 11097, 6435, 6121, 2697, 9810,
+ 11097, 6435, 6121, 2697, 10958,
+ 11097, 6435, 6121, 4530,
+ 11097, 6435, 6121, 4896,
+ 11097, 6435, 6121, 5445, 6490,
+ 11097, 6435, 6121, 5878,
+ 11097, 6435, 6121, 5879, 6121, 8153, 10677, 8758,
+ 11097, 6435, 6121, 5879, 6121, 10677, 8758,
+ 11097, 6435, 6121, 8151, 5832,
+ 11097, 6435, 6121, 8153, 10677, 8758,
+ 11097, 6435, 6121, 8758,
+ 11097, 6435, 6121, 10677, 8758,
+ 11097, 6435, 6377, 7551, 11765, 6434,
+ 11097, 6435, 6377, 7709, 10374,
+ 11097, 6435, 6377, 7919, 6741, 568,
+ 11097, 6435, 6377, 9633, 7709, 10374,
+ 11097, 6435, 6377, 9633, 7919, 6741, 568,
+ 11097, 6435, 9785, 46,
+ 11097, 6435, 9785, 8762,
+ 11097, 6435, 9785, 11098,
+ 11097, 6505, 6434,
+ 11097, 7821, 6434,
+ 11097, 8097, 6434,
+ 11097, 8153, 3993, 6434,
+ 11097, 8153, 6434,
+ 11097, 8153, 6435, 4221, 760,
+ 11097, 8153, 6435, 6121, 8758,
+ 11097, 8153, 6435, 6121, 10677, 8758,
+ 11097, 8153, 11430,
+ 11097, 8561, 7944,
+ 11097, 8849, 3993, 6434,
+ 11097, 8849, 6434,
+ 11097, 9327, 5387, 11765, 9326,
+ 11097, 9327, 6121, 3713, 601, 569, 760,
+ 11097, 9327, 6121, 3713, 601, 4221, 760,
+ 11097, 9327, 6121, 3713, 601, 6377, 4895, 3992,
+ 11097, 9327, 6121, 3713, 601, 6377, 11097, 9327, 6121, 3713, 4116,
+ 11097, 9327, 6121, 3713, 601, 6377, 11765, 9327, 6121, 3713, 600,
+ 11097, 9327, 6121, 3713, 4117, 569, 760,
+ 11097, 9327, 6121, 3713, 4117, 4221, 760,
+ 11097, 9327, 6121, 3713, 4117, 6377, 11765, 9327, 6121, 3713, 4116,
+ 11097, 9327, 6121, 3713, 4117, 6491, 4895, 3992,
+ 11097, 9327, 6121, 3713, 9810,
+ 11097, 9327, 6121, 3713, 10958,
+ 11097, 10531, 6434,
+ 11097, 11191, 6434,
+ 11097, 11430,
+ 11097, 11875, 6435, 4221, 760,
+ 11097, 11875, 6435, 6121, 5878,
+ 11097, 11875, 6435, 6121, 5879, 6121, 8153, 10677, 8758,
+ 11097, 11875, 6435, 6121, 5879, 6121, 10677, 8758,
+ 11097, 11875, 6435, 6121, 8153, 10677, 8758,
+ 11097, 11875, 6435, 6121, 10677, 8758,
+ 11097, 11875, 8849, 3993, 6434,
+ 11097, 12103, 6434,
+ 11099, 445, 6741, 568,
+ 11099, 445, 9705, 6741, 568,
+ 11099, 445, 9705, 6741, 569, 6121, 1045, 6376,
+ 11099, 445, 9705, 6741, 569, 6121, 1045, 6377, 7442,
+ 11099, 445, 9705, 6741, 569, 6121, 1045, 8318,
+ 11099, 445, 11621, 568,
+ 11099, 445, 11896,
+ 11099, 445, 12472,
+ 11099, 721, 2091, 11896,
+ 11099, 721, 12345, 2091, 6741, 568,
+ 11099, 835, 2091, 6741, 568,
+ 11099, 835, 2091, 11621, 568,
+ 11099, 5387, 6741, 568,
+ 11099, 5758,
+ 11099, 6121, 1044,
+ 11099, 6121, 8057, 8318,
+ 11099, 6121, 10469, 4927, 6376,
+ 11099, 6377, 9693, 445, 6740,
+ 11099, 6377, 9693, 6377, 12472,
+ 11099, 6377, 9705, 6741, 6377, 12473, 6377, 9705, 6740,
+ 11099, 6377, 11097, 6434,
+ 11099, 6377, 12007, 6741, 6377, 12472,
+ 11099, 6377, 12473, 6377, 12007, 6740,
+ 11099, 6741, 569, 445, 12472,
+ 11099, 8065, 115, 6628,
+ 11099, 8065, 115, 6629, 6377, 9705, 6740,
+ 11104,
+ 11111, 93, 8399, 4926,
+ 11111, 3997, 4926,
+ 11111, 5759, 8916,
+ 11111, 5759, 9824,
+ 11111, 5759, 9870,
+ 11111, 5759, 9904,
+ 11111, 6689, 2170,
+ 11111, 6689, 2540,
+ 11111, 6689, 2778,
+ 11111, 6689, 4200,
+ 11111, 6689, 4214,
+ 11111, 6689, 5190,
+ 11111, 6689, 6260,
+ 11111, 6689, 6722,
+ 11111, 6689, 7508,
+ 11111, 6689, 7694,
+ 11111, 7803, 5759, 8,
+ 11111, 7803, 5759, 16,
+ 11111, 7803, 5759, 28,
+ 11111, 7803, 5759, 40,
+ 11111, 7803, 5759, 58,
+ 11111, 7803, 5759, 72,
+ 11111, 7803, 5759, 92,
+ 11111, 7803, 5759, 162,
+ 11111, 7803, 5759, 266,
+ 11111, 7803, 5759, 440,
+ 11111, 7803, 5759, 606,
+ 11111, 7803, 5759, 9827, 22,
+ 11111, 7803, 5759, 9827, 34,
+ 11111, 7803, 5759, 9827, 344,
+ 11111, 7803, 5759, 9827, 518,
+ 11111, 8405, 0,
+ 11111, 8405, 8,
+ 11111, 8405, 16,
+ 11111, 8405, 28,
+ 11111, 8405, 40,
+ 11111, 8405, 58,
+ 11111, 8405, 72,
+ 11111, 8405, 92,
+ 11111, 8405, 100,
+ 11111, 8405, 116,
+ 11111, 8405, 138,
+ 11111, 8405, 162,
+ 11111, 8405, 216,
+ 11111, 8405, 236,
+ 11111, 8405, 266,
+ 11111, 8405, 292,
+ 11111, 8405, 306,
+ 11111, 8405, 332,
+ 11111, 8405, 364,
+ 11111, 8405, 392,
+ 11111, 8405, 440,
+ 11111, 8405, 462,
+ 11111, 8405, 510,
+ 11111, 8405, 524,
+ 11111, 8405, 556,
+ 11111, 8405, 606,
+ 11111, 8405, 610,
+ 11111, 8405, 652,
+ 11111, 8405, 792,
+ 11111, 8405, 884,
+ 11111, 8405, 974,
+ 11111, 8405, 996,
+ 11111, 8405, 1260,
+ 11111, 8405, 1512,
+ 11111, 8405, 1612,
+ 11111, 8405, 1796,
+ 11111, 8405, 2030,
+ 11111, 8405, 2076,
+ 11111, 8405, 2126,
+ 11111, 8405, 2212,
+ 11111, 8405, 2438,
+ 11111, 8405, 2516,
+ 11111, 8405, 2566,
+ 11111, 8405, 2678,
+ 11111, 8405, 2746,
+ 11111, 8405, 4016,
+ 11111, 8405, 4888,
+ 11111, 8405, 5994,
+ 11111, 8405, 8045, 20,
+ 11111, 8405, 8045, 22,
+ 11111, 8405, 8045, 26,
+ 11111, 8405, 8045, 344,
+ 11111, 8405, 8045, 410,
+ 11111, 8405, 8045, 518,
+ 11111, 8405, 9827, 22,
+ 11111, 8405, 9827, 34,
+ 11111, 8405, 9827, 344,
+ 11111, 8405, 9827, 518,
+ 11111, 8525, 2171, 9344,
+ 11111, 8525, 2171, 10624,
+ 11111, 8525, 2670,
+ 11111, 10203, 2171, 4388,
+ 11111, 10203, 2171, 9614,
+ 11111, 10203, 7695, 10466,
+ 11113, 9539, 11054,
+ 11123, 4215, 4112,
+ 11123, 4217, 11391, 10507, 2170,
+ 11123, 4217, 11391, 10507, 2778,
+ 11123, 4217, 11391, 10507, 7694,
+ 11123, 4223, 5836,
+ 11123, 5751, 10585, 9921, 8450,
+ 11123, 5963, 5781, 8306,
+ 11123, 6500,
+ 11123, 6610,
+ 11123, 6616,
+ 11123, 6689, 2170,
+ 11123, 6689, 2540,
+ 11123, 6689, 2778,
+ 11123, 6689, 4200,
+ 11123, 6689, 4214,
+ 11123, 6689, 5190,
+ 11123, 6689, 6260,
+ 11123, 6689, 6722,
+ 11123, 6689, 7508,
+ 11123, 6689, 7694,
+ 11123, 7803, 11228,
+ 11123, 8405, 0,
+ 11123, 8405, 8,
+ 11123, 8405, 16,
+ 11123, 8405, 28,
+ 11123, 8405, 40,
+ 11123, 8405, 100,
+ 11123, 8405, 138,
+ 11123, 8405, 162,
+ 11123, 8405, 196,
+ 11123, 8405, 216,
+ 11123, 8405, 292,
+ 11123, 8405, 306,
+ 11123, 8405, 332,
+ 11123, 8405, 364,
+ 11123, 8405, 392,
+ 11123, 8405, 426,
+ 11123, 8405, 462,
+ 11123, 8405, 496,
+ 11123, 8405, 510,
+ 11123, 8405, 524,
+ 11123, 8405, 556,
+ 11123, 8405, 590,
+ 11123, 8405, 622,
+ 11123, 8405, 652,
+ 11123, 8405, 670,
+ 11123, 8405, 717, 4237, 0,
+ 11123, 8405, 717, 4237, 16,
+ 11123, 8405, 717, 4237, 70,
+ 11123, 8405, 717, 4237, 116,
+ 11123, 8405, 717, 4237, 138,
+ 11123, 8405, 717, 4237, 306,
+ 11123, 8405, 717, 4237, 462,
+ 11123, 8405, 717, 4237, 556,
+ 11123, 8405, 717, 4237, 670,
+ 11123, 8405, 717, 4237, 974,
+ 11123, 8405, 717, 4237, 2030,
+ 11123, 8405, 717, 4237, 2076,
+ 11123, 8405, 717, 4237, 2212,
+ 11123, 8405, 717, 4237, 2566,
+ 11123, 8405, 717, 4237, 2746,
+ 11123, 8405, 717, 4237, 3146,
+ 11123, 8405, 717, 4237, 4389, 40,
+ 11123, 8405, 717, 4237, 4389, 652,
+ 11123, 8405, 717, 4237, 5994,
+ 11123, 8405, 717, 4237, 7695, 7972,
+ 11123, 8405, 717, 4237, 7972,
+ 11123, 8405, 717, 4237, 8092,
+ 11123, 8405, 717, 4237, 9138,
+ 11123, 8405, 717, 4237, 9802,
+ 11123, 8405, 717, 4237, 9825, 2170,
+ 11123, 8405, 717, 4237, 9871, 2170,
+ 11123, 8405, 717, 4237, 10267, 9802,
+ 11123, 8405, 722,
+ 11123, 8405, 884,
+ 11123, 8405, 888,
+ 11123, 8405, 1338,
+ 11123, 8405, 1612,
+ 11123, 8405, 1770,
+ 11123, 8405, 2516,
+ 11123, 8405, 2732,
+ 11123, 8405, 3150,
+ 11123, 8405, 3186,
+ 11123, 8405, 5751, 8,
+ 11123, 8405, 5751, 16,
+ 11123, 8405, 5751, 40,
+ 11123, 8405, 5751, 138,
+ 11123, 8405, 5751, 196,
+ 11123, 8405, 5751, 216,
+ 11123, 8405, 5751, 236,
+ 11123, 8405, 5751, 290,
+ 11123, 8405, 5751, 292,
+ 11123, 8405, 5751, 306,
+ 11123, 8405, 5751, 462,
+ 11123, 8405, 5751, 556,
+ 11123, 8405, 5751, 590,
+ 11123, 8405, 5751, 670,
+ 11123, 8405, 5751, 722,
+ 11123, 8405, 5751, 884,
+ 11123, 8405, 5751, 1204,
+ 11123, 8405, 5751, 1338,
+ 11123, 8405, 5751, 2378,
+ 11123, 8405, 5751, 2516,
+ 11123, 8405, 5751, 2732,
+ 11123, 8405, 5751, 3146,
+ 11123, 8405, 5963, 8,
+ 11123, 8405, 5963, 16,
+ 11123, 8405, 5963, 28,
+ 11123, 8405, 5963, 40,
+ 11123, 8405, 5963, 100,
+ 11123, 8405, 5963, 138,
+ 11123, 8405, 5963, 216,
+ 11123, 8405, 5963, 292,
+ 11123, 8405, 5963, 306,
+ 11123, 8405, 5963, 364,
+ 11123, 8405, 5963, 426,
+ 11123, 8405, 5963, 462,
+ 11123, 8405, 5963, 496,
+ 11123, 8405, 5963, 556,
+ 11123, 8405, 5963, 590,
+ 11123, 8405, 5963, 622,
+ 11123, 8405, 5963, 652,
+ 11123, 8405, 5963, 717, 4237, 556,
+ 11123, 8405, 5963, 717, 4237, 3146,
+ 11123, 8405, 5963, 722,
+ 11123, 8405, 5963, 884,
+ 11123, 8405, 5963, 1080,
+ 11123, 8405, 5963, 1204,
+ 11123, 8405, 5963, 1338,
+ 11123, 8405, 5963, 1516,
+ 11123, 8405, 5963, 2046,
+ 11123, 8405, 5963, 2732,
+ 11123, 8405, 5963, 4895, 7803, 5758,
+ 11123, 8405, 8439, 16,
+ 11123, 8405, 8439, 196,
+ 11123, 8405, 8439, 306,
+ 11123, 8405, 8439, 510,
+ 11123, 8405, 8439, 717, 4237, 116,
+ 11123, 8405, 8439, 717, 4237, 556,
+ 11123, 8405, 8439, 717, 4237, 670,
+ 11123, 8405, 8439, 717, 4237, 792,
+ 11123, 8405, 8439, 717, 4237, 944,
+ 11123, 8405, 8439, 717, 4237, 996,
+ 11123, 8405, 8439, 717, 4237, 1260,
+ 11123, 8405, 8439, 717, 4237, 1512,
+ 11123, 8405, 8439, 717, 4237, 1770,
+ 11123, 8405, 8439, 717, 4237, 2030,
+ 11123, 8405, 8439, 717, 4237, 2566,
+ 11123, 8405, 8439, 717, 4237, 2746,
+ 11123, 8405, 8439, 717, 4237, 3146,
+ 11123, 8405, 8439, 717, 4237, 4016,
+ 11123, 8405, 8439, 3146,
+ 11123, 8439, 4223, 5836,
+ 11123, 8439, 6616,
+ 11123, 8516,
+ 11123, 10154,
+ 11163, 11228,
+ 11169, 7337, 5758,
+ 11172,
+ 11173, 6121, 2667, 2724,
+ 11191, 7390,
+ 11191, 10261, 10374,
+ 11195, 4926,
+ 11205, 8775, 1177, 8879, 10434,
+ 11205, 8775, 1177, 8881, 10434,
+ 11205, 8775, 1177, 8883, 10434,
+ 11205, 8775, 1177, 8885, 10434,
+ 11205, 8775, 1177, 8887, 10434,
+ 11205, 8775, 1177, 8889, 10434,
+ 11205, 8775, 1177, 8891, 10434,
+ 11205, 8775, 1177, 9305, 11114,
+ 11207, 4926,
+ 11217, 10265, 9610,
+ 11224,
+ 11242,
+ 11245, 6408,
+ 11245, 6409, 9537, 600,
+ 11245, 6409, 9537, 4848,
+ 11261, 2170,
+ 11261, 2540,
+ 11261, 2778,
+ 11261, 4200,
+ 11261, 4214,
+ 11261, 4849, 12114,
+ 11261, 5190,
+ 11261, 5445, 5758,
+ 11261, 6260,
+ 11261, 6722,
+ 11261, 7172,
+ 11261, 7443, 12114,
+ 11261, 7508,
+ 11261, 7694,
+ 11261, 8167, 5758,
+ 11263, 2724,
+ 11263, 6121, 10260,
+ 11263, 8004,
+ 11265, 5759, 9558,
+ 11265, 5759, 10408,
+ 11265, 5759, 11158,
+ 11265, 5759, 11160,
+ 11265, 6689, 2170,
+ 11265, 6689, 2540,
+ 11265, 6689, 2778,
+ 11265, 6689, 4200,
+ 11265, 6689, 4214,
+ 11265, 6689, 5190,
+ 11265, 6689, 6260,
+ 11265, 6689, 6722,
+ 11265, 6689, 7508,
+ 11265, 6689, 7694,
+ 11265, 7803, 5759, 9560,
+ 11265, 7803, 5759, 9566,
+ 11265, 7803, 5759, 10402,
+ 11265, 7803, 5759, 10404,
+ 11265, 7803, 5759, 11710,
+ 11265, 7803, 5759, 11712,
+ 11265, 8405, 0,
+ 11265, 8405, 8,
+ 11265, 8405, 16,
+ 11265, 8405, 28,
+ 11265, 8405, 40,
+ 11265, 8405, 66,
+ 11265, 8405, 100,
+ 11265, 8405, 116,
+ 11265, 8405, 138,
+ 11265, 8405, 188,
+ 11265, 8405, 196,
+ 11265, 8405, 216,
+ 11265, 8405, 236,
+ 11265, 8405, 292,
+ 11265, 8405, 306,
+ 11265, 8405, 332,
+ 11265, 8405, 364,
+ 11265, 8405, 392,
+ 11265, 8405, 462,
+ 11265, 8405, 496,
+ 11265, 8405, 510,
+ 11265, 8405, 524,
+ 11265, 8405, 556,
+ 11265, 8405, 610,
+ 11265, 8405, 622,
+ 11265, 8405, 638,
+ 11265, 8405, 652,
+ 11265, 8405, 670,
+ 11265, 8405, 1612,
+ 11265, 8405, 2030,
+ 11265, 8405, 2126,
+ 11265, 8405, 2610,
+ 11265, 10775, 5759, 9564,
+ 11265, 10775, 5759, 10406,
+ 11265, 10775, 5759, 11154,
+ 11355, 5758,
+ 11355, 10303, 5758,
+ 11355, 10472,
+ 11357, 1177, 439, 2681, 7790,
+ 11357, 1177, 1550,
+ 11357, 1177, 1749, 445, 7180,
+ 11357, 1177, 3803, 11754,
+ 11357, 1177, 4150,
+ 11357, 1177, 4223, 8056,
+ 11357, 1177, 6702,
+ 11357, 1177, 6865, 569, 4944,
+ 11357, 1177, 6994,
+ 11357, 1177, 7174,
+ 11357, 1177, 7428,
+ 11357, 1177, 7644,
+ 11357, 1177, 7770,
+ 11357, 1177, 7810,
+ 11357, 1177, 7952,
+ 11357, 1177, 8036,
+ 11357, 1177, 8042,
+ 11357, 1177, 8065, 7186,
+ 11357, 1177, 8156,
+ 11357, 1177, 8222,
+ 11357, 1177, 8394,
+ 11357, 1177, 8618,
+ 11357, 1177, 8650,
+ 11357, 1177, 8976,
+ 11357, 1177, 9026,
+ 11357, 1177, 9100,
+ 11357, 1177, 9110,
+ 11357, 1177, 9168,
+ 11357, 1177, 9276,
+ 11357, 1177, 9341, 3696,
+ 11357, 1177, 9395, 7592,
+ 11357, 1177, 9402,
+ 11357, 1177, 9460,
+ 11357, 1177, 9466,
+ 11357, 1177, 9550,
+ 11357, 1177, 9574,
+ 11357, 1177, 9626,
+ 11357, 1177, 9696,
+ 11357, 1177, 9832,
+ 11357, 1177, 10168,
+ 11357, 1177, 10210,
+ 11357, 1177, 10232,
+ 11357, 1177, 10252,
+ 11357, 1177, 10486,
+ 11357, 1177, 10540,
+ 11357, 1177, 10550,
+ 11357, 1177, 10673, 445, 9836,
+ 11357, 1177, 10747, 2186,
+ 11357, 1177, 10764,
+ 11357, 1177, 10776,
+ 11357, 1177, 10792,
+ 11357, 1177, 10800,
+ 11357, 1177, 10972,
+ 11357, 1177, 10998,
+ 11357, 1177, 11002,
+ 11357, 1177, 11012,
+ 11357, 1177, 11013, 274,
+ 11357, 1177, 11024,
+ 11357, 1177, 11086,
+ 11357, 1177, 11210,
+ 11357, 1177, 11234,
+ 11357, 1177, 11454,
+ 11357, 1177, 11456,
+ 11357, 1177, 11462,
+ 11357, 1177, 11486,
+ 11357, 1177, 11610,
+ 11357, 1177, 11622,
+ 11357, 1177, 11702,
+ 11357, 1177, 11752,
+ 11357, 1177, 11888,
+ 11357, 1177, 11916,
+ 11357, 1177, 12012,
+ 11357, 1177, 12026,
+ 11357, 1177, 12118,
+ 11357, 1177, 12392,
+ 11357, 1177, 12430,
+ 11357, 1177, 12434,
+ 11357, 1177, 12436,
+ 11357, 1177, 12898,
+ 11357, 1177, 12923, 445, 11484,
+ 11357, 1177, 12936,
+ 11360,
+ 11387, 11205, 8774,
+ 11389, 12117, 8774,
+ 11391, 11770,
+ 11391, 11772,
+ 11391, 11774,
+ 11391, 11776,
+ 11391, 11778,
+ 11391, 11780,
+ 11391, 11782,
+ 11391, 11784,
+ 11391, 11786,
+ 11391, 12160,
+ 11391, 12162,
+ 11391, 12164,
+ 11391, 12166,
+ 11391, 12168,
+ 11391, 12170,
+ 11391, 12172,
+ 11391, 12174,
+ 11391, 12176,
+ 11391, 12178,
+ 11391, 12180,
+ 11391, 12182,
+ 11391, 12184,
+ 11391, 12186,
+ 11391, 12188,
+ 11391, 12190,
+ 11391, 12192,
+ 11391, 12194,
+ 11391, 12196,
+ 11391, 12198,
+ 11391, 12200,
+ 11391, 12202,
+ 11391, 12204,
+ 11391, 12206,
+ 11391, 12208,
+ 11391, 12210,
+ 11391, 12212,
+ 11391, 12214,
+ 11391, 12216,
+ 11391, 12218,
+ 11391, 12220,
+ 11391, 12222,
+ 11391, 12224,
+ 11391, 12226,
+ 11391, 12228,
+ 11391, 12230,
+ 11391, 12232,
+ 11391, 12234,
+ 11391, 12236,
+ 11391, 12238,
+ 11391, 12240,
+ 11391, 12242,
+ 11391, 12244,
+ 11391, 12246,
+ 11391, 12248,
+ 11391, 12250,
+ 11391, 12252,
+ 11391, 12254,
+ 11391, 12256,
+ 11391, 12258,
+ 11391, 12260,
+ 11391, 12262,
+ 11391, 12264,
+ 11391, 12266,
+ 11391, 12268,
+ 11391, 12270,
+ 11391, 12272,
+ 11391, 12274,
+ 11391, 12276,
+ 11391, 12278,
+ 11391, 12280,
+ 11391, 12282,
+ 11391, 12284,
+ 11391, 12286,
+ 11391, 12288,
+ 11391, 12290,
+ 11391, 12292,
+ 11391, 12294,
+ 11391, 12296,
+ 11391, 12298,
+ 11391, 12300,
+ 11391, 12302,
+ 11391, 12304,
+ 11391, 12306,
+ 11391, 12308,
+ 11391, 12310,
+ 11391, 12312,
+ 11391, 12314,
+ 11391, 12316,
+ 11391, 12318,
+ 11391, 12320,
+ 11391, 12322,
+ 11391, 12324,
+ 11391, 12326,
+ 11391, 12328,
+ 11391, 12330,
+ 11391, 12332,
+ 11391, 12334,
+ 11391, 12336,
+ 11391, 12338,
+ 11391, 12542,
+ 11391, 12544,
+ 11391, 12546,
+ 11391, 12548,
+ 11391, 12550,
+ 11391, 12552,
+ 11391, 12554,
+ 11391, 12556,
+ 11391, 12558,
+ 11391, 12560,
+ 11391, 12562,
+ 11391, 12564,
+ 11391, 12566,
+ 11391, 12568,
+ 11391, 12570,
+ 11391, 12572,
+ 11391, 12574,
+ 11391, 12576,
+ 11391, 12578,
+ 11391, 12580,
+ 11391, 12582,
+ 11391, 12584,
+ 11391, 12586,
+ 11391, 12588,
+ 11391, 12590,
+ 11391, 12592,
+ 11391, 12594,
+ 11391, 12596,
+ 11391, 12598,
+ 11391, 12600,
+ 11391, 12602,
+ 11391, 12604,
+ 11391, 12606,
+ 11391, 12608,
+ 11391, 12610,
+ 11391, 12612,
+ 11391, 12614,
+ 11391, 12616,
+ 11391, 12618,
+ 11391, 12620,
+ 11391, 12622,
+ 11391, 12624,
+ 11391, 12626,
+ 11391, 12628,
+ 11391, 12630,
+ 11391, 12632,
+ 11391, 12634,
+ 11391, 12636,
+ 11391, 12638,
+ 11391, 12640,
+ 11391, 12642,
+ 11391, 12644,
+ 11391, 12646,
+ 11391, 12648,
+ 11391, 12650,
+ 11391, 12652,
+ 11391, 12654,
+ 11391, 12656,
+ 11391, 12658,
+ 11391, 12660,
+ 11391, 12662,
+ 11391, 12664,
+ 11391, 12666,
+ 11391, 12668,
+ 11391, 12670,
+ 11391, 12672,
+ 11391, 12674,
+ 11391, 12676,
+ 11391, 12678,
+ 11391, 12680,
+ 11391, 12682,
+ 11391, 12684,
+ 11391, 12686,
+ 11391, 12688,
+ 11391, 12690,
+ 11391, 12692,
+ 11391, 12694,
+ 11391, 12696,
+ 11391, 12698,
+ 11391, 12700,
+ 11391, 12702,
+ 11391, 12704,
+ 11391, 12706,
+ 11391, 12708,
+ 11391, 12710,
+ 11391, 12712,
+ 11391, 12714,
+ 11391, 12716,
+ 11391, 12718,
+ 11391, 12720,
+ 11391, 12722,
+ 11391, 12724,
+ 11391, 12726,
+ 11391, 12728,
+ 11391, 12730,
+ 11391, 12732,
+ 11391, 12734,
+ 11391, 12736,
+ 11391, 12738,
+ 11391, 12740,
+ 11391, 12742,
+ 11391, 12744,
+ 11391, 12746,
+ 11391, 12748,
+ 11391, 12750,
+ 11391, 12752,
+ 11391, 12754,
+ 11391, 12756,
+ 11391, 12758,
+ 11391, 12760,
+ 11391, 12762,
+ 11391, 12764,
+ 11391, 12766,
+ 11391, 12768,
+ 11391, 12770,
+ 11391, 12772,
+ 11391, 12774,
+ 11391, 12776,
+ 11391, 12778,
+ 11391, 12780,
+ 11391, 12782,
+ 11391, 12784,
+ 11391, 12786,
+ 11391, 12788,
+ 11391, 12790,
+ 11391, 12792,
+ 11391, 12794,
+ 11391, 12796,
+ 11391, 12798,
+ 11391, 12800,
+ 11391, 12802,
+ 11391, 12804,
+ 11391, 12806,
+ 11391, 12808,
+ 11391, 12810,
+ 11391, 12812,
+ 11391, 12814,
+ 11391, 12816,
+ 11391, 12818,
+ 11391, 12820,
+ 11391, 12822,
+ 11391, 12824,
+ 11391, 12826,
+ 11391, 12828,
+ 11391, 12830,
+ 11391, 12832,
+ 11391, 12834,
+ 11391, 12836,
+ 11391, 12838,
+ 11391, 12840,
+ 11391, 12842,
+ 11391, 12844,
+ 11391, 12846,
+ 11391, 12848,
+ 11391, 12850,
+ 11391, 12852,
+ 11391, 12854,
+ 11424,
+ 11427, 2681, 7104,
+ 11445, 1809, 4876,
+ 11445, 10388,
+ 11449, 7908,
+ 11451, 90,
+ 11451, 7173, 5758,
+ 11452,
+ 11465, 11385, 8774,
+ 11475, 5238,
+ 11477, 436,
+ 11477, 5759, 4423, 9721, 1044,
+ 11477, 5759, 7282,
+ 11477, 5759, 8916,
+ 11477, 5759, 9824,
+ 11477, 5759, 9870,
+ 11477, 5759, 9904,
+ 11477, 5759, 11900,
+ 11477, 6379, 7908,
+ 11477, 6646,
+ 11477, 6689, 2170,
+ 11477, 6689, 2540,
+ 11477, 6689, 2778,
+ 11477, 6689, 4200,
+ 11477, 6689, 4214,
+ 11477, 6689, 5190,
+ 11477, 6689, 6260,
+ 11477, 6689, 6722,
+ 11477, 6689, 7508,
+ 11477, 6689, 7694,
+ 11477, 6875, 7908,
+ 11477, 7803, 5759, 8,
+ 11477, 7803, 5759, 16,
+ 11477, 7803, 5759, 28,
+ 11477, 7803, 5759, 40,
+ 11477, 7803, 5759, 58,
+ 11477, 7803, 5759, 72,
+ 11477, 7803, 5759, 92,
+ 11477, 7803, 5759, 266,
+ 11477, 7803, 5759, 606,
+ 11477, 7803, 5759, 7551, 8,
+ 11477, 7803, 5759, 7551, 28,
+ 11477, 7803, 5759, 8031, 8,
+ 11477, 7803, 5759, 8031, 28,
+ 11477, 7803, 5759, 9827, 22,
+ 11477, 7803, 5759, 9827, 34,
+ 11477, 7803, 5759, 9827, 344,
+ 11477, 7803, 5759, 9827, 518,
+ 11477, 8153, 6646,
+ 11477, 8405, 0,
+ 11477, 8405, 8,
+ 11477, 8405, 16,
+ 11477, 8405, 28,
+ 11477, 8405, 40,
+ 11477, 8405, 58,
+ 11477, 8405, 72,
+ 11477, 8405, 92,
+ 11477, 8405, 100,
+ 11477, 8405, 116,
+ 11477, 8405, 138,
+ 11477, 8405, 196,
+ 11477, 8405, 216,
+ 11477, 8405, 236,
+ 11477, 8405, 266,
+ 11477, 8405, 292,
+ 11477, 8405, 306,
+ 11477, 8405, 332,
+ 11477, 8405, 364,
+ 11477, 8405, 392,
+ 11477, 8405, 462,
+ 11477, 8405, 496,
+ 11477, 8405, 510,
+ 11477, 8405, 524,
+ 11477, 8405, 556,
+ 11477, 8405, 606,
+ 11477, 8405, 610,
+ 11477, 8405, 652,
+ 11477, 8405, 670,
+ 11477, 8405, 766,
+ 11477, 8405, 792,
+ 11477, 8405, 884,
+ 11477, 8405, 974,
+ 11477, 8405, 996,
+ 11477, 8405, 1250,
+ 11477, 8405, 1260,
+ 11477, 8405, 1512,
+ 11477, 8405, 1528,
+ 11477, 8405, 1612,
+ 11477, 8405, 1796,
+ 11477, 8405, 2030,
+ 11477, 8405, 2076,
+ 11477, 8405, 2126,
+ 11477, 8405, 2212,
+ 11477, 8405, 2410,
+ 11477, 8405, 2438,
+ 11477, 8405, 2516,
+ 11477, 8405, 2566,
+ 11477, 8405, 2678,
+ 11477, 8405, 2746,
+ 11477, 8405, 3110,
+ 11477, 8405, 4008,
+ 11477, 8405, 4016,
+ 11477, 8405, 4320,
+ 11477, 8405, 4748,
+ 11477, 8405, 4888,
+ 11477, 8405, 5234,
+ 11477, 8405, 5994,
+ 11477, 8405, 6658,
+ 11477, 8405, 7551, 0,
+ 11477, 8405, 7551, 8,
+ 11477, 8405, 7551, 28,
+ 11477, 8405, 8031, 0,
+ 11477, 8405, 8031, 8,
+ 11477, 8405, 8031, 28,
+ 11477, 8405, 9313, 5836,
+ 11477, 8405, 9827, 22,
+ 11477, 8405, 9827, 34,
+ 11477, 8405, 9827, 344,
+ 11477, 8405, 9827, 518,
+ 11477, 8755, 5759, 8892,
+ 11477, 8755, 5759, 9868,
+ 11477, 12391, 5758,
+ 11479, 9042,
+ 11605, 12492,
+ 11621, 568,
+ 11621, 6121, 4215, 4113, 6376,
+ 11641, 7593, 8405, 16,
+ 11641, 7593, 8405, 468,
+ 11641, 7593, 8405, 660,
+ 11641, 7593, 8405, 664,
+ 11641, 7593, 8405, 746,
+ 11641, 7593, 8405, 807, 3096,
+ 11641, 7593, 8405, 2176,
+ 11641, 7593, 8405, 2184,
+ 11641, 7593, 8405, 2516,
+ 11641, 7593, 8405, 2736,
+ 11641, 7593, 8405, 2808,
+ 11641, 7593, 8405, 3810,
+ 11641, 7593, 8405, 4198,
+ 11641, 7593, 8405, 4406,
+ 11641, 7593, 8405, 4626,
+ 11641, 7593, 8405, 4712,
+ 11641, 7593, 8405, 5718,
+ 11641, 7593, 8405, 6076,
+ 11641, 7593, 8405, 6188,
+ 11641, 7593, 8405, 6198,
+ 11641, 7593, 8405, 6200,
+ 11641, 7593, 8405, 6698,
+ 11641, 7593, 8405, 6710,
+ 11641, 7593, 8405, 6810,
+ 11641, 7593, 8405, 7210,
+ 11641, 7593, 8405, 7444,
+ 11641, 7593, 8405, 7590,
+ 11641, 7593, 8405, 7593, 3096,
+ 11641, 7593, 8405, 7593, 3097, 6121, 5878,
+ 11641, 7593, 8405, 7856,
+ 11641, 7593, 8405, 8050,
+ 11641, 7593, 8405, 8124,
+ 11641, 7593, 8405, 8606,
+ 11641, 7593, 8405, 8872,
+ 11641, 7593, 8405, 8958,
+ 11641, 7593, 8405, 9310,
+ 11641, 7593, 8405, 9363, 4626,
+ 11641, 7593, 8405, 9371, 807, 3096,
+ 11641, 7593, 8405, 9371, 7593, 3096,
+ 11641, 7593, 8405, 9372,
+ 11641, 7593, 8405, 9434,
+ 11641, 7593, 8405, 9486,
+ 11641, 7593, 8405, 9686,
+ 11641, 7593, 8405, 9727, 236,
+ 11641, 7593, 8405, 9850,
+ 11641, 7593, 8405, 10299, 9486,
+ 11641, 7593, 8405, 11867, 0,
+ 11641, 9063, 8405, 16,
+ 11641, 9063, 8405, 468,
+ 11641, 9063, 8405, 660,
+ 11641, 9063, 8405, 664,
+ 11641, 9063, 8405, 746,
+ 11641, 9063, 8405, 807, 3096,
+ 11641, 9063, 8405, 2176,
+ 11641, 9063, 8405, 2184,
+ 11641, 9063, 8405, 2516,
+ 11641, 9063, 8405, 2736,
+ 11641, 9063, 8405, 2808,
+ 11641, 9063, 8405, 3810,
+ 11641, 9063, 8405, 4198,
+ 11641, 9063, 8405, 4406,
+ 11641, 9063, 8405, 4626,
+ 11641, 9063, 8405, 4712,
+ 11641, 9063, 8405, 5718,
+ 11641, 9063, 8405, 6076,
+ 11641, 9063, 8405, 6188,
+ 11641, 9063, 8405, 6198,
+ 11641, 9063, 8405, 6200,
+ 11641, 9063, 8405, 6698,
+ 11641, 9063, 8405, 6710,
+ 11641, 9063, 8405, 6810,
+ 11641, 9063, 8405, 7210,
+ 11641, 9063, 8405, 7444,
+ 11641, 9063, 8405, 7590,
+ 11641, 9063, 8405, 7593, 3096,
+ 11641, 9063, 8405, 7593, 3097, 6121, 5878,
+ 11641, 9063, 8405, 7856,
+ 11641, 9063, 8405, 8050,
+ 11641, 9063, 8405, 8124,
+ 11641, 9063, 8405, 8606,
+ 11641, 9063, 8405, 8872,
+ 11641, 9063, 8405, 8958,
+ 11641, 9063, 8405, 9310,
+ 11641, 9063, 8405, 9363, 4626,
+ 11641, 9063, 8405, 9371, 807, 3096,
+ 11641, 9063, 8405, 9371, 7593, 3096,
+ 11641, 9063, 8405, 9372,
+ 11641, 9063, 8405, 9434,
+ 11641, 9063, 8405, 9486,
+ 11641, 9063, 8405, 9686,
+ 11641, 9063, 8405, 9727, 236,
+ 11641, 9063, 8405, 9850,
+ 11641, 9063, 8405, 10299, 9486,
+ 11641, 9063, 8405, 11867, 0,
+ 11646,
+ 11649, 760,
+ 11649, 4877, 10982,
+ 11649, 4923, 6121, 8759, 5758,
+ 11649, 5643, 8412,
+ 11649, 5643, 8414,
+ 11649, 5643, 8416,
+ 11649, 5643, 8418,
+ 11649, 6505, 9338,
+ 11649, 10154,
+ 11651, 8774,
+ 11661, 10256,
+ 11667, 5759, 761, 6376,
+ 11667, 5759, 1045, 6490,
+ 11667, 5759, 6548,
+ 11667, 5759, 8153, 5551, 6490,
+ 11667, 5759, 9824,
+ 11667, 5759, 9870,
+ 11667, 6689, 2170,
+ 11667, 6689, 2778,
+ 11667, 6689, 4214,
+ 11667, 6689, 7694,
+ 11667, 7803, 5759, 8,
+ 11667, 7803, 5759, 16,
+ 11667, 7803, 5759, 28,
+ 11667, 7803, 5759, 40,
+ 11667, 7803, 5759, 9827, 34,
+ 11667, 7803, 8399, 4926,
+ 11667, 8405, 0,
+ 11667, 8405, 100,
+ 11667, 8405, 116,
+ 11667, 8405, 138,
+ 11667, 8405, 216,
+ 11667, 8405, 236,
+ 11667, 8405, 292,
+ 11667, 8405, 306,
+ 11667, 8405, 332,
+ 11667, 8405, 364,
+ 11667, 8405, 392,
+ 11667, 8405, 462,
+ 11667, 8405, 510,
+ 11667, 8405, 524,
+ 11667, 8405, 556,
+ 11667, 8405, 610,
+ 11667, 8405, 652,
+ 11667, 8405, 670,
+ 11667, 8405, 792,
+ 11667, 8405, 884,
+ 11667, 8405, 974,
+ 11667, 8405, 996,
+ 11667, 8405, 1260,
+ 11667, 8405, 1612,
+ 11667, 8405, 1642,
+ 11667, 8405, 2076,
+ 11667, 8405, 2126,
+ 11667, 8405, 2212,
+ 11667, 8405, 2516,
+ 11667, 8405, 2566,
+ 11667, 8405, 2678,
+ 11667, 8405, 2746,
+ 11667, 8405, 4016,
+ 11667, 8405, 5994,
+ 11667, 8405, 7750,
+ 11667, 8525, 2171, 9344,
+ 11667, 8525, 2171, 10624,
+ 11667, 8525, 2670,
+ 11667, 8525, 8876,
+ 11667, 8916,
+ 11667, 12133, 1044,
+ 11667, 12133, 6646,
+ 11667, 12133, 7108,
+ 11667, 12133, 7114,
+ 11667, 12133, 7593, 8056,
+ 11667, 12133, 8056,
+ 11667, 12133, 8153, 6646,
+ 11667, 12133, 9965, 760,
+ 11667, 12133, 10318,
+ 11687, 8774,
+ 11700,
+ 11702,
+ 11725, 8153, 12132,
+ 11725, 8717, 12132,
+ 11727, 6129, 11228,
+ 11727, 8405, 238,
+ 11727, 8405, 468,
+ 11727, 8405, 710,
+ 11727, 8405, 714,
+ 11727, 8405, 788,
+ 11727, 8405, 1366,
+ 11727, 8405, 1578,
+ 11727, 8405, 1892,
+ 11727, 8405, 2110,
+ 11727, 8405, 2318,
+ 11727, 8405, 2658,
+ 11727, 8405, 2674,
+ 11727, 8405, 2916,
+ 11727, 8405, 3080,
+ 11727, 8405, 3126,
+ 11727, 8405, 4058,
+ 11727, 8405, 4238,
+ 11727, 8405, 4832,
+ 11727, 8405, 5568,
+ 11727, 8405, 5624,
+ 11727, 8405, 5652,
+ 11727, 8405, 5698,
+ 11727, 8525, 2170,
+ 11727, 8525, 2171, 9344,
+ 11727, 8525, 2670,
+ 11727, 8525, 8876,
+ 11731, 5758,
+ 11736,
+ 11740,
+ 11745, 10261, 10374,
+ 11747, 6741, 568,
+ 11749, 5758,
+ 11763, 731, 10763, 6434,
+ 11765, 2779, 8289, 6434,
+ 11765, 6105, 6434,
+ 11765, 6434,
+ 11765, 6435, 569, 760,
+ 11765, 6435, 569, 6505, 9158,
+ 11765, 6435, 4221, 760,
+ 11765, 6435, 4221, 761, 569, 6505, 9158,
+ 11765, 6435, 5387, 11097, 6434,
+ 11765, 6435, 6121, 2697, 9810,
+ 11765, 6435, 6121, 2697, 10958,
+ 11765, 6435, 6121, 4530,
+ 11765, 6435, 6121, 4896,
+ 11765, 6435, 6121, 5445, 6490,
+ 11765, 6435, 6121, 5878,
+ 11765, 6435, 6121, 5879, 6121, 8153, 10677, 8758,
+ 11765, 6435, 6121, 5879, 6121, 10677, 8758,
+ 11765, 6435, 6121, 8077, 10958,
+ 11765, 6435, 6121, 8151, 5832,
+ 11765, 6435, 6121, 8153, 10677, 8758,
+ 11765, 6435, 6121, 8758,
+ 11765, 6435, 6121, 10677, 8758,
+ 11765, 6435, 6377, 7551, 11097, 6434,
+ 11765, 6435, 6377, 7709, 10374,
+ 11765, 6435, 6377, 7919, 6741, 568,
+ 11765, 6435, 6377, 9633, 7709, 10374,
+ 11765, 6435, 6377, 9633, 7919, 6741, 568,
+ 11765, 6435, 9785, 46,
+ 11765, 6435, 9785, 10578,
+ 11765, 6435, 9785, 12472,
+ 11765, 7821, 6434,
+ 11765, 7821, 6435, 4221, 6102,
+ 11765, 8097, 6434,
+ 11765, 8153, 3993, 6434,
+ 11765, 8153, 6434,
+ 11765, 8153, 6435, 4221, 760,
+ 11765, 8153, 6435, 6121, 8758,
+ 11765, 8153, 6435, 6121, 10677, 8758,
+ 11765, 8153, 11430,
+ 11765, 8561, 7944,
+ 11765, 8849, 3993, 6434,
+ 11765, 8849, 6434,
+ 11765, 9327, 5387, 11097, 9326,
+ 11765, 9327, 6121, 3713, 601, 569, 760,
+ 11765, 9327, 6121, 3713, 601, 4221, 760,
+ 11765, 9327, 6121, 3713, 601, 6377, 4895, 3992,
+ 11765, 9327, 6121, 3713, 601, 6377, 11097, 9327, 6121, 3713, 600,
+ 11765, 9327, 6121, 3713, 601, 6377, 11765, 9327, 6121, 3713, 4116,
+ 11765, 9327, 6121, 3713, 4117, 569, 760,
+ 11765, 9327, 6121, 3713, 4117, 4221, 760,
+ 11765, 9327, 6121, 3713, 4117, 6377, 11097, 9327, 6121, 3713, 4116,
+ 11765, 9327, 6121, 3713, 4117, 6491, 4895, 3992,
+ 11765, 9327, 6121, 3713, 9810,
+ 11765, 9327, 6121, 3713, 10958,
+ 11765, 10531, 6434,
+ 11765, 11191, 6434,
+ 11765, 11430,
+ 11765, 11875, 6435, 4221, 760,
+ 11765, 11875, 6435, 6121, 5878,
+ 11765, 11875, 6435, 6121, 5879, 6121, 8153, 10677, 8758,
+ 11765, 11875, 6435, 6121, 5879, 6121, 10677, 8758,
+ 11765, 11875, 6435, 6121, 8153, 10677, 8758,
+ 11765, 11875, 6435, 6121, 10677, 8758,
+ 11765, 11875, 8849, 3993, 6434,
+ 11765, 12103, 6434,
+ 11769, 5759, 8916,
+ 11769, 5759, 9824,
+ 11769, 5759, 9870,
+ 11769, 6646,
+ 11769, 6689, 2170,
+ 11769, 6689, 2540,
+ 11769, 6689, 2778,
+ 11769, 6689, 4200,
+ 11769, 6689, 4214,
+ 11769, 6689, 5190,
+ 11769, 6689, 6260,
+ 11769, 6689, 6722,
+ 11769, 6689, 7508,
+ 11769, 6689, 7694,
+ 11769, 7803, 5759, 8,
+ 11769, 7803, 5759, 16,
+ 11769, 7803, 5759, 28,
+ 11769, 7803, 5759, 40,
+ 11769, 7803, 5759, 58,
+ 11769, 7803, 5759, 72,
+ 11769, 7803, 5759, 92,
+ 11769, 7803, 5759, 162,
+ 11769, 7803, 5759, 266,
+ 11769, 7803, 5759, 440,
+ 11769, 7803, 5759, 606,
+ 11769, 7803, 5759, 9827, 22,
+ 11769, 7803, 5759, 9827, 34,
+ 11769, 7803, 5759, 9827, 344,
+ 11769, 7803, 5759, 9827, 518,
+ 11769, 8153, 6646,
+ 11769, 8405, 0,
+ 11769, 8405, 8,
+ 11769, 8405, 16,
+ 11769, 8405, 28,
+ 11769, 8405, 40,
+ 11769, 8405, 58,
+ 11769, 8405, 72,
+ 11769, 8405, 92,
+ 11769, 8405, 100,
+ 11769, 8405, 116,
+ 11769, 8405, 138,
+ 11769, 8405, 162,
+ 11769, 8405, 216,
+ 11769, 8405, 236,
+ 11769, 8405, 266,
+ 11769, 8405, 292,
+ 11769, 8405, 306,
+ 11769, 8405, 332,
+ 11769, 8405, 364,
+ 11769, 8405, 392,
+ 11769, 8405, 440,
+ 11769, 8405, 462,
+ 11769, 8405, 510,
+ 11769, 8405, 524,
+ 11769, 8405, 556,
+ 11769, 8405, 606,
+ 11769, 8405, 610,
+ 11769, 8405, 652,
+ 11769, 8405, 792,
+ 11769, 8405, 884,
+ 11769, 8405, 974,
+ 11769, 8405, 996,
+ 11769, 8405, 1260,
+ 11769, 8405, 1512,
+ 11769, 8405, 1612,
+ 11769, 8405, 1796,
+ 11769, 8405, 2030,
+ 11769, 8405, 2076,
+ 11769, 8405, 2126,
+ 11769, 8405, 2212,
+ 11769, 8405, 2516,
+ 11769, 8405, 2566,
+ 11769, 8405, 2678,
+ 11769, 8405, 2746,
+ 11769, 8405, 4016,
+ 11769, 8405, 5994,
+ 11769, 8405, 9827, 22,
+ 11769, 8405, 9827, 34,
+ 11769, 8405, 9827, 344,
+ 11769, 8405, 9827, 518,
+ 11769, 10775, 5759, 6888,
+ 11793, 9611, 6121, 8005, 8064,
+ 11801, 5385, 826,
+ 11819, 7608,
+ 11859, 8022,
+ 11881, 8774,
+ 11893, 1611, 8774,
+ 11899, 10513, 7821, 11765, 6434,
+ 11905, 10212,
+ 11909, 8774,
+ 11910,
+ 11921, 568,
+ 11922,
+ 11924,
+ 12007, 6741, 569, 445, 11098,
+ 12007, 6741, 569, 445, 12472,
+ 12007, 9705, 6741, 569, 445, 11098,
+ 12007, 9705, 6741, 569, 445, 12472,
+ 12007, 9705, 11099, 445, 6741, 568,
+ 12007, 9705, 12473, 445, 6741, 568,
+ 12015, 568,
+ 12017, 4926,
+ 12017, 10469, 4926,
+ 12021, 7608,
+ 12041, 7382,
+ 12043, 4223, 5836,
+ 12043, 4389, 4193, 7608,
+ 12043, 6616,
+ 12043, 7097, 5965, 4926,
+ 12043, 7608,
+ 12043, 8525, 6260,
+ 12043, 8649, 5965, 4926,
+ 12043, 9099, 4926,
+ 12043, 10161, 5965, 4926,
+ 12043, 10799, 5965, 4926,
+ 12043, 11067, 4926,
+ 12043, 11353, 4877, 4183, 11229, 8774,
+ 12043, 11353, 8775, 1177, 973, 2170,
+ 12043, 11353, 8775, 1177, 973, 2540,
+ 12043, 11353, 8775, 1177, 973, 2670,
+ 12043, 11353, 8775, 1177, 973, 2778,
+ 12043, 11353, 8775, 1177, 973, 4200,
+ 12043, 11353, 8775, 1177, 973, 4214,
+ 12043, 11353, 8775, 1177, 973, 5190,
+ 12043, 11353, 8775, 1177, 973, 6722,
+ 12043, 11353, 8775, 1177, 973, 7508,
+ 12043, 11353, 8775, 1177, 973, 7694,
+ 12043, 11353, 8775, 1177, 973, 8162,
+ 12043, 11353, 8775, 1177, 973, 8820,
+ 12043, 11353, 8775, 1177, 973, 8874,
+ 12043, 11353, 8775, 1177, 973, 8876,
+ 12043, 11353, 8775, 1177, 973, 9286,
+ 12043, 11353, 8775, 1177, 973, 9700,
+ 12043, 11353, 8775, 1177, 973, 10150,
+ 12043, 11353, 8775, 1177, 973, 10200,
+ 12043, 11353, 8775, 1177, 973, 10360,
+ 12043, 11353, 8775, 1177, 973, 10622,
+ 12043, 11353, 8775, 1177, 973, 11232,
+ 12043, 11353, 8775, 1177, 973, 11854,
+ 12043, 11353, 8775, 1177, 973, 11868,
+ 12043, 11353, 8775, 1177, 973, 11870,
+ 12043, 11353, 8775, 1177, 973, 11872,
+ 12043, 11353, 8775, 1177, 973, 12374,
+ 12043, 11353, 8775, 1177, 973, 12376,
+ 12043, 11353, 8775, 1177, 973, 12378,
+ 12043, 11353, 8775, 1177, 973, 12888,
+ 12043, 11353, 8775, 1177, 973, 12890,
+ 12043, 11353, 8775, 1177, 973, 12892,
+ 12043, 11353, 8775, 1177, 1870,
+ 12043, 11353, 8775, 1177, 4541, 2170,
+ 12043, 11353, 8775, 1177, 4541, 2540,
+ 12043, 11353, 8775, 1177, 4541, 2670,
+ 12043, 11353, 8775, 1177, 4541, 2778,
+ 12043, 11353, 8775, 1177, 4541, 4200,
+ 12043, 11353, 8775, 1177, 4541, 4214,
+ 12043, 11353, 8775, 1177, 4541, 5190,
+ 12043, 11353, 8775, 1177, 4541, 6260,
+ 12043, 11353, 8775, 1177, 4541, 6722,
+ 12043, 11353, 8775, 1177, 4541, 7508,
+ 12043, 11353, 8775, 1177, 4541, 7694,
+ 12043, 11353, 8775, 1177, 4541, 8162,
+ 12043, 11353, 8775, 1177, 4541, 8874,
+ 12043, 11353, 8775, 1177, 4541, 8876,
+ 12043, 11353, 8775, 1177, 4541, 9286,
+ 12043, 11353, 8775, 1177, 4541, 9700,
+ 12043, 11353, 8775, 1177, 4541, 10150,
+ 12043, 11353, 8775, 1177, 4541, 10200,
+ 12043, 11353, 8775, 1177, 4541, 10360,
+ 12043, 11353, 8775, 1177, 4541, 10622,
+ 12043, 11353, 8775, 1177, 4541, 11232,
+ 12043, 11353, 8775, 1177, 4541, 11868,
+ 12043, 11353, 8775, 1177, 4541, 11872,
+ 12043, 11353, 8775, 1177, 4541, 12376,
+ 12043, 11353, 8775, 1177, 4541, 12892,
+ 12043, 11353, 8775, 1177, 4682,
+ 12043, 11353, 8775, 1177, 4684,
+ 12043, 11353, 8775, 1177, 6420,
+ 12043, 11353, 8775, 1177, 7136,
+ 12043, 11353, 8775, 1177, 7958,
+ 12043, 11353, 8775, 1177, 9374,
+ 12043, 11353, 8775, 1177, 9528,
+ 12043, 11353, 8775, 1177, 9990,
+ 12043, 11353, 8775, 1177, 10176,
+ 12043, 11353, 8775, 1177, 10368,
+ 12043, 11353, 8775, 1177, 11230,
+ 12043, 11391, 11054,
+ 12043, 11415, 1861, 4926,
+ 12043, 11415, 2171, 4926,
+ 12043, 11415, 2725, 4926,
+ 12043, 11415, 2779, 4926,
+ 12043, 11415, 4215, 4926,
+ 12043, 11415, 6717, 4926,
+ 12043, 11415, 6791, 4926,
+ 12043, 11415, 7687, 4926,
+ 12043, 11415, 7695, 4926,
+ 12043, 11415, 8005, 4926,
+ 12043, 11415, 8233, 4926,
+ 12043, 11415, 8291, 4926,
+ 12043, 11415, 8473, 4926,
+ 12043, 11415, 8681, 4926,
+ 12043, 11415, 9433, 4926,
+ 12043, 11415, 9633, 4926,
+ 12043, 11937, 10759, 4223, 10580,
+ 12043, 11937, 10759, 4849, 569, 7442,
+ 12043, 11937, 10759, 4849, 569, 8473, 721, 7442,
+ 12043, 11937, 10759, 6377, 569, 6490,
+ 12043, 11937, 10759, 6377, 569, 8473, 721, 6490,
+ 12043, 11937, 10759, 10386,
+ 12043, 11937, 10759, 10581, 4221, 4848,
+ 12043, 11937, 10759, 10581, 4221, 6376,
+ 12043, 11937, 10759, 10581, 4221, 6490,
+ 12043, 11937, 10759, 10581, 4221, 7121, 4848,
+ 12043, 11937, 10759, 10581, 4221, 7773, 4848,
+ 12043, 11937, 10759, 10581, 4221, 7773, 7442,
+ 12055, 8724,
+ 12058,
+ 12061, 11415, 7922,
+ 12061, 11415, 11228,
+ 12061, 11415, 11850,
+ 12063, 8197, 721, 4923, 5758,
+ 12064,
+ 12075, 7821, 11765, 6434,
+ 12108,
+ 12117, 5758,
+ 12122,
+ 12133, 7608,
+ 12135, 5758,
+ 12143, 10758,
+ 12156,
+ 12342,
+ 12355, 2170,
+ 12355, 2540,
+ 12355, 2778,
+ 12355, 4200,
+ 12355, 4214,
+ 12355, 4849, 12114,
+ 12355, 5190,
+ 12355, 5445, 5758,
+ 12355, 6260,
+ 12355, 6722,
+ 12355, 7089, 7593, 8405, 16,
+ 12355, 7089, 7593, 8405, 26,
+ 12355, 7172,
+ 12355, 7443, 12114,
+ 12355, 7508,
+ 12355, 7694,
+ 12355, 8167, 5758,
+ 12371, 12492,
+ 12383, 10643, 6121, 4849, 4389, 6504,
+ 12383, 10643, 6121, 7443, 4389, 6504,
+ 12396,
+ 12399, 445, 10780,
+ 12403, 2209, 2671, 10625, 5758,
+ 12403, 2209, 7171, 5758,
+ 12403, 3961, 5566,
+ 12403, 6689, 2170,
+ 12403, 6689, 2540,
+ 12403, 6689, 2778,
+ 12403, 6689, 4200,
+ 12403, 6689, 4214,
+ 12403, 6689, 5190,
+ 12403, 6689, 6260,
+ 12403, 6689, 6722,
+ 12403, 6689, 7508,
+ 12403, 6689, 7694,
+ 12403, 8233, 5566,
+ 12413, 9063, 4,
+ 12413, 9063, 14,
+ 12413, 9063, 16,
+ 12413, 9063, 34,
+ 12413, 9063, 50,
+ 12428,
+ 12461, 10346,
+ 12463, 6505, 8056,
+ 12463, 6505, 8744,
+ 12463, 6505, 9158,
+ 12463, 7821, 8056,
+ 12463, 7821, 8744,
+ 12463, 7821, 9158,
+ 12464,
+ 12467, 10513, 7821, 11765, 6434,
+ 12473, 445, 6741, 568,
+ 12473, 445, 9705, 6741, 568,
+ 12473, 445, 9705, 6741, 569, 6121, 1045, 6376,
+ 12473, 445, 9705, 6741, 569, 6121, 1045, 6377, 4848,
+ 12473, 445, 9705, 6741, 569, 6121, 1045, 8318,
+ 12473, 445, 11098,
+ 12473, 445, 11621, 568,
+ 12473, 445, 11896,
+ 12473, 721, 2091, 11896,
+ 12473, 721, 12345, 2091, 6741, 568,
+ 12473, 835, 2091, 6741, 568,
+ 12473, 835, 2091, 11621, 568,
+ 12473, 5387, 6741, 568,
+ 12473, 5758,
+ 12473, 6121, 1044,
+ 12473, 6121, 8057, 8318,
+ 12473, 6121, 10469, 4927, 6376,
+ 12473, 6377, 9693, 445, 6740,
+ 12473, 6377, 9693, 6377, 11098,
+ 12473, 6377, 9705, 6741, 6377, 11099, 6377, 9705, 6740,
+ 12473, 6377, 11099, 6377, 12007, 6740,
+ 12473, 6377, 11765, 6434,
+ 12473, 6377, 12007, 6741, 6377, 11098,
+ 12473, 6741, 569, 445, 11098,
+ 12473, 7991, 11098,
+ 12473, 8065, 115, 6628,
+ 12473, 8065, 115, 6629, 6377, 9705, 6740,
+ 12473, 12105, 11098,
+ 12478,
+ 12480,
+ 12492,
+ 12493, 6121, 1044,
+ 12493, 6121, 9437, 720,
+ 12493, 6121, 9546,
+ 12493, 6377, 761, 6377, 7768,
+ 12493, 6377, 7768,
+ 12493, 7991, 721, 8329, 6121, 12492,
+ 12505, 3803, 477, 8774,
+ 12505, 3803, 2217, 8774,
+ 12505, 3803, 2413, 8774,
+ 12505, 3803, 6689, 2170,
+ 12505, 3803, 6689, 2540,
+ 12505, 3803, 6689, 2778,
+ 12505, 3803, 6689, 4200,
+ 12505, 3803, 6689, 4214,
+ 12505, 3803, 6689, 5190,
+ 12505, 3803, 6689, 6260,
+ 12505, 3803, 6689, 6722,
+ 12505, 3803, 6689, 7508,
+ 12505, 3803, 6689, 7694,
+ 12505, 3803, 7023, 8774,
+ 12505, 3803, 7202,
+ 12505, 3803, 7593, 0,
+ 12505, 3803, 7593, 2,
+ 12505, 3803, 7593, 4,
+ 12505, 3803, 7593, 6,
+ 12505, 3803, 7593, 8,
+ 12505, 3803, 7593, 10,
+ 12505, 3803, 7593, 12,
+ 12505, 3803, 7593, 14,
+ 12505, 3803, 7593, 16,
+ 12505, 3803, 7593, 18,
+ 12505, 3803, 7593, 20,
+ 12505, 3803, 7593, 22,
+ 12505, 3803, 7593, 24,
+ 12505, 3803, 7593, 26,
+ 12505, 3803, 7593, 28,
+ 12505, 3803, 7593, 30,
+ 12505, 3803, 7593, 32,
+ 12505, 3803, 7593, 34,
+ 12505, 3803, 7593, 36,
+ 12505, 3803, 7593, 38,
+ 12505, 3803, 7593, 40,
+ 12505, 3803, 7593, 42,
+ 12505, 3803, 7593, 44,
+ 12505, 3803, 7593, 46,
+ 12505, 3803, 7593, 48,
+ 12505, 3803, 7593, 50,
+ 12505, 3803, 7593, 384,
+ 12505, 3803, 7593, 416,
+ 12505, 3803, 7593, 476,
+ 12505, 3803, 7593, 644,
+ 12505, 3803, 7593, 888,
+ 12505, 3803, 7593, 1128,
+ 12505, 3803, 7593, 2216,
+ 12505, 3803, 7593, 2250,
+ 12505, 3803, 7593, 2412,
+ 12505, 3803, 7593, 2658,
+ 12505, 3803, 7593, 3774,
+ 12505, 3803, 7593, 4614,
+ 12505, 3803, 7593, 6262,
+ 12505, 3803, 7593, 6406,
+ 12505, 3803, 7593, 6674,
+ 12505, 3803, 7593, 6789, 7568,
+ 12505, 3803, 7593, 6824,
+ 12505, 3803, 7593, 7022,
+ 12505, 3803, 7593, 7080,
+ 12505, 3803, 7593, 7316,
+ 12505, 3803, 7593, 7568,
+ 12505, 3803, 7593, 7682,
+ 12505, 3803, 7593, 9162,
+ 12505, 3803, 7593, 9270,
+ 12505, 3803, 7593, 9530,
+ 12505, 3803, 7593, 9808,
+ 12505, 3803, 7683, 8774,
+ 12505, 3803, 8325, 477, 8774,
+ 12505, 3803, 8325, 2217, 8774,
+ 12505, 3803, 8325, 2413, 8774,
+ 12505, 3803, 8325, 7023, 8774,
+ 12505, 3803, 8325, 7202,
+ 12505, 3803, 8325, 7593, 0,
+ 12505, 3803, 8325, 7593, 2,
+ 12505, 3803, 8325, 7593, 4,
+ 12505, 3803, 8325, 7593, 6,
+ 12505, 3803, 8325, 7593, 8,
+ 12505, 3803, 8325, 7593, 10,
+ 12505, 3803, 8325, 7593, 12,
+ 12505, 3803, 8325, 7593, 14,
+ 12505, 3803, 8325, 7593, 16,
+ 12505, 3803, 8325, 7593, 18,
+ 12505, 3803, 8325, 7593, 20,
+ 12505, 3803, 8325, 7593, 22,
+ 12505, 3803, 8325, 7593, 24,
+ 12505, 3803, 8325, 7593, 26,
+ 12505, 3803, 8325, 7593, 28,
+ 12505, 3803, 8325, 7593, 30,
+ 12505, 3803, 8325, 7593, 32,
+ 12505, 3803, 8325, 7593, 34,
+ 12505, 3803, 8325, 7593, 36,
+ 12505, 3803, 8325, 7593, 38,
+ 12505, 3803, 8325, 7593, 40,
+ 12505, 3803, 8325, 7593, 42,
+ 12505, 3803, 8325, 7593, 44,
+ 12505, 3803, 8325, 7593, 46,
+ 12505, 3803, 8325, 7593, 48,
+ 12505, 3803, 8325, 7593, 50,
+ 12505, 3803, 8325, 7593, 384,
+ 12505, 3803, 8325, 7593, 416,
+ 12505, 3803, 8325, 7593, 476,
+ 12505, 3803, 8325, 7593, 644,
+ 12505, 3803, 8325, 7593, 888,
+ 12505, 3803, 8325, 7593, 1128,
+ 12505, 3803, 8325, 7593, 2216,
+ 12505, 3803, 8325, 7593, 2250,
+ 12505, 3803, 8325, 7593, 2412,
+ 12505, 3803, 8325, 7593, 2658,
+ 12505, 3803, 8325, 7593, 3774,
+ 12505, 3803, 8325, 7593, 4614,
+ 12505, 3803, 8325, 7593, 6262,
+ 12505, 3803, 8325, 7593, 6406,
+ 12505, 3803, 8325, 7593, 6674,
+ 12505, 3803, 8325, 7593, 6789, 7568,
+ 12505, 3803, 8325, 7593, 6824,
+ 12505, 3803, 8325, 7593, 7022,
+ 12505, 3803, 8325, 7593, 7080,
+ 12505, 3803, 8325, 7593, 7316,
+ 12505, 3803, 8325, 7593, 7568,
+ 12505, 3803, 8325, 7593, 7682,
+ 12505, 3803, 8325, 7593, 9270,
+ 12505, 3803, 8325, 7593, 9530,
+ 12505, 3803, 8325, 7593, 9808,
+ 12505, 3803, 8325, 7683, 8774,
+ 12505, 3803, 8325, 9063, 0,
+ 12505, 3803, 8325, 9063, 2,
+ 12505, 3803, 8325, 9063, 4,
+ 12505, 3803, 8325, 9063, 6,
+ 12505, 3803, 8325, 9063, 8,
+ 12505, 3803, 8325, 9063, 10,
+ 12505, 3803, 8325, 9063, 12,
+ 12505, 3803, 8325, 9063, 14,
+ 12505, 3803, 8325, 9063, 16,
+ 12505, 3803, 8325, 9063, 18,
+ 12505, 3803, 8325, 9063, 20,
+ 12505, 3803, 8325, 9063, 22,
+ 12505, 3803, 8325, 9063, 24,
+ 12505, 3803, 8325, 9063, 26,
+ 12505, 3803, 8325, 9063, 28,
+ 12505, 3803, 8325, 9063, 30,
+ 12505, 3803, 8325, 9063, 32,
+ 12505, 3803, 8325, 9063, 34,
+ 12505, 3803, 8325, 9063, 36,
+ 12505, 3803, 8325, 9063, 38,
+ 12505, 3803, 8325, 9063, 40,
+ 12505, 3803, 8325, 9063, 42,
+ 12505, 3803, 8325, 9063, 44,
+ 12505, 3803, 8325, 9063, 46,
+ 12505, 3803, 8325, 9063, 48,
+ 12505, 3803, 8325, 9063, 50,
+ 12505, 3803, 8325, 9063, 384,
+ 12505, 3803, 8325, 9063, 416,
+ 12505, 3803, 8325, 9063, 476,
+ 12505, 3803, 8325, 9063, 644,
+ 12505, 3803, 8325, 9063, 888,
+ 12505, 3803, 8325, 9063, 1128,
+ 12505, 3803, 8325, 9063, 2216,
+ 12505, 3803, 8325, 9063, 2250,
+ 12505, 3803, 8325, 9063, 2412,
+ 12505, 3803, 8325, 9063, 2658,
+ 12505, 3803, 8325, 9063, 3774,
+ 12505, 3803, 8325, 9063, 4614,
+ 12505, 3803, 8325, 9063, 6262,
+ 12505, 3803, 8325, 9063, 6406,
+ 12505, 3803, 8325, 9063, 6674,
+ 12505, 3803, 8325, 9063, 6824,
+ 12505, 3803, 8325, 9063, 7022,
+ 12505, 3803, 8325, 9063, 7080,
+ 12505, 3803, 8325, 9063, 7316,
+ 12505, 3803, 8325, 9063, 7568,
+ 12505, 3803, 8325, 9063, 7682,
+ 12505, 3803, 8325, 9063, 7683, 8774,
+ 12505, 3803, 8325, 9063, 9270,
+ 12505, 3803, 8325, 9063, 9530,
+ 12505, 3803, 8325, 9063, 9808,
+ 12505, 3803, 8325, 9271, 8774,
+ 12505, 3803, 8325, 9573, 12432,
+ 12505, 3803, 8679, 7593, 0,
+ 12505, 3803, 8679, 7593, 2,
+ 12505, 3803, 8679, 7593, 4,
+ 12505, 3803, 8679, 7593, 6,
+ 12505, 3803, 8679, 7593, 8,
+ 12505, 3803, 8679, 7593, 10,
+ 12505, 3803, 8679, 7593, 12,
+ 12505, 3803, 8679, 7593, 14,
+ 12505, 3803, 8679, 7593, 16,
+ 12505, 3803, 8679, 7593, 18,
+ 12505, 3803, 8679, 7593, 20,
+ 12505, 3803, 8679, 7593, 22,
+ 12505, 3803, 8679, 7593, 24,
+ 12505, 3803, 8679, 7593, 26,
+ 12505, 3803, 8679, 7593, 28,
+ 12505, 3803, 8679, 7593, 30,
+ 12505, 3803, 8679, 7593, 32,
+ 12505, 3803, 8679, 7593, 34,
+ 12505, 3803, 8679, 7593, 36,
+ 12505, 3803, 8679, 7593, 38,
+ 12505, 3803, 8679, 7593, 40,
+ 12505, 3803, 8679, 7593, 42,
+ 12505, 3803, 8679, 7593, 44,
+ 12505, 3803, 8679, 7593, 46,
+ 12505, 3803, 8679, 7593, 48,
+ 12505, 3803, 8679, 7593, 50,
+ 12505, 3803, 8679, 9063, 0,
+ 12505, 3803, 8679, 9063, 2,
+ 12505, 3803, 8679, 9063, 4,
+ 12505, 3803, 8679, 9063, 6,
+ 12505, 3803, 8679, 9063, 8,
+ 12505, 3803, 8679, 9063, 10,
+ 12505, 3803, 8679, 9063, 12,
+ 12505, 3803, 8679, 9063, 14,
+ 12505, 3803, 8679, 9063, 16,
+ 12505, 3803, 8679, 9063, 18,
+ 12505, 3803, 8679, 9063, 20,
+ 12505, 3803, 8679, 9063, 22,
+ 12505, 3803, 8679, 9063, 24,
+ 12505, 3803, 8679, 9063, 26,
+ 12505, 3803, 8679, 9063, 28,
+ 12505, 3803, 8679, 9063, 30,
+ 12505, 3803, 8679, 9063, 32,
+ 12505, 3803, 8679, 9063, 34,
+ 12505, 3803, 8679, 9063, 36,
+ 12505, 3803, 8679, 9063, 38,
+ 12505, 3803, 8679, 9063, 40,
+ 12505, 3803, 8679, 9063, 42,
+ 12505, 3803, 8679, 9063, 44,
+ 12505, 3803, 8679, 9063, 46,
+ 12505, 3803, 8679, 9063, 48,
+ 12505, 3803, 8679, 9063, 50,
+ 12505, 3803, 9063, 0,
+ 12505, 3803, 9063, 2,
+ 12505, 3803, 9063, 4,
+ 12505, 3803, 9063, 6,
+ 12505, 3803, 9063, 8,
+ 12505, 3803, 9063, 10,
+ 12505, 3803, 9063, 12,
+ 12505, 3803, 9063, 14,
+ 12505, 3803, 9063, 16,
+ 12505, 3803, 9063, 18,
+ 12505, 3803, 9063, 20,
+ 12505, 3803, 9063, 22,
+ 12505, 3803, 9063, 24,
+ 12505, 3803, 9063, 26,
+ 12505, 3803, 9063, 28,
+ 12505, 3803, 9063, 30,
+ 12505, 3803, 9063, 32,
+ 12505, 3803, 9063, 34,
+ 12505, 3803, 9063, 36,
+ 12505, 3803, 9063, 38,
+ 12505, 3803, 9063, 40,
+ 12505, 3803, 9063, 42,
+ 12505, 3803, 9063, 44,
+ 12505, 3803, 9063, 46,
+ 12505, 3803, 9063, 48,
+ 12505, 3803, 9063, 50,
+ 12505, 3803, 9063, 384,
+ 12505, 3803, 9063, 416,
+ 12505, 3803, 9063, 476,
+ 12505, 3803, 9063, 644,
+ 12505, 3803, 9063, 888,
+ 12505, 3803, 9063, 1128,
+ 12505, 3803, 9063, 2216,
+ 12505, 3803, 9063, 2250,
+ 12505, 3803, 9063, 2412,
+ 12505, 3803, 9063, 2658,
+ 12505, 3803, 9063, 3774,
+ 12505, 3803, 9063, 4614,
+ 12505, 3803, 9063, 6262,
+ 12505, 3803, 9063, 6406,
+ 12505, 3803, 9063, 6674,
+ 12505, 3803, 9063, 6824,
+ 12505, 3803, 9063, 7022,
+ 12505, 3803, 9063, 7080,
+ 12505, 3803, 9063, 7316,
+ 12505, 3803, 9063, 7568,
+ 12505, 3803, 9063, 7682,
+ 12505, 3803, 9063, 7683, 8774,
+ 12505, 3803, 9063, 9162,
+ 12505, 3803, 9063, 9270,
+ 12505, 3803, 9063, 9530,
+ 12505, 3803, 9063, 9808,
+ 12505, 3803, 9271, 8774,
+ 12505, 3803, 9295, 7593, 0,
+ 12505, 3803, 9295, 7593, 2,
+ 12505, 3803, 9295, 7593, 4,
+ 12505, 3803, 9295, 7593, 6,
+ 12505, 3803, 9295, 7593, 8,
+ 12505, 3803, 9295, 7593, 10,
+ 12505, 3803, 9295, 7593, 12,
+ 12505, 3803, 9295, 7593, 14,
+ 12505, 3803, 9295, 7593, 16,
+ 12505, 3803, 9295, 7593, 18,
+ 12505, 3803, 9295, 7593, 20,
+ 12505, 3803, 9295, 7593, 22,
+ 12505, 3803, 9295, 7593, 24,
+ 12505, 3803, 9295, 7593, 26,
+ 12505, 3803, 9295, 7593, 28,
+ 12505, 3803, 9295, 7593, 30,
+ 12505, 3803, 9295, 7593, 32,
+ 12505, 3803, 9295, 7593, 34,
+ 12505, 3803, 9295, 7593, 36,
+ 12505, 3803, 9295, 7593, 38,
+ 12505, 3803, 9295, 7593, 40,
+ 12505, 3803, 9295, 7593, 42,
+ 12505, 3803, 9295, 7593, 44,
+ 12505, 3803, 9295, 7593, 46,
+ 12505, 3803, 9295, 7593, 48,
+ 12505, 3803, 9295, 7593, 50,
+ 12505, 3803, 9295, 9063, 0,
+ 12505, 3803, 9295, 9063, 2,
+ 12505, 3803, 9295, 9063, 4,
+ 12505, 3803, 9295, 9063, 6,
+ 12505, 3803, 9295, 9063, 8,
+ 12505, 3803, 9295, 9063, 10,
+ 12505, 3803, 9295, 9063, 12,
+ 12505, 3803, 9295, 9063, 14,
+ 12505, 3803, 9295, 9063, 16,
+ 12505, 3803, 9295, 9063, 18,
+ 12505, 3803, 9295, 9063, 20,
+ 12505, 3803, 9295, 9063, 22,
+ 12505, 3803, 9295, 9063, 24,
+ 12505, 3803, 9295, 9063, 26,
+ 12505, 3803, 9295, 9063, 28,
+ 12505, 3803, 9295, 9063, 30,
+ 12505, 3803, 9295, 9063, 32,
+ 12505, 3803, 9295, 9063, 34,
+ 12505, 3803, 9295, 9063, 36,
+ 12505, 3803, 9295, 9063, 38,
+ 12505, 3803, 9295, 9063, 40,
+ 12505, 3803, 9295, 9063, 42,
+ 12505, 3803, 9295, 9063, 44,
+ 12505, 3803, 9295, 9063, 46,
+ 12505, 3803, 9295, 9063, 48,
+ 12505, 3803, 9295, 9063, 50,
+ 12505, 3803, 9573, 12432,
+ 12505, 4849, 6409, 9050,
+ 12505, 4849, 7821, 8745, 9050,
+ 12505, 4849, 7821, 10637, 7533, 9050,
+ 12505, 4849, 8153, 6409, 9050,
+ 12505, 4849, 10997, 12114,
+ 12505, 7443, 6409, 9050,
+ 12505, 7443, 7821, 8745, 9050,
+ 12505, 7443, 7821, 10637, 7533, 9050,
+ 12505, 7443, 8153, 6409, 9050,
+ 12505, 7443, 10997, 12114,
+ 12505, 8325, 477, 8774,
+ 12505, 8325, 2217, 8774,
+ 12505, 8325, 2413, 8774,
+ 12505, 8325, 7023, 8774,
+ 12505, 8325, 7202,
+ 12505, 8325, 7593, 0,
+ 12505, 8325, 7593, 2,
+ 12505, 8325, 7593, 4,
+ 12505, 8325, 7593, 6,
+ 12505, 8325, 7593, 8,
+ 12505, 8325, 7593, 10,
+ 12505, 8325, 7593, 12,
+ 12505, 8325, 7593, 16,
+ 12505, 8325, 7593, 18,
+ 12505, 8325, 7593, 20,
+ 12505, 8325, 7593, 22,
+ 12505, 8325, 7593, 24,
+ 12505, 8325, 7593, 26,
+ 12505, 8325, 7593, 28,
+ 12505, 8325, 7593, 30,
+ 12505, 8325, 7593, 32,
+ 12505, 8325, 7593, 34,
+ 12505, 8325, 7593, 36,
+ 12505, 8325, 7593, 38,
+ 12505, 8325, 7593, 40,
+ 12505, 8325, 7593, 42,
+ 12505, 8325, 7593, 44,
+ 12505, 8325, 7593, 46,
+ 12505, 8325, 7593, 48,
+ 12505, 8325, 7593, 50,
+ 12505, 8325, 7593, 384,
+ 12505, 8325, 7593, 416,
+ 12505, 8325, 7593, 476,
+ 12505, 8325, 7593, 644,
+ 12505, 8325, 7593, 888,
+ 12505, 8325, 7593, 1128,
+ 12505, 8325, 7593, 2216,
+ 12505, 8325, 7593, 2250,
+ 12505, 8325, 7593, 2412,
+ 12505, 8325, 7593, 2658,
+ 12505, 8325, 7593, 3774,
+ 12505, 8325, 7593, 4614,
+ 12505, 8325, 7593, 6262,
+ 12505, 8325, 7593, 6406,
+ 12505, 8325, 7593, 6674,
+ 12505, 8325, 7593, 6789, 7568,
+ 12505, 8325, 7593, 6824,
+ 12505, 8325, 7593, 7022,
+ 12505, 8325, 7593, 7080,
+ 12505, 8325, 7593, 7316,
+ 12505, 8325, 7593, 7568,
+ 12505, 8325, 7593, 7682,
+ 12505, 8325, 7593, 9185, 16,
+ 12505, 8325, 7593, 9185, 18,
+ 12505, 8325, 7593, 9270,
+ 12505, 8325, 7593, 9530,
+ 12505, 8325, 7593, 9808,
+ 12505, 8325, 7683, 8774,
+ 12505, 8325, 9063, 0,
+ 12505, 8325, 9063, 2,
+ 12505, 8325, 9063, 4,
+ 12505, 8325, 9063, 6,
+ 12505, 8325, 9063, 8,
+ 12505, 8325, 9063, 10,
+ 12505, 8325, 9063, 12,
+ 12505, 8325, 9063, 14,
+ 12505, 8325, 9063, 16,
+ 12505, 8325, 9063, 18,
+ 12505, 8325, 9063, 20,
+ 12505, 8325, 9063, 22,
+ 12505, 8325, 9063, 24,
+ 12505, 8325, 9063, 26,
+ 12505, 8325, 9063, 28,
+ 12505, 8325, 9063, 30,
+ 12505, 8325, 9063, 32,
+ 12505, 8325, 9063, 34,
+ 12505, 8325, 9063, 36,
+ 12505, 8325, 9063, 38,
+ 12505, 8325, 9063, 40,
+ 12505, 8325, 9063, 42,
+ 12505, 8325, 9063, 44,
+ 12505, 8325, 9063, 46,
+ 12505, 8325, 9063, 48,
+ 12505, 8325, 9063, 50,
+ 12505, 8325, 9063, 384,
+ 12505, 8325, 9063, 416,
+ 12505, 8325, 9063, 476,
+ 12505, 8325, 9063, 644,
+ 12505, 8325, 9063, 888,
+ 12505, 8325, 9063, 1128,
+ 12505, 8325, 9063, 2216,
+ 12505, 8325, 9063, 2250,
+ 12505, 8325, 9063, 2412,
+ 12505, 8325, 9063, 2658,
+ 12505, 8325, 9063, 3774,
+ 12505, 8325, 9063, 4614,
+ 12505, 8325, 9063, 6262,
+ 12505, 8325, 9063, 6406,
+ 12505, 8325, 9063, 6674,
+ 12505, 8325, 9063, 6824,
+ 12505, 8325, 9063, 7022,
+ 12505, 8325, 9063, 7080,
+ 12505, 8325, 9063, 7316,
+ 12505, 8325, 9063, 7568,
+ 12505, 8325, 9063, 7682,
+ 12505, 8325, 9063, 7683, 8774,
+ 12505, 8325, 9063, 9270,
+ 12505, 8325, 9063, 9530,
+ 12505, 8325, 9063, 9808,
+ 12505, 8325, 9271, 8774,
+ 12505, 8325, 9573, 12432,
+ 12505, 8679, 7593, 0,
+ 12505, 8679, 7593, 2,
+ 12505, 8679, 7593, 4,
+ 12505, 8679, 7593, 6,
+ 12505, 8679, 7593, 10,
+ 12505, 8679, 7593, 14,
+ 12505, 8679, 7593, 16,
+ 12505, 8679, 7593, 18,
+ 12505, 8679, 7593, 20,
+ 12505, 8679, 7593, 22,
+ 12505, 8679, 7593, 24,
+ 12505, 8679, 7593, 26,
+ 12505, 8679, 7593, 30,
+ 12505, 8679, 7593, 32,
+ 12505, 8679, 7593, 34,
+ 12505, 8679, 7593, 36,
+ 12505, 8679, 7593, 38,
+ 12505, 8679, 7593, 40,
+ 12505, 8679, 7593, 42,
+ 12505, 8679, 7593, 44,
+ 12505, 8679, 7593, 46,
+ 12505, 8679, 7593, 48,
+ 12505, 8679, 7593, 50,
+ 12505, 8679, 9063, 0,
+ 12505, 8679, 9063, 4,
+ 12505, 8679, 9063, 6,
+ 12505, 8679, 9063, 12,
+ 12505, 8679, 9063, 18,
+ 12505, 8679, 9063, 20,
+ 12505, 8679, 9063, 26,
+ 12505, 8679, 9063, 28,
+ 12505, 8679, 9063, 30,
+ 12505, 8679, 9063, 32,
+ 12505, 8679, 9063, 36,
+ 12505, 8679, 9063, 38,
+ 12505, 8679, 9063, 40,
+ 12505, 8679, 9063, 42,
+ 12505, 8679, 9063, 44,
+ 12505, 8679, 9063, 46,
+ 12505, 8679, 9063, 48,
+ 12505, 8679, 9063, 50,
+ 12505, 9295, 7593, 0,
+ 12505, 9295, 7593, 2,
+ 12505, 9295, 7593, 4,
+ 12505, 9295, 7593, 6,
+ 12505, 9295, 7593, 8,
+ 12505, 9295, 7593, 10,
+ 12505, 9295, 7593, 12,
+ 12505, 9295, 7593, 14,
+ 12505, 9295, 7593, 16,
+ 12505, 9295, 7593, 18,
+ 12505, 9295, 7593, 20,
+ 12505, 9295, 7593, 22,
+ 12505, 9295, 7593, 24,
+ 12505, 9295, 7593, 26,
+ 12505, 9295, 7593, 28,
+ 12505, 9295, 7593, 30,
+ 12505, 9295, 7593, 32,
+ 12505, 9295, 7593, 34,
+ 12505, 9295, 7593, 36,
+ 12505, 9295, 7593, 38,
+ 12505, 9295, 7593, 40,
+ 12505, 9295, 7593, 42,
+ 12505, 9295, 7593, 44,
+ 12505, 9295, 7593, 46,
+ 12505, 9295, 7593, 48,
+ 12505, 9295, 7593, 50,
+ 12505, 9295, 9063, 0,
+ 12505, 9295, 9063, 2,
+ 12505, 9295, 9063, 6,
+ 12505, 9295, 9063, 8,
+ 12505, 9295, 9063, 10,
+ 12505, 9295, 9063, 12,
+ 12505, 9295, 9063, 18,
+ 12505, 9295, 9063, 20,
+ 12505, 9295, 9063, 22,
+ 12505, 9295, 9063, 24,
+ 12505, 9295, 9063, 26,
+ 12505, 9295, 9063, 28,
+ 12505, 9295, 9063, 30,
+ 12505, 9295, 9063, 32,
+ 12505, 9295, 9063, 36,
+ 12505, 9295, 9063, 38,
+ 12505, 9295, 9063, 40,
+ 12505, 9295, 9063, 42,
+ 12505, 9295, 9063, 44,
+ 12505, 9295, 9063, 46,
+ 12505, 9295, 9063, 48,
+ 12505, 11129, 6689, 2170,
+ 12505, 11129, 6689, 2540,
+ 12505, 11129, 6689, 2778,
+ 12505, 11129, 6689, 4200,
+ 12505, 11129, 6689, 4214,
+ 12505, 11129, 6689, 5190,
+ 12505, 11129, 6689, 6260,
+ 12505, 11129, 6689, 6722,
+ 12505, 11129, 6689, 7508,
+ 12505, 11129, 6689, 7694,
+ 12505, 11129, 7593, 0,
+ 12505, 11129, 7593, 2,
+ 12505, 11129, 7593, 4,
+ 12505, 11129, 7593, 6,
+ 12505, 11129, 7593, 8,
+ 12505, 11129, 7593, 10,
+ 12505, 11129, 7593, 12,
+ 12505, 11129, 7593, 14,
+ 12505, 11129, 7593, 16,
+ 12505, 11129, 7593, 18,
+ 12505, 11129, 7593, 20,
+ 12505, 11129, 7593, 22,
+ 12505, 11129, 7593, 24,
+ 12505, 11129, 7593, 26,
+ 12505, 11129, 7593, 28,
+ 12505, 11129, 7593, 30,
+ 12505, 11129, 7593, 32,
+ 12505, 11129, 7593, 34,
+ 12505, 11129, 7593, 36,
+ 12505, 11129, 7593, 38,
+ 12505, 11129, 7593, 40,
+ 12505, 11129, 7593, 42,
+ 12505, 11129, 7593, 44,
+ 12505, 11129, 7593, 46,
+ 12505, 11129, 7593, 48,
+ 12505, 11129, 7593, 50,
+ 12505, 11129, 9063, 0,
+ 12505, 11129, 9063, 2,
+ 12505, 11129, 9063, 4,
+ 12505, 11129, 9063, 6,
+ 12505, 11129, 9063, 8,
+ 12505, 11129, 9063, 10,
+ 12505, 11129, 9063, 12,
+ 12505, 11129, 9063, 14,
+ 12505, 11129, 9063, 16,
+ 12505, 11129, 9063, 18,
+ 12505, 11129, 9063, 20,
+ 12505, 11129, 9063, 22,
+ 12505, 11129, 9063, 24,
+ 12505, 11129, 9063, 26,
+ 12505, 11129, 9063, 28,
+ 12505, 11129, 9063, 30,
+ 12505, 11129, 9063, 32,
+ 12505, 11129, 9063, 34,
+ 12505, 11129, 9063, 36,
+ 12505, 11129, 9063, 38,
+ 12505, 11129, 9063, 40,
+ 12505, 11129, 9063, 42,
+ 12505, 11129, 9063, 44,
+ 12505, 11129, 9063, 46,
+ 12505, 11129, 9063, 48,
+ 12505, 11129, 9063, 50,
+ 12505, 11767, 3803, 477, 8774,
+ 12505, 11767, 3803, 2217, 8774,
+ 12505, 11767, 3803, 2413, 8774,
+ 12505, 11767, 3803, 6689, 2170,
+ 12505, 11767, 3803, 6689, 2540,
+ 12505, 11767, 3803, 6689, 2778,
+ 12505, 11767, 3803, 6689, 4200,
+ 12505, 11767, 3803, 6689, 4214,
+ 12505, 11767, 3803, 6689, 5190,
+ 12505, 11767, 3803, 6689, 6260,
+ 12505, 11767, 3803, 6689, 6722,
+ 12505, 11767, 3803, 6689, 7508,
+ 12505, 11767, 3803, 6689, 7694,
+ 12505, 11767, 3803, 7023, 8774,
+ 12505, 11767, 3803, 7202,
+ 12505, 11767, 3803, 7593, 0,
+ 12505, 11767, 3803, 7593, 2,
+ 12505, 11767, 3803, 7593, 4,
+ 12505, 11767, 3803, 7593, 6,
+ 12505, 11767, 3803, 7593, 8,
+ 12505, 11767, 3803, 7593, 10,
+ 12505, 11767, 3803, 7593, 12,
+ 12505, 11767, 3803, 7593, 14,
+ 12505, 11767, 3803, 7593, 16,
+ 12505, 11767, 3803, 7593, 18,
+ 12505, 11767, 3803, 7593, 20,
+ 12505, 11767, 3803, 7593, 22,
+ 12505, 11767, 3803, 7593, 24,
+ 12505, 11767, 3803, 7593, 26,
+ 12505, 11767, 3803, 7593, 28,
+ 12505, 11767, 3803, 7593, 30,
+ 12505, 11767, 3803, 7593, 32,
+ 12505, 11767, 3803, 7593, 34,
+ 12505, 11767, 3803, 7593, 36,
+ 12505, 11767, 3803, 7593, 38,
+ 12505, 11767, 3803, 7593, 40,
+ 12505, 11767, 3803, 7593, 42,
+ 12505, 11767, 3803, 7593, 44,
+ 12505, 11767, 3803, 7593, 46,
+ 12505, 11767, 3803, 7593, 48,
+ 12505, 11767, 3803, 7593, 50,
+ 12505, 11767, 3803, 7593, 384,
+ 12505, 11767, 3803, 7593, 416,
+ 12505, 11767, 3803, 7593, 476,
+ 12505, 11767, 3803, 7593, 644,
+ 12505, 11767, 3803, 7593, 888,
+ 12505, 11767, 3803, 7593, 1128,
+ 12505, 11767, 3803, 7593, 2216,
+ 12505, 11767, 3803, 7593, 2250,
+ 12505, 11767, 3803, 7593, 2412,
+ 12505, 11767, 3803, 7593, 2658,
+ 12505, 11767, 3803, 7593, 3774,
+ 12505, 11767, 3803, 7593, 4614,
+ 12505, 11767, 3803, 7593, 6262,
+ 12505, 11767, 3803, 7593, 6406,
+ 12505, 11767, 3803, 7593, 6674,
+ 12505, 11767, 3803, 7593, 6789, 7568,
+ 12505, 11767, 3803, 7593, 6824,
+ 12505, 11767, 3803, 7593, 7022,
+ 12505, 11767, 3803, 7593, 7080,
+ 12505, 11767, 3803, 7593, 7316,
+ 12505, 11767, 3803, 7593, 7568,
+ 12505, 11767, 3803, 7593, 7682,
+ 12505, 11767, 3803, 7593, 9270,
+ 12505, 11767, 3803, 7593, 9530,
+ 12505, 11767, 3803, 7593, 9808,
+ 12505, 11767, 3803, 7683, 8774,
+ 12505, 11767, 3803, 8325, 477, 8774,
+ 12505, 11767, 3803, 8325, 2217, 8774,
+ 12505, 11767, 3803, 8325, 2413, 8774,
+ 12505, 11767, 3803, 8325, 7023, 8774,
+ 12505, 11767, 3803, 8325, 7202,
+ 12505, 11767, 3803, 8325, 7593, 0,
+ 12505, 11767, 3803, 8325, 7593, 2,
+ 12505, 11767, 3803, 8325, 7593, 4,
+ 12505, 11767, 3803, 8325, 7593, 6,
+ 12505, 11767, 3803, 8325, 7593, 8,
+ 12505, 11767, 3803, 8325, 7593, 10,
+ 12505, 11767, 3803, 8325, 7593, 12,
+ 12505, 11767, 3803, 8325, 7593, 14,
+ 12505, 11767, 3803, 8325, 7593, 16,
+ 12505, 11767, 3803, 8325, 7593, 18,
+ 12505, 11767, 3803, 8325, 7593, 20,
+ 12505, 11767, 3803, 8325, 7593, 22,
+ 12505, 11767, 3803, 8325, 7593, 24,
+ 12505, 11767, 3803, 8325, 7593, 26,
+ 12505, 11767, 3803, 8325, 7593, 28,
+ 12505, 11767, 3803, 8325, 7593, 30,
+ 12505, 11767, 3803, 8325, 7593, 32,
+ 12505, 11767, 3803, 8325, 7593, 34,
+ 12505, 11767, 3803, 8325, 7593, 36,
+ 12505, 11767, 3803, 8325, 7593, 38,
+ 12505, 11767, 3803, 8325, 7593, 40,
+ 12505, 11767, 3803, 8325, 7593, 42,
+ 12505, 11767, 3803, 8325, 7593, 44,
+ 12505, 11767, 3803, 8325, 7593, 46,
+ 12505, 11767, 3803, 8325, 7593, 48,
+ 12505, 11767, 3803, 8325, 7593, 50,
+ 12505, 11767, 3803, 8325, 7593, 384,
+ 12505, 11767, 3803, 8325, 7593, 416,
+ 12505, 11767, 3803, 8325, 7593, 476,
+ 12505, 11767, 3803, 8325, 7593, 644,
+ 12505, 11767, 3803, 8325, 7593, 888,
+ 12505, 11767, 3803, 8325, 7593, 1128,
+ 12505, 11767, 3803, 8325, 7593, 2216,
+ 12505, 11767, 3803, 8325, 7593, 2250,
+ 12505, 11767, 3803, 8325, 7593, 2412,
+ 12505, 11767, 3803, 8325, 7593, 2658,
+ 12505, 11767, 3803, 8325, 7593, 3774,
+ 12505, 11767, 3803, 8325, 7593, 4614,
+ 12505, 11767, 3803, 8325, 7593, 6262,
+ 12505, 11767, 3803, 8325, 7593, 6406,
+ 12505, 11767, 3803, 8325, 7593, 6674,
+ 12505, 11767, 3803, 8325, 7593, 6789, 7568,
+ 12505, 11767, 3803, 8325, 7593, 6824,
+ 12505, 11767, 3803, 8325, 7593, 7022,
+ 12505, 11767, 3803, 8325, 7593, 7080,
+ 12505, 11767, 3803, 8325, 7593, 7316,
+ 12505, 11767, 3803, 8325, 7593, 7568,
+ 12505, 11767, 3803, 8325, 7593, 7682,
+ 12505, 11767, 3803, 8325, 7593, 9270,
+ 12505, 11767, 3803, 8325, 7593, 9530,
+ 12505, 11767, 3803, 8325, 7593, 9808,
+ 12505, 11767, 3803, 8325, 7683, 8774,
+ 12505, 11767, 3803, 8325, 9063, 0,
+ 12505, 11767, 3803, 8325, 9063, 2,
+ 12505, 11767, 3803, 8325, 9063, 4,
+ 12505, 11767, 3803, 8325, 9063, 6,
+ 12505, 11767, 3803, 8325, 9063, 8,
+ 12505, 11767, 3803, 8325, 9063, 10,
+ 12505, 11767, 3803, 8325, 9063, 12,
+ 12505, 11767, 3803, 8325, 9063, 14,
+ 12505, 11767, 3803, 8325, 9063, 16,
+ 12505, 11767, 3803, 8325, 9063, 18,
+ 12505, 11767, 3803, 8325, 9063, 20,
+ 12505, 11767, 3803, 8325, 9063, 22,
+ 12505, 11767, 3803, 8325, 9063, 24,
+ 12505, 11767, 3803, 8325, 9063, 26,
+ 12505, 11767, 3803, 8325, 9063, 28,
+ 12505, 11767, 3803, 8325, 9063, 30,
+ 12505, 11767, 3803, 8325, 9063, 32,
+ 12505, 11767, 3803, 8325, 9063, 34,
+ 12505, 11767, 3803, 8325, 9063, 36,
+ 12505, 11767, 3803, 8325, 9063, 38,
+ 12505, 11767, 3803, 8325, 9063, 40,
+ 12505, 11767, 3803, 8325, 9063, 42,
+ 12505, 11767, 3803, 8325, 9063, 44,
+ 12505, 11767, 3803, 8325, 9063, 46,
+ 12505, 11767, 3803, 8325, 9063, 48,
+ 12505, 11767, 3803, 8325, 9063, 50,
+ 12505, 11767, 3803, 8325, 9063, 384,
+ 12505, 11767, 3803, 8325, 9063, 416,
+ 12505, 11767, 3803, 8325, 9063, 476,
+ 12505, 11767, 3803, 8325, 9063, 644,
+ 12505, 11767, 3803, 8325, 9063, 888,
+ 12505, 11767, 3803, 8325, 9063, 1128,
+ 12505, 11767, 3803, 8325, 9063, 2216,
+ 12505, 11767, 3803, 8325, 9063, 2250,
+ 12505, 11767, 3803, 8325, 9063, 2412,
+ 12505, 11767, 3803, 8325, 9063, 2658,
+ 12505, 11767, 3803, 8325, 9063, 3774,
+ 12505, 11767, 3803, 8325, 9063, 4614,
+ 12505, 11767, 3803, 8325, 9063, 6262,
+ 12505, 11767, 3803, 8325, 9063, 6406,
+ 12505, 11767, 3803, 8325, 9063, 6674,
+ 12505, 11767, 3803, 8325, 9063, 6824,
+ 12505, 11767, 3803, 8325, 9063, 7022,
+ 12505, 11767, 3803, 8325, 9063, 7080,
+ 12505, 11767, 3803, 8325, 9063, 7316,
+ 12505, 11767, 3803, 8325, 9063, 7568,
+ 12505, 11767, 3803, 8325, 9063, 7682,
+ 12505, 11767, 3803, 8325, 9063, 7683, 8774,
+ 12505, 11767, 3803, 8325, 9063, 9270,
+ 12505, 11767, 3803, 8325, 9063, 9530,
+ 12505, 11767, 3803, 8325, 9063, 9808,
+ 12505, 11767, 3803, 8325, 9271, 8774,
+ 12505, 11767, 3803, 8325, 9573, 12432,
+ 12505, 11767, 3803, 9063, 0,
+ 12505, 11767, 3803, 9063, 2,
+ 12505, 11767, 3803, 9063, 4,
+ 12505, 11767, 3803, 9063, 6,
+ 12505, 11767, 3803, 9063, 8,
+ 12505, 11767, 3803, 9063, 10,
+ 12505, 11767, 3803, 9063, 12,
+ 12505, 11767, 3803, 9063, 14,
+ 12505, 11767, 3803, 9063, 16,
+ 12505, 11767, 3803, 9063, 18,
+ 12505, 11767, 3803, 9063, 20,
+ 12505, 11767, 3803, 9063, 22,
+ 12505, 11767, 3803, 9063, 24,
+ 12505, 11767, 3803, 9063, 26,
+ 12505, 11767, 3803, 9063, 28,
+ 12505, 11767, 3803, 9063, 30,
+ 12505, 11767, 3803, 9063, 32,
+ 12505, 11767, 3803, 9063, 34,
+ 12505, 11767, 3803, 9063, 36,
+ 12505, 11767, 3803, 9063, 38,
+ 12505, 11767, 3803, 9063, 40,
+ 12505, 11767, 3803, 9063, 42,
+ 12505, 11767, 3803, 9063, 44,
+ 12505, 11767, 3803, 9063, 46,
+ 12505, 11767, 3803, 9063, 48,
+ 12505, 11767, 3803, 9063, 50,
+ 12505, 11767, 3803, 9063, 384,
+ 12505, 11767, 3803, 9063, 416,
+ 12505, 11767, 3803, 9063, 476,
+ 12505, 11767, 3803, 9063, 644,
+ 12505, 11767, 3803, 9063, 888,
+ 12505, 11767, 3803, 9063, 1128,
+ 12505, 11767, 3803, 9063, 2216,
+ 12505, 11767, 3803, 9063, 2250,
+ 12505, 11767, 3803, 9063, 2412,
+ 12505, 11767, 3803, 9063, 2658,
+ 12505, 11767, 3803, 9063, 3774,
+ 12505, 11767, 3803, 9063, 4614,
+ 12505, 11767, 3803, 9063, 6262,
+ 12505, 11767, 3803, 9063, 6406,
+ 12505, 11767, 3803, 9063, 6674,
+ 12505, 11767, 3803, 9063, 6824,
+ 12505, 11767, 3803, 9063, 7022,
+ 12505, 11767, 3803, 9063, 7080,
+ 12505, 11767, 3803, 9063, 7316,
+ 12505, 11767, 3803, 9063, 7568,
+ 12505, 11767, 3803, 9063, 7682,
+ 12505, 11767, 3803, 9063, 7683, 8774,
+ 12505, 11767, 3803, 9063, 9270,
+ 12505, 11767, 3803, 9063, 9530,
+ 12505, 11767, 3803, 9063, 9808,
+ 12505, 11767, 3803, 9271, 8774,
+ 12505, 11767, 3803, 9573, 12432,
+ 12505, 11767, 6689, 2170,
+ 12505, 11767, 6689, 2540,
+ 12505, 11767, 6689, 2778,
+ 12505, 11767, 6689, 4200,
+ 12505, 11767, 6689, 4214,
+ 12505, 11767, 6689, 5190,
+ 12505, 11767, 6689, 6260,
+ 12505, 11767, 6689, 6722,
+ 12505, 11767, 6689, 7508,
+ 12505, 11767, 6689, 7694,
+ 12505, 11767, 7593, 0,
+ 12505, 11767, 7593, 2,
+ 12505, 11767, 7593, 4,
+ 12505, 11767, 7593, 6,
+ 12505, 11767, 7593, 8,
+ 12505, 11767, 7593, 10,
+ 12505, 11767, 7593, 12,
+ 12505, 11767, 7593, 14,
+ 12505, 11767, 7593, 16,
+ 12505, 11767, 7593, 18,
+ 12505, 11767, 7593, 20,
+ 12505, 11767, 7593, 22,
+ 12505, 11767, 7593, 24,
+ 12505, 11767, 7593, 26,
+ 12505, 11767, 7593, 28,
+ 12505, 11767, 7593, 30,
+ 12505, 11767, 7593, 32,
+ 12505, 11767, 7593, 34,
+ 12505, 11767, 7593, 36,
+ 12505, 11767, 7593, 38,
+ 12505, 11767, 7593, 40,
+ 12505, 11767, 7593, 42,
+ 12505, 11767, 7593, 44,
+ 12505, 11767, 7593, 46,
+ 12505, 11767, 7593, 48,
+ 12505, 11767, 7593, 50,
+ 12505, 11767, 8325, 7593, 0,
+ 12505, 11767, 8325, 7593, 2,
+ 12505, 11767, 8325, 7593, 4,
+ 12505, 11767, 8325, 7593, 6,
+ 12505, 11767, 8325, 7593, 8,
+ 12505, 11767, 8325, 7593, 10,
+ 12505, 11767, 8325, 7593, 12,
+ 12505, 11767, 8325, 7593, 14,
+ 12505, 11767, 8325, 7593, 16,
+ 12505, 11767, 8325, 7593, 18,
+ 12505, 11767, 8325, 7593, 20,
+ 12505, 11767, 8325, 7593, 22,
+ 12505, 11767, 8325, 7593, 24,
+ 12505, 11767, 8325, 7593, 26,
+ 12505, 11767, 8325, 7593, 28,
+ 12505, 11767, 8325, 7593, 30,
+ 12505, 11767, 8325, 7593, 32,
+ 12505, 11767, 8325, 7593, 34,
+ 12505, 11767, 8325, 7593, 36,
+ 12505, 11767, 8325, 7593, 38,
+ 12505, 11767, 8325, 7593, 40,
+ 12505, 11767, 8325, 7593, 42,
+ 12505, 11767, 8325, 7593, 44,
+ 12505, 11767, 8325, 7593, 46,
+ 12505, 11767, 8325, 7593, 48,
+ 12505, 11767, 8325, 7593, 50,
+ 12505, 11767, 8325, 9063, 0,
+ 12505, 11767, 8325, 9063, 2,
+ 12505, 11767, 8325, 9063, 4,
+ 12505, 11767, 8325, 9063, 6,
+ 12505, 11767, 8325, 9063, 8,
+ 12505, 11767, 8325, 9063, 10,
+ 12505, 11767, 8325, 9063, 12,
+ 12505, 11767, 8325, 9063, 14,
+ 12505, 11767, 8325, 9063, 16,
+ 12505, 11767, 8325, 9063, 18,
+ 12505, 11767, 8325, 9063, 20,
+ 12505, 11767, 8325, 9063, 22,
+ 12505, 11767, 8325, 9063, 24,
+ 12505, 11767, 8325, 9063, 26,
+ 12505, 11767, 8325, 9063, 28,
+ 12505, 11767, 8325, 9063, 30,
+ 12505, 11767, 8325, 9063, 32,
+ 12505, 11767, 8325, 9063, 34,
+ 12505, 11767, 8325, 9063, 36,
+ 12505, 11767, 8325, 9063, 38,
+ 12505, 11767, 8325, 9063, 40,
+ 12505, 11767, 8325, 9063, 42,
+ 12505, 11767, 8325, 9063, 44,
+ 12505, 11767, 8325, 9063, 46,
+ 12505, 11767, 8325, 9063, 48,
+ 12505, 11767, 8325, 9063, 50,
+ 12505, 11767, 9063, 0,
+ 12505, 11767, 9063, 2,
+ 12505, 11767, 9063, 4,
+ 12505, 11767, 9063, 6,
+ 12505, 11767, 9063, 8,
+ 12505, 11767, 9063, 10,
+ 12505, 11767, 9063, 12,
+ 12505, 11767, 9063, 14,
+ 12505, 11767, 9063, 16,
+ 12505, 11767, 9063, 18,
+ 12505, 11767, 9063, 20,
+ 12505, 11767, 9063, 22,
+ 12505, 11767, 9063, 24,
+ 12505, 11767, 9063, 26,
+ 12505, 11767, 9063, 28,
+ 12505, 11767, 9063, 30,
+ 12505, 11767, 9063, 32,
+ 12505, 11767, 9063, 34,
+ 12505, 11767, 9063, 36,
+ 12505, 11767, 9063, 38,
+ 12505, 11767, 9063, 40,
+ 12505, 11767, 9063, 42,
+ 12505, 11767, 9063, 44,
+ 12505, 11767, 9063, 46,
+ 12505, 11767, 9063, 48,
+ 12505, 11767, 9063, 50,
+ 12505, 12929, 6689, 2170,
+ 12505, 12929, 6689, 2540,
+ 12505, 12929, 6689, 2778,
+ 12505, 12929, 6689, 4200,
+ 12505, 12929, 6689, 4214,
+ 12505, 12929, 6689, 5190,
+ 12505, 12929, 6689, 6260,
+ 12505, 12929, 6689, 6722,
+ 12505, 12929, 6689, 7508,
+ 12505, 12929, 6689, 7694,
+ 12505, 12929, 7593, 0,
+ 12505, 12929, 7593, 2,
+ 12505, 12929, 7593, 4,
+ 12505, 12929, 7593, 6,
+ 12505, 12929, 7593, 8,
+ 12505, 12929, 7593, 10,
+ 12505, 12929, 7593, 12,
+ 12505, 12929, 7593, 14,
+ 12505, 12929, 7593, 16,
+ 12505, 12929, 7593, 18,
+ 12505, 12929, 7593, 20,
+ 12505, 12929, 7593, 22,
+ 12505, 12929, 7593, 24,
+ 12505, 12929, 7593, 26,
+ 12505, 12929, 7593, 28,
+ 12505, 12929, 7593, 30,
+ 12505, 12929, 7593, 32,
+ 12505, 12929, 7593, 34,
+ 12505, 12929, 7593, 36,
+ 12505, 12929, 7593, 38,
+ 12505, 12929, 7593, 40,
+ 12505, 12929, 7593, 42,
+ 12505, 12929, 7593, 44,
+ 12505, 12929, 7593, 46,
+ 12505, 12929, 7593, 48,
+ 12505, 12929, 7593, 50,
+ 12505, 12929, 9063, 0,
+ 12505, 12929, 9063, 2,
+ 12505, 12929, 9063, 6,
+ 12505, 12929, 9063, 8,
+ 12505, 12929, 9063, 10,
+ 12505, 12929, 9063, 12,
+ 12505, 12929, 9063, 16,
+ 12505, 12929, 9063, 18,
+ 12505, 12929, 9063, 20,
+ 12505, 12929, 9063, 22,
+ 12505, 12929, 9063, 24,
+ 12505, 12929, 9063, 28,
+ 12505, 12929, 9063, 36,
+ 12505, 12929, 9063, 38,
+ 12505, 12929, 9063, 40,
+ 12505, 12929, 9063, 42,
+ 12505, 12929, 9063, 44,
+ 12505, 12929, 9063, 46,
+ 12505, 12929, 9063, 48,
+ 12517, 8306,
+ 12525, 5882,
+ 12527, 4213, 1177, 10677, 175, 3992,
+ 12527, 4213, 1177, 10677, 177, 3992,
+ 12527, 4213, 1177, 10677, 1809, 4876,
+ 12527, 4213, 1177, 10677, 2779, 1045, 8392,
+ 12527, 4213, 1177, 10677, 4849, 6409, 9050,
+ 12527, 4213, 1177, 10677, 4849, 6505, 11677, 9050,
+ 12527, 4213, 1177, 10677, 4849, 6627, 9050,
+ 12527, 4213, 1177, 10677, 4849, 7821, 8077, 9050,
+ 12527, 4213, 1177, 10677, 4849, 7821, 11677, 9050,
+ 12527, 4213, 1177, 10677, 4849, 8077, 9050,
+ 12527, 4213, 1177, 10677, 4849, 8153, 6409, 9050,
+ 12527, 4213, 1177, 10677, 4849, 8745, 9050,
+ 12527, 4213, 1177, 10677, 4849, 10637, 7533, 9050,
+ 12527, 4213, 1177, 10677, 4849, 12114,
+ 12527, 4213, 1177, 10677, 6107, 1809, 4876,
+ 12527, 4213, 1177, 10677, 6610,
+ 12527, 4213, 1177, 10677, 6616,
+ 12527, 4213, 1177, 10677, 7443, 6409, 9050,
+ 12527, 4213, 1177, 10677, 7443, 6505, 11677, 9050,
+ 12527, 4213, 1177, 10677, 7443, 6627, 9050,
+ 12527, 4213, 1177, 10677, 7443, 7821, 8077, 9050,
+ 12527, 4213, 1177, 10677, 7443, 7821, 11677, 9054,
+ 12527, 4213, 1177, 10677, 7443, 8077, 9050,
+ 12527, 4213, 1177, 10677, 7443, 8153, 6409, 9050,
+ 12527, 4213, 1177, 10677, 7443, 8745, 9050,
+ 12527, 4213, 1177, 10677, 7443, 10637, 7533, 9050,
+ 12527, 4213, 1177, 10677, 7443, 12114,
+ 12527, 4213, 1177, 10677, 10469, 4926,
+ 12527, 4213, 1177, 10677, 11224,
+ 12527, 4213, 1177, 10677, 11649, 10154,
+ 12527, 4213, 1177, 10677, 12017, 4926,
+ 12527, 4213, 1177, 10677, 12043, 4223, 5836,
+ 12527, 4213, 1177, 10677, 12043, 6616,
+ 12529, 568,
+ 12537, 7821, 11765, 6434,
+ 12540,
+ 12874,
+ 12881, 7608,
+ 12882,
+ 12895, 11765, 6434,
+ 12901, 2725, 11791, 6434,
+ 12901, 5385, 8057, 6434,
+ 12901, 8065, 8057, 6434,
+ 12901, 8241, 8057, 6434,
+ 12901, 9115, 10260,
+ 12901, 12056,
+ 12903, 835, 2091, 9855, 6741, 568,
+ 12903, 6741, 445, 6741, 568,
+ 12903, 6741, 568,
+ 12903, 6741, 569, 445, 2681, 6989, 428,
+ 12925, 11385, 8774,
+ 12929, 7201, 11262,
+ 12929, 7593, 476,
+ 12929, 7593, 6824,
+ 12929, 8325, 7593, 6,
+ 12929, 8325, 7593, 8,
+ 12929, 8325, 7593, 16,
+ 12929, 8325, 7593, 18,
+ 12929, 8325, 9063, 6,
+ 12929, 9063, 4,
+ 12929, 9063, 14,
+ 12929, 9063, 26,
+ 12929, 9063, 30,
+ 12929, 9063, 32,
+ 12929, 9063, 34,
+ 12929, 9063, 50,
+ 12929, 9063, 476,
+ 12929, 9063, 6824,
+ 12931, 10643, 6121, 4849, 4389, 6504,
+ 12931, 10643, 6121, 7443, 4389, 6504,
+ 12939, 5758,
+ 12941, 6741, 568,
+ 12941, 11621, 568,
+ 12967, 6409, 9050,
+ 12967, 8083, 6409, 9050,
+ 12967, 8153, 6409, 11195, 4926,
+ 12969, 4926,
+ 12969, 10390,
+ 12969, 10966,
+ 12975, 5758,
+ 12983, 11765, 6434,
+ 12987, 6689, 2170,
+ 12987, 6689, 2540,
+ 12987, 6689, 2778,
+ 12987, 6689, 4200,
+ 12987, 6689, 4214,
+ 12987, 6689, 5190,
+ 12987, 6689, 6722,
+ 12987, 6689, 7508,
+ 12987, 6689, 7694,
+ 12987, 7089, 7593, 8405, 0,
+ 12987, 7089, 7593, 8405, 2,
+ 12987, 7089, 7593, 8405, 4,
+ 12987, 7089, 7593, 8405, 6,
+ 12987, 7089, 7593, 8405, 8,
+ 12987, 7089, 7593, 8405, 10,
+ 12987, 7089, 7593, 8405, 12,
+ 12987, 7089, 7593, 8405, 14,
+ 12987, 7089, 7593, 8405, 16,
+ 12987, 7089, 7593, 8405, 18,
+ 12987, 7089, 7593, 8405, 20,
+ 12987, 7089, 7593, 8405, 22,
+ 12987, 7089, 7593, 8405, 24,
+ 12987, 7089, 7593, 8405, 26,
+ 12987, 7089, 7593, 8405, 28,
+ 12987, 7089, 7593, 8405, 30,
+ 12987, 7089, 7593, 8405, 32,
+ 12987, 7089, 7593, 8405, 34,
+ 12987, 7089, 7593, 8405, 36,
+ 12987, 7089, 7593, 8405, 38,
+ 12987, 7089, 7593, 8405, 40,
+ 12987, 7089, 7593, 8405, 42,
+ 12987, 7089, 7593, 8405, 44,
+ 12987, 7089, 7593, 8405, 46,
+ 12987, 7089, 7593, 8405, 48,
+ 12987, 7089, 7593, 8405, 50,
+ 12987, 8287, 5770,
+ 12987, 8287, 5771, 0,
+ 12987, 8287, 6594,
+ 12987, 8287, 6595, 0,
+ 12987, 8287, 6595, 40,
+ 12987, 8287, 6912,
+ 12987, 8287, 6913, 0,
+ 12987, 8287, 6982,
+ 12987, 8287, 6983, 0,
+ 12987, 8287, 7166,
+ 12987, 8287, 7167, 0,
+ 12987, 8287, 7244,
+ 12987, 8287, 7245, 0,
+ 12987, 8287, 7372,
+ 12987, 8287, 7373, 0,
+ 12987, 8287, 7440,
+ 12987, 8287, 7441, 0,
+ 12987, 8287, 8362,
+ 12987, 8287, 8363, 0,
+ 12987, 8287, 8828,
+ 12987, 8287, 8829, 0,
+ 12987, 8287, 9086,
+ 12987, 8287, 9087, 0,
+ 12987, 8287, 9400,
+ 12987, 8287, 9401, 0,
+ 12987, 8287, 9588,
+ 12987, 8287, 9589, 0,
+ 12987, 8287, 9780,
+ 12987, 8287, 9781, 0,
+ 12987, 8371, 10759, 29, 250,
+ 12987, 8371, 10759, 7310,
+ 12987, 8525, 2670,
+ 12987, 8525, 8162,
+ 12987, 8525, 8874,
+ 12987, 8525, 8876,
+ 12987, 8525, 9286,
+ 12987, 8525, 9700,
+ 12987, 8525, 10150,
+ 12987, 8525, 10200,
+ 12987, 8525, 10360,
+ 12987, 8525, 10622,
+ 12987, 8525, 11232,
+ 12987, 11043, 2170,
+ 12987, 11043, 2540,
+ 12987, 11043, 2586,
+ 12987, 11043, 2670,
+ 12987, 11043, 2778,
+ 12987, 11043, 3842,
+ 12987, 11043, 4194,
+ 12987, 11043, 4200,
+ 12987, 11043, 4214,
+ 12987, 11043, 4396,
+ 12987, 11043, 5012,
+ 12987, 11043, 5046,
+ 12987, 11043, 5190,
+ 12987, 11043, 5540,
+ 12987, 11043, 5650,
+ 12987, 11043, 6122,
+ 12987, 11043, 6716,
+ 12987, 11043, 6722,
+ 12987, 11043, 7072,
+ 12987, 11043, 7146,
+ 12987, 11043, 7428,
+ 12987, 11043, 7508,
+ 12987, 11043, 7640,
+ 12987, 11043, 7646,
+ 12987, 11043, 7694,
+ 12987, 11043, 7812,
+ 12987, 11043, 9714,
+ 12987, 11043, 9724,
+ 12987, 11043, 9862,
+ 12987, 11043, 10180,
+ 12987, 11043, 10484,
+ 12987, 11043, 10992,
+ 12987, 11043, 11208,
+ 12987, 11043, 11266,
+ 12987, 11043, 11612,
+ 12987, 11043, 13050,
+ 12990,
+ 12991, 6121, 36,
+ 13011, 4926,
+ 13011, 10390,
+ 13011, 10966,
+ 13022,
+ 13045, 6741, 568,
+ 13047, 9898,
+ 13061, 46,
+ 13061, 5758,
+ 13061, 5759, 275, 4849, 4389, 8056,
+ 13061, 5759, 275, 7443, 4389, 8056,
+ 13061, 5759, 275, 8153, 8056,
+ 13061, 5759, 275, 10642,
+ 13061, 5759, 6121, 1045, 6376,
+ 13061, 5759, 6121, 10666,
+ 13067, 6409, 9050,
+ 13067, 8083, 6409, 9050,
+ 13067, 8153, 6409, 11195, 4926,
+ 13070,
+ 13191, 7271, 4153, 6434,
+ 13191, 7607, 4153, 6434,
+ 13191, 11765, 6434,
+ 13231, 11765, 6434,
+ 13233, 9898,
+ 13235, 11765, 6434,
+ 13237, 11765, 6434,
+ 13365, 8153, 8306,
+ 13365, 8921, 7605, 4926,
+ 13365, 11185, 7605, 4926,
+ 13365, 12341, 7605, 4926,
+ 13381, 8774,
+ 13393, 7337, 8774,
+ 13403, 8279, 8774,
+ 13403, 8381, 8774,
+ 13417, 8774,
+ 13419, 8774,
+};
+static const struct { uint16_t code; uint32_t name:24; }
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+__attribute__((__packed__))
+#endif
+unicode_name_to_code[18242] = {
+ { 0x2114, 0 },
+ { 0x29CC, 4 },
+ { 0x2327, 7 },
+ { 0x22FF, 12 },
+ { 0x2987, 16 },
+ { 0x2989, 21 },
+ { 0x2981, 26 },
+ { 0x2982, 29 },
+ { 0x2A65, 33 },
+ { 0x2988, 37 },
+ { 0x298A, 42 },
+ { 0x2A64, 47 },
+ { 0x2A20, 51 },
+ { 0x2A21, 55 },
+ { 0x2A1F, 59 },
+ { 0x2A3E, 63 },
+ { 0x23E6, 67 },
+ { 0x2014, 69 },
+ { 0x2001, 71 },
+ { 0x2003, 73 },
+ { 0x2013, 75 },
+ { 0x2000, 77 },
+ { 0x2002, 79 },
+ { 0x1C78, 81 },
+ { 0x1C7D, 85 },
+ { 0x1C51, 88 },
+ { 0x1C56, 92 },
+ { 0x1C52, 96 },
+ { 0x1C55, 100 },
+ { 0x1C54, 104 },
+ { 0x1C59, 108 },
+ { 0x1C50, 112 },
+ { 0x1C58, 116 },
+ { 0x1C57, 120 },
+ { 0x1C53, 124 },
+ { 0x1C7B, 128 },
+ { 0x1C5C, 131 },
+ { 0x1C5E, 135 },
+ { 0x1C5B, 139 },
+ { 0x1C71, 143 },
+ { 0x1C6F, 147 },
+ { 0x1C66, 151 },
+ { 0x1C68, 155 },
+ { 0x1C65, 159 },
+ { 0x1C5A, 163 },
+ { 0x1C6E, 167 },
+ { 0x1C64, 171 },
+ { 0x1C73, 175 },
+ { 0x1C69, 179 },
+ { 0x1C75, 183 },
+ { 0x1C77, 187 },
+ { 0x1C76, 191 },
+ { 0x1C6A, 195 },
+ { 0x1C6B, 199 },
+ { 0x1C6D, 203 },
+ { 0x1C61, 207 },
+ { 0x1C60, 211 },
+ { 0x1C62, 215 },
+ { 0x1C63, 219 },
+ { 0x1C5D, 223 },
+ { 0x1C70, 227 },
+ { 0x1C72, 231 },
+ { 0x1C67, 235 },
+ { 0x1C5F, 239 },
+ { 0x1C74, 243 },
+ { 0x1C6C, 247 },
+ { 0x1C79, 251 },
+ { 0x1C7C, 255 },
+ { 0x1C7A, 258 },
+ { 0x1C7F, 262 },
+ { 0x1C7E, 267 },
+ { 0x27C7, 271 },
+ { 0x2951, 275 },
+ { 0x294D, 282 },
+ { 0x294C, 289 },
+ { 0x294F, 296 },
+ { 0x2195, 303 },
+ { 0x21A8, 306 },
+ { 0x2B0D, 311 },
+ { 0x21F3, 315 },
+ { 0x21D5, 319 },
+ { 0x297E, 323 },
+ { 0x22A5, 326 },
+ { 0x27DF, 328 },
+ { 0x29BD, 333 },
+ { 0x22F0, 337 },
+ { 0x2303, 341 },
+ { 0x2324, 343 },
+ { 0x54BC, 349 },
+ { 0x54B9, 352 },
+ { 0x54A1, 355 },
+ { 0x54B3, 358 },
+ { 0x54C6, 361 },
+ { 0x5491, 364 },
+ { 0x5498, 367 },
+ { 0x54A9, 370 },
+ { 0x54A8, 373 },
+ { 0x54B8, 376 },
+ { 0x549D, 379 },
+ { 0x54B2, 382 },
+ { 0x54A5, 385 },
+ { 0x54C3, 388 },
+ { 0x54BE, 391 },
+ { 0x5494, 394 },
+ { 0x54A3, 397 },
+ { 0x5497, 400 },
+ { 0x54B6, 403 },
+ { 0x54AD, 406 },
+ { 0x54B5, 409 },
+ { 0x5492, 412 },
+ { 0x54BB, 415 },
+ { 0x549A, 418 },
+ { 0x549C, 421 },
+ { 0x549E, 424 },
+ { 0x54AC, 427 },
+ { 0x5490, 430 },
+ { 0x54B0, 433 },
+ { 0x5495, 436 },
+ { 0x54A0, 439 },
+ { 0x54B1, 442 },
+ { 0x54AF, 445 },
+ { 0x54AE, 448 },
+ { 0x54AB, 451 },
+ { 0x54A2, 454 },
+ { 0x54C1, 457 },
+ { 0x549B, 460 },
+ { 0x54BD, 463 },
+ { 0x54A4, 466 },
+ { 0x5496, 469 },
+ { 0x54A6, 472 },
+ { 0x5499, 475 },
+ { 0x54BF, 478 },
+ { 0x549F, 481 },
+ { 0x54B7, 484 },
+ { 0x54AA, 487 },
+ { 0x54C5, 490 },
+ { 0x5493, 493 },
+ { 0x54A7, 496 },
+ { 0x54B4, 499 },
+ { 0x54C0, 502 },
+ { 0x54C2, 505 },
+ { 0x54BA, 508 },
+ { 0x54C4, 511 },
+ { 0x500A, 514 },
+ { 0x5014, 517 },
+ { 0x5002, 520 },
+ { 0x5011, 523 },
+ { 0x500B, 526 },
+ { 0x5008, 529 },
+ { 0x5009, 532 },
+ { 0x5020, 535 },
+ { 0x502A, 538 },
+ { 0x5018, 541 },
+ { 0x5027, 544 },
+ { 0x502E, 547 },
+ { 0x5034, 550 },
+ { 0x52B8, 553 },
+ { 0x52C2, 556 },
+ { 0x52B0, 559 },
+ { 0x52BF, 562 },
+ { 0x52C6, 565 },
+ { 0x52CC, 568 },
+ { 0x5109, 571 },
+ { 0x5112, 574 },
+ { 0x5102, 577 },
+ { 0x510F, 580 },
+ { 0x5116, 583 },
+ { 0x5013, 586 },
+ { 0x50D3, 589 },
+ { 0x50CF, 592 },
+ { 0x50D6, 595 },
+ { 0x50DA, 598 },
+ { 0x50E0, 601 },
+ { 0x51E4, 604 },
+ { 0x51F0, 607 },
+ { 0x51DC, 610 },
+ { 0x51EC, 613 },
+ { 0x51F4, 616 },
+ { 0x5273, 619 },
+ { 0x527E, 622 },
+ { 0x527B, 625 },
+ { 0x5006, 628 },
+ { 0x5003, 631 },
+ { 0x5000, 634 },
+ { 0x5001, 637 },
+ { 0x53E2, 640 },
+ { 0x53EE, 643 },
+ { 0x53F2, 646 },
+ { 0x53F8, 649 },
+ { 0x5201, 652 },
+ { 0x520C, 655 },
+ { 0x51FA, 658 },
+ { 0x5208, 661 },
+ { 0x5210, 664 },
+ { 0x51C1, 667 },
+ { 0x51CC, 670 },
+ { 0x51B9, 673 },
+ { 0x51C9, 676 },
+ { 0x51D0, 679 },
+ { 0x51D6, 682 },
+ { 0x50B7, 685 },
+ { 0x50C2, 688 },
+ { 0x50B0, 691 },
+ { 0x50BF, 694 },
+ { 0x50C5, 697 },
+ { 0x50CB, 700 },
+ { 0x5185, 703 },
+ { 0x518F, 706 },
+ { 0x517F, 709 },
+ { 0x518C, 712 },
+ { 0x5193, 715 },
+ { 0x5012, 718 },
+ { 0x500F, 721 },
+ { 0x5010, 724 },
+ { 0x5041, 727 },
+ { 0x503A, 730 },
+ { 0x5048, 733 },
+ { 0x504C, 736 },
+ { 0x5052, 739 },
+ { 0x53FE, 742 },
+ { 0x540A, 745 },
+ { 0x540E, 748 },
+ { 0x5414, 751 },
+ { 0x53C8, 754 },
+ { 0x53D2, 757 },
+ { 0x53CF, 760 },
+ { 0x53D6, 763 },
+ { 0x53DC, 766 },
+ { 0x5312, 769 },
+ { 0x531C, 772 },
+ { 0x530B, 775 },
+ { 0x5319, 778 },
+ { 0x5320, 781 },
+ { 0x5326, 784 },
+ { 0x5123, 787 },
+ { 0x512E, 790 },
+ { 0x511C, 793 },
+ { 0x512B, 796 },
+ { 0x5132, 799 },
+ { 0x500D, 802 },
+ { 0x50EC, 805 },
+ { 0x50E4, 808 },
+ { 0x50F0, 811 },
+ { 0x50F6, 814 },
+ { 0x50FC, 817 },
+ { 0x5282, 820 },
+ { 0x528B, 823 },
+ { 0x5288, 826 },
+ { 0x5015, 829 },
+ { 0x545F, 832 },
+ { 0x5469, 835 },
+ { 0x546D, 838 },
+ { 0x5473, 841 },
+ { 0x547F, 844 },
+ { 0x5483, 847 },
+ { 0x5489, 850 },
+ { 0x5296, 853 },
+ { 0x52A0, 856 },
+ { 0x528F, 859 },
+ { 0x529D, 862 },
+ { 0x52A4, 865 },
+ { 0x52AA, 868 },
+ { 0x5021, 871 },
+ { 0x501E, 874 },
+ { 0x501F, 877 },
+ { 0x5060, 880 },
+ { 0x506A, 883 },
+ { 0x5058, 886 },
+ { 0x5067, 889 },
+ { 0x506E, 892 },
+ { 0x5074, 895 },
+ { 0x502B, 898 },
+ { 0x5029, 901 },
+ { 0x501C, 904 },
+ { 0x5019, 907 },
+ { 0x5016, 910 },
+ { 0x5017, 913 },
+ { 0x5028, 916 },
+ { 0x5025, 919 },
+ { 0x5026, 922 },
+ { 0x5023, 925 },
+ { 0x502F, 928 },
+ { 0x5031, 931 },
+ { 0x502C, 934 },
+ { 0x502D, 937 },
+ { 0x5035, 940 },
+ { 0x5037, 943 },
+ { 0x5032, 946 },
+ { 0x5033, 949 },
+ { 0x52B9, 952 },
+ { 0x52B6, 955 },
+ { 0x52B7, 958 },
+ { 0x52C3, 961 },
+ { 0x52C1, 964 },
+ { 0x5363, 967 },
+ { 0x536F, 970 },
+ { 0x536B, 973 },
+ { 0x5372, 976 },
+ { 0x5378, 979 },
+ { 0x52B4, 982 },
+ { 0x52B1, 985 },
+ { 0x52AE, 988 },
+ { 0x52AF, 991 },
+ { 0x52C0, 994 },
+ { 0x52BD, 997 },
+ { 0x52BE, 1000 },
+ { 0x52BB, 1003 },
+ { 0x52C7, 1006 },
+ { 0x52C9, 1009 },
+ { 0x52C4, 1012 },
+ { 0x52C5, 1015 },
+ { 0x52CD, 1018 },
+ { 0x52CF, 1021 },
+ { 0x52CA, 1024 },
+ { 0x52CB, 1027 },
+ { 0x510A, 1030 },
+ { 0x5107, 1033 },
+ { 0x5108, 1036 },
+ { 0x513F, 1039 },
+ { 0x5149, 1042 },
+ { 0x5138, 1045 },
+ { 0x5146, 1048 },
+ { 0x514D, 1051 },
+ { 0x5113, 1054 },
+ { 0x5111, 1057 },
+ { 0x5105, 1060 },
+ { 0x5103, 1063 },
+ { 0x5100, 1066 },
+ { 0x5101, 1069 },
+ { 0x5110, 1072 },
+ { 0x510D, 1075 },
+ { 0x510E, 1078 },
+ { 0x510C, 1081 },
+ { 0x5117, 1084 },
+ { 0x5119, 1087 },
+ { 0x5114, 1090 },
+ { 0x5115, 1093 },
+ { 0x50D4, 1096 },
+ { 0x50D1, 1099 },
+ { 0x50D2, 1102 },
+ { 0x50D0, 1105 },
+ { 0x50CD, 1108 },
+ { 0x50CE, 1111 },
+ { 0x50D7, 1114 },
+ { 0x50D5, 1117 },
+ { 0x50DB, 1120 },
+ { 0x50DD, 1123 },
+ { 0x50D8, 1126 },
+ { 0x50D9, 1129 },
+ { 0x50E1, 1132 },
+ { 0x50DE, 1135 },
+ { 0x50DF, 1138 },
+ { 0x51E5, 1141 },
+ { 0x51E2, 1144 },
+ { 0x51E3, 1147 },
+ { 0x51F1, 1150 },
+ { 0x51EE, 1153 },
+ { 0x51EF, 1156 },
+ { 0x521C, 1159 },
+ { 0x5228, 1162 },
+ { 0x5216, 1165 },
+ { 0x5224, 1168 },
+ { 0x522C, 1171 },
+ { 0x51E0, 1174 },
+ { 0x51DD, 1177 },
+ { 0x51DA, 1180 },
+ { 0x51DB, 1183 },
+ { 0x51ED, 1186 },
+ { 0x51EA, 1189 },
+ { 0x51EB, 1192 },
+ { 0x51E8, 1195 },
+ { 0x51F5, 1198 },
+ { 0x51F7, 1201 },
+ { 0x51F2, 1204 },
+ { 0x51F3, 1207 },
+ { 0x5274, 1210 },
+ { 0x5271, 1213 },
+ { 0x5272, 1216 },
+ { 0x527F, 1219 },
+ { 0x527D, 1222 },
+ { 0x5270, 1225 },
+ { 0x526E, 1228 },
+ { 0x51A0, 1231 },
+ { 0x51A9, 1234 },
+ { 0x5199, 1237 },
+ { 0x51A6, 1240 },
+ { 0x51AD, 1243 },
+ { 0x51B3, 1246 },
+ { 0x509A, 1249 },
+ { 0x5093, 1252 },
+ { 0x50A1, 1255 },
+ { 0x50A5, 1258 },
+ { 0x50AA, 1261 },
+ { 0x5172, 1264 },
+ { 0x517A, 1267 },
+ { 0x516A, 1270 },
+ { 0x527C, 1273 },
+ { 0x5279, 1276 },
+ { 0x527A, 1279 },
+ { 0x5277, 1282 },
+ { 0x5250, 1285 },
+ { 0x525B, 1288 },
+ { 0x5248, 1291 },
+ { 0x5258, 1294 },
+ { 0x5007, 1297 },
+ { 0x5004, 1300 },
+ { 0x5005, 1303 },
+ { 0x53E6, 1306 },
+ { 0x53E3, 1309 },
+ { 0x53E0, 1312 },
+ { 0x53E1, 1315 },
+ { 0x541A, 1318 },
+ { 0x5425, 1321 },
+ { 0x5429, 1324 },
+ { 0x542F, 1327 },
+ { 0x53EF, 1330 },
+ { 0x53EC, 1333 },
+ { 0x53ED, 1336 },
+ { 0x53EA, 1339 },
+ { 0x53F3, 1342 },
+ { 0x53F5, 1345 },
+ { 0x53F0, 1348 },
+ { 0x53F1, 1351 },
+ { 0x53F9, 1354 },
+ { 0x53FB, 1357 },
+ { 0x53F6, 1360 },
+ { 0x53F7, 1363 },
+ { 0x5202, 1366 },
+ { 0x51FF, 1369 },
+ { 0x5200, 1372 },
+ { 0x520D, 1375 },
+ { 0x520A, 1378 },
+ { 0x520B, 1381 },
+ { 0x51FD, 1384 },
+ { 0x51FB, 1387 },
+ { 0x51F8, 1390 },
+ { 0x51F9, 1393 },
+ { 0x5209, 1396 },
+ { 0x5206, 1399 },
+ { 0x5207, 1402 },
+ { 0x5204, 1405 },
+ { 0x5211, 1408 },
+ { 0x5213, 1411 },
+ { 0x520E, 1414 },
+ { 0x520F, 1417 },
+ { 0x51C2, 1420 },
+ { 0x51BF, 1423 },
+ { 0x51C0, 1426 },
+ { 0x51CD, 1429 },
+ { 0x51CB, 1432 },
+ { 0x51BD, 1435 },
+ { 0x51BA, 1438 },
+ { 0x51B7, 1441 },
+ { 0x51B8, 1444 },
+ { 0x51CA, 1447 },
+ { 0x51C7, 1450 },
+ { 0x51C8, 1453 },
+ { 0x51C5, 1456 },
+ { 0x51D1, 1459 },
+ { 0x51D3, 1462 },
+ { 0x51CE, 1465 },
+ { 0x51CF, 1468 },
+ { 0x51D7, 1471 },
+ { 0x51D9, 1474 },
+ { 0x51D4, 1477 },
+ { 0x51D5, 1480 },
+ { 0x50B8, 1483 },
+ { 0x50B5, 1486 },
+ { 0x50B6, 1489 },
+ { 0x50C1, 1492 },
+ { 0x5234, 1495 },
+ { 0x523E, 1498 },
+ { 0x523B, 1501 },
+ { 0x5242, 1504 },
+ { 0x50B3, 1507 },
+ { 0x50B1, 1510 },
+ { 0x50AE, 1513 },
+ { 0x50AF, 1516 },
+ { 0x50C0, 1519 },
+ { 0x50BD, 1522 },
+ { 0x50BE, 1525 },
+ { 0x50BB, 1528 },
+ { 0x50C6, 1531 },
+ { 0x50C8, 1534 },
+ { 0x50C3, 1537 },
+ { 0x50C4, 1540 },
+ { 0x50CC, 1543 },
+ { 0x50C9, 1546 },
+ { 0x50CA, 1549 },
+ { 0x5186, 1552 },
+ { 0x5184, 1555 },
+ { 0x507F, 1558 },
+ { 0x5078, 1561 },
+ { 0x5083, 1564 },
+ { 0x5087, 1567 },
+ { 0x508D, 1570 },
+ { 0x5159, 1573 },
+ { 0x5160, 1576 },
+ { 0x5153, 1579 },
+ { 0x515D, 1582 },
+ { 0x5164, 1585 },
+ { 0x5190, 1588 },
+ { 0x518E, 1591 },
+ { 0x5262, 1594 },
+ { 0x526C, 1597 },
+ { 0x5269, 1600 },
+ { 0x5182, 1603 },
+ { 0x5180, 1606 },
+ { 0x517D, 1609 },
+ { 0x517E, 1612 },
+ { 0x5433, 1615 },
+ { 0x543D, 1618 },
+ { 0x5440, 1621 },
+ { 0x5446, 1624 },
+ { 0x518D, 1627 },
+ { 0x518A, 1630 },
+ { 0x518B, 1633 },
+ { 0x5396, 1636 },
+ { 0x539D, 1639 },
+ { 0x5399, 1642 },
+ { 0x53A1, 1645 },
+ { 0x53A7, 1648 },
+ { 0x5188, 1651 },
+ { 0x5194, 1654 },
+ { 0x5196, 1657 },
+ { 0x5191, 1660 },
+ { 0x5192, 1663 },
+ { 0x544C, 1666 },
+ { 0x5457, 1669 },
+ { 0x545B, 1672 },
+ { 0x52F6, 1675 },
+ { 0x52FD, 1678 },
+ { 0x52EF, 1681 },
+ { 0x52FF, 1684 },
+ { 0x5305, 1687 },
+ { 0x5042, 1690 },
+ { 0x503F, 1693 },
+ { 0x5040, 1696 },
+ { 0x503D, 1699 },
+ { 0x503B, 1702 },
+ { 0x5038, 1705 },
+ { 0x5039, 1708 },
+ { 0x5049, 1711 },
+ { 0x5046, 1714 },
+ { 0x5047, 1717 },
+ { 0x5044, 1720 },
+ { 0x504D, 1723 },
+ { 0x504F, 1726 },
+ { 0x504A, 1729 },
+ { 0x504B, 1732 },
+ { 0x5053, 1735 },
+ { 0x5055, 1738 },
+ { 0x5050, 1741 },
+ { 0x5051, 1744 },
+ { 0x5402, 1747 },
+ { 0x53FF, 1750 },
+ { 0x53FC, 1753 },
+ { 0x53FD, 1756 },
+ { 0x540B, 1759 },
+ { 0x5408, 1762 },
+ { 0x5409, 1765 },
+ { 0x5406, 1768 },
+ { 0x540F, 1771 },
+ { 0x5411, 1774 },
+ { 0x540C, 1777 },
+ { 0x540D, 1780 },
+ { 0x5415, 1783 },
+ { 0x5417, 1786 },
+ { 0x5412, 1789 },
+ { 0x5413, 1792 },
+ { 0x53C9, 1795 },
+ { 0x53C6, 1798 },
+ { 0x53C7, 1801 },
+ { 0x53D3, 1804 },
+ { 0x53D1, 1807 },
+ { 0x53D0, 1810 },
+ { 0x53CD, 1813 },
+ { 0x53CE, 1816 },
+ { 0x537D, 1819 },
+ { 0x5386, 1822 },
+ { 0x5382, 1825 },
+ { 0x538A, 1828 },
+ { 0x5390, 1831 },
+ { 0x53CB, 1834 },
+ { 0x53D7, 1837 },
+ { 0x53D9, 1840 },
+ { 0x53D4, 1843 },
+ { 0x53D5, 1846 },
+ { 0x53DD, 1849 },
+ { 0x53DF, 1852 },
+ { 0x53DA, 1855 },
+ { 0x53DB, 1858 },
+ { 0x5313, 1861 },
+ { 0x5310, 1864 },
+ { 0x5311, 1867 },
+ { 0x531D, 1870 },
+ { 0x531B, 1873 },
+ { 0x53AD, 1876 },
+ { 0x53B8, 1879 },
+ { 0x53B4, 1882 },
+ { 0x53BC, 1885 },
+ { 0x53C2, 1888 },
+ { 0x530E, 1891 },
+ { 0x530C, 1894 },
+ { 0x5309, 1897 },
+ { 0x530A, 1900 },
+ { 0x531A, 1903 },
+ { 0x5317, 1906 },
+ { 0x5318, 1909 },
+ { 0x5333, 1912 },
+ { 0x533A, 1915 },
+ { 0x532C, 1918 },
+ { 0x5337, 1921 },
+ { 0x533E, 1924 },
+ { 0x5342, 1927 },
+ { 0x5315, 1930 },
+ { 0x5321, 1933 },
+ { 0x5323, 1936 },
+ { 0x531E, 1939 },
+ { 0x531F, 1942 },
+ { 0x5327, 1945 },
+ { 0x5329, 1948 },
+ { 0x5324, 1951 },
+ { 0x5325, 1954 },
+ { 0x5124, 1957 },
+ { 0x5121, 1960 },
+ { 0x5122, 1963 },
+ { 0x512F, 1966 },
+ { 0x512D, 1969 },
+ { 0x511F, 1972 },
+ { 0x511D, 1975 },
+ { 0x511A, 1978 },
+ { 0x511B, 1981 },
+ { 0x512C, 1984 },
+ { 0x5129, 1987 },
+ { 0x512A, 1990 },
+ { 0x5127, 1993 },
+ { 0x5133, 1996 },
+ { 0x5135, 1999 },
+ { 0x5130, 2002 },
+ { 0x5131, 2005 },
+ { 0x500E, 2008 },
+ { 0x500C, 2011 },
+ { 0x50ED, 2014 },
+ { 0x50EA, 2017 },
+ { 0x50EB, 2020 },
+ { 0x50F3, 2023 },
+ { 0x50F2, 2026 },
+ { 0x50E8, 2029 },
+ { 0x50E5, 2032 },
+ { 0x50E2, 2035 },
+ { 0x50E3, 2038 },
+ { 0x50F1, 2041 },
+ { 0x50EE, 2044 },
+ { 0x50EF, 2047 },
+ { 0x50F7, 2050 },
+ { 0x50F9, 2053 },
+ { 0x50F4, 2056 },
+ { 0x50F5, 2059 },
+ { 0x50FD, 2062 },
+ { 0x50FF, 2065 },
+ { 0x50FA, 2068 },
+ { 0x50FB, 2071 },
+ { 0x5283, 2074 },
+ { 0x5280, 2077 },
+ { 0x5281, 2080 },
+ { 0x528C, 2083 },
+ { 0x528A, 2086 },
+ { 0x5289, 2089 },
+ { 0x5287, 2092 },
+ { 0x5285, 2095 },
+ { 0x5463, 2098 },
+ { 0x5460, 2101 },
+ { 0x545D, 2104 },
+ { 0x545E, 2107 },
+ { 0x546A, 2110 },
+ { 0x5467, 2113 },
+ { 0x5468, 2116 },
+ { 0x5466, 2119 },
+ { 0x546E, 2122 },
+ { 0x5470, 2125 },
+ { 0x546B, 2128 },
+ { 0x546C, 2131 },
+ { 0x5477, 2134 },
+ { 0x5474, 2137 },
+ { 0x5471, 2140 },
+ { 0x5472, 2143 },
+ { 0x5480, 2146 },
+ { 0x547D, 2149 },
+ { 0x547E, 2152 },
+ { 0x547B, 2155 },
+ { 0x5484, 2158 },
+ { 0x5486, 2161 },
+ { 0x5481, 2164 },
+ { 0x5482, 2167 },
+ { 0x548A, 2170 },
+ { 0x548C, 2173 },
+ { 0x5487, 2176 },
+ { 0x5488, 2179 },
+ { 0x5297, 2182 },
+ { 0x5294, 2185 },
+ { 0x5295, 2188 },
+ { 0x52A1, 2191 },
+ { 0x529F, 2194 },
+ { 0x5348, 2197 },
+ { 0x5353, 2200 },
+ { 0x534F, 2203 },
+ { 0x5357, 2206 },
+ { 0x535D, 2209 },
+ { 0x5292, 2212 },
+ { 0x5290, 2215 },
+ { 0x528D, 2218 },
+ { 0x528E, 2221 },
+ { 0x529E, 2224 },
+ { 0x529B, 2227 },
+ { 0x529C, 2230 },
+ { 0x5299, 2233 },
+ { 0x52A5, 2236 },
+ { 0x52A7, 2239 },
+ { 0x52A2, 2242 },
+ { 0x52A3, 2245 },
+ { 0x52AB, 2248 },
+ { 0x52AD, 2251 },
+ { 0x52A8, 2254 },
+ { 0x52A9, 2257 },
+ { 0x52DA, 2260 },
+ { 0x52E0, 2263 },
+ { 0x52D2, 2266 },
+ { 0x52DD, 2269 },
+ { 0x52E3, 2272 },
+ { 0x52E9, 2275 },
+ { 0x5061, 2278 },
+ { 0x505E, 2281 },
+ { 0x505F, 2284 },
+ { 0x506B, 2287 },
+ { 0x5069, 2290 },
+ { 0x505C, 2293 },
+ { 0x5059, 2296 },
+ { 0x5056, 2299 },
+ { 0x5057, 2302 },
+ { 0x5068, 2305 },
+ { 0x5065, 2308 },
+ { 0x5066, 2311 },
+ { 0x5063, 2314 },
+ { 0x506F, 2317 },
+ { 0x5071, 2320 },
+ { 0x506C, 2323 },
+ { 0x506D, 2326 },
+ { 0x5075, 2329 },
+ { 0x5072, 2332 },
+ { 0x5073, 2335 },
+ { 0x501D, 2338 },
+ { 0x501A, 2341 },
+ { 0x501B, 2344 },
+ { 0x5024, 2347 },
+ { 0x5022, 2350 },
+ { 0x5030, 2353 },
+ { 0x5036, 2356 },
+ { 0x5364, 2359 },
+ { 0x5361, 2362 },
+ { 0x5362, 2365 },
+ { 0x5370, 2368 },
+ { 0x536D, 2371 },
+ { 0x536E, 2374 },
+ { 0x536C, 2377 },
+ { 0x5369, 2380 },
+ { 0x536A, 2383 },
+ { 0x5367, 2386 },
+ { 0x5373, 2389 },
+ { 0x5375, 2392 },
+ { 0x5371, 2395 },
+ { 0x5379, 2398 },
+ { 0x537B, 2401 },
+ { 0x5376, 2404 },
+ { 0x5377, 2407 },
+ { 0x52B5, 2410 },
+ { 0x52B2, 2413 },
+ { 0x52B3, 2416 },
+ { 0x52BC, 2419 },
+ { 0x52BA, 2422 },
+ { 0x52C8, 2425 },
+ { 0x52CE, 2428 },
+ { 0x5140, 2431 },
+ { 0x513D, 2434 },
+ { 0x513E, 2437 },
+ { 0x514A, 2440 },
+ { 0x5148, 2443 },
+ { 0x513B, 2446 },
+ { 0x5139, 2449 },
+ { 0x5136, 2452 },
+ { 0x5137, 2455 },
+ { 0x5147, 2458 },
+ { 0x5144, 2461 },
+ { 0x5145, 2464 },
+ { 0x5142, 2467 },
+ { 0x514E, 2470 },
+ { 0x5150, 2473 },
+ { 0x514B, 2476 },
+ { 0x514C, 2479 },
+ { 0x5106, 2482 },
+ { 0x5104, 2485 },
+ { 0x510B, 2488 },
+ { 0x5118, 2491 },
+ { 0x50DC, 2494 },
+ { 0x521D, 2497 },
+ { 0x521A, 2500 },
+ { 0x521B, 2503 },
+ { 0x5229, 2506 },
+ { 0x5226, 2509 },
+ { 0x5227, 2512 },
+ { 0x5218, 2515 },
+ { 0x5214, 2518 },
+ { 0x5215, 2521 },
+ { 0x5225, 2524 },
+ { 0x5222, 2527 },
+ { 0x5223, 2530 },
+ { 0x5220, 2533 },
+ { 0x522D, 2536 },
+ { 0x522F, 2539 },
+ { 0x522A, 2542 },
+ { 0x522B, 2545 },
+ { 0x51E1, 2548 },
+ { 0x51DE, 2551 },
+ { 0x51DF, 2554 },
+ { 0x51E9, 2557 },
+ { 0x51E6, 2560 },
+ { 0x51E7, 2563 },
+ { 0x51F6, 2566 },
+ { 0x526F, 2569 },
+ { 0x51A1, 2572 },
+ { 0x519E, 2575 },
+ { 0x519F, 2578 },
+ { 0x51AA, 2581 },
+ { 0x51A8, 2584 },
+ { 0x519C, 2587 },
+ { 0x519A, 2590 },
+ { 0x5197, 2593 },
+ { 0x5198, 2596 },
+ { 0x51A7, 2599 },
+ { 0x51A5, 2602 },
+ { 0x51A3, 2605 },
+ { 0x51AE, 2608 },
+ { 0x51B0, 2611 },
+ { 0x51AB, 2614 },
+ { 0x51AC, 2617 },
+ { 0x51B4, 2620 },
+ { 0x51B6, 2623 },
+ { 0x51B1, 2626 },
+ { 0x51B2, 2629 },
+ { 0x509B, 2632 },
+ { 0x5098, 2635 },
+ { 0x5099, 2638 },
+ { 0x5096, 2641 },
+ { 0x5094, 2644 },
+ { 0x5091, 2647 },
+ { 0x5092, 2650 },
+ { 0x50A2, 2653 },
+ { 0x509F, 2656 },
+ { 0x50A0, 2659 },
+ { 0x509D, 2662 },
+ { 0x50A6, 2665 },
+ { 0x50A8, 2668 },
+ { 0x50A3, 2671 },
+ { 0x50A4, 2674 },
+ { 0x50AB, 2677 },
+ { 0x50AD, 2680 },
+ { 0x50A9, 2683 },
+ { 0x5173, 2686 },
+ { 0x5170, 2689 },
+ { 0x5171, 2692 },
+ { 0x517B, 2695 },
+ { 0x5179, 2698 },
+ { 0x516E, 2701 },
+ { 0x516B, 2704 },
+ { 0x5168, 2707 },
+ { 0x5169, 2710 },
+ { 0x5178, 2713 },
+ { 0x5176, 2716 },
+ { 0x5177, 2719 },
+ { 0x5175, 2722 },
+ { 0x517C, 2725 },
+ { 0x5278, 2728 },
+ { 0x5275, 2731 },
+ { 0x5276, 2734 },
+ { 0x5251, 2737 },
+ { 0x524E, 2740 },
+ { 0x524F, 2743 },
+ { 0x525C, 2746 },
+ { 0x525A, 2749 },
+ { 0x524C, 2752 },
+ { 0x5249, 2755 },
+ { 0x5246, 2758 },
+ { 0x5247, 2761 },
+ { 0x5259, 2764 },
+ { 0x5256, 2767 },
+ { 0x5257, 2770 },
+ { 0x5254, 2773 },
+ { 0x53E7, 2776 },
+ { 0x53E4, 2779 },
+ { 0x53E5, 2782 },
+ { 0x541E, 2785 },
+ { 0x541B, 2788 },
+ { 0x5418, 2791 },
+ { 0x5419, 2794 },
+ { 0x5426, 2797 },
+ { 0x5423, 2800 },
+ { 0x5424, 2803 },
+ { 0x5421, 2806 },
+ { 0x542A, 2809 },
+ { 0x542C, 2812 },
+ { 0x5427, 2815 },
+ { 0x5428, 2818 },
+ { 0x5430, 2821 },
+ { 0x542D, 2824 },
+ { 0x542E, 2827 },
+ { 0x53EB, 2830 },
+ { 0x53E8, 2833 },
+ { 0x53E9, 2836 },
+ { 0x53F4, 2839 },
+ { 0x53FA, 2842 },
+ { 0x51FE, 2845 },
+ { 0x51FC, 2848 },
+ { 0x5205, 2851 },
+ { 0x5203, 2854 },
+ { 0x5212, 2857 },
+ { 0x51BE, 2860 },
+ { 0x51BB, 2863 },
+ { 0x51BC, 2866 },
+ { 0x51C6, 2869 },
+ { 0x51C3, 2872 },
+ { 0x51C4, 2875 },
+ { 0x51D2, 2878 },
+ { 0x51D8, 2881 },
+ { 0x5235, 2884 },
+ { 0x5232, 2887 },
+ { 0x5233, 2890 },
+ { 0x523F, 2893 },
+ { 0x523D, 2896 },
+ { 0x5231, 2899 },
+ { 0x523C, 2902 },
+ { 0x5239, 2905 },
+ { 0x523A, 2908 },
+ { 0x5237, 2911 },
+ { 0x5243, 2914 },
+ { 0x5245, 2917 },
+ { 0x5240, 2920 },
+ { 0x5241, 2923 },
+ { 0x50B4, 2926 },
+ { 0x50B2, 2929 },
+ { 0x50BC, 2932 },
+ { 0x50B9, 2935 },
+ { 0x50BA, 2938 },
+ { 0x50C7, 2941 },
+ { 0x5080, 2944 },
+ { 0x507D, 2947 },
+ { 0x507E, 2950 },
+ { 0x507B, 2953 },
+ { 0x5079, 2956 },
+ { 0x5076, 2959 },
+ { 0x5077, 2962 },
+ { 0x5084, 2965 },
+ { 0x5081, 2968 },
+ { 0x5082, 2971 },
+ { 0x5088, 2974 },
+ { 0x508A, 2977 },
+ { 0x5085, 2980 },
+ { 0x5086, 2983 },
+ { 0x508E, 2986 },
+ { 0x5090, 2989 },
+ { 0x508B, 2992 },
+ { 0x508C, 2995 },
+ { 0x515A, 2998 },
+ { 0x5157, 3001 },
+ { 0x5158, 3004 },
+ { 0x5161, 3007 },
+ { 0x515F, 3010 },
+ { 0x5156, 3013 },
+ { 0x5154, 3016 },
+ { 0x5151, 3019 },
+ { 0x5152, 3022 },
+ { 0x515E, 3025 },
+ { 0x515B, 3028 },
+ { 0x515C, 3031 },
+ { 0x5165, 3034 },
+ { 0x5167, 3037 },
+ { 0x5162, 3040 },
+ { 0x5163, 3043 },
+ { 0x5263, 3046 },
+ { 0x5260, 3049 },
+ { 0x5261, 3052 },
+ { 0x526D, 3055 },
+ { 0x526B, 3058 },
+ { 0x525E, 3061 },
+ { 0x526A, 3064 },
+ { 0x5267, 3067 },
+ { 0x5268, 3070 },
+ { 0x5266, 3073 },
+ { 0x5183, 3076 },
+ { 0x5181, 3079 },
+ { 0x5437, 3082 },
+ { 0x5434, 3085 },
+ { 0x5431, 3088 },
+ { 0x5432, 3091 },
+ { 0x543E, 3094 },
+ { 0x543B, 3097 },
+ { 0x543C, 3100 },
+ { 0x543A, 3103 },
+ { 0x5441, 3106 },
+ { 0x5443, 3109 },
+ { 0x543F, 3112 },
+ { 0x5447, 3115 },
+ { 0x5449, 3118 },
+ { 0x5444, 3121 },
+ { 0x5445, 3124 },
+ { 0x5397, 3127 },
+ { 0x5394, 3130 },
+ { 0x5395, 3133 },
+ { 0x539E, 3136 },
+ { 0x539B, 3139 },
+ { 0x539C, 3142 },
+ { 0x539A, 3145 },
+ { 0x5398, 3148 },
+ { 0x53A2, 3151 },
+ { 0x53A4, 3154 },
+ { 0x539F, 3157 },
+ { 0x53A0, 3160 },
+ { 0x53A8, 3163 },
+ { 0x53AA, 3166 },
+ { 0x53A5, 3169 },
+ { 0x53A6, 3172 },
+ { 0x5189, 3175 },
+ { 0x5187, 3178 },
+ { 0x5195, 3181 },
+ { 0x5450, 3184 },
+ { 0x544D, 3187 },
+ { 0x544A, 3190 },
+ { 0x544B, 3193 },
+ { 0x5458, 3196 },
+ { 0x5455, 3199 },
+ { 0x5456, 3202 },
+ { 0x5453, 3205 },
+ { 0x545C, 3208 },
+ { 0x5459, 3211 },
+ { 0x545A, 3214 },
+ { 0x52F7, 3217 },
+ { 0x52F4, 3220 },
+ { 0x52F5, 3223 },
+ { 0x52FC, 3226 },
+ { 0x52F2, 3229 },
+ { 0x52F0, 3232 },
+ { 0x52ED, 3235 },
+ { 0x52EE, 3238 },
+ { 0x52FB, 3241 },
+ { 0x52FA, 3244 },
+ { 0x52F9, 3247 },
+ { 0x5300, 3250 },
+ { 0x5302, 3253 },
+ { 0x52FE, 3256 },
+ { 0x5306, 3259 },
+ { 0x5308, 3262 },
+ { 0x5303, 3265 },
+ { 0x5304, 3268 },
+ { 0x503E, 3271 },
+ { 0x503C, 3274 },
+ { 0x5045, 3277 },
+ { 0x5043, 3280 },
+ { 0x504E, 3283 },
+ { 0x5054, 3286 },
+ { 0x5403, 3289 },
+ { 0x5400, 3292 },
+ { 0x5401, 3295 },
+ { 0x5407, 3298 },
+ { 0x5404, 3301 },
+ { 0x5405, 3304 },
+ { 0x5410, 3307 },
+ { 0x5416, 3310 },
+ { 0x537C, 3313 },
+ { 0x5387, 3316 },
+ { 0x5384, 3319 },
+ { 0x5385, 3322 },
+ { 0x5383, 3325 },
+ { 0x5380, 3328 },
+ { 0x5381, 3331 },
+ { 0x537F, 3334 },
+ { 0x538B, 3337 },
+ { 0x538D, 3340 },
+ { 0x5388, 3343 },
+ { 0x5389, 3346 },
+ { 0x5391, 3349 },
+ { 0x5393, 3352 },
+ { 0x538E, 3355 },
+ { 0x538F, 3358 },
+ { 0x53CC, 3361 },
+ { 0x53CA, 3364 },
+ { 0x53D8, 3367 },
+ { 0x53DE, 3370 },
+ { 0x53AE, 3373 },
+ { 0x53AB, 3376 },
+ { 0x53AC, 3379 },
+ { 0x53B9, 3382 },
+ { 0x53B6, 3385 },
+ { 0x53B7, 3388 },
+ { 0x53B5, 3391 },
+ { 0x53B2, 3394 },
+ { 0x53B3, 3397 },
+ { 0x53B0, 3400 },
+ { 0x53BD, 3403 },
+ { 0x53BF, 3406 },
+ { 0x53BA, 3409 },
+ { 0x53BB, 3412 },
+ { 0x53C3, 3415 },
+ { 0x53C5, 3418 },
+ { 0x53C0, 3421 },
+ { 0x53C1, 3424 },
+ { 0x530F, 3427 },
+ { 0x530D, 3430 },
+ { 0x5334, 3433 },
+ { 0x5331, 3436 },
+ { 0x5332, 3439 },
+ { 0x533B, 3442 },
+ { 0x5339, 3445 },
+ { 0x532F, 3448 },
+ { 0x532D, 3451 },
+ { 0x532A, 3454 },
+ { 0x532B, 3457 },
+ { 0x5338, 3460 },
+ { 0x5335, 3463 },
+ { 0x5336, 3466 },
+ { 0x533F, 3469 },
+ { 0x533C, 3472 },
+ { 0x533D, 3475 },
+ { 0x5343, 3478 },
+ { 0x5345, 3481 },
+ { 0x5340, 3484 },
+ { 0x5341, 3487 },
+ { 0x5316, 3490 },
+ { 0x5314, 3493 },
+ { 0x5322, 3496 },
+ { 0x5328, 3499 },
+ { 0x5120, 3502 },
+ { 0x511E, 3505 },
+ { 0x5128, 3508 },
+ { 0x5125, 3511 },
+ { 0x5126, 3514 },
+ { 0x5134, 3517 },
+ { 0x50E9, 3520 },
+ { 0x50E6, 3523 },
+ { 0x50E7, 3526 },
+ { 0x50F8, 3529 },
+ { 0x50FE, 3532 },
+ { 0x5286, 3535 },
+ { 0x5284, 3538 },
+ { 0x5464, 3541 },
+ { 0x5461, 3544 },
+ { 0x5462, 3547 },
+ { 0x5465, 3550 },
+ { 0x546F, 3553 },
+ { 0x5478, 3556 },
+ { 0x5475, 3559 },
+ { 0x5476, 3562 },
+ { 0x547C, 3565 },
+ { 0x5479, 3568 },
+ { 0x547A, 3571 },
+ { 0x5485, 3574 },
+ { 0x548B, 3577 },
+ { 0x5349, 3580 },
+ { 0x5346, 3583 },
+ { 0x5347, 3586 },
+ { 0x5354, 3589 },
+ { 0x5351, 3592 },
+ { 0x5352, 3595 },
+ { 0x5350, 3598 },
+ { 0x534D, 3601 },
+ { 0x534E, 3604 },
+ { 0x534B, 3607 },
+ { 0x5358, 3610 },
+ { 0x535A, 3613 },
+ { 0x5355, 3616 },
+ { 0x5356, 3619 },
+ { 0x535E, 3622 },
+ { 0x5360, 3625 },
+ { 0x535B, 3628 },
+ { 0x535C, 3631 },
+ { 0x5293, 3634 },
+ { 0x5291, 3637 },
+ { 0x529A, 3640 },
+ { 0x5298, 3643 },
+ { 0x52A6, 3646 },
+ { 0x52AC, 3649 },
+ { 0x52DB, 3652 },
+ { 0x52D8, 3655 },
+ { 0x52D9, 3658 },
+ { 0x52E1, 3661 },
+ { 0x52DF, 3664 },
+ { 0x52D6, 3667 },
+ { 0x52D3, 3670 },
+ { 0x52D0, 3673 },
+ { 0x52D1, 3676 },
+ { 0x52DE, 3679 },
+ { 0x52DC, 3682 },
+ { 0x52E4, 3685 },
+ { 0x52E6, 3688 },
+ { 0x52E2, 3691 },
+ { 0x52EA, 3694 },
+ { 0x52EC, 3697 },
+ { 0x52E7, 3700 },
+ { 0x52E8, 3703 },
+ { 0x505D, 3706 },
+ { 0x505A, 3709 },
+ { 0x505B, 3712 },
+ { 0x5064, 3715 },
+ { 0x5062, 3718 },
+ { 0x5070, 3721 },
+ { 0x5368, 3724 },
+ { 0x5365, 3727 },
+ { 0x5366, 3730 },
+ { 0x5374, 3733 },
+ { 0x537A, 3736 },
+ { 0x513C, 3739 },
+ { 0x513A, 3742 },
+ { 0x5143, 3745 },
+ { 0x5141, 3748 },
+ { 0x514F, 3751 },
+ { 0x5219, 3754 },
+ { 0x5217, 3757 },
+ { 0x5221, 3760 },
+ { 0x521E, 3763 },
+ { 0x521F, 3766 },
+ { 0x522E, 3769 },
+ { 0x519D, 3772 },
+ { 0x519B, 3775 },
+ { 0x51A4, 3778 },
+ { 0x51A2, 3781 },
+ { 0x51AF, 3784 },
+ { 0x51B5, 3787 },
+ { 0x5097, 3790 },
+ { 0x5095, 3793 },
+ { 0x509E, 3796 },
+ { 0x509C, 3799 },
+ { 0x50A7, 3802 },
+ { 0x50AC, 3805 },
+ { 0x516F, 3808 },
+ { 0x516C, 3811 },
+ { 0x516D, 3814 },
+ { 0x5174, 3817 },
+ { 0x524D, 3820 },
+ { 0x524A, 3823 },
+ { 0x524B, 3826 },
+ { 0x5255, 3829 },
+ { 0x5252, 3832 },
+ { 0x5253, 3835 },
+ { 0x541F, 3838 },
+ { 0x541C, 3841 },
+ { 0x541D, 3844 },
+ { 0x5422, 3847 },
+ { 0x5420, 3850 },
+ { 0x542B, 3853 },
+ { 0x5230, 3856 },
+ { 0x5238, 3859 },
+ { 0x5236, 3862 },
+ { 0x5244, 3865 },
+ { 0x507C, 3868 },
+ { 0x507A, 3871 },
+ { 0x5089, 3874 },
+ { 0x508F, 3877 },
+ { 0x5155, 3880 },
+ { 0x5166, 3883 },
+ { 0x525F, 3886 },
+ { 0x525D, 3889 },
+ { 0x5264, 3892 },
+ { 0x5265, 3895 },
+ { 0x5438, 3898 },
+ { 0x5435, 3901 },
+ { 0x5436, 3904 },
+ { 0x5439, 3907 },
+ { 0x5442, 3910 },
+ { 0x5448, 3913 },
+ { 0x53A3, 3916 },
+ { 0x53A9, 3919 },
+ { 0x5451, 3922 },
+ { 0x544E, 3925 },
+ { 0x544F, 3928 },
+ { 0x5454, 3931 },
+ { 0x5452, 3934 },
+ { 0x52F3, 3937 },
+ { 0x52F1, 3940 },
+ { 0x52F8, 3943 },
+ { 0x5301, 3946 },
+ { 0x5307, 3949 },
+ { 0x537E, 3952 },
+ { 0x538C, 3955 },
+ { 0x5392, 3958 },
+ { 0x53B1, 3961 },
+ { 0x53AF, 3964 },
+ { 0x53BE, 3967 },
+ { 0x53C4, 3970 },
+ { 0x5330, 3973 },
+ { 0x532E, 3976 },
+ { 0x5344, 3979 },
+ { 0x534C, 3982 },
+ { 0x534A, 3985 },
+ { 0x5359, 3988 },
+ { 0x535F, 3991 },
+ { 0x52D7, 3994 },
+ { 0x52D4, 3997 },
+ { 0x52D5, 4000 },
+ { 0x52E5, 4003 },
+ { 0x52EB, 4006 },
+ { 0x262C, 4009 },
+ { 0x224C, 4011 },
+ { 0x232E, 4014 },
+ { 0x27D1, 4016 },
+ { 0x235D, 4019 },
+ { 0x2355, 4025 },
+ { 0x2351, 4031 },
+ { 0x2361, 4037 },
+ { 0x2372, 4043 },
+ { 0x2352, 4049 },
+ { 0x236B, 4054 },
+ { 0x2362, 4059 },
+ { 0x235B, 4064 },
+ { 0x2364, 4069 },
+ { 0x2374, 4074 },
+ { 0x2366, 4078 },
+ { 0x234E, 4084 },
+ { 0x234A, 4090 },
+ { 0x2371, 4096 },
+ { 0x2373, 4102 },
+ { 0x2378, 4106 },
+ { 0x2367, 4111 },
+ { 0x2395, 4117 },
+ { 0x2353, 4121 },
+ { 0x2354, 4127 },
+ { 0x233B, 4132 },
+ { 0x236F, 4137 },
+ { 0x234C, 4143 },
+ { 0x2360, 4149 },
+ { 0x234D, 4154 },
+ { 0x2338, 4159 },
+ { 0x2341, 4164 },
+ { 0x233C, 4169 },
+ { 0x2339, 4174 },
+ { 0x233A, 4179 },
+ { 0x2350, 4184 },
+ { 0x2370, 4190 },
+ { 0x2342, 4195 },
+ { 0x2357, 4200 },
+ { 0x2347, 4206 },
+ { 0x2343, 4212 },
+ { 0x2348, 4217 },
+ { 0x2344, 4223 },
+ { 0x2363, 4228 },
+ { 0x237A, 4233 },
+ { 0x2376, 4237 },
+ { 0x236A, 4242 },
+ { 0x234B, 4247 },
+ { 0x2359, 4252 },
+ { 0x2375, 4257 },
+ { 0x2379, 4261 },
+ { 0x235E, 4266 },
+ { 0x2358, 4271 },
+ { 0x233F, 4276 },
+ { 0x236D, 4281 },
+ { 0x2368, 4286 },
+ { 0x236C, 4291 },
+ { 0x233E, 4295 },
+ { 0x235F, 4300 },
+ { 0x233D, 4305 },
+ { 0x235C, 4310 },
+ { 0x2349, 4315 },
+ { 0x2365, 4320 },
+ { 0x2336, 4325 },
+ { 0x2337, 4329 },
+ { 0x235A, 4334 },
+ { 0x2377, 4339 },
+ { 0x234F, 4344 },
+ { 0x2340, 4349 },
+ { 0x2356, 4354 },
+ { 0x2345, 4359 },
+ { 0x236E, 4364 },
+ { 0x2346, 4369 },
+ { 0x2369, 4374 },
+ { 0x2312, 4379 },
+ { 0x2136, 4380 },
+ { 0x29F9, 4382 },
+ { 0x29F8, 4385 },
+ { 0x2540, 4387 },
+ { 0x2526, 4395 },
+ { 0x251A, 4403 },
+ { 0x251E, 4410 },
+ { 0x2516, 4418 },
+ { 0x2538, 4425 },
+ { 0x2548, 4432 },
+ { 0x252A, 4440 },
+ { 0x2519, 4448 },
+ { 0x2522, 4455 },
+ { 0x2515, 4463 },
+ { 0x2537, 4470 },
+ { 0x255C, 4477 },
+ { 0x2559, 4484 },
+ { 0x2568, 4491 },
+ { 0x255B, 4498 },
+ { 0x2558, 4505 },
+ { 0x2567, 4512 },
+ { 0x2541, 4519 },
+ { 0x2527, 4527 },
+ { 0x2512, 4535 },
+ { 0x251F, 4542 },
+ { 0x250E, 4550 },
+ { 0x2530, 4557 },
+ { 0x2547, 4564 },
+ { 0x2529, 4572 },
+ { 0x2511, 4580 },
+ { 0x2521, 4587 },
+ { 0x250D, 4595 },
+ { 0x252F, 4602 },
+ { 0x2556, 4609 },
+ { 0x2553, 4616 },
+ { 0x2565, 4623 },
+ { 0x2555, 4630 },
+ { 0x2552, 4637 },
+ { 0x2564, 4644 },
+ { 0x2543, 4651 },
+ { 0x2545, 4660 },
+ { 0x2535, 4669 },
+ { 0x252D, 4677 },
+ { 0x253D, 4685 },
+ { 0x253A, 4693 },
+ { 0x2532, 4701 },
+ { 0x254A, 4709 },
+ { 0x2579, 4717 },
+ { 0x251B, 4721 },
+ { 0x257F, 4727 },
+ { 0x2517, 4734 },
+ { 0x253B, 4740 },
+ { 0x257B, 4746 },
+ { 0x2513, 4750 },
+ { 0x250F, 4756 },
+ { 0x2533, 4762 },
+ { 0x2578, 4768 },
+ { 0x257E, 4772 },
+ { 0x257A, 4779 },
+ { 0x254F, 4783 },
+ { 0x254D, 4789 },
+ { 0x2507, 4795 },
+ { 0x2505, 4801 },
+ { 0x2503, 4807 },
+ { 0x252B, 4811 },
+ { 0x2523, 4817 },
+ { 0x254B, 4823 },
+ { 0x250B, 4829 },
+ { 0x2509, 4835 },
+ { 0x2501, 4841 },
+ { 0x2575, 4845 },
+ { 0x2518, 4849 },
+ { 0x257D, 4855 },
+ { 0x2514, 4862 },
+ { 0x2534, 4868 },
+ { 0x256F, 4874 },
+ { 0x2570, 4881 },
+ { 0x256E, 4888 },
+ { 0x256D, 4895 },
+ { 0x2577, 4902 },
+ { 0x2510, 4906 },
+ { 0x250C, 4912 },
+ { 0x252C, 4918 },
+ { 0x2574, 4924 },
+ { 0x257C, 4928 },
+ { 0x2576, 4935 },
+ { 0x254E, 4939 },
+ { 0x254C, 4945 },
+ { 0x2506, 4951 },
+ { 0x2504, 4957 },
+ { 0x2573, 4963 },
+ { 0x2572, 4968 },
+ { 0x2571, 4977 },
+ { 0x2502, 4986 },
+ { 0x2524, 4990 },
+ { 0x251C, 4996 },
+ { 0x253C, 5002 },
+ { 0x250A, 5008 },
+ { 0x2508, 5014 },
+ { 0x2500, 5020 },
+ { 0x2544, 5024 },
+ { 0x2546, 5033 },
+ { 0x2536, 5042 },
+ { 0x252E, 5050 },
+ { 0x253E, 5058 },
+ { 0x2539, 5066 },
+ { 0x2531, 5074 },
+ { 0x2549, 5082 },
+ { 0x255D, 5090 },
+ { 0x255A, 5096 },
+ { 0x2569, 5102 },
+ { 0x2557, 5108 },
+ { 0x2554, 5114 },
+ { 0x2566, 5120 },
+ { 0x2551, 5126 },
+ { 0x2563, 5130 },
+ { 0x2560, 5136 },
+ { 0x256C, 5142 },
+ { 0x2550, 5148 },
+ { 0x2528, 5152 },
+ { 0x2520, 5159 },
+ { 0x2542, 5166 },
+ { 0x2525, 5173 },
+ { 0x251D, 5180 },
+ { 0x253F, 5187 },
+ { 0x2562, 5194 },
+ { 0x255F, 5201 },
+ { 0x256B, 5208 },
+ { 0x2561, 5215 },
+ { 0x255E, 5222 },
+ { 0x256A, 5229 },
+ { 0x2627, 5236 },
+ { 0x31D4, 5238 },
+ { 0x31D0, 5241 },
+ { 0x31CF, 5244 },
+ { 0x31D2, 5247 },
+ { 0x31E3, 5250 },
+ { 0x31D1, 5253 },
+ { 0x31C0, 5256 },
+ { 0x31D6, 5259 },
+ { 0x31C7, 5262 },
+ { 0x31D5, 5265 },
+ { 0x31DB, 5268 },
+ { 0x31E2, 5271 },
+ { 0x31DC, 5274 },
+ { 0x31DA, 5277 },
+ { 0x31D3, 5280 },
+ { 0x31D9, 5283 },
+ { 0x31C4, 5286 },
+ { 0x31D7, 5289 },
+ { 0x31DD, 5292 },
+ { 0x31C1, 5295 },
+ { 0x31C2, 5298 },
+ { 0x31C3, 5301 },
+ { 0x31C6, 5304 },
+ { 0x31CA, 5307 },
+ { 0x31CD, 5310 },
+ { 0x31C5, 5313 },
+ { 0x31DF, 5316 },
+ { 0x31D8, 5319 },
+ { 0x31DE, 5322 },
+ { 0x31CC, 5325 },
+ { 0x31E0, 5328 },
+ { 0x31C8, 5331 },
+ { 0x31CB, 5334 },
+ { 0x31CE, 5337 },
+ { 0x31C9, 5340 },
+ { 0x31E1, 5343 },
+ { 0x2E86, 5346 },
+ { 0x2EA7, 5349 },
+ { 0x2EA8, 5352 },
+ { 0x2EDD, 5355 },
+ { 0x2EDE, 5359 },
+ { 0x2EDF, 5363 },
+ { 0x2EB8, 5367 },
+ { 0x2EAB, 5370 },
+ { 0x2EB1, 5373 },
+ { 0x2EB2, 5377 },
+ { 0x2EB4, 5381 },
+ { 0x2EB3, 5385 },
+ { 0x2EB9, 5389 },
+ { 0x2EA4, 5392 },
+ { 0x2EA5, 5396 },
+ { 0x2EB7, 5400 },
+ { 0x2E99, 5403 },
+ { 0x2E9C, 5406 },
+ { 0x2ED8, 5409 },
+ { 0x2EAA, 5412 },
+ { 0x2EE3, 5417 },
+ { 0x2ECF, 5420 },
+ { 0x2EA3, 5423 },
+ { 0x2ECA, 5426 },
+ { 0x2E98, 5429 },
+ { 0x2EE1, 5432 },
+ { 0x2EC7, 5435 },
+ { 0x2EA9, 5438 },
+ { 0x2E8E, 5441 },
+ { 0x2E8F, 5445 },
+ { 0x2E91, 5449 },
+ { 0x2E90, 5453 },
+ { 0x2ED1, 5457 },
+ { 0x2ED2, 5461 },
+ { 0x2EBC, 5465 },
+ { 0x2EB5, 5468 },
+ { 0x2E9D, 5471 },
+ { 0x2ED7, 5474 },
+ { 0x2E8B, 5477 },
+ { 0x2EAF, 5480 },
+ { 0x2ECD, 5483 },
+ { 0x2ECE, 5487 },
+ { 0x2EC3, 5491 },
+ { 0x2EC4, 5495 },
+ { 0x2EBA, 5499 },
+ { 0x2EBB, 5503 },
+ { 0x2E9B, 5507 },
+ { 0x2E81, 5510 },
+ { 0x2E9E, 5513 },
+ { 0x2EE4, 5516 },
+ { 0x2EBE, 5519 },
+ { 0x2EBF, 5523 },
+ { 0x2EC0, 5527 },
+ { 0x2E96, 5531 },
+ { 0x2E97, 5535 },
+ { 0x2E88, 5539 },
+ { 0x2E89, 5543 },
+ { 0x2ED5, 5547 },
+ { 0x2ED6, 5551 },
+ { 0x2EB6, 5555 },
+ { 0x2E8C, 5558 },
+ { 0x2E8D, 5562 },
+ { 0x2E92, 5566 },
+ { 0x2E94, 5569 },
+ { 0x2E95, 5573 },
+ { 0x2E87, 5577 },
+ { 0x2EC1, 5580 },
+ { 0x2EA1, 5583 },
+ { 0x2EA2, 5587 },
+ { 0x2EAE, 5591 },
+ { 0x2EBD, 5594 },
+ { 0x2E9F, 5597 },
+ { 0x2E85, 5600 },
+ { 0x2E80, 5603 },
+ { 0x2E82, 5606 },
+ { 0x2E83, 5610 },
+ { 0x2E84, 5614 },
+ { 0x2EAC, 5618 },
+ { 0x2EAD, 5622 },
+ { 0x2E93, 5626 },
+ { 0x2EF1, 5629 },
+ { 0x2EC2, 5632 },
+ { 0x2EA0, 5635 },
+ { 0x2E8A, 5638 },
+ { 0x2EA6, 5641 },
+ { 0x2EC6, 5647 },
+ { 0x2ECC, 5651 },
+ { 0x2EE8, 5655 },
+ { 0x2EE9, 5659 },
+ { 0x2EE0, 5663 },
+ { 0x2EDC, 5667 },
+ { 0x2EC5, 5671 },
+ { 0x2EE6, 5675 },
+ { 0x2ECB, 5679 },
+ { 0x2EEC, 5683 },
+ { 0x2EE5, 5687 },
+ { 0x2EEA, 5691 },
+ { 0x2ED4, 5695 },
+ { 0x2ED0, 5699 },
+ { 0x2EDA, 5703 },
+ { 0x2ED3, 5707 },
+ { 0x2EE7, 5711 },
+ { 0x2EB0, 5715 },
+ { 0x2EDB, 5719 },
+ { 0x2EE2, 5723 },
+ { 0x2EC9, 5727 },
+ { 0x2EEE, 5731 },
+ { 0x2EF0, 5735 },
+ { 0x2EC8, 5739 },
+ { 0x2ED9, 5743 },
+ { 0x2EF3, 5748 },
+ { 0x2EEB, 5752 },
+ { 0x2EED, 5756 },
+ { 0x2EEF, 5760 },
+ { 0x2EF2, 5764 },
+ { 0x2680, 5768 },
+ { 0x2681, 5770 },
+ { 0x2682, 5772 },
+ { 0x2683, 5774 },
+ { 0x2684, 5776 },
+ { 0x2685, 5778 },
+ { 0x2214, 5780 },
+ { 0x02D9, 5782 },
+ { 0x2238, 5784 },
+ { 0x22C5, 5786 },
+ { 0x220E, 5788 },
+ { 0x2200, 5791 },
+ { 0x2668, 5793 },
+ { 0x2615, 5795 },
+ { 0x20AD, 5797 },
+ { 0x0EDD, 5799 },
+ { 0x0EDC, 5802 },
+ { 0x0EC6, 5805 },
+ { 0x0EC8, 5808 },
+ { 0x0ECA, 5812 },
+ { 0x0EC9, 5816 },
+ { 0x0ECB, 5820 },
+ { 0x0ED1, 5824 },
+ { 0x0ED6, 5827 },
+ { 0x0ED2, 5830 },
+ { 0x0ED5, 5833 },
+ { 0x0ED4, 5836 },
+ { 0x0ED9, 5839 },
+ { 0x0ED0, 5842 },
+ { 0x0ED8, 5845 },
+ { 0x0ED7, 5848 },
+ { 0x0ED3, 5851 },
+ { 0x0EB0, 5854 },
+ { 0x0EC0, 5858 },
+ { 0x0EB4, 5862 },
+ { 0x0EC2, 5866 },
+ { 0x0EB8, 5870 },
+ { 0x0EB6, 5874 },
+ { 0x0EB2, 5878 },
+ { 0x0EC4, 5882 },
+ { 0x0EB3, 5886 },
+ { 0x0EC3, 5890 },
+ { 0x0EC1, 5894 },
+ { 0x0EB5, 5898 },
+ { 0x0EB9, 5902 },
+ { 0x0EB7, 5906 },
+ { 0x0EB1, 5910 },
+ { 0x0EBB, 5915 },
+ { 0x0EAD, 5920 },
+ { 0x0E9A, 5923 },
+ { 0x0E88, 5926 },
+ { 0x0E94, 5929 },
+ { 0x0E9D, 5932 },
+ { 0x0E9F, 5936 },
+ { 0x0EAE, 5940 },
+ { 0x0EAB, 5944 },
+ { 0x0E81, 5948 },
+ { 0x0EA3, 5951 },
+ { 0x0EA5, 5955 },
+ { 0x0EA1, 5959 },
+ { 0x0E99, 5962 },
+ { 0x0E9B, 5965 },
+ { 0x0E8A, 5968 },
+ { 0x0EAA, 5972 },
+ { 0x0E95, 5976 },
+ { 0x0EA7, 5979 },
+ { 0x0EA2, 5982 },
+ { 0x0E84, 5985 },
+ { 0x0E82, 5989 },
+ { 0x0E87, 5993 },
+ { 0x0E8D, 5996 },
+ { 0x0E9E, 5999 },
+ { 0x0E9C, 6003 },
+ { 0x0E97, 6007 },
+ { 0x0E96, 6011 },
+ { 0x0EAF, 6015 },
+ { 0x0ECD, 6017 },
+ { 0x0EBC, 6019 },
+ { 0x0EBD, 6023 },
+ { 0x0ECC, 6027 },
+ { 0x264C, 6030 },
+ { 0x005F, 6031 },
+ { 0x301F, 6033 },
+ { 0x204E, 6038 },
+ { 0x19DE, 6040 },
+ { 0x19DF, 6045 },
+ { 0x19C8, 6050 },
+ { 0x19C9, 6055 },
+ { 0x19D1, 6060 },
+ { 0x19D6, 6065 },
+ { 0x19D2, 6070 },
+ { 0x19D5, 6075 },
+ { 0x19D4, 6080 },
+ { 0x19D9, 6085 },
+ { 0x19D0, 6090 },
+ { 0x19D8, 6095 },
+ { 0x19D7, 6100 },
+ { 0x19D3, 6105 },
+ { 0x19B5, 6110 },
+ { 0x19B7, 6116 },
+ { 0x19B3, 6122 },
+ { 0x19B1, 6128 },
+ { 0x19B6, 6134 },
+ { 0x19BA, 6140 },
+ { 0x19B2, 6146 },
+ { 0x19C0, 6152 },
+ { 0x19B8, 6158 },
+ { 0x19BD, 6164 },
+ { 0x19B9, 6170 },
+ { 0x19B4, 6176 },
+ { 0x19BC, 6182 },
+ { 0x19BB, 6188 },
+ { 0x19BE, 6194 },
+ { 0x19BF, 6200 },
+ { 0x19B0, 6206 },
+ { 0x19A5, 6213 },
+ { 0x19A4, 6219 },
+ { 0x199D, 6225 },
+ { 0x19A3, 6231 },
+ { 0x1985, 6237 },
+ { 0x199F, 6243 },
+ { 0x1999, 6249 },
+ { 0x1993, 6255 },
+ { 0x1997, 6261 },
+ { 0x1981, 6267 },
+ { 0x198C, 6273 },
+ { 0x1991, 6279 },
+ { 0x199E, 6285 },
+ { 0x1986, 6291 },
+ { 0x198D, 6297 },
+ { 0x19A8, 6303 },
+ { 0x1987, 6309 },
+ { 0x1998, 6315 },
+ { 0x1992, 6321 },
+ { 0x198B, 6327 },
+ { 0x19A9, 6333 },
+ { 0x19A2, 6339 },
+ { 0x19A1, 6345 },
+ { 0x199A, 6351 },
+ { 0x19A0, 6357 },
+ { 0x1982, 6363 },
+ { 0x199C, 6369 },
+ { 0x1996, 6375 },
+ { 0x1990, 6381 },
+ { 0x1994, 6387 },
+ { 0x1980, 6393 },
+ { 0x1989, 6399 },
+ { 0x198E, 6405 },
+ { 0x199B, 6411 },
+ { 0x1983, 6417 },
+ { 0x198A, 6423 },
+ { 0x19A6, 6429 },
+ { 0x1984, 6435 },
+ { 0x1995, 6441 },
+ { 0x198F, 6447 },
+ { 0x1988, 6453 },
+ { 0x19A7, 6459 },
+ { 0x19C7, 6465 },
+ { 0x19C6, 6471 },
+ { 0x19C5, 6477 },
+ { 0x19C4, 6483 },
+ { 0x19C3, 6489 },
+ { 0x19C1, 6495 },
+ { 0x19C2, 6501 },
+ { 0x20AA, 6507 },
+ { 0x07F5, 6510 },
+ { 0x07F4, 6514 },
+ { 0x07F8, 6518 },
+ { 0x07C1, 6520 },
+ { 0x07C6, 6523 },
+ { 0x07C2, 6526 },
+ { 0x07C5, 6529 },
+ { 0x07C4, 6532 },
+ { 0x07C9, 6535 },
+ { 0x07C0, 6538 },
+ { 0x07C8, 6541 },
+ { 0x07C7, 6544 },
+ { 0x07C3, 6547 },
+ { 0x07CA, 6550 },
+ { 0x07CD, 6553 },
+ { 0x07CC, 6556 },
+ { 0x07D2, 6559 },
+ { 0x07D0, 6562 },
+ { 0x07CE, 6565 },
+ { 0x07D3, 6568 },
+ { 0x07D8, 6571 },
+ { 0x07CB, 6574 },
+ { 0x07DD, 6577 },
+ { 0x07E4, 6580 },
+ { 0x07D6, 6583 },
+ { 0x07DE, 6586 },
+ { 0x07DF, 6589 },
+ { 0x07E1, 6592 },
+ { 0x07E3, 6595 },
+ { 0x07E0, 6598 },
+ { 0x07CF, 6602 },
+ { 0x07D4, 6605 },
+ { 0x07D9, 6608 },
+ { 0x07DB, 6611 },
+ { 0x07D5, 6614 },
+ { 0x07E5, 6617 },
+ { 0x07E6, 6620 },
+ { 0x07D7, 6623 },
+ { 0x07DC, 6626 },
+ { 0x07E2, 6629 },
+ { 0x07E7, 6632 },
+ { 0x07DA, 6636 },
+ { 0x07E8, 6639 },
+ { 0x07EA, 6643 },
+ { 0x07E9, 6647 },
+ { 0x07D1, 6651 },
+ { 0x07F6, 6654 },
+ { 0x07F7, 6658 },
+ { 0x07F0, 6661 },
+ { 0x07EF, 6666 },
+ { 0x07F1, 6671 },
+ { 0x07EE, 6676 },
+ { 0x07EC, 6681 },
+ { 0x07EB, 6686 },
+ { 0x07ED, 6691 },
+ { 0x07F3, 6696 },
+ { 0x07F2, 6701 },
+ { 0x07FA, 6705 },
+ { 0x07F9, 6707 },
+ { 0x22BD, 6710 },
+ { 0x2284, 6711 },
+ { 0x2285, 6715 },
+ { 0x2209, 6719 },
+ { 0x00AC, 6723 },
+ { 0x22AD, 6725 },
+ { 0x237B, 6727 },
+ { 0x2260, 6730 },
+ { 0x2241, 6733 },
+ { 0x2249, 6735 },
+ { 0x22EA, 6739 },
+ { 0x22EC, 6743 },
+ { 0x22E2, 6750 },
+ { 0x22E3, 6757 },
+ { 0x2226, 6764 },
+ { 0x2262, 6767 },
+ { 0x226E, 6770 },
+ { 0x226D, 6772 },
+ { 0x226F, 6775 },
+ { 0x2244, 6777 },
+ { 0x2445, 6781 },
+ { 0x2444, 6784 },
+ { 0x2448, 6787 },
+ { 0x2442, 6789 },
+ { 0x2440, 6791 },
+ { 0x2441, 6793 },
+ { 0x2447, 6795 },
+ { 0x2446, 6799 },
+ { 0x244A, 6803 },
+ { 0x2449, 6806 },
+ { 0x2443, 6810 },
+ { 0x2126, 6813 },
+ { 0x7300, 6815 },
+ { 0x7304, 6819 },
+ { 0x7309, 6823 },
+ { 0x730F, 6827 },
+ { 0x7316, 6831 },
+ { 0x7301, 6835 },
+ { 0x7303, 6839 },
+ { 0x731A, 6843 },
+ { 0x730B, 6847 },
+ { 0x730C, 6851 },
+ { 0x730D, 6855 },
+ { 0x7313, 6859 },
+ { 0x7314, 6863 },
+ { 0x7307, 6867 },
+ { 0x731D, 6871 },
+ { 0x730A, 6875 },
+ { 0x7302, 6879 },
+ { 0x7312, 6883 },
+ { 0x7310, 6887 },
+ { 0x7315, 6891 },
+ { 0x731E, 6895 },
+ { 0x7305, 6899 },
+ { 0x7306, 6903 },
+ { 0x731C, 6907 },
+ { 0x7317, 6911 },
+ { 0x731B, 6915 },
+ { 0x730E, 6919 },
+ { 0x7319, 6923 },
+ { 0x7318, 6927 },
+ { 0x7311, 6931 },
+ { 0x7308, 6935 },
+ { 0x7320, 6939 },
+ { 0x7322, 6943 },
+ { 0x7321, 6947 },
+ { 0x7323, 6951 },
+ { 0x73A0, 6955 },
+ { 0x73A1, 6959 },
+ { 0x73A2, 6963 },
+ { 0x73B2, 6967 },
+ { 0x73A8, 6971 },
+ { 0x73AD, 6975 },
+ { 0x73AE, 6979 },
+ { 0x73AF, 6983 },
+ { 0x73B3, 6987 },
+ { 0x73A5, 6991 },
+ { 0x73A6, 6995 },
+ { 0x73C3, 6999 },
+ { 0x73A9, 7003 },
+ { 0x73AA, 7007 },
+ { 0x73A3, 7011 },
+ { 0x73A4, 7015 },
+ { 0x73BE, 7019 },
+ { 0x73B6, 7023 },
+ { 0x73B7, 7027 },
+ { 0x73B8, 7031 },
+ { 0x73B4, 7035 },
+ { 0x73B5, 7039 },
+ { 0x73B1, 7043 },
+ { 0x73BC, 7047 },
+ { 0x73BD, 7051 },
+ { 0x73BF, 7055 },
+ { 0x73AB, 7059 },
+ { 0x73AC, 7063 },
+ { 0x73BA, 7067 },
+ { 0x73BB, 7071 },
+ { 0x73A7, 7075 },
+ { 0x73B9, 7079 },
+ { 0x73C0, 7083 },
+ { 0x73C1, 7087 },
+ { 0x73C2, 7091 },
+ { 0x73B0, 7095 },
+ { 0x73CE, 7099 },
+ { 0x73CF, 7103 },
+ { 0x73CC, 7107 },
+ { 0x73C8, 7111 },
+ { 0x73CD, 7115 },
+ { 0x73C9, 7119 },
+ { 0x73CA, 7123 },
+ { 0x73CB, 7127 },
+ { 0x73D0, 7131 },
+ { 0x73D1, 7135 },
+ { 0x73D3, 7139 },
+ { 0x73D2, 7143 },
+ { 0x73D4, 7147 },
+ { 0x73D5, 7151 },
+ { 0x2E2B, 7155 },
+ { 0x2024, 7161 },
+ { 0x2031, 7164 },
+ { 0x214C, 7168 },
+ { 0x2030, 7170 },
+ { 0x202C, 7173 },
+ { 0x2216, 7176 },
+ { 0x2736, 7178 },
+ { 0x273E, 7182 },
+ { 0x2609, 7188 },
+ { 0xC05F, 7189 },
+ { 0xC02E, 7192 },
+ { 0xC07B, 7195 },
+ { 0xC05B, 7199 },
+ { 0xC028, 7203 },
+ { 0xC02B, 7206 },
+ { 0xC03A, 7209 },
+ { 0xC02C, 7211 },
+ { 0xC031, 7213 },
+ { 0xC036, 7216 },
+ { 0xC032, 7219 },
+ { 0xC035, 7222 },
+ { 0xC034, 7225 },
+ { 0xC039, 7228 },
+ { 0xC030, 7231 },
+ { 0xC038, 7234 },
+ { 0xC037, 7237 },
+ { 0xC033, 7240 },
+ { 0xC060, 7243 },
+ { 0xC061, 7246 },
+ { 0xC062, 7251 },
+ { 0xC063, 7256 },
+ { 0xC064, 7261 },
+ { 0xC065, 7266 },
+ { 0xC066, 7271 },
+ { 0xC067, 7276 },
+ { 0xC068, 7281 },
+ { 0xC069, 7286 },
+ { 0xC06A, 7291 },
+ { 0xC06B, 7296 },
+ { 0xC06C, 7301 },
+ { 0xC06D, 7306 },
+ { 0xC06E, 7311 },
+ { 0xC06F, 7316 },
+ { 0xC070, 7321 },
+ { 0xC071, 7326 },
+ { 0xC072, 7331 },
+ { 0xC073, 7336 },
+ { 0xC074, 7341 },
+ { 0xC075, 7346 },
+ { 0xC076, 7351 },
+ { 0xC077, 7356 },
+ { 0xC078, 7361 },
+ { 0xC079, 7366 },
+ { 0xC07A, 7371 },
+ { 0xC041, 7376 },
+ { 0xC042, 7381 },
+ { 0xC043, 7386 },
+ { 0xC044, 7391 },
+ { 0xC045, 7396 },
+ { 0xC046, 7401 },
+ { 0xC047, 7406 },
+ { 0xC048, 7411 },
+ { 0xC049, 7416 },
+ { 0xC04A, 7421 },
+ { 0xC04B, 7426 },
+ { 0xC04C, 7431 },
+ { 0xC04D, 7436 },
+ { 0xC04E, 7441 },
+ { 0xC04F, 7446 },
+ { 0xC050, 7451 },
+ { 0xC051, 7456 },
+ { 0xC052, 7461 },
+ { 0xC053, 7466 },
+ { 0xC054, 7471 },
+ { 0xC055, 7476 },
+ { 0xC056, 7481 },
+ { 0xC057, 7486 },
+ { 0xC058, 7491 },
+ { 0xC059, 7496 },
+ { 0xC05A, 7501 },
+ { 0xC07D, 7506 },
+ { 0xC05D, 7510 },
+ { 0xC029, 7514 },
+ { 0xC020, 7517 },
+ { 0xC07E, 7519 },
+ { 0xC024, 7521 },
+ { 0xC03D, 7524 },
+ { 0xC023, 7527 },
+ { 0xC025, 7530 },
+ { 0xC05C, 7533 },
+ { 0xC02F, 7536 },
+ { 0xC02A, 7538 },
+ { 0xC03F, 7540 },
+ { 0xC07C, 7543 },
+ { 0xC026, 7546 },
+ { 0xC03C, 7548 },
+ { 0xC022, 7551 },
+ { 0xC03B, 7554 },
+ { 0xC027, 7556 },
+ { 0xC05E, 7558 },
+ { 0xC040, 7561 },
+ { 0xC021, 7564 },
+ { 0xC03E, 7567 },
+ { 0xC02D, 7570 },
+ { 0x1963, 7572 },
+ { 0x196B, 7576 },
+ { 0x1964, 7580 },
+ { 0x1969, 7584 },
+ { 0x1967, 7588 },
+ { 0x196D, 7592 },
+ { 0x1965, 7596 },
+ { 0x1966, 7600 },
+ { 0x195C, 7604 },
+ { 0x195E, 7608 },
+ { 0x1950, 7612 },
+ { 0x1958, 7616 },
+ { 0x195B, 7620 },
+ { 0x1962, 7624 },
+ { 0x1968, 7628 },
+ { 0x1959, 7632 },
+ { 0x195F, 7636 },
+ { 0x1954, 7640 },
+ { 0x1956, 7644 },
+ { 0x196A, 7648 },
+ { 0x195D, 7652 },
+ { 0x1951, 7656 },
+ { 0x1955, 7660 },
+ { 0x196C, 7664 },
+ { 0x1960, 7668 },
+ { 0x1952, 7672 },
+ { 0x195A, 7676 },
+ { 0x1957, 7680 },
+ { 0x1953, 7684 },
+ { 0x1961, 7688 },
+ { 0x1970, 7692 },
+ { 0x1971, 7696 },
+ { 0x1972, 7700 },
+ { 0x1973, 7704 },
+ { 0x1974, 7708 },
+ { 0x29DD, 7712 },
+ { 0x293C, 7715 },
+ { 0x293A, 7721 },
+ { 0x293D, 7725 },
+ { 0x2320, 7731 },
+ { 0x230F, 7734 },
+ { 0x2E22, 7737 },
+ { 0x231C, 7741 },
+ { 0x23DE, 7744 },
+ { 0x230E, 7747 },
+ { 0x2E23, 7750 },
+ { 0x231D, 7754 },
+ { 0x23B4, 7757 },
+ { 0x23E0, 7760 },
+ { 0x23DC, 7764 },
+ { 0x2025, 7766 },
+ { 0x205A, 7769 },
+ { 0x2E2A, 7772 },
+ { 0x29C9, 7778 },
+ { 0x2A08, 7781 },
+ { 0x2A07, 7785 },
+ { 0x2051, 7789 },
+ { 0x2A75, 7793 },
+ { 0x2A56, 7797 },
+ { 0x2A55, 7801 },
+ { 0x560E, 7805 },
+ { 0x560D, 7808 },
+ { 0x5621, 7810 },
+ { 0x5626, 7813 },
+ { 0x5622, 7816 },
+ { 0x5625, 7819 },
+ { 0x5624, 7822 },
+ { 0x5629, 7825 },
+ { 0x5620, 7828 },
+ { 0x5628, 7831 },
+ { 0x5627, 7834 },
+ { 0x5623, 7837 },
+ { 0x5618, 7840 },
+ { 0x5616, 7843 },
+ { 0x5619, 7846 },
+ { 0x5617, 7849 },
+ { 0x561A, 7852 },
+ { 0x561E, 7855 },
+ { 0x561F, 7858 },
+ { 0x561C, 7861 },
+ { 0x5615, 7864 },
+ { 0x561D, 7867 },
+ { 0x561B, 7870 },
+ { 0x5613, 7873 },
+ { 0x5614, 7876 },
+ { 0x560F, 7879 },
+ { 0x5549, 7882 },
+ { 0x55E1, 7885 },
+ { 0x5524, 7888 },
+ { 0x55BA, 7891 },
+ { 0x5595, 7894 },
+ { 0x554A, 7897 },
+ { 0x5552, 7900 },
+ { 0x55EA, 7903 },
+ { 0x552C, 7906 },
+ { 0x55C3, 7909 },
+ { 0x559D, 7912 },
+ { 0x5566, 7915 },
+ { 0x55FF, 7918 },
+ { 0x553F, 7921 },
+ { 0x55D7, 7924 },
+ { 0x55B0, 7927 },
+ { 0x5560, 7930 },
+ { 0x55F9, 7933 },
+ { 0x5539, 7936 },
+ { 0x55D1, 7939 },
+ { 0x55AA, 7942 },
+ { 0x5500, 7945 },
+ { 0x55E2, 7948 },
+ { 0x5558, 7951 },
+ { 0x55F1, 7954 },
+ { 0x5531, 7957 },
+ { 0x55C9, 7960 },
+ { 0x55A2, 7963 },
+ { 0x556D, 7966 },
+ { 0x5606, 7969 },
+ { 0x5545, 7972 },
+ { 0x55DD, 7975 },
+ { 0x55B6, 7978 },
+ { 0x554C, 7981 },
+ { 0x55E4, 7984 },
+ { 0x5526, 7987 },
+ { 0x55BD, 7990 },
+ { 0x5597, 7993 },
+ { 0x5525, 7996 },
+ { 0x5567, 7999 },
+ { 0x5600, 8002 },
+ { 0x5540, 8005 },
+ { 0x55D8, 8008 },
+ { 0x55B1, 8011 },
+ { 0x556A, 8014 },
+ { 0x5603, 8017 },
+ { 0x5543, 8020 },
+ { 0x55DB, 8023 },
+ { 0x55B4, 8026 },
+ { 0x555E, 8029 },
+ { 0x55F7, 8032 },
+ { 0x5537, 8035 },
+ { 0x55CF, 8038 },
+ { 0x55A8, 8041 },
+ { 0x556E, 8044 },
+ { 0x5608, 8047 },
+ { 0x5546, 8050 },
+ { 0x55DE, 8053 },
+ { 0x55B7, 8056 },
+ { 0x556F, 8059 },
+ { 0x5609, 8062 },
+ { 0x560B, 8065 },
+ { 0x5547, 8068 },
+ { 0x55DF, 8071 },
+ { 0x55B8, 8074 },
+ { 0x55BB, 8077 },
+ { 0x5571, 8080 },
+ { 0x5550, 8083 },
+ { 0x55E8, 8086 },
+ { 0x552A, 8089 },
+ { 0x55C1, 8092 },
+ { 0x559B, 8095 },
+ { 0x555F, 8098 },
+ { 0x55F8, 8101 },
+ { 0x5538, 8104 },
+ { 0x55D0, 8107 },
+ { 0x55A9, 8110 },
+ { 0x5562, 8113 },
+ { 0x55FB, 8116 },
+ { 0x553B, 8119 },
+ { 0x55D3, 8122 },
+ { 0x55AC, 8125 },
+ { 0x555A, 8128 },
+ { 0x55F3, 8131 },
+ { 0x5533, 8134 },
+ { 0x55CB, 8137 },
+ { 0x55A4, 8140 },
+ { 0x5596, 8143 },
+ { 0x5559, 8146 },
+ { 0x55F2, 8149 },
+ { 0x5532, 8152 },
+ { 0x55CA, 8155 },
+ { 0x55A3, 8158 },
+ { 0x554E, 8161 },
+ { 0x55E6, 8164 },
+ { 0x5528, 8167 },
+ { 0x55BF, 8170 },
+ { 0x5599, 8173 },
+ { 0x5569, 8176 },
+ { 0x5602, 8179 },
+ { 0x5542, 8182 },
+ { 0x55DA, 8185 },
+ { 0x55B3, 8188 },
+ { 0x5564, 8191 },
+ { 0x55FD, 8194 },
+ { 0x553D, 8197 },
+ { 0x55D5, 8200 },
+ { 0x55AE, 8203 },
+ { 0x5507, 8206 },
+ { 0x5551, 8209 },
+ { 0x55E9, 8212 },
+ { 0x552B, 8215 },
+ { 0x55C2, 8218 },
+ { 0x559C, 8221 },
+ { 0x5578, 8224 },
+ { 0x551A, 8227 },
+ { 0x558B, 8230 },
+ { 0x5514, 8233 },
+ { 0x555C, 8236 },
+ { 0x55F5, 8239 },
+ { 0x5535, 8242 },
+ { 0x55CD, 8245 },
+ { 0x55A6, 8248 },
+ { 0x5585, 8251 },
+ { 0x5501, 8254 },
+ { 0x550C, 8257 },
+ { 0x557D, 8260 },
+ { 0x5557, 8263 },
+ { 0x55EF, 8266 },
+ { 0x5530, 8269 },
+ { 0x55C7, 8272 },
+ { 0x55A1, 8275 },
+ { 0x5520, 8278 },
+ { 0x5607, 8281 },
+ { 0x5591, 8284 },
+ { 0x554D, 8287 },
+ { 0x5502, 8290 },
+ { 0x55E5, 8293 },
+ { 0x5527, 8296 },
+ { 0x55BE, 8299 },
+ { 0x5573, 8302 },
+ { 0x5598, 8305 },
+ { 0x551B, 8308 },
+ { 0x558C, 8311 },
+ { 0x556B, 8314 },
+ { 0x551E, 8317 },
+ { 0x558F, 8320 },
+ { 0x5554, 8323 },
+ { 0x55EC, 8326 },
+ { 0x552E, 8329 },
+ { 0x55C5, 8332 },
+ { 0x559F, 8335 },
+ { 0x5512, 8338 },
+ { 0x5583, 8341 },
+ { 0x5553, 8344 },
+ { 0x55EB, 8347 },
+ { 0x552D, 8350 },
+ { 0x55C4, 8353 },
+ { 0x559E, 8356 },
+ { 0x5521, 8359 },
+ { 0x5592, 8362 },
+ { 0x5561, 8365 },
+ { 0x55FA, 8368 },
+ { 0x553A, 8371 },
+ { 0x55D2, 8374 },
+ { 0x55AB, 8377 },
+ { 0x5522, 8380 },
+ { 0x5568, 8383 },
+ { 0x5601, 8386 },
+ { 0x5541, 8389 },
+ { 0x55D9, 8392 },
+ { 0x55B2, 8395 },
+ { 0x5593, 8398 },
+ { 0x5570, 8401 },
+ { 0x560A, 8404 },
+ { 0x5548, 8407 },
+ { 0x55E0, 8410 },
+ { 0x55B9, 8413 },
+ { 0x5572, 8416 },
+ { 0x5505, 8419 },
+ { 0x5576, 8422 },
+ { 0x5513, 8425 },
+ { 0x5584, 8428 },
+ { 0x5516, 8431 },
+ { 0x5563, 8434 },
+ { 0x55FC, 8437 },
+ { 0x553C, 8440 },
+ { 0x55D4, 8443 },
+ { 0x55AD, 8446 },
+ { 0x5587, 8449 },
+ { 0x550E, 8452 },
+ { 0x555B, 8455 },
+ { 0x55F4, 8458 },
+ { 0x5534, 8461 },
+ { 0x55CC, 8464 },
+ { 0x55A5, 8467 },
+ { 0x557F, 8470 },
+ { 0x550D, 8473 },
+ { 0x557E, 8476 },
+ { 0x554F, 8479 },
+ { 0x5503, 8482 },
+ { 0x55E7, 8485 },
+ { 0x5529, 8488 },
+ { 0x55C0, 8491 },
+ { 0x5574, 8494 },
+ { 0x559A, 8497 },
+ { 0x551D, 8500 },
+ { 0x558E, 8503 },
+ { 0x5518, 8506 },
+ { 0x5565, 8509 },
+ { 0x55FE, 8512 },
+ { 0x553E, 8515 },
+ { 0x55D6, 8518 },
+ { 0x55AF, 8521 },
+ { 0x5589, 8524 },
+ { 0x5506, 8527 },
+ { 0x5577, 8530 },
+ { 0x5510, 8533 },
+ { 0x555D, 8536 },
+ { 0x55F6, 8539 },
+ { 0x5536, 8542 },
+ { 0x55CE, 8545 },
+ { 0x55A7, 8548 },
+ { 0x5581, 8551 },
+ { 0x550B, 8554 },
+ { 0x55F0, 8557 },
+ { 0x55C8, 8560 },
+ { 0x557C, 8563 },
+ { 0x5555, 8566 },
+ { 0x5509, 8569 },
+ { 0x55ED, 8572 },
+ { 0x557A, 8575 },
+ { 0x5508, 8578 },
+ { 0x5579, 8581 },
+ { 0x5556, 8584 },
+ { 0x55EE, 8587 },
+ { 0x552F, 8590 },
+ { 0x55C6, 8593 },
+ { 0x55A0, 8596 },
+ { 0x5515, 8599 },
+ { 0x5586, 8602 },
+ { 0x554B, 8605 },
+ { 0x55E3, 8608 },
+ { 0x556C, 8611 },
+ { 0x5604, 8614 },
+ { 0x5544, 8617 },
+ { 0x55DC, 8620 },
+ { 0x55B5, 8623 },
+ { 0x55BC, 8626 },
+ { 0x551C, 8629 },
+ { 0x558D, 8632 },
+ { 0x5523, 8635 },
+ { 0x5594, 8638 },
+ { 0x5517, 8641 },
+ { 0x5588, 8644 },
+ { 0x550F, 8647 },
+ { 0x5580, 8650 },
+ { 0x5504, 8653 },
+ { 0x5575, 8656 },
+ { 0x5519, 8659 },
+ { 0x558A, 8662 },
+ { 0x5511, 8665 },
+ { 0x5582, 8668 },
+ { 0x550A, 8671 },
+ { 0x557B, 8674 },
+ { 0x562B, 8677 },
+ { 0x5610, 8681 },
+ { 0x5611, 8685 },
+ { 0x562A, 8689 },
+ { 0x5612, 8693 },
+ { 0x551F, 8697 },
+ { 0x5605, 8700 },
+ { 0x5590, 8703 },
+ { 0x560C, 8706 },
+ { 0x20A9, 8709 },
+ { 0x22BB, 8711 },
+ { 0x00A5, 8712 },
+ { 0x262F, 8714 },
+ { 0x2135, 8716 },
+ { 0x2625, 8718 },
+ { 0x269B, 8719 },
+ { 0x237E, 8721 },
+ { 0x2106, 8723 },
+ { 0x2105, 8725 },
+ { 0x20B5, 8727 },
+ { 0x00A2, 8729 },
+ { 0x5A51, 8731 },
+ { 0x5A56, 8734 },
+ { 0x5A52, 8737 },
+ { 0x5A55, 8740 },
+ { 0x5A54, 8743 },
+ { 0x5A59, 8746 },
+ { 0x5A50, 8749 },
+ { 0x5A58, 8752 },
+ { 0x5A57, 8755 },
+ { 0x5A53, 8758 },
+ { 0x5A2A, 8761 },
+ { 0x5A2F, 8765 },
+ { 0x5A2D, 8769 },
+ { 0x5A29, 8773 },
+ { 0x5A30, 8777 },
+ { 0x5A31, 8781 },
+ { 0x5A2C, 8785 },
+ { 0x5A2B, 8789 },
+ { 0x5A2E, 8793 },
+ { 0x5A32, 8797 },
+ { 0x5A00, 8801 },
+ { 0x5A03, 8804 },
+ { 0x5A01, 8807 },
+ { 0x5A05, 8810 },
+ { 0x5A02, 8813 },
+ { 0x5A04, 8816 },
+ { 0x5A1D, 8819 },
+ { 0x5A15, 8822 },
+ { 0x5A08, 8825 },
+ { 0x5A28, 8828 },
+ { 0x5A0E, 8831 },
+ { 0x5A06, 8834 },
+ { 0x5A24, 8837 },
+ { 0x5A20, 8840 },
+ { 0x5A18, 8843 },
+ { 0x5A1A, 8846 },
+ { 0x5A23, 8849 },
+ { 0x5A27, 8852 },
+ { 0x5A13, 8855 },
+ { 0x5A25, 8858 },
+ { 0x5A22, 8861 },
+ { 0x5A21, 8864 },
+ { 0x5A1E, 8867 },
+ { 0x5A0C, 8870 },
+ { 0x5A19, 8873 },
+ { 0x5A16, 8876 },
+ { 0x5A09, 8879 },
+ { 0x5A0F, 8882 },
+ { 0x5A07, 8885 },
+ { 0x5A1F, 8888 },
+ { 0x5A0B, 8891 },
+ { 0x5A11, 8894 },
+ { 0x5A17, 8897 },
+ { 0x5A1C, 8900 },
+ { 0x5A1B, 8903 },
+ { 0x5A26, 8906 },
+ { 0x5A14, 8909 },
+ { 0x5A0D, 8912 },
+ { 0x5A0A, 8915 },
+ { 0x5A12, 8918 },
+ { 0x5A10, 8921 },
+ { 0x5A41, 8924 },
+ { 0x5A40, 8928 },
+ { 0x5A4A, 8932 },
+ { 0x5A46, 8936 },
+ { 0x5A47, 8940 },
+ { 0x5A49, 8944 },
+ { 0x5A45, 8948 },
+ { 0x5A48, 8952 },
+ { 0x5A44, 8956 },
+ { 0x5A42, 8960 },
+ { 0x5A4B, 8964 },
+ { 0x5A35, 8968 },
+ { 0x5A34, 8972 },
+ { 0x5A36, 8976 },
+ { 0x5A33, 8980 },
+ { 0x5A4D, 8984 },
+ { 0x5A4C, 8989 },
+ { 0x5A43, 8994 },
+ { 0x5A5D, 8999 },
+ { 0x5A5E, 9002 },
+ { 0x5A5C, 9006 },
+ { 0x5A5F, 9009 },
+ { 0x221B, 9013 },
+ { 0x2593, 9015 },
+ { 0x22AE, 9017 },
+ { 0x22AC, 9020 },
+ { 0x2224, 9023 },
+ { 0x2AEE, 9026 },
+ { 0x220C, 9033 },
+ { 0x22EB, 9038 },
+ { 0x22ED, 9044 },
+ { 0x2280, 9052 },
+ { 0x22E0, 9055 },
+ { 0x2281, 9060 },
+ { 0x22E1, 9063 },
+ { 0x20AB, 9068 },
+ { 0x297F, 9070 },
+ { 0x22A4, 9073 },
+ { 0x2AF1, 9075 },
+ { 0x22F1, 9080 },
+ { 0x2304, 9084 },
+ { 0x2671, 9086 },
+ { 0x20AC, 9089 },
+ { 0x2E2D, 9091 },
+ { 0x2059, 9094 },
+ { 0x205B, 9097 },
+ { 0x2058, 9100 },
+ { 0x2725, 9103 },
+ { 0x2723, 9106 },
+ { 0x2722, 9109 },
+ { 0x002E, 9112 },
+ { 0x2588, 9114 },
+ { 0x27D7, 9116 },
+ { 0x23DB, 9119 },
+ { 0x2699, 9120 },
+ { 0x3013, 9121 },
+ { 0x200A, 9123 },
+ { 0x2388, 9125 },
+ { 0x26A1, 9127 },
+ { 0x2A1D, 9130 },
+ { 0x26B5, 9131 },
+ { 0x263E, 9132 },
+ { 0x27DB, 9135 },
+ { 0x27DA, 9139 },
+ { 0x2993, 9144 },
+ { 0x2E1C, 9148 },
+ { 0x258F, 9152 },
+ { 0x258E, 9156 },
+ { 0x294E, 9160 },
+ { 0x294A, 9167 },
+ { 0x294B, 9174 },
+ { 0x2950, 9181 },
+ { 0x297C, 9188 },
+ { 0x258B, 9191 },
+ { 0x25D6, 9195 },
+ { 0x258C, 9199 },
+ { 0x22A3, 9202 },
+ { 0x3008, 9204 },
+ { 0x2991, 9207 },
+ { 0x2B30, 9212 },
+ { 0x2B32, 9217 },
+ { 0x2997, 9222 },
+ { 0x3010, 9227 },
+ { 0x007B, 9231 },
+ { 0x23A9, 9234 },
+ { 0x23A7, 9239 },
+ { 0x23A8, 9244 },
+ { 0x230A, 9249 },
+ { 0x27D5, 9251 },
+ { 0x21AD, 9254 },
+ { 0x2194, 9258 },
+ { 0x21FC, 9261 },
+ { 0x21AE, 9268 },
+ { 0x21F9, 9273 },
+ { 0x2948, 9279 },
+ { 0x2B0C, 9285 },
+ { 0x2B04, 9289 },
+ { 0x21D4, 9293 },
+ { 0x21CE, 9297 },
+ { 0x2904, 9303 },
+ { 0x21FF, 9310 },
+ { 0x2589, 9314 },
+ { 0x258D, 9318 },
+ { 0x258A, 9322 },
+ { 0x2983, 9326 },
+ { 0x300E, 9330 },
+ { 0x301A, 9334 },
+ { 0x3018, 9338 },
+ { 0x3016, 9343 },
+ { 0x2985, 9347 },
+ { 0x300C, 9350 },
+ { 0x2E04, 9353 },
+ { 0x300A, 9357 },
+ { 0x29DA, 9361 },
+ { 0x201C, 9365 },
+ { 0x2E28, 9369 },
+ { 0x22C9, 9372 },
+ { 0x2E0C, 9377 },
+ { 0x2018, 9381 },
+ { 0x005B, 9385 },
+ { 0x298D, 9388 },
+ { 0x298F, 9396 },
+ { 0x2045, 9404 },
+ { 0x298B, 9409 },
+ { 0x23A3, 9414 },
+ { 0x23A1, 9419 },
+ { 0x23A2, 9424 },
+ { 0x29D8, 9428 },
+ { 0x2308, 9431 },
+ { 0x27DC, 9433 },
+ { 0x27C5, 9435 },
+ { 0x2E26, 9439 },
+ { 0x3014, 9443 },
+ { 0x29CF, 9447 },
+ { 0x2E20, 9452 },
+ { 0x23B8, 9457 },
+ { 0x22CB, 9461 },
+ { 0x0028, 9464 },
+ { 0x239D, 9466 },
+ { 0x239B, 9470 },
+ { 0x239C, 9474 },
+ { 0x2E02, 9477 },
+ { 0x2E09, 9480 },
+ { 0x2028, 9483 },
+ { 0x2A14, 9485 },
+ { 0x2A12, 9491 },
+ { 0x2A13, 9498 },
+ { 0x20A4, 9505 },
+ { 0x2AE6, 9507 },
+ { 0x27DE, 9515 },
+ { 0x27F7, 9518 },
+ { 0x27FA, 9522 },
+ { 0x27DD, 9527 },
+ { 0x27CC, 9530 },
+ { 0x27F5, 9532 },
+ { 0x27FB, 9535 },
+ { 0x27F8, 9540 },
+ { 0x27FD, 9544 },
+ { 0x2B33, 9550 },
+ { 0x27F6, 9554 },
+ { 0x27FC, 9557 },
+ { 0x27F9, 9562 },
+ { 0x27FE, 9566 },
+ { 0x27FF, 9572 },
+ { 0x26A5, 9576 },
+ { 0x2642, 9580 },
+ { 0x26A7, 9582 },
+ { 0x26A6, 9590 },
+ { 0x303C, 9594 },
+ { 0x20A5, 9596 },
+ { 0x29FF, 9598 },
+ { 0x226A, 9599 },
+ { 0x226B, 9601 },
+ { 0x22BC, 9603 },
+ { 0x2398, 9604 },
+ { 0x2423, 9606 },
+ { 0x272B, 9608 },
+ { 0x271B, 9612 },
+ { 0x2732, 9615 },
+ { 0x273C, 9618 },
+ { 0x27C3, 9622 },
+ { 0x27C4, 9624 },
+ { 0x2E19, 9626 },
+ { 0x303D, 9628 },
+ { 0x20B1, 9631 },
+ { 0x002B, 9633 },
+ { 0x2A2D, 9635 },
+ { 0x2A2E, 9641 },
+ { 0x2A39, 9647 },
+ { 0x2A25, 9651 },
+ { 0x2A28, 9656 },
+ { 0x2A22, 9661 },
+ { 0x2A24, 9667 },
+ { 0x2A26, 9672 },
+ { 0x2A27, 9677 },
+ { 0x2A23, 9682 },
+ { 0x2A72, 9688 },
+ { 0x6DFC, 9693 },
+ { 0x2256, 9695 },
+ { 0x02DA, 9699 },
+ { 0x2257, 9701 },
+ { 0x2E30, 9704 },
+ { 0x2218, 9706 },
+ { 0x223F, 9708 },
+ { 0x00AD, 9710 },
+ { 0x2721, 9712 },
+ { 0x262A, 9715 },
+ { 0x225B, 9718 },
+ { 0x22C6, 9720 },
+ { 0x2707, 9722 },
+ { 0x0E51, 9724 },
+ { 0x0E56, 9727 },
+ { 0x0E52, 9730 },
+ { 0x0E55, 9733 },
+ { 0x0E54, 9736 },
+ { 0x0E59, 9739 },
+ { 0x0E50, 9742 },
+ { 0x0E58, 9745 },
+ { 0x0E57, 9748 },
+ { 0x0E53, 9751 },
+ { 0x0E3F, 9754 },
+ { 0x0E2D, 9758 },
+ { 0x0E1A, 9762 },
+ { 0x0E14, 9766 },
+ { 0x0E0E, 9770 },
+ { 0x0E1D, 9774 },
+ { 0x0E1F, 9778 },
+ { 0x0E2B, 9782 },
+ { 0x0E2E, 9786 },
+ { 0x0E01, 9790 },
+ { 0x0E25, 9794 },
+ { 0x0E2C, 9798 },
+ { 0x0E26, 9802 },
+ { 0x0E21, 9805 },
+ { 0x0E19, 9809 },
+ { 0x0E13, 9813 },
+ { 0x0E1B, 9817 },
+ { 0x0E23, 9821 },
+ { 0x0E24, 9825 },
+ { 0x0E0B, 9828 },
+ { 0x0E2A, 9832 },
+ { 0x0E29, 9836 },
+ { 0x0E28, 9840 },
+ { 0x0E15, 9844 },
+ { 0x0E0F, 9848 },
+ { 0x0E27, 9852 },
+ { 0x0E22, 9856 },
+ { 0x0E0D, 9860 },
+ { 0x0E08, 9864 },
+ { 0x0E0C, 9868 },
+ { 0x0E0A, 9872 },
+ { 0x0E09, 9876 },
+ { 0x0E02, 9880 },
+ { 0x0E05, 9884 },
+ { 0x0E03, 9888 },
+ { 0x0E04, 9892 },
+ { 0x0E06, 9896 },
+ { 0x0E48, 9900 },
+ { 0x0E49, 9904 },
+ { 0x0E4A, 9908 },
+ { 0x0E4B, 9912 },
+ { 0x0E31, 9916 },
+ { 0x0E07, 9920 },
+ { 0x0E1E, 9924 },
+ { 0x0E1C, 9928 },
+ { 0x0E20, 9932 },
+ { 0x0E10, 9936 },
+ { 0x0E18, 9940 },
+ { 0x0E16, 9944 },
+ { 0x0E17, 9948 },
+ { 0x0E12, 9952 },
+ { 0x0E11, 9956 },
+ { 0x0E30, 9960 },
+ { 0x0E40, 9964 },
+ { 0x0E34, 9968 },
+ { 0x0E42, 9972 },
+ { 0x0E38, 9976 },
+ { 0x0E32, 9980 },
+ { 0x0E41, 9984 },
+ { 0x0E43, 9988 },
+ { 0x0E44, 9993 },
+ { 0x0E33, 9998 },
+ { 0x0E35, 10002 },
+ { 0x0E36, 10006 },
+ { 0x0E39, 10010 },
+ { 0x0E37, 10014 },
+ { 0x0E5B, 10018 },
+ { 0x0E4F, 10021 },
+ { 0x0E3A, 10024 },
+ { 0x0E46, 10027 },
+ { 0x0E4D, 10030 },
+ { 0x0E4E, 10033 },
+ { 0x0E47, 10036 },
+ { 0x0E2F, 10039 },
+ { 0x0E5A, 10042 },
+ { 0x0E45, 10045 },
+ { 0x0E4C, 10048 },
+ { 0x2009, 10051 },
+ { 0x29FE, 10053 },
+ { 0x22A8, 10054 },
+ { 0x238C, 10055 },
+ { 0x22D8, 10057 },
+ { 0x22D9, 10060 },
+ { 0x301C, 10063 },
+ { 0x2B3F, 10065 },
+ { 0x2933, 10070 },
+ { 0x6E4F, 10075 },
+ { 0x3030, 10078 },
+ { 0x2307, 10080 },
+ { 0x6E4B, 10082 },
+ { 0x2670, 10084 },
+ { 0x2060, 10087 },
+ { 0x200B, 10089 },
+ { 0x200D, 10092 },
+ { 0x6EFF, 10095 },
+ { 0x200C, 10099 },
+ { 0x299F, 10102 },
+ { 0x00B4, 10104 },
+ { 0x2220, 10106 },
+ { 0x299E, 10107 },
+ { 0x29A4, 10111 },
+ { 0x2648, 10114 },
+ { 0x2936, 10115 },
+ { 0x2937, 10121 },
+ { 0x2934, 10127 },
+ { 0x2935, 10133 },
+ { 0x2712, 10139 },
+ { 0x2600, 10141 },
+ { 0x2663, 10145 },
+ { 0x2691, 10148 },
+ { 0x2726, 10150 },
+ { 0x261A, 10154 },
+ { 0x26B8, 10158 },
+ { 0x2605, 10161 },
+ { 0x2B1D, 10163 },
+ { 0x265A, 10167 },
+ { 0x265F, 10170 },
+ { 0x265C, 10173 },
+ { 0x265B, 10176 },
+ { 0x265D, 10179 },
+ { 0x265E, 10182 },
+ { 0x2665, 10185 },
+ { 0x2B24, 10188 },
+ { 0x2B1B, 10191 },
+ { 0x25E3, 10194 },
+ { 0x25E2, 10198 },
+ { 0x261B, 10202 },
+ { 0x2617, 10206 },
+ { 0x2B51, 10209 },
+ { 0x25AA, 10212 },
+ { 0x2B29, 10215 },
+ { 0x2B2A, 10218 },
+ { 0x2660, 10221 },
+ { 0x25E4, 10224 },
+ { 0x25E5, 10228 },
+ { 0x29D3, 10232 },
+ { 0x272C, 10234 },
+ { 0x25CF, 10238 },
+ { 0x2689, 10240 },
+ { 0x29ED, 10246 },
+ { 0x2688, 10251 },
+ { 0x25FE, 10257 },
+ { 0x25FC, 10261 },
+ { 0x2B25, 10264 },
+ { 0x2B27, 10267 },
+ { 0x25A0, 10270 },
+ { 0x25C6, 10272 },
+ { 0x2666, 10274 },
+ { 0x29EA, 10277 },
+ { 0x2756, 10282 },
+ { 0x2B22, 10287 },
+ { 0x29EB, 10289 },
+ { 0x263B, 10291 },
+ { 0x26C2, 10294 },
+ { 0x26C3, 10297 },
+ { 0x273F, 10300 },
+ { 0x2B1F, 10302 },
+ { 0x2702, 10304 },
+ { 0x2B2E, 10306 },
+ { 0x25AE, 10309 },
+ { 0x29D7, 10312 },
+ { 0x204C, 10314 },
+ { 0x25AC, 10317 },
+ { 0x260E, 10319 },
+ { 0x267B, 10321 },
+ { 0x2B2C, 10325 },
+ { 0x27A1, 10328 },
+ { 0x204D, 10331 },
+ { 0x27A4, 10334 },
+ { 0x25B4, 10337 },
+ { 0x25B2, 10341 },
+ { 0x25BE, 10344 },
+ { 0x25BC, 10348 },
+ { 0x25C2, 10351 },
+ { 0x25C4, 10355 },
+ { 0x25C0, 10358 },
+ { 0x25B0, 10361 },
+ { 0x25B8, 10363 },
+ { 0x25BA, 10367 },
+ { 0x2B53, 10370 },
+ { 0x25B6, 10373 },
+ { 0x2422, 10376 },
+ { 0x02D8, 10378 },
+ { 0x1752, 10379 },
+ { 0x1753, 10383 },
+ { 0x1740, 10387 },
+ { 0x1741, 10390 },
+ { 0x1742, 10393 },
+ { 0x174A, 10396 },
+ { 0x1747, 10399 },
+ { 0x1744, 10402 },
+ { 0x1751, 10405 },
+ { 0x1743, 10408 },
+ { 0x174E, 10411 },
+ { 0x174B, 10414 },
+ { 0x1748, 10417 },
+ { 0x1749, 10420 },
+ { 0x174D, 10423 },
+ { 0x1750, 10426 },
+ { 0x1746, 10429 },
+ { 0x174F, 10432 },
+ { 0x174C, 10435 },
+ { 0x1745, 10438 },
+ { 0x2038, 10441 },
+ { 0x2041, 10442 },
+ { 0x02C7, 10445 },
+ { 0x26B3, 10446 },
+ { 0x2713, 10447 },
+ { 0x239A, 10449 },
+ { 0x2050, 10452 },
+ { 0x2601, 10454 },
+ { 0x003A, 10455 },
+ { 0x20A1, 10456 },
+ { 0x2254, 10458 },
+ { 0x2604, 10460 },
+ { 0x002C, 10461 },
+ { 0x2628, 10462 },
+ { 0x2629, 10465 },
+ { 0x23AA, 10468 },
+ { 0x22CE, 10471 },
+ { 0x22CF, 10474 },
+ { 0x2138, 10477 },
+ { 0x225C, 10479 },
+ { 0x0031, 10482 },
+ { 0x2488, 10484 },
+ { 0x0036, 10488 },
+ { 0x248D, 10490 },
+ { 0x0032, 10494 },
+ { 0x2489, 10496 },
+ { 0x0035, 10500 },
+ { 0x248C, 10502 },
+ { 0x0034, 10506 },
+ { 0x248B, 10508 },
+ { 0x0039, 10512 },
+ { 0x2490, 10514 },
+ { 0x0030, 10518 },
+ { 0x0038, 10520 },
+ { 0x248F, 10522 },
+ { 0x0037, 10526 },
+ { 0x248E, 10528 },
+ { 0x0033, 10532 },
+ { 0x248A, 10534 },
+ { 0x3003, 10538 },
+ { 0x2641, 10540 },
+ { 0x23DA, 10541 },
+ { 0x2733, 10543 },
+ { 0x2734, 10546 },
+ { 0x2735, 10550 },
+ { 0x2737, 10554 },
+ { 0x2741, 10559 },
+ { 0x274A, 10564 },
+ { 0x23CF, 10568 },
+ { 0x2205, 10570 },
+ { 0x29B4, 10572 },
+ { 0x29B3, 10578 },
+ { 0x29B2, 10584 },
+ { 0x29B1, 10590 },
+ { 0x2386, 10594 },
+ { 0x225D, 10596 },
+ { 0x22DE, 10600 },
+ { 0x22DF, 10604 },
+ { 0x22DC, 10608 },
+ { 0x22DD, 10612 },
+ { 0x22D5, 10616 },
+ { 0x232B, 10620 },
+ { 0x2326, 10624 },
+ { 0x2107, 10628 },
+ { 0x262B, 10630 },
+ { 0x263D, 10632 },
+ { 0x2322, 10635 },
+ { 0x2137, 10636 },
+ { 0x0060, 10638 },
+ { 0x03D6, 10640 },
+ { 0x0387, 10643 },
+ { 0x03D7, 10646 },
+ { 0x7175, 10649 },
+ { 0x7176, 10653 },
+ { 0x03D5, 10659 },
+ { 0x03FC, 10662 },
+ { 0x03F1, 10667 },
+ { 0x717D, 10670 },
+ { 0x7177, 10674 },
+ { 0x03D0, 10678 },
+ { 0x7180, 10681 },
+ { 0x717F, 10685 },
+ { 0x717C, 10689 },
+ { 0x1FFD, 10692 },
+ { 0x7179, 10694 },
+ { 0x718A, 10697 },
+ { 0x1FFE, 10700 },
+ { 0x1FDE, 10702 },
+ { 0x1FDD, 10706 },
+ { 0x1FDF, 10710 },
+ { 0x03F0, 10714 },
+ { 0x7183, 10717 },
+ { 0x0375, 10720 },
+ { 0x1FBF, 10724 },
+ { 0x1FCE, 10726 },
+ { 0x1FCD, 10730 },
+ { 0x1FCF, 10734 },
+ { 0x037C, 10738 },
+ { 0x03BC, 10744 },
+ { 0x03BD, 10748 },
+ { 0x03C0, 10752 },
+ { 0x03BE, 10756 },
+ { 0x03C7, 10760 },
+ { 0x03B7, 10764 },
+ { 0x1F75, 10768 },
+ { 0x1FC4, 10774 },
+ { 0x1F21, 10782 },
+ { 0x1F25, 10788 },
+ { 0x1F95, 10796 },
+ { 0x1F23, 10806 },
+ { 0x1F93, 10814 },
+ { 0x1F27, 10824 },
+ { 0x1F97, 10832 },
+ { 0x1F91, 10842 },
+ { 0x1F20, 10850 },
+ { 0x1F24, 10856 },
+ { 0x1F94, 10864 },
+ { 0x1F22, 10874 },
+ { 0x1F92, 10882 },
+ { 0x1F26, 10892 },
+ { 0x1F96, 10900 },
+ { 0x1F90, 10910 },
+ { 0x03AE, 10918 },
+ { 0x1F74, 10924 },
+ { 0x1FC2, 10930 },
+ { 0x1FC6, 10938 },
+ { 0x1FC7, 10944 },
+ { 0x1FC3, 10952 },
+ { 0x03C6, 10958 },
+ { 0x03C8, 10962 },
+ { 0x03C1, 10966 },
+ { 0x1FE5, 10970 },
+ { 0x1FE4, 10976 },
+ { 0x03FB, 10982 },
+ { 0x03F8, 10986 },
+ { 0x03C4, 10990 },
+ { 0x03B2, 10994 },
+ { 0x0371, 10998 },
+ { 0x03B9, 11002 },
+ { 0x1F77, 11006 },
+ { 0x1F31, 11012 },
+ { 0x1F35, 11018 },
+ { 0x1F33, 11026 },
+ { 0x1F37, 11034 },
+ { 0x1F30, 11042 },
+ { 0x1F34, 11048 },
+ { 0x1F32, 11056 },
+ { 0x1F36, 11064 },
+ { 0x03AF, 11072 },
+ { 0x1F76, 11078 },
+ { 0x1FD1, 11084 },
+ { 0x1FD0, 11090 },
+ { 0x03CA, 11096 },
+ { 0x1FD3, 11102 },
+ { 0x0390, 11110 },
+ { 0x1FD2, 11118 },
+ { 0x1FD7, 11126 },
+ { 0x1FD6, 11134 },
+ { 0x03B6, 11140 },
+ { 0x03B1, 11144 },
+ { 0x1F71, 11148 },
+ { 0x1FB4, 11154 },
+ { 0x1F01, 11162 },
+ { 0x1F05, 11168 },
+ { 0x1F85, 11176 },
+ { 0x1F03, 11186 },
+ { 0x1F83, 11194 },
+ { 0x1F07, 11204 },
+ { 0x1F87, 11212 },
+ { 0x1F81, 11222 },
+ { 0x1F00, 11230 },
+ { 0x1F04, 11236 },
+ { 0x1F84, 11244 },
+ { 0x1F02, 11254 },
+ { 0x1F82, 11262 },
+ { 0x1F06, 11272 },
+ { 0x1F86, 11280 },
+ { 0x1F80, 11290 },
+ { 0x03AC, 11298 },
+ { 0x1F70, 11304 },
+ { 0x1FB2, 11310 },
+ { 0x1FB1, 11318 },
+ { 0x1FB0, 11324 },
+ { 0x1FB6, 11330 },
+ { 0x1FB7, 11336 },
+ { 0x1FB3, 11344 },
+ { 0x03B4, 11350 },
+ { 0x03C2, 11354 },
+ { 0x03B3, 11359 },
+ { 0x03BA, 11363 },
+ { 0x03DF, 11367 },
+ { 0x03BB, 11371 },
+ { 0x03C9, 11375 },
+ { 0x1F7D, 11379 },
+ { 0x1FF4, 11385 },
+ { 0x1F61, 11393 },
+ { 0x1F65, 11399 },
+ { 0x1FA5, 11407 },
+ { 0x1F63, 11417 },
+ { 0x1FA3, 11425 },
+ { 0x1F67, 11435 },
+ { 0x1FA7, 11443 },
+ { 0x1FA1, 11453 },
+ { 0x1F60, 11461 },
+ { 0x1F64, 11467 },
+ { 0x1FA4, 11475 },
+ { 0x1F62, 11485 },
+ { 0x1FA2, 11493 },
+ { 0x1F66, 11503 },
+ { 0x1FA6, 11511 },
+ { 0x1FA0, 11521 },
+ { 0x03CE, 11529 },
+ { 0x1F7C, 11535 },
+ { 0x1FF2, 11541 },
+ { 0x1FF6, 11549 },
+ { 0x1FF7, 11555 },
+ { 0x1FF3, 11563 },
+ { 0x03E1, 11569 },
+ { 0x03C3, 11573 },
+ { 0x03B8, 11577 },
+ { 0x03DB, 11581 },
+ { 0x03D9, 11585 },
+ { 0x0373, 11590 },
+ { 0x03DD, 11595 },
+ { 0x03B5, 11599 },
+ { 0x1F73, 11603 },
+ { 0x1F11, 11609 },
+ { 0x1F15, 11615 },
+ { 0x1F13, 11623 },
+ { 0x1F10, 11631 },
+ { 0x1F14, 11637 },
+ { 0x1F12, 11645 },
+ { 0x03AD, 11653 },
+ { 0x1F72, 11659 },
+ { 0x03BF, 11665 },
+ { 0x1F79, 11669 },
+ { 0x1F41, 11675 },
+ { 0x1F45, 11681 },
+ { 0x1F43, 11689 },
+ { 0x1F40, 11697 },
+ { 0x1F44, 11703 },
+ { 0x1F42, 11711 },
+ { 0x03CC, 11719 },
+ { 0x1F78, 11725 },
+ { 0x03C5, 11731 },
+ { 0x1F7B, 11735 },
+ { 0x1F51, 11741 },
+ { 0x1F55, 11747 },
+ { 0x1F53, 11755 },
+ { 0x1F57, 11763 },
+ { 0x1F50, 11771 },
+ { 0x1F54, 11777 },
+ { 0x1F52, 11785 },
+ { 0x1F56, 11793 },
+ { 0x03CD, 11801 },
+ { 0x1F7A, 11807 },
+ { 0x1FE1, 11813 },
+ { 0x1FE0, 11819 },
+ { 0x03CB, 11825 },
+ { 0x1FE3, 11831 },
+ { 0x03B0, 11839 },
+ { 0x1FE2, 11847 },
+ { 0x1FE7, 11855 },
+ { 0x1FE6, 11863 },
+ { 0x0377, 11869 },
+ { 0x037D, 11874 },
+ { 0x037B, 11881 },
+ { 0x03D1, 11887 },
+ { 0x717E, 11890 },
+ { 0x7178, 11894 },
+ { 0x0384, 11898 },
+ { 0x1FEF, 11900 },
+ { 0x9200, 11902 },
+ { 0x9201, 11906 },
+ { 0x9202, 11910 },
+ { 0x9203, 11914 },
+ { 0x9204, 11918 },
+ { 0x9205, 11922 },
+ { 0x9206, 11926 },
+ { 0x9207, 11930 },
+ { 0x9208, 11934 },
+ { 0x9209, 11938 },
+ { 0x920A, 11942 },
+ { 0x920B, 11946 },
+ { 0x920C, 11950 },
+ { 0x920D, 11954 },
+ { 0x920E, 11958 },
+ { 0x920F, 11962 },
+ { 0x9210, 11966 },
+ { 0x9211, 11970 },
+ { 0x9212, 11974 },
+ { 0x9213, 11978 },
+ { 0x9214, 11982 },
+ { 0x9215, 11986 },
+ { 0x9216, 11990 },
+ { 0x9217, 11994 },
+ { 0x9218, 11998 },
+ { 0x9219, 12002 },
+ { 0x921A, 12006 },
+ { 0x921B, 12010 },
+ { 0x921C, 12014 },
+ { 0x7187, 12018 },
+ { 0x7186, 12021 },
+ { 0x7188, 12024 },
+ { 0x03F3, 12027 },
+ { 0x03DE, 12030 },
+ { 0x03E0, 12033 },
+ { 0x1D28, 12036 },
+ { 0x1D2A, 12041 },
+ { 0x1D29, 12046 },
+ { 0x1D26, 12051 },
+ { 0x1D27, 12056 },
+ { 0x03DA, 12061 },
+ { 0x03D8, 12064 },
+ { 0x03DC, 12068 },
+ { 0x03F2, 12071 },
+ { 0x03F5, 12075 },
+ { 0x7184, 12079 },
+ { 0x717A, 12082 },
+ { 0x7185, 12085 },
+ { 0x03CF, 12088 },
+ { 0x03F4, 12092 },
+ { 0x03FE, 12096 },
+ { 0x039C, 12102 },
+ { 0x039D, 12106 },
+ { 0x03A0, 12110 },
+ { 0x039E, 12114 },
+ { 0x03A7, 12118 },
+ { 0x0397, 12122 },
+ { 0x1FCB, 12126 },
+ { 0x1F29, 12132 },
+ { 0x1F2D, 12138 },
+ { 0x1F9D, 12146 },
+ { 0x1F2B, 12156 },
+ { 0x1F9B, 12164 },
+ { 0x1F2F, 12174 },
+ { 0x1F9F, 12182 },
+ { 0x1F99, 12192 },
+ { 0x1F28, 12200 },
+ { 0x1F2C, 12206 },
+ { 0x1F9C, 12214 },
+ { 0x1F2A, 12224 },
+ { 0x1F9A, 12232 },
+ { 0x1F2E, 12242 },
+ { 0x1F9E, 12250 },
+ { 0x1F98, 12260 },
+ { 0x0389, 12268 },
+ { 0x1FCA, 12274 },
+ { 0x1FCC, 12280 },
+ { 0x03A6, 12286 },
+ { 0x03A8, 12290 },
+ { 0x03A1, 12294 },
+ { 0x1FEC, 12298 },
+ { 0x03FA, 12304 },
+ { 0x03F7, 12308 },
+ { 0x03A4, 12312 },
+ { 0x0392, 12316 },
+ { 0x0370, 12320 },
+ { 0x0399, 12324 },
+ { 0x1FDB, 12328 },
+ { 0x1F39, 12334 },
+ { 0x1F3D, 12340 },
+ { 0x1F3B, 12348 },
+ { 0x1F3F, 12356 },
+ { 0x1F38, 12364 },
+ { 0x1F3C, 12370 },
+ { 0x1F3A, 12378 },
+ { 0x1F3E, 12386 },
+ { 0x038A, 12394 },
+ { 0x1FDA, 12400 },
+ { 0x1FD9, 12406 },
+ { 0x1FD8, 12412 },
+ { 0x03AA, 12418 },
+ { 0x0396, 12424 },
+ { 0x0391, 12428 },
+ { 0x1FBB, 12432 },
+ { 0x1F09, 12438 },
+ { 0x1F0D, 12444 },
+ { 0x1F8D, 12452 },
+ { 0x1F0B, 12462 },
+ { 0x1F8B, 12470 },
+ { 0x1F0F, 12480 },
+ { 0x1F8F, 12488 },
+ { 0x1F89, 12498 },
+ { 0x1F08, 12506 },
+ { 0x1F0C, 12512 },
+ { 0x1F8C, 12520 },
+ { 0x1F0A, 12530 },
+ { 0x1F8A, 12538 },
+ { 0x1F0E, 12548 },
+ { 0x1F8E, 12556 },
+ { 0x1F88, 12566 },
+ { 0x0386, 12574 },
+ { 0x1FBA, 12580 },
+ { 0x1FB9, 12586 },
+ { 0x1FB8, 12592 },
+ { 0x1FBC, 12598 },
+ { 0x0394, 12604 },
+ { 0x0393, 12608 },
+ { 0x039A, 12612 },
+ { 0x039B, 12616 },
+ { 0x03A9, 12620 },
+ { 0x1FFB, 12624 },
+ { 0x1F69, 12630 },
+ { 0x1F6D, 12636 },
+ { 0x1FAD, 12644 },
+ { 0x1F6B, 12654 },
+ { 0x1FAB, 12662 },
+ { 0x1F6F, 12672 },
+ { 0x1FAF, 12680 },
+ { 0x1FA9, 12690 },
+ { 0x1F68, 12698 },
+ { 0x1F6C, 12704 },
+ { 0x1FAC, 12712 },
+ { 0x1F6A, 12722 },
+ { 0x1FAA, 12730 },
+ { 0x1F6E, 12740 },
+ { 0x1FAE, 12748 },
+ { 0x1FA8, 12758 },
+ { 0x038F, 12766 },
+ { 0x1FFA, 12772 },
+ { 0x1FFC, 12778 },
+ { 0x03A3, 12784 },
+ { 0x0398, 12788 },
+ { 0x0372, 12792 },
+ { 0x0395, 12797 },
+ { 0x1FC9, 12801 },
+ { 0x1F19, 12807 },
+ { 0x1F1D, 12813 },
+ { 0x1F1B, 12821 },
+ { 0x1F18, 12829 },
+ { 0x1F1C, 12835 },
+ { 0x1F1A, 12843 },
+ { 0x0388, 12851 },
+ { 0x1FC8, 12857 },
+ { 0x039F, 12863 },
+ { 0x1FF9, 12867 },
+ { 0x1F49, 12873 },
+ { 0x1F4D, 12879 },
+ { 0x1F4B, 12887 },
+ { 0x1F48, 12895 },
+ { 0x1F4C, 12901 },
+ { 0x1F4A, 12909 },
+ { 0x038C, 12917 },
+ { 0x1FF8, 12923 },
+ { 0x03A5, 12929 },
+ { 0x1FEB, 12933 },
+ { 0x1F59, 12939 },
+ { 0x1F5D, 12945 },
+ { 0x1F5B, 12953 },
+ { 0x1F5F, 12961 },
+ { 0x038E, 12969 },
+ { 0x1FEA, 12975 },
+ { 0x1FE9, 12981 },
+ { 0x1FE8, 12987 },
+ { 0x03AB, 12993 },
+ { 0x0376, 12999 },
+ { 0x03F9, 13004 },
+ { 0x03FF, 13009 },
+ { 0x03FD, 13016 },
+ { 0x717B, 13022 },
+ { 0x1FBD, 13025 },
+ { 0x7182, 13027 },
+ { 0x9245, 13031 },
+ { 0x0374, 13034 },
+ { 0x03D2, 13037 },
+ { 0x03D3, 13042 },
+ { 0x03D4, 13049 },
+ { 0x7181, 13056 },
+ { 0x037E, 13059 },
+ { 0x03F6, 13062 },
+ { 0x7189, 13067 },
+ { 0x1FEE, 13071 },
+ { 0x1FED, 13075 },
+ { 0x1FC1, 13079 },
+ { 0x0385, 13083 },
+ { 0x1D6A, 13086 },
+ { 0x1D69, 13091 },
+ { 0x1D68, 13096 },
+ { 0x1D66, 13101 },
+ { 0x1D67, 13106 },
+ { 0x7141, 13111 },
+ { 0x7142, 13116 },
+ { 0x7152, 13121 },
+ { 0x714B, 13127 },
+ { 0x7140, 13133 },
+ { 0x7154, 13138 },
+ { 0x714D, 13144 },
+ { 0x7157, 13150 },
+ { 0x7150, 13155 },
+ { 0x7149, 13160 },
+ { 0x7155, 13165 },
+ { 0x7143, 13171 },
+ { 0x7145, 13175 },
+ { 0x7153, 13180 },
+ { 0x714C, 13186 },
+ { 0x714F, 13192 },
+ { 0x7148, 13197 },
+ { 0x7146, 13202 },
+ { 0x714E, 13207 },
+ { 0x7144, 13213 },
+ { 0x7151, 13217 },
+ { 0x714A, 13222 },
+ { 0x7147, 13227 },
+ { 0x7156, 13232 },
+ { 0x7170, 13238 },
+ { 0x7173, 13243 },
+ { 0x7158, 13248 },
+ { 0x715D, 13253 },
+ { 0x7174, 13258 },
+ { 0x7159, 13263 },
+ { 0x716A, 13267 },
+ { 0x7171, 13272 },
+ { 0x7164, 13277 },
+ { 0x715C, 13281 },
+ { 0x716E, 13285 },
+ { 0x7172, 13290 },
+ { 0x7169, 13295 },
+ { 0x716B, 13299 },
+ { 0x7165, 13304 },
+ { 0x716F, 13308 },
+ { 0x7163, 13313 },
+ { 0x715B, 13317 },
+ { 0x715E, 13321 },
+ { 0x716C, 13326 },
+ { 0x715A, 13331 },
+ { 0x7162, 13335 },
+ { 0x7168, 13339 },
+ { 0x7160, 13343 },
+ { 0x7161, 13347 },
+ { 0x715F, 13353 },
+ { 0x716D, 13357 },
+ { 0x7166, 13362 },
+ { 0x7167, 13366 },
+ { 0x1FC0, 13372 },
+ { 0x921D, 13374 },
+ { 0x921E, 13378 },
+ { 0x921F, 13382 },
+ { 0x9220, 13386 },
+ { 0x9221, 13390 },
+ { 0x9222, 13394 },
+ { 0x9223, 13398 },
+ { 0x9224, 13402 },
+ { 0x9225, 13406 },
+ { 0x9226, 13410 },
+ { 0x9227, 13414 },
+ { 0x9228, 13418 },
+ { 0x9229, 13422 },
+ { 0x922A, 13426 },
+ { 0x922B, 13430 },
+ { 0x922C, 13434 },
+ { 0x922D, 13438 },
+ { 0x922E, 13442 },
+ { 0x922F, 13446 },
+ { 0x9230, 13450 },
+ { 0x9231, 13454 },
+ { 0x9232, 13458 },
+ { 0x9233, 13462 },
+ { 0x9234, 13466 },
+ { 0x9235, 13470 },
+ { 0x9236, 13474 },
+ { 0x9237, 13478 },
+ { 0x9238, 13482 },
+ { 0x9239, 13486 },
+ { 0x923A, 13490 },
+ { 0x923B, 13494 },
+ { 0x923C, 13498 },
+ { 0x923D, 13502 },
+ { 0x923E, 13506 },
+ { 0x923F, 13510 },
+ { 0x9240, 13514 },
+ { 0x9241, 13518 },
+ { 0x037A, 13522 },
+ { 0x1FBE, 13524 },
+ { 0x2724, 13526 },
+ { 0x271C, 13530 },
+ { 0x2764, 13534 },
+ { 0x27A6, 13537 },
+ { 0x27A5, 13544 },
+ { 0x2714, 13551 },
+ { 0x2738, 13554 },
+ { 0x274B, 13560 },
+ { 0x271A, 13565 },
+ { 0x2763, 13568 },
+ { 0x27AD, 13573 },
+ { 0x279A, 13579 },
+ { 0x2798, 13583 },
+ { 0x27AE, 13587 },
+ { 0x2718, 13593 },
+ { 0x27A0, 13596 },
+ { 0x275E, 13601 },
+ { 0x275D, 13607 },
+ { 0x275C, 13614 },
+ { 0x275B, 13620 },
+ { 0x2746, 13627 },
+ { 0x2748, 13630 },
+ { 0x2731, 13632 },
+ { 0x272E, 13634 },
+ { 0x275A, 13638 },
+ { 0x2799, 13641 },
+ { 0x2762, 13644 },
+ { 0x2794, 13648 },
+ { 0x279C, 13652 },
+ { 0x27BD, 13656 },
+ { 0x2770, 13660 },
+ { 0x276E, 13665 },
+ { 0x2716, 13671 },
+ { 0x2771, 13674 },
+ { 0x276F, 13679 },
+ { 0x27B9, 13685 },
+ { 0x27B7, 13690 },
+ { 0x27B8, 13695 },
+ { 0x27A8, 13699 },
+ { 0x273D, 13704 },
+ { 0x2743, 13707 },
+ { 0x279E, 13711 },
+ { 0x27BB, 13715 },
+ { 0x2302, 13719 },
+ { 0x22B7, 13720 },
+ { 0x2253, 13722 },
+ { 0x592E, 13728 },
+ { 0x592F, 13732 },
+ { 0x592C, 13736 },
+ { 0x592D, 13740 },
+ { 0x592B, 13745 },
+ { 0x5901, 13749 },
+ { 0x5906, 13753 },
+ { 0x5902, 13757 },
+ { 0x5905, 13761 },
+ { 0x5904, 13765 },
+ { 0x5909, 13769 },
+ { 0x5900, 13773 },
+ { 0x5908, 13777 },
+ { 0x5907, 13781 },
+ { 0x5903, 13785 },
+ { 0x5927, 13789 },
+ { 0x592A, 13793 },
+ { 0x5928, 13797 },
+ { 0x5929, 13801 },
+ { 0x5926, 13805 },
+ { 0x5922, 13809 },
+ { 0x5924, 13813 },
+ { 0x5919, 13817 },
+ { 0x5921, 13821 },
+ { 0x5918, 13825 },
+ { 0x590C, 13829 },
+ { 0x591F, 13833 },
+ { 0x590A, 13837 },
+ { 0x591C, 13841 },
+ { 0x5917, 13845 },
+ { 0x5914, 13849 },
+ { 0x5923, 13853 },
+ { 0x5925, 13857 },
+ { 0x5915, 13861 },
+ { 0x591A, 13865 },
+ { 0x590E, 13869 },
+ { 0x5912, 13873 },
+ { 0x5920, 13877 },
+ { 0x591D, 13881 },
+ { 0x591B, 13885 },
+ { 0x5910, 13889 },
+ { 0x5913, 13893 },
+ { 0x590B, 13897 },
+ { 0x590D, 13901 },
+ { 0x5911, 13905 },
+ { 0x5916, 13909 },
+ { 0x590F, 13913 },
+ { 0x591E, 13917 },
+ { 0x17D7, 13921 },
+ { 0x17D4, 13925 },
+ { 0x17CF, 13928 },
+ { 0x17D2, 13931 },
+ { 0x17CC, 13934 },
+ { 0x17CB, 13937 },
+ { 0x17D8, 13940 },
+ { 0x17D6, 13943 },
+ { 0x17D9, 13948 },
+ { 0x17D0, 13952 },
+ { 0x17D1, 13956 },
+ { 0x17CE, 13959 },
+ { 0x17DA, 13962 },
+ { 0x17C6, 13965 },
+ { 0x17C7, 13968 },
+ { 0x17CA, 13971 },
+ { 0x17DD, 13974 },
+ { 0x17D5, 13977 },
+ { 0x17D3, 13980 },
+ { 0x17C9, 13983 },
+ { 0x17CD, 13986 },
+ { 0x17DC, 13989 },
+ { 0x17C8, 13992 },
+ { 0x17E1, 13995 },
+ { 0x17E6, 13998 },
+ { 0x17E2, 14001 },
+ { 0x17E5, 14004 },
+ { 0x17E4, 14007 },
+ { 0x17E9, 14010 },
+ { 0x17E0, 14013 },
+ { 0x17E8, 14016 },
+ { 0x17E7, 14019 },
+ { 0x17E3, 14022 },
+ { 0x17C1, 14025 },
+ { 0x17B7, 14029 },
+ { 0x17BB, 14033 },
+ { 0x17B9, 14037 },
+ { 0x17B6, 14041 },
+ { 0x17C2, 14045 },
+ { 0x17C3, 14049 },
+ { 0x17C5, 14053 },
+ { 0x17C0, 14057 },
+ { 0x17B8, 14061 },
+ { 0x17BE, 14065 },
+ { 0x17C4, 14069 },
+ { 0x17BD, 14073 },
+ { 0x17BC, 14077 },
+ { 0x17BF, 14081 },
+ { 0x17BA, 14085 },
+ { 0x17B5, 14089 },
+ { 0x17B4, 14093 },
+ { 0x1794, 14097 },
+ { 0x1785, 14100 },
+ { 0x1787, 14103 },
+ { 0x178A, 14106 },
+ { 0x178C, 14109 },
+ { 0x17A0, 14112 },
+ { 0x1780, 14115 },
+ { 0x1782, 14118 },
+ { 0x17A1, 14121 },
+ { 0x179B, 14124 },
+ { 0x1798, 14127 },
+ { 0x1793, 14130 },
+ { 0x1796, 14133 },
+ { 0x17A2, 14136 },
+ { 0x179A, 14139 },
+ { 0x179F, 14142 },
+ { 0x178F, 14145 },
+ { 0x1791, 14148 },
+ { 0x179C, 14151 },
+ { 0x1799, 14154 },
+ { 0x1786, 14157 },
+ { 0x1788, 14160 },
+ { 0x1781, 14163 },
+ { 0x1783, 14166 },
+ { 0x1784, 14169 },
+ { 0x178E, 14172 },
+ { 0x1789, 14175 },
+ { 0x1795, 14178 },
+ { 0x1797, 14181 },
+ { 0x179D, 14184 },
+ { 0x179E, 14187 },
+ { 0x1790, 14190 },
+ { 0x1792, 14193 },
+ { 0x178B, 14196 },
+ { 0x178D, 14199 },
+ { 0x19F3, 14202 },
+ { 0x19E3, 14206 },
+ { 0x19FA, 14210 },
+ { 0x19EA, 14214 },
+ { 0x17F3, 14218 },
+ { 0x17F2, 14223 },
+ { 0x17F0, 14228 },
+ { 0x17F4, 14233 },
+ { 0x17F1, 14238 },
+ { 0x17F5, 14243 },
+ { 0x17F8, 14248 },
+ { 0x17F7, 14253 },
+ { 0x17F9, 14258 },
+ { 0x17F6, 14263 },
+ { 0x19F2, 14268 },
+ { 0x19E2, 14272 },
+ { 0x19F4, 14276 },
+ { 0x19E4, 14280 },
+ { 0x19F1, 14284 },
+ { 0x19E1, 14288 },
+ { 0x19F5, 14292 },
+ { 0x19E5, 14296 },
+ { 0x19FD, 14300 },
+ { 0x19ED, 14304 },
+ { 0x19FC, 14308 },
+ { 0x19EC, 14312 },
+ { 0x19FE, 14316 },
+ { 0x19EE, 14320 },
+ { 0x19FB, 14324 },
+ { 0x19EB, 14328 },
+ { 0x19FF, 14332 },
+ { 0x19EF, 14336 },
+ { 0x19F8, 14340 },
+ { 0x19E8, 14344 },
+ { 0x19F7, 14348 },
+ { 0x19E7, 14352 },
+ { 0x19F9, 14356 },
+ { 0x19E9, 14360 },
+ { 0x19F6, 14364 },
+ { 0x19E6, 14368 },
+ { 0x19F0, 14372 },
+ { 0x19E0, 14375 },
+ { 0x17DB, 14378 },
+ { 0x17AD, 14382 },
+ { 0x17AF, 14386 },
+ { 0x17A5, 14390 },
+ { 0x17A7, 14394 },
+ { 0x17AB, 14398 },
+ { 0x17AE, 14402 },
+ { 0x17A4, 14406 },
+ { 0x17B0, 14410 },
+ { 0x17A3, 14414 },
+ { 0x17B3, 14418 },
+ { 0x17A6, 14422 },
+ { 0x17B1, 14426 },
+ { 0x17B2, 14432 },
+ { 0x17A8, 14438 },
+ { 0x17A9, 14442 },
+ { 0x17AC, 14446 },
+ { 0x17AA, 14450 },
+ { 0x27D8, 14454 },
+ { 0x27D9, 14457 },
+ { 0x2A1E, 14460 },
+ { 0x25EF, 14464 },
+ { 0x2AFC, 14466 },
+ { 0x271D, 14471 },
+ { 0x0061, 14473 },
+ { 0x0227, 14477 },
+ { 0x01E1, 14484 },
+ { 0x1EA1, 14493 },
+ { 0x1EA3, 14500 },
+ { 0x00E5, 14507 },
+ { 0x01FB, 14514 },
+ { 0x1E01, 14523 },
+ { 0x00E1, 14530 },
+ { 0x0103, 14536 },
+ { 0x1EB7, 14542 },
+ { 0x1EB3, 14551 },
+ { 0x1EAF, 14560 },
+ { 0x1EB1, 14568 },
+ { 0x1EB5, 14576 },
+ { 0x01CE, 14584 },
+ { 0x00E0, 14590 },
+ { 0x1E9A, 14596 },
+ { 0x00E3, 14604 },
+ { 0x0201, 14610 },
+ { 0x0101, 14617 },
+ { 0x0105, 14623 },
+ { 0x2C65, 14629 },
+ { 0x0203, 14635 },
+ { 0x00E4, 14642 },
+ { 0x01DF, 14648 },
+ { 0x1D8F, 14656 },
+ { 0x00E2, 14663 },
+ { 0x1EAD, 14669 },
+ { 0x1EA9, 14678 },
+ { 0x1EA5, 14687 },
+ { 0x1EA7, 14695 },
+ { 0x1EAB, 14703 },
+ { 0x0062, 14711 },
+ { 0x1E03, 14715 },
+ { 0x1E05, 14722 },
+ { 0x0253, 14729 },
+ { 0x1E07, 14735 },
+ { 0x1D6C, 14742 },
+ { 0x0180, 14749 },
+ { 0x0183, 14755 },
+ { 0x1D80, 14761 },
+ { 0x0063, 14768 },
+ { 0x010B, 14772 },
+ { 0x0255, 14779 },
+ { 0x0188, 14785 },
+ { 0x0107, 14791 },
+ { 0x010D, 14797 },
+ { 0x023C, 14803 },
+ { 0x00E7, 14809 },
+ { 0x1E09, 14815 },
+ { 0x0109, 14823 },
+ { 0x0064, 14829 },
+ { 0x1E0B, 14833 },
+ { 0x1E0D, 14840 },
+ { 0x0221, 14847 },
+ { 0x0257, 14853 },
+ { 0x1D91, 14859 },
+ { 0x1E0F, 14867 },
+ { 0x0256, 14874 },
+ { 0x010F, 14880 },
+ { 0x1D6D, 14886 },
+ { 0x0111, 14893 },
+ { 0x018C, 14899 },
+ { 0x1E11, 14905 },
+ { 0x1D81, 14911 },
+ { 0x1E13, 14918 },
+ { 0x0065, 14925 },
+ { 0x0117, 14929 },
+ { 0x1EB9, 14936 },
+ { 0x1EBB, 14943 },
+ { 0x00E9, 14950 },
+ { 0x0115, 14956 },
+ { 0x011B, 14962 },
+ { 0x00E8, 14968 },
+ { 0x2C78, 14974 },
+ { 0x1EBD, 14980 },
+ { 0x1E1B, 14986 },
+ { 0x0205, 14993 },
+ { 0x0113, 15000 },
+ { 0x1E17, 15006 },
+ { 0x1E15, 15014 },
+ { 0x0119, 15022 },
+ { 0x0247, 15028 },
+ { 0x0229, 15034 },
+ { 0x1E1D, 15040 },
+ { 0x0207, 15048 },
+ { 0x00EB, 15055 },
+ { 0x1D92, 15061 },
+ { 0x00EA, 15068 },
+ { 0x1EC7, 15074 },
+ { 0x1EC3, 15083 },
+ { 0x1EBF, 15092 },
+ { 0x1EC1, 15100 },
+ { 0x1EC5, 15108 },
+ { 0x1E19, 15116 },
+ { 0x0066, 15123 },
+ { 0x1E1F, 15127 },
+ { 0x0192, 15134 },
+ { 0x1D6E, 15140 },
+ { 0x1D82, 15147 },
+ { 0x0067, 15154 },
+ { 0x0121, 15158 },
+ { 0x0260, 15165 },
+ { 0x01F5, 15171 },
+ { 0x011F, 15177 },
+ { 0x01E7, 15183 },
+ { 0x1E21, 15189 },
+ { 0x01E5, 15195 },
+ { 0x0123, 15201 },
+ { 0x1D83, 15207 },
+ { 0x011D, 15214 },
+ { 0x0068, 15220 },
+ { 0x1E23, 15224 },
+ { 0x1E25, 15231 },
+ { 0x0266, 15238 },
+ { 0x1E96, 15244 },
+ { 0x1E2B, 15251 },
+ { 0x021F, 15258 },
+ { 0x0127, 15264 },
+ { 0x1E29, 15270 },
+ { 0x2C68, 15276 },
+ { 0x1E27, 15282 },
+ { 0x0125, 15288 },
+ { 0x0069, 15294 },
+ { 0x1ECB, 15298 },
+ { 0x1EC9, 15305 },
+ { 0x00ED, 15312 },
+ { 0x012D, 15318 },
+ { 0x01D0, 15324 },
+ { 0x00EC, 15330 },
+ { 0x0129, 15336 },
+ { 0x1E2D, 15342 },
+ { 0x0209, 15349 },
+ { 0x012B, 15356 },
+ { 0x012F, 15362 },
+ { 0x0268, 15368 },
+ { 0x020B, 15374 },
+ { 0x00EF, 15381 },
+ { 0x1E2F, 15387 },
+ { 0x1D96, 15395 },
+ { 0x00EE, 15402 },
+ { 0x006A, 15408 },
+ { 0x01F0, 15412 },
+ { 0x0249, 15418 },
+ { 0x0135, 15424 },
+ { 0x029D, 15430 },
+ { 0x006B, 15436 },
+ { 0x1E33, 15440 },
+ { 0x0199, 15447 },
+ { 0x1E35, 15453 },
+ { 0x1E31, 15460 },
+ { 0x01E9, 15466 },
+ { 0x5741, 15472 },
+ { 0x5745, 15478 },
+ { 0x0137, 15487 },
+ { 0x1D84, 15493 },
+ { 0x5743, 15500 },
+ { 0x2C6A, 15507 },
+ { 0x006C, 15513 },
+ { 0x019A, 15517 },
+ { 0x1E37, 15523 },
+ { 0x1E39, 15530 },
+ { 0x026C, 15539 },
+ { 0x0234, 15545 },
+ { 0x5749, 15551 },
+ { 0x1E3B, 15558 },
+ { 0x013A, 15565 },
+ { 0x013E, 15571 },
+ { 0x2C61, 15577 },
+ { 0x0140, 15584 },
+ { 0x026B, 15591 },
+ { 0x0142, 15598 },
+ { 0x013C, 15604 },
+ { 0x1D85, 15610 },
+ { 0x026D, 15617 },
+ { 0x1E3D, 15624 },
+ { 0x006D, 15631 },
+ { 0x1E41, 15635 },
+ { 0x1E43, 15642 },
+ { 0x0271, 15649 },
+ { 0x1E3F, 15655 },
+ { 0x1D6F, 15661 },
+ { 0x1D86, 15668 },
+ { 0x006E, 15675 },
+ { 0x1E45, 15679 },
+ { 0x1E47, 15686 },
+ { 0x0235, 15693 },
+ { 0x0272, 15699 },
+ { 0x1E49, 15706 },
+ { 0x019E, 15713 },
+ { 0x0144, 15721 },
+ { 0x0148, 15727 },
+ { 0x01F9, 15733 },
+ { 0x00F1, 15739 },
+ { 0x1D70, 15745 },
+ { 0x0146, 15752 },
+ { 0x1D87, 15758 },
+ { 0x0273, 15765 },
+ { 0x1E4B, 15772 },
+ { 0x0149, 15779 },
+ { 0x006F, 15786 },
+ { 0x022F, 15790 },
+ { 0x0231, 15797 },
+ { 0x1ECD, 15806 },
+ { 0x2C7A, 15813 },
+ { 0x1ECF, 15821 },
+ { 0x01A1, 15828 },
+ { 0x1EE3, 15834 },
+ { 0x1EDF, 15843 },
+ { 0x1EDB, 15852 },
+ { 0x1EDD, 15860 },
+ { 0x1EE1, 15868 },
+ { 0x574B, 15876 },
+ { 0x574D, 15884 },
+ { 0x00F3, 15890 },
+ { 0x014F, 15896 },
+ { 0x01D2, 15902 },
+ { 0x00F2, 15908 },
+ { 0x00F5, 15914 },
+ { 0x1E4D, 15920 },
+ { 0x022D, 15928 },
+ { 0x1E4F, 15936 },
+ { 0x0151, 15944 },
+ { 0x020D, 15951 },
+ { 0x014D, 15958 },
+ { 0x1E53, 15964 },
+ { 0x1E51, 15972 },
+ { 0x01EB, 15980 },
+ { 0x01ED, 15986 },
+ { 0x00F8, 15994 },
+ { 0x01FF, 16000 },
+ { 0x020F, 16008 },
+ { 0x00F6, 16015 },
+ { 0x022B, 16021 },
+ { 0x00F4, 16029 },
+ { 0x1ED9, 16035 },
+ { 0x1ED5, 16044 },
+ { 0x1ED1, 16053 },
+ { 0x1ED3, 16061 },
+ { 0x1ED7, 16069 },
+ { 0x0070, 16077 },
+ { 0x1E57, 16081 },
+ { 0x01A5, 16088 },
+ { 0x1E55, 16094 },
+ { 0x1D71, 16100 },
+ { 0x1D7D, 16107 },
+ { 0x5751, 16113 },
+ { 0x1D88, 16121 },
+ { 0x5753, 16128 },
+ { 0x5755, 16134 },
+ { 0x0071, 16141 },
+ { 0x02A0, 16145 },
+ { 0x024B, 16151 },
+ { 0x5757, 16158 },
+ { 0x5759, 16166 },
+ { 0x0072, 16173 },
+ { 0x1E59, 16177 },
+ { 0x1E5B, 16184 },
+ { 0x1E5D, 16191 },
+ { 0x1E5F, 16200 },
+ { 0x027C, 16207 },
+ { 0x027D, 16214 },
+ { 0x0155, 16220 },
+ { 0x0159, 16226 },
+ { 0x0211, 16232 },
+ { 0x1D72, 16239 },
+ { 0x024D, 16246 },
+ { 0x0157, 16252 },
+ { 0x1D89, 16258 },
+ { 0x027E, 16265 },
+ { 0x1D73, 16271 },
+ { 0x0213, 16280 },
+ { 0x575B, 16287 },
+ { 0x0073, 16292 },
+ { 0x1E61, 16296 },
+ { 0x1E63, 16303 },
+ { 0x1E69, 16310 },
+ { 0x0282, 16320 },
+ { 0x015B, 16326 },
+ { 0x1E65, 16332 },
+ { 0x0161, 16341 },
+ { 0x1E67, 16347 },
+ { 0x0219, 16356 },
+ { 0x023F, 16363 },
+ { 0x1D74, 16370 },
+ { 0x015F, 16377 },
+ { 0x1D8A, 16383 },
+ { 0x015D, 16390 },
+ { 0x0074, 16396 },
+ { 0x1E6B, 16400 },
+ { 0x1E6D, 16407 },
+ { 0x0236, 16414 },
+ { 0x01AD, 16420 },
+ { 0x1E6F, 16426 },
+ { 0x0165, 16433 },
+ { 0x021B, 16439 },
+ { 0x1D75, 16446 },
+ { 0x0167, 16453 },
+ { 0x0163, 16459 },
+ { 0x01AB, 16465 },
+ { 0x2C66, 16472 },
+ { 0x1E97, 16479 },
+ { 0x0288, 16485 },
+ { 0x1E71, 16492 },
+ { 0x0075, 16499 },
+ { 0x0289, 16503 },
+ { 0x1EE5, 16508 },
+ { 0x1EE7, 16515 },
+ { 0x01B0, 16522 },
+ { 0x1EF1, 16528 },
+ { 0x1EED, 16537 },
+ { 0x1EE9, 16546 },
+ { 0x1EEB, 16554 },
+ { 0x1EEF, 16562 },
+ { 0x016F, 16570 },
+ { 0x00FA, 16577 },
+ { 0x016D, 16583 },
+ { 0x01D4, 16589 },
+ { 0x00F9, 16595 },
+ { 0x0169, 16601 },
+ { 0x1E79, 16607 },
+ { 0x1E75, 16615 },
+ { 0x0171, 16622 },
+ { 0x0215, 16629 },
+ { 0x016B, 16636 },
+ { 0x1E7B, 16642 },
+ { 0x0173, 16650 },
+ { 0x0217, 16656 },
+ { 0x00FC, 16663 },
+ { 0x01D8, 16669 },
+ { 0x01DA, 16677 },
+ { 0x01DC, 16685 },
+ { 0x01D6, 16693 },
+ { 0x1E73, 16701 },
+ { 0x1D99, 16708 },
+ { 0x00FB, 16715 },
+ { 0x1E77, 16721 },
+ { 0x0076, 16728 },
+ { 0x1E7F, 16732 },
+ { 0x2C74, 16739 },
+ { 0x028B, 16745 },
+ { 0x2C71, 16751 },
+ { 0x1E7D, 16758 },
+ { 0x1D8C, 16764 },
+ { 0x575F, 16771 },
+ { 0x0077, 16778 },
+ { 0x1E87, 16782 },
+ { 0x1E89, 16789 },
+ { 0x2C73, 16796 },
+ { 0x1E98, 16802 },
+ { 0x1E83, 16809 },
+ { 0x1E81, 16815 },
+ { 0x1E85, 16821 },
+ { 0x0175, 16827 },
+ { 0x0078, 16833 },
+ { 0x1E8B, 16837 },
+ { 0x1D8D, 16844 },
+ { 0x1E8D, 16851 },
+ { 0x0079, 16857 },
+ { 0x1E8F, 16861 },
+ { 0x1EF5, 16868 },
+ { 0x01B4, 16875 },
+ { 0x1EF7, 16881 },
+ { 0x1EFF, 16888 },
+ { 0x1E99, 16894 },
+ { 0x00FD, 16901 },
+ { 0x1EF3, 16907 },
+ { 0x1EF9, 16913 },
+ { 0x0233, 16919 },
+ { 0x024F, 16925 },
+ { 0x00FF, 16931 },
+ { 0x0177, 16937 },
+ { 0x007A, 16943 },
+ { 0x017C, 16947 },
+ { 0x1E93, 16954 },
+ { 0x0291, 16961 },
+ { 0x0225, 16967 },
+ { 0x1E95, 16973 },
+ { 0x017A, 16980 },
+ { 0x017E, 16986 },
+ { 0x0240, 16992 },
+ { 0x1D76, 16999 },
+ { 0x01B6, 17006 },
+ { 0x1D8E, 17012 },
+ { 0x2C6C, 17019 },
+ { 0x0290, 17025 },
+ { 0x1E91, 17032 },
+ { 0x5733, 17038 },
+ { 0x00E6, 17042 },
+ { 0x01FD, 17046 },
+ { 0x01E3, 17052 },
+ { 0x5735, 17058 },
+ { 0x5737, 17062 },
+ { 0x5739, 17066 },
+ { 0x573B, 17070 },
+ { 0x573D, 17077 },
+ { 0x0238, 17081 },
+ { 0x01F3, 17086 },
+ { 0x01C6, 17090 },
+ { 0x02A3, 17096 },
+ { 0x02A5, 17101 },
+ { 0x576B, 17108 },
+ { 0x0195, 17112 },
+ { 0x576D, 17116 },
+ { 0x01C9, 17120 },
+ { 0x02AA, 17124 },
+ { 0x02AB, 17129 },
+ { 0x01CC, 17134 },
+ { 0x01A3, 17138 },
+ { 0x574F, 17142 },
+ { 0x0223, 17146 },
+ { 0x0239, 17150 },
+ { 0x02A8, 17155 },
+ { 0x1D7A, 17162 },
+ { 0x02A6, 17168 },
+ { 0x5729, 17173 },
+ { 0x1D6B, 17177 },
+ { 0x5778, 17181 },
+ { 0x5761, 17185 },
+ { 0x576F, 17189 },
+ { 0x5771, 17193 },
+ { 0x014B, 17197 },
+ { 0x0283, 17201 },
+ { 0x0286, 17205 },
+ { 0x1D8B, 17211 },
+ { 0x1D98, 17218 },
+ { 0x00F0, 17225 },
+ { 0x0292, 17229 },
+ { 0x0293, 17233 },
+ { 0x01BA, 17239 },
+ { 0x01EF, 17245 },
+ { 0x1D9A, 17251 },
+ { 0x01B9, 17258 },
+ { 0x0138, 17263 },
+ { 0x5772, 17267 },
+ { 0x5773, 17271 },
+ { 0x5774, 17275 },
+ { 0x0278, 17279 },
+ { 0x5775, 17283 },
+ { 0x575D, 17287 },
+ { 0x1D16, 17292 },
+ { 0x5777, 17298 },
+ { 0x02A4, 17302 },
+ { 0x02A9, 17307 },
+ { 0x2C76, 17312 },
+ { 0x5727, 17317 },
+ { 0x0267, 17321 },
+ { 0x0269, 17327 },
+ { 0x1D7C, 17331 },
+ { 0x026E, 17337 },
+ { 0x017F, 17341 },
+ { 0x1E9B, 17346 },
+ { 0x1E9D, 17354 },
+ { 0x1E9C, 17362 },
+ { 0x025B, 17370 },
+ { 0x1D93, 17375 },
+ { 0x0254, 17383 },
+ { 0x1D97, 17388 },
+ { 0x0264, 17396 },
+ { 0x02A7, 17401 },
+ { 0x0185, 17406 },
+ { 0x01A8, 17411 },
+ { 0x01BD, 17416 },
+ { 0x5769, 17421 },
+ { 0x021D, 17425 },
+ { 0x0251, 17429 },
+ { 0x1D90, 17433 },
+ { 0x1E9F, 17440 },
+ { 0x0263, 17444 },
+ { 0x0259, 17448 },
+ { 0x025A, 17452 },
+ { 0x1D95, 17458 },
+ { 0x00DF, 17465 },
+ { 0x0285, 17470 },
+ { 0x00FE, 17476 },
+ { 0x5765, 17480 },
+ { 0x5767, 17486 },
+ { 0x0275, 17494 },
+ { 0x1D17, 17499 },
+ { 0x5747, 17505 },
+ { 0x029A, 17510 },
+ { 0x0277, 17516 },
+ { 0x025E, 17521 },
+ { 0x019B, 17528 },
+ { 0x0261, 17534 },
+ { 0x0250, 17539 },
+ { 0x01DD, 17544 },
+ { 0x1D77, 17549 },
+ { 0x0265, 17554 },
+ { 0x02AE, 17559 },
+ { 0x02AF, 17566 },
+ { 0x1D09, 17575 },
+ { 0x029E, 17580 },
+ { 0x5781, 17585 },
+ { 0x026F, 17590 },
+ { 0x0270, 17595 },
+ { 0x0279, 17603 },
+ { 0x027B, 17608 },
+ { 0x027A, 17615 },
+ { 0x2C79, 17623 },
+ { 0x0287, 17630 },
+ { 0x028C, 17635 },
+ { 0x028D, 17640 },
+ { 0x028E, 17645 },
+ { 0x1D02, 17650 },
+ { 0x1D14, 17655 },
+ { 0x1D08, 17660 },
+ { 0x0252, 17666 },
+ { 0x018D, 17671 },
+ { 0x577F, 17676 },
+ { 0x0131, 17682 },
+ { 0x0237, 17687 },
+ { 0x025F, 17692 },
+ { 0x0284, 17699 },
+ { 0x0242, 17708 },
+ { 0x577A, 17713 },
+ { 0x577C, 17718 },
+ { 0x1D79, 17723 },
+ { 0x5783, 17728 },
+ { 0x5785, 17733 },
+ { 0x5787, 17738 },
+ { 0x028A, 17743 },
+ { 0x1D7F, 17747 },
+ { 0x2184, 17753 },
+ { 0x573F, 17758 },
+ { 0x0258, 17765 },
+ { 0x027F, 17770 },
+ { 0x025C, 17777 },
+ { 0x025D, 17783 },
+ { 0x1D94, 17791 },
+ { 0x578C, 17800 },
+ { 0x1D11, 17804 },
+ { 0x1D13, 17809 },
+ { 0x1D1D, 17816 },
+ { 0x1D12, 17821 },
+ { 0x1D1F, 17827 },
+ { 0x1D1E, 17833 },
+ { 0x2C77, 17839 },
+ { 0x572B, 17844 },
+ { 0x572D, 17848 },
+ { 0x572F, 17852 },
+ { 0x5763, 17858 },
+ { 0x1EFD, 17863 },
+ { 0x1EFB, 17868 },
+ { 0x5725, 17873 },
+ { 0x5723, 17878 },
+ { 0x1D7B, 17883 },
+ { 0x1D7E, 17890 },
+ { 0x6B00, 17897 },
+ { 0x6B01, 17901 },
+ { 0x6B02, 17905 },
+ { 0x0133, 17909 },
+ { 0x0153, 17913 },
+ { 0x6B06, 17917 },
+ { 0x6B03, 17921 },
+ { 0x6B04, 17925 },
+ { 0x6B05, 17929 },
+ { 0x01A6, 17935 },
+ { 0x1D25, 17938 },
+ { 0x01BB, 17941 },
+ { 0x01BF, 17946 },
+ { 0x1D00, 17949 },
+ { 0x0299, 17954 },
+ { 0x1D04, 17959 },
+ { 0x1D05, 17964 },
+ { 0x1D07, 17969 },
+ { 0x5730, 17974 },
+ { 0x0262, 17979 },
+ { 0x029B, 17984 },
+ { 0x029C, 17991 },
+ { 0x026A, 17996 },
+ { 0x1D0A, 18001 },
+ { 0x1D0B, 18006 },
+ { 0x029F, 18011 },
+ { 0x1D0C, 18016 },
+ { 0x1D0D, 18023 },
+ { 0x0274, 18028 },
+ { 0x1D0F, 18033 },
+ { 0x1D18, 18038 },
+ { 0x0280, 18043 },
+ { 0x5731, 18048 },
+ { 0x1D1B, 18053 },
+ { 0x1D1C, 18058 },
+ { 0x1D20, 18063 },
+ { 0x1D21, 18068 },
+ { 0x028F, 18073 },
+ { 0x1D22, 18078 },
+ { 0x1D01, 18083 },
+ { 0x0276, 18088 },
+ { 0x1D15, 18093 },
+ { 0x1D06, 18098 },
+ { 0x1D23, 18103 },
+ { 0x5776, 18108 },
+ { 0x1D10, 18113 },
+ { 0x1D03, 18119 },
+ { 0x2C7B, 18125 },
+ { 0x1D1A, 18131 },
+ { 0x0281, 18137 },
+ { 0x1D0E, 18143 },
+ { 0x1D19, 18149 },
+ { 0x01C0, 18155 },
+ { 0x1D24, 18159 },
+ { 0x0294, 18164 },
+ { 0x02A1, 18168 },
+ { 0x01C1, 18174 },
+ { 0x01C2, 18178 },
+ { 0x02AD, 18182 },
+ { 0x0298, 18186 },
+ { 0x02AC, 18190 },
+ { 0x0296, 18194 },
+ { 0x01BE, 18199 },
+ { 0x01AA, 18206 },
+ { 0x02A2, 18211 },
+ { 0x01C3, 18218 },
+ { 0x0297, 18222 },
+ { 0x0295, 18226 },
+ { 0x0041, 18231 },
+ { 0x0226, 18235 },
+ { 0x01E0, 18242 },
+ { 0x1EA0, 18251 },
+ { 0x1EA2, 18258 },
+ { 0x00C5, 18265 },
+ { 0x01FA, 18272 },
+ { 0x1E00, 18281 },
+ { 0x00C1, 18288 },
+ { 0x0102, 18294 },
+ { 0x1EB6, 18300 },
+ { 0x1EB2, 18309 },
+ { 0x1EAE, 18318 },
+ { 0x1EB0, 18326 },
+ { 0x1EB4, 18334 },
+ { 0x01CD, 18342 },
+ { 0x00C0, 18348 },
+ { 0x00C3, 18354 },
+ { 0x0200, 18360 },
+ { 0x0100, 18367 },
+ { 0x0104, 18373 },
+ { 0x023A, 18379 },
+ { 0x0202, 18385 },
+ { 0x00C4, 18392 },
+ { 0x01DE, 18398 },
+ { 0x00C2, 18406 },
+ { 0x1EAC, 18412 },
+ { 0x1EA8, 18421 },
+ { 0x1EA4, 18430 },
+ { 0x1EA6, 18438 },
+ { 0x1EAA, 18446 },
+ { 0x0042, 18454 },
+ { 0x1E02, 18458 },
+ { 0x1E04, 18465 },
+ { 0x0181, 18472 },
+ { 0x1E06, 18478 },
+ { 0x0243, 18485 },
+ { 0x0182, 18491 },
+ { 0x0043, 18497 },
+ { 0x010A, 18501 },
+ { 0x0187, 18508 },
+ { 0x0106, 18514 },
+ { 0x010C, 18520 },
+ { 0x023B, 18526 },
+ { 0x00C7, 18532 },
+ { 0x1E08, 18538 },
+ { 0x0108, 18546 },
+ { 0x0044, 18552 },
+ { 0x1E0A, 18556 },
+ { 0x1E0C, 18563 },
+ { 0x018A, 18570 },
+ { 0x1E0E, 18576 },
+ { 0x010E, 18583 },
+ { 0x01F2, 18589 },
+ { 0x01C5, 18597 },
+ { 0x0110, 18607 },
+ { 0x018B, 18613 },
+ { 0x1E10, 18619 },
+ { 0x1E12, 18625 },
+ { 0x0045, 18632 },
+ { 0x0116, 18636 },
+ { 0x1EB8, 18643 },
+ { 0x1EBA, 18650 },
+ { 0x00C9, 18657 },
+ { 0x0114, 18663 },
+ { 0x011A, 18669 },
+ { 0x00C8, 18675 },
+ { 0x1EBC, 18681 },
+ { 0x1E1A, 18687 },
+ { 0x0204, 18694 },
+ { 0x0112, 18701 },
+ { 0x1E16, 18707 },
+ { 0x1E14, 18715 },
+ { 0x0118, 18723 },
+ { 0x0246, 18729 },
+ { 0x0228, 18735 },
+ { 0x1E1C, 18741 },
+ { 0x0206, 18749 },
+ { 0x00CB, 18756 },
+ { 0x00CA, 18762 },
+ { 0x1EC6, 18768 },
+ { 0x1EC2, 18777 },
+ { 0x1EBE, 18786 },
+ { 0x1EC0, 18794 },
+ { 0x1EC4, 18802 },
+ { 0x1E18, 18810 },
+ { 0x0046, 18817 },
+ { 0x1E1E, 18821 },
+ { 0x0191, 18828 },
+ { 0x0047, 18834 },
+ { 0x0120, 18838 },
+ { 0x0193, 18845 },
+ { 0x01F4, 18851 },
+ { 0x011E, 18857 },
+ { 0x01E6, 18863 },
+ { 0x1E20, 18869 },
+ { 0x01E4, 18875 },
+ { 0x0122, 18881 },
+ { 0x011C, 18887 },
+ { 0x0048, 18893 },
+ { 0x1E22, 18897 },
+ { 0x1E24, 18904 },
+ { 0x1E2A, 18911 },
+ { 0x021E, 18918 },
+ { 0x0126, 18924 },
+ { 0x1E28, 18930 },
+ { 0x2C67, 18936 },
+ { 0x1E26, 18942 },
+ { 0x0124, 18948 },
+ { 0x0049, 18954 },
+ { 0x0130, 18958 },
+ { 0x1ECA, 18965 },
+ { 0x1EC8, 18972 },
+ { 0x00CD, 18979 },
+ { 0x012C, 18985 },
+ { 0x01CF, 18991 },
+ { 0x00CC, 18997 },
+ { 0x0128, 19003 },
+ { 0x1E2C, 19009 },
+ { 0x0208, 19016 },
+ { 0x012A, 19023 },
+ { 0x012E, 19029 },
+ { 0x0197, 19035 },
+ { 0x020A, 19041 },
+ { 0x00CF, 19048 },
+ { 0x1E2E, 19054 },
+ { 0x00CE, 19062 },
+ { 0x004A, 19068 },
+ { 0x0248, 19072 },
+ { 0x0134, 19078 },
+ { 0x004B, 19084 },
+ { 0x1E32, 19088 },
+ { 0x0198, 19095 },
+ { 0x1E34, 19101 },
+ { 0x1E30, 19108 },
+ { 0x01E8, 19114 },
+ { 0x5740, 19120 },
+ { 0x5744, 19126 },
+ { 0x0136, 19135 },
+ { 0x5742, 19141 },
+ { 0x2C69, 19148 },
+ { 0x004C, 19154 },
+ { 0x023D, 19158 },
+ { 0x1E36, 19164 },
+ { 0x1E38, 19171 },
+ { 0x5748, 19180 },
+ { 0x1E3A, 19187 },
+ { 0x0139, 19194 },
+ { 0x013D, 19200 },
+ { 0x01C8, 19206 },
+ { 0x2C60, 19214 },
+ { 0x013F, 19221 },
+ { 0x2C62, 19228 },
+ { 0x0141, 19235 },
+ { 0x013B, 19241 },
+ { 0x1E3C, 19247 },
+ { 0x004D, 19254 },
+ { 0x1E40, 19258 },
+ { 0x1E42, 19265 },
+ { 0x2C6E, 19272 },
+ { 0x1E3E, 19278 },
+ { 0x004E, 19284 },
+ { 0x1E44, 19288 },
+ { 0x1E46, 19295 },
+ { 0x019D, 19302 },
+ { 0x1E48, 19309 },
+ { 0x0220, 19316 },
+ { 0x0143, 19324 },
+ { 0x0147, 19330 },
+ { 0x01F8, 19336 },
+ { 0x01CB, 19342 },
+ { 0x00D1, 19350 },
+ { 0x0145, 19356 },
+ { 0x1E4A, 19362 },
+ { 0x004F, 19369 },
+ { 0x022E, 19373 },
+ { 0x0230, 19380 },
+ { 0x1ECC, 19389 },
+ { 0x1ECE, 19396 },
+ { 0x01A0, 19403 },
+ { 0x1EE2, 19409 },
+ { 0x1EDE, 19418 },
+ { 0x1EDA, 19427 },
+ { 0x1EDC, 19435 },
+ { 0x1EE0, 19443 },
+ { 0x574A, 19451 },
+ { 0x574C, 19459 },
+ { 0x00D3, 19465 },
+ { 0x014E, 19471 },
+ { 0x01D1, 19477 },
+ { 0x00D2, 19483 },
+ { 0x00D5, 19489 },
+ { 0x1E4C, 19495 },
+ { 0x022C, 19503 },
+ { 0x1E4E, 19511 },
+ { 0x0150, 19519 },
+ { 0x020C, 19526 },
+ { 0x014C, 19533 },
+ { 0x1E52, 19539 },
+ { 0x1E50, 19547 },
+ { 0x019F, 19555 },
+ { 0x01EA, 19562 },
+ { 0x01EC, 19568 },
+ { 0x00D8, 19576 },
+ { 0x01FE, 19582 },
+ { 0x020E, 19590 },
+ { 0x00D6, 19597 },
+ { 0x022A, 19603 },
+ { 0x00D4, 19611 },
+ { 0x1ED8, 19617 },
+ { 0x1ED4, 19626 },
+ { 0x1ED0, 19635 },
+ { 0x1ED2, 19643 },
+ { 0x1ED6, 19651 },
+ { 0x0050, 19659 },
+ { 0x1E56, 19663 },
+ { 0x01A4, 19670 },
+ { 0x1E54, 19676 },
+ { 0x2C63, 19682 },
+ { 0x5750, 19688 },
+ { 0x5752, 19696 },
+ { 0x5754, 19702 },
+ { 0x0051, 19709 },
+ { 0x5756, 19713 },
+ { 0x5758, 19721 },
+ { 0x0052, 19728 },
+ { 0x1E58, 19732 },
+ { 0x1E5A, 19739 },
+ { 0x1E5C, 19746 },
+ { 0x1E5E, 19755 },
+ { 0x2C64, 19762 },
+ { 0x0154, 19768 },
+ { 0x0158, 19774 },
+ { 0x0210, 19780 },
+ { 0x024C, 19787 },
+ { 0x0156, 19793 },
+ { 0x0212, 19799 },
+ { 0x575A, 19806 },
+ { 0x0053, 19811 },
+ { 0x1E60, 19815 },
+ { 0x1E62, 19822 },
+ { 0x1E68, 19829 },
+ { 0x015A, 19839 },
+ { 0x1E64, 19845 },
+ { 0x0160, 19854 },
+ { 0x1E66, 19860 },
+ { 0x0218, 19869 },
+ { 0x015E, 19876 },
+ { 0x015C, 19882 },
+ { 0x0054, 19888 },
+ { 0x1E6A, 19892 },
+ { 0x1E6C, 19899 },
+ { 0x01AC, 19906 },
+ { 0x1E6E, 19912 },
+ { 0x0164, 19919 },
+ { 0x021A, 19925 },
+ { 0x0166, 19932 },
+ { 0x0162, 19938 },
+ { 0x023E, 19944 },
+ { 0x01AE, 19951 },
+ { 0x1E70, 19958 },
+ { 0x0055, 19965 },
+ { 0x0244, 19969 },
+ { 0x1EE4, 19974 },
+ { 0x1EE6, 19981 },
+ { 0x01AF, 19988 },
+ { 0x1EF0, 19994 },
+ { 0x1EEC, 20003 },
+ { 0x1EE8, 20012 },
+ { 0x1EEA, 20020 },
+ { 0x1EEE, 20028 },
+ { 0x016E, 20036 },
+ { 0x00DA, 20043 },
+ { 0x016C, 20049 },
+ { 0x01D3, 20055 },
+ { 0x00D9, 20061 },
+ { 0x0168, 20067 },
+ { 0x1E78, 20073 },
+ { 0x1E74, 20081 },
+ { 0x0170, 20088 },
+ { 0x0214, 20095 },
+ { 0x016A, 20102 },
+ { 0x1E7A, 20108 },
+ { 0x0172, 20116 },
+ { 0x0216, 20122 },
+ { 0x00DC, 20129 },
+ { 0x01D7, 20135 },
+ { 0x01D9, 20143 },
+ { 0x01DB, 20151 },
+ { 0x01D5, 20159 },
+ { 0x1E72, 20167 },
+ { 0x00DB, 20174 },
+ { 0x1E76, 20180 },
+ { 0x0056, 20187 },
+ { 0x1E7E, 20191 },
+ { 0x01B2, 20198 },
+ { 0x1E7C, 20204 },
+ { 0x575E, 20210 },
+ { 0x0057, 20217 },
+ { 0x1E86, 20221 },
+ { 0x1E88, 20228 },
+ { 0x2C72, 20235 },
+ { 0x1E82, 20241 },
+ { 0x1E80, 20247 },
+ { 0x1E84, 20253 },
+ { 0x0174, 20259 },
+ { 0x0058, 20265 },
+ { 0x1E8A, 20269 },
+ { 0x1E8C, 20276 },
+ { 0x0059, 20282 },
+ { 0x1E8E, 20286 },
+ { 0x1EF4, 20293 },
+ { 0x01B3, 20300 },
+ { 0x1EF6, 20306 },
+ { 0x1EFE, 20313 },
+ { 0x00DD, 20319 },
+ { 0x1EF2, 20325 },
+ { 0x1EF8, 20331 },
+ { 0x0232, 20337 },
+ { 0x024E, 20343 },
+ { 0x0178, 20349 },
+ { 0x0176, 20355 },
+ { 0x005A, 20361 },
+ { 0x017B, 20365 },
+ { 0x1E92, 20372 },
+ { 0x0224, 20379 },
+ { 0x1E94, 20385 },
+ { 0x0179, 20392 },
+ { 0x017D, 20398 },
+ { 0x01B5, 20404 },
+ { 0x2C6B, 20410 },
+ { 0x1E90, 20416 },
+ { 0x5732, 20422 },
+ { 0x00C6, 20426 },
+ { 0x01FC, 20430 },
+ { 0x01E2, 20436 },
+ { 0x5734, 20442 },
+ { 0x5736, 20446 },
+ { 0x5738, 20450 },
+ { 0x573A, 20454 },
+ { 0x573C, 20461 },
+ { 0x01F1, 20465 },
+ { 0x01C4, 20469 },
+ { 0x576A, 20475 },
+ { 0x576C, 20479 },
+ { 0x01C7, 20483 },
+ { 0x01CA, 20487 },
+ { 0x01A2, 20491 },
+ { 0x574E, 20495 },
+ { 0x0222, 20499 },
+ { 0x5728, 20503 },
+ { 0x5760, 20507 },
+ { 0x576E, 20511 },
+ { 0x014A, 20515 },
+ { 0x01A9, 20519 },
+ { 0x00D0, 20523 },
+ { 0x01B7, 20527 },
+ { 0x01EE, 20531 },
+ { 0x01B8, 20537 },
+ { 0x575C, 20542 },
+ { 0x2C75, 20547 },
+ { 0x5726, 20552 },
+ { 0x0196, 20556 },
+ { 0x0190, 20560 },
+ { 0x0186, 20565 },
+ { 0x0184, 20570 },
+ { 0x01A7, 20575 },
+ { 0x01BC, 20580 },
+ { 0x5768, 20585 },
+ { 0x01F7, 20589 },
+ { 0x021C, 20593 },
+ { 0x2C6D, 20597 },
+ { 0x0194, 20601 },
+ { 0x01F6, 20605 },
+ { 0x018F, 20609 },
+ { 0x1E9E, 20613 },
+ { 0x024A, 20618 },
+ { 0x00DE, 20626 },
+ { 0x5764, 20630 },
+ { 0x5766, 20636 },
+ { 0x5746, 20644 },
+ { 0x2C6F, 20649 },
+ { 0x5780, 20654 },
+ { 0x019C, 20659 },
+ { 0x0245, 20664 },
+ { 0x577E, 20669 },
+ { 0x0189, 20675 },
+ { 0x0241, 20680 },
+ { 0x5779, 20685 },
+ { 0x577B, 20690 },
+ { 0x577D, 20695 },
+ { 0x5782, 20700 },
+ { 0x5784, 20705 },
+ { 0x5786, 20710 },
+ { 0x01B1, 20715 },
+ { 0x573E, 20719 },
+ { 0x018E, 20726 },
+ { 0x578B, 20731 },
+ { 0x572A, 20735 },
+ { 0x572C, 20739 },
+ { 0x572E, 20743 },
+ { 0x5762, 20749 },
+ { 0x1EFC, 20754 },
+ { 0x1EFA, 20759 },
+ { 0x5724, 20764 },
+ { 0x5722, 20769 },
+ { 0x0132, 20774 },
+ { 0x0152, 20778 },
+ { 0x2090, 20782 },
+ { 0x2091, 20787 },
+ { 0x1D62, 20792 },
+ { 0x2C7C, 20797 },
+ { 0x2092, 20802 },
+ { 0x1D63, 20807 },
+ { 0x1D64, 20812 },
+ { 0x1D65, 20817 },
+ { 0x2093, 20822 },
+ { 0x2094, 20827 },
+ { 0x57FE, 20832 },
+ { 0x57FF, 20837 },
+ { 0x57FD, 20842 },
+ { 0x57FB, 20847 },
+ { 0x57FC, 20852 },
+ { 0x264E, 20857 },
+ { 0x2772, 20858 },
+ { 0x2773, 20864 },
+ { 0x2591, 20870 },
+ { 0x2758, 20872 },
+ { 0x1940, 20875 },
+ { 0x193B, 20878 },
+ { 0x193A, 20881 },
+ { 0x1939, 20884 },
+ { 0x1947, 20887 },
+ { 0x194C, 20890 },
+ { 0x1948, 20893 },
+ { 0x194B, 20896 },
+ { 0x194A, 20899 },
+ { 0x194F, 20902 },
+ { 0x1946, 20905 },
+ { 0x194E, 20908 },
+ { 0x194D, 20911 },
+ { 0x1949, 20914 },
+ { 0x1930, 20917 },
+ { 0x1938, 20921 },
+ { 0x1936, 20925 },
+ { 0x1934, 20929 },
+ { 0x1935, 20933 },
+ { 0x1937, 20937 },
+ { 0x1933, 20941 },
+ { 0x1931, 20945 },
+ { 0x1932, 20949 },
+ { 0x1920, 20953 },
+ { 0x1927, 20957 },
+ { 0x1921, 20961 },
+ { 0x1928, 20965 },
+ { 0x1922, 20969 },
+ { 0x1924, 20973 },
+ { 0x1926, 20977 },
+ { 0x1923, 20981 },
+ { 0x1925, 20985 },
+ { 0x1912, 20989 },
+ { 0x1906, 20992 },
+ { 0x190D, 20995 },
+ { 0x1903, 20998 },
+ { 0x191C, 21001 },
+ { 0x1908, 21004 },
+ { 0x1901, 21007 },
+ { 0x1917, 21010 },
+ { 0x1914, 21013 },
+ { 0x190F, 21016 },
+ { 0x1910, 21019 },
+ { 0x1916, 21022 },
+ { 0x191B, 21025 },
+ { 0x190B, 21028 },
+ { 0x1918, 21031 },
+ { 0x1915, 21034 },
+ { 0x1913, 21037 },
+ { 0x1907, 21040 },
+ { 0x190E, 21043 },
+ { 0x1904, 21046 },
+ { 0x1909, 21049 },
+ { 0x1902, 21052 },
+ { 0x1905, 21055 },
+ { 0x1911, 21058 },
+ { 0x1919, 21061 },
+ { 0x191A, 21064 },
+ { 0x190C, 21067 },
+ { 0x190A, 21070 },
+ { 0x1945, 21073 },
+ { 0x192A, 21076 },
+ { 0x192B, 21080 },
+ { 0x1929, 21084 },
+ { 0x1944, 21088 },
+ { 0x1900, 21091 },
+ { 0x2581, 21094 },
+ { 0x2582, 21098 },
+ { 0x2585, 21102 },
+ { 0x2584, 21106 },
+ { 0x25E1, 21109 },
+ { 0x25DB, 21112 },
+ { 0x25DF, 21117 },
+ { 0x25FA, 21122 },
+ { 0x293F, 21125 },
+ { 0x2703, 21130 },
+ { 0x27D3, 21133 },
+ { 0x270E, 21138 },
+ { 0x25DE, 21141 },
+ { 0x2751, 21146 },
+ { 0x25FF, 21151 },
+ { 0x293E, 21154 },
+ { 0x274F, 21159 },
+ { 0x2587, 21164 },
+ { 0x2583, 21168 },
+ { 0x2586, 21172 },
+ { 0x00B5, 21176 },
+ { 0x2212, 21178 },
+ { 0x2A3A, 21180 },
+ { 0x2A2A, 21184 },
+ { 0x2A29, 21189 },
+ { 0x2A2C, 21194 },
+ { 0x2A2B, 21199 },
+ { 0x2242, 21204 },
+ { 0x266D, 21206 },
+ { 0x266F, 21209 },
+ { 0x266E, 21212 },
+ { 0x2A09, 21215 },
+ { 0x22C3, 21218 },
+ { 0x2A03, 21220 },
+ { 0x2A04, 21225 },
+ { 0x2AFF, 21230 },
+ { 0x2A06, 21234 },
+ { 0x2A05, 21238 },
+ { 0x2A00, 21242 },
+ { 0x2A01, 21246 },
+ { 0x2A02, 21250 },
+ { 0x22C1, 21254 },
+ { 0x22C0, 21257 },
+ { 0x220F, 21260 },
+ { 0x2210, 21262 },
+ { 0x2211, 21264 },
+ { 0x22C2, 21266 },
+ { 0x2207, 21268 },
+ { 0x20A6, 21269 },
+ { 0x2922, 21271 },
+ { 0x2197, 21277 },
+ { 0x2928, 21280 },
+ { 0x2924, 21287 },
+ { 0x2931, 21292 },
+ { 0x292E, 21299 },
+ { 0x2B08, 21306 },
+ { 0x2B00, 21310 },
+ { 0x21D7, 21314 },
+ { 0x2921, 21318 },
+ { 0x2196, 21324 },
+ { 0x21B8, 21327 },
+ { 0x21F1, 21333 },
+ { 0x2927, 21338 },
+ { 0x2923, 21345 },
+ { 0x2932, 21350 },
+ { 0x2B09, 21357 },
+ { 0x2B01, 21361 },
+ { 0x21D6, 21365 },
+ { 0x1680, 21369 },
+ { 0x1696, 21372 },
+ { 0x1692, 21375 },
+ { 0x1691, 21378 },
+ { 0x1690, 21381 },
+ { 0x1689, 21384 },
+ { 0x1687, 21387 },
+ { 0x168C, 21390 },
+ { 0x1698, 21393 },
+ { 0x1682, 21396 },
+ { 0x168B, 21399 },
+ { 0x1685, 21402 },
+ { 0x168F, 21405 },
+ { 0x1684, 21408 },
+ { 0x1686, 21411 },
+ { 0x1681, 21414 },
+ { 0x168A, 21417 },
+ { 0x1683, 21420 },
+ { 0x169A, 21423 },
+ { 0x1688, 21426 },
+ { 0x168E, 21429 },
+ { 0x1695, 21432 },
+ { 0x1693, 21435 },
+ { 0x1694, 21438 },
+ { 0x168D, 21441 },
+ { 0x1697, 21444 },
+ { 0x1699, 21447 },
+ { 0x169B, 21450 },
+ { 0x169C, 21453 },
+ { 0x0B56, 21457 },
+ { 0x0B57, 21461 },
+ { 0x0B3C, 21465 },
+ { 0x0B4D, 21468 },
+ { 0x0B03, 21471 },
+ { 0x0B02, 21474 },
+ { 0x0B3D, 21477 },
+ { 0x0B01, 21480 },
+ { 0x0B67, 21483 },
+ { 0x0B6C, 21486 },
+ { 0x0B68, 21489 },
+ { 0x0B6B, 21492 },
+ { 0x0B6A, 21495 },
+ { 0x0B6F, 21498 },
+ { 0x0B66, 21501 },
+ { 0x0B6E, 21504 },
+ { 0x0B6D, 21507 },
+ { 0x0B69, 21510 },
+ { 0x0B47, 21513 },
+ { 0x0B3F, 21517 },
+ { 0x0B4B, 21521 },
+ { 0x0B41, 21525 },
+ { 0x0B3E, 21529 },
+ { 0x0B48, 21533 },
+ { 0x0B4C, 21537 },
+ { 0x0B40, 21541 },
+ { 0x0B42, 21545 },
+ { 0x0B62, 21549 },
+ { 0x0B43, 21554 },
+ { 0x0B63, 21559 },
+ { 0x0B44, 21564 },
+ { 0x0B70, 21569 },
+ { 0x0B05, 21571 },
+ { 0x0B0F, 21574 },
+ { 0x0B07, 21577 },
+ { 0x0B13, 21580 },
+ { 0x0B09, 21583 },
+ { 0x0B06, 21586 },
+ { 0x0B10, 21589 },
+ { 0x0B14, 21592 },
+ { 0x0B2C, 21595 },
+ { 0x0B1A, 21598 },
+ { 0x0B26, 21601 },
+ { 0x0B17, 21604 },
+ { 0x0B39, 21607 },
+ { 0x0B08, 21610 },
+ { 0x0B1C, 21613 },
+ { 0x0B15, 21616 },
+ { 0x0B32, 21619 },
+ { 0x0B2E, 21622 },
+ { 0x0B28, 21625 },
+ { 0x0B2A, 21628 },
+ { 0x0B30, 21631 },
+ { 0x0B38, 21634 },
+ { 0x0B24, 21637 },
+ { 0x0B0A, 21640 },
+ { 0x0B35, 21643 },
+ { 0x0B71, 21646 },
+ { 0x0B2F, 21649 },
+ { 0x0B2D, 21652 },
+ { 0x0B1B, 21655 },
+ { 0x0B21, 21658 },
+ { 0x0B27, 21661 },
+ { 0x0B18, 21664 },
+ { 0x0B1D, 21667 },
+ { 0x0B16, 21670 },
+ { 0x0B33, 21673 },
+ { 0x0B19, 21676 },
+ { 0x0B23, 21679 },
+ { 0x0B1E, 21682 },
+ { 0x0B2B, 21685 },
+ { 0x0B5D, 21688 },
+ { 0x0B5C, 21691 },
+ { 0x0B36, 21694 },
+ { 0x0B37, 21697 },
+ { 0x0B25, 21700 },
+ { 0x0B1F, 21703 },
+ { 0x0B5F, 21706 },
+ { 0x0B22, 21709 },
+ { 0x0B20, 21712 },
+ { 0x0B0C, 21715 },
+ { 0x0B0B, 21719 },
+ { 0x0B61, 21723 },
+ { 0x0B60, 21727 },
+ { 0x2125, 21731 },
+ { 0x262E, 21733 },
+ { 0x2318, 21735 },
+ { 0x2647, 21739 },
+ { 0x00A3, 21740 },
+ { 0x2032, 21742 },
+ { 0x2399, 21743 },
+ { 0x2236, 21746 },
+ { 0x2994, 21747 },
+ { 0x2E1D, 21751 },
+ { 0x2595, 21755 },
+ { 0x297D, 21759 },
+ { 0x25D7, 21762 },
+ { 0x2590, 21766 },
+ { 0x22A2, 21769 },
+ { 0x221F, 21771 },
+ { 0x22BE, 21773 },
+ { 0x237C, 21777 },
+ { 0x2E01, 21783 },
+ { 0x3009, 21788 },
+ { 0x2992, 21791 },
+ { 0x299C, 21796 },
+ { 0x2E00, 21801 },
+ { 0x21F4, 21805 },
+ { 0x27F4, 21810 },
+ { 0x2998, 21815 },
+ { 0x3011, 21820 },
+ { 0x007D, 21824 },
+ { 0x23AD, 21827 },
+ { 0x23AB, 21832 },
+ { 0x23AC, 21837 },
+ { 0x230B, 21842 },
+ { 0x27D6, 21844 },
+ { 0x2984, 21847 },
+ { 0x300F, 21851 },
+ { 0x301B, 21855 },
+ { 0x3019, 21859 },
+ { 0x3017, 21864 },
+ { 0x2986, 21868 },
+ { 0x300D, 21871 },
+ { 0x2E05, 21874 },
+ { 0x300B, 21878 },
+ { 0x2970, 21882 },
+ { 0x29DB, 21888 },
+ { 0x201D, 21892 },
+ { 0x2E29, 21896 },
+ { 0x22CA, 21899 },
+ { 0x2E0D, 21904 },
+ { 0x2019, 21908 },
+ { 0x005D, 21912 },
+ { 0x2990, 21915 },
+ { 0x298E, 21923 },
+ { 0x2046, 21931 },
+ { 0x298C, 21936 },
+ { 0x23A6, 21941 },
+ { 0x23A4, 21946 },
+ { 0x23A5, 21951 },
+ { 0x29D9, 21955 },
+ { 0x2309, 21958 },
+ { 0x27C6, 21960 },
+ { 0x2E27, 21964 },
+ { 0x3015, 21968 },
+ { 0x22BF, 21972 },
+ { 0x29CE, 21974 },
+ { 0x2E21, 21979 },
+ { 0x23B9, 21984 },
+ { 0x22CC, 21988 },
+ { 0x0029, 21991 },
+ { 0x23A0, 21993 },
+ { 0x239E, 21997 },
+ { 0x239F, 22001 },
+ { 0x2E03, 22004 },
+ { 0x2E0A, 22007 },
+ { 0x719A, 22010 },
+ { 0x7191, 22013 },
+ { 0x7194, 22016 },
+ { 0x2160, 22020 },
+ { 0x216D, 22023 },
+ { 0x2188, 22027 },
+ { 0x216F, 22032 },
+ { 0x2180, 22036 },
+ { 0x2165, 22042 },
+ { 0x2185, 22045 },
+ { 0x2169, 22050 },
+ { 0x2182, 22053 },
+ { 0x2161, 22057 },
+ { 0x2164, 22060 },
+ { 0x216E, 22063 },
+ { 0x2181, 22067 },
+ { 0x2163, 22071 },
+ { 0x2168, 22074 },
+ { 0x2167, 22077 },
+ { 0x216C, 22080 },
+ { 0x2186, 22083 },
+ { 0x2187, 22088 },
+ { 0x2166, 22092 },
+ { 0x2162, 22095 },
+ { 0x216A, 22098 },
+ { 0x216B, 22101 },
+ { 0x2183, 22104 },
+ { 0x7190, 22109 },
+ { 0x7193, 22112 },
+ { 0x7195, 22115 },
+ { 0x7196, 22118 },
+ { 0x7192, 22121 },
+ { 0x719B, 22124 },
+ { 0x7199, 22127 },
+ { 0x7197, 22130 },
+ { 0x7198, 22133 },
+ { 0x16ED, 22136 },
+ { 0x16EE, 22139 },
+ { 0x16CD, 22142 },
+ { 0x16D1, 22145 },
+ { 0x16C2, 22148 },
+ { 0x16B5, 22151 },
+ { 0x16AE, 22154 },
+ { 0x16E9, 22157 },
+ { 0x16A1, 22160 },
+ { 0x16A5, 22163 },
+ { 0x16EA, 22166 },
+ { 0x16A4, 22169 },
+ { 0x16CE, 22172 },
+ { 0x16AA, 22175 },
+ { 0x16AF, 22179 },
+ { 0x16B0, 22182 },
+ { 0x16A9, 22185 },
+ { 0x16A3, 22189 },
+ { 0x16B3, 22192 },
+ { 0x16E0, 22195 },
+ { 0x16B6, 22198 },
+ { 0x16A7, 22201 },
+ { 0x16B8, 22204 },
+ { 0x16C4, 22207 },
+ { 0x16DD, 22210 },
+ { 0x16E1, 22213 },
+ { 0x16AB, 22216 },
+ { 0x16E3, 22219 },
+ { 0x16A0, 22222 },
+ { 0x16B7, 22228 },
+ { 0x16C1, 22233 },
+ { 0x16C7, 22239 },
+ { 0x16B4, 22243 },
+ { 0x16E5, 22247 },
+ { 0x16A2, 22250 },
+ { 0x16C9, 22255 },
+ { 0x16A8, 22259 },
+ { 0x16E4, 22263 },
+ { 0x16DE, 22266 },
+ { 0x16D6, 22271 },
+ { 0x16BB, 22276 },
+ { 0x16C3, 22280 },
+ { 0x16B2, 22284 },
+ { 0x16B1, 22287 },
+ { 0x16CB, 22293 },
+ { 0x16CF, 22298 },
+ { 0x16B9, 22304 },
+ { 0x16BA, 22309 },
+ { 0x16DC, 22313 },
+ { 0x16DA, 22316 },
+ { 0x16D7, 22322 },
+ { 0x16BE, 22327 },
+ { 0x16D5, 22333 },
+ { 0x16C8, 22336 },
+ { 0x16CA, 22341 },
+ { 0x16E2, 22345 },
+ { 0x16DF, 22348 },
+ { 0x16D2, 22353 },
+ { 0x16DB, 22359 },
+ { 0x16C0, 22362 },
+ { 0x16D4, 22365 },
+ { 0x16A6, 22368 },
+ { 0x16E8, 22373 },
+ { 0x16C6, 22376 },
+ { 0x16E7, 22380 },
+ { 0x16C5, 22383 },
+ { 0x16E6, 22387 },
+ { 0x16AD, 22390 },
+ { 0x16CC, 22394 },
+ { 0x16D0, 22398 },
+ { 0x16AC, 22402 },
+ { 0x16D9, 22406 },
+ { 0x16BF, 22410 },
+ { 0x16D8, 22414 },
+ { 0x16BD, 22418 },
+ { 0x16BC, 22422 },
+ { 0x16D3, 22426 },
+ { 0x16EB, 22430 },
+ { 0x16F0, 22433 },
+ { 0x16EC, 22436 },
+ { 0x16EF, 22439 },
+ { 0x20A8, 22442 },
+ { 0x2AE0, 22444 },
+ { 0x2AE8, 22447 },
+ { 0x2AE9, 22452 },
+ { 0x2ADF, 22459 },
+ { 0x2AE7, 22462 },
+ { 0x2ADE, 22467 },
+ { 0x2944, 22470 },
+ { 0x2620, 22476 },
+ { 0x2333, 22479 },
+ { 0x6E58, 22480 },
+ { 0x2A61, 22483 },
+ { 0x6E52, 22487 },
+ { 0x6E5B, 22490 },
+ { 0x6E5D, 22494 },
+ { 0x6E59, 22499 },
+ { 0x6E62, 22502 },
+ { 0x6E55, 22505 },
+ { 0x6E50, 22507 },
+ { 0x6E5C, 22509 },
+ { 0x6E5E, 22513 },
+ { 0x6E5A, 22518 },
+ { 0x2170, 22521 },
+ { 0x217D, 22525 },
+ { 0x217F, 22530 },
+ { 0x2175, 22535 },
+ { 0x2179, 22539 },
+ { 0x2171, 22543 },
+ { 0x2174, 22547 },
+ { 0x217E, 22551 },
+ { 0x2173, 22556 },
+ { 0x2178, 22560 },
+ { 0x2177, 22564 },
+ { 0x217C, 22568 },
+ { 0x2176, 22572 },
+ { 0x2172, 22576 },
+ { 0x217A, 22580 },
+ { 0x217B, 22584 },
+ { 0x02DC, 22588 },
+ { 0x6E69, 22590 },
+ { 0x6E66, 22593 },
+ { 0x6E5F, 22596 },
+ { 0x220A, 22599 },
+ { 0x22F7, 22602 },
+ { 0x22F4, 22607 },
+ { 0x6E6A, 22618 },
+ { 0x6E68, 22621 },
+ { 0x6E61, 22624 },
+ { 0x220D, 22626 },
+ { 0x22FE, 22630 },
+ { 0x22FC, 22634 },
+ { 0x6E56, 22644 },
+ { 0x6E60, 22647 },
+ { 0x6E64, 22649 },
+ { 0x6E54, 22652 },
+ { 0x6E6B, 22654 },
+ { 0x6E57, 22657 },
+ { 0x6E51, 22660 },
+ { 0x6E65, 22663 },
+ { 0x6E63, 22666 },
+ { 0x2A33, 22668 },
+ { 0x2323, 22670 },
+ { 0x2117, 22671 },
+ { 0x2198, 22674 },
+ { 0x21F2, 22677 },
+ { 0x2929, 22682 },
+ { 0x2925, 22689 },
+ { 0x292D, 22694 },
+ { 0x2B0A, 22701 },
+ { 0x2B02, 22705 },
+ { 0x21D8, 22709 },
+ { 0x2199, 22713 },
+ { 0x292A, 22716 },
+ { 0x2926, 22723 },
+ { 0x2B0B, 22728 },
+ { 0x2B03, 22732 },
+ { 0x21D9, 22736 },
+ { 0x0020, 22740 },
+ { 0x27A7, 22741 },
+ { 0x269A, 22745 },
+ { 0x2695, 22748 },
+ { 0x2053, 22751 },
+ { 0x0BF8, 22753 },
+ { 0x0BD7, 22757 },
+ { 0x0BD0, 22761 },
+ { 0x0BF3, 22763 },
+ { 0x0BCD, 22766 },
+ { 0x0B83, 22769 },
+ { 0x0B82, 22772 },
+ { 0x0BF5, 22775 },
+ { 0x0BF6, 22778 },
+ { 0x0BE7, 22781 },
+ { 0x0BEC, 22784 },
+ { 0x0BE8, 22787 },
+ { 0x0BEB, 22790 },
+ { 0x0BEA, 22793 },
+ { 0x0BEF, 22796 },
+ { 0x0BE6, 22799 },
+ { 0x0BEE, 22802 },
+ { 0x0BED, 22805 },
+ { 0x0BE9, 22808 },
+ { 0x0BF4, 22811 },
+ { 0x0BF9, 22814 },
+ { 0x0BC6, 22817 },
+ { 0x0BBF, 22821 },
+ { 0x0BCA, 22825 },
+ { 0x0BC1, 22829 },
+ { 0x0BBE, 22833 },
+ { 0x0BC8, 22837 },
+ { 0x0BCC, 22841 },
+ { 0x0BC7, 22845 },
+ { 0x0BC0, 22849 },
+ { 0x0BCB, 22853 },
+ { 0x0BC2, 22857 },
+ { 0x0BF7, 22861 },
+ { 0x0B85, 22864 },
+ { 0x0B8E, 22867 },
+ { 0x0B87, 22870 },
+ { 0x0B92, 22873 },
+ { 0x0B89, 22876 },
+ { 0x0B86, 22879 },
+ { 0x0B90, 22882 },
+ { 0x0B94, 22885 },
+ { 0x0B9A, 22888 },
+ { 0x0B8F, 22891 },
+ { 0x0BB9, 22894 },
+ { 0x0B88, 22897 },
+ { 0x0B9C, 22900 },
+ { 0x0B95, 22903 },
+ { 0x0BB2, 22906 },
+ { 0x0BAE, 22909 },
+ { 0x0BA8, 22912 },
+ { 0x0B93, 22915 },
+ { 0x0BAA, 22918 },
+ { 0x0BB0, 22921 },
+ { 0x0BB8, 22924 },
+ { 0x0BA4, 22927 },
+ { 0x0B8A, 22930 },
+ { 0x0BB5, 22933 },
+ { 0x0BAF, 22936 },
+ { 0x0BB3, 22939 },
+ { 0x0B99, 22942 },
+ { 0x0BA3, 22945 },
+ { 0x0B9E, 22948 },
+ { 0x0BB1, 22951 },
+ { 0x0BB6, 22954 },
+ { 0x0BB7, 22957 },
+ { 0x0B9F, 22960 },
+ { 0x0BB4, 22963 },
+ { 0x0BA9, 22966 },
+ { 0x0BF1, 22969 },
+ { 0x0BF2, 22973 },
+ { 0x0BF0, 22977 },
+ { 0x0BFA, 22980 },
+ { 0x2204, 22983 },
+ { 0x2203, 22987 },
+ { 0x2056, 22989 },
+ { 0x2B31, 22992 },
+ { 0x21F6, 22995 },
+ { 0x2A76, 22998 },
+ { 0x27C0, 23002 },
+ { 0x2745, 23005 },
+ { 0x007E, 23008 },
+ { 0x2E1E, 23009 },
+ { 0x2E1F, 23013 },
+ { 0x2E1B, 23017 },
+ { 0x223C, 23021 },
+ { 0x2A6A, 23023 },
+ { 0x2A6B, 23028 },
+ { 0x2B49, 23033 },
+ { 0x2972, 23038 },
+ { 0x29D4, 23043 },
+ { 0x29D5, 23048 },
+ { 0x2330, 23053 },
+ { 0x2122, 23055 },
+ { 0x222A, 23058 },
+ { 0x2A41, 23059 },
+ { 0x2A45, 23063 },
+ { 0x2A42, 23067 },
+ { 0x2A48, 23070 },
+ { 0x2A46, 23075 },
+ { 0x2A4A, 23078 },
+ { 0x2594, 23084 },
+ { 0x2580, 23088 },
+ { 0x25E0, 23091 },
+ { 0x25DA, 23094 },
+ { 0x23B0, 23099 },
+ { 0x27D4, 23107 },
+ { 0x25DC, 23112 },
+ { 0x25F8, 23117 },
+ { 0x2701, 23120 },
+ { 0x23B1, 23123 },
+ { 0x2710, 23131 },
+ { 0x25DD, 23134 },
+ { 0x2752, 23139 },
+ { 0x25F9, 23144 },
+ { 0x2750, 23147 },
+ { 0x26B6, 23152 },
+ { 0x264D, 23153 },
+ { 0x231A, 23154 },
+ { 0x2638, 23155 },
+ { 0x261D, 23158 },
+ { 0x2711, 23162 },
+ { 0x263C, 23164 },
+ { 0x2667, 23168 },
+ { 0x261F, 23171 },
+ { 0x2690, 23175 },
+ { 0x2727, 23177 },
+ { 0x261C, 23181 },
+ { 0x2606, 23185 },
+ { 0x2B1E, 23187 },
+ { 0x2654, 23191 },
+ { 0x2659, 23194 },
+ { 0x2656, 23197 },
+ { 0x2655, 23200 },
+ { 0x2657, 23203 },
+ { 0x2658, 23206 },
+ { 0x2661, 23209 },
+ { 0x2B1C, 23212 },
+ { 0x261E, 23215 },
+ { 0x2616, 23219 },
+ { 0x2B52, 23222 },
+ { 0x25AB, 23225 },
+ { 0x2B2B, 23228 },
+ { 0x2664, 23231 },
+ { 0x25E6, 23234 },
+ { 0x25CB, 23236 },
+ { 0x2686, 23238 },
+ { 0x2687, 23243 },
+ { 0x29EC, 23248 },
+ { 0x25F5, 23253 },
+ { 0x25F6, 23259 },
+ { 0x25F4, 23265 },
+ { 0x25F7, 23271 },
+ { 0x2B50, 23277 },
+ { 0x25FD, 23280 },
+ { 0x25FB, 23284 },
+ { 0x2B26, 23287 },
+ { 0x2B28, 23290 },
+ { 0x6E46, 23293 },
+ { 0x25A1, 23296 },
+ { 0x25F1, 23298 },
+ { 0x25F2, 23304 },
+ { 0x25F0, 23310 },
+ { 0x25F3, 23316 },
+ { 0x2385, 23322 },
+ { 0x25A2, 23328 },
+ { 0x25EB, 23333 },
+ { 0x27E4, 23339 },
+ { 0x27E5, 23344 },
+ { 0x25A3, 23349 },
+ { 0x25C7, 23355 },
+ { 0x2662, 23357 },
+ { 0x27D0, 23360 },
+ { 0x25C8, 23365 },
+ { 0x2B21, 23371 },
+ { 0x263A, 23373 },
+ { 0x26C0, 23376 },
+ { 0x26C1, 23379 },
+ { 0x2740, 23382 },
+ { 0x2639, 23384 },
+ { 0x2B20, 23387 },
+ { 0x2704, 23389 },
+ { 0x27C1, 23391 },
+ { 0x2AFE, 23397 },
+ { 0x2B2F, 23400 },
+ { 0x25AF, 23403 },
+ { 0x29D6, 23406 },
+ { 0x25AD, 23408 },
+ { 0x260F, 23410 },
+ { 0x23E2, 23412 },
+ { 0x2B2D, 23414 },
+ { 0x25B5, 23417 },
+ { 0x25B3, 23421 },
+ { 0x25EC, 23424 },
+ { 0x27E1, 23429 },
+ { 0x27E2, 23432 },
+ { 0x27E3, 23438 },
+ { 0x25BF, 23444 },
+ { 0x25BD, 23448 },
+ { 0x25C3, 23451 },
+ { 0x25C5, 23455 },
+ { 0x25C1, 23458 },
+ { 0x25B1, 23461 },
+ { 0x25B9, 23463 },
+ { 0x25BB, 23467 },
+ { 0x2B54, 23470 },
+ { 0x25B7, 23473 },
+ { 0x713C, 23476 },
+ { 0x7101, 23481 },
+ { 0x7100, 23485 },
+ { 0x7102, 23489 },
+ { 0x713D, 23492 },
+ { 0x7107, 23497 },
+ { 0x7119, 23500 },
+ { 0x7122, 23504 },
+ { 0x710C, 23508 },
+ { 0x711E, 23511 },
+ { 0x7127, 23515 },
+ { 0x7110, 23519 },
+ { 0x712B, 23522 },
+ { 0x7108, 23526 },
+ { 0x711A, 23529 },
+ { 0x7123, 23533 },
+ { 0x710B, 23537 },
+ { 0x711D, 23540 },
+ { 0x7126, 23544 },
+ { 0x710A, 23548 },
+ { 0x711C, 23551 },
+ { 0x7125, 23555 },
+ { 0x710F, 23559 },
+ { 0x7121, 23562 },
+ { 0x712A, 23566 },
+ { 0x710E, 23570 },
+ { 0x7120, 23573 },
+ { 0x7129, 23577 },
+ { 0x7114, 23581 },
+ { 0x712F, 23584 },
+ { 0x7113, 23588 },
+ { 0x712E, 23591 },
+ { 0x710D, 23595 },
+ { 0x711F, 23598 },
+ { 0x7128, 23602 },
+ { 0x7115, 23606 },
+ { 0x7130, 23609 },
+ { 0x7109, 23613 },
+ { 0x711B, 23616 },
+ { 0x7124, 23620 },
+ { 0x7117, 23624 },
+ { 0x7132, 23627 },
+ { 0x7118, 23631 },
+ { 0x7133, 23634 },
+ { 0x7112, 23638 },
+ { 0x712D, 23641 },
+ { 0x7111, 23645 },
+ { 0x712C, 23648 },
+ { 0x7116, 23652 },
+ { 0x7131, 23655 },
+ { 0x7137, 23659 },
+ { 0x7138, 23663 },
+ { 0x713A, 23667 },
+ { 0x713B, 23671 },
+ { 0x7139, 23675 },
+ { 0x713F, 23679 },
+ { 0x713E, 23683 },
+ { 0x224A, 23687 },
+ { 0x2248, 23692 },
+ { 0x2A6F, 23695 },
+ { 0x2693, 23701 },
+ { 0x06DD, 23702 },
+ { 0x0608, 23706 },
+ { 0x060D, 23708 },
+ { 0x066D, 23711 },
+ { 0x06D4, 23715 },
+ { 0x0658, 23718 },
+ { 0x0613, 23722 },
+ { 0x060F, 23727 },
+ { 0x0603, 23730 },
+ { 0x0601, 23733 },
+ { 0x0611, 23736 },
+ { 0x06FD, 23740 },
+ { 0x06FE, 23744 },
+ { 0x0614, 23749 },
+ { 0x0612, 23752 },
+ { 0x0610, 23756 },
+ { 0x6E73, 23761 },
+ { 0x060C, 23764 },
+ { 0x064F, 23766 },
+ { 0x6E79, 23768 },
+ { 0x6E78, 23772 },
+ { 0x06EA, 23776 },
+ { 0x06EB, 23781 },
+ { 0x064E, 23786 },
+ { 0x065E, 23788 },
+ { 0x6E77, 23793 },
+ { 0x6E76, 23797 },
+ { 0x0654, 23801 },
+ { 0x0655, 23804 },
+ { 0x0650, 23807 },
+ { 0x6E7B, 23809 },
+ { 0x6E7A, 23813 },
+ { 0x06E9, 23817 },
+ { 0x06ED, 23821 },
+ { 0x06E3, 23825 },
+ { 0x06E5, 23829 },
+ { 0x06E6, 23832 },
+ { 0x06D9, 23835 },
+ { 0x0615, 23840 },
+ { 0x06E7, 23844 },
+ { 0x06DA, 23848 },
+ { 0x06D8, 23852 },
+ { 0x06E2, 23858 },
+ { 0x06E8, 23864 },
+ { 0x06DC, 23868 },
+ { 0x0617, 23872 },
+ { 0x06E4, 23876 },
+ { 0x06DB, 23880 },
+ { 0x06E1, 23885 },
+ { 0x06DF, 23892 },
+ { 0x06E0, 23897 },
+ { 0x06D7, 23903 },
+ { 0x06D6, 23913 },
+ { 0x0616, 23923 },
+ { 0x0619, 23932 },
+ { 0x0618, 23935 },
+ { 0x061A, 23938 },
+ { 0x06DE, 23941 },
+ { 0x0652, 23947 },
+ { 0x6E7F, 23949 },
+ { 0x6E7E, 23953 },
+ { 0x065C, 23957 },
+ { 0x065A, 23962 },
+ { 0x065B, 23968 },
+ { 0x06D0, 23975 },
+ { 0x6BE5, 23978 },
+ { 0x6BE7, 23983 },
+ { 0x6BE6, 23988 },
+ { 0x6BE4, 23993 },
+ { 0x06C7, 23998 },
+ { 0x0677, 24001 },
+ { 0x6BDD, 24007 },
+ { 0x6BD8, 24015 },
+ { 0x6BD7, 24020 },
+ { 0x06D5, 24025 },
+ { 0x06AD, 24028 },
+ { 0x6BD4, 24031 },
+ { 0x6BD6, 24036 },
+ { 0x6BD5, 24041 },
+ { 0x6BD3, 24046 },
+ { 0x06C6, 24051 },
+ { 0x6BDA, 24054 },
+ { 0x6BD9, 24059 },
+ { 0x06CB, 24064 },
+ { 0x6BDF, 24067 },
+ { 0x6BDE, 24072 },
+ { 0x06C8, 24077 },
+ { 0x6BDC, 24080 },
+ { 0x6BDB, 24085 },
+ { 0x0639, 24090 },
+ { 0x075D, 24093 },
+ { 0x075F, 24100 },
+ { 0x06A0, 24108 },
+ { 0x075E, 24115 },
+ { 0x6ECA, 24124 },
+ { 0x6ECC, 24129 },
+ { 0x6ECB, 24134 },
+ { 0x6EC9, 24139 },
+ { 0x0628, 24144 },
+ { 0x0751, 24147 },
+ { 0x0754, 24157 },
+ { 0x0756, 24167 },
+ { 0x0752, 24173 },
+ { 0x0753, 24182 },
+ { 0x0750, 24195 },
+ { 0x0755, 24203 },
+ { 0x6E90, 24211 },
+ { 0x6E92, 24216 },
+ { 0x6E91, 24221 },
+ { 0x6E8F, 24226 },
+ { 0x0636, 24231 },
+ { 0x06FB, 24234 },
+ { 0x6EBE, 24240 },
+ { 0x6EC0, 24245 },
+ { 0x6EBF, 24250 },
+ { 0x6EBD, 24255 },
+ { 0x062F, 24260 },
+ { 0x068A, 24263 },
+ { 0x068B, 24269 },
+ { 0x0759, 24278 },
+ { 0x0690, 24289 },
+ { 0x0689, 24296 },
+ { 0x068F, 24301 },
+ { 0x06EE, 24309 },
+ { 0x075A, 24315 },
+ { 0x6EAA, 24323 },
+ { 0x6EA9, 24328 },
+ { 0x068E, 24333 },
+ { 0x6B87, 24336 },
+ { 0x6B86, 24341 },
+ { 0x0641, 24346 },
+ { 0x06A3, 24349 },
+ { 0x06A2, 24355 },
+ { 0x0760, 24362 },
+ { 0x06A5, 24369 },
+ { 0x0761, 24376 },
+ { 0x6ED2, 24385 },
+ { 0x6ED4, 24390 },
+ { 0x6ED3, 24395 },
+ { 0x6ED1, 24400 },
+ { 0x06AF, 24405 },
+ { 0x06B2, 24408 },
+ { 0x06B0, 24415 },
+ { 0x06B4, 24420 },
+ { 0x6B93, 24427 },
+ { 0x6B95, 24432 },
+ { 0x6B94, 24437 },
+ { 0x6B92, 24442 },
+ { 0x062D, 24447 },
+ { 0x0757, 24450 },
+ { 0x0682, 24457 },
+ { 0x0681, 24465 },
+ { 0x076F, 24471 },
+ { 0x0772, 24482 },
+ { 0x076E, 24491 },
+ { 0x0685, 24500 },
+ { 0x0758, 24507 },
+ { 0x077C, 24516 },
+ { 0x6EA2, 24525 },
+ { 0x6EA4, 24530 },
+ { 0x6EA3, 24535 },
+ { 0x6EA1, 24540 },
+ { 0x0647, 24545 },
+ { 0x06C1, 24548 },
+ { 0x06C2, 24552 },
+ { 0x6BA7, 24559 },
+ { 0x6BA9, 24565 },
+ { 0x6BA8, 24571 },
+ { 0x6BA6, 24577 },
+ { 0x06C0, 24583 },
+ { 0x6BA5, 24589 },
+ { 0x6BA4, 24597 },
+ { 0x06FF, 24605 },
+ { 0x6EEA, 24611 },
+ { 0x6EEC, 24616 },
+ { 0x6EEB, 24621 },
+ { 0x6EE9, 24626 },
+ { 0x06BE, 24631 },
+ { 0x6BAB, 24635 },
+ { 0x6BAD, 24641 },
+ { 0x6BAC, 24647 },
+ { 0x6BAA, 24653 },
+ { 0x0698, 24659 },
+ { 0x6B8B, 24662 },
+ { 0x6B8A, 24667 },
+ { 0x0643, 24672 },
+ { 0x06AC, 24675 },
+ { 0x077F, 24681 },
+ { 0x06AB, 24688 },
+ { 0x06AE, 24693 },
+ { 0x6EDA, 24700 },
+ { 0x6EDC, 24705 },
+ { 0x6EDB, 24710 },
+ { 0x6ED9, 24715 },
+ { 0x0644, 24720 },
+ { 0x076A, 24723 },
+ { 0x06B6, 24728 },
+ { 0x06B5, 24734 },
+ { 0x06B7, 24740 },
+ { 0x06B8, 24747 },
+ { 0x6EDE, 24754 },
+ { 0x6EE0, 24759 },
+ { 0x6EDF, 24764 },
+ { 0x6EDD, 24769 },
+ { 0x067E, 24774 },
+ { 0x6B57, 24777 },
+ { 0x6B59, 24782 },
+ { 0x6B58, 24787 },
+ { 0x6B56, 24792 },
+ { 0x0642, 24797 },
+ { 0x06A7, 24800 },
+ { 0x06A8, 24806 },
+ { 0x6ED6, 24813 },
+ { 0x6ED8, 24818 },
+ { 0x6ED7, 24823 },
+ { 0x6ED5, 24828 },
+ { 0x0631, 24833 },
+ { 0x0694, 24836 },
+ { 0x0696, 24842 },
+ { 0x0697, 24851 },
+ { 0x076B, 24858 },
+ { 0x0699, 24866 },
+ { 0x0693, 24873 },
+ { 0x076C, 24878 },
+ { 0x0692, 24884 },
+ { 0x0695, 24890 },
+ { 0x0771, 24897 },
+ { 0x075B, 24908 },
+ { 0x06EF, 24913 },
+ { 0x6EAE, 24919 },
+ { 0x6EAD, 24924 },
+ { 0x0635, 24929 },
+ { 0x069D, 24932 },
+ { 0x069E, 24939 },
+ { 0x6EBA, 24946 },
+ { 0x6EBC, 24951 },
+ { 0x6EBB, 24956 },
+ { 0x6EB9, 24961 },
+ { 0x0637, 24966 },
+ { 0x069F, 24969 },
+ { 0x6EC2, 24976 },
+ { 0x6EC4, 24981 },
+ { 0x6EC3, 24986 },
+ { 0x6EC1, 24991 },
+ { 0x062A, 24996 },
+ { 0x067C, 24999 },
+ { 0x067D, 25004 },
+ { 0x6E96, 25012 },
+ { 0x6E98, 25017 },
+ { 0x6E97, 25022 },
+ { 0x0629, 25027 },
+ { 0x06C3, 25031 },
+ { 0x6E94, 25036 },
+ { 0x6E93, 25042 },
+ { 0x6E95, 25048 },
+ { 0x06A4, 25053 },
+ { 0x6B6B, 25056 },
+ { 0x6B6D, 25061 },
+ { 0x6B6C, 25066 },
+ { 0x6B6A, 25071 },
+ { 0x0648, 25076 },
+ { 0x06CF, 25079 },
+ { 0x06CA, 25085 },
+ { 0x06C4, 25092 },
+ { 0x0624, 25097 },
+ { 0x6E86, 25103 },
+ { 0x6E85, 25111 },
+ { 0x0778, 25119 },
+ { 0x0779, 25128 },
+ { 0x6EEE, 25137 },
+ { 0x6EED, 25142 },
+ { 0x064A, 25147 },
+ { 0x06CD, 25150 },
+ { 0x0626, 25155 },
+ { 0x6E8A, 25161 },
+ { 0x6E8C, 25169 },
+ { 0x6E8B, 25177 },
+ { 0x6E89, 25185 },
+ { 0x06CE, 25193 },
+ { 0x06D1, 25199 },
+ { 0x6EF2, 25206 },
+ { 0x06D2, 25211 },
+ { 0x06D3, 25215 },
+ { 0x6BB1, 25222 },
+ { 0x6BB0, 25231 },
+ { 0x077A, 25240 },
+ { 0x077B, 25250 },
+ { 0x6BAF, 25260 },
+ { 0x6BAE, 25266 },
+ { 0x6EF4, 25272 },
+ { 0x6EF3, 25277 },
+ { 0x6EF1, 25282 },
+ { 0x0638, 25287 },
+ { 0x6EC6, 25290 },
+ { 0x6EC8, 25295 },
+ { 0x6EC7, 25300 },
+ { 0x6EC5, 25305 },
+ { 0x0627, 25310 },
+ { 0x0672, 25313 },
+ { 0x0673, 25320 },
+ { 0x0623, 25327 },
+ { 0x6E84, 25333 },
+ { 0x6E83, 25341 },
+ { 0x0625, 25349 },
+ { 0x6E88, 25355 },
+ { 0x6E87, 25363 },
+ { 0x0622, 25371 },
+ { 0x6E82, 25377 },
+ { 0x6E81, 25385 },
+ { 0x0773, 25393 },
+ { 0x0774, 25402 },
+ { 0x6E8E, 25411 },
+ { 0x0671, 25416 },
+ { 0x6B51, 25420 },
+ { 0x6B50, 25426 },
+ { 0x0649, 25432 },
+ { 0x6EF0, 25436 },
+ { 0x6EEF, 25442 },
+ { 0x6E8D, 25448 },
+ { 0x067B, 25453 },
+ { 0x6B53, 25456 },
+ { 0x6B55, 25461 },
+ { 0x6B54, 25466 },
+ { 0x6B52, 25471 },
+ { 0x0688, 25476 },
+ { 0x6B89, 25479 },
+ { 0x6B88, 25484 },
+ { 0x0684, 25489 },
+ { 0x6B73, 25492 },
+ { 0x6B75, 25497 },
+ { 0x6B74, 25502 },
+ { 0x6B72, 25507 },
+ { 0x06B3, 25512 },
+ { 0x6B97, 25515 },
+ { 0x6B99, 25520 },
+ { 0x6B98, 25525 },
+ { 0x6B96, 25530 },
+ { 0x0674, 25535 },
+ { 0x0676, 25539 },
+ { 0x0678, 25544 },
+ { 0x0675, 25549 },
+ { 0x062C, 25554 },
+ { 0x6E9E, 25557 },
+ { 0x6EA0, 25562 },
+ { 0x6E9F, 25567 },
+ { 0x6E9D, 25572 },
+ { 0x062E, 25577 },
+ { 0x6EA6, 25580 },
+ { 0x6EA8, 25585 },
+ { 0x6EA7, 25590 },
+ { 0x6EA5, 25595 },
+ { 0x0645, 25600 },
+ { 0x0765, 25603 },
+ { 0x0766, 25609 },
+ { 0x6EE2, 25615 },
+ { 0x6EE4, 25620 },
+ { 0x6EE3, 25625 },
+ { 0x6EE1, 25630 },
+ { 0x0646, 25635 },
+ { 0x06B9, 25638 },
+ { 0x0767, 25644 },
+ { 0x06BC, 25651 },
+ { 0x0769, 25656 },
+ { 0x0768, 25662 },
+ { 0x06BD, 25668 },
+ { 0x6EE6, 25675 },
+ { 0x06BA, 25680 },
+ { 0x6B9F, 25684 },
+ { 0x6B9E, 25690 },
+ { 0x6EE8, 25696 },
+ { 0x6EE7, 25701 },
+ { 0x6EE5, 25706 },
+ { 0x0683, 25711 },
+ { 0x6B77, 25714 },
+ { 0x6B79, 25719 },
+ { 0x6B78, 25724 },
+ { 0x6B76, 25729 },
+ { 0x0691, 25734 },
+ { 0x6B8D, 25737 },
+ { 0x6B8C, 25742 },
+ { 0x0633, 25747 },
+ { 0x069A, 25750 },
+ { 0x076D, 25759 },
+ { 0x075C, 25767 },
+ { 0x0770, 25774 },
+ { 0x069B, 25785 },
+ { 0x069C, 25792 },
+ { 0x077D, 25803 },
+ { 0x077E, 25812 },
+ { 0x6EB2, 25818 },
+ { 0x6EB4, 25823 },
+ { 0x6EB3, 25828 },
+ { 0x6EB1, 25833 },
+ { 0x0630, 25838 },
+ { 0x6EAC, 25841 },
+ { 0x6EAB, 25846 },
+ { 0x062B, 25851 },
+ { 0x6E9A, 25854 },
+ { 0x6E9C, 25859 },
+ { 0x6E9B, 25864 },
+ { 0x6E99, 25869 },
+ { 0x0679, 25874 },
+ { 0x6B67, 25877 },
+ { 0x6B69, 25882 },
+ { 0x6B68, 25887 },
+ { 0x6B66, 25892 },
+ { 0x0632, 25897 },
+ { 0x6EB0, 25900 },
+ { 0x6EAF, 25905 },
+ { 0x0680, 25910 },
+ { 0x6B5B, 25913 },
+ { 0x6B5D, 25918 },
+ { 0x6B5C, 25923 },
+ { 0x6B5A, 25928 },
+ { 0x068C, 25933 },
+ { 0x6B85, 25936 },
+ { 0x6B84, 25941 },
+ { 0x06CC, 25946 },
+ { 0x063E, 25950 },
+ { 0x063F, 25958 },
+ { 0x0775, 25966 },
+ { 0x0777, 25976 },
+ { 0x0776, 25986 },
+ { 0x063D, 25996 },
+ { 0x6BFD, 26003 },
+ { 0x6BFF, 26009 },
+ { 0x6BFE, 26015 },
+ { 0x6BFC, 26021 },
+ { 0x063A, 26027 },
+ { 0x06FC, 26030 },
+ { 0x6ECE, 26036 },
+ { 0x6ED0, 26041 },
+ { 0x6ECF, 26046 },
+ { 0x6ECD, 26051 },
+ { 0x0621, 26056 },
+ { 0x6E80, 26059 },
+ { 0x06A9, 26064 },
+ { 0x0762, 26067 },
+ { 0x063B, 26073 },
+ { 0x0763, 26080 },
+ { 0x063C, 26087 },
+ { 0x0764, 26094 },
+ { 0x6B8F, 26103 },
+ { 0x6B91, 26108 },
+ { 0x6B90, 26113 },
+ { 0x6B8E, 26118 },
+ { 0x06B1, 26123 },
+ { 0x6B9B, 26126 },
+ { 0x6B9D, 26131 },
+ { 0x6B9C, 26136 },
+ { 0x6B9A, 26141 },
+ { 0x06A6, 26146 },
+ { 0x6B6F, 26149 },
+ { 0x6B71, 26154 },
+ { 0x6B70, 26159 },
+ { 0x6B6E, 26164 },
+ { 0x06BB, 26169 },
+ { 0x6BA1, 26172 },
+ { 0x6BA3, 26177 },
+ { 0x6BA2, 26182 },
+ { 0x6BA0, 26187 },
+ { 0x0634, 26192 },
+ { 0x06FA, 26195 },
+ { 0x6EB6, 26201 },
+ { 0x6EB8, 26206 },
+ { 0x6EB7, 26211 },
+ { 0x6EB5, 26216 },
+ { 0x06AA, 26221 },
+ { 0x0686, 26225 },
+ { 0x06BF, 26228 },
+ { 0x6B7B, 26234 },
+ { 0x6B7D, 26239 },
+ { 0x6B7C, 26244 },
+ { 0x6B7A, 26249 },
+ { 0x067F, 26254 },
+ { 0x6B63, 26257 },
+ { 0x6B65, 26262 },
+ { 0x6B64, 26267 },
+ { 0x6B62, 26272 },
+ { 0x068D, 26277 },
+ { 0x6B83, 26280 },
+ { 0x6B82, 26285 },
+ { 0x067A, 26290 },
+ { 0x6B5F, 26293 },
+ { 0x6B61, 26298 },
+ { 0x6B60, 26303 },
+ { 0x6B5E, 26308 },
+ { 0x6BE9, 26313 },
+ { 0x6BE8, 26322 },
+ { 0x066E, 26331 },
+ { 0x06A1, 26335 },
+ { 0x066F, 26339 },
+ { 0x06C5, 26343 },
+ { 0x6BE1, 26347 },
+ { 0x6BE0, 26353 },
+ { 0x06C9, 26359 },
+ { 0x6BE3, 26363 },
+ { 0x6BE2, 26369 },
+ { 0x0687, 26375 },
+ { 0x6B7F, 26378 },
+ { 0x6B81, 26383 },
+ { 0x6B80, 26388 },
+ { 0x6B7E, 26393 },
+ { 0x0670, 26398 },
+ { 0x0653, 26402 },
+ { 0x0600, 26405 },
+ { 0x060E, 26408 },
+ { 0x0651, 26412 },
+ { 0x6E7D, 26414 },
+ { 0x6E7C, 26418 },
+ { 0x061E, 26422 },
+ { 0x066B, 26427 },
+ { 0x066A, 26430 },
+ { 0x06EC, 26433 },
+ { 0x0640, 26440 },
+ { 0x6E71, 26442 },
+ { 0x064C, 26447 },
+ { 0x6E72, 26449 },
+ { 0x064B, 26453 },
+ { 0x6E70, 26455 },
+ { 0x0602, 26459 },
+ { 0x0657, 26462 },
+ { 0x064D, 26465 },
+ { 0x6E74, 26467 },
+ { 0x6D14, 26471 },
+ { 0x6CF8, 26478 },
+ { 0x6D13, 26485 },
+ { 0x6CF7, 26493 },
+ { 0x6D75, 26501 },
+ { 0x6DC4, 26510 },
+ { 0x6CBA, 26519 },
+ { 0x6C29, 26526 },
+ { 0x6DB6, 26533 },
+ { 0x6D78, 26542 },
+ { 0x6D76, 26552 },
+ { 0x6D77, 26561 },
+ { 0x6CBB, 26570 },
+ { 0x6C2A, 26577 },
+ { 0x6DC2, 26584 },
+ { 0x6C9D, 26593 },
+ { 0x6C06, 26600 },
+ { 0x6CE2, 26607 },
+ { 0x6CA0, 26614 },
+ { 0x6C6A, 26621 },
+ { 0x6C6F, 26628 },
+ { 0x6C0A, 26635 },
+ { 0x6C6E, 26642 },
+ { 0x6C09, 26650 },
+ { 0x6C9C, 26658 },
+ { 0x6C05, 26665 },
+ { 0x6D9E, 26672 },
+ { 0x6C9E, 26681 },
+ { 0x6C07, 26688 },
+ { 0x6C6C, 26695 },
+ { 0x6CE1, 26702 },
+ { 0x6C9F, 26709 },
+ { 0x6C08, 26716 },
+ { 0x6C6D, 26723 },
+ { 0x6C6B, 26730 },
+ { 0x6DAB, 26737 },
+ { 0x6D6E, 26746 },
+ { 0x6CB5, 26756 },
+ { 0x6C23, 26763 },
+ { 0x6D2C, 26770 },
+ { 0x6D10, 26777 },
+ { 0x6D24, 26784 },
+ { 0x6D08, 26791 },
+ { 0x6D23, 26798 },
+ { 0x6D07, 26806 },
+ { 0x6CB4, 26814 },
+ { 0x6C22, 26821 },
+ { 0x6D6F, 26828 },
+ { 0x6D70, 26837 },
+ { 0x6CB6, 26846 },
+ { 0x6C24, 26853 },
+ { 0x6CB7, 26860 },
+ { 0x6C25, 26867 },
+ { 0x6CBF, 26874 },
+ { 0x6C2E, 26881 },
+ { 0x6C7D, 26888 },
+ { 0x6C32, 26895 },
+ { 0x6C7C, 26902 },
+ { 0x6C31, 26910 },
+ { 0x6CBE, 26918 },
+ { 0x6C2D, 26925 },
+ { 0x6D7C, 26932 },
+ { 0x6D7D, 26941 },
+ { 0x6CC0, 26950 },
+ { 0x6C2F, 26957 },
+ { 0x6DC1, 26964 },
+ { 0x6CC1, 26973 },
+ { 0x6C30, 26980 },
+ { 0x6D1C, 26987 },
+ { 0x6D00, 26994 },
+ { 0x6D1B, 27001 },
+ { 0x6CFF, 27009 },
+ { 0x6DBF, 27017 },
+ { 0x6CA9, 27026 },
+ { 0x6C17, 27033 },
+ { 0x6D5A, 27040 },
+ { 0x6D5B, 27049 },
+ { 0x6CAA, 27059 },
+ { 0x6C18, 27066 },
+ { 0x6C54, 27073 },
+ { 0x6C53, 27080 },
+ { 0x6CD7, 27088 },
+ { 0x6C51, 27095 },
+ { 0x6D93, 27102 },
+ { 0x6D94, 27111 },
+ { 0x6CD8, 27120 },
+ { 0x6C52, 27127 },
+ { 0x6CD9, 27134 },
+ { 0x6CC5, 27142 },
+ { 0x6C39, 27149 },
+ { 0x6C81, 27156 },
+ { 0x6CEB, 27163 },
+ { 0x6CC7, 27170 },
+ { 0x6C3B, 27177 },
+ { 0x6C84, 27184 },
+ { 0x6C3E, 27191 },
+ { 0x6C80, 27198 },
+ { 0x6C83, 27205 },
+ { 0x6C3D, 27213 },
+ { 0x6C37, 27221 },
+ { 0x6CC4, 27228 },
+ { 0x6C38, 27235 },
+ { 0x6CC6, 27242 },
+ { 0x6C3A, 27249 },
+ { 0x6DB7, 27256 },
+ { 0x6DBB, 27265 },
+ { 0x6DC3, 27274 },
+ { 0x6C82, 27283 },
+ { 0x6CEC, 27290 },
+ { 0x6CC8, 27297 },
+ { 0x6C3C, 27304 },
+ { 0x6D81, 27311 },
+ { 0x6D82, 27320 },
+ { 0x6D80, 27330 },
+ { 0x6DB5, 27339 },
+ { 0x6CCA, 27348 },
+ { 0x6C40, 27355 },
+ { 0x6CCD, 27362 },
+ { 0x6C87, 27369 },
+ { 0x6C44, 27376 },
+ { 0x6EF8, 27383 },
+ { 0x6EF7, 27393 },
+ { 0x6EFA, 27403 },
+ { 0x6EF9, 27413 },
+ { 0x6EF6, 27423 },
+ { 0x6EF5, 27433 },
+ { 0x6EFC, 27443 },
+ { 0x6C86, 27450 },
+ { 0x6C43, 27458 },
+ { 0x6EFB, 27466 },
+ { 0x6DAC, 27473 },
+ { 0x6D84, 27482 },
+ { 0x6D83, 27491 },
+ { 0x6DBC, 27500 },
+ { 0x6DBA, 27509 },
+ { 0x6CC9, 27518 },
+ { 0x6C3F, 27525 },
+ { 0x6D85, 27532 },
+ { 0x6D86, 27541 },
+ { 0x6CCB, 27550 },
+ { 0x6C41, 27557 },
+ { 0x6D87, 27564 },
+ { 0x6D88, 27573 },
+ { 0x6DAD, 27582 },
+ { 0x6C85, 27591 },
+ { 0x6CED, 27598 },
+ { 0x6CCC, 27605 },
+ { 0x6C42, 27612 },
+ { 0x6CC2, 27619 },
+ { 0x6C33, 27626 },
+ { 0x6C7F, 27633 },
+ { 0x6C36, 27640 },
+ { 0x6C7E, 27647 },
+ { 0x6C35, 27655 },
+ { 0x6D7E, 27663 },
+ { 0x6DB4, 27672 },
+ { 0x6DB2, 27681 },
+ { 0x6D7F, 27690 },
+ { 0x6CC3, 27699 },
+ { 0x6C34, 27706 },
+ { 0x6C5C, 27713 },
+ { 0x6D64, 27721 },
+ { 0x6D65, 27730 },
+ { 0x6DA9, 27739 },
+ { 0x6CB1, 27748 },
+ { 0x6C20, 27755 },
+ { 0x6D2B, 27762 },
+ { 0x6D0F, 27769 },
+ { 0x6D22, 27776 },
+ { 0x6D06, 27783 },
+ { 0x6D21, 27790 },
+ { 0x6D05, 27798 },
+ { 0x6CB2, 27806 },
+ { 0x6D66, 27813 },
+ { 0x6DC5, 27822 },
+ { 0x6CB3, 27831 },
+ { 0x6C21, 27838 },
+ { 0x6CB8, 27845 },
+ { 0x6C26, 27852 },
+ { 0x6D12, 27859 },
+ { 0x6CF6, 27866 },
+ { 0x6D11, 27873 },
+ { 0x6CF5, 27881 },
+ { 0x6D71, 27889 },
+ { 0x6D72, 27898 },
+ { 0x6D74, 27907 },
+ { 0x6D73, 27916 },
+ { 0x6D3A, 27925 },
+ { 0x6D33, 27932 },
+ { 0x6C27, 27939 },
+ { 0x6D51, 27946 },
+ { 0x6D52, 27955 },
+ { 0x6D53, 27964 },
+ { 0x6CA2, 27973 },
+ { 0x6C0C, 27980 },
+ { 0x6CE4, 27987 },
+ { 0x6CA5, 27994 },
+ { 0x6C70, 28001 },
+ { 0x6C75, 28008 },
+ { 0x6C10, 28015 },
+ { 0x6C74, 28022 },
+ { 0x6C0F, 28030 },
+ { 0x6D9F, 28038 },
+ { 0x6DA0, 28047 },
+ { 0x6D50, 28057 },
+ { 0x6CA1, 28066 },
+ { 0x6C0B, 28073 },
+ { 0x6DA1, 28080 },
+ { 0x6DA2, 28089 },
+ { 0x6D54, 28099 },
+ { 0x6CA3, 28108 },
+ { 0x6C0D, 28115 },
+ { 0x6D56, 28122 },
+ { 0x6DA3, 28131 },
+ { 0x6DA4, 28140 },
+ { 0x6D55, 28150 },
+ { 0x6D57, 28159 },
+ { 0x6C72, 28168 },
+ { 0x6CE3, 28175 },
+ { 0x6CA4, 28182 },
+ { 0x6C0E, 28189 },
+ { 0x6C73, 28196 },
+ { 0x6C71, 28203 },
+ { 0x6DAE, 28210 },
+ { 0x6CDB, 28219 },
+ { 0x6C56, 28226 },
+ { 0x6CF1, 28233 },
+ { 0x6CDE, 28240 },
+ { 0x6C91, 28247 },
+ { 0x6C96, 28254 },
+ { 0x6C5A, 28261 },
+ { 0x6C95, 28268 },
+ { 0x6C59, 28276 },
+ { 0x6DAF, 28284 },
+ { 0x6CDA, 28293 },
+ { 0x6C55, 28300 },
+ { 0x6CDC, 28307 },
+ { 0x6C57, 28314 },
+ { 0x6DB0, 28321 },
+ { 0x6D9C, 28330 },
+ { 0x6D9D, 28339 },
+ { 0x6C93, 28348 },
+ { 0x6CF0, 28355 },
+ { 0x6CDD, 28362 },
+ { 0x6C58, 28369 },
+ { 0x6C94, 28376 },
+ { 0x6C92, 28383 },
+ { 0x6BF7, 28390 },
+ { 0x6BF8, 28400 },
+ { 0x6BF6, 28410 },
+ { 0x6BF1, 28420 },
+ { 0x6BF0, 28430 },
+ { 0x6BED, 28440 },
+ { 0x6BEC, 28450 },
+ { 0x6BF3, 28460 },
+ { 0x6BF2, 28470 },
+ { 0x6BF5, 28480 },
+ { 0x6BF4, 28490 },
+ { 0x6C98, 28500 },
+ { 0x6C01, 28510 },
+ { 0x6CE0, 28520 },
+ { 0x6C9B, 28530 },
+ { 0x6C64, 28540 },
+ { 0x6BEF, 28550 },
+ { 0x6BEE, 28560 },
+ { 0x6C69, 28570 },
+ { 0x6C04, 28580 },
+ { 0x6BEB, 28590 },
+ { 0x6C68, 28600 },
+ { 0x6C03, 28611 },
+ { 0x6BEA, 28622 },
+ { 0x6C97, 28632 },
+ { 0x6C00, 28642 },
+ { 0x6C99, 28652 },
+ { 0x6C66, 28662 },
+ { 0x6CDF, 28672 },
+ { 0x6C9A, 28682 },
+ { 0x6C02, 28692 },
+ { 0x6C67, 28702 },
+ { 0x6C65, 28712 },
+ { 0x6D3B, 28722 },
+ { 0x6CB9, 28729 },
+ { 0x6C28, 28736 },
+ { 0x6D3C, 28743 },
+ { 0x6D3D, 28750 },
+ { 0x6C90, 28757 },
+ { 0x6C5D, 28766 },
+ { 0x6DBE, 28775 },
+ { 0x6DA6, 28784 },
+ { 0x6CA7, 28794 },
+ { 0x6C15, 28801 },
+ { 0x6D1E, 28808 },
+ { 0x6D02, 28815 },
+ { 0x6D1D, 28822 },
+ { 0x6D01, 28830 },
+ { 0x6D58, 28838 },
+ { 0x6D59, 28847 },
+ { 0x6DA5, 28856 },
+ { 0x6DA7, 28865 },
+ { 0x6CA8, 28875 },
+ { 0x6C16, 28882 },
+ { 0x6C1A, 28889 },
+ { 0x6D20, 28896 },
+ { 0x6D04, 28903 },
+ { 0x6D1F, 28910 },
+ { 0x6D03, 28918 },
+ { 0x6CAB, 28926 },
+ { 0x6C19, 28933 },
+ { 0x6CAC, 28940 },
+ { 0x6C1B, 28947 },
+ { 0x6D8B, 28954 },
+ { 0x6D89, 28963 },
+ { 0x6D8A, 28972 },
+ { 0x6CCF, 28981 },
+ { 0x6C46, 28988 },
+ { 0x6C4A, 28995 },
+ { 0x6C88, 29002 },
+ { 0x6C49, 29009 },
+ { 0x6D8C, 29017 },
+ { 0x6DC0, 29026 },
+ { 0x6D92, 29035 },
+ { 0x6D8D, 29044 },
+ { 0x6CCE, 29053 },
+ { 0x6C45, 29060 },
+ { 0x6DB9, 29067 },
+ { 0x6D8E, 29076 },
+ { 0x6D8F, 29085 },
+ { 0x6CD0, 29094 },
+ { 0x6C47, 29101 },
+ { 0x6DB1, 29108 },
+ { 0x6C89, 29117 },
+ { 0x6CD1, 29124 },
+ { 0x6C48, 29131 },
+ { 0x6DB3, 29138 },
+ { 0x6D96, 29147 },
+ { 0x6D95, 29157 },
+ { 0x6CD3, 29166 },
+ { 0x6C4C, 29173 },
+ { 0x6CEF, 29180 },
+ { 0x6CD6, 29187 },
+ { 0x6C8A, 29194 },
+ { 0x6C8F, 29201 },
+ { 0x6C50, 29208 },
+ { 0x6C8E, 29215 },
+ { 0x6C4F, 29223 },
+ { 0x6DBD, 29231 },
+ { 0x6DB8, 29240 },
+ { 0x6DC7, 29249 },
+ { 0x6D99, 29258 },
+ { 0x6D97, 29268 },
+ { 0x6D98, 29277 },
+ { 0x6CD2, 29286 },
+ { 0x6C4B, 29293 },
+ { 0x6CD4, 29300 },
+ { 0x6C4D, 29307 },
+ { 0x6D9A, 29314 },
+ { 0x6D9B, 29323 },
+ { 0x6C8C, 29333 },
+ { 0x6CEE, 29340 },
+ { 0x6CD5, 29347 },
+ { 0x6C4E, 29354 },
+ { 0x6C8D, 29361 },
+ { 0x6C8B, 29368 },
+ { 0x6DF1, 29375 },
+ { 0x6D5C, 29385 },
+ { 0x6D35, 29394 },
+ { 0x6CAE, 29401 },
+ { 0x6C1D, 29408 },
+ { 0x6CE8, 29415 },
+ { 0x6D31, 29422 },
+ { 0x6D2A, 29429 },
+ { 0x6D0E, 29436 },
+ { 0x6D18, 29443 },
+ { 0x6CFC, 29450 },
+ { 0x6D17, 29457 },
+ { 0x6CFB, 29465 },
+ { 0x6D5D, 29473 },
+ { 0x6D5E, 29482 },
+ { 0x6D34, 29492 },
+ { 0x6CAD, 29499 },
+ { 0x6C1C, 29506 },
+ { 0x6DC6, 29513 },
+ { 0x6DA8, 29522 },
+ { 0x6D36, 29532 },
+ { 0x6CAF, 29539 },
+ { 0x6C1E, 29546 },
+ { 0x6D5F, 29553 },
+ { 0x6D60, 29562 },
+ { 0x6D61, 29571 },
+ { 0x6D62, 29580 },
+ { 0x6D63, 29589 },
+ { 0x6CE7, 29598 },
+ { 0x6CB0, 29605 },
+ { 0x6C1F, 29612 },
+ { 0x6C5B, 29619 },
+ { 0x6CE6, 29627 },
+ { 0x6C76, 29634 },
+ { 0x6C7B, 29641 },
+ { 0x6C14, 29648 },
+ { 0x6C7A, 29655 },
+ { 0x6C13, 29663 },
+ { 0x6C11, 29671 },
+ { 0x6C78, 29678 },
+ { 0x6CE5, 29685 },
+ { 0x6CA6, 29692 },
+ { 0x6C12, 29699 },
+ { 0x6C79, 29706 },
+ { 0x6C77, 29713 },
+ { 0x6DF3, 29720 },
+ { 0x6DF2, 29725 },
+ { 0x6D16, 29730 },
+ { 0x6CFA, 29737 },
+ { 0x6D15, 29744 },
+ { 0x6CF9, 29752 },
+ { 0x6CBC, 29760 },
+ { 0x6C2B, 29767 },
+ { 0x6D7A, 29774 },
+ { 0x6D7B, 29783 },
+ { 0x6D79, 29793 },
+ { 0x6CBD, 29802 },
+ { 0x6C2C, 29809 },
+ { 0x6DF5, 29816 },
+ { 0x6DF0, 29821 },
+ { 0x6DF9, 29831 },
+ { 0x6DAA, 29836 },
+ { 0x6D67, 29845 },
+ { 0x6D68, 29854 },
+ { 0x6D26, 29863 },
+ { 0x6D38, 29870 },
+ { 0x6D2E, 29877 },
+ { 0x6D0A, 29884 },
+ { 0x6CEA, 29891 },
+ { 0x6D32, 29898 },
+ { 0x6D29, 29905 },
+ { 0x6D0D, 29912 },
+ { 0x6D1A, 29919 },
+ { 0x6CFE, 29926 },
+ { 0x6D19, 29933 },
+ { 0x6CFD, 29941 },
+ { 0x6D69, 29949 },
+ { 0x6D25, 29958 },
+ { 0x6D37, 29965 },
+ { 0x6D2D, 29972 },
+ { 0x6D09, 29979 },
+ { 0x6D27, 29986 },
+ { 0x6D39, 29993 },
+ { 0x6D2F, 30000 },
+ { 0x6D0B, 30007 },
+ { 0x6D6A, 30014 },
+ { 0x6D6B, 30023 },
+ { 0x6D6C, 30032 },
+ { 0x6D6D, 30041 },
+ { 0x6D28, 30050 },
+ { 0x6CE9, 30057 },
+ { 0x6D30, 30064 },
+ { 0x6D0C, 30071 },
+ { 0x6DF7, 30078 },
+ { 0x6DF6, 30083 },
+ { 0x6CF3, 30088 },
+ { 0x6C61, 30095 },
+ { 0x6CF2, 30102 },
+ { 0x6C60, 30109 },
+ { 0x6CF4, 30116 },
+ { 0x6C62, 30123 },
+ { 0x6C5E, 30130 },
+ { 0x6C5F, 30137 },
+ { 0x6C63, 30144 },
+ { 0x6BFA, 30152 },
+ { 0x6BFB, 30165 },
+ { 0x6BF9, 30178 },
+ { 0x6DF4, 30191 },
+ { 0x6DF8, 30196 },
+ { 0x6DFD, 30201 },
+ { 0x6DFA, 30206 },
+ { 0x6DFB, 30211 },
+ { 0x061F, 30214 },
+ { 0x065D, 30217 },
+ { 0x0659, 30220 },
+ { 0x061B, 30222 },
+ { 0x0656, 30224 },
+ { 0x066C, 30227 },
+ { 0x2717, 30230 },
+ { 0x2610, 30232 },
+ { 0x2612, 30234 },
+ { 0x2611, 30238 },
+ { 0x266B, 30242 },
+ { 0x266C, 30245 },
+ { 0x293B, 30248 },
+ { 0x2321, 30252 },
+ { 0x230D, 30255 },
+ { 0x2E24, 30258 },
+ { 0x231E, 30262 },
+ { 0x23DF, 30265 },
+ { 0x230C, 30268 },
+ { 0x2E25, 30271 },
+ { 0x231F, 30275 },
+ { 0x23B5, 30278 },
+ { 0x23B6, 30281 },
+ { 0x23E1, 30288 },
+ { 0x23DD, 30292 },
+ { 0x22C8, 30294 },
+ { 0x29D1, 30295 },
+ { 0x29D2, 30300 },
+ { 0x00A6, 30305 },
+ { 0x238B, 30307 },
+ { 0x2022, 30312 },
+ { 0x2219, 30313 },
+ { 0xC07F, 30315 },
+ { 0x264B, 30317 },
+ { 0x72A0, 30318 },
+ { 0x72A9, 30321 },
+ { 0x72A2, 30324 },
+ { 0x72BA, 30327 },
+ { 0x72C0, 30330 },
+ { 0x72B9, 30333 },
+ { 0x72BC, 30336 },
+ { 0x72A3, 30339 },
+ { 0x72AA, 30342 },
+ { 0x72B5, 30345 },
+ { 0x72AB, 30348 },
+ { 0x72B7, 30351 },
+ { 0x72A8, 30354 },
+ { 0x72A5, 30357 },
+ { 0x72B0, 30360 },
+ { 0x72AD, 30363 },
+ { 0x72B2, 30366 },
+ { 0x72B4, 30369 },
+ { 0x72A7, 30372 },
+ { 0x72AC, 30375 },
+ { 0x72CF, 30378 },
+ { 0x72C1, 30381 },
+ { 0x72C5, 30384 },
+ { 0x72BD, 30387 },
+ { 0x72A6, 30390 },
+ { 0x72CA, 30393 },
+ { 0x72BE, 30396 },
+ { 0x72C4, 30399 },
+ { 0x72B3, 30402 },
+ { 0x72A1, 30405 },
+ { 0x72C9, 30408 },
+ { 0x72AE, 30411 },
+ { 0x72B8, 30414 },
+ { 0x72C2, 30417 },
+ { 0x72C7, 30420 },
+ { 0x72BF, 30423 },
+ { 0x72CE, 30426 },
+ { 0x72CB, 30429 },
+ { 0x72CC, 30432 },
+ { 0x72CD, 30435 },
+ { 0x72AF, 30438 },
+ { 0x72C3, 30441 },
+ { 0x72B6, 30444 },
+ { 0x72A4, 30447 },
+ { 0x72B1, 30450 },
+ { 0x72C6, 30453 },
+ { 0x72C8, 30456 },
+ { 0x72D0, 30459 },
+ { 0x72BB, 30462 },
+ { 0x2104, 30465 },
+ { 0x26B7, 30468 },
+ { 0x25D5, 30469 },
+ { 0x29C3, 30477 },
+ { 0x25D0, 30485 },
+ { 0x25D2, 30490 },
+ { 0x25D1, 30495 },
+ { 0x29C2, 30500 },
+ { 0x25D3, 30507 },
+ { 0x25D4, 30512 },
+ { 0x25CD, 30518 },
+ { 0x29B5, 30522 },
+ { 0x29BB, 30526 },
+ { 0x29BA, 30530 },
+ { 0x2A4C, 30542 },
+ { 0x2A50, 30546 },
+ { 0x2ACF, 30553 },
+ { 0x2AD1, 30555 },
+ { 0x2AD0, 30560 },
+ { 0x2AD2, 30562 },
+ { 0x2A4D, 30567 },
+ { 0x26B0, 30571 },
+ { 0x2CF9, 30572 },
+ { 0x2CFC, 30577 },
+ { 0x2CFA, 30582 },
+ { 0x2CFB, 30588 },
+ { 0x2CFE, 30594 },
+ { 0x2C9F, 30597 },
+ { 0x2CAB, 30601 },
+ { 0x2C99, 30605 },
+ { 0x2C9B, 30609 },
+ { 0x2CA1, 30613 },
+ { 0x2CA3, 30617 },
+ { 0x2CA9, 30621 },
+ { 0x03EF, 30625 },
+ { 0x2C89, 30629 },
+ { 0x03E5, 30633 },
+ { 0x2CAD, 30637 },
+ { 0x2C9D, 30641 },
+ { 0x2CCF, 30645 },
+ { 0x2CB5, 30651 },
+ { 0x2CD9, 30657 },
+ { 0x2CC7, 30663 },
+ { 0x2CD5, 30669 },
+ { 0x2CD3, 30675 },
+ { 0x2CBF, 30681 },
+ { 0x2CCD, 30687 },
+ { 0x2CC5, 30693 },
+ { 0x2CDB, 30699 },
+ { 0x2CD7, 30705 },
+ { 0x2CDF, 30711 },
+ { 0x2CE1, 30717 },
+ { 0x2CE3, 30723 },
+ { 0x2CDD, 30729 },
+ { 0x2CB1, 30735 },
+ { 0x2CAF, 30739 },
+ { 0x2C8B, 30743 },
+ { 0x2CA7, 30747 },
+ { 0x2C81, 30751 },
+ { 0x2C8F, 30755 },
+ { 0x03E9, 30759 },
+ { 0x2C95, 30763 },
+ { 0x03E7, 30767 },
+ { 0x03E3, 30771 },
+ { 0x2CA5, 30775 },
+ { 0x2C83, 30779 },
+ { 0x2C8D, 30783 },
+ { 0x2C87, 30787 },
+ { 0x2C85, 30791 },
+ { 0x2C93, 30795 },
+ { 0x2C97, 30799 },
+ { 0x2CC1, 30803 },
+ { 0x03ED, 30807 },
+ { 0x03EB, 30811 },
+ { 0x2C91, 30815 },
+ { 0x2CC3, 30819 },
+ { 0x2CC9, 30824 },
+ { 0x2CD1, 30829 },
+ { 0x2CBB, 30834 },
+ { 0x2CB3, 30839 },
+ { 0x2CCB, 30844 },
+ { 0x2CB9, 30849 },
+ { 0x2CBD, 30854 },
+ { 0x2CB7, 30859 },
+ { 0x2CE5, 30864 },
+ { 0x2CE6, 30868 },
+ { 0x2CE4, 30872 },
+ { 0x2CE9, 30875 },
+ { 0x2CE8, 30879 },
+ { 0x2CEA, 30883 },
+ { 0x2CE7, 30887 },
+ { 0x2C9E, 30890 },
+ { 0x2CAA, 30894 },
+ { 0x2C98, 30898 },
+ { 0x2C9A, 30902 },
+ { 0x2CA0, 30906 },
+ { 0x2CA2, 30910 },
+ { 0x2CA8, 30914 },
+ { 0x03EE, 30918 },
+ { 0x2C88, 30922 },
+ { 0x03E4, 30926 },
+ { 0x2CAC, 30930 },
+ { 0x2C9C, 30934 },
+ { 0x2CCE, 30938 },
+ { 0x2CB4, 30944 },
+ { 0x2CD8, 30950 },
+ { 0x2CC6, 30956 },
+ { 0x2CD4, 30962 },
+ { 0x2CD2, 30968 },
+ { 0x2CBE, 30974 },
+ { 0x2CCC, 30980 },
+ { 0x2CC4, 30986 },
+ { 0x2CDA, 30992 },
+ { 0x2CD6, 30998 },
+ { 0x2CDE, 31004 },
+ { 0x2CE0, 31010 },
+ { 0x2CE2, 31016 },
+ { 0x2CDC, 31022 },
+ { 0x2CB0, 31028 },
+ { 0x2CAE, 31032 },
+ { 0x2C8A, 31036 },
+ { 0x2CA6, 31040 },
+ { 0x2C80, 31044 },
+ { 0x2C8E, 31048 },
+ { 0x03E8, 31052 },
+ { 0x2C94, 31056 },
+ { 0x03E6, 31060 },
+ { 0x03E2, 31064 },
+ { 0x2CA4, 31068 },
+ { 0x2C82, 31072 },
+ { 0x2C8C, 31076 },
+ { 0x2C86, 31080 },
+ { 0x2C84, 31084 },
+ { 0x2C92, 31088 },
+ { 0x2C96, 31092 },
+ { 0x2CC0, 31096 },
+ { 0x03EC, 31100 },
+ { 0x03EA, 31104 },
+ { 0x2C90, 31108 },
+ { 0x2CC2, 31112 },
+ { 0x2CC8, 31117 },
+ { 0x2CD0, 31122 },
+ { 0x2CBA, 31127 },
+ { 0x2CB2, 31132 },
+ { 0x2CCA, 31137 },
+ { 0x2CB8, 31142 },
+ { 0x2CBC, 31147 },
+ { 0x2CB6, 31152 },
+ { 0x2CFD, 31157 },
+ { 0x2CFF, 31161 },
+ { 0x2761, 31164 },
+ { 0x2020, 31169 },
+ { 0x6E4D, 31170 },
+ { 0x6E49, 31173 },
+ { 0x279F, 31175 },
+ { 0x00B0, 31179 },
+ { 0x2103, 31181 },
+ { 0x2109, 31183 },
+ { 0x9305, 31185 },
+ { 0x9302, 31188 },
+ { 0x268D, 31192 },
+ { 0x268E, 31196 },
+ { 0x9304, 31200 },
+ { 0x9303, 31204 },
+ { 0x268F, 31208 },
+ { 0x268C, 31212 },
+ { 0x9301, 31216 },
+ { 0x2393, 31220 },
+ { 0x0024, 31225 },
+ { 0xA062, 31227 },
+ { 0xA030, 31231 },
+ { 0xA063, 31235 },
+ { 0xA064, 31238 },
+ { 0xA065, 31241 },
+ { 0xA066, 31244 },
+ { 0xA067, 31247 },
+ { 0xA068, 31250 },
+ { 0xA069, 31253 },
+ { 0xA06A, 31256 },
+ { 0xA06B, 31259 },
+ { 0xA06C, 31262 },
+ { 0xA06D, 31265 },
+ { 0xA06E, 31268 },
+ { 0xA06F, 31271 },
+ { 0xA070, 31274 },
+ { 0xA071, 31277 },
+ { 0xA072, 31280 },
+ { 0xA073, 31283 },
+ { 0xA074, 31286 },
+ { 0xA075, 31289 },
+ { 0xA076, 31292 },
+ { 0xA077, 31295 },
+ { 0xA078, 31298 },
+ { 0xA079, 31301 },
+ { 0xA07A, 31304 },
+ { 0xA07B, 31307 },
+ { 0xA07C, 31310 },
+ { 0xA07D, 31313 },
+ { 0xA07E, 31316 },
+ { 0xA07F, 31319 },
+ { 0xA080, 31322 },
+ { 0xA081, 31325 },
+ { 0xA082, 31328 },
+ { 0xA083, 31331 },
+ { 0xA084, 31334 },
+ { 0xA085, 31337 },
+ { 0xA086, 31340 },
+ { 0xA087, 31343 },
+ { 0xA088, 31346 },
+ { 0xA089, 31349 },
+ { 0xA08A, 31352 },
+ { 0xA08B, 31355 },
+ { 0xA08C, 31358 },
+ { 0xA08D, 31361 },
+ { 0xA08E, 31364 },
+ { 0xA08F, 31367 },
+ { 0xA090, 31370 },
+ { 0xA091, 31373 },
+ { 0xA092, 31376 },
+ { 0xA093, 31379 },
+ { 0xA031, 31382 },
+ { 0xA032, 31385 },
+ { 0xA033, 31388 },
+ { 0xA034, 31391 },
+ { 0xA035, 31394 },
+ { 0xA036, 31397 },
+ { 0xA037, 31400 },
+ { 0xA038, 31403 },
+ { 0xA039, 31406 },
+ { 0xA03A, 31409 },
+ { 0xA03B, 31412 },
+ { 0xA03C, 31415 },
+ { 0xA03D, 31418 },
+ { 0xA03E, 31421 },
+ { 0xA03F, 31424 },
+ { 0xA040, 31427 },
+ { 0xA041, 31430 },
+ { 0xA042, 31433 },
+ { 0xA043, 31436 },
+ { 0xA044, 31439 },
+ { 0xA045, 31442 },
+ { 0xA046, 31445 },
+ { 0xA047, 31448 },
+ { 0xA048, 31451 },
+ { 0xA049, 31454 },
+ { 0xA04A, 31457 },
+ { 0xA04B, 31460 },
+ { 0xA04C, 31463 },
+ { 0xA04D, 31466 },
+ { 0xA04E, 31469 },
+ { 0xA04F, 31472 },
+ { 0xA050, 31475 },
+ { 0xA051, 31478 },
+ { 0xA052, 31481 },
+ { 0xA053, 31484 },
+ { 0xA054, 31487 },
+ { 0xA055, 31490 },
+ { 0xA056, 31493 },
+ { 0xA057, 31496 },
+ { 0xA058, 31499 },
+ { 0xA059, 31502 },
+ { 0xA05A, 31505 },
+ { 0xA05B, 31508 },
+ { 0xA05C, 31511 },
+ { 0xA05D, 31514 },
+ { 0xA05E, 31517 },
+ { 0xA05F, 31520 },
+ { 0xA060, 31523 },
+ { 0xA061, 31526 },
+ { 0x205C, 31529 },
+ { 0x2999, 31531 },
+ { 0x25CC, 31533 },
+ { 0x2E13, 31535 },
+ { 0x2B1A, 31537 },
+ { 0x2E08, 31539 },
+ { 0x2E16, 31542 },
+ { 0x2AEB, 31545 },
+ { 0x2017, 31548 },
+ { 0x2AEA, 31551 },
+ { 0x2995, 31554 },
+ { 0x29FA, 31559 },
+ { 0x6E4C, 31561 },
+ { 0x02DD, 31564 },
+ { 0x2A74, 31567 },
+ { 0x201E, 31570 },
+ { 0x2033, 31574 },
+ { 0x301E, 31576 },
+ { 0x2996, 31580 },
+ { 0x22D3, 31585 },
+ { 0x2021, 31587 },
+ { 0x2AA1, 31589 },
+ { 0x2AA3, 31592 },
+ { 0x2AA2, 31597 },
+ { 0x2A4F, 31600 },
+ { 0x2A4E, 31603 },
+ { 0x2AEC, 31606 },
+ { 0x22D0, 31610 },
+ { 0x24F5, 31612 },
+ { 0x24FA, 31616 },
+ { 0x24F6, 31620 },
+ { 0x24F9, 31624 },
+ { 0x24F8, 31628 },
+ { 0x24FD, 31632 },
+ { 0x24FC, 31636 },
+ { 0x24FB, 31640 },
+ { 0x24F7, 31644 },
+ { 0x24FE, 31648 },
+ { 0x2A54, 31652 },
+ { 0x2A53, 31655 },
+ { 0x2E17, 31658 },
+ { 0x2AFD, 31661 },
+ { 0x222C, 31664 },
+ { 0x2ABB, 31666 },
+ { 0x2047, 31668 },
+ { 0x2ABC, 31671 },
+ { 0x22D1, 31673 },
+ { 0x2AE3, 31675 },
+ { 0x2AE5, 31680 },
+ { 0x22AB, 31686 },
+ { 0x2016, 31692 },
+ { 0x203C, 31695 },
+ { 0x22D2, 31698 },
+ { 0x201F, 31700 },
+ { 0x266A, 31704 },
+ { 0x003D, 31706 },
+ { 0x29E3, 31708 },
+ { 0x29E4, 31713 },
+ { 0x2A66, 31721 },
+ { 0x2A77, 31726 },
+ { 0x2AAE, 31736 },
+ { 0x2A71, 31741 },
+ { 0x2A73, 31746 },
+ { 0x2B40, 31751 },
+ { 0x2971, 31756 },
+ { 0x2A6E, 31761 },
+ { 0x2255, 31764 },
+ { 0x2239, 31766 },
+ { 0x2640, 31767 },
+ { 0x2012, 31769 },
+ { 0x2007, 31771 },
+ { 0x2A0D, 31773 },
+ { 0x2766, 31776 },
+ { 0x2698, 31778 },
+ { 0x2055, 31779 },
+ { 0x22A9, 31782 },
+ { 0x2E10, 31783 },
+ { 0x221C, 31785 },
+ { 0x20A3, 31787 },
+ { 0x264A, 31790 },
+ { 0x20B0, 31791 },
+ { 0x29E6, 31794 },
+ { 0x7339, 31796 },
+ { 0x733E, 31799 },
+ { 0x7330, 31802 },
+ { 0x7333, 31805 },
+ { 0x7332, 31808 },
+ { 0x7337, 31811 },
+ { 0x7336, 31814 },
+ { 0x734A, 31817 },
+ { 0x733F, 31821 },
+ { 0x7346, 31824 },
+ { 0x7348, 31827 },
+ { 0x7347, 31830 },
+ { 0x733A, 31833 },
+ { 0x733B, 31836 },
+ { 0x733C, 31839 },
+ { 0x7349, 31842 },
+ { 0x7342, 31845 },
+ { 0x7343, 31848 },
+ { 0x7344, 31851 },
+ { 0x7345, 31854 },
+ { 0x7334, 31857 },
+ { 0x733D, 31860 },
+ { 0x7341, 31863 },
+ { 0x7338, 31866 },
+ { 0x7331, 31869 },
+ { 0x7340, 31872 },
+ { 0x7335, 31875 },
+ { 0x2692, 31878 },
+ { 0x262D, 31881 },
+ { 0x302F, 31884 },
+ { 0x3164, 31889 },
+ { 0x314F, 31891 },
+ { 0x3154, 31894 },
+ { 0x3163, 31897 },
+ { 0x3157, 31900 },
+ { 0x315C, 31903 },
+ { 0x3150, 31906 },
+ { 0x3153, 31909 },
+ { 0x3161, 31912 },
+ { 0x315A, 31915 },
+ { 0x3158, 31918 },
+ { 0x315E, 31921 },
+ { 0x315F, 31924 },
+ { 0x3151, 31927 },
+ { 0x3156, 31930 },
+ { 0x3162, 31933 },
+ { 0x315B, 31936 },
+ { 0x3160, 31939 },
+ { 0x3159, 31942 },
+ { 0x315D, 31945 },
+ { 0x3152, 31948 },
+ { 0x3155, 31951 },
+ { 0x3145, 31954 },
+ { 0x3189, 31957 },
+ { 0x318C, 31960 },
+ { 0x318D, 31963 },
+ { 0x3148, 31966 },
+ { 0x314E, 31969 },
+ { 0x3147, 31972 },
+ { 0x3141, 31975 },
+ { 0x3134, 31978 },
+ { 0x3142, 31981 },
+ { 0x3139, 31984 },
+ { 0x3187, 31987 },
+ { 0x318B, 31990 },
+ { 0x318E, 31993 },
+ { 0x3131, 31996 },
+ { 0x3137, 31999 },
+ { 0x3188, 32002 },
+ { 0x318A, 32005 },
+ { 0x314A, 32008 },
+ { 0x314B, 32011 },
+ { 0x317F, 32014 },
+ { 0x314D, 32017 },
+ { 0x314C, 32020 },
+ { 0x3181, 32023 },
+ { 0x3146, 32026 },
+ { 0x316F, 32029 },
+ { 0x3167, 32032 },
+ { 0x3144, 32035 },
+ { 0x313D, 32038 },
+ { 0x317E, 32041 },
+ { 0x317B, 32044 },
+ { 0x317D, 32047 },
+ { 0x3149, 32050 },
+ { 0x3185, 32053 },
+ { 0x3180, 32056 },
+ { 0x3165, 32059 },
+ { 0x3143, 32062 },
+ { 0x3133, 32065 },
+ { 0x316E, 32068 },
+ { 0x3135, 32071 },
+ { 0x3136, 32074 },
+ { 0x3176, 32077 },
+ { 0x3140, 32080 },
+ { 0x313B, 32083 },
+ { 0x313C, 32086 },
+ { 0x317A, 32089 },
+ { 0x317C, 32092 },
+ { 0x3132, 32095 },
+ { 0x3138, 32098 },
+ { 0x3186, 32101 },
+ { 0x3166, 32104 },
+ { 0x3172, 32107 },
+ { 0x3173, 32110 },
+ { 0x313A, 32113 },
+ { 0x316A, 32116 },
+ { 0x3171, 32119 },
+ { 0x3178, 32122 },
+ { 0x3170, 32125 },
+ { 0x3168, 32128 },
+ { 0x3177, 32131 },
+ { 0x316C, 32134 },
+ { 0x313F, 32137 },
+ { 0x313E, 32140 },
+ { 0x3182, 32143 },
+ { 0x3184, 32146 },
+ { 0x316B, 32149 },
+ { 0x3183, 32152 },
+ { 0x3174, 32155 },
+ { 0x3175, 32158 },
+ { 0x3169, 32161 },
+ { 0x316D, 32164 },
+ { 0x3179, 32167 },
+ { 0x302E, 32170 },
+ { 0x1109, 32175 },
+ { 0x110C, 32178 },
+ { 0x1112, 32181 },
+ { 0x110B, 32184 },
+ { 0x1106, 32187 },
+ { 0x1102, 32190 },
+ { 0x1107, 32193 },
+ { 0x1105, 32196 },
+ { 0x115F, 32199 },
+ { 0x1100, 32202 },
+ { 0x1103, 32205 },
+ { 0x110E, 32208 },
+ { 0x110F, 32211 },
+ { 0x1140, 32214 },
+ { 0x1111, 32217 },
+ { 0x1110, 32220 },
+ { 0x114C, 32223 },
+ { 0x110A, 32226 },
+ { 0x1145, 32229 },
+ { 0x1121, 32232 },
+ { 0x1136, 32235 },
+ { 0x113B, 32238 },
+ { 0x1135, 32241 },
+ { 0x1131, 32244 },
+ { 0x112E, 32247 },
+ { 0x1132, 32250 },
+ { 0x1130, 32253 },
+ { 0x110D, 32256 },
+ { 0x1158, 32259 },
+ { 0x1147, 32262 },
+ { 0x1114, 32265 },
+ { 0x1108, 32268 },
+ { 0x1119, 32271 },
+ { 0x114D, 32274 },
+ { 0x1148, 32277 },
+ { 0x1143, 32280 },
+ { 0x1144, 32283 },
+ { 0x111C, 32286 },
+ { 0x1116, 32289 },
+ { 0x1127, 32292 },
+ { 0x111F, 32295 },
+ { 0x111A, 32298 },
+ { 0x1118, 32301 },
+ { 0x112D, 32304 },
+ { 0x112F, 32307 },
+ { 0x1101, 32310 },
+ { 0x1104, 32313 },
+ { 0x1159, 32316 },
+ { 0x113C, 32319 },
+ { 0x1141, 32322 },
+ { 0x1142, 32325 },
+ { 0x1113, 32328 },
+ { 0x1115, 32331 },
+ { 0x111E, 32334 },
+ { 0x1120, 32337 },
+ { 0x1137, 32340 },
+ { 0x1138, 32343 },
+ { 0x113A, 32346 },
+ { 0x1139, 32349 },
+ { 0x1153, 32352 },
+ { 0x114E, 32355 },
+ { 0x1149, 32358 },
+ { 0x1146, 32361 },
+ { 0x114B, 32364 },
+ { 0x114A, 32367 },
+ { 0x111D, 32370 },
+ { 0x112B, 32373 },
+ { 0x111B, 32376 },
+ { 0x1156, 32379 },
+ { 0x1128, 32382 },
+ { 0x112A, 32385 },
+ { 0x1129, 32388 },
+ { 0x1117, 32391 },
+ { 0x1134, 32394 },
+ { 0x113E, 32397 },
+ { 0x1152, 32400 },
+ { 0x1154, 32403 },
+ { 0x1157, 32406 },
+ { 0x1125, 32409 },
+ { 0x1150, 32412 },
+ { 0x1126, 32415 },
+ { 0x1124, 32418 },
+ { 0x113D, 32421 },
+ { 0x1122, 32424 },
+ { 0x1123, 32427 },
+ { 0x1133, 32430 },
+ { 0x1155, 32433 },
+ { 0x114F, 32436 },
+ { 0x112C, 32439 },
+ { 0x113F, 32442 },
+ { 0x1151, 32445 },
+ { 0x11BA, 32448 },
+ { 0x11BD, 32451 },
+ { 0x11C2, 32454 },
+ { 0x11BC, 32457 },
+ { 0x11B7, 32460 },
+ { 0x11AB, 32463 },
+ { 0x11B8, 32466 },
+ { 0x11AF, 32469 },
+ { 0x11A8, 32472 },
+ { 0x11AE, 32475 },
+ { 0x11BE, 32478 },
+ { 0x11BF, 32481 },
+ { 0x11EB, 32484 },
+ { 0x11C1, 32487 },
+ { 0x11C0, 32490 },
+ { 0x11F0, 32493 },
+ { 0x11BB, 32496 },
+ { 0x11DD, 32499 },
+ { 0x11C7, 32502 },
+ { 0x11B9, 32505 },
+ { 0x11B3, 32508 },
+ { 0x11EA, 32511 },
+ { 0x11E9, 32514 },
+ { 0x11EE, 32517 },
+ { 0x11D0, 32520 },
+ { 0x11F7, 32523 },
+ { 0x11F5, 32526 },
+ { 0x11F8, 32529 },
+ { 0x11F6, 32532 },
+ { 0x11AA, 32535 },
+ { 0x11E1, 32538 },
+ { 0x11DC, 32541 },
+ { 0x11DB, 32544 },
+ { 0x11AC, 32547 },
+ { 0x11AD, 32550 },
+ { 0x11E5, 32553 },
+ { 0x11E3, 32556 },
+ { 0x11B6, 32559 },
+ { 0x11B1, 32562 },
+ { 0x11CD, 32565 },
+ { 0x11B2, 32568 },
+ { 0x11E7, 32571 },
+ { 0x11E8, 32574 },
+ { 0x11A9, 32577 },
+ { 0x11F9, 32580 },
+ { 0x11EC, 32583 },
+ { 0x11C3, 32586 },
+ { 0x11DA, 32589 },
+ { 0x11C5, 32592 },
+ { 0x11C6, 32595 },
+ { 0x11B0, 32598 },
+ { 0x11CE, 32601 },
+ { 0x11CB, 32604 },
+ { 0x11EF, 32607 },
+ { 0x11E2, 32610 },
+ { 0x11E6, 32613 },
+ { 0x11E0, 32616 },
+ { 0x11DF, 32619 },
+ { 0x11C8, 32622 },
+ { 0x11C9, 32625 },
+ { 0x11F3, 32628 },
+ { 0x11E4, 32631 },
+ { 0x11D8, 32634 },
+ { 0x11D7, 32637 },
+ { 0x11B5, 32640 },
+ { 0x11B4, 32643 },
+ { 0x11CA, 32646 },
+ { 0x11F1, 32649 },
+ { 0x11F4, 32652 },
+ { 0x11DE, 32655 },
+ { 0x11D6, 32658 },
+ { 0x11D2, 32661 },
+ { 0x11D3, 32664 },
+ { 0x11F2, 32667 },
+ { 0x11ED, 32670 },
+ { 0x11CC, 32673 },
+ { 0x11D4, 32676 },
+ { 0x11D9, 32679 },
+ { 0x11C4, 32682 },
+ { 0x11D1, 32685 },
+ { 0x11CF, 32688 },
+ { 0x11D5, 32691 },
+ { 0x1161, 32694 },
+ { 0x1166, 32697 },
+ { 0x1175, 32700 },
+ { 0x1169, 32703 },
+ { 0x116E, 32706 },
+ { 0x1162, 32709 },
+ { 0x1165, 32712 },
+ { 0x1173, 32715 },
+ { 0x116C, 32718 },
+ { 0x116A, 32721 },
+ { 0x1170, 32724 },
+ { 0x1171, 32727 },
+ { 0x1163, 32730 },
+ { 0x1168, 32733 },
+ { 0x1174, 32736 },
+ { 0x116D, 32739 },
+ { 0x1172, 32742 },
+ { 0x1176, 32745 },
+ { 0x1177, 32748 },
+ { 0x1198, 32751 },
+ { 0x119A, 32754 },
+ { 0x119B, 32757 },
+ { 0x1180, 32760 },
+ { 0x1182, 32763 },
+ { 0x1183, 32766 },
+ { 0x1189, 32769 },
+ { 0x118D, 32772 },
+ { 0x116B, 32775 },
+ { 0x116F, 32778 },
+ { 0x1164, 32781 },
+ { 0x1167, 32784 },
+ { 0x117A, 32787 },
+ { 0x117B, 32790 },
+ { 0x1195, 32793 },
+ { 0x119C, 32796 },
+ { 0x1199, 32799 },
+ { 0x117F, 32802 },
+ { 0x1181, 32805 },
+ { 0x118A, 32808 },
+ { 0x118C, 32811 },
+ { 0x1178, 32814 },
+ { 0x1197, 32817 },
+ { 0x1188, 32820 },
+ { 0x1187, 32823 },
+ { 0x118E, 32826 },
+ { 0x1190, 32829 },
+ { 0x1194, 32832 },
+ { 0x1193, 32835 },
+ { 0x119E, 32838 },
+ { 0x117C, 32841 },
+ { 0x1196, 32844 },
+ { 0x1179, 32847 },
+ { 0x117D, 32850 },
+ { 0x117E, 32853 },
+ { 0x1184, 32856 },
+ { 0x118F, 32859 },
+ { 0x1192, 32862 },
+ { 0x1160, 32865 },
+ { 0x1185, 32868 },
+ { 0x1186, 32871 },
+ { 0x1191, 32874 },
+ { 0x11A1, 32877 },
+ { 0x11A0, 32880 },
+ { 0x119D, 32883 },
+ { 0x118B, 32886 },
+ { 0x119F, 32889 },
+ { 0x11A2, 32892 },
+ { 0x05C5, 32895 },
+ { 0x05C4, 32899 },
+ { 0x05AF, 32903 },
+ { 0x05C2, 32907 },
+ { 0x05BF, 32911 },
+ { 0x05C1, 32914 },
+ { 0x05B2, 32918 },
+ { 0x05B1, 32922 },
+ { 0x05B3, 32926 },
+ { 0x05B4, 32930 },
+ { 0x05B9, 32933 },
+ { 0x05BA, 32936 },
+ { 0x05BD, 32942 },
+ { 0x05B7, 32945 },
+ { 0x05B6, 32948 },
+ { 0x05B0, 32951 },
+ { 0x05B5, 32954 },
+ { 0x05BC, 32957 },
+ { 0x05B8, 32962 },
+ { 0x05C7, 32965 },
+ { 0x05BB, 32969 },
+ { 0x6B1E, 32972 },
+ { 0x05AB, 32976 },
+ { 0x05AD, 32979 },
+ { 0x05AC, 32982 },
+ { 0x05A2, 32985 },
+ { 0x05A7, 32989 },
+ { 0x05A3, 32992 },
+ { 0x05A1, 32995 },
+ { 0x05A8, 32998 },
+ { 0x0597, 33001 },
+ { 0x0592, 33004 },
+ { 0x059B, 33007 },
+ { 0x05AA, 33010 },
+ { 0x059A, 33015 },
+ { 0x0595, 33018 },
+ { 0x0594, 33022 },
+ { 0x0598, 33026 },
+ { 0x05AE, 33029 },
+ { 0x059C, 33032 },
+ { 0x059D, 33035 },
+ { 0x05A5, 33039 },
+ { 0x05A6, 33042 },
+ { 0x0599, 33046 },
+ { 0x059F, 33049 },
+ { 0x0596, 33053 },
+ { 0x0591, 33056 },
+ { 0x05A0, 33059 },
+ { 0x05A9, 33063 },
+ { 0x05A4, 33067 },
+ { 0x059E, 33070 },
+ { 0x0593, 33073 },
+ { 0x05D4, 33076 },
+ { 0x6B34, 33079 },
+ { 0x05E4, 33084 },
+ { 0x6B4E, 33087 },
+ { 0x6B44, 33092 },
+ { 0x05D1, 33097 },
+ { 0x6B4C, 33100 },
+ { 0x6B31, 33105 },
+ { 0x05D7, 33110 },
+ { 0x05DB, 33113 },
+ { 0x6B4D, 33116 },
+ { 0x6B3B, 33121 },
+ { 0x05DE, 33126 },
+ { 0x6B3E, 33129 },
+ { 0x05E0, 33134 },
+ { 0x6B40, 33137 },
+ { 0x05E7, 33142 },
+ { 0x6B47, 33145 },
+ { 0x05EA, 33150 },
+ { 0x6B4A, 33153 },
+ { 0x05D8, 33158 },
+ { 0x6B38, 33161 },
+ { 0x05D5, 33166 },
+ { 0x6B4B, 33169 },
+ { 0x6B35, 33174 },
+ { 0x05D9, 33179 },
+ { 0x6B1D, 33182 },
+ { 0x6B39, 33187 },
+ { 0x05D0, 33192 },
+ { 0x6B30, 33195 },
+ { 0x6B2E, 33200 },
+ { 0x6B2F, 33205 },
+ { 0x05E2, 33210 },
+ { 0x05E8, 33213 },
+ { 0x6B48, 33216 },
+ { 0x05E9, 33221 },
+ { 0x6B2B, 33224 },
+ { 0x6B2A, 33230 },
+ { 0x6B49, 33236 },
+ { 0x6B2D, 33241 },
+ { 0x6B2C, 33249 },
+ { 0x6B23, 33257 },
+ { 0x6B24, 33261 },
+ { 0x6B28, 33265 },
+ { 0x6B21, 33269 },
+ { 0x6B27, 33273 },
+ { 0x6B22, 33277 },
+ { 0x6B26, 33281 },
+ { 0x6B25, 33286 },
+ { 0x05D3, 33290 },
+ { 0x6B33, 33293 },
+ { 0x05E3, 33298 },
+ { 0x6B43, 33302 },
+ { 0x05DA, 33308 },
+ { 0x6B3A, 33312 },
+ { 0x05DD, 33318 },
+ { 0x05DF, 33322 },
+ { 0x05E5, 33326 },
+ { 0x05D2, 33330 },
+ { 0x6B32, 33333 },
+ { 0x05DC, 33338 },
+ { 0x6B3C, 33341 },
+ { 0x05E6, 33346 },
+ { 0x6B46, 33349 },
+ { 0x05D6, 33354 },
+ { 0x6B36, 33357 },
+ { 0x05E1, 33362 },
+ { 0x6B41, 33365 },
+ { 0x6B20, 33370 },
+ { 0x6B29, 33374 },
+ { 0x6B4F, 33379 },
+ { 0x05F1, 33383 },
+ { 0x6B1F, 33388 },
+ { 0x05F0, 33394 },
+ { 0x05F2, 33399 },
+ { 0x05C6, 33404 },
+ { 0x05C3, 33408 },
+ { 0x05BE, 33412 },
+ { 0x05C0, 33415 },
+ { 0x05F3, 33418 },
+ { 0x05F4, 33421 },
+ { 0x2010, 33424 },
+ { 0x2E1A, 33425 },
+ { 0x2043, 33428 },
+ { 0x2F4F, 33430 },
+ { 0x2F21, 33434 },
+ { 0x2F22, 33437 },
+ { 0x2F7D, 33441 },
+ { 0x2F44, 33444 },
+ { 0x2F24, 33447 },
+ { 0x2F38, 33450 },
+ { 0x2F5C, 33453 },
+ { 0x2F5D, 33456 },
+ { 0x2F02, 33459 },
+ { 0x2F32, 33462 },
+ { 0x2F7F, 33465 },
+ { 0x2FB7, 33468 },
+ { 0x2F6C, 33471 },
+ { 0x2FB6, 33474 },
+ { 0x2F51, 33477 },
+ { 0x2F0E, 33480 },
+ { 0x2F78, 33483 },
+ { 0x2F07, 33486 },
+ { 0x2F08, 33489 },
+ { 0x2F79, 33492 },
+ { 0x2F46, 33495 },
+ { 0x2F7C, 33498 },
+ { 0x2F00, 33501 },
+ { 0x2F97, 33504 },
+ { 0x2F41, 33507 },
+ { 0x2FCF, 33510 },
+ { 0x2F9A, 33513 },
+ { 0x2F9B, 33516 },
+ { 0x2F48, 33519 },
+ { 0x2F92, 33522 },
+ { 0x2F47, 33525 },
+ { 0x2F17, 33528 },
+ { 0x2F06, 33531 },
+ { 0x2F36, 33534 },
+ { 0x2F64, 33538 },
+ { 0x2F96, 33541 },
+ { 0x2FC3, 33544 },
+ { 0x2FAD, 33547 },
+ { 0x2F88, 33550 },
+ { 0x2F9D, 33553 },
+ { 0x2F66, 33556 },
+ { 0x2FBB, 33561 },
+ { 0x2F9E, 33564 },
+ { 0x2F73, 33567 },
+ { 0x2FA2, 33570 },
+ { 0x2F52, 33573 },
+ { 0x2F56, 33576 },
+ { 0x2FC5, 33579 },
+ { 0x2F6B, 33582 },
+ { 0x2F3E, 33585 },
+ { 0x2F0C, 33588 },
+ { 0x2FCE, 33592 },
+ { 0x2FD1, 33595 },
+ { 0x2FAF, 33598 },
+ { 0x2F5B, 33601 },
+ { 0x2F55, 33604 },
+ { 0x2FC2, 33607 },
+ { 0x2F9C, 33610 },
+ { 0x2FCC, 33613 },
+ { 0x2FA8, 33616 },
+ { 0x2FA6, 33619 },
+ { 0x2FBD, 33622 },
+ { 0x2F59, 33625 },
+ { 0x2F3F, 33630 },
+ { 0x2FB8, 33633 },
+ { 0x2FC7, 33636 },
+ { 0x2F05, 33639 },
+ { 0x2F93, 33642 },
+ { 0x2F28, 33645 },
+ { 0x2F5F, 33648 },
+ { 0x2F4B, 33651 },
+ { 0x2F2A, 33654 },
+ { 0x2FB4, 33657 },
+ { 0x2FB2, 33660 },
+ { 0x2F09, 33663 },
+ { 0x2F63, 33666 },
+ { 0x2F01, 33669 },
+ { 0x2FA7, 33672 },
+ { 0x2F35, 33675 },
+ { 0x2F81, 33679 },
+ { 0x2F49, 33682 },
+ { 0x2FD0, 33685 },
+ { 0x2F10, 33688 },
+ { 0x2F7E, 33692 },
+ { 0x2FAC, 33695 },
+ { 0x2F76, 33698 },
+ { 0x2F27, 33701 },
+ { 0x2FC4, 33704 },
+ { 0x2F19, 33707 },
+ { 0x2F83, 33710 },
+ { 0x2F77, 33713 },
+ { 0x2F6A, 33716 },
+ { 0x2F3B, 33719 },
+ { 0x2F4C, 33722 },
+ { 0x2FBC, 33725 },
+ { 0x2F61, 33728 },
+ { 0x2F4A, 33731 },
+ { 0x2FA1, 33734 },
+ { 0x2F8F, 33737 },
+ { 0x2F91, 33741 },
+ { 0x2FB5, 33744 },
+ { 0x2FA3, 33747 },
+ { 0x2F2F, 33750 },
+ { 0x2F13, 33753 },
+ { 0x2F1C, 33756 },
+ { 0x2F6E, 33759 },
+ { 0x2FCA, 33762 },
+ { 0x2F8E, 33765 },
+ { 0x2F80, 33768 },
+ { 0x2F26, 33771 },
+ { 0x2F1A, 33774 },
+ { 0x2F8A, 33777 },
+ { 0x2F0D, 33780 },
+ { 0x2F4D, 33783 },
+ { 0x2F1F, 33786 },
+ { 0x2F0B, 33789 },
+ { 0x2F0A, 33792 },
+ { 0x2F65, 33795 },
+ { 0x2FBE, 33798 },
+ { 0x2FD5, 33801 },
+ { 0x2FC1, 33804 },
+ { 0x2F72, 33807 },
+ { 0x2F8B, 33810 },
+ { 0x2F3C, 33813 },
+ { 0x2FBA, 33816 },
+ { 0x2F11, 33819 },
+ { 0x2F60, 33822 },
+ { 0x2FA9, 33825 },
+ { 0x2F1D, 33828 },
+ { 0x2F12, 33831 },
+ { 0x2F15, 33834 },
+ { 0x2F2E, 33839 },
+ { 0x2F7A, 33842 },
+ { 0x2F99, 33845 },
+ { 0x2F37, 33848 },
+ { 0x2FAB, 33851 },
+ { 0x2F33, 33856 },
+ { 0x2F03, 33860 },
+ { 0x2FAA, 33863 },
+ { 0x2F5A, 33866 },
+ { 0x2F29, 33869 },
+ { 0x2F39, 33872 },
+ { 0x2FB3, 33875 },
+ { 0x2F6D, 33878 },
+ { 0x2F14, 33881 },
+ { 0x2F74, 33884 },
+ { 0x2F53, 33887 },
+ { 0x2F6F, 33890 },
+ { 0x2F62, 33893 },
+ { 0x2F0F, 33896 },
+ { 0x2F8C, 33899 },
+ { 0x2FD2, 33902 },
+ { 0x2F71, 33905 },
+ { 0x2F54, 33908 },
+ { 0x2FC6, 33911 },
+ { 0x2F69, 33914 },
+ { 0x2F25, 33917 },
+ { 0x2FAE, 33920 },
+ { 0x2F84, 33923 },
+ { 0x2F98, 33926 },
+ { 0x2F75, 33929 },
+ { 0x2F9F, 33932 },
+ { 0x2F40, 33935 },
+ { 0x2F2B, 33938 },
+ { 0x2F43, 33941 },
+ { 0x2F68, 33944 },
+ { 0x2F34, 33948 },
+ { 0x2F58, 33952 },
+ { 0x2FD3, 33956 },
+ { 0x2F57, 33959 },
+ { 0x2F16, 33962 },
+ { 0x2F8D, 33966 },
+ { 0x2FC9, 33969 },
+ { 0x2F85, 33972 },
+ { 0x2F87, 33975 },
+ { 0x2F42, 33978 },
+ { 0x2F04, 33981 },
+ { 0x2F94, 33984 },
+ { 0x2F70, 33987 },
+ { 0x2F2C, 33990 },
+ { 0x2F45, 33993 },
+ { 0x2FB1, 33996 },
+ { 0x2F86, 34000 },
+ { 0x2FCD, 34003 },
+ { 0x2F31, 34006 },
+ { 0x2FD4, 34009 },
+ { 0x2F95, 34012 },
+ { 0x2F4E, 34015 },
+ { 0x2FC8, 34018 },
+ { 0x2F3A, 34021 },
+ { 0x2F90, 34024 },
+ { 0x2F50, 34027 },
+ { 0x2F23, 34030 },
+ { 0x2F7B, 34033 },
+ { 0x2F3D, 34036 },
+ { 0x2FB0, 34039 },
+ { 0x2FA0, 34042 },
+ { 0x2F30, 34045 },
+ { 0x2F1B, 34048 },
+ { 0x2F20, 34051 },
+ { 0x2FA5, 34054 },
+ { 0x2FC0, 34057 },
+ { 0x2FB9, 34060 },
+ { 0x2F82, 34063 },
+ { 0x2F2D, 34066 },
+ { 0x2F5E, 34069 },
+ { 0x2F67, 34072 },
+ { 0x2F89, 34075 },
+ { 0x2F1E, 34078 },
+ { 0x2F18, 34081 },
+ { 0x2FCB, 34084 },
+ { 0x2FA4, 34087 },
+ { 0x2FBF, 34090 },
+ { 0x212A, 34094 },
+ { 0x327F, 34096 },
+ { 0x2AAB, 34099 },
+ { 0x2AAD, 34101 },
+ { 0x1C36, 34106 },
+ { 0x1C37, 34109 },
+ { 0x1C41, 34112 },
+ { 0x1C46, 34115 },
+ { 0x1C42, 34118 },
+ { 0x1C45, 34121 },
+ { 0x1C44, 34124 },
+ { 0x1C49, 34127 },
+ { 0x1C40, 34130 },
+ { 0x1C48, 34133 },
+ { 0x1C47, 34136 },
+ { 0x1C43, 34139 },
+ { 0x1C2C, 34142 },
+ { 0x1C27, 34146 },
+ { 0x1C28, 34150 },
+ { 0x1C2A, 34154 },
+ { 0x1C26, 34158 },
+ { 0x1C29, 34162 },
+ { 0x1C2B, 34166 },
+ { 0x1C23, 34170 },
+ { 0x1C13, 34173 },
+ { 0x1C06, 34176 },
+ { 0x1C0C, 34179 },
+ { 0x1C11, 34182 },
+ { 0x1C03, 34185 },
+ { 0x1C1D, 34188 },
+ { 0x1C08, 34191 },
+ { 0x1C00, 34194 },
+ { 0x1C1C, 34197 },
+ { 0x1C15, 34200 },
+ { 0x1C0D, 34203 },
+ { 0x1C0E, 34206 },
+ { 0x1C1B, 34209 },
+ { 0x1C20, 34212 },
+ { 0x1C0A, 34215 },
+ { 0x1C1F, 34218 },
+ { 0x1C22, 34221 },
+ { 0x1C1A, 34224 },
+ { 0x1C14, 34227 },
+ { 0x1C07, 34230 },
+ { 0x1C4F, 34233 },
+ { 0x1C19, 34236 },
+ { 0x1C12, 34239 },
+ { 0x1C04, 34242 },
+ { 0x1C1E, 34245 },
+ { 0x1C02, 34248 },
+ { 0x1C01, 34251 },
+ { 0x1C16, 34254 },
+ { 0x1C05, 34257 },
+ { 0x1C09, 34260 },
+ { 0x1C10, 34263 },
+ { 0x1C0F, 34266 },
+ { 0x1C21, 34269 },
+ { 0x1C0B, 34272 },
+ { 0x1C17, 34275 },
+ { 0x1C4D, 34278 },
+ { 0x1C18, 34281 },
+ { 0x1C4E, 34284 },
+ { 0x1C2D, 34287 },
+ { 0x1C2F, 34291 },
+ { 0x1C2E, 34295 },
+ { 0x1C30, 34299 },
+ { 0x1C31, 34303 },
+ { 0x1C32, 34307 },
+ { 0x1C33, 34311 },
+ { 0x1C35, 34315 },
+ { 0x1C34, 34319 },
+ { 0x1C25, 34323 },
+ { 0x1C24, 34327 },
+ { 0x1C3C, 34331 },
+ { 0x1C3D, 34336 },
+ { 0x1C3B, 34339 },
+ { 0x1C3F, 34342 },
+ { 0x1C3E, 34345 },
+ { 0x7050, 34349 },
+ { 0x7051, 34353 },
+ { 0x7052, 34357 },
+ { 0x7053, 34361 },
+ { 0x7054, 34365 },
+ { 0x7055, 34369 },
+ { 0x7056, 34373 },
+ { 0x7057, 34377 },
+ { 0x7058, 34381 },
+ { 0x7059, 34385 },
+ { 0x705A, 34389 },
+ { 0x705B, 34393 },
+ { 0x705C, 34397 },
+ { 0x705D, 34401 },
+ { 0x7080, 34405 },
+ { 0x7081, 34410 },
+ { 0x7082, 34415 },
+ { 0x7083, 34420 },
+ { 0x708E, 34425 },
+ { 0x708F, 34430 },
+ { 0x7090, 34435 },
+ { 0x7091, 34440 },
+ { 0x7092, 34445 },
+ { 0x7095, 34450 },
+ { 0x7096, 34455 },
+ { 0x7097, 34460 },
+ { 0x709A, 34464 },
+ { 0x709B, 34469 },
+ { 0x709C, 34474 },
+ { 0x709D, 34478 },
+ { 0x709E, 34483 },
+ { 0x709F, 34487 },
+ { 0x70A0, 34491 },
+ { 0x70A1, 34496 },
+ { 0x70A2, 34500 },
+ { 0x70A3, 34504 },
+ { 0x70A5, 34508 },
+ { 0x70A6, 34512 },
+ { 0x70A7, 34516 },
+ { 0x70A8, 34521 },
+ { 0x70A9, 34525 },
+ { 0x70AA, 34529 },
+ { 0x70AB, 34534 },
+ { 0x70AC, 34539 },
+ { 0x70AD, 34543 },
+ { 0x70AE, 34547 },
+ { 0x70AF, 34551 },
+ { 0x70B0, 34555 },
+ { 0x70B1, 34559 },
+ { 0x70B2, 34563 },
+ { 0x70B3, 34567 },
+ { 0x70B4, 34571 },
+ { 0x70B5, 34575 },
+ { 0x70B6, 34580 },
+ { 0x70B7, 34584 },
+ { 0x70B8, 34589 },
+ { 0x70B9, 34593 },
+ { 0x70BA, 34597 },
+ { 0x70BB, 34601 },
+ { 0x70BC, 34605 },
+ { 0x70BD, 34609 },
+ { 0x70BE, 34613 },
+ { 0x70BF, 34617 },
+ { 0x70C0, 34621 },
+ { 0x70C1, 34625 },
+ { 0x70C2, 34629 },
+ { 0x70C3, 34633 },
+ { 0x70C4, 34638 },
+ { 0x70C5, 34643 },
+ { 0x70C6, 34648 },
+ { 0x70C7, 34653 },
+ { 0x70C8, 34658 },
+ { 0x70C9, 34662 },
+ { 0x70CA, 34667 },
+ { 0x70CB, 34671 },
+ { 0x70CC, 34675 },
+ { 0x70CD, 34681 },
+ { 0x70CE, 34686 },
+ { 0x70CF, 34692 },
+ { 0x70D0, 34697 },
+ { 0x70D1, 34701 },
+ { 0x70D3, 34705 },
+ { 0x70D4, 34709 },
+ { 0x70D5, 34713 },
+ { 0x70D6, 34717 },
+ { 0x70D7, 34721 },
+ { 0x70D8, 34725 },
+ { 0x70D9, 34730 },
+ { 0x70DA, 34734 },
+ { 0x70DB, 34738 },
+ { 0x70DC, 34742 },
+ { 0x70DD, 34746 },
+ { 0x7084, 34750 },
+ { 0x7085, 34755 },
+ { 0x7086, 34760 },
+ { 0x7087, 34765 },
+ { 0x7088, 34770 },
+ { 0x7089, 34775 },
+ { 0x708A, 34780 },
+ { 0x708B, 34785 },
+ { 0x708C, 34790 },
+ { 0x708D, 34795 },
+ { 0x70DE, 34800 },
+ { 0x70DF, 34805 },
+ { 0x70E0, 34810 },
+ { 0x70E1, 34815 },
+ { 0x70E2, 34820 },
+ { 0x70E3, 34825 },
+ { 0x70E4, 34830 },
+ { 0x70E5, 34835 },
+ { 0x70E6, 34840 },
+ { 0x70E7, 34845 },
+ { 0x70E8, 34850 },
+ { 0x70E9, 34855 },
+ { 0x70EA, 34860 },
+ { 0x70EB, 34865 },
+ { 0x70EC, 34870 },
+ { 0x70ED, 34875 },
+ { 0x70EE, 34880 },
+ { 0x70EF, 34885 },
+ { 0x70F0, 34890 },
+ { 0x70F1, 34895 },
+ { 0x70F2, 34900 },
+ { 0x70F3, 34905 },
+ { 0x70F4, 34910 },
+ { 0x70F5, 34915 },
+ { 0x70F6, 34920 },
+ { 0x70F7, 34925 },
+ { 0x70F8, 34930 },
+ { 0x70F9, 34935 },
+ { 0x70FA, 34940 },
+ { 0x7093, 34945 },
+ { 0x7094, 34950 },
+ { 0x7098, 34955 },
+ { 0x7099, 34960 },
+ { 0x70A4, 34965 },
+ { 0x70D2, 34970 },
+ { 0x7005, 34975 },
+ { 0x702B, 34980 },
+ { 0x701E, 34985 },
+ { 0x7033, 34990 },
+ { 0x7035, 34995 },
+ { 0x7019, 35000 },
+ { 0x7007, 35005 },
+ { 0x7000, 35010 },
+ { 0x702E, 35015 },
+ { 0x7004, 35020 },
+ { 0x7021, 35025 },
+ { 0x7030, 35030 },
+ { 0x7015, 35035 },
+ { 0x7008, 35040 },
+ { 0x7017, 35045 },
+ { 0x7023, 35050 },
+ { 0x703C, 35055 },
+ { 0x703F, 35060 },
+ { 0x7025, 35065 },
+ { 0x7018, 35070 },
+ { 0x701A, 35075 },
+ { 0x7040, 35080 },
+ { 0x702C, 35085 },
+ { 0x7029, 35090 },
+ { 0x7002, 35095 },
+ { 0x7046, 35100 },
+ { 0x701B, 35105 },
+ { 0x702D, 35110 },
+ { 0x7026, 35115 },
+ { 0x7049, 35120 },
+ { 0x700D, 35125 },
+ { 0x7034, 35130 },
+ { 0x7001, 35135 },
+ { 0x7020, 35140 },
+ { 0x7039, 35145 },
+ { 0x702F, 35150 },
+ { 0x703A, 35155 },
+ { 0x7041, 35160 },
+ { 0x7010, 35165 },
+ { 0x7006, 35170 },
+ { 0x700B, 35175 },
+ { 0x7045, 35180 },
+ { 0x7022, 35185 },
+ { 0x7009, 35190 },
+ { 0x701C, 35195 },
+ { 0x702A, 35200 },
+ { 0x7037, 35205 },
+ { 0x701D, 35210 },
+ { 0x700A, 35215 },
+ { 0x7031, 35220 },
+ { 0x7032, 35225 },
+ { 0x7028, 35230 },
+ { 0x7003, 35235 },
+ { 0x7047, 35240 },
+ { 0x700E, 35245 },
+ { 0x704B, 35250 },
+ { 0x7011, 35255 },
+ { 0x704A, 35260 },
+ { 0x7036, 35265 },
+ { 0x7012, 35270 },
+ { 0x7043, 35275 },
+ { 0x701F, 35280 },
+ { 0x7016, 35285 },
+ { 0x703D, 35290 },
+ { 0x7038, 35295 },
+ { 0x7048, 35300 },
+ { 0x700F, 35305 },
+ { 0x7024, 35310 },
+ { 0x7014, 35315 },
+ { 0x7013, 35320 },
+ { 0x7042, 35325 },
+ { 0x704C, 35330 },
+ { 0x7044, 35335 },
+ { 0x704D, 35340 },
+ { 0x7280, 35345 },
+ { 0x7282, 35348 },
+ { 0x7285, 35351 },
+ { 0x7281, 35354 },
+ { 0x7284, 35357 },
+ { 0x729B, 35360 },
+ { 0x7286, 35363 },
+ { 0x728A, 35366 },
+ { 0x728B, 35369 },
+ { 0x728D, 35372 },
+ { 0x728E, 35375 },
+ { 0x728F, 35378 },
+ { 0x7293, 35381 },
+ { 0x728C, 35384 },
+ { 0x7295, 35387 },
+ { 0x7296, 35390 },
+ { 0x7297, 35393 },
+ { 0x7292, 35396 },
+ { 0x7287, 35399 },
+ { 0x729C, 35402 },
+ { 0x7288, 35405 },
+ { 0x7299, 35408 },
+ { 0x7283, 35411 },
+ { 0x729A, 35414 },
+ { 0x7294, 35417 },
+ { 0x7290, 35420 },
+ { 0x7291, 35423 },
+ { 0x7289, 35426 },
+ { 0x7298, 35429 },
+ { 0x7920, 35432 },
+ { 0x7921, 35435 },
+ { 0x7939, 35438 },
+ { 0x7923, 35441 },
+ { 0x7924, 35444 },
+ { 0x7931, 35447 },
+ { 0x7922, 35450 },
+ { 0x7926, 35453 },
+ { 0x7928, 35456 },
+ { 0x7929, 35459 },
+ { 0x792A, 35462 },
+ { 0x792B, 35465 },
+ { 0x792C, 35468 },
+ { 0x7932, 35471 },
+ { 0x792D, 35474 },
+ { 0x7933, 35477 },
+ { 0x792F, 35480 },
+ { 0x7930, 35483 },
+ { 0x7925, 35486 },
+ { 0x7927, 35489 },
+ { 0x7935, 35492 },
+ { 0x7936, 35495 },
+ { 0x7937, 35498 },
+ { 0x7938, 35501 },
+ { 0x792E, 35504 },
+ { 0x7934, 35507 },
+ { 0x793F, 35510 },
+ { 0x00AF, 35513 },
+ { 0x2774, 35514 },
+ { 0x2768, 35519 },
+ { 0x26AB, 35523 },
+ { 0x2775, 35526 },
+ { 0x2769, 35531 },
+ { 0x2592, 35535 },
+ { 0x26AC, 35537 },
+ { 0x26AA, 35541 },
+ { 0x2759, 35544 },
+ { 0x276A, 35547 },
+ { 0x276B, 35552 },
+ { 0x205F, 35557 },
+ { 0x276C, 35560 },
+ { 0x276D, 35565 },
+ { 0x00B7, 35570 },
+ { 0x22A7, 35572 },
+ { 0x2A0A, 35573 },
+ { 0x202F, 35576 },
+ { 0x26B2, 35579 },
+ { 0x22B2, 35580 },
+ { 0x22B4, 35583 },
+ { 0x2491, 35589 },
+ { 0x0023, 35593 },
+ { 0x2492, 35595 },
+ { 0x2493, 35599 },
+ { 0x249B, 35603 },
+ { 0x2496, 35607 },
+ { 0x2497, 35611 },
+ { 0x2499, 35615 },
+ { 0x2495, 35619 },
+ { 0x249A, 35623 },
+ { 0x2494, 35627 },
+ { 0x2498, 35631 },
+ { 0x2116, 35635 },
+ { 0x6FFC, 35637 },
+ { 0x02DB, 35640 },
+ { 0x2325, 35641 },
+ { 0x6D3E, 35643 },
+ { 0x6D3F, 35646 },
+ { 0x26B4, 35649 },
+ { 0x270F, 35650 },
+ { 0x20A7, 35651 },
+ { 0x2653, 35653 },
+ { 0x210E, 35654 },
+ { 0x210F, 35656 },
+ { 0x3012, 35661 },
+ { 0x3020, 35663 },
+ { 0x2E07, 35666 },
+ { 0x2E0B, 35670 },
+ { 0x2E06, 35672 },
+ { 0x5949, 35675 },
+ { 0x5947, 35679 },
+ { 0x594B, 35683 },
+ { 0x5948, 35687 },
+ { 0x594A, 35691 },
+ { 0x594C, 35695 },
+ { 0x594E, 35699 },
+ { 0x594D, 35703 },
+ { 0x5946, 35707 },
+ { 0x5937, 35710 },
+ { 0x5939, 35713 },
+ { 0x5934, 35716 },
+ { 0x5931, 35719 },
+ { 0x5941, 35722 },
+ { 0x593A, 35725 },
+ { 0x5930, 35728 },
+ { 0x593E, 35731 },
+ { 0x5938, 35734 },
+ { 0x5935, 35737 },
+ { 0x5936, 35740 },
+ { 0x593D, 35743 },
+ { 0x593C, 35746 },
+ { 0x5933, 35749 },
+ { 0x5940, 35752 },
+ { 0x593F, 35755 },
+ { 0x5942, 35758 },
+ { 0x5944, 35761 },
+ { 0x5932, 35764 },
+ { 0x593B, 35767 },
+ { 0x5943, 35770 },
+ { 0x5945, 35773 },
+ { 0x5953, 35776 },
+ { 0x595F, 35778 },
+ { 0x5952, 35781 },
+ { 0x5950, 35785 },
+ { 0x5951, 35789 },
+ { 0x594F, 35793 },
+ { 0x23CE, 35797 },
+ { 0x2930, 35799 },
+ { 0x292B, 35805 },
+ { 0x2644, 35810 },
+ { 0x2696, 35811 },
+ { 0x212F, 35812 },
+ { 0x210A, 35815 },
+ { 0x2113, 35818 },
+ { 0x2134, 35821 },
+ { 0x212C, 35824 },
+ { 0x2130, 35827 },
+ { 0x2131, 35830 },
+ { 0x210B, 35833 },
+ { 0x2110, 35836 },
+ { 0x2112, 35839 },
+ { 0x2133, 35842 },
+ { 0x2118, 35845 },
+ { 0x211B, 35848 },
+ { 0x2314, 35851 },
+ { 0x6E45, 35852 },
+ { 0x201A, 35854 },
+ { 0x2039, 35858 },
+ { 0x203A, 35863 },
+ { 0x201B, 35868 },
+ { 0x33DF, 35872 },
+ { 0x33C6, 35876 },
+ { 0x33C0, 35880 },
+ { 0x33C1, 35883 },
+ { 0x33A7, 35886 },
+ { 0x33A8, 35890 },
+ { 0x33A5, 35895 },
+ { 0x33A1, 35898 },
+ { 0x33DE, 35901 },
+ { 0x33C2, 35905 },
+ { 0x3373, 35907 },
+ { 0x33C3, 35909 },
+ { 0x33C4, 35911 },
+ { 0x33C5, 35913 },
+ { 0x339D, 35915 },
+ { 0x33A4, 35917 },
+ { 0x33A0, 35920 },
+ { 0x33C7, 35923 },
+ { 0x3372, 35925 },
+ { 0x33C8, 35927 },
+ { 0x3397, 35929 },
+ { 0x3377, 35931 },
+ { 0x3379, 35933 },
+ { 0x3378, 35936 },
+ { 0x32CE, 35939 },
+ { 0x3399, 35941 },
+ { 0x3387, 35943 },
+ { 0x33C9, 35945 },
+ { 0x33CA, 35947 },
+ { 0x32CC, 35949 },
+ { 0x33CB, 35951 },
+ { 0x3390, 35953 },
+ { 0x33CC, 35955 },
+ { 0x337A, 35957 },
+ { 0x3384, 35959 },
+ { 0x3385, 35961 },
+ { 0x338F, 35963 },
+ { 0x33CD, 35965 },
+ { 0x3398, 35967 },
+ { 0x339E, 35969 },
+ { 0x33A6, 35971 },
+ { 0x33CE, 35974 },
+ { 0x33A2, 35977 },
+ { 0x33CF, 35980 },
+ { 0x33B8, 35982 },
+ { 0x33BE, 35984 },
+ { 0x33D0, 35986 },
+ { 0x33D1, 35988 },
+ { 0x33D3, 35990 },
+ { 0x3383, 35992 },
+ { 0x3386, 35994 },
+ { 0x33D4, 35996 },
+ { 0x338E, 35999 },
+ { 0x3396, 36001 },
+ { 0x339C, 36003 },
+ { 0x33A3, 36005 },
+ { 0x339F, 36008 },
+ { 0x33B3, 36011 },
+ { 0x3382, 36013 },
+ { 0x338C, 36016 },
+ { 0x338D, 36019 },
+ { 0x3395, 36022 },
+ { 0x339B, 36025 },
+ { 0x33B2, 36028 },
+ { 0x33B6, 36031 },
+ { 0x33BC, 36034 },
+ { 0x33B7, 36037 },
+ { 0x33B9, 36039 },
+ { 0x33BD, 36042 },
+ { 0x33BF, 36044 },
+ { 0x3381, 36047 },
+ { 0x338B, 36049 },
+ { 0x339A, 36051 },
+ { 0x33B1, 36053 },
+ { 0x33B5, 36055 },
+ { 0x33BB, 36057 },
+ { 0x3375, 36059 },
+ { 0x33A9, 36061 },
+ { 0x3380, 36063 },
+ { 0x3376, 36066 },
+ { 0x338A, 36068 },
+ { 0x33D7, 36070 },
+ { 0x33D8, 36072 },
+ { 0x33DA, 36074 },
+ { 0x33B0, 36076 },
+ { 0x33B4, 36078 },
+ { 0x33BA, 36080 },
+ { 0x33DB, 36082 },
+ { 0x33DC, 36084 },
+ { 0x33DD, 36086 },
+ { 0x3374, 36088 },
+ { 0x3388, 36090 },
+ { 0x2293, 36092 },
+ { 0x2294, 36094 },
+ { 0x337E, 36096 },
+ { 0x337B, 36100 },
+ { 0x337C, 36104 },
+ { 0x337D, 36108 },
+ { 0x32CD, 36112 },
+ { 0x33FF, 36114 },
+ { 0x3393, 36116 },
+ { 0x33AC, 36118 },
+ { 0x333F, 36120 },
+ { 0x3371, 36122 },
+ { 0x3391, 36124 },
+ { 0x33AA, 36126 },
+ { 0x33D2, 36128 },
+ { 0x3392, 36130 },
+ { 0x33D5, 36132 },
+ { 0x33D6, 36134 },
+ { 0x33AB, 36136 },
+ { 0x33D9, 36138 },
+ { 0x33AD, 36140 },
+ { 0x33AE, 36142 },
+ { 0x33AF, 36146 },
+ { 0x3394, 36151 },
+ { 0x3327, 36153 },
+ { 0x3306, 36155 },
+ { 0x3303, 36157 },
+ { 0x3331, 36159 },
+ { 0x3325, 36161 },
+ { 0x3326, 36163 },
+ { 0x23CD, 36165 },
+ { 0x3310, 36167 },
+ { 0x3342, 36169 },
+ { 0x3305, 36171 },
+ { 0x3389, 36173 },
+ { 0x3314, 36175 },
+ { 0x2ACD, 36177 },
+ { 0x334B, 36182 },
+ { 0x3349, 36184 },
+ { 0x3328, 36186 },
+ { 0x3309, 36188 },
+ { 0x330A, 36190 },
+ { 0x3337, 36192 },
+ { 0x3330, 36194 },
+ { 0x3355, 36196 },
+ { 0x3352, 36198 },
+ { 0x221A, 36200 },
+ { 0x2B12, 36202 },
+ { 0x25E7, 36207 },
+ { 0x2B15, 36212 },
+ { 0x25EA, 36219 },
+ { 0x25E8, 36226 },
+ { 0x25A7, 36231 },
+ { 0x25E9, 36239 },
+ { 0x25A8, 36246 },
+ { 0x2B14, 36254 },
+ { 0x2B13, 36261 },
+ { 0x25A9, 36266 },
+ { 0x25A5, 36271 },
+ { 0x29E0, 36275 },
+ { 0x25A4, 36279 },
+ { 0x25A6, 36283 },
+ { 0x3350, 36288 },
+ { 0x3302, 36290 },
+ { 0x333C, 36292 },
+ { 0x3324, 36294 },
+ { 0x3308, 36296 },
+ { 0x330F, 36298 },
+ { 0x330E, 36300 },
+ { 0x3311, 36302 },
+ { 0x332A, 36304 },
+ { 0x3341, 36306 },
+ { 0x3335, 36308 },
+ { 0x228F, 36310 },
+ { 0x22E4, 36313 },
+ { 0x2291, 36320 },
+ { 0x330B, 36326 },
+ { 0x331C, 36328 },
+ { 0x331E, 36330 },
+ { 0x3345, 36332 },
+ { 0x3344, 36334 },
+ { 0x3329, 36336 },
+ { 0x332C, 36338 },
+ { 0x333B, 36340 },
+ { 0x333A, 36342 },
+ { 0x3340, 36344 },
+ { 0x2ACE, 36346 },
+ { 0x3353, 36351 },
+ { 0x3322, 36353 },
+ { 0x3323, 36355 },
+ { 0x3357, 36357 },
+ { 0x334E, 36359 },
+ { 0x334F, 36361 },
+ { 0x3300, 36363 },
+ { 0x3301, 36365 },
+ { 0x333E, 36367 },
+ { 0x3318, 36369 },
+ { 0x3339, 36371 },
+ { 0x3333, 36373 },
+ { 0x3304, 36375 },
+ { 0x331D, 36377 },
+ { 0x3312, 36379 },
+ { 0x3346, 36381 },
+ { 0x3338, 36383 },
+ { 0x332F, 36385 },
+ { 0x333D, 36387 },
+ { 0x332D, 36389 },
+ { 0x3313, 36391 },
+ { 0x330C, 36393 },
+ { 0x330D, 36395 },
+ { 0x331B, 36397 },
+ { 0x2311, 36399 },
+ { 0x3343, 36401 },
+ { 0x3347, 36403 },
+ { 0x334D, 36405 },
+ { 0x334C, 36407 },
+ { 0x3348, 36409 },
+ { 0x3351, 36411 },
+ { 0x3354, 36413 },
+ { 0x331F, 36415 },
+ { 0x3321, 36417 },
+ { 0x3334, 36419 },
+ { 0x3307, 36421 },
+ { 0x3332, 36423 },
+ { 0x2290, 36425 },
+ { 0x22E5, 36428 },
+ { 0x2292, 36435 },
+ { 0x332B, 36441 },
+ { 0x3356, 36443 },
+ { 0x3320, 36445 },
+ { 0x3319, 36447 },
+ { 0x3336, 36449 },
+ { 0x3317, 36451 },
+ { 0x331A, 36453 },
+ { 0x334A, 36455 },
+ { 0x332E, 36457 },
+ { 0x3315, 36459 },
+ { 0x337F, 36461 },
+ { 0x3316, 36463 },
+ { 0x2729, 36465 },
+ { 0x2282, 36469 },
+ { 0x2286, 36471 },
+ { 0x2AC3, 36476 },
+ { 0x228A, 36484 },
+ { 0x2ACB, 36490 },
+ { 0x2AC7, 36496 },
+ { 0x2AC9, 36501 },
+ { 0x2AC5, 36507 },
+ { 0x2ABD, 36512 },
+ { 0x2ABF, 36515 },
+ { 0x2AC1, 36520 },
+ { 0x2AD5, 36525 },
+ { 0x2AD3, 36528 },
+ { 0x2979, 36531 },
+ { 0x5806, 36535 },
+ { 0x580B, 36539 },
+ { 0x5802, 36543 },
+ { 0x5823, 36547 },
+ { 0x5826, 36552 },
+ { 0x5824, 36557 },
+ { 0x5825, 36562 },
+ { 0x5827, 36567 },
+ { 0x5800, 36572 },
+ { 0x5804, 36576 },
+ { 0x5801, 36580 },
+ { 0x5805, 36584 },
+ { 0x5803, 36588 },
+ { 0x581B, 36592 },
+ { 0x580C, 36596 },
+ { 0x5816, 36600 },
+ { 0x5809, 36604 },
+ { 0x5822, 36608 },
+ { 0x580E, 36612 },
+ { 0x5807, 36616 },
+ { 0x581F, 36620 },
+ { 0x581D, 36624 },
+ { 0x5818, 36628 },
+ { 0x5819, 36632 },
+ { 0x581E, 36636 },
+ { 0x5821, 36640 },
+ { 0x5814, 36644 },
+ { 0x581C, 36648 },
+ { 0x580D, 36652 },
+ { 0x5812, 36656 },
+ { 0x5817, 36660 },
+ { 0x580A, 36664 },
+ { 0x580F, 36668 },
+ { 0x5808, 36672 },
+ { 0x581A, 36676 },
+ { 0x5820, 36680 },
+ { 0x5815, 36684 },
+ { 0x5810, 36688 },
+ { 0x5813, 36692 },
+ { 0x5811, 36696 },
+ { 0x5828, 36700 },
+ { 0x5829, 36704 },
+ { 0x582A, 36708 },
+ { 0x582B, 36712 },
+ { 0x2403, 36716 },
+ { 0x2419, 36721 },
+ { 0x2404, 36726 },
+ { 0x2417, 36731 },
+ { 0x2407, 36737 },
+ { 0x2410, 36740 },
+ { 0x241C, 36745 },
+ { 0x240C, 36749 },
+ { 0x240A, 36753 },
+ { 0x2400, 36757 },
+ { 0x241F, 36760 },
+ { 0x241D, 36764 },
+ { 0x240F, 36768 },
+ { 0x240E, 36772 },
+ { 0x2420, 36776 },
+ { 0x2402, 36779 },
+ { 0x2401, 36784 },
+ { 0x2418, 36789 },
+ { 0x2421, 36792 },
+ { 0x2425, 36795 },
+ { 0x2411, 36800 },
+ { 0x2412, 36805 },
+ { 0x2414, 36810 },
+ { 0x2413, 36815 },
+ { 0x241B, 36820 },
+ { 0x241E, 36823 },
+ { 0x2405, 36827 },
+ { 0x2424, 36830 },
+ { 0x240D, 36833 },
+ { 0x2415, 36837 },
+ { 0x240B, 36841 },
+ { 0x2408, 36845 },
+ { 0x214F, 36848 },
+ { 0x2409, 36852 },
+ { 0x241A, 36856 },
+ { 0x2426, 36859 },
+ { 0x2406, 36864 },
+ { 0x2416, 36867 },
+ { 0x0700, 36871 },
+ { 0x0743, 36875 },
+ { 0x0744, 36880 },
+ { 0x0706, 36885 },
+ { 0x0707, 36889 },
+ { 0x073D, 36893 },
+ { 0x073E, 36896 },
+ { 0x073A, 36899 },
+ { 0x073B, 36902 },
+ { 0x0749, 36905 },
+ { 0x0736, 36907 },
+ { 0x0737, 36910 },
+ { 0x073F, 36913 },
+ { 0x0745, 36915 },
+ { 0x0746, 36919 },
+ { 0x0739, 36923 },
+ { 0x0738, 36927 },
+ { 0x0725, 36931 },
+ { 0x0717, 36934 },
+ { 0x0726, 36937 },
+ { 0x0721, 36940 },
+ { 0x0722, 36943 },
+ { 0x072C, 36946 },
+ { 0x0718, 36949 },
+ { 0x0712, 36952 },
+ { 0x071A, 36955 },
+ { 0x071F, 36958 },
+ { 0x0729, 36961 },
+ { 0x072A, 36964 },
+ { 0x072B, 36967 },
+ { 0x071B, 36970 },
+ { 0x071C, 36973 },
+ { 0x071D, 36977 },
+ { 0x071E, 36980 },
+ { 0x0719, 36984 },
+ { 0x0710, 36987 },
+ { 0x0724, 36990 },
+ { 0x0713, 36994 },
+ { 0x0714, 36997 },
+ { 0x0728, 37001 },
+ { 0x0715, 37004 },
+ { 0x0720, 37007 },
+ { 0x0716, 37010 },
+ { 0x072D, 37015 },
+ { 0x072E, 37019 },
+ { 0x072F, 37023 },
+ { 0x0723, 37027 },
+ { 0x074F, 37030 },
+ { 0x074E, 37034 },
+ { 0x074D, 37038 },
+ { 0x0727, 37042 },
+ { 0x0711, 37046 },
+ { 0x0730, 37050 },
+ { 0x0731, 37053 },
+ { 0x0732, 37056 },
+ { 0x0733, 37059 },
+ { 0x0734, 37062 },
+ { 0x0735, 37065 },
+ { 0x074A, 37068 },
+ { 0x0747, 37070 },
+ { 0x0748, 37074 },
+ { 0x0740, 37078 },
+ { 0x070B, 37081 },
+ { 0x070C, 37084 },
+ { 0x070D, 37087 },
+ { 0x0742, 37090 },
+ { 0x0741, 37092 },
+ { 0x0702, 37094 },
+ { 0x0704, 37098 },
+ { 0x0709, 37101 },
+ { 0x0705, 37106 },
+ { 0x070A, 37109 },
+ { 0x073C, 37111 },
+ { 0x0701, 37114 },
+ { 0x0703, 37118 },
+ { 0x0708, 37121 },
+ { 0x070F, 37126 },
+ { 0x2649, 37129 },
+ { 0x0C56, 37130 },
+ { 0x0C7F, 37134 },
+ { 0x0C4D, 37137 },
+ { 0x0C03, 37140 },
+ { 0x0C02, 37143 },
+ { 0x0C3D, 37146 },
+ { 0x0C01, 37149 },
+ { 0x0C67, 37152 },
+ { 0x0C6C, 37155 },
+ { 0x0C68, 37158 },
+ { 0x0C6B, 37161 },
+ { 0x0C6A, 37164 },
+ { 0x0C6F, 37167 },
+ { 0x0C66, 37170 },
+ { 0x0C6E, 37173 },
+ { 0x0C6D, 37176 },
+ { 0x0C69, 37179 },
+ { 0x0C46, 37182 },
+ { 0x0C3F, 37186 },
+ { 0x0C4A, 37190 },
+ { 0x0C41, 37194 },
+ { 0x0C3E, 37198 },
+ { 0x0C48, 37202 },
+ { 0x0C4C, 37206 },
+ { 0x0C47, 37210 },
+ { 0x0C40, 37214 },
+ { 0x0C4B, 37218 },
+ { 0x0C42, 37222 },
+ { 0x0C62, 37226 },
+ { 0x0C43, 37231 },
+ { 0x0C63, 37236 },
+ { 0x0C44, 37241 },
+ { 0x0C55, 37246 },
+ { 0x0C05, 37249 },
+ { 0x0C0E, 37252 },
+ { 0x0C07, 37255 },
+ { 0x0C12, 37258 },
+ { 0x0C09, 37261 },
+ { 0x0C06, 37264 },
+ { 0x0C10, 37267 },
+ { 0x0C14, 37270 },
+ { 0x0C2C, 37273 },
+ { 0x0C1A, 37276 },
+ { 0x0C26, 37279 },
+ { 0x0C0F, 37282 },
+ { 0x0C17, 37285 },
+ { 0x0C39, 37288 },
+ { 0x0C08, 37291 },
+ { 0x0C1C, 37294 },
+ { 0x0C15, 37297 },
+ { 0x0C32, 37300 },
+ { 0x0C2E, 37303 },
+ { 0x0C28, 37306 },
+ { 0x0C13, 37309 },
+ { 0x0C2A, 37312 },
+ { 0x0C30, 37315 },
+ { 0x0C38, 37318 },
+ { 0x0C24, 37321 },
+ { 0x0C0A, 37324 },
+ { 0x0C35, 37327 },
+ { 0x0C2F, 37330 },
+ { 0x0C2D, 37333 },
+ { 0x0C1B, 37336 },
+ { 0x0C21, 37339 },
+ { 0x0C27, 37342 },
+ { 0x0C59, 37345 },
+ { 0x0C18, 37348 },
+ { 0x0C1D, 37351 },
+ { 0x0C16, 37354 },
+ { 0x0C33, 37357 },
+ { 0x0C19, 37360 },
+ { 0x0C23, 37363 },
+ { 0x0C1E, 37366 },
+ { 0x0C2B, 37369 },
+ { 0x0C31, 37372 },
+ { 0x0C36, 37375 },
+ { 0x0C37, 37378 },
+ { 0x0C25, 37381 },
+ { 0x0C58, 37384 },
+ { 0x0C1F, 37387 },
+ { 0x0C22, 37390 },
+ { 0x0C20, 37393 },
+ { 0x0C0C, 37396 },
+ { 0x0C0B, 37400 },
+ { 0x0C61, 37404 },
+ { 0x0C60, 37408 },
+ { 0x0C79, 37412 },
+ { 0x0C7C, 37421 },
+ { 0x0C7A, 37430 },
+ { 0x0C7D, 37439 },
+ { 0x0C78, 37448 },
+ { 0x0C7B, 37457 },
+ { 0x0C7E, 37466 },
+ { 0x07B0, 37475 },
+ { 0x07A0, 37477 },
+ { 0x07A1, 37480 },
+ { 0x0784, 37483 },
+ { 0x0780, 37486 },
+ { 0x07B1, 37489 },
+ { 0x0783, 37492 },
+ { 0x0794, 37495 },
+ { 0x079C, 37498 },
+ { 0x07A2, 37501 },
+ { 0x0799, 37504 },
+ { 0x079A, 37507 },
+ { 0x078C, 37510 },
+ { 0x0798, 37513 },
+ { 0x0787, 37516 },
+ { 0x078A, 37519 },
+ { 0x078E, 37522 },
+ { 0x0786, 37525 },
+ { 0x078D, 37528 },
+ { 0x0789, 37531 },
+ { 0x0782, 37534 },
+ { 0x07A4, 37537 },
+ { 0x0790, 37540 },
+ { 0x0788, 37543 },
+ { 0x07A5, 37546 },
+ { 0x079F, 37549 },
+ { 0x078B, 37552 },
+ { 0x07A3, 37555 },
+ { 0x079E, 37558 },
+ { 0x079D, 37561 },
+ { 0x079B, 37564 },
+ { 0x0791, 37567 },
+ { 0x0796, 37570 },
+ { 0x0795, 37573 },
+ { 0x0793, 37576 },
+ { 0x0792, 37579 },
+ { 0x0797, 37582 },
+ { 0x078F, 37585 },
+ { 0x0785, 37588 },
+ { 0x0781, 37591 },
+ { 0x07A6, 37594 },
+ { 0x07AC, 37596 },
+ { 0x07A8, 37598 },
+ { 0x07AE, 37600 },
+ { 0x07AA, 37602 },
+ { 0x07A7, 37604 },
+ { 0x07A9, 37606 },
+ { 0x07AD, 37608 },
+ { 0x07AF, 37610 },
+ { 0x07AB, 37612 },
+ { 0x29FB, 37614 },
+ { 0x2AF6, 37616 },
+ { 0x2034, 37619 },
+ { 0x224B, 37621 },
+ { 0x2AF7, 37623 },
+ { 0x2AF8, 37626 },
+ { 0x2AFB, 37629 },
+ { 0x222D, 37633 },
+ { 0x2AF5, 37635 },
+ { 0x22AA, 37641 },
+ { 0x2AF4, 37646 },
+ { 0x2980, 37651 },
+ { 0x2A68, 37655 },
+ { 0x2A69, 37662 },
+ { 0x20AE, 37669 },
+ { 0x2319, 37671 },
+ { 0x29A2, 37674 },
+ { 0x2129, 37676 },
+ { 0x214E, 37681 },
+ { 0x2132, 37684 },
+ { 0x214B, 37687 },
+ { 0x2141, 37689 },
+ { 0x2142, 37693 },
+ { 0x2144, 37697 },
+ { 0x2739, 37701 },
+ { 0x2645, 37705 },
+ { 0x2A2F, 37706 },
+ { 0x2230, 37710 },
+ { 0x00BD, 37712 },
+ { 0x2155, 37716 },
+ { 0x2159, 37720 },
+ { 0x2153, 37724 },
+ { 0x215B, 37728 },
+ { 0x00BC, 37732 },
+ { 0x2156, 37736 },
+ { 0x2154, 37740 },
+ { 0x215A, 37744 },
+ { 0x215D, 37748 },
+ { 0x2158, 37752 },
+ { 0x215E, 37756 },
+ { 0x2157, 37760 },
+ { 0x215C, 37764 },
+ { 0x00BE, 37768 },
+ { 0x2240, 37772 },
+ { 0x2100, 37774 },
+ { 0x060B, 37776 },
+ { 0x2697, 37778 },
+ { 0x20B3, 37779 },
+ { 0x2235, 37781 },
+ { 0x09D7, 37782 },
+ { 0x09BC, 37786 },
+ { 0x09CD, 37789 },
+ { 0x0983, 37792 },
+ { 0x0982, 37795 },
+ { 0x09BD, 37798 },
+ { 0x0981, 37801 },
+ { 0x09E7, 37804 },
+ { 0x09EC, 37807 },
+ { 0x09E8, 37810 },
+ { 0x09EB, 37813 },
+ { 0x09EA, 37816 },
+ { 0x09EF, 37819 },
+ { 0x09E6, 37822 },
+ { 0x09EE, 37825 },
+ { 0x09ED, 37828 },
+ { 0x09E9, 37831 },
+ { 0x09F2, 37834 },
+ { 0x09F3, 37837 },
+ { 0x09C7, 37840 },
+ { 0x09BF, 37844 },
+ { 0x09CB, 37848 },
+ { 0x09C1, 37852 },
+ { 0x09BE, 37856 },
+ { 0x09C8, 37860 },
+ { 0x09CC, 37864 },
+ { 0x09C0, 37868 },
+ { 0x09C2, 37872 },
+ { 0x09E2, 37876 },
+ { 0x09C3, 37881 },
+ { 0x09E3, 37886 },
+ { 0x09C4, 37891 },
+ { 0x09FA, 37896 },
+ { 0x0985, 37898 },
+ { 0x098F, 37901 },
+ { 0x0987, 37904 },
+ { 0x0993, 37907 },
+ { 0x0989, 37910 },
+ { 0x0986, 37913 },
+ { 0x0990, 37916 },
+ { 0x0994, 37919 },
+ { 0x09AC, 37922 },
+ { 0x099A, 37925 },
+ { 0x09A6, 37928 },
+ { 0x0997, 37931 },
+ { 0x09B9, 37934 },
+ { 0x0988, 37937 },
+ { 0x099C, 37940 },
+ { 0x0995, 37943 },
+ { 0x09B2, 37946 },
+ { 0x09AE, 37949 },
+ { 0x09A8, 37952 },
+ { 0x09AA, 37955 },
+ { 0x09B0, 37958 },
+ { 0x09F1, 37961 },
+ { 0x09F0, 37967 },
+ { 0x09B8, 37973 },
+ { 0x09A4, 37976 },
+ { 0x098A, 37979 },
+ { 0x09AF, 37982 },
+ { 0x09AD, 37985 },
+ { 0x099B, 37988 },
+ { 0x09A1, 37991 },
+ { 0x09A7, 37994 },
+ { 0x0998, 37997 },
+ { 0x099D, 38000 },
+ { 0x0996, 38003 },
+ { 0x0999, 38006 },
+ { 0x09A3, 38009 },
+ { 0x099E, 38012 },
+ { 0x09AB, 38015 },
+ { 0x09DD, 38018 },
+ { 0x09DC, 38021 },
+ { 0x09B6, 38024 },
+ { 0x09B7, 38027 },
+ { 0x09A5, 38030 },
+ { 0x099F, 38033 },
+ { 0x09DF, 38036 },
+ { 0x09A2, 38039 },
+ { 0x09A0, 38042 },
+ { 0x09CE, 38045 },
+ { 0x098C, 38049 },
+ { 0x098B, 38053 },
+ { 0x09E1, 38057 },
+ { 0x09E0, 38061 },
+ { 0x09F4, 38065 },
+ { 0x09F8, 38069 },
+ { 0x09F5, 38077 },
+ { 0x09F7, 38081 },
+ { 0x09F6, 38085 },
+ { 0x09F9, 38089 },
+ { 0x232C, 38093 },
+ { 0x23E3, 38095 },
+ { 0x226C, 38099 },
+ { 0x2800, 38100 },
+ { 0x2801, 38103 },
+ { 0x2802, 38106 },
+ { 0x2804, 38109 },
+ { 0x2808, 38112 },
+ { 0x2810, 38115 },
+ { 0x2820, 38118 },
+ { 0x2840, 38121 },
+ { 0x2880, 38124 },
+ { 0x2803, 38127 },
+ { 0x2805, 38130 },
+ { 0x2809, 38133 },
+ { 0x2811, 38136 },
+ { 0x2821, 38139 },
+ { 0x2841, 38142 },
+ { 0x2881, 38145 },
+ { 0x2806, 38148 },
+ { 0x280A, 38151 },
+ { 0x2812, 38154 },
+ { 0x2822, 38157 },
+ { 0x2842, 38160 },
+ { 0x2882, 38163 },
+ { 0x280C, 38166 },
+ { 0x2814, 38169 },
+ { 0x2824, 38172 },
+ { 0x2844, 38175 },
+ { 0x2884, 38178 },
+ { 0x2818, 38181 },
+ { 0x2828, 38184 },
+ { 0x2848, 38187 },
+ { 0x2888, 38190 },
+ { 0x2830, 38193 },
+ { 0x2850, 38196 },
+ { 0x2890, 38199 },
+ { 0x2860, 38202 },
+ { 0x28A0, 38205 },
+ { 0x28C0, 38208 },
+ { 0x2807, 38211 },
+ { 0x280B, 38214 },
+ { 0x2813, 38217 },
+ { 0x2823, 38220 },
+ { 0x2843, 38223 },
+ { 0x2883, 38226 },
+ { 0x280D, 38229 },
+ { 0x2815, 38232 },
+ { 0x2825, 38235 },
+ { 0x2845, 38238 },
+ { 0x2885, 38241 },
+ { 0x2819, 38244 },
+ { 0x2829, 38247 },
+ { 0x2849, 38250 },
+ { 0x2889, 38253 },
+ { 0x2831, 38256 },
+ { 0x2851, 38259 },
+ { 0x2891, 38262 },
+ { 0x2861, 38265 },
+ { 0x28A1, 38268 },
+ { 0x28C1, 38271 },
+ { 0x280E, 38274 },
+ { 0x2816, 38277 },
+ { 0x2826, 38280 },
+ { 0x2846, 38283 },
+ { 0x2886, 38286 },
+ { 0x281A, 38289 },
+ { 0x282A, 38292 },
+ { 0x284A, 38295 },
+ { 0x288A, 38298 },
+ { 0x2832, 38301 },
+ { 0x2852, 38304 },
+ { 0x2892, 38307 },
+ { 0x2862, 38310 },
+ { 0x28A2, 38313 },
+ { 0x28C2, 38316 },
+ { 0x281C, 38319 },
+ { 0x282C, 38322 },
+ { 0x284C, 38325 },
+ { 0x288C, 38328 },
+ { 0x2834, 38331 },
+ { 0x2854, 38334 },
+ { 0x2894, 38337 },
+ { 0x2864, 38340 },
+ { 0x28A4, 38343 },
+ { 0x28C4, 38346 },
+ { 0x2838, 38349 },
+ { 0x2858, 38352 },
+ { 0x2898, 38355 },
+ { 0x2868, 38358 },
+ { 0x28A8, 38361 },
+ { 0x28C8, 38364 },
+ { 0x2870, 38367 },
+ { 0x28B0, 38370 },
+ { 0x28D0, 38373 },
+ { 0x28E0, 38376 },
+ { 0x280F, 38379 },
+ { 0x2817, 38382 },
+ { 0x2827, 38385 },
+ { 0x2847, 38388 },
+ { 0x2887, 38391 },
+ { 0x281B, 38394 },
+ { 0x282B, 38397 },
+ { 0x284B, 38400 },
+ { 0x288B, 38403 },
+ { 0x2833, 38406 },
+ { 0x2853, 38409 },
+ { 0x2893, 38412 },
+ { 0x2863, 38415 },
+ { 0x28A3, 38418 },
+ { 0x28C3, 38421 },
+ { 0x281D, 38424 },
+ { 0x282D, 38427 },
+ { 0x284D, 38430 },
+ { 0x288D, 38433 },
+ { 0x2835, 38436 },
+ { 0x2855, 38439 },
+ { 0x2895, 38442 },
+ { 0x2865, 38445 },
+ { 0x28A5, 38448 },
+ { 0x28C5, 38451 },
+ { 0x2839, 38454 },
+ { 0x2859, 38457 },
+ { 0x2899, 38460 },
+ { 0x2869, 38463 },
+ { 0x28A9, 38466 },
+ { 0x28C9, 38469 },
+ { 0x2871, 38472 },
+ { 0x28B1, 38475 },
+ { 0x28D1, 38478 },
+ { 0x28E1, 38481 },
+ { 0x281E, 38484 },
+ { 0x282E, 38487 },
+ { 0x284E, 38490 },
+ { 0x288E, 38493 },
+ { 0x2836, 38496 },
+ { 0x2856, 38499 },
+ { 0x2896, 38502 },
+ { 0x2866, 38505 },
+ { 0x28A6, 38508 },
+ { 0x28C6, 38511 },
+ { 0x283A, 38514 },
+ { 0x285A, 38517 },
+ { 0x289A, 38520 },
+ { 0x286A, 38523 },
+ { 0x28AA, 38526 },
+ { 0x28CA, 38529 },
+ { 0x2872, 38532 },
+ { 0x28B2, 38535 },
+ { 0x28D2, 38538 },
+ { 0x28E2, 38541 },
+ { 0x283C, 38544 },
+ { 0x285C, 38547 },
+ { 0x289C, 38550 },
+ { 0x286C, 38553 },
+ { 0x28AC, 38556 },
+ { 0x28CC, 38559 },
+ { 0x2874, 38562 },
+ { 0x28B4, 38565 },
+ { 0x28D4, 38568 },
+ { 0x28E4, 38571 },
+ { 0x2878, 38574 },
+ { 0x28B8, 38577 },
+ { 0x28D8, 38580 },
+ { 0x28E8, 38583 },
+ { 0x28F0, 38586 },
+ { 0x281F, 38589 },
+ { 0x282F, 38592 },
+ { 0x284F, 38595 },
+ { 0x288F, 38598 },
+ { 0x2837, 38601 },
+ { 0x2857, 38604 },
+ { 0x2897, 38607 },
+ { 0x2867, 38610 },
+ { 0x28A7, 38613 },
+ { 0x28C7, 38616 },
+ { 0x283B, 38619 },
+ { 0x285B, 38622 },
+ { 0x289B, 38625 },
+ { 0x286B, 38628 },
+ { 0x28AB, 38631 },
+ { 0x28CB, 38634 },
+ { 0x2873, 38637 },
+ { 0x28B3, 38640 },
+ { 0x28D3, 38643 },
+ { 0x28E3, 38646 },
+ { 0x283D, 38649 },
+ { 0x285D, 38652 },
+ { 0x289D, 38655 },
+ { 0x286D, 38658 },
+ { 0x28AD, 38661 },
+ { 0x28CD, 38664 },
+ { 0x2875, 38667 },
+ { 0x28B5, 38670 },
+ { 0x28D5, 38673 },
+ { 0x28E5, 38676 },
+ { 0x2879, 38679 },
+ { 0x28B9, 38682 },
+ { 0x28D9, 38685 },
+ { 0x28E9, 38688 },
+ { 0x28F1, 38691 },
+ { 0x283E, 38694 },
+ { 0x285E, 38697 },
+ { 0x289E, 38700 },
+ { 0x286E, 38703 },
+ { 0x28AE, 38706 },
+ { 0x28CE, 38709 },
+ { 0x2876, 38712 },
+ { 0x28B6, 38715 },
+ { 0x28D6, 38718 },
+ { 0x28E6, 38721 },
+ { 0x287A, 38724 },
+ { 0x28BA, 38727 },
+ { 0x28DA, 38730 },
+ { 0x28EA, 38733 },
+ { 0x28F2, 38736 },
+ { 0x287C, 38739 },
+ { 0x28BC, 38742 },
+ { 0x28DC, 38745 },
+ { 0x28EC, 38748 },
+ { 0x28F4, 38751 },
+ { 0x28F8, 38754 },
+ { 0x283F, 38757 },
+ { 0x285F, 38760 },
+ { 0x289F, 38763 },
+ { 0x286F, 38766 },
+ { 0x28AF, 38769 },
+ { 0x28CF, 38772 },
+ { 0x2877, 38775 },
+ { 0x28B7, 38778 },
+ { 0x28D7, 38781 },
+ { 0x28E7, 38784 },
+ { 0x287B, 38787 },
+ { 0x28BB, 38790 },
+ { 0x28DB, 38793 },
+ { 0x28EB, 38796 },
+ { 0x28F3, 38799 },
+ { 0x287D, 38802 },
+ { 0x28BD, 38805 },
+ { 0x28DD, 38808 },
+ { 0x28ED, 38811 },
+ { 0x28F5, 38814 },
+ { 0x28F9, 38817 },
+ { 0x287E, 38820 },
+ { 0x28BE, 38823 },
+ { 0x28DE, 38826 },
+ { 0x28EE, 38829 },
+ { 0x28F6, 38832 },
+ { 0x28FA, 38835 },
+ { 0x28FC, 38838 },
+ { 0x287F, 38841 },
+ { 0x28BF, 38844 },
+ { 0x28DF, 38847 },
+ { 0x28EF, 38850 },
+ { 0x28F7, 38853 },
+ { 0x28FB, 38856 },
+ { 0x28FD, 38859 },
+ { 0x28FE, 38862 },
+ { 0x28FF, 38865 },
+ { 0x2621, 38868 },
+ { 0x00B8, 38870 },
+ { 0x2299, 38871 },
+ { 0x229D, 38874 },
+ { 0x2742, 38876 },
+ { 0x2295, 38882 },
+ { 0x229A, 38884 },
+ { 0x2460, 38887 },
+ { 0x2465, 38890 },
+ { 0x2461, 38893 },
+ { 0x2464, 38896 },
+ { 0x2463, 38899 },
+ { 0x2468, 38902 },
+ { 0x24EA, 38905 },
+ { 0x2467, 38908 },
+ { 0x2466, 38911 },
+ { 0x2462, 38914 },
+ { 0x27B2, 38917 },
+ { 0x24D0, 38922 },
+ { 0x24D1, 38927 },
+ { 0x24D2, 38932 },
+ { 0x24D3, 38937 },
+ { 0x24D4, 38942 },
+ { 0x24D5, 38947 },
+ { 0x24D6, 38952 },
+ { 0x24D7, 38957 },
+ { 0x24D8, 38962 },
+ { 0x24D9, 38967 },
+ { 0x24DA, 38972 },
+ { 0x24DB, 38977 },
+ { 0x24DC, 38982 },
+ { 0x24DD, 38987 },
+ { 0x24DE, 38992 },
+ { 0x24DF, 38997 },
+ { 0x24E0, 39002 },
+ { 0x24E1, 39007 },
+ { 0x24E2, 39012 },
+ { 0x24E3, 39017 },
+ { 0x24E4, 39022 },
+ { 0x24E5, 39027 },
+ { 0x24E6, 39032 },
+ { 0x24E7, 39037 },
+ { 0x24E8, 39042 },
+ { 0x24E9, 39047 },
+ { 0x24B6, 39052 },
+ { 0x24B7, 39057 },
+ { 0x24B8, 39062 },
+ { 0x24B9, 39067 },
+ { 0x24BA, 39072 },
+ { 0x24BB, 39077 },
+ { 0x24BC, 39082 },
+ { 0x24BD, 39087 },
+ { 0x24BE, 39092 },
+ { 0x24BF, 39097 },
+ { 0x24C0, 39102 },
+ { 0x24C1, 39107 },
+ { 0x24C2, 39112 },
+ { 0x24C3, 39117 },
+ { 0x24C4, 39122 },
+ { 0x24C5, 39127 },
+ { 0x24C6, 39132 },
+ { 0x24C7, 39137 },
+ { 0x24C8, 39142 },
+ { 0x24C9, 39147 },
+ { 0x24CA, 39152 },
+ { 0x24CB, 39157 },
+ { 0x24CC, 39162 },
+ { 0x24CD, 39167 },
+ { 0x24CE, 39172 },
+ { 0x24CF, 39177 },
+ { 0x2296, 39182 },
+ { 0x2297, 39184 },
+ { 0x272A, 39186 },
+ { 0x29BE, 39189 },
+ { 0x29BF, 39192 },
+ { 0x229C, 39194 },
+ { 0x3266, 39196 },
+ { 0x3274, 39199 },
+ { 0x3268, 39203 },
+ { 0x3276, 39206 },
+ { 0x326D, 39210 },
+ { 0x327B, 39213 },
+ { 0x3267, 39217 },
+ { 0x3275, 39220 },
+ { 0x327E, 39224 },
+ { 0x3264, 39228 },
+ { 0x3272, 39231 },
+ { 0x3261, 39235 },
+ { 0x326F, 39238 },
+ { 0x3265, 39242 },
+ { 0x3273, 39245 },
+ { 0x3263, 39249 },
+ { 0x3271, 39252 },
+ { 0x3260, 39256 },
+ { 0x326E, 39259 },
+ { 0x3262, 39263 },
+ { 0x3270, 39266 },
+ { 0x3269, 39270 },
+ { 0x3277, 39273 },
+ { 0x326A, 39277 },
+ { 0x3278, 39280 },
+ { 0x326C, 39284 },
+ { 0x327A, 39287 },
+ { 0x326B, 39291 },
+ { 0x3279, 39294 },
+ { 0x327D, 39298 },
+ { 0x327C, 39302 },
+ { 0x2469, 39306 },
+ { 0x32BF, 39309 },
+ { 0x32B5, 39312 },
+ { 0x32B6, 39315 },
+ { 0x32BB, 39319 },
+ { 0x32B7, 39323 },
+ { 0x32BA, 39327 },
+ { 0x32B9, 39331 },
+ { 0x32BE, 39335 },
+ { 0x32BD, 39339 },
+ { 0x32BC, 39343 },
+ { 0x32B8, 39347 },
+ { 0x246A, 39351 },
+ { 0x325A, 39354 },
+ { 0x325B, 39357 },
+ { 0x32B1, 39361 },
+ { 0x325C, 39365 },
+ { 0x325F, 39369 },
+ { 0x325E, 39373 },
+ { 0x32B4, 39377 },
+ { 0x32B3, 39381 },
+ { 0x32B2, 39385 },
+ { 0x325D, 39389 },
+ { 0x246B, 39393 },
+ { 0x2473, 39396 },
+ { 0x3251, 39399 },
+ { 0x3256, 39403 },
+ { 0x3252, 39407 },
+ { 0x3255, 39411 },
+ { 0x3254, 39415 },
+ { 0x3259, 39419 },
+ { 0x3258, 39423 },
+ { 0x3257, 39427 },
+ { 0x3253, 39431 },
+ { 0x246E, 39435 },
+ { 0x246F, 39438 },
+ { 0x2471, 39441 },
+ { 0x246D, 39444 },
+ { 0x2472, 39447 },
+ { 0x246C, 39450 },
+ { 0x2470, 39453 },
+ { 0x3036, 39456 },
+ { 0x29B8, 39459 },
+ { 0x229B, 39462 },
+ { 0x2A38, 39465 },
+ { 0x2298, 39468 },
+ { 0x32D0, 39471 },
+ { 0x32D3, 39474 },
+ { 0x32D1, 39477 },
+ { 0x32D4, 39480 },
+ { 0x32D2, 39483 },
+ { 0x32E9, 39486 },
+ { 0x32EC, 39489 },
+ { 0x32EA, 39492 },
+ { 0x32ED, 39495 },
+ { 0x32EB, 39498 },
+ { 0x32D5, 39501 },
+ { 0x32D8, 39504 },
+ { 0x32D6, 39507 },
+ { 0x32D9, 39510 },
+ { 0x32D7, 39513 },
+ { 0x32EE, 39516 },
+ { 0x32F1, 39519 },
+ { 0x32EF, 39522 },
+ { 0x32F2, 39525 },
+ { 0x32F0, 39528 },
+ { 0x32E4, 39531 },
+ { 0x32E7, 39534 },
+ { 0x32E5, 39537 },
+ { 0x32E8, 39540 },
+ { 0x32E6, 39543 },
+ { 0x32F6, 39546 },
+ { 0x32F9, 39549 },
+ { 0x32F7, 39552 },
+ { 0x32FA, 39555 },
+ { 0x32F8, 39558 },
+ { 0x32DA, 39561 },
+ { 0x32DD, 39564 },
+ { 0x32DB, 39567 },
+ { 0x32DE, 39570 },
+ { 0x32DC, 39573 },
+ { 0x32DF, 39576 },
+ { 0x32E2, 39579 },
+ { 0x32E0, 39582 },
+ { 0x32E3, 39585 },
+ { 0x32E1, 39588 },
+ { 0x32FB, 39591 },
+ { 0x32FD, 39594 },
+ { 0x32FC, 39597 },
+ { 0x32FE, 39600 },
+ { 0x32F3, 39603 },
+ { 0x32F5, 39606 },
+ { 0x32F4, 39609 },
+ { 0x29B7, 39612 },
+ { 0x238A, 39614 },
+ { 0x29B6, 39617 },
+ { 0x32A6, 39620 },
+ { 0x3280, 39623 },
+ { 0x3285, 39626 },
+ { 0x3290, 39629 },
+ { 0x3289, 39632 },
+ { 0x3281, 39635 },
+ { 0x32A2, 39638 },
+ { 0x328B, 39641 },
+ { 0x3284, 39644 },
+ { 0x3283, 39647 },
+ { 0x3292, 39650 },
+ { 0x32A4, 39653 },
+ { 0x32A0, 39656 },
+ { 0x32A7, 39659 },
+ { 0x329A, 39662 },
+ { 0x328A, 39665 },
+ { 0x3294, 39668 },
+ { 0x3288, 39671 },
+ { 0x32A1, 39674 },
+ { 0x328D, 39677 },
+ { 0x328F, 39680 },
+ { 0x3287, 39683 },
+ { 0x3298, 39686 },
+ { 0x328E, 39689 },
+ { 0x32B0, 39692 },
+ { 0x329E, 39695 },
+ { 0x32A8, 39698 },
+ { 0x3286, 39701 },
+ { 0x3291, 39704 },
+ { 0x32AB, 39707 },
+ { 0x3282, 39710 },
+ { 0x328C, 39713 },
+ { 0x32A5, 39716 },
+ { 0x329B, 39719 },
+ { 0x3299, 39722 },
+ { 0x32A3, 39725 },
+ { 0x3293, 39728 },
+ { 0x3295, 39731 },
+ { 0x32AF, 39734 },
+ { 0x32A9, 39737 },
+ { 0x32AA, 39740 },
+ { 0x32AE, 39743 },
+ { 0x329C, 39746 },
+ { 0x329F, 39749 },
+ { 0x329D, 39752 },
+ { 0x3296, 39755 },
+ { 0x32AC, 39758 },
+ { 0x32AD, 39761 },
+ { 0x3297, 39764 },
+ { 0x29C0, 39767 },
+ { 0x2389, 39769 },
+ { 0x29C1, 39774 },
+ { 0x29B9, 39776 },
+ { 0x2A36, 39778 },
+ { 0x29BC, 39784 },
+ { 0x2332, 39788 },
+ { 0x222E, 39790 },
+ { 0x2694, 39792 },
+ { 0x7800, 39794 },
+ { 0x7801, 39797 },
+ { 0x7802, 39800 },
+ { 0x7803, 39803 },
+ { 0x7804, 39806 },
+ { 0x7805, 39809 },
+ { 0x7808, 39812 },
+ { 0x780A, 39815 },
+ { 0x780B, 39818 },
+ { 0x780C, 39821 },
+ { 0x780D, 39824 },
+ { 0x780E, 39827 },
+ { 0x780F, 39830 },
+ { 0x7810, 39833 },
+ { 0x7811, 39836 },
+ { 0x7812, 39839 },
+ { 0x7813, 39842 },
+ { 0x7814, 39845 },
+ { 0x7815, 39848 },
+ { 0x7816, 39851 },
+ { 0x7817, 39854 },
+ { 0x7818, 39857 },
+ { 0x7819, 39860 },
+ { 0x781A, 39863 },
+ { 0x781B, 39866 },
+ { 0x781C, 39869 },
+ { 0x781D, 39872 },
+ { 0x781E, 39875 },
+ { 0x781F, 39878 },
+ { 0x7820, 39881 },
+ { 0x7821, 39884 },
+ { 0x7822, 39887 },
+ { 0x7823, 39890 },
+ { 0x7824, 39893 },
+ { 0x7825, 39896 },
+ { 0x7826, 39899 },
+ { 0x7827, 39902 },
+ { 0x7828, 39905 },
+ { 0x7829, 39908 },
+ { 0x782A, 39911 },
+ { 0x782B, 39914 },
+ { 0x782C, 39917 },
+ { 0x782D, 39920 },
+ { 0x782E, 39923 },
+ { 0x782F, 39926 },
+ { 0x7830, 39929 },
+ { 0x7831, 39932 },
+ { 0x7832, 39935 },
+ { 0x7833, 39938 },
+ { 0x7834, 39941 },
+ { 0x7835, 39944 },
+ { 0x7837, 39947 },
+ { 0x7838, 39950 },
+ { 0x783C, 39953 },
+ { 0x783F, 39956 },
+ { 0x2396, 39959 },
+ { 0x7438, 39963 },
+ { 0x7434, 39967 },
+ { 0x7441, 39971 },
+ { 0x744A, 39975 },
+ { 0x744B, 39979 },
+ { 0x744C, 39983 },
+ { 0x7449, 39987 },
+ { 0x7445, 39991 },
+ { 0x744F, 39995 },
+ { 0x744E, 39999 },
+ { 0x7435, 40003 },
+ { 0x7436, 40007 },
+ { 0x743A, 40011 },
+ { 0x743C, 40015 },
+ { 0x744D, 40019 },
+ { 0x7447, 40023 },
+ { 0x7443, 40027 },
+ { 0x7440, 40031 },
+ { 0x743E, 40035 },
+ { 0x743F, 40039 },
+ { 0x7439, 40043 },
+ { 0x743B, 40047 },
+ { 0x7442, 40051 },
+ { 0x7437, 40055 },
+ { 0x7446, 40059 },
+ { 0x743D, 40063 },
+ { 0x742A, 40067 },
+ { 0x7429, 40072 },
+ { 0x7428, 40077 },
+ { 0x742C, 40082 },
+ { 0x742B, 40087 },
+ { 0x742D, 40092 },
+ { 0x7444, 40097 },
+ { 0x7448, 40101 },
+ { 0x7430, 40105 },
+ { 0x742F, 40110 },
+ { 0x742E, 40115 },
+ { 0x7432, 40120 },
+ { 0x7431, 40125 },
+ { 0x7433, 40130 },
+ { 0x7410, 40135 },
+ { 0x740C, 40139 },
+ { 0x7419, 40143 },
+ { 0x7422, 40147 },
+ { 0x7423, 40151 },
+ { 0x7424, 40155 },
+ { 0x7421, 40159 },
+ { 0x741D, 40163 },
+ { 0x7427, 40167 },
+ { 0x7426, 40171 },
+ { 0x740D, 40175 },
+ { 0x740E, 40179 },
+ { 0x7412, 40183 },
+ { 0x7414, 40187 },
+ { 0x7425, 40191 },
+ { 0x741F, 40195 },
+ { 0x741B, 40199 },
+ { 0x7418, 40203 },
+ { 0x7416, 40207 },
+ { 0x7417, 40211 },
+ { 0x7411, 40215 },
+ { 0x7413, 40219 },
+ { 0x741A, 40223 },
+ { 0x740F, 40227 },
+ { 0x741E, 40231 },
+ { 0x7415, 40235 },
+ { 0x7402, 40239 },
+ { 0x7401, 40244 },
+ { 0x7400, 40249 },
+ { 0x7404, 40254 },
+ { 0x7403, 40259 },
+ { 0x7405, 40264 },
+ { 0x741C, 40269 },
+ { 0x7420, 40273 },
+ { 0x7408, 40277 },
+ { 0x7407, 40282 },
+ { 0x7406, 40287 },
+ { 0x740A, 40292 },
+ { 0x7409, 40297 },
+ { 0x740B, 40302 },
+ { 0x2B18, 40307 },
+ { 0x2B16, 40312 },
+ { 0x2B17, 40317 },
+ { 0x2B19, 40322 },
+ { 0x22C4, 40327 },
+ { 0x2780, 40329 },
+ { 0x2785, 40334 },
+ { 0x2781, 40339 },
+ { 0x2784, 40344 },
+ { 0x2783, 40349 },
+ { 0x2788, 40354 },
+ { 0x2787, 40359 },
+ { 0x2786, 40364 },
+ { 0x2782, 40369 },
+ { 0x2789, 40374 },
+ { 0x2776, 40379 },
+ { 0x277B, 40384 },
+ { 0x2777, 40389 },
+ { 0x277A, 40394 },
+ { 0x2779, 40399 },
+ { 0x277E, 40404 },
+ { 0x277D, 40409 },
+ { 0x277C, 40414 },
+ { 0x2778, 40419 },
+ { 0x277F, 40424 },
+ { 0x278A, 40429 },
+ { 0x278F, 40435 },
+ { 0x278B, 40441 },
+ { 0x278E, 40447 },
+ { 0x278D, 40453 },
+ { 0x2792, 40459 },
+ { 0x2791, 40465 },
+ { 0x2790, 40471 },
+ { 0x278C, 40477 },
+ { 0x2793, 40483 },
+ { 0x2223, 40489 },
+ { 0x26AE, 40490 },
+ { 0x26A3, 40492 },
+ { 0x26A2, 40495 },
+ { 0x20AF, 40498 },
+ { 0x2208, 40500 },
+ { 0x22F5, 40502 },
+ { 0x22F9, 40507 },
+ { 0x22F2, 40513 },
+ { 0x22F6, 40519 },
+ { 0x22F8, 40523 },
+ { 0x22F3, 40527 },
+ { 0x27D2, 40537 },
+ { 0x2AD9, 40541 },
+ { 0x292F, 40545 },
+ { 0x292C, 40551 },
+ { 0x25C9, 40556 },
+ { 0x2ADC, 40557 },
+ { 0x26B1, 40558 },
+ { 0x20B2, 40560 },
+ { 0x1734, 40562 },
+ { 0x1732, 40565 },
+ { 0x1733, 40569 },
+ { 0x1720, 40573 },
+ { 0x1721, 40576 },
+ { 0x1722, 40579 },
+ { 0x172A, 40582 },
+ { 0x1727, 40585 },
+ { 0x1724, 40588 },
+ { 0x1731, 40591 },
+ { 0x1723, 40594 },
+ { 0x172E, 40597 },
+ { 0x172B, 40600 },
+ { 0x1728, 40603 },
+ { 0x1729, 40606 },
+ { 0x172D, 40609 },
+ { 0x1730, 40612 },
+ { 0x1726, 40615 },
+ { 0x172F, 40618 },
+ { 0x172C, 40621 },
+ { 0x1725, 40624 },
+ { 0x20B4, 40627 },
+ { 0x206C, 40629 },
+ { 0x206A, 40633 },
+ { 0x25D9, 40636 },
+ { 0x25D8, 40639 },
+ { 0x2643, 40641 },
+ { 0x0CD6, 40642 },
+ { 0x0CBC, 40646 },
+ { 0x0CCD, 40649 },
+ { 0x0C83, 40652 },
+ { 0x0C82, 40655 },
+ { 0x0CBD, 40658 },
+ { 0x0CF1, 40661 },
+ { 0x0CF2, 40664 },
+ { 0x0CE7, 40667 },
+ { 0x0CEC, 40670 },
+ { 0x0CE8, 40673 },
+ { 0x0CEB, 40676 },
+ { 0x0CEA, 40679 },
+ { 0x0CEF, 40682 },
+ { 0x0CE6, 40685 },
+ { 0x0CEE, 40688 },
+ { 0x0CED, 40691 },
+ { 0x0CE9, 40694 },
+ { 0x0CC6, 40697 },
+ { 0x0CBF, 40701 },
+ { 0x0CCA, 40705 },
+ { 0x0CC1, 40709 },
+ { 0x0CBE, 40713 },
+ { 0x0CC8, 40717 },
+ { 0x0CCC, 40721 },
+ { 0x0CC7, 40725 },
+ { 0x0CC0, 40729 },
+ { 0x0CCB, 40733 },
+ { 0x0CC2, 40737 },
+ { 0x0CE2, 40741 },
+ { 0x0CC3, 40746 },
+ { 0x0CE3, 40751 },
+ { 0x0CC4, 40756 },
+ { 0x0CD5, 40761 },
+ { 0x0C85, 40764 },
+ { 0x0C8E, 40767 },
+ { 0x0C87, 40770 },
+ { 0x0C92, 40773 },
+ { 0x0C89, 40776 },
+ { 0x0C86, 40779 },
+ { 0x0C90, 40782 },
+ { 0x0C94, 40785 },
+ { 0x0CAC, 40788 },
+ { 0x0C9A, 40791 },
+ { 0x0CA6, 40794 },
+ { 0x0C8F, 40797 },
+ { 0x0CDE, 40800 },
+ { 0x0C97, 40803 },
+ { 0x0CB9, 40806 },
+ { 0x0C88, 40809 },
+ { 0x0C9C, 40812 },
+ { 0x0C95, 40815 },
+ { 0x0CB2, 40818 },
+ { 0x0CAE, 40821 },
+ { 0x0CA8, 40824 },
+ { 0x0C93, 40827 },
+ { 0x0CAA, 40830 },
+ { 0x0CB0, 40833 },
+ { 0x0CB8, 40836 },
+ { 0x0CA4, 40839 },
+ { 0x0C8A, 40842 },
+ { 0x0CB5, 40845 },
+ { 0x0CAF, 40848 },
+ { 0x0CAD, 40851 },
+ { 0x0C9B, 40854 },
+ { 0x0CA1, 40857 },
+ { 0x0CA7, 40860 },
+ { 0x0C98, 40863 },
+ { 0x0C9D, 40866 },
+ { 0x0C96, 40869 },
+ { 0x0CB3, 40872 },
+ { 0x0C99, 40875 },
+ { 0x0CA3, 40878 },
+ { 0x0C9E, 40881 },
+ { 0x0CAB, 40884 },
+ { 0x0CB1, 40887 },
+ { 0x0CB6, 40890 },
+ { 0x0CB7, 40893 },
+ { 0x0CA5, 40896 },
+ { 0x0C9F, 40899 },
+ { 0x0CA2, 40902 },
+ { 0x0CA0, 40905 },
+ { 0x0C8C, 40908 },
+ { 0x0C8B, 40912 },
+ { 0x0CE1, 40916 },
+ { 0x0CE0, 40920 },
+ { 0x32CF, 40924 },
+ { 0x2228, 40927 },
+ { 0x2A52, 40929 },
+ { 0x2A62, 40934 },
+ { 0x2A63, 40939 },
+ { 0x2A5B, 40944 },
+ { 0x2A5D, 40949 },
+ { 0x2A59, 40954 },
+ { 0x2227, 40959 },
+ { 0x2A51, 40961 },
+ { 0x2A5E, 40966 },
+ { 0x2A60, 40971 },
+ { 0x2A5A, 40976 },
+ { 0x2A5F, 40981 },
+ { 0x2A5C, 40985 },
+ { 0x25CA, 40990 },
+ { 0x27E0, 40991 },
+ { 0xA010, 40996 },
+ { 0xA019, 41001 },
+ { 0xA007, 41006 },
+ { 0xA004, 41011 },
+ { 0xA015, 41015 },
+ { 0xA01E, 41020 },
+ { 0xA00C, 41025 },
+ { 0xA011, 41030 },
+ { 0xA01A, 41035 },
+ { 0xA008, 41040 },
+ { 0xA02B, 41045 },
+ { 0xA000, 41048 },
+ { 0xA014, 41052 },
+ { 0xA01D, 41057 },
+ { 0xA00B, 41062 },
+ { 0xA013, 41067 },
+ { 0xA01C, 41072 },
+ { 0xA00A, 41077 },
+ { 0xA018, 41082 },
+ { 0xA021, 41087 },
+ { 0xA00F, 41092 },
+ { 0xA022, 41097 },
+ { 0xA002, 41100 },
+ { 0xA017, 41104 },
+ { 0xA020, 41109 },
+ { 0xA00E, 41114 },
+ { 0xA005, 41119 },
+ { 0xA02A, 41123 },
+ { 0xA003, 41126 },
+ { 0xA016, 41130 },
+ { 0xA01F, 41135 },
+ { 0xA00D, 41140 },
+ { 0xA001, 41145 },
+ { 0xA012, 41149 },
+ { 0xA01B, 41154 },
+ { 0xA009, 41159 },
+ { 0xA006, 41164 },
+ { 0xA028, 41168 },
+ { 0xA024, 41171 },
+ { 0xA023, 41174 },
+ { 0xA026, 41177 },
+ { 0xA027, 41180 },
+ { 0xA029, 41183 },
+ { 0xA025, 41186 },
+ { 0x2720, 41189 },
+ { 0x263F, 41191 },
+ { 0x22EF, 41192 },
+ { 0x9121, 41195 },
+ { 0x9122, 41199 },
+ { 0x9123, 41203 },
+ { 0x9124, 41209 },
+ { 0x911E, 41215 },
+ { 0x911F, 41219 },
+ { 0x9120, 41225 },
+ { 0x9143, 41231 },
+ { 0x918E, 41235 },
+ { 0x910A, 41238 },
+ { 0x9196, 41242 },
+ { 0x9135, 41245 },
+ { 0x9109, 41249 },
+ { 0x91A8, 41253 },
+ { 0x9176, 41258 },
+ { 0x9174, 41262 },
+ { 0x9178, 41266 },
+ { 0x917A, 41270 },
+ { 0x9164, 41274 },
+ { 0x9142, 41280 },
+ { 0x91DD, 41286 },
+ { 0x910C, 41290 },
+ { 0x91B4, 41293 },
+ { 0x91B5, 41296 },
+ { 0x9125, 41300 },
+ { 0x9126, 41304 },
+ { 0x912C, 41308 },
+ { 0x912D, 41312 },
+ { 0x91C0, 41316 },
+ { 0x91BF, 41320 },
+ { 0x915E, 41324 },
+ { 0x913C, 41328 },
+ { 0x91B0, 41332 },
+ { 0x9106, 41337 },
+ { 0x9153, 41342 },
+ { 0x9152, 41347 },
+ { 0x9159, 41352 },
+ { 0x9144, 41356 },
+ { 0x9197, 41360 },
+ { 0x919A, 41363 },
+ { 0x9199, 41367 },
+ { 0x9157, 41371 },
+ { 0x91B3, 41375 },
+ { 0x9175, 41379 },
+ { 0x9173, 41383 },
+ { 0x9177, 41387 },
+ { 0x9179, 41391 },
+ { 0x9114, 41395 },
+ { 0x915C, 41398 },
+ { 0x91CF, 41401 },
+ { 0x9102, 41404 },
+ { 0x9191, 41408 },
+ { 0x9195, 41411 },
+ { 0x9194, 41417 },
+ { 0x91B7, 41422 },
+ { 0x91C1, 41425 },
+ { 0x91C2, 41430 },
+ { 0x9190, 41435 },
+ { 0x913A, 41438 },
+ { 0x91AF, 41442 },
+ { 0x91AE, 41447 },
+ { 0x918F, 41451 },
+ { 0x9107, 41454 },
+ { 0x910B, 41459 },
+ { 0x9130, 41462 },
+ { 0x9131, 41466 },
+ { 0x9105, 41470 },
+ { 0x91D3, 41474 },
+ { 0x915D, 41477 },
+ { 0x913B, 41481 },
+ { 0x9112, 41485 },
+ { 0x91B8, 41489 },
+ { 0x91C3, 41492 },
+ { 0x9145, 41496 },
+ { 0x91D5, 41501 },
+ { 0x9134, 41504 },
+ { 0x9104, 41508 },
+ { 0x91A9, 41512 },
+ { 0x912B, 41516 },
+ { 0x912A, 41520 },
+ { 0x9101, 41524 },
+ { 0x9160, 41528 },
+ { 0x913E, 41532 },
+ { 0x91B6, 41536 },
+ { 0x91BB, 41539 },
+ { 0x91C5, 41542 },
+ { 0x91BC, 41546 },
+ { 0x9136, 41550 },
+ { 0x9137, 41554 },
+ { 0x9108, 41558 },
+ { 0x9100, 41562 },
+ { 0x91D2, 41566 },
+ { 0x9147, 41570 },
+ { 0x9146, 41575 },
+ { 0x918D, 41580 },
+ { 0x91C7, 41583 },
+ { 0x91C9, 41590 },
+ { 0x91C8, 41598 },
+ { 0x91CA, 41605 },
+ { 0x91CB, 41612 },
+ { 0x91CC, 41619 },
+ { 0x91CD, 41627 },
+ { 0x91CE, 41635 },
+ { 0x9115, 41643 },
+ { 0x9113, 41646 },
+ { 0x915B, 41649 },
+ { 0x915A, 41654 },
+ { 0x9110, 41659 },
+ { 0x9111, 41662 },
+ { 0x912E, 41666 },
+ { 0x912F, 41670 },
+ { 0x91D4, 41674 },
+ { 0x915F, 41677 },
+ { 0x913D, 41681 },
+ { 0x9133, 41685 },
+ { 0x9132, 41690 },
+ { 0x9103, 41695 },
+ { 0x91D7, 41700 },
+ { 0x916A, 41703 },
+ { 0x916B, 41707 },
+ { 0x916C, 41711 },
+ { 0x9198, 41715 },
+ { 0x9129, 41719 },
+ { 0x9158, 41724 },
+ { 0x9116, 41728 },
+ { 0x919B, 41732 },
+ { 0x919C, 41736 },
+ { 0x919D, 41740 },
+ { 0x919E, 41744 },
+ { 0x919F, 41748 },
+ { 0x91A0, 41752 },
+ { 0x91A1, 41756 },
+ { 0x91A2, 41760 },
+ { 0x91A3, 41764 },
+ { 0x91A4, 41768 },
+ { 0x91A5, 41772 },
+ { 0x910D, 41776 },
+ { 0x910E, 41780 },
+ { 0x910F, 41784 },
+ { 0x911B, 41788 },
+ { 0x91D8, 41792 },
+ { 0x91DC, 41795 },
+ { 0x9149, 41799 },
+ { 0x9151, 41805 },
+ { 0x9150, 41812 },
+ { 0x9148, 41819 },
+ { 0x914F, 41825 },
+ { 0x914E, 41831 },
+ { 0x914B, 41837 },
+ { 0x914A, 41843 },
+ { 0x914D, 41849 },
+ { 0x914C, 41855 },
+ { 0x9117, 41861 },
+ { 0x91AB, 41865 },
+ { 0x9186, 41870 },
+ { 0x9189, 41874 },
+ { 0x9185, 41878 },
+ { 0x91AA, 41882 },
+ { 0x9187, 41887 },
+ { 0x91AD, 41891 },
+ { 0x9165, 41896 },
+ { 0x9182, 41900 },
+ { 0x9188, 41904 },
+ { 0x917B, 41908 },
+ { 0x918A, 41912 },
+ { 0x916E, 41917 },
+ { 0x916F, 41921 },
+ { 0x9170, 41925 },
+ { 0x9171, 41929 },
+ { 0x9172, 41933 },
+ { 0x917D, 41937 },
+ { 0x918B, 41941 },
+ { 0x917F, 41946 },
+ { 0x91AC, 41950 },
+ { 0x917C, 41954 },
+ { 0x9167, 41958 },
+ { 0x9168, 41962 },
+ { 0x9169, 41966 },
+ { 0x916D, 41970 },
+ { 0x9166, 41975 },
+ { 0x917E, 41980 },
+ { 0x9181, 41984 },
+ { 0x9180, 41988 },
+ { 0x9192, 41992 },
+ { 0x911A, 41995 },
+ { 0x9119, 41999 },
+ { 0x91B1, 42003 },
+ { 0x91B2, 42007 },
+ { 0x91D0, 42011 },
+ { 0x91D1, 42016 },
+ { 0x91D9, 42021 },
+ { 0x91DA, 42024 },
+ { 0x91D6, 42028 },
+ { 0x91DB, 42031 },
+ { 0x9161, 42035 },
+ { 0x913F, 42039 },
+ { 0x9183, 42043 },
+ { 0x9184, 42047 },
+ { 0x91C4, 42051 },
+ { 0x91BA, 42055 },
+ { 0x91B9, 42059 },
+ { 0x91C6, 42063 },
+ { 0x91BE, 42067 },
+ { 0x91BD, 42071 },
+ { 0x911C, 42075 },
+ { 0x9118, 42079 },
+ { 0x9193, 42083 },
+ { 0x911D, 42086 },
+ { 0x91A6, 42090 },
+ { 0x91A7, 42093 },
+ { 0x9156, 42096 },
+ { 0x918C, 42100 },
+ { 0x9138, 42103 },
+ { 0x9139, 42107 },
+ { 0x9163, 42111 },
+ { 0x9141, 42115 },
+ { 0x9162, 42119 },
+ { 0x9140, 42123 },
+ { 0x9155, 42127 },
+ { 0x9154, 42133 },
+ { 0x1091, 42139 },
+ { 0x1096, 42143 },
+ { 0x1092, 42147 },
+ { 0x1095, 42151 },
+ { 0x1094, 42155 },
+ { 0x1099, 42159 },
+ { 0x1090, 42163 },
+ { 0x1098, 42167 },
+ { 0x1097, 42171 },
+ { 0x1093, 42175 },
+ { 0x1037, 42179 },
+ { 0x103A, 42183 },
+ { 0x1087, 42186 },
+ { 0x1088, 42190 },
+ { 0x1089, 42194 },
+ { 0x108A, 42198 },
+ { 0x108B, 42202 },
+ { 0x108C, 42207 },
+ { 0x108D, 42212 },
+ { 0x108F, 42218 },
+ { 0x104A, 42223 },
+ { 0x1039, 42227 },
+ { 0x104B, 42230 },
+ { 0x1038, 42233 },
+ { 0x1069, 42236 },
+ { 0x106A, 42242 },
+ { 0x106B, 42248 },
+ { 0x106C, 42254 },
+ { 0x106D, 42260 },
+ { 0x1036, 42266 },
+ { 0x1064, 42269 },
+ { 0x1063, 42276 },
+ { 0x1041, 42282 },
+ { 0x1046, 42285 },
+ { 0x1042, 42288 },
+ { 0x1045, 42291 },
+ { 0x1044, 42294 },
+ { 0x1049, 42297 },
+ { 0x1040, 42300 },
+ { 0x1048, 42303 },
+ { 0x1047, 42306 },
+ { 0x1043, 42309 },
+ { 0x1031, 42312 },
+ { 0x1035, 42316 },
+ { 0x102D, 42321 },
+ { 0x102F, 42325 },
+ { 0x102C, 42329 },
+ { 0x1032, 42333 },
+ { 0x102E, 42337 },
+ { 0x1030, 42341 },
+ { 0x1034, 42345 },
+ { 0x1033, 42350 },
+ { 0x1071, 42355 },
+ { 0x1062, 42361 },
+ { 0x1084, 42367 },
+ { 0x1085, 42372 },
+ { 0x1083, 42378 },
+ { 0x1086, 42383 },
+ { 0x102B, 42389 },
+ { 0x1073, 42394 },
+ { 0x1074, 42399 },
+ { 0x1072, 42404 },
+ { 0x1058, 42409 },
+ { 0x1056, 42414 },
+ { 0x1059, 42419 },
+ { 0x1057, 42424 },
+ { 0x1067, 42429 },
+ { 0x1068, 42436 },
+ { 0x1021, 42443 },
+ { 0x1027, 42446 },
+ { 0x1023, 42449 },
+ { 0x1029, 42452 },
+ { 0x1025, 42455 },
+ { 0x102A, 42458 },
+ { 0x1017, 42461 },
+ { 0x1005, 42464 },
+ { 0x1012, 42467 },
+ { 0x1002, 42470 },
+ { 0x101F, 42473 },
+ { 0x1024, 42476 },
+ { 0x1007, 42479 },
+ { 0x1000, 42482 },
+ { 0x101C, 42485 },
+ { 0x1019, 42488 },
+ { 0x1014, 42491 },
+ { 0x1015, 42494 },
+ { 0x101B, 42497 },
+ { 0x101E, 42500 },
+ { 0x1010, 42503 },
+ { 0x1026, 42506 },
+ { 0x101D, 42509 },
+ { 0x101A, 42512 },
+ { 0x1018, 42515 },
+ { 0x1006, 42518 },
+ { 0x100D, 42521 },
+ { 0x1013, 42524 },
+ { 0x1003, 42527 },
+ { 0x1008, 42530 },
+ { 0x1001, 42533 },
+ { 0x1020, 42536 },
+ { 0x1028, 42539 },
+ { 0x105C, 42543 },
+ { 0x105D, 42547 },
+ { 0x105B, 42551 },
+ { 0x105A, 42555 },
+ { 0x1004, 42559 },
+ { 0x100F, 42562 },
+ { 0x1009, 42565 },
+ { 0x1016, 42568 },
+ { 0x1050, 42571 },
+ { 0x1051, 42574 },
+ { 0x1011, 42577 },
+ { 0x100B, 42580 },
+ { 0x100E, 42583 },
+ { 0x100A, 42586 },
+ { 0x1061, 42589 },
+ { 0x1022, 42594 },
+ { 0x107F, 42598 },
+ { 0x1078, 42602 },
+ { 0x107B, 42606 },
+ { 0x107E, 42610 },
+ { 0x1077, 42614 },
+ { 0x1081, 42618 },
+ { 0x1075, 42622 },
+ { 0x107C, 42626 },
+ { 0x1079, 42630 },
+ { 0x1076, 42634 },
+ { 0x107A, 42638 },
+ { 0x107D, 42642 },
+ { 0x1080, 42646 },
+ { 0x100C, 42650 },
+ { 0x103F, 42653 },
+ { 0x108E, 42657 },
+ { 0x106E, 42662 },
+ { 0x106F, 42668 },
+ { 0x1070, 42674 },
+ { 0x1054, 42680 },
+ { 0x1052, 42684 },
+ { 0x1055, 42688 },
+ { 0x1053, 42692 },
+ { 0x1066, 42696 },
+ { 0x1065, 42702 },
+ { 0x109E, 42708 },
+ { 0x109F, 42712 },
+ { 0x104F, 42716 },
+ { 0x104C, 42719 },
+ { 0x104D, 42722 },
+ { 0x104E, 42725 },
+ { 0x1060, 42728 },
+ { 0x105F, 42734 },
+ { 0x105E, 42740 },
+ { 0x1082, 42746 },
+ { 0x103E, 42752 },
+ { 0x103C, 42757 },
+ { 0x103D, 42762 },
+ { 0x103B, 42767 },
+ { 0x22AF, 42772 },
+ { 0x2288, 42779 },
+ { 0x2289, 42786 },
+ { 0x2270, 42793 },
+ { 0x2274, 42798 },
+ { 0x2278, 42803 },
+ { 0x2271, 42807 },
+ { 0x2279, 42812 },
+ { 0x2275, 42816 },
+ { 0x2247, 42821 },
+ { 0x2646, 42827 },
+ { 0x206F, 42828 },
+ { 0x27AF, 42831 },
+ { 0x27B1, 42837 },
+ { 0x29A6, 42843 },
+ { 0x29A7, 42847 },
+ { 0x74A1, 42851 },
+ { 0x74A6, 42854 },
+ { 0x74A2, 42857 },
+ { 0x74A5, 42860 },
+ { 0x74A4, 42863 },
+ { 0x74A9, 42866 },
+ { 0x74A0, 42869 },
+ { 0x74A8, 42872 },
+ { 0x74A7, 42875 },
+ { 0x74A3, 42878 },
+ { 0x7496, 42881 },
+ { 0x7497, 42884 },
+ { 0x7498, 42887 },
+ { 0x7499, 42890 },
+ { 0x749A, 42893 },
+ { 0x749B, 42896 },
+ { 0x7481, 42899 },
+ { 0x749C, 42902 },
+ { 0x748D, 42905 },
+ { 0x748C, 42908 },
+ { 0x7494, 42911 },
+ { 0x7483, 42914 },
+ { 0x749D, 42917 },
+ { 0x7487, 42920 },
+ { 0x7488, 42923 },
+ { 0x7482, 42926 },
+ { 0x7484, 42929 },
+ { 0x7495, 42932 },
+ { 0x748A, 42935 },
+ { 0x7485, 42938 },
+ { 0x7493, 42941 },
+ { 0x7480, 42944 },
+ { 0x748B, 42947 },
+ { 0x7486, 42950 },
+ { 0x748F, 42953 },
+ { 0x7490, 42956 },
+ { 0x7491, 42959 },
+ { 0x7492, 42962 },
+ { 0x748E, 42965 },
+ { 0x7489, 42968 },
+ { 0x2202, 42971 },
+ { 0x0025, 42973 },
+ { 0x00B6, 42975 },
+ { 0x2669, 42977 },
+ { 0x23B7, 42979 },
+ { 0x2B41, 42982 },
+ { 0x2B47, 42988 },
+ { 0x005C, 42994 },
+ { 0x29F7, 42996 },
+ { 0x29F5, 43001 },
+ { 0x27C8, 43004 },
+ { 0x2765, 43008 },
+ { 0x2767, 43013 },
+ { 0x213A, 43017 },
+ { 0x2613, 43020 },
+ { 0x2108, 43021 },
+ { 0x00A7, 43022 },
+ { 0x2313, 43024 },
+ { 0x2120, 43025 },
+ { 0x26B9, 43027 },
+ { 0x746D, 43028 },
+ { 0x7466, 43031 },
+ { 0x746A, 43034 },
+ { 0x7479, 43037 },
+ { 0x7455, 43040 },
+ { 0x7473, 43043 },
+ { 0x7469, 43046 },
+ { 0x7471, 43049 },
+ { 0x747A, 43052 },
+ { 0x7478, 43055 },
+ { 0x7468, 43058 },
+ { 0x7477, 43061 },
+ { 0x745A, 43064 },
+ { 0x747D, 43067 },
+ { 0x7470, 43070 },
+ { 0x7467, 43073 },
+ { 0x747B, 43076 },
+ { 0x7453, 43079 },
+ { 0x745C, 43082 },
+ { 0x747E, 43085 },
+ { 0x7472, 43088 },
+ { 0x746F, 43091 },
+ { 0x7474, 43094 },
+ { 0x7476, 43097 },
+ { 0x746C, 43100 },
+ { 0x7451, 43103 },
+ { 0x745D, 43106 },
+ { 0x7462, 43109 },
+ { 0x7458, 43112 },
+ { 0x747F, 43115 },
+ { 0x745F, 43118 },
+ { 0x745B, 43121 },
+ { 0x7459, 43124 },
+ { 0x7452, 43127 },
+ { 0x7464, 43130 },
+ { 0x7465, 43133 },
+ { 0x7475, 43136 },
+ { 0x7450, 43139 },
+ { 0x746E, 43142 },
+ { 0x7456, 43145 },
+ { 0x745E, 43148 },
+ { 0x746B, 43151 },
+ { 0x747C, 43154 },
+ { 0x7463, 43157 },
+ { 0x7461, 43160 },
+ { 0x7454, 43163 },
+ { 0x7457, 43166 },
+ { 0x7460, 43169 },
+ { 0x29E2, 43172 },
+ { 0x2A9D, 43174 },
+ { 0x2A9E, 43177 },
+ { 0x2A9F, 43180 },
+ { 0x2AA0, 43186 },
+ { 0x2A6C, 43192 },
+ { 0x0DCA, 43195 },
+ { 0x0D83, 43198 },
+ { 0x0D82, 43201 },
+ { 0x0DDA, 43204 },
+ { 0x0DD3, 43209 },
+ { 0x0DD6, 43214 },
+ { 0x0DD1, 43219 },
+ { 0x0DF3, 43224 },
+ { 0x0DF2, 43229 },
+ { 0x0DD2, 43234 },
+ { 0x0DD4, 43239 },
+ { 0x0DD0, 43244 },
+ { 0x0DDB, 43249 },
+ { 0x0DD9, 43254 },
+ { 0x0DDD, 43258 },
+ { 0x0DDC, 43265 },
+ { 0x0DDE, 43271 },
+ { 0x0DCF, 43277 },
+ { 0x0DDF, 43281 },
+ { 0x0DD8, 43285 },
+ { 0x0DB9, 43289 },
+ { 0x0D85, 43293 },
+ { 0x0D91, 43296 },
+ { 0x0D89, 43299 },
+ { 0x0D94, 43302 },
+ { 0x0D8B, 43305 },
+ { 0x0D86, 43308 },
+ { 0x0D87, 43311 },
+ { 0x0D93, 43314 },
+ { 0x0D96, 43317 },
+ { 0x0DBD, 43320 },
+ { 0x0DB1, 43324 },
+ { 0x0DC3, 43328 },
+ { 0x0D92, 43332 },
+ { 0x0DC6, 43335 },
+ { 0x0DC4, 43338 },
+ { 0x0D8A, 43341 },
+ { 0x0D9E, 43344 },
+ { 0x0DB8, 43348 },
+ { 0x0D95, 43351 },
+ { 0x0DBB, 43354 },
+ { 0x0DB3, 43357 },
+ { 0x0D9F, 43361 },
+ { 0x0DA6, 43365 },
+ { 0x0DAC, 43369 },
+ { 0x0DC1, 43373 },
+ { 0x0DA5, 43377 },
+ { 0x0DA4, 43382 },
+ { 0x0D8C, 43386 },
+ { 0x0DC0, 43389 },
+ { 0x0DBA, 43392 },
+ { 0x0D88, 43395 },
+ { 0x0D8F, 43398 },
+ { 0x0D8D, 43401 },
+ { 0x0D90, 43404 },
+ { 0x0D8E, 43407 },
+ { 0x0DC5, 43410 },
+ { 0x0DAB, 43414 },
+ { 0x0DC2, 43418 },
+ { 0x0DB6, 43422 },
+ { 0x0DA0, 43426 },
+ { 0x0DAF, 43430 },
+ { 0x0D9C, 43434 },
+ { 0x0DA2, 43438 },
+ { 0x0D9A, 43442 },
+ { 0x0DB4, 43446 },
+ { 0x0DAD, 43450 },
+ { 0x0DA9, 43454 },
+ { 0x0DA7, 43458 },
+ { 0x0DB7, 43462 },
+ { 0x0DA1, 43466 },
+ { 0x0DB0, 43470 },
+ { 0x0D9D, 43474 },
+ { 0x0DA3, 43478 },
+ { 0x0D9B, 43482 },
+ { 0x0DB5, 43486 },
+ { 0x0DAE, 43490 },
+ { 0x0DAA, 43494 },
+ { 0x0DA8, 43498 },
+ { 0x0DF4, 43502 },
+ { 0x273A, 43505 },
+ { 0x2A95, 43508 },
+ { 0x2A97, 43513 },
+ { 0x2A96, 43521 },
+ { 0x2A98, 43526 },
+ { 0x2A57, 43534 },
+ { 0x2A58, 43537 },
+ { 0x2AAA, 43540 },
+ { 0x2AAC, 43542 },
+ { 0x2603, 43547 },
+ { 0x002F, 43548 },
+ { 0x29F6, 43549 },
+ { 0x2747, 43552 },
+ { 0x22A1, 43553 },
+ { 0x2E2C, 43556 },
+ { 0x229E, 43560 },
+ { 0x229F, 43562 },
+ { 0x29C7, 43564 },
+ { 0x22A0, 43567 },
+ { 0x29C4, 43569 },
+ { 0x29C8, 43573 },
+ { 0x29C5, 43575 },
+ { 0x29C6, 43579 },
+ { 0x222F, 43581 },
+ { 0x1714, 43583 },
+ { 0x1712, 43586 },
+ { 0x1713, 43590 },
+ { 0x1700, 43594 },
+ { 0x1701, 43597 },
+ { 0x1702, 43600 },
+ { 0x170A, 43603 },
+ { 0x1707, 43606 },
+ { 0x1704, 43609 },
+ { 0x1711, 43612 },
+ { 0x1703, 43615 },
+ { 0x170E, 43618 },
+ { 0x170B, 43621 },
+ { 0x1708, 43624 },
+ { 0x1709, 43627 },
+ { 0x1710, 43630 },
+ { 0x1706, 43633 },
+ { 0x170F, 43636 },
+ { 0x170C, 43639 },
+ { 0x1705, 43642 },
+ { 0x27A2, 43645 },
+ { 0x27A3, 43649 },
+ { 0x0FBE, 43653 },
+ { 0x0FBF, 43657 },
+ { 0x0F3D, 43664 },
+ { 0x0F3C, 43669 },
+ { 0x0F38, 43674 },
+ { 0x0F3B, 43678 },
+ { 0x0F3A, 43683 },
+ { 0x0F11, 43688 },
+ { 0x0F39, 43694 },
+ { 0x0F07, 43698 },
+ { 0x0F0A, 43705 },
+ { 0x0F03, 43711 },
+ { 0x0F02, 43720 },
+ { 0x0F01, 43729 },
+ { 0x0F14, 43736 },
+ { 0x0F35, 43740 },
+ { 0x0F37, 43746 },
+ { 0x0F0E, 43752 },
+ { 0x0FD2, 43756 },
+ { 0x0F10, 43760 },
+ { 0x0F12, 43765 },
+ { 0x0F0D, 43770 },
+ { 0x0F34, 43773 },
+ { 0x0FD0, 43777 },
+ { 0x0F09, 43784 },
+ { 0x0F06, 43789 },
+ { 0x0F13, 43797 },
+ { 0x0F36, 43805 },
+ { 0x0FD1, 43813 },
+ { 0x0F08, 43820 },
+ { 0x0F0F, 43824 },
+ { 0x0F85, 43828 },
+ { 0x0F05, 43831 },
+ { 0x0FD4, 43838 },
+ { 0x0F84, 43847 },
+ { 0x0F04, 43850 },
+ { 0x0FD3, 43857 },
+ { 0x0F0C, 43866 },
+ { 0x0F0B, 43871 },
+ { 0x0F8A, 43875 },
+ { 0x0F8B, 43880 },
+ { 0x0F88, 43885 },
+ { 0x0F86, 43890 },
+ { 0x0F3F, 43894 },
+ { 0x0F82, 43898 },
+ { 0x0F83, 43904 },
+ { 0x0F3E, 43908 },
+ { 0x0F89, 43912 },
+ { 0x0F1D, 43916 },
+ { 0x0FCF, 43921 },
+ { 0x0FCE, 43926 },
+ { 0x0F1E, 43932 },
+ { 0x0F1A, 43937 },
+ { 0x0F1C, 43942 },
+ { 0x0F1F, 43947 },
+ { 0x0F1B, 43953 },
+ { 0x0F7E, 43958 },
+ { 0x0F7F, 43964 },
+ { 0x0F87, 43968 },
+ { 0x0F21, 43972 },
+ { 0x0F26, 43975 },
+ { 0x0F22, 43978 },
+ { 0x0F25, 43981 },
+ { 0x0F24, 43984 },
+ { 0x0F2A, 43987 },
+ { 0x0F2F, 43991 },
+ { 0x0F2B, 43995 },
+ { 0x0F2E, 43999 },
+ { 0x0F2D, 44003 },
+ { 0x0F32, 44007 },
+ { 0x0F33, 44011 },
+ { 0x0F31, 44015 },
+ { 0x0F30, 44019 },
+ { 0x0F2C, 44023 },
+ { 0x0F29, 44027 },
+ { 0x0F20, 44030 },
+ { 0x0F28, 44033 },
+ { 0x0F27, 44036 },
+ { 0x0F23, 44039 },
+ { 0x0F7A, 44042 },
+ { 0x0F72, 44046 },
+ { 0x0F7C, 44050 },
+ { 0x0F74, 44054 },
+ { 0x0F71, 44058 },
+ { 0x0F7B, 44062 },
+ { 0x0F73, 44066 },
+ { 0x0F7D, 44070 },
+ { 0x0F75, 44074 },
+ { 0x0F78, 44078 },
+ { 0x0F76, 44083 },
+ { 0x0F79, 44088 },
+ { 0x0F77, 44093 },
+ { 0x0F80, 44098 },
+ { 0x0F81, 44103 },
+ { 0x0F68, 44108 },
+ { 0x0F60, 44111 },
+ { 0x0F56, 44114 },
+ { 0x0F45, 44117 },
+ { 0x0F51, 44120 },
+ { 0x0F42, 44123 },
+ { 0x0F67, 44126 },
+ { 0x0F47, 44129 },
+ { 0x0F40, 44132 },
+ { 0x0F63, 44135 },
+ { 0x0F58, 44138 },
+ { 0x0F53, 44141 },
+ { 0x0F54, 44144 },
+ { 0x0F62, 44147 },
+ { 0x0F66, 44150 },
+ { 0x0F4F, 44153 },
+ { 0x0F5D, 44156 },
+ { 0x0F61, 44159 },
+ { 0x0F5F, 44162 },
+ { 0x0F57, 44165 },
+ { 0x0F46, 44168 },
+ { 0x0F4C, 44171 },
+ { 0x0F52, 44174 },
+ { 0x0F5B, 44177 },
+ { 0x0F43, 44180 },
+ { 0x0F41, 44183 },
+ { 0x0F6B, 44186 },
+ { 0x0F44, 44189 },
+ { 0x0F4E, 44192 },
+ { 0x0F49, 44195 },
+ { 0x0F55, 44198 },
+ { 0x0F6C, 44201 },
+ { 0x0F64, 44204 },
+ { 0x0F65, 44207 },
+ { 0x0F50, 44210 },
+ { 0x0F59, 44213 },
+ { 0x0F4A, 44216 },
+ { 0x0F5E, 44219 },
+ { 0x0F4D, 44222 },
+ { 0x0F5C, 44225 },
+ { 0x0F69, 44228 },
+ { 0x0F5A, 44231 },
+ { 0x0F4B, 44234 },
+ { 0x0F6A, 44237 },
+ { 0x0FC9, 44241 },
+ { 0x0FCC, 44245 },
+ { 0x0FCB, 44251 },
+ { 0x0FCA, 44257 },
+ { 0x0FC5, 44263 },
+ { 0x0FC7, 44267 },
+ { 0x0FC4, 44273 },
+ { 0x0FC8, 44277 },
+ { 0x0FC6, 44281 },
+ { 0x0F15, 44285 },
+ { 0x0F16, 44290 },
+ { 0x0F00, 44295 },
+ { 0x0FB8, 44298 },
+ { 0x0FB0, 44302 },
+ { 0x0FA6, 44306 },
+ { 0x0F95, 44310 },
+ { 0x0FA1, 44314 },
+ { 0x0F92, 44318 },
+ { 0x0FB7, 44322 },
+ { 0x0F97, 44326 },
+ { 0x0F90, 44330 },
+ { 0x0FB3, 44334 },
+ { 0x0FA8, 44338 },
+ { 0x0FA3, 44342 },
+ { 0x0FA4, 44346 },
+ { 0x0FB2, 44350 },
+ { 0x0FB6, 44354 },
+ { 0x0F9F, 44358 },
+ { 0x0FAD, 44362 },
+ { 0x0FB1, 44366 },
+ { 0x0FAF, 44370 },
+ { 0x0FA7, 44374 },
+ { 0x0F96, 44378 },
+ { 0x0F9C, 44382 },
+ { 0x0FA2, 44386 },
+ { 0x0FAB, 44390 },
+ { 0x0F93, 44394 },
+ { 0x0F91, 44398 },
+ { 0x0F94, 44402 },
+ { 0x0F9E, 44406 },
+ { 0x0F99, 44410 },
+ { 0x0FA5, 44414 },
+ { 0x0FB4, 44418 },
+ { 0x0FB5, 44422 },
+ { 0x0FA0, 44426 },
+ { 0x0FA9, 44430 },
+ { 0x0F9A, 44434 },
+ { 0x0FAE, 44438 },
+ { 0x0F9D, 44442 },
+ { 0x0FAC, 44446 },
+ { 0x0FB9, 44450 },
+ { 0x0FAA, 44454 },
+ { 0x0F9B, 44458 },
+ { 0x0FBC, 44462 },
+ { 0x0FBA, 44467 },
+ { 0x0FBB, 44472 },
+ { 0x0F17, 44477 },
+ { 0x0F19, 44484 },
+ { 0x0F18, 44489 },
+ { 0x0FC2, 44494 },
+ { 0x0FC3, 44499 },
+ { 0x0FC0, 44504 },
+ { 0x0FC1, 44509 },
+ { 0x2632, 44514 },
+ { 0x2631, 44517 },
+ { 0x2634, 44520 },
+ { 0x2637, 44523 },
+ { 0x2635, 44526 },
+ { 0x2630, 44529 },
+ { 0x2633, 44532 },
+ { 0x2636, 44535 },
+ { 0x219F, 44538 },
+ { 0x2191, 44542 },
+ { 0x2912, 44544 },
+ { 0x21A5, 44548 },
+ { 0x21B0, 44552 },
+ { 0x21B1, 44557 },
+ { 0x21DE, 44562 },
+ { 0x2909, 44567 },
+ { 0x21C5, 44572 },
+ { 0x2B06, 44578 },
+ { 0x21E7, 44581 },
+ { 0x21EB, 44584 },
+ { 0x21ED, 44589 },
+ { 0x21EC, 44597 },
+ { 0x21EA, 44605 },
+ { 0x21EE, 44610 },
+ { 0x21EF, 44614 },
+ { 0x2E15, 44620 },
+ { 0x21E1, 44622 },
+ { 0x21D1, 44625 },
+ { 0x21C8, 44628 },
+ { 0x290A, 44631 },
+ { 0x2958, 44634 },
+ { 0x2960, 44641 },
+ { 0x2963, 44648 },
+ { 0x296E, 44659 },
+ { 0x2954, 44670 },
+ { 0x295C, 44677 },
+ { 0x21BF, 44684 },
+ { 0x21BE, 44689 },
+ { 0x27F0, 44694 },
+ { 0x2949, 44697 },
+ { 0x270C, 44703 },
+ { 0x26A0, 44705 },
+ { 0x270D, 44707 },
+ { 0x206D, 44709 },
+ { 0x206B, 44713 },
+ { 0x2708, 44716 },
+ { 0x212B, 44717 },
+ { 0x2652, 44719 },
+ { 0x0589, 44720 },
+ { 0x055D, 44723 },
+ { 0x056E, 44725 },
+ { 0x0581, 44729 },
+ { 0x0564, 44733 },
+ { 0x0567, 44737 },
+ { 0x0568, 44741 },
+ { 0x0570, 44745 },
+ { 0x0571, 44749 },
+ { 0x0585, 44753 },
+ { 0x057C, 44757 },
+ { 0x0569, 44761 },
+ { 0x0578, 44765 },
+ { 0x0575, 44769 },
+ { 0x0566, 44773 },
+ { 0x0561, 44777 },
+ { 0x0562, 44781 },
+ { 0x0579, 44785 },
+ { 0x0565, 44789 },
+ { 0x0586, 44793 },
+ { 0x0563, 44797 },
+ { 0x056B, 44801 },
+ { 0x0584, 44805 },
+ { 0x056F, 44809 },
+ { 0x0574, 44813 },
+ { 0x0576, 44817 },
+ { 0x057A, 44821 },
+ { 0x0580, 44825 },
+ { 0x057D, 44829 },
+ { 0x0577, 44833 },
+ { 0x057E, 44837 },
+ { 0x056D, 44841 },
+ { 0x056A, 44845 },
+ { 0x0573, 44849 },
+ { 0x0572, 44853 },
+ { 0x057B, 44857 },
+ { 0x056C, 44861 },
+ { 0x0583, 44865 },
+ { 0x057F, 44869 },
+ { 0x0582, 44873 },
+ { 0x0587, 44877 },
+ { 0x6B14, 44882 },
+ { 0x6B15, 44887 },
+ { 0x6B13, 44892 },
+ { 0x6B17, 44897 },
+ { 0x6B16, 44902 },
+ { 0x058A, 44907 },
+ { 0x053E, 44909 },
+ { 0x0551, 44913 },
+ { 0x0534, 44917 },
+ { 0x0537, 44921 },
+ { 0x0538, 44925 },
+ { 0x0540, 44929 },
+ { 0x0541, 44933 },
+ { 0x0555, 44937 },
+ { 0x054C, 44941 },
+ { 0x0539, 44945 },
+ { 0x0548, 44949 },
+ { 0x0545, 44953 },
+ { 0x0536, 44957 },
+ { 0x0531, 44961 },
+ { 0x0532, 44965 },
+ { 0x0549, 44969 },
+ { 0x0535, 44973 },
+ { 0x0556, 44977 },
+ { 0x0533, 44981 },
+ { 0x053B, 44985 },
+ { 0x0554, 44989 },
+ { 0x053F, 44993 },
+ { 0x0544, 44997 },
+ { 0x0546, 45001 },
+ { 0x054A, 45005 },
+ { 0x0550, 45009 },
+ { 0x054D, 45013 },
+ { 0x0547, 45017 },
+ { 0x054E, 45021 },
+ { 0x053D, 45025 },
+ { 0x053A, 45029 },
+ { 0x0543, 45033 },
+ { 0x0542, 45037 },
+ { 0x054B, 45041 },
+ { 0x053C, 45045 },
+ { 0x0553, 45049 },
+ { 0x054F, 45053 },
+ { 0x0552, 45057 },
+ { 0x055B, 45061 },
+ { 0x0559, 45064 },
+ { 0x055E, 45070 },
+ { 0x055A, 45073 },
+ { 0x055C, 45075 },
+ { 0x055F, 45078 },
+ { 0x002A, 45081 },
+ { 0x2217, 45082 },
+ { 0x2042, 45084 },
+ { 0x1B44, 45085 },
+ { 0x1B00, 45088 },
+ { 0x1B01, 45092 },
+ { 0x1B04, 45096 },
+ { 0x1B02, 45099 },
+ { 0x1B03, 45102 },
+ { 0x1B34, 45105 },
+ { 0x1B5E, 45108 },
+ { 0x1B5F, 45111 },
+ { 0x1B5D, 45114 },
+ { 0x1B51, 45117 },
+ { 0x1B56, 45120 },
+ { 0x1B52, 45123 },
+ { 0x1B55, 45126 },
+ { 0x1B54, 45129 },
+ { 0x1B59, 45132 },
+ { 0x1B50, 45135 },
+ { 0x1B58, 45138 },
+ { 0x1B57, 45141 },
+ { 0x1B53, 45144 },
+ { 0x1B5A, 45147 },
+ { 0x1B3C, 45149 },
+ { 0x1B3D, 45154 },
+ { 0x1B3A, 45160 },
+ { 0x1B3B, 45165 },
+ { 0x1B36, 45171 },
+ { 0x1B37, 45175 },
+ { 0x1B38, 45180 },
+ { 0x1B39, 45184 },
+ { 0x1B42, 45189 },
+ { 0x1B43, 45193 },
+ { 0x1B3E, 45198 },
+ { 0x1B3F, 45202 },
+ { 0x1B41, 45207 },
+ { 0x1B40, 45213 },
+ { 0x1B35, 45218 },
+ { 0x1B5C, 45222 },
+ { 0x1B29, 45224 },
+ { 0x1B2A, 45227 },
+ { 0x1B18, 45231 },
+ { 0x1B19, 45234 },
+ { 0x1B24, 45238 },
+ { 0x1B25, 45241 },
+ { 0x1B1F, 45245 },
+ { 0x1B20, 45250 },
+ { 0x1B48, 45255 },
+ { 0x1B15, 45259 },
+ { 0x1B16, 45262 },
+ { 0x1B33, 45266 },
+ { 0x1B1A, 45269 },
+ { 0x1B1B, 45272 },
+ { 0x1B13, 45276 },
+ { 0x1B14, 45279 },
+ { 0x1B2E, 45283 },
+ { 0x1B0D, 45286 },
+ { 0x1B0E, 45290 },
+ { 0x1B2B, 45295 },
+ { 0x1B26, 45298 },
+ { 0x1B21, 45301 },
+ { 0x1B27, 45305 },
+ { 0x1B28, 45308 },
+ { 0x1B2D, 45312 },
+ { 0x1B0B, 45315 },
+ { 0x1B0C, 45319 },
+ { 0x1B32, 45324 },
+ { 0x1B30, 45327 },
+ { 0x1B31, 45331 },
+ { 0x1B22, 45335 },
+ { 0x1B23, 45338 },
+ { 0x1B1D, 45342 },
+ { 0x1B1E, 45346 },
+ { 0x1B49, 45351 },
+ { 0x1B2F, 45355 },
+ { 0x1B2C, 45358 },
+ { 0x1B45, 45361 },
+ { 0x1B17, 45365 },
+ { 0x1B1C, 45368 },
+ { 0x1B4A, 45371 },
+ { 0x1B46, 45375 },
+ { 0x1B47, 45379 },
+ { 0x1B05, 45383 },
+ { 0x1B06, 45386 },
+ { 0x1B0F, 45390 },
+ { 0x1B07, 45393 },
+ { 0x1B08, 45396 },
+ { 0x1B11, 45400 },
+ { 0x1B12, 45403 },
+ { 0x1B09, 45407 },
+ { 0x1B0A, 45410 },
+ { 0x1B10, 45414 },
+ { 0x1B4B, 45417 },
+ { 0x1B5B, 45421 },
+ { 0x1B64, 45423 },
+ { 0x1B6A, 45427 },
+ { 0x1B65, 45432 },
+ { 0x1B62, 45437 },
+ { 0x1B66, 45441 },
+ { 0x1B61, 45445 },
+ { 0x1B63, 45449 },
+ { 0x1B67, 45453 },
+ { 0x1B69, 45457 },
+ { 0x1B68, 45461 },
+ { 0x1B73, 45465 },
+ { 0x1B72, 45470 },
+ { 0x1B6C, 45475 },
+ { 0x1B6B, 45480 },
+ { 0x1B6E, 45485 },
+ { 0x1B71, 45490 },
+ { 0x1B6D, 45497 },
+ { 0x1B70, 45502 },
+ { 0x1B6F, 45509 },
+ { 0x1B78, 45514 },
+ { 0x1B7C, 45520 },
+ { 0x1B79, 45526 },
+ { 0x1B7A, 45532 },
+ { 0x1B7B, 45538 },
+ { 0x1B75, 45544 },
+ { 0x1B74, 45550 },
+ { 0x1B77, 45556 },
+ { 0x1B76, 45562 },
+ { 0x1B60, 45568 },
+ { 0x31B7, 45570 },
+ { 0x31B6, 45574 },
+ { 0x31B4, 45578 },
+ { 0x31B5, 45582 },
+ { 0x311A, 45586 },
+ { 0x3105, 45589 },
+ { 0x3118, 45592 },
+ { 0x3109, 45595 },
+ { 0x311C, 45598 },
+ { 0x3108, 45601 },
+ { 0x310D, 45604 },
+ { 0x310F, 45607 },
+ { 0x3127, 45610 },
+ { 0x3110, 45613 },
+ { 0x310E, 45616 },
+ { 0x310C, 45619 },
+ { 0x3107, 45622 },
+ { 0x310B, 45625 },
+ { 0x311B, 45628 },
+ { 0x3106, 45631 },
+ { 0x3111, 45634 },
+ { 0x3116, 45637 },
+ { 0x3119, 45640 },
+ { 0x310A, 45643 },
+ { 0x3128, 45646 },
+ { 0x312A, 45649 },
+ { 0x3112, 45652 },
+ { 0x3117, 45655 },
+ { 0x311E, 45658 },
+ { 0x31B0, 45661 },
+ { 0x3122, 45664 },
+ { 0x3120, 45667 },
+ { 0x31A0, 45670 },
+ { 0x3114, 45673 },
+ { 0x31A4, 45676 },
+ { 0x311D, 45679 },
+ { 0x311F, 45682 },
+ { 0x3123, 45685 },
+ { 0x3126, 45688 },
+ { 0x312C, 45691 },
+ { 0x31A3, 45694 },
+ { 0x312D, 45697 },
+ { 0x31AC, 45700 },
+ { 0x31A8, 45703 },
+ { 0x3129, 45706 },
+ { 0x31A2, 45709 },
+ { 0x312B, 45712 },
+ { 0x31B1, 45715 },
+ { 0x31A6, 45718 },
+ { 0x3121, 45721 },
+ { 0x3115, 45724 },
+ { 0x3113, 45727 },
+ { 0x31A1, 45730 },
+ { 0x3124, 45733 },
+ { 0x31A9, 45736 },
+ { 0x3125, 45739 },
+ { 0x31A5, 45742 },
+ { 0x31AA, 45745 },
+ { 0x31AD, 45748 },
+ { 0x31B2, 45751 },
+ { 0x31A7, 45754 },
+ { 0x31AB, 45757 },
+ { 0x31AE, 45760 },
+ { 0x31AF, 45763 },
+ { 0x31B3, 45766 },
+ { 0x1A1F, 45769 },
+ { 0x1A19, 45773 },
+ { 0x1A17, 45777 },
+ { 0x1A1A, 45781 },
+ { 0x1A18, 45785 },
+ { 0x1A1B, 45789 },
+ { 0x1A15, 45793 },
+ { 0x1A05, 45796 },
+ { 0x1A0C, 45799 },
+ { 0x1A09, 45802 },
+ { 0x1A01, 45805 },
+ { 0x1A16, 45808 },
+ { 0x1A0D, 45811 },
+ { 0x1A00, 45814 },
+ { 0x1A12, 45817 },
+ { 0x1A06, 45820 },
+ { 0x1A0A, 45823 },
+ { 0x1A04, 45826 },
+ { 0x1A11, 45829 },
+ { 0x1A14, 45832 },
+ { 0x1A08, 45835 },
+ { 0x1A13, 45838 },
+ { 0x1A10, 45841 },
+ { 0x1A07, 45844 },
+ { 0x1A02, 45847 },
+ { 0x1A0B, 45850 },
+ { 0x1A0E, 45853 },
+ { 0x1A03, 45856 },
+ { 0x1A0F, 45859 },
+ { 0x1A1E, 45862 },
+ { 0x25CE, 45864 },
+ { 0x2624, 45865 },
+ { 0x140A, 45866 },
+ { 0x14A1, 45869 },
+ { 0x1401, 45872 },
+ { 0x155D, 45875 },
+ { 0x1403, 45878 },
+ { 0x1483, 45881 },
+ { 0x14EA, 45884 },
+ { 0x14BB, 45887 },
+ { 0x14D0, 45890 },
+ { 0x1405, 45893 },
+ { 0x1449, 45896 },
+ { 0x1585, 45899 },
+ { 0x1550, 45902 },
+ { 0x1505, 45905 },
+ { 0x1466, 45908 },
+ { 0x153E, 45911 },
+ { 0x140B, 45914 },
+ { 0x141C, 45917 },
+ { 0x142E, 45920 },
+ { 0x1490, 45923 },
+ { 0x1489, 45926 },
+ { 0x148B, 45929 },
+ { 0x148D, 45932 },
+ { 0x142B, 45935 },
+ { 0x1559, 45938 },
+ { 0x1553, 45941 },
+ { 0x1555, 45944 },
+ { 0x1557, 45947 },
+ { 0x157D, 45950 },
+ { 0x1404, 45953 },
+ { 0x142C, 45956 },
+ { 0x1472, 45959 },
+ { 0x146B, 45962 },
+ { 0x146D, 45965 },
+ { 0x146F, 45968 },
+ { 0x1484, 45971 },
+ { 0x14DA, 45974 },
+ { 0x14D3, 45977 },
+ { 0x15A6, 45980 },
+ { 0x14D5, 45983 },
+ { 0x14D7, 45986 },
+ { 0x14AA, 45989 },
+ { 0x14A3, 45992 },
+ { 0x14BD, 45995 },
+ { 0x14A5, 45998 },
+ { 0x14A7, 46001 },
+ { 0x14C7, 46004 },
+ { 0x14C0, 46007 },
+ { 0x1595, 46010 },
+ { 0x14D2, 46013 },
+ { 0x14C2, 46016 },
+ { 0x14C4, 46019 },
+ { 0x142D, 46022 },
+ { 0x1406, 46025 },
+ { 0x1438, 46028 },
+ { 0x142F, 46031 },
+ { 0x1431, 46034 },
+ { 0x1433, 46037 },
+ { 0x1583, 46040 },
+ { 0x157F, 46043 },
+ { 0x1581, 46046 },
+ { 0x154B, 46049 },
+ { 0x1542, 46052 },
+ { 0x1546, 46055 },
+ { 0x1548, 46058 },
+ { 0x14F4, 46061 },
+ { 0x14ED, 46064 },
+ { 0x1525, 46067 },
+ { 0x14EF, 46070 },
+ { 0x14F1, 46073 },
+ { 0x1507, 46076 },
+ { 0x1455, 46079 },
+ { 0x144C, 46082 },
+ { 0x156A, 46085 },
+ { 0x144E, 46088 },
+ { 0x1450, 46091 },
+ { 0x1417, 46094 },
+ { 0x140C, 46097 },
+ { 0x140E, 46100 },
+ { 0x1412, 46103 },
+ { 0x152D, 46106 },
+ { 0x1526, 46109 },
+ { 0x1528, 46112 },
+ { 0x152A, 46115 },
+ { 0x1402, 46118 },
+ { 0x1491, 46121 },
+ { 0x166D, 46124 },
+ { 0x148C, 46128 },
+ { 0x148E, 46131 },
+ { 0x149C, 46134 },
+ { 0x1492, 46137 },
+ { 0x1494, 46140 },
+ { 0x1498, 46143 },
+ { 0x155A, 46146 },
+ { 0x1556, 46149 },
+ { 0x1558, 46152 },
+ { 0x1473, 46155 },
+ { 0x146E, 46158 },
+ { 0x1470, 46161 },
+ { 0x147E, 46164 },
+ { 0x1474, 46167 },
+ { 0x1476, 46170 },
+ { 0x147A, 46173 },
+ { 0x14DB, 46176 },
+ { 0x15A4, 46179 },
+ { 0x15A0, 46182 },
+ { 0x15A2, 46185 },
+ { 0x14D6, 46188 },
+ { 0x14D8, 46191 },
+ { 0x14E6, 46194 },
+ { 0x14DC, 46197 },
+ { 0x14DE, 46200 },
+ { 0x14E2, 46203 },
+ { 0x14AB, 46206 },
+ { 0x14A6, 46209 },
+ { 0x14A8, 46212 },
+ { 0x14B6, 46215 },
+ { 0x14AC, 46218 },
+ { 0x14AE, 46221 },
+ { 0x14B2, 46224 },
+ { 0x14C8, 46227 },
+ { 0x1593, 46230 },
+ { 0x158F, 46233 },
+ { 0x1591, 46236 },
+ { 0x14C3, 46239 },
+ { 0x1596, 46242 },
+ { 0x14C5, 46245 },
+ { 0x14CB, 46248 },
+ { 0x14C9, 46251 },
+ { 0x1439, 46254 },
+ { 0x1432, 46257 },
+ { 0x1434, 46260 },
+ { 0x1444, 46263 },
+ { 0x143A, 46266 },
+ { 0x143C, 46269 },
+ { 0x1440, 46272 },
+ { 0x1584, 46275 },
+ { 0x166F, 46278 },
+ { 0x1580, 46281 },
+ { 0x1582, 46284 },
+ { 0x154C, 46287 },
+ { 0x1547, 46290 },
+ { 0x1549, 46293 },
+ { 0x14F5, 46296 },
+ { 0x1515, 46299 },
+ { 0x1510, 46302 },
+ { 0x1511, 46305 },
+ { 0x1513, 46308 },
+ { 0x14F0, 46311 },
+ { 0x14F2, 46314 },
+ { 0x1500, 46317 },
+ { 0x14F6, 46320 },
+ { 0x14F8, 46323 },
+ { 0x14FC, 46326 },
+ { 0x1456, 46329 },
+ { 0x1566, 46332 },
+ { 0x155E, 46335 },
+ { 0x1560, 46338 },
+ { 0x1564, 46341 },
+ { 0x144F, 46344 },
+ { 0x1451, 46347 },
+ { 0x146A, 46350 },
+ { 0x1467, 46353 },
+ { 0x156F, 46356 },
+ { 0x1468, 46359 },
+ { 0x1469, 46362 },
+ { 0x1461, 46365 },
+ { 0x1457, 46368 },
+ { 0x1459, 46371 },
+ { 0x145D, 46374 },
+ { 0x1573, 46377 },
+ { 0x1570, 46380 },
+ { 0x1571, 46383 },
+ { 0x1572, 46386 },
+ { 0x1419, 46389 },
+ { 0x1410, 46392 },
+ { 0x1414, 46395 },
+ { 0x152E, 46398 },
+ { 0x1529, 46401 },
+ { 0x152B, 46404 },
+ { 0x1539, 46407 },
+ { 0x152F, 46410 },
+ { 0x1531, 46413 },
+ { 0x1535, 46416 },
+ { 0x148A, 46419 },
+ { 0x149E, 46422 },
+ { 0x1496, 46425 },
+ { 0x149A, 46428 },
+ { 0x1554, 46431 },
+ { 0x166E, 46434 },
+ { 0x155B, 46438 },
+ { 0x146C, 46441 },
+ { 0x1480, 46444 },
+ { 0x1478, 46447 },
+ { 0x147C, 46450 },
+ { 0x14D4, 46453 },
+ { 0x15A5, 46456 },
+ { 0x15A1, 46459 },
+ { 0x15A3, 46462 },
+ { 0x14E8, 46465 },
+ { 0x14E0, 46468 },
+ { 0x14E4, 46471 },
+ { 0x14A4, 46474 },
+ { 0x14B8, 46477 },
+ { 0x14B0, 46480 },
+ { 0x14B4, 46483 },
+ { 0x14C1, 46486 },
+ { 0x1594, 46489 },
+ { 0x1670, 46492 },
+ { 0x1590, 46495 },
+ { 0x1592, 46498 },
+ { 0x1675, 46501 },
+ { 0x1671, 46504 },
+ { 0x1673, 46507 },
+ { 0x14CD, 46510 },
+ { 0x1430, 46513 },
+ { 0x1446, 46516 },
+ { 0x143E, 46519 },
+ { 0x1442, 46522 },
+ { 0x157E, 46525 },
+ { 0x1545, 46528 },
+ { 0x154E, 46531 },
+ { 0x14EE, 46534 },
+ { 0x1516, 46537 },
+ { 0x1512, 46540 },
+ { 0x1514, 46543 },
+ { 0x1521, 46546 },
+ { 0x1517, 46549 },
+ { 0x1519, 46552 },
+ { 0x151D, 46555 },
+ { 0x1502, 46558 },
+ { 0x14FA, 46561 },
+ { 0x14FE, 46564 },
+ { 0x144D, 46567 },
+ { 0x1567, 46570 },
+ { 0x1562, 46573 },
+ { 0x1565, 46576 },
+ { 0x1589, 46579 },
+ { 0x1586, 46582 },
+ { 0x1587, 46585 },
+ { 0x1588, 46588 },
+ { 0x156E, 46591 },
+ { 0x156B, 46594 },
+ { 0x156C, 46597 },
+ { 0x156D, 46600 },
+ { 0x1463, 46603 },
+ { 0x145B, 46606 },
+ { 0x145F, 46609 },
+ { 0x1527, 46612 },
+ { 0x153B, 46615 },
+ { 0x1533, 46618 },
+ { 0x1537, 46621 },
+ { 0x1422, 46624 },
+ { 0x142A, 46630 },
+ { 0x1429, 46635 },
+ { 0x1424, 46639 },
+ { 0x141F, 46643 },
+ { 0x1420, 46647 },
+ { 0x1423, 46651 },
+ { 0x1428, 46657 },
+ { 0x1421, 46663 },
+ { 0x1425, 46669 },
+ { 0x1426, 46674 },
+ { 0x1427, 46681 },
+ { 0x158E, 46686 },
+ { 0x1676, 46689 },
+ { 0x1672, 46692 },
+ { 0x1674, 46695 },
+ { 0x1523, 46698 },
+ { 0x151B, 46701 },
+ { 0x151F, 46704 },
+ { 0x1568, 46707 },
+ { 0x14EC, 46710 },
+ { 0x1552, 46714 },
+ { 0x155F, 46718 },
+ { 0x1561, 46722 },
+ { 0x1563, 46726 },
+ { 0x1543, 46730 },
+ { 0x14BF, 46734 },
+ { 0x15C3, 46738 },
+ { 0x15C0, 46742 },
+ { 0x15C1, 46746 },
+ { 0x15C2, 46750 },
+ { 0x161A, 46754 },
+ { 0x1615, 46758 },
+ { 0x14A2, 46762 },
+ { 0x1541, 46766 },
+ { 0x159A, 46770 },
+ { 0x1597, 46774 },
+ { 0x1598, 46778 },
+ { 0x1599, 46782 },
+ { 0x141D, 46786 },
+ { 0x1407, 46790 },
+ { 0x148F, 46794 },
+ { 0x1471, 46798 },
+ { 0x14D9, 46802 },
+ { 0x14A9, 46806 },
+ { 0x14C6, 46810 },
+ { 0x1435, 46814 },
+ { 0x14F3, 46818 },
+ { 0x1452, 46822 },
+ { 0x152C, 46826 },
+ { 0x1448, 46830 },
+ { 0x15AF, 46834 },
+ { 0x144B, 46838 },
+ { 0x1409, 46842 },
+ { 0x15EE, 46846 },
+ { 0x1646, 46850 },
+ { 0x1454, 46854 },
+ { 0x1408, 46858 },
+ { 0x15F4, 46862 },
+ { 0x15F1, 46866 },
+ { 0x15F3, 46870 },
+ { 0x15F0, 46874 },
+ { 0x15EF, 46878 },
+ { 0x1437, 46882 },
+ { 0x161B, 46886 },
+ { 0x1617, 46890 },
+ { 0x1619, 46894 },
+ { 0x1616, 46898 },
+ { 0x1614, 46902 },
+ { 0x1601, 46906 },
+ { 0x1627, 46910 },
+ { 0x1624, 46914 },
+ { 0x1626, 46918 },
+ { 0x1623, 46922 },
+ { 0x1622, 46926 },
+ { 0x160D, 46930 },
+ { 0x160A, 46934 },
+ { 0x160C, 46938 },
+ { 0x1609, 46942 },
+ { 0x1608, 46946 },
+ { 0x1607, 46950 },
+ { 0x1604, 46954 },
+ { 0x14D1, 46958 },
+ { 0x1606, 46962 },
+ { 0x1603, 46966 },
+ { 0x1602, 46970 },
+ { 0x15ED, 46974 },
+ { 0x15EA, 46978 },
+ { 0x15EC, 46982 },
+ { 0x15E9, 46986 },
+ { 0x15E8, 46990 },
+ { 0x15CF, 46994 },
+ { 0x15CC, 46998 },
+ { 0x15CE, 47002 },
+ { 0x15CB, 47006 },
+ { 0x15CA, 47010 },
+ { 0x1653, 47014 },
+ { 0x1650, 47018 },
+ { 0x165A, 47022 },
+ { 0x1652, 47026 },
+ { 0x164F, 47030 },
+ { 0x164E, 47034 },
+ { 0x15D5, 47038 },
+ { 0x15D2, 47042 },
+ { 0x15D4, 47046 },
+ { 0x15D1, 47050 },
+ { 0x15D0, 47054 },
+ { 0x1613, 47058 },
+ { 0x1610, 47062 },
+ { 0x1612, 47066 },
+ { 0x160F, 47070 },
+ { 0x160E, 47074 },
+ { 0x1645, 47078 },
+ { 0x1642, 47082 },
+ { 0x1644, 47086 },
+ { 0x1641, 47090 },
+ { 0x1640, 47094 },
+ { 0x1666, 47098 },
+ { 0x1663, 47102 },
+ { 0x1665, 47106 },
+ { 0x1662, 47110 },
+ { 0x1661, 47114 },
+ { 0x1453, 47118 },
+ { 0x162D, 47122 },
+ { 0x162A, 47126 },
+ { 0x162C, 47130 },
+ { 0x1629, 47134 },
+ { 0x1628, 47138 },
+ { 0x164D, 47142 },
+ { 0x164A, 47146 },
+ { 0x164C, 47150 },
+ { 0x1649, 47154 },
+ { 0x1648, 47158 },
+ { 0x15F2, 47162 },
+ { 0x15C9, 47166 },
+ { 0x15C6, 47170 },
+ { 0x15C8, 47174 },
+ { 0x15C5, 47178 },
+ { 0x15C4, 47182 },
+ { 0x1436, 47186 },
+ { 0x15DB, 47190 },
+ { 0x15D8, 47194 },
+ { 0x15DA, 47198 },
+ { 0x15D7, 47202 },
+ { 0x15D6, 47206 },
+ { 0x1618, 47210 },
+ { 0x1621, 47214 },
+ { 0x161E, 47218 },
+ { 0x1620, 47222 },
+ { 0x161D, 47226 },
+ { 0x161C, 47230 },
+ { 0x15FA, 47234 },
+ { 0x15F7, 47238 },
+ { 0x15F9, 47242 },
+ { 0x15F6, 47246 },
+ { 0x15F5, 47250 },
+ { 0x1600, 47254 },
+ { 0x15FD, 47258 },
+ { 0x15FF, 47262 },
+ { 0x15FC, 47266 },
+ { 0x15FB, 47270 },
+ { 0x1625, 47274 },
+ { 0x1633, 47278 },
+ { 0x1630, 47282 },
+ { 0x1632, 47286 },
+ { 0x162F, 47290 },
+ { 0x162E, 47294 },
+ { 0x160B, 47298 },
+ { 0x1605, 47302 },
+ { 0x15EB, 47306 },
+ { 0x15CD, 47310 },
+ { 0x1651, 47314 },
+ { 0x1659, 47318 },
+ { 0x1656, 47322 },
+ { 0x1658, 47326 },
+ { 0x1655, 47330 },
+ { 0x1654, 47334 },
+ { 0x15E1, 47338 },
+ { 0x15DE, 47342 },
+ { 0x15E0, 47346 },
+ { 0x15DD, 47350 },
+ { 0x15DC, 47354 },
+ { 0x163F, 47358 },
+ { 0x163C, 47362 },
+ { 0x163E, 47366 },
+ { 0x163B, 47370 },
+ { 0x163A, 47374 },
+ { 0x1660, 47378 },
+ { 0x165D, 47382 },
+ { 0x165F, 47386 },
+ { 0x165C, 47390 },
+ { 0x165B, 47394 },
+ { 0x15E7, 47398 },
+ { 0x15E4, 47402 },
+ { 0x15E6, 47406 },
+ { 0x15E3, 47410 },
+ { 0x15E2, 47414 },
+ { 0x15D3, 47418 },
+ { 0x1611, 47422 },
+ { 0x1643, 47426 },
+ { 0x1664, 47430 },
+ { 0x162B, 47434 },
+ { 0x164B, 47438 },
+ { 0x15C7, 47442 },
+ { 0x15D9, 47446 },
+ { 0x161F, 47450 },
+ { 0x15F8, 47454 },
+ { 0x15FE, 47458 },
+ { 0x1631, 47462 },
+ { 0x1657, 47466 },
+ { 0x15DF, 47470 },
+ { 0x163D, 47474 },
+ { 0x1639, 47478 },
+ { 0x1636, 47482 },
+ { 0x1638, 47486 },
+ { 0x1635, 47490 },
+ { 0x1634, 47494 },
+ { 0x165E, 47498 },
+ { 0x15E5, 47502 },
+ { 0x166C, 47506 },
+ { 0x1669, 47510 },
+ { 0x166B, 47514 },
+ { 0x1668, 47518 },
+ { 0x1667, 47522 },
+ { 0x1637, 47526 },
+ { 0x166A, 47530 },
+ { 0x1647, 47534 },
+ { 0x141E, 47539 },
+ { 0x150B, 47543 },
+ { 0x150A, 47547 },
+ { 0x141B, 47551 },
+ { 0x1416, 47555 },
+ { 0x14A0, 47559 },
+ { 0x1482, 47563 },
+ { 0x14BA, 47567 },
+ { 0x14CF, 47571 },
+ { 0x150F, 47575 },
+ { 0x150E, 47579 },
+ { 0x150C, 47583 },
+ { 0x150D, 47587 },
+ { 0x1504, 47591 },
+ { 0x1465, 47595 },
+ { 0x153D, 47599 },
+ { 0x157B, 47603 },
+ { 0x1579, 47607 },
+ { 0x1574, 47611 },
+ { 0x1575, 47615 },
+ { 0x1577, 47619 },
+ { 0x157A, 47623 },
+ { 0x1576, 47627 },
+ { 0x1578, 47631 },
+ { 0x157C, 47635 },
+ { 0x15AE, 47639 },
+ { 0x15AC, 47643 },
+ { 0x15A7, 47647 },
+ { 0x15A8, 47651 },
+ { 0x15AA, 47655 },
+ { 0x15AD, 47659 },
+ { 0x15A9, 47663 },
+ { 0x15AB, 47667 },
+ { 0x15B3, 47671 },
+ { 0x15B0, 47675 },
+ { 0x15B1, 47679 },
+ { 0x15B2, 47683 },
+ { 0x1508, 47687 },
+ { 0x15BF, 47691 },
+ { 0x15BC, 47695 },
+ { 0x15BD, 47699 },
+ { 0x15BE, 47703 },
+ { 0x15BB, 47707 },
+ { 0x15B8, 47711 },
+ { 0x15B9, 47715 },
+ { 0x15BA, 47719 },
+ { 0x15B7, 47723 },
+ { 0x15B4, 47727 },
+ { 0x15B5, 47731 },
+ { 0x15B6, 47735 },
+ { 0x14EB, 47739 },
+ { 0x14BC, 47743 },
+ { 0x144A, 47747 },
+ { 0x1551, 47751 },
+ { 0x1540, 47755 },
+ { 0x154D, 47759 },
+ { 0x1544, 47763 },
+ { 0x154A, 47767 },
+ { 0x158D, 47771 },
+ { 0x158A, 47775 },
+ { 0x158B, 47779 },
+ { 0x158C, 47783 },
+ { 0x1418, 47787 },
+ { 0x140D, 47791 },
+ { 0x140F, 47795 },
+ { 0x1413, 47799 },
+ { 0x149D, 47803 },
+ { 0x1493, 47807 },
+ { 0x1495, 47811 },
+ { 0x1499, 47815 },
+ { 0x147F, 47819 },
+ { 0x1475, 47823 },
+ { 0x1477, 47827 },
+ { 0x147B, 47831 },
+ { 0x14E7, 47835 },
+ { 0x14DD, 47839 },
+ { 0x14DF, 47843 },
+ { 0x14E3, 47847 },
+ { 0x14B7, 47851 },
+ { 0x14AD, 47855 },
+ { 0x14AF, 47859 },
+ { 0x14B3, 47863 },
+ { 0x14CC, 47867 },
+ { 0x14CA, 47871 },
+ { 0x1445, 47875 },
+ { 0x143B, 47879 },
+ { 0x143D, 47883 },
+ { 0x1441, 47887 },
+ { 0x1501, 47891 },
+ { 0x14F7, 47895 },
+ { 0x14F9, 47899 },
+ { 0x14FD, 47903 },
+ { 0x1462, 47907 },
+ { 0x1458, 47911 },
+ { 0x145A, 47915 },
+ { 0x145E, 47919 },
+ { 0x141A, 47923 },
+ { 0x1411, 47927 },
+ { 0x1415, 47931 },
+ { 0x153A, 47935 },
+ { 0x1530, 47939 },
+ { 0x1532, 47943 },
+ { 0x1536, 47947 },
+ { 0x149F, 47951 },
+ { 0x1497, 47955 },
+ { 0x149B, 47959 },
+ { 0x155C, 47963 },
+ { 0x1481, 47967 },
+ { 0x1479, 47971 },
+ { 0x147D, 47975 },
+ { 0x14E9, 47979 },
+ { 0x14E1, 47983 },
+ { 0x14E5, 47987 },
+ { 0x14B9, 47991 },
+ { 0x14B1, 47995 },
+ { 0x14B5, 47999 },
+ { 0x14CE, 48003 },
+ { 0x1447, 48007 },
+ { 0x143F, 48011 },
+ { 0x1443, 48015 },
+ { 0x154F, 48019 },
+ { 0x1522, 48023 },
+ { 0x1518, 48027 },
+ { 0x151A, 48031 },
+ { 0x151E, 48035 },
+ { 0x1503, 48039 },
+ { 0x14FB, 48043 },
+ { 0x14FF, 48047 },
+ { 0x1464, 48051 },
+ { 0x145C, 48055 },
+ { 0x1460, 48059 },
+ { 0x153C, 48063 },
+ { 0x1534, 48067 },
+ { 0x1538, 48071 },
+ { 0x1524, 48075 },
+ { 0x151C, 48079 },
+ { 0x1520, 48083 },
+ { 0x1569, 48087 },
+ { 0x14BE, 48091 },
+ { 0x1506, 48095 },
+ { 0x153F, 48099 },
+ { 0x1509, 48103 },
+ { 0x159F, 48107 },
+ { 0x159E, 48111 },
+ { 0x159B, 48115 },
+ { 0x159C, 48119 },
+ { 0x159D, 48123 },
+ { 0x1488, 48127 },
+ { 0x1485, 48131 },
+ { 0x1486, 48135 },
+ { 0x1487, 48139 },
+ { 0x13A0, 48143 },
+ { 0x13A1, 48146 },
+ { 0x13A2, 48149 },
+ { 0x13A3, 48152 },
+ { 0x13CD, 48155 },
+ { 0x13A4, 48158 },
+ { 0x13A5, 48161 },
+ { 0x13D3, 48164 },
+ { 0x13D5, 48167 },
+ { 0x13D7, 48170 },
+ { 0x13D9, 48173 },
+ { 0x13DA, 48176 },
+ { 0x13DB, 48179 },
+ { 0x13A6, 48182 },
+ { 0x13A8, 48185 },
+ { 0x13A9, 48188 },
+ { 0x13AA, 48191 },
+ { 0x13AB, 48194 },
+ { 0x13AC, 48197 },
+ { 0x13AD, 48200 },
+ { 0x13AE, 48203 },
+ { 0x13AF, 48206 },
+ { 0x13B0, 48209 },
+ { 0x13B1, 48212 },
+ { 0x13B2, 48215 },
+ { 0x13A7, 48218 },
+ { 0x13B3, 48221 },
+ { 0x13B4, 48224 },
+ { 0x13B5, 48227 },
+ { 0x13B6, 48230 },
+ { 0x13B7, 48233 },
+ { 0x13B8, 48236 },
+ { 0x13B9, 48239 },
+ { 0x13BA, 48242 },
+ { 0x13BB, 48245 },
+ { 0x13BC, 48248 },
+ { 0x13BD, 48251 },
+ { 0x13BE, 48254 },
+ { 0x13C1, 48257 },
+ { 0x13C2, 48260 },
+ { 0x13C3, 48263 },
+ { 0x13C4, 48266 },
+ { 0x13C5, 48269 },
+ { 0x13CC, 48272 },
+ { 0x13CE, 48275 },
+ { 0x13CF, 48278 },
+ { 0x13D0, 48281 },
+ { 0x13D1, 48284 },
+ { 0x13D2, 48287 },
+ { 0x13D4, 48290 },
+ { 0x13D6, 48293 },
+ { 0x13D8, 48296 },
+ { 0x13E9, 48299 },
+ { 0x13EA, 48302 },
+ { 0x13EB, 48305 },
+ { 0x13EC, 48308 },
+ { 0x13ED, 48311 },
+ { 0x13EE, 48314 },
+ { 0x13EF, 48317 },
+ { 0x13F0, 48320 },
+ { 0x13F1, 48323 },
+ { 0x13F2, 48326 },
+ { 0x13F3, 48329 },
+ { 0x13F4, 48332 },
+ { 0x13DC, 48335 },
+ { 0x13BF, 48338 },
+ { 0x13C0, 48341 },
+ { 0x13C6, 48344 },
+ { 0x13C7, 48347 },
+ { 0x13C8, 48350 },
+ { 0x13C9, 48353 },
+ { 0x13CA, 48356 },
+ { 0x13CB, 48359 },
+ { 0x13DD, 48362 },
+ { 0x13DE, 48365 },
+ { 0x13DF, 48368 },
+ { 0x13E0, 48371 },
+ { 0x13E1, 48374 },
+ { 0x13E2, 48377 },
+ { 0x13E3, 48380 },
+ { 0x13E4, 48383 },
+ { 0x13E5, 48386 },
+ { 0x13E6, 48389 },
+ { 0x13E7, 48392 },
+ { 0x13E8, 48395 },
+ { 0x220B, 48398 },
+ { 0x22B3, 48401 },
+ { 0x22B5, 48405 },
+ { 0x22FA, 48412 },
+ { 0x22FD, 48417 },
+ { 0x22FB, 48420 },
+ { 0x9369, 48429 },
+ { 0x936E, 48434 },
+ { 0x936A, 48439 },
+ { 0x936D, 48444 },
+ { 0x936C, 48449 },
+ { 0x9371, 48454 },
+ { 0x9370, 48459 },
+ { 0x936F, 48464 },
+ { 0x936B, 48469 },
+ { 0x9360, 48474 },
+ { 0x9365, 48479 },
+ { 0x9361, 48484 },
+ { 0x9364, 48489 },
+ { 0x9363, 48494 },
+ { 0x9368, 48499 },
+ { 0x9367, 48504 },
+ { 0x9366, 48509 },
+ { 0x9362, 48514 },
+ { 0x20A2, 48519 },
+ { 0x00A4, 48521 },
+ { 0x0430, 48523 },
+ { 0x04D1, 48527 },
+ { 0x04D3, 48533 },
+ { 0x044D, 48539 },
+ { 0x04ED, 48543 },
+ { 0x0438, 48549 },
+ { 0x045D, 48553 },
+ { 0x04E3, 48559 },
+ { 0x04E5, 48565 },
+ { 0x043E, 48571 },
+ { 0x04E7, 48575 },
+ { 0x0443, 48581 },
+ { 0x04F3, 48585 },
+ { 0x04EF, 48592 },
+ { 0x04F1, 48598 },
+ { 0x0431, 48604 },
+ { 0x0434, 48608 },
+ { 0x0444, 48612 },
+ { 0x043B, 48616 },
+ { 0x0513, 48620 },
+ { 0x04C6, 48626 },
+ { 0x0521, 48632 },
+ { 0x043C, 48639 },
+ { 0x04CE, 48643 },
+ { 0x043D, 48649 },
+ { 0x04C8, 48653 },
+ { 0x04CA, 48659 },
+ { 0x0523, 48665 },
+ { 0x04A3, 48672 },
+ { 0x0440, 48678 },
+ { 0x048F, 48682 },
+ { 0x0441, 48688 },
+ { 0x04AB, 48692 },
+ { 0x0445, 48698 },
+ { 0x04FD, 48702 },
+ { 0x04FF, 48708 },
+ { 0x04B3, 48714 },
+ { 0x0435, 48720 },
+ { 0x04D7, 48724 },
+ { 0x0450, 48730 },
+ { 0x0451, 48736 },
+ { 0x0458, 48740 },
+ { 0x043A, 48744 },
+ { 0x04C4, 48748 },
+ { 0x049F, 48754 },
+ { 0x049D, 48760 },
+ { 0x049B, 48767 },
+ { 0x047F, 48773 },
+ { 0x043F, 48777 },
+ { 0x04A7, 48781 },
+ { 0x051B, 48788 },
+ { 0x0442, 48792 },
+ { 0x568B, 48796 },
+ { 0x04AD, 48803 },
+ { 0x0479, 48809 },
+ { 0x0432, 48813 },
+ { 0x051D, 48817 },
+ { 0x044F, 48821 },
+ { 0x0457, 48825 },
+ { 0x565F, 48829 },
+ { 0x044E, 48833 },
+ { 0x0437, 48837 },
+ { 0x0499, 48841 },
+ { 0x04DF, 48847 },
+ { 0x046B, 48853 },
+ { 0x0447, 48858 },
+ { 0x04B9, 48862 },
+ { 0x04B7, 48869 },
+ { 0x04F5, 48875 },
+ { 0x0452, 48881 },
+ { 0x5681, 48885 },
+ { 0x0455, 48889 },
+ { 0x0433, 48893 },
+ { 0x0495, 48897 },
+ { 0x0493, 48904 },
+ { 0x04FB, 48910 },
+ { 0x0491, 48918 },
+ { 0x04F7, 48924 },
+ { 0x0453, 48930 },
+ { 0x5695, 48934 },
+ { 0x045C, 48938 },
+ { 0x046F, 48942 },
+ { 0x0515, 48946 },
+ { 0x0459, 48950 },
+ { 0x045A, 48954 },
+ { 0x0471, 48958 },
+ { 0x0517, 48962 },
+ { 0x0448, 48966 },
+ { 0x0446, 48970 },
+ { 0x568D, 48974 },
+ { 0x0519, 48978 },
+ { 0x0463, 48982 },
+ { 0x0436, 48986 },
+ { 0x04C2, 48990 },
+ { 0x0497, 48996 },
+ { 0x04DD, 49002 },
+ { 0x5687, 49008 },
+ { 0x045F, 49012 },
+ { 0x5683, 49016 },
+ { 0x5689, 49020 },
+ { 0x0473, 49024 },
+ { 0x044A, 49028 },
+ { 0x5647, 49033 },
+ { 0x0501, 49037 },
+ { 0x0503, 49042 },
+ { 0x0509, 49047 },
+ { 0x050B, 49052 },
+ { 0x050D, 49057 },
+ { 0x050F, 49062 },
+ { 0x0505, 49067 },
+ { 0x0507, 49072 },
+ { 0x04BB, 49077 },
+ { 0x5697, 49081 },
+ { 0x5663, 49085 },
+ { 0x5665, 49090 },
+ { 0x5667, 49095 },
+ { 0x044C, 49100 },
+ { 0x5693, 49105 },
+ { 0x045B, 49109 },
+ { 0x5691, 49113 },
+ { 0x568F, 49117 },
+ { 0x044B, 49121 },
+ { 0x5651, 49125 },
+ { 0x04F9, 49132 },
+ { 0x5685, 49138 },
+ { 0x051F, 49142 },
+ { 0x564D, 49147 },
+ { 0x5649, 49152 },
+ { 0x5643, 49156 },
+ { 0x0481, 49160 },
+ { 0x0461, 49164 },
+ { 0x047D, 49168 },
+ { 0x047B, 49174 },
+ { 0x04D9, 49179 },
+ { 0x04DB, 49183 },
+ { 0x0449, 49189 },
+ { 0x0439, 49193 },
+ { 0x048B, 49198 },
+ { 0x045E, 49205 },
+ { 0x04E9, 49210 },
+ { 0x04EB, 49215 },
+ { 0x5659, 49222 },
+ { 0x566D, 49228 },
+ { 0x0467, 49234 },
+ { 0x5641, 49239 },
+ { 0x04A1, 49243 },
+ { 0x565B, 49248 },
+ { 0x0475, 49253 },
+ { 0x0477, 49257 },
+ { 0x564F, 49265 },
+ { 0x5657, 49270 },
+ { 0x0465, 49275 },
+ { 0x046D, 49280 },
+ { 0x5653, 49286 },
+ { 0x565D, 49291 },
+ { 0x0469, 49298 },
+ { 0x04CF, 49304 },
+ { 0x5655, 49308 },
+ { 0x0511, 49313 },
+ { 0x5645, 49318 },
+ { 0x048D, 49323 },
+ { 0x04AF, 49328 },
+ { 0x04B1, 49333 },
+ { 0x04A9, 49340 },
+ { 0x04BD, 49345 },
+ { 0x04BF, 49350 },
+ { 0x04E1, 49357 },
+ { 0x566B, 49362 },
+ { 0x5669, 49367 },
+ { 0x564B, 49372 },
+ { 0x0454, 49377 },
+ { 0x04CC, 49382 },
+ { 0x0456, 49387 },
+ { 0x04D5, 49392 },
+ { 0x04A5, 49397 },
+ { 0x04B5, 49402 },
+ { 0x567E, 49407 },
+ { 0x1D2B, 49409 },
+ { 0x04C0, 49414 },
+ { 0x566E, 49417 },
+ { 0x0410, 49421 },
+ { 0x04D0, 49425 },
+ { 0x04D2, 49431 },
+ { 0x042D, 49437 },
+ { 0x04EC, 49441 },
+ { 0x0418, 49447 },
+ { 0x040D, 49451 },
+ { 0x04E2, 49457 },
+ { 0x04E4, 49463 },
+ { 0x041E, 49469 },
+ { 0x04E6, 49473 },
+ { 0x0423, 49479 },
+ { 0x04F2, 49483 },
+ { 0x04EE, 49490 },
+ { 0x04F0, 49496 },
+ { 0x0411, 49502 },
+ { 0x0414, 49506 },
+ { 0x0424, 49510 },
+ { 0x041B, 49514 },
+ { 0x0512, 49518 },
+ { 0x04C5, 49524 },
+ { 0x0520, 49530 },
+ { 0x041C, 49537 },
+ { 0x04CD, 49541 },
+ { 0x041D, 49547 },
+ { 0x04C7, 49551 },
+ { 0x04C9, 49557 },
+ { 0x0522, 49563 },
+ { 0x04A2, 49570 },
+ { 0x0420, 49576 },
+ { 0x048E, 49580 },
+ { 0x0421, 49586 },
+ { 0x04AA, 49590 },
+ { 0x0425, 49596 },
+ { 0x04FC, 49600 },
+ { 0x04FE, 49606 },
+ { 0x04B2, 49612 },
+ { 0x0415, 49618 },
+ { 0x04D6, 49622 },
+ { 0x0400, 49628 },
+ { 0x0401, 49634 },
+ { 0x0408, 49638 },
+ { 0x041A, 49642 },
+ { 0x04C3, 49646 },
+ { 0x049E, 49652 },
+ { 0x049C, 49658 },
+ { 0x049A, 49665 },
+ { 0x047E, 49671 },
+ { 0x041F, 49675 },
+ { 0x04A6, 49679 },
+ { 0x051A, 49686 },
+ { 0x0422, 49690 },
+ { 0x568A, 49694 },
+ { 0x04AC, 49701 },
+ { 0x0478, 49707 },
+ { 0x0412, 49711 },
+ { 0x051C, 49715 },
+ { 0x042F, 49719 },
+ { 0x0407, 49723 },
+ { 0x565E, 49727 },
+ { 0x042E, 49731 },
+ { 0x0417, 49735 },
+ { 0x0498, 49739 },
+ { 0x04DE, 49745 },
+ { 0x046A, 49751 },
+ { 0x0427, 49756 },
+ { 0x04B8, 49760 },
+ { 0x04B6, 49767 },
+ { 0x04F4, 49773 },
+ { 0x0402, 49779 },
+ { 0x5680, 49783 },
+ { 0x0405, 49787 },
+ { 0x0413, 49791 },
+ { 0x0494, 49795 },
+ { 0x0492, 49802 },
+ { 0x04FA, 49808 },
+ { 0x0490, 49816 },
+ { 0x04F6, 49822 },
+ { 0x0403, 49828 },
+ { 0x5694, 49832 },
+ { 0x040C, 49836 },
+ { 0x046E, 49840 },
+ { 0x0514, 49844 },
+ { 0x0409, 49848 },
+ { 0x040A, 49852 },
+ { 0x0470, 49856 },
+ { 0x0516, 49860 },
+ { 0x0428, 49864 },
+ { 0x0426, 49868 },
+ { 0x568C, 49872 },
+ { 0x0518, 49876 },
+ { 0x0462, 49880 },
+ { 0x0416, 49884 },
+ { 0x04C1, 49888 },
+ { 0x0496, 49894 },
+ { 0x04DC, 49900 },
+ { 0x5686, 49906 },
+ { 0x040F, 49910 },
+ { 0x5682, 49914 },
+ { 0x5688, 49918 },
+ { 0x0472, 49922 },
+ { 0x042A, 49926 },
+ { 0x5646, 49931 },
+ { 0x0500, 49935 },
+ { 0x0502, 49940 },
+ { 0x0508, 49945 },
+ { 0x050A, 49950 },
+ { 0x050C, 49955 },
+ { 0x050E, 49960 },
+ { 0x0504, 49965 },
+ { 0x0506, 49970 },
+ { 0x04BA, 49975 },
+ { 0x5696, 49979 },
+ { 0x5662, 49983 },
+ { 0x5664, 49988 },
+ { 0x5666, 49993 },
+ { 0x042C, 49998 },
+ { 0x5692, 50003 },
+ { 0x040B, 50007 },
+ { 0x5690, 50011 },
+ { 0x568E, 50015 },
+ { 0x042B, 50019 },
+ { 0x5650, 50023 },
+ { 0x04F8, 50030 },
+ { 0x5684, 50036 },
+ { 0x051E, 50040 },
+ { 0x564C, 50045 },
+ { 0x5648, 50050 },
+ { 0x5642, 50054 },
+ { 0x0480, 50058 },
+ { 0x0460, 50062 },
+ { 0x047C, 50066 },
+ { 0x047A, 50072 },
+ { 0x04D8, 50077 },
+ { 0x04DA, 50081 },
+ { 0x0429, 50087 },
+ { 0x0419, 50091 },
+ { 0x048A, 50096 },
+ { 0x040E, 50103 },
+ { 0x04E8, 50108 },
+ { 0x04EA, 50113 },
+ { 0x5658, 50120 },
+ { 0x566C, 50126 },
+ { 0x0466, 50132 },
+ { 0x5640, 50137 },
+ { 0x04A0, 50141 },
+ { 0x565A, 50146 },
+ { 0x0474, 50151 },
+ { 0x0476, 50155 },
+ { 0x564E, 50163 },
+ { 0x5656, 50168 },
+ { 0x0464, 50173 },
+ { 0x046C, 50178 },
+ { 0x5652, 50184 },
+ { 0x565C, 50189 },
+ { 0x0468, 50196 },
+ { 0x5654, 50202 },
+ { 0x0510, 50207 },
+ { 0x5644, 50212 },
+ { 0x048C, 50217 },
+ { 0x04AE, 50222 },
+ { 0x04B0, 50227 },
+ { 0x04A8, 50234 },
+ { 0x04BC, 50239 },
+ { 0x04BE, 50244 },
+ { 0x04E0, 50251 },
+ { 0x566A, 50256 },
+ { 0x5668, 50261 },
+ { 0x564A, 50266 },
+ { 0x0404, 50271 },
+ { 0x04CB, 50276 },
+ { 0x0406, 50281 },
+ { 0x04D4, 50286 },
+ { 0x04A4, 50291 },
+ { 0x04B4, 50296 },
+ { 0x567F, 50301 },
+ { 0x0482, 50303 },
+ { 0x2300, 50306 },
+ { 0x00F7, 50308 },
+ { 0x2215, 50310 },
+ { 0x22C7, 50312 },
+ { 0x279B, 50314 },
+ { 0x2301, 50318 },
+ { 0x2383, 50320 },
+ { 0x2709, 50322 },
+ { 0x1362, 50323 },
+ { 0x1365, 50326 },
+ { 0x1363, 50328 },
+ { 0x1369, 50330 },
+ { 0x136E, 50333 },
+ { 0x136A, 50336 },
+ { 0x136D, 50339 },
+ { 0x136C, 50342 },
+ { 0x1371, 50345 },
+ { 0x1370, 50348 },
+ { 0x136F, 50351 },
+ { 0x136B, 50354 },
+ { 0x1399, 50357 },
+ { 0x1391, 50361 },
+ { 0x1394, 50365 },
+ { 0x1397, 50369 },
+ { 0x1395, 50373 },
+ { 0x1393, 50377 },
+ { 0x1390, 50382 },
+ { 0x1396, 50386 },
+ { 0x1392, 50390 },
+ { 0x1398, 50394 },
+ { 0x1372, 50398 },
+ { 0x137C, 50401 },
+ { 0x1376, 50405 },
+ { 0x1375, 50408 },
+ { 0x1377, 50411 },
+ { 0x1379, 50414 },
+ { 0x137A, 50417 },
+ { 0x1374, 50420 },
+ { 0x1373, 50423 },
+ { 0x137B, 50426 },
+ { 0x1378, 50429 },
+ { 0x1366, 50432 },
+ { 0x1360, 50435 },
+ { 0x1367, 50438 },
+ { 0x1260, 50441 },
+ { 0x1265, 50444 },
+ { 0x1262, 50447 },
+ { 0x1266, 50450 },
+ { 0x1261, 50453 },
+ { 0x1278, 50456 },
+ { 0x127D, 50459 },
+ { 0x127A, 50462 },
+ { 0x127E, 50465 },
+ { 0x1279, 50468 },
+ { 0x12F0, 50471 },
+ { 0x12F5, 50474 },
+ { 0x12F2, 50477 },
+ { 0x12F6, 50480 },
+ { 0x12F1, 50483 },
+ { 0x1348, 50486 },
+ { 0x134D, 50489 },
+ { 0x134A, 50492 },
+ { 0x134E, 50495 },
+ { 0x1349, 50498 },
+ { 0x1308, 50501 },
+ { 0x130D, 50504 },
+ { 0x130A, 50507 },
+ { 0x130E, 50510 },
+ { 0x1309, 50513 },
+ { 0x1200, 50516 },
+ { 0x1205, 50519 },
+ { 0x1202, 50522 },
+ { 0x1206, 50525 },
+ { 0x1201, 50528 },
+ { 0x1300, 50531 },
+ { 0x1305, 50534 },
+ { 0x1302, 50537 },
+ { 0x1306, 50540 },
+ { 0x1301, 50543 },
+ { 0x12A8, 50546 },
+ { 0x12AD, 50549 },
+ { 0x12AA, 50552 },
+ { 0x12AE, 50555 },
+ { 0x12A9, 50558 },
+ { 0x1208, 50561 },
+ { 0x120D, 50564 },
+ { 0x120A, 50567 },
+ { 0x120E, 50570 },
+ { 0x1209, 50573 },
+ { 0x1218, 50576 },
+ { 0x121D, 50579 },
+ { 0x121A, 50582 },
+ { 0x121E, 50585 },
+ { 0x1219, 50588 },
+ { 0x1290, 50591 },
+ { 0x1295, 50594 },
+ { 0x1292, 50597 },
+ { 0x1296, 50600 },
+ { 0x1291, 50603 },
+ { 0x1350, 50606 },
+ { 0x1355, 50609 },
+ { 0x1352, 50612 },
+ { 0x1356, 50615 },
+ { 0x1351, 50618 },
+ { 0x1240, 50621 },
+ { 0x1245, 50624 },
+ { 0x1242, 50627 },
+ { 0x1246, 50630 },
+ { 0x1241, 50633 },
+ { 0x1228, 50636 },
+ { 0x122D, 50639 },
+ { 0x122A, 50642 },
+ { 0x122E, 50645 },
+ { 0x1229, 50648 },
+ { 0x1230, 50651 },
+ { 0x1235, 50654 },
+ { 0x1232, 50657 },
+ { 0x1236, 50660 },
+ { 0x1231, 50663 },
+ { 0x1270, 50666 },
+ { 0x1275, 50669 },
+ { 0x1272, 50672 },
+ { 0x1276, 50675 },
+ { 0x1271, 50678 },
+ { 0x1268, 50681 },
+ { 0x126D, 50684 },
+ { 0x126A, 50687 },
+ { 0x126E, 50690 },
+ { 0x1269, 50693 },
+ { 0x12C8, 50696 },
+ { 0x12CD, 50699 },
+ { 0x12CA, 50702 },
+ { 0x12CE, 50705 },
+ { 0x12C9, 50708 },
+ { 0x1280, 50711 },
+ { 0x1285, 50714 },
+ { 0x1282, 50717 },
+ { 0x1286, 50720 },
+ { 0x1281, 50723 },
+ { 0x12E8, 50726 },
+ { 0x12ED, 50729 },
+ { 0x12EA, 50732 },
+ { 0x12EE, 50735 },
+ { 0x12E9, 50738 },
+ { 0x12D8, 50741 },
+ { 0x12DD, 50744 },
+ { 0x12DA, 50747 },
+ { 0x12DE, 50750 },
+ { 0x12D9, 50753 },
+ { 0x1263, 50756 },
+ { 0x1264, 50759 },
+ { 0x2D85, 50762 },
+ { 0x1267, 50765 },
+ { 0x1387, 50768 },
+ { 0x1385, 50771 },
+ { 0x127B, 50774 },
+ { 0x2DA8, 50777 },
+ { 0x2DAD, 50780 },
+ { 0x2DAA, 50783 },
+ { 0x2DAE, 50786 },
+ { 0x2DA9, 50789 },
+ { 0x127C, 50792 },
+ { 0x1328, 50795 },
+ { 0x132D, 50798 },
+ { 0x132A, 50801 },
+ { 0x132E, 50804 },
+ { 0x1329, 50807 },
+ { 0x2D87, 50810 },
+ { 0x127F, 50813 },
+ { 0x12F3, 50816 },
+ { 0x12F8, 50819 },
+ { 0x12FD, 50822 },
+ { 0x12FA, 50825 },
+ { 0x12FE, 50828 },
+ { 0x12F9, 50831 },
+ { 0x12F4, 50834 },
+ { 0x2D8C, 50837 },
+ { 0x12F7, 50840 },
+ { 0x134B, 50843 },
+ { 0x134C, 50846 },
+ { 0x134F, 50849 },
+ { 0x138B, 50852 },
+ { 0x1389, 50855 },
+ { 0x135A, 50858 },
+ { 0x130B, 50861 },
+ { 0x130C, 50864 },
+ { 0x1318, 50867 },
+ { 0x131D, 50870 },
+ { 0x131A, 50873 },
+ { 0x131E, 50876 },
+ { 0x1319, 50879 },
+ { 0x130F, 50882 },
+ { 0x1310, 50885 },
+ { 0x1315, 50888 },
+ { 0x1312, 50891 },
+ { 0x2DD8, 50894 },
+ { 0x2DDD, 50897 },
+ { 0x2DDA, 50900 },
+ { 0x2DDE, 50903 },
+ { 0x2DD9, 50906 },
+ { 0x1203, 50909 },
+ { 0x1204, 50912 },
+ { 0x1210, 50915 },
+ { 0x1215, 50918 },
+ { 0x1212, 50921 },
+ { 0x1216, 50924 },
+ { 0x1211, 50927 },
+ { 0x1207, 50930 },
+ { 0x1303, 50933 },
+ { 0x1304, 50936 },
+ { 0x2D8E, 50939 },
+ { 0x1307, 50942 },
+ { 0x12AB, 50945 },
+ { 0x12AC, 50948 },
+ { 0x12AF, 50951 },
+ { 0x12B0, 50954 },
+ { 0x12B5, 50957 },
+ { 0x12B2, 50960 },
+ { 0x12B8, 50963 },
+ { 0x12BD, 50966 },
+ { 0x12BA, 50969 },
+ { 0x12BE, 50972 },
+ { 0x12B9, 50975 },
+ { 0x2DC8, 50978 },
+ { 0x2DCD, 50981 },
+ { 0x2DCA, 50984 },
+ { 0x2DCE, 50987 },
+ { 0x2DC9, 50990 },
+ { 0x120B, 50993 },
+ { 0x120C, 50996 },
+ { 0x2D80, 50999 },
+ { 0x120F, 51002 },
+ { 0x121B, 51005 },
+ { 0x121C, 51008 },
+ { 0x2D81, 51011 },
+ { 0x121F, 51014 },
+ { 0x1383, 51017 },
+ { 0x1381, 51020 },
+ { 0x1359, 51023 },
+ { 0x1293, 51026 },
+ { 0x1294, 51029 },
+ { 0x2D88, 51032 },
+ { 0x1297, 51035 },
+ { 0x1298, 51038 },
+ { 0x129D, 51041 },
+ { 0x129A, 51044 },
+ { 0x129E, 51047 },
+ { 0x1299, 51050 },
+ { 0x1353, 51053 },
+ { 0x1354, 51056 },
+ { 0x1330, 51059 },
+ { 0x1335, 51062 },
+ { 0x1332, 51065 },
+ { 0x1336, 51068 },
+ { 0x1331, 51071 },
+ { 0x2D92, 51074 },
+ { 0x1357, 51077 },
+ { 0x138F, 51080 },
+ { 0x138D, 51083 },
+ { 0x1243, 51086 },
+ { 0x1244, 51089 },
+ { 0x1250, 51092 },
+ { 0x1255, 51095 },
+ { 0x1252, 51098 },
+ { 0x1256, 51101 },
+ { 0x1251, 51104 },
+ { 0x1247, 51107 },
+ { 0x1248, 51110 },
+ { 0x124D, 51113 },
+ { 0x124A, 51116 },
+ { 0x2DC0, 51119 },
+ { 0x2DC5, 51122 },
+ { 0x2DC2, 51125 },
+ { 0x2DC6, 51128 },
+ { 0x2DC1, 51131 },
+ { 0x122B, 51134 },
+ { 0x122C, 51137 },
+ { 0x2D82, 51140 },
+ { 0x122F, 51143 },
+ { 0x1358, 51146 },
+ { 0x1233, 51149 },
+ { 0x1234, 51152 },
+ { 0x1238, 51155 },
+ { 0x123D, 51158 },
+ { 0x123A, 51161 },
+ { 0x123E, 51164 },
+ { 0x1239, 51167 },
+ { 0x2D83, 51170 },
+ { 0x2DA0, 51173 },
+ { 0x2DA5, 51176 },
+ { 0x2DA2, 51179 },
+ { 0x2DA6, 51182 },
+ { 0x2DA1, 51185 },
+ { 0x1237, 51188 },
+ { 0x1220, 51191 },
+ { 0x1225, 51194 },
+ { 0x1222, 51197 },
+ { 0x1226, 51200 },
+ { 0x1221, 51203 },
+ { 0x1273, 51206 },
+ { 0x1274, 51209 },
+ { 0x1320, 51212 },
+ { 0x1325, 51215 },
+ { 0x1322, 51218 },
+ { 0x1326, 51221 },
+ { 0x1321, 51224 },
+ { 0x2D86, 51227 },
+ { 0x1338, 51230 },
+ { 0x133D, 51233 },
+ { 0x133A, 51236 },
+ { 0x133E, 51239 },
+ { 0x1339, 51242 },
+ { 0x1277, 51245 },
+ { 0x1340, 51248 },
+ { 0x1345, 51251 },
+ { 0x1342, 51254 },
+ { 0x1346, 51257 },
+ { 0x1341, 51260 },
+ { 0x126B, 51263 },
+ { 0x126C, 51266 },
+ { 0x126F, 51269 },
+ { 0x12CB, 51272 },
+ { 0x12CC, 51275 },
+ { 0x12CF, 51278 },
+ { 0x1283, 51281 },
+ { 0x1284, 51284 },
+ { 0x1287, 51287 },
+ { 0x1288, 51290 },
+ { 0x128D, 51293 },
+ { 0x128A, 51296 },
+ { 0x2DD0, 51299 },
+ { 0x2DD5, 51302 },
+ { 0x2DD2, 51305 },
+ { 0x2DD6, 51308 },
+ { 0x2DD1, 51311 },
+ { 0x12EB, 51314 },
+ { 0x12EC, 51317 },
+ { 0x12EF, 51320 },
+ { 0x12DB, 51323 },
+ { 0x12DC, 51326 },
+ { 0x12E0, 51329 },
+ { 0x12E5, 51332 },
+ { 0x12E2, 51335 },
+ { 0x12E6, 51338 },
+ { 0x12E1, 51341 },
+ { 0x2D8B, 51344 },
+ { 0x12DF, 51347 },
+ { 0x2DB0, 51350 },
+ { 0x2DB5, 51353 },
+ { 0x2DB2, 51356 },
+ { 0x2DB6, 51359 },
+ { 0x2DB1, 51362 },
+ { 0x1386, 51365 },
+ { 0x2DAB, 51368 },
+ { 0x2DAC, 51371 },
+ { 0x2DB8, 51374 },
+ { 0x2DBD, 51377 },
+ { 0x2DBA, 51380 },
+ { 0x2DBE, 51383 },
+ { 0x2DB9, 51386 },
+ { 0x132B, 51389 },
+ { 0x132C, 51392 },
+ { 0x2D90, 51395 },
+ { 0x132F, 51398 },
+ { 0x12FB, 51401 },
+ { 0x12FC, 51404 },
+ { 0x2D8D, 51407 },
+ { 0x12FF, 51410 },
+ { 0x138A, 51413 },
+ { 0x131B, 51416 },
+ { 0x131C, 51419 },
+ { 0x2D93, 51422 },
+ { 0x2D96, 51425 },
+ { 0x2D94, 51428 },
+ { 0x1313, 51431 },
+ { 0x1314, 51434 },
+ { 0x2DDB, 51437 },
+ { 0x2DDC, 51440 },
+ { 0x1213, 51443 },
+ { 0x1214, 51446 },
+ { 0x1217, 51449 },
+ { 0x12B3, 51452 },
+ { 0x12B4, 51455 },
+ { 0x12BB, 51458 },
+ { 0x12BC, 51461 },
+ { 0x12C0, 51464 },
+ { 0x12C5, 51467 },
+ { 0x12C2, 51470 },
+ { 0x2DCB, 51473 },
+ { 0x2DCC, 51476 },
+ { 0x1382, 51479 },
+ { 0x129B, 51482 },
+ { 0x129C, 51485 },
+ { 0x2D89, 51488 },
+ { 0x129F, 51491 },
+ { 0x1333, 51494 },
+ { 0x1334, 51497 },
+ { 0x2D91, 51500 },
+ { 0x1337, 51503 },
+ { 0x138E, 51506 },
+ { 0x1253, 51509 },
+ { 0x1254, 51512 },
+ { 0x1258, 51515 },
+ { 0x125D, 51518 },
+ { 0x125A, 51521 },
+ { 0x124B, 51524 },
+ { 0x124C, 51527 },
+ { 0x2DC3, 51530 },
+ { 0x2DC4, 51533 },
+ { 0x123B, 51536 },
+ { 0x123C, 51539 },
+ { 0x2D84, 51542 },
+ { 0x123F, 51545 },
+ { 0x2DA3, 51548 },
+ { 0x2DA4, 51551 },
+ { 0x1223, 51554 },
+ { 0x1224, 51557 },
+ { 0x1227, 51560 },
+ { 0x1323, 51563 },
+ { 0x1324, 51566 },
+ { 0x2D8F, 51569 },
+ { 0x1327, 51572 },
+ { 0x133B, 51575 },
+ { 0x133C, 51578 },
+ { 0x133F, 51581 },
+ { 0x1343, 51584 },
+ { 0x1344, 51587 },
+ { 0x1347, 51590 },
+ { 0x128B, 51593 },
+ { 0x128C, 51596 },
+ { 0x2DD3, 51599 },
+ { 0x2DD4, 51602 },
+ { 0x12E3, 51605 },
+ { 0x12E4, 51608 },
+ { 0x12E7, 51611 },
+ { 0x2DB3, 51614 },
+ { 0x2DB4, 51617 },
+ { 0x2DBB, 51620 },
+ { 0x2DBC, 51623 },
+ { 0x131F, 51626 },
+ { 0x2D95, 51629 },
+ { 0x12C3, 51632 },
+ { 0x12C4, 51635 },
+ { 0x125B, 51638 },
+ { 0x125C, 51641 },
+ { 0x12A0, 51644 },
+ { 0x12A5, 51648 },
+ { 0x12A2, 51652 },
+ { 0x12A6, 51656 },
+ { 0x12A1, 51660 },
+ { 0x12A3, 51664 },
+ { 0x12A4, 51668 },
+ { 0x2D8A, 51672 },
+ { 0x12A7, 51676 },
+ { 0x1384, 51680 },
+ { 0x1388, 51684 },
+ { 0x1380, 51688 },
+ { 0x138C, 51692 },
+ { 0x12D0, 51696 },
+ { 0x12D5, 51700 },
+ { 0x12D2, 51704 },
+ { 0x12D6, 51708 },
+ { 0x12D1, 51712 },
+ { 0x12D3, 51716 },
+ { 0x12D4, 51720 },
+ { 0x135F, 51724 },
+ { 0x1368, 51728 },
+ { 0x1364, 51731 },
+ { 0x1361, 51733 },
+ { 0x06F1, 51735 },
+ { 0x06F6, 51739 },
+ { 0x06F2, 51743 },
+ { 0x06F5, 51747 },
+ { 0x06F4, 51751 },
+ { 0x06F9, 51755 },
+ { 0x06F0, 51759 },
+ { 0x06F8, 51763 },
+ { 0x06F7, 51767 },
+ { 0x06F3, 51771 },
+ { 0x00AA, 51775 },
+ { 0x23E5, 51778 },
+ { 0x2044, 51779 },
+ { 0x215F, 51781 },
+ { 0x2061, 51784 },
+ { 0x2D00, 51786 },
+ { 0x2D04, 51790 },
+ { 0x2D21, 51794 },
+ { 0x2D08, 51798 },
+ { 0x2D0D, 51802 },
+ { 0x2D13, 51806 },
+ { 0x2D23, 51810 },
+ { 0x2D01, 51814 },
+ { 0x2D1A, 51818 },
+ { 0x2D1C, 51822 },
+ { 0x2D03, 51826 },
+ { 0x2D02, 51830 },
+ { 0x2D20, 51834 },
+ { 0x2D24, 51838 },
+ { 0x2D22, 51842 },
+ { 0x2D25, 51846 },
+ { 0x2D1B, 51850 },
+ { 0x2D09, 51854 },
+ { 0x2D0A, 51858 },
+ { 0x2D0B, 51862 },
+ { 0x2D0C, 51866 },
+ { 0x2D0E, 51870 },
+ { 0x2D17, 51874 },
+ { 0x2D10, 51878 },
+ { 0x2D11, 51882 },
+ { 0x2D07, 51886 },
+ { 0x2D12, 51890 },
+ { 0x2D05, 51894 },
+ { 0x2D1E, 51898 },
+ { 0x2D06, 51902 },
+ { 0x2D1D, 51906 },
+ { 0x2D19, 51910 },
+ { 0x2D16, 51914 },
+ { 0x2D1F, 51918 },
+ { 0x2D15, 51922 },
+ { 0x2D14, 51926 },
+ { 0x2D18, 51930 },
+ { 0x2D0F, 51934 },
+ { 0x10D0, 51938 },
+ { 0x10D4, 51941 },
+ { 0x10F6, 51944 },
+ { 0x10F1, 51947 },
+ { 0x10D8, 51950 },
+ { 0x10DD, 51953 },
+ { 0x10E3, 51956 },
+ { 0x10F3, 51959 },
+ { 0x10F7, 51962 },
+ { 0x10FA, 51965 },
+ { 0x10D1, 51968 },
+ { 0x10EA, 51971 },
+ { 0x10EC, 51974 },
+ { 0x10D3, 51977 },
+ { 0x10D2, 51980 },
+ { 0x10F0, 51983 },
+ { 0x10F4, 51986 },
+ { 0x10F2, 51989 },
+ { 0x10F5, 51992 },
+ { 0x10EB, 51995 },
+ { 0x10D9, 51998 },
+ { 0x10DA, 52001 },
+ { 0x10DB, 52004 },
+ { 0x10DC, 52007 },
+ { 0x10DE, 52010 },
+ { 0x10E7, 52013 },
+ { 0x10E0, 52016 },
+ { 0x10E1, 52019 },
+ { 0x10D7, 52022 },
+ { 0x10E2, 52025 },
+ { 0x10D5, 52028 },
+ { 0x10EE, 52031 },
+ { 0x10D6, 52034 },
+ { 0x10ED, 52037 },
+ { 0x10E9, 52040 },
+ { 0x10E6, 52043 },
+ { 0x10EF, 52046 },
+ { 0x10E5, 52049 },
+ { 0x10E4, 52052 },
+ { 0x10E8, 52055 },
+ { 0x10DF, 52058 },
+ { 0x10F8, 52061 },
+ { 0x10F9, 52064 },
+ { 0x10A0, 52068 },
+ { 0x10A4, 52072 },
+ { 0x10C1, 52076 },
+ { 0x10A8, 52080 },
+ { 0x10AD, 52084 },
+ { 0x10B3, 52088 },
+ { 0x10C3, 52092 },
+ { 0x10A1, 52096 },
+ { 0x10BA, 52100 },
+ { 0x10BC, 52104 },
+ { 0x10A3, 52108 },
+ { 0x10A2, 52112 },
+ { 0x10C0, 52116 },
+ { 0x10C4, 52120 },
+ { 0x10C2, 52124 },
+ { 0x10C5, 52128 },
+ { 0x10BB, 52132 },
+ { 0x10A9, 52136 },
+ { 0x10AA, 52140 },
+ { 0x10AB, 52144 },
+ { 0x10AC, 52148 },
+ { 0x10AE, 52152 },
+ { 0x10B7, 52156 },
+ { 0x10B0, 52160 },
+ { 0x10B1, 52164 },
+ { 0x10A7, 52168 },
+ { 0x10B2, 52172 },
+ { 0x10A5, 52176 },
+ { 0x10BE, 52180 },
+ { 0x10A6, 52184 },
+ { 0x10BD, 52188 },
+ { 0x10B9, 52192 },
+ { 0x10B6, 52196 },
+ { 0x10BF, 52200 },
+ { 0x10B5, 52204 },
+ { 0x10B4, 52208 },
+ { 0x10B8, 52212 },
+ { 0x10AF, 52216 },
+ { 0x10FB, 52220 },
+ { 0x0AD0, 52223 },
+ { 0x0ABC, 52225 },
+ { 0x0ACD, 52228 },
+ { 0x0A83, 52231 },
+ { 0x0A82, 52234 },
+ { 0x0ABD, 52237 },
+ { 0x0A81, 52240 },
+ { 0x0AE7, 52243 },
+ { 0x0AEC, 52246 },
+ { 0x0AE8, 52249 },
+ { 0x0AEB, 52252 },
+ { 0x0AEA, 52255 },
+ { 0x0AEF, 52258 },
+ { 0x0AE6, 52261 },
+ { 0x0AEE, 52264 },
+ { 0x0AED, 52267 },
+ { 0x0AE9, 52270 },
+ { 0x0AF1, 52273 },
+ { 0x0AC7, 52276 },
+ { 0x0ABF, 52280 },
+ { 0x0ACB, 52284 },
+ { 0x0AC1, 52288 },
+ { 0x0ABE, 52292 },
+ { 0x0AC8, 52296 },
+ { 0x0ACC, 52300 },
+ { 0x0AC0, 52304 },
+ { 0x0AC2, 52308 },
+ { 0x0AC5, 52312 },
+ { 0x0AC9, 52317 },
+ { 0x0AE2, 52322 },
+ { 0x0AC3, 52327 },
+ { 0x0AE3, 52332 },
+ { 0x0AC4, 52337 },
+ { 0x0A8D, 52342 },
+ { 0x0A91, 52346 },
+ { 0x0A85, 52350 },
+ { 0x0A8F, 52353 },
+ { 0x0A87, 52356 },
+ { 0x0A93, 52359 },
+ { 0x0A89, 52362 },
+ { 0x0A86, 52365 },
+ { 0x0A90, 52368 },
+ { 0x0A94, 52371 },
+ { 0x0AAC, 52374 },
+ { 0x0A9A, 52377 },
+ { 0x0AA6, 52380 },
+ { 0x0A97, 52383 },
+ { 0x0AB9, 52386 },
+ { 0x0A88, 52389 },
+ { 0x0A9C, 52392 },
+ { 0x0A95, 52395 },
+ { 0x0AB2, 52398 },
+ { 0x0AAE, 52401 },
+ { 0x0AA8, 52404 },
+ { 0x0AAA, 52407 },
+ { 0x0AB0, 52410 },
+ { 0x0AB8, 52413 },
+ { 0x0AA4, 52416 },
+ { 0x0A8A, 52419 },
+ { 0x0AB5, 52422 },
+ { 0x0AAF, 52425 },
+ { 0x0AAD, 52428 },
+ { 0x0A9B, 52431 },
+ { 0x0AA1, 52434 },
+ { 0x0AA7, 52437 },
+ { 0x0A98, 52440 },
+ { 0x0A9D, 52443 },
+ { 0x0A96, 52446 },
+ { 0x0AB3, 52449 },
+ { 0x0A99, 52452 },
+ { 0x0AA3, 52455 },
+ { 0x0A9E, 52458 },
+ { 0x0AAB, 52461 },
+ { 0x0AB6, 52464 },
+ { 0x0AB7, 52467 },
+ { 0x0AA5, 52470 },
+ { 0x0A9F, 52473 },
+ { 0x0AA2, 52476 },
+ { 0x0AA0, 52479 },
+ { 0x0A8C, 52482 },
+ { 0x0A8B, 52486 },
+ { 0x0AE1, 52490 },
+ { 0x0AE0, 52494 },
+ { 0x0A74, 52498 },
+ { 0x0A72, 52501 },
+ { 0x0A73, 52503 },
+ { 0x0A01, 52505 },
+ { 0x0A02, 52509 },
+ { 0x0A3C, 52512 },
+ { 0x0A51, 52515 },
+ { 0x0A4D, 52518 },
+ { 0x0A75, 52521 },
+ { 0x0A03, 52524 },
+ { 0x0A71, 52527 },
+ { 0x0A67, 52529 },
+ { 0x0A6C, 52532 },
+ { 0x0A68, 52535 },
+ { 0x0A6B, 52538 },
+ { 0x0A6A, 52541 },
+ { 0x0A6F, 52544 },
+ { 0x0A66, 52547 },
+ { 0x0A6E, 52550 },
+ { 0x0A6D, 52553 },
+ { 0x0A69, 52556 },
+ { 0x0A70, 52559 },
+ { 0x0A3F, 52561 },
+ { 0x0A41, 52565 },
+ { 0x0A3E, 52569 },
+ { 0x0A48, 52573 },
+ { 0x0A4C, 52577 },
+ { 0x0A47, 52581 },
+ { 0x0A40, 52585 },
+ { 0x0A4B, 52589 },
+ { 0x0A42, 52593 },
+ { 0x0A05, 52597 },
+ { 0x0A07, 52600 },
+ { 0x0A09, 52603 },
+ { 0x0A06, 52606 },
+ { 0x0A10, 52609 },
+ { 0x0A14, 52612 },
+ { 0x0A2C, 52615 },
+ { 0x0A1A, 52618 },
+ { 0x0A26, 52621 },
+ { 0x0A0F, 52624 },
+ { 0x0A5E, 52627 },
+ { 0x0A17, 52630 },
+ { 0x0A39, 52633 },
+ { 0x0A08, 52636 },
+ { 0x0A1C, 52639 },
+ { 0x0A15, 52642 },
+ { 0x0A32, 52645 },
+ { 0x0A2E, 52648 },
+ { 0x0A28, 52651 },
+ { 0x0A13, 52654 },
+ { 0x0A2A, 52657 },
+ { 0x0A30, 52660 },
+ { 0x0A38, 52663 },
+ { 0x0A24, 52666 },
+ { 0x0A0A, 52669 },
+ { 0x0A35, 52672 },
+ { 0x0A2F, 52675 },
+ { 0x0A5B, 52678 },
+ { 0x0A2D, 52681 },
+ { 0x0A1B, 52684 },
+ { 0x0A21, 52687 },
+ { 0x0A27, 52690 },
+ { 0x0A18, 52693 },
+ { 0x0A1D, 52696 },
+ { 0x0A16, 52699 },
+ { 0x0A33, 52702 },
+ { 0x0A19, 52705 },
+ { 0x0A23, 52708 },
+ { 0x0A1E, 52711 },
+ { 0x0A2B, 52714 },
+ { 0x0A5C, 52717 },
+ { 0x0A36, 52720 },
+ { 0x0A25, 52723 },
+ { 0x0A1F, 52726 },
+ { 0x0A22, 52729 },
+ { 0x0A5A, 52732 },
+ { 0x0A59, 52735 },
+ { 0x0A20, 52738 },
+ { 0x3021, 52741 },
+ { 0x3026, 52744 },
+ { 0x3038, 52747 },
+ { 0x3022, 52750 },
+ { 0x3025, 52753 },
+ { 0x3024, 52756 },
+ { 0x3029, 52759 },
+ { 0x3028, 52762 },
+ { 0x3027, 52765 },
+ { 0x3023, 52768 },
+ { 0x303A, 52771 },
+ { 0x3039, 52774 },
+ { 0x4DC6, 52777 },
+ { 0x4DEF, 52781 },
+ { 0x4DE4, 52785 },
+ { 0x4DF8, 52789 },
+ { 0x4DF9, 52794 },
+ { 0x4DDC, 52799 },
+ { 0x4DF3, 52804 },
+ { 0x4DF2, 52810 },
+ { 0x4DF1, 52815 },
+ { 0x4DDD, 52819 },
+ { 0x4DC0, 52824 },
+ { 0x4DF5, 52829 },
+ { 0x4DF7, 52834 },
+ { 0x4DC1, 52838 },
+ { 0x4DD1, 52843 },
+ { 0x4DFE, 52849 },
+ { 0x4DD5, 52853 },
+ { 0x4DE1, 52856 },
+ { 0x4DD9, 52860 },
+ { 0x4DCD, 52864 },
+ { 0x4DDB, 52868 },
+ { 0x4DFC, 52872 },
+ { 0x4DDA, 52876 },
+ { 0x4DCA, 52880 },
+ { 0x4DC8, 52883 },
+ { 0x4DFD, 52887 },
+ { 0x4DFF, 52891 },
+ { 0x4DD4, 52895 },
+ { 0x4DEB, 52899 },
+ { 0x4DD7, 52904 },
+ { 0x4DC7, 52907 },
+ { 0x4DCE, 52911 },
+ { 0x4DED, 52914 },
+ { 0x4DE0, 52918 },
+ { 0x4DC4, 52921 },
+ { 0x4DD2, 52924 },
+ { 0x4DC5, 52927 },
+ { 0x4DE8, 52930 },
+ { 0x4DDF, 52933 },
+ { 0x4DE9, 52936 },
+ { 0x4DE2, 52939 },
+ { 0x4DC9, 52942 },
+ { 0x4DC3, 52945 },
+ { 0x4DF6, 52949 },
+ { 0x4DE3, 52952 },
+ { 0x4DD0, 52958 },
+ { 0x4DEC, 52961 },
+ { 0x4DDE, 52965 },
+ { 0x4DD8, 52968 },
+ { 0x4DD6, 52971 },
+ { 0x4DC2, 52975 },
+ { 0x4DFA, 52981 },
+ { 0x4DCF, 52984 },
+ { 0x4DCC, 52987 },
+ { 0x4DFB, 52990 },
+ { 0x4DE5, 52993 },
+ { 0x4DEE, 52996 },
+ { 0x4DF0, 52999 },
+ { 0x4DCB, 53002 },
+ { 0x4DE7, 53005 },
+ { 0x4DF4, 53008 },
+ { 0x4DE6, 53011 },
+ { 0x4DEA, 53014 },
+ { 0x4DD3, 53017 },
+ { 0x3042, 53020 },
+ { 0x3048, 53023 },
+ { 0x3044, 53026 },
+ { 0x3093, 53029 },
+ { 0x304A, 53032 },
+ { 0x3046, 53035 },
+ { 0x3070, 53038 },
+ { 0x3079, 53041 },
+ { 0x3073, 53044 },
+ { 0x307C, 53047 },
+ { 0x3076, 53050 },
+ { 0x3060, 53053 },
+ { 0x3067, 53056 },
+ { 0x3062, 53059 },
+ { 0x3069, 53062 },
+ { 0x3065, 53065 },
+ { 0x304C, 53068 },
+ { 0x3052, 53071 },
+ { 0x304E, 53074 },
+ { 0x3054, 53077 },
+ { 0x3050, 53080 },
+ { 0x306F, 53083 },
+ { 0x3078, 53086 },
+ { 0x3072, 53089 },
+ { 0x307B, 53092 },
+ { 0x3075, 53095 },
+ { 0x304B, 53098 },
+ { 0x3051, 53101 },
+ { 0x304D, 53104 },
+ { 0x3053, 53107 },
+ { 0x304F, 53110 },
+ { 0x307E, 53113 },
+ { 0x3081, 53116 },
+ { 0x307F, 53119 },
+ { 0x3082, 53122 },
+ { 0x3080, 53125 },
+ { 0x306A, 53128 },
+ { 0x306D, 53131 },
+ { 0x306B, 53134 },
+ { 0x306E, 53137 },
+ { 0x306C, 53140 },
+ { 0x3071, 53143 },
+ { 0x307A, 53146 },
+ { 0x3074, 53149 },
+ { 0x307D, 53152 },
+ { 0x3077, 53155 },
+ { 0x3089, 53158 },
+ { 0x308C, 53161 },
+ { 0x308A, 53164 },
+ { 0x308D, 53167 },
+ { 0x308B, 53170 },
+ { 0x3055, 53173 },
+ { 0x305B, 53176 },
+ { 0x3057, 53179 },
+ { 0x305D, 53182 },
+ { 0x3059, 53185 },
+ { 0x305F, 53188 },
+ { 0x3066, 53191 },
+ { 0x3061, 53194 },
+ { 0x3068, 53197 },
+ { 0x3064, 53200 },
+ { 0x3094, 53203 },
+ { 0x308F, 53206 },
+ { 0x3091, 53209 },
+ { 0x3090, 53212 },
+ { 0x3092, 53215 },
+ { 0x3084, 53218 },
+ { 0x3088, 53221 },
+ { 0x3086, 53224 },
+ { 0x3056, 53227 },
+ { 0x305C, 53230 },
+ { 0x3058, 53233 },
+ { 0x305E, 53236 },
+ { 0x305A, 53239 },
+ { 0x3041, 53242 },
+ { 0x3047, 53246 },
+ { 0x3043, 53250 },
+ { 0x3049, 53254 },
+ { 0x3045, 53258 },
+ { 0x3095, 53262 },
+ { 0x3096, 53266 },
+ { 0x3063, 53270 },
+ { 0x308E, 53274 },
+ { 0x3083, 53278 },
+ { 0x3087, 53282 },
+ { 0x3085, 53286 },
+ { 0x309E, 53290 },
+ { 0x309F, 53294 },
+ { 0x309D, 53297 },
+ { 0x221E, 53300 },
+ { 0x29DE, 53301 },
+ { 0x222B, 53306 },
+ { 0x2A18, 53307 },
+ { 0x2A1A, 53311 },
+ { 0x2A0E, 53314 },
+ { 0x2A1B, 53318 },
+ { 0x2A1C, 53321 },
+ { 0x2A17, 53324 },
+ { 0x2A19, 53330 },
+ { 0x2A15, 53333 },
+ { 0x2A0F, 53338 },
+ { 0x23AE, 53342 },
+ { 0x2A3C, 53344 },
+ { 0x2127, 53346 },
+ { 0x223E, 53349 },
+ { 0x00BF, 53352 },
+ { 0x2054, 53355 },
+ { 0x00A1, 53357 },
+ { 0x2E18, 53360 },
+ { 0x3004, 53362 },
+ { 0x30A2, 53366 },
+ { 0x30A8, 53369 },
+ { 0x30A4, 53372 },
+ { 0x30F3, 53375 },
+ { 0x30AA, 53378 },
+ { 0x30A6, 53381 },
+ { 0x30D0, 53384 },
+ { 0x30D9, 53387 },
+ { 0x30D3, 53390 },
+ { 0x30DC, 53393 },
+ { 0x30D6, 53396 },
+ { 0x30C0, 53399 },
+ { 0x30C7, 53402 },
+ { 0x30C2, 53405 },
+ { 0x30C9, 53408 },
+ { 0x30C5, 53411 },
+ { 0x30AC, 53414 },
+ { 0x30B2, 53417 },
+ { 0x30AE, 53420 },
+ { 0x30B4, 53423 },
+ { 0x30B0, 53426 },
+ { 0x30CF, 53429 },
+ { 0x30D8, 53432 },
+ { 0x30D2, 53435 },
+ { 0x30DB, 53438 },
+ { 0x30D5, 53441 },
+ { 0x30AB, 53444 },
+ { 0x30B1, 53447 },
+ { 0x30AD, 53450 },
+ { 0x30B3, 53453 },
+ { 0x30AF, 53456 },
+ { 0x30DE, 53459 },
+ { 0x30E1, 53462 },
+ { 0x30DF, 53465 },
+ { 0x30E2, 53468 },
+ { 0x30E0, 53471 },
+ { 0x30CA, 53474 },
+ { 0x30CD, 53477 },
+ { 0x30CB, 53480 },
+ { 0x30CE, 53483 },
+ { 0x30CC, 53486 },
+ { 0x30D1, 53489 },
+ { 0x30DA, 53492 },
+ { 0x30D4, 53495 },
+ { 0x30DD, 53498 },
+ { 0x30D7, 53501 },
+ { 0x30E9, 53504 },
+ { 0x30EC, 53507 },
+ { 0x30EA, 53510 },
+ { 0x30ED, 53513 },
+ { 0x30EB, 53516 },
+ { 0x30B5, 53519 },
+ { 0x30BB, 53522 },
+ { 0x30B7, 53525 },
+ { 0x30BD, 53528 },
+ { 0x30B9, 53531 },
+ { 0x30BF, 53534 },
+ { 0x30C6, 53537 },
+ { 0x30C1, 53540 },
+ { 0x30C8, 53543 },
+ { 0x30C4, 53546 },
+ { 0x30F7, 53549 },
+ { 0x30F9, 53552 },
+ { 0x30F8, 53555 },
+ { 0x30FA, 53558 },
+ { 0x30F4, 53561 },
+ { 0x30EF, 53564 },
+ { 0x30F1, 53567 },
+ { 0x30F0, 53570 },
+ { 0x30F2, 53573 },
+ { 0x30E4, 53576 },
+ { 0x30E8, 53579 },
+ { 0x30E6, 53582 },
+ { 0x30B6, 53585 },
+ { 0x30BC, 53588 },
+ { 0x30B8, 53591 },
+ { 0x30BE, 53594 },
+ { 0x30BA, 53597 },
+ { 0x30A1, 53600 },
+ { 0x30A7, 53604 },
+ { 0x30A3, 53608 },
+ { 0x30A9, 53612 },
+ { 0x30A5, 53616 },
+ { 0x31F5, 53620 },
+ { 0x31F8, 53624 },
+ { 0x31F6, 53628 },
+ { 0x31F9, 53632 },
+ { 0x31F7, 53636 },
+ { 0x30F5, 53640 },
+ { 0x30F6, 53644 },
+ { 0x31F0, 53648 },
+ { 0x31FA, 53652 },
+ { 0x31F4, 53656 },
+ { 0x31FB, 53660 },
+ { 0x31FE, 53664 },
+ { 0x31FC, 53668 },
+ { 0x31FF, 53672 },
+ { 0x31FD, 53676 },
+ { 0x31F1, 53680 },
+ { 0x31F2, 53684 },
+ { 0x31F3, 53688 },
+ { 0x30C3, 53692 },
+ { 0x30EE, 53696 },
+ { 0x30E3, 53700 },
+ { 0x30E7, 53704 },
+ { 0x30E5, 53708 },
+ { 0x30FB, 53712 },
+ { 0x30FE, 53715 },
+ { 0x30FF, 53719 },
+ { 0x30FD, 53722 },
+ { 0x2328, 53725 },
+ { 0xC001, 53726 },
+ { 0x26AD, 53728 },
+ { 0x225E, 53730 },
+ { 0x2221, 53732 },
+ { 0x29A9, 53734 },
+ { 0x29A8, 53746 },
+ { 0x29AB, 53758 },
+ { 0x29AA, 53770 },
+ { 0x29AD, 53782 },
+ { 0x29AF, 53794 },
+ { 0x29AC, 53806 },
+ { 0x29AE, 53818 },
+ { 0x299B, 53830 },
+ { 0x299D, 53834 },
+ { 0x23D5, 53839 },
+ { 0x23D6, 53844 },
+ { 0x23D4, 53848 },
+ { 0x23D2, 53853 },
+ { 0x23D1, 53857 },
+ { 0x23D3, 53859 },
+ { 0x23D7, 53863 },
+ { 0x23D9, 53865 },
+ { 0x23D8, 53867 },
+ { 0x02D4, 53869 },
+ { 0x02C4, 53873 },
+ { 0x5770, 53877 },
+ { 0x5718, 53880 },
+ { 0x5717, 53884 },
+ { 0x5719, 53889 },
+ { 0x02FC, 53894 },
+ { 0x02FA, 53899 },
+ { 0x02F0, 53904 },
+ { 0x02EF, 53909 },
+ { 0x02FF, 53914 },
+ { 0x02F1, 53919 },
+ { 0x02F3, 53924 },
+ { 0x02E8, 53928 },
+ { 0x02CF, 53933 },
+ { 0x02CE, 53938 },
+ { 0x02F2, 53943 },
+ { 0x02F7, 53948 },
+ { 0x570B, 53952 },
+ { 0x5710, 53958 },
+ { 0x02CD, 53965 },
+ { 0x571F, 53969 },
+ { 0x02CC, 53975 },
+ { 0x5715, 53980 },
+ { 0x5788, 53986 },
+ { 0x02E7, 53991 },
+ { 0x570A, 53996 },
+ { 0x570F, 54002 },
+ { 0x5714, 54009 },
+ { 0x02EA, 54015 },
+ { 0x02D5, 54021 },
+ { 0x02C5, 54025 },
+ { 0x02D1, 54029 },
+ { 0x02E6, 54034 },
+ { 0x5709, 54039 },
+ { 0x570E, 54045 },
+ { 0x5713, 54052 },
+ { 0x02BF, 54058 },
+ { 0x02C2, 54063 },
+ { 0x02FE, 54067 },
+ { 0x02D6, 54071 },
+ { 0x02EB, 54075 },
+ { 0x02CA, 54081 },
+ { 0x02FB, 54085 },
+ { 0x02F9, 54090 },
+ { 0x5789, 54095 },
+ { 0x02DF, 54098 },
+ { 0x02CB, 54102 },
+ { 0x571A, 54106 },
+ { 0x02D7, 54112 },
+ { 0x02B9, 54116 },
+ { 0x02BE, 54119 },
+ { 0x02C3, 54124 },
+ { 0x02FD, 54128 },
+ { 0x578A, 54131 },
+ { 0x1D43, 54136 },
+ { 0x1D47, 54140 },
+ { 0x1D9C, 54144 },
+ { 0x1D9D, 54148 },
+ { 0x1D48, 54154 },
+ { 0x1D49, 54158 },
+ { 0x1DA0, 54162 },
+ { 0x1D4D, 54166 },
+ { 0x02B0, 54170 },
+ { 0x02B1, 54174 },
+ { 0x1DA4, 54180 },
+ { 0x02B2, 54186 },
+ { 0x1DA8, 54190 },
+ { 0x1D4F, 54196 },
+ { 0x02E1, 54200 },
+ { 0x1DAA, 54204 },
+ { 0x1DA9, 54211 },
+ { 0x1D50, 54218 },
+ { 0x1DAC, 54222 },
+ { 0x1DAE, 54228 },
+ { 0x1DAF, 54235 },
+ { 0x1D52, 54242 },
+ { 0x1D56, 54246 },
+ { 0x02B3, 54250 },
+ { 0x02E2, 54254 },
+ { 0x1DB3, 54258 },
+ { 0x1D57, 54264 },
+ { 0x1DB5, 54268 },
+ { 0x1D58, 54275 },
+ { 0x1DB6, 54279 },
+ { 0x1D5B, 54284 },
+ { 0x1DB9, 54288 },
+ { 0x02B7, 54294 },
+ { 0x02E3, 54298 },
+ { 0x02B8, 54302 },
+ { 0x1DBB, 54306 },
+ { 0x1DBD, 54310 },
+ { 0x1DBC, 54316 },
+ { 0x1D5C, 54323 },
+ { 0x1D61, 54327 },
+ { 0x1D51, 54331 },
+ { 0x1DB4, 54335 },
+ { 0x1D9E, 54339 },
+ { 0x1DBE, 54343 },
+ { 0x1DB2, 54347 },
+ { 0x1D54, 54351 },
+ { 0x1D5D, 54357 },
+ { 0x1DA5, 54361 },
+ { 0x1D4B, 54365 },
+ { 0x1D53, 54370 },
+ { 0x1D45, 54375 },
+ { 0x1D5F, 54379 },
+ { 0x02E0, 54383 },
+ { 0x1D60, 54387 },
+ { 0x1D5E, 54392 },
+ { 0x1D4A, 54397 },
+ { 0x1DBF, 54401 },
+ { 0x1DB1, 54405 },
+ { 0x1D55, 54410 },
+ { 0x1DA2, 54416 },
+ { 0x1D44, 54421 },
+ { 0x1DA3, 54426 },
+ { 0x1D4E, 54431 },
+ { 0x1D5A, 54436 },
+ { 0x1DAD, 54441 },
+ { 0x02B4, 54449 },
+ { 0x02B5, 54454 },
+ { 0x1DBA, 54461 },
+ { 0x1D46, 54466 },
+ { 0x1D4C, 54471 },
+ { 0x1D9B, 54477 },
+ { 0x1DA6, 54482 },
+ { 0x1DA7, 54487 },
+ { 0x1DAB, 54494 },
+ { 0x1DB0, 54499 },
+ { 0x1DB8, 54504 },
+ { 0x02B6, 54509 },
+ { 0x1DA1, 54515 },
+ { 0x1DB7, 54522 },
+ { 0x1D9F, 54526 },
+ { 0x02E4, 54532 },
+ { 0x1D59, 54538 },
+ { 0x02BA, 54543 },
+ { 0x02EE, 54547 },
+ { 0x02C9, 54551 },
+ { 0x02F4, 54554 },
+ { 0x02F6, 54559 },
+ { 0x02F5, 54565 },
+ { 0x571B, 54571 },
+ { 0x571C, 54576 },
+ { 0x02F8, 54581 },
+ { 0x571E, 54585 },
+ { 0x571D, 54591 },
+ { 0x02DE, 54596 },
+ { 0x5721, 54600 },
+ { 0x5720, 54606 },
+ { 0x02BB, 54612 },
+ { 0x1D2C, 54616 },
+ { 0x1D2E, 54620 },
+ { 0x1D30, 54624 },
+ { 0x1D31, 54628 },
+ { 0x1D33, 54632 },
+ { 0x1D34, 54636 },
+ { 0x1D35, 54640 },
+ { 0x1D36, 54644 },
+ { 0x1D37, 54648 },
+ { 0x1D38, 54652 },
+ { 0x1D39, 54656 },
+ { 0x1D3A, 54660 },
+ { 0x1D3C, 54664 },
+ { 0x1D3E, 54668 },
+ { 0x1D3F, 54672 },
+ { 0x1D40, 54676 },
+ { 0x1D41, 54680 },
+ { 0x2C7D, 54684 },
+ { 0x1D42, 54688 },
+ { 0x1D2D, 54692 },
+ { 0x1D3D, 54696 },
+ { 0x1D2F, 54700 },
+ { 0x1D32, 54705 },
+ { 0x1D3B, 54710 },
+ { 0x02D3, 54715 },
+ { 0x02D2, 54721 },
+ { 0x5704, 54727 },
+ { 0x5706, 54733 },
+ { 0x5700, 54739 },
+ { 0x5702, 54745 },
+ { 0x5705, 54751 },
+ { 0x5707, 54757 },
+ { 0x5701, 54763 },
+ { 0x5703, 54769 },
+ { 0x02C0, 54775 },
+ { 0x02EC, 54779 },
+ { 0x1D78, 54782 },
+ { 0x10FC, 54786 },
+ { 0x02BD, 54790 },
+ { 0x02C1, 54794 },
+ { 0x02C8, 54799 },
+ { 0x02E9, 54803 },
+ { 0x570C, 54808 },
+ { 0x5711, 54814 },
+ { 0x5716, 54821 },
+ { 0x02BC, 54827 },
+ { 0x02C6, 54830 },
+ { 0x02E5, 54834 },
+ { 0x5708, 54839 },
+ { 0x570D, 54845 },
+ { 0x5712, 54852 },
+ { 0x02D0, 54858 },
+ { 0x02ED, 54862 },
+ { 0x268B, 54865 },
+ { 0x268A, 54868 },
+ { 0x9300, 54871 },
+ { 0x22B8, 54874 },
+ { 0x228C, 54875 },
+ { 0x228E, 54876 },
+ { 0x228D, 54878 },
+ { 0x206E, 54880 },
+ { 0x24FF, 54883 },
+ { 0x24EB, 54887 },
+ { 0x24EC, 54891 },
+ { 0x24F4, 54895 },
+ { 0x24EF, 54899 },
+ { 0x24F0, 54903 },
+ { 0x24F2, 54907 },
+ { 0x24EE, 54911 },
+ { 0x24F3, 54915 },
+ { 0x24ED, 54919 },
+ { 0x24F1, 54923 },
+ { 0x00A0, 54927 },
+ { 0x22B6, 54929 },
+ { 0x2626, 54931 },
+ { 0x272D, 54933 },
+ { 0x2719, 54936 },
+ { 0x271F, 54939 },
+ { 0x269D, 54942 },
+ { 0x203E, 54945 },
+ { 0x2225, 54946 },
+ { 0x2AF3, 54948 },
+ { 0x2AF2, 54952 },
+ { 0x5876, 54956 },
+ { 0x5877, 54959 },
+ { 0x5875, 54963 },
+ { 0x585D, 54967 },
+ { 0x5860, 54970 },
+ { 0x585E, 54973 },
+ { 0x5861, 54976 },
+ { 0x585F, 54979 },
+ { 0x584E, 54982 },
+ { 0x5844, 54985 },
+ { 0x584A, 54988 },
+ { 0x5866, 54991 },
+ { 0x5864, 54994 },
+ { 0x5842, 54997 },
+ { 0x585C, 55000 },
+ { 0x5846, 55003 },
+ { 0x5840, 55006 },
+ { 0x5859, 55009 },
+ { 0x584F, 55012 },
+ { 0x584B, 55015 },
+ { 0x584C, 55018 },
+ { 0x5862, 55021 },
+ { 0x5858, 55024 },
+ { 0x585B, 55027 },
+ { 0x5848, 55030 },
+ { 0x5853, 55033 },
+ { 0x5863, 55036 },
+ { 0x5857, 55039 },
+ { 0x5855, 55042 },
+ { 0x5845, 55045 },
+ { 0x586B, 55048 },
+ { 0x5852, 55051 },
+ { 0x5865, 55054 },
+ { 0x5841, 55057 },
+ { 0x5843, 55060 },
+ { 0x586C, 55063 },
+ { 0x5847, 55066 },
+ { 0x584D, 55069 },
+ { 0x585A, 55072 },
+ { 0x5849, 55075 },
+ { 0x5850, 55078 },
+ { 0x5869, 55081 },
+ { 0x5854, 55084 },
+ { 0x5851, 55087 },
+ { 0x586A, 55090 },
+ { 0x5856, 55093 },
+ { 0x586F, 55097 },
+ { 0x586D, 55101 },
+ { 0x5870, 55105 },
+ { 0x586E, 55109 },
+ { 0x5873, 55113 },
+ { 0x5874, 55116 },
+ { 0x5871, 55120 },
+ { 0x5867, 55124 },
+ { 0x5868, 55128 },
+ { 0x5872, 55132 },
+ { 0x71F7, 55136 },
+ { 0x71F1, 55141 },
+ { 0x71DA, 55145 },
+ { 0x71EC, 55149 },
+ { 0x71E0, 55153 },
+ { 0x71ED, 55157 },
+ { 0x71DF, 55161 },
+ { 0x71DC, 55165 },
+ { 0x71E4, 55169 },
+ { 0x71EF, 55173 },
+ { 0x71EA, 55177 },
+ { 0x71E9, 55181 },
+ { 0x71F6, 55185 },
+ { 0x71E8, 55189 },
+ { 0x71F3, 55193 },
+ { 0x71FC, 55197 },
+ { 0x71D9, 55202 },
+ { 0x71EB, 55206 },
+ { 0x71D4, 55211 },
+ { 0x71EE, 55215 },
+ { 0x71F8, 55219 },
+ { 0x71F2, 55223 },
+ { 0x71E5, 55228 },
+ { 0x71FB, 55232 },
+ { 0x71D8, 55237 },
+ { 0x71F0, 55241 },
+ { 0x71D5, 55245 },
+ { 0x71E6, 55249 },
+ { 0x71E3, 55253 },
+ { 0x71F9, 55257 },
+ { 0x71D6, 55261 },
+ { 0x71D1, 55265 },
+ { 0x71DB, 55270 },
+ { 0x71E7, 55274 },
+ { 0x71D3, 55278 },
+ { 0x71DE, 55282 },
+ { 0x71F4, 55286 },
+ { 0x71F5, 55290 },
+ { 0x71D7, 55294 },
+ { 0x71DD, 55298 },
+ { 0x71FA, 55302 },
+ { 0x71D2, 55306 },
+ { 0x71E1, 55311 },
+ { 0x71E2, 55315 },
+ { 0x71FD, 55320 },
+ { 0x71D0, 55326 },
+ { 0x272F, 55330 },
+ { 0x2316, 55332 },
+ { 0x227A, 55334 },
+ { 0x227C, 55335 },
+ { 0x227E, 55339 },
+ { 0x22E8, 55343 },
+ { 0x2AB5, 55348 },
+ { 0x2AB9, 55353 },
+ { 0x2AB7, 55359 },
+ { 0x2AB3, 55364 },
+ { 0x2AB1, 55368 },
+ { 0x2AAF, 55374 },
+ { 0x22B0, 55379 },
+ { 0x2397, 55382 },
+ { 0x214A, 55384 },
+ { 0x2596, 55386 },
+ { 0x2597, 55389 },
+ { 0x2598, 55392 },
+ { 0x2599, 55395 },
+ { 0x259A, 55404 },
+ { 0x259B, 55410 },
+ { 0x259C, 55419 },
+ { 0x259D, 55428 },
+ { 0x259E, 55431 },
+ { 0x259F, 55437 },
+ { 0x003F, 55446 },
+ { 0x2048, 55448 },
+ { 0x26BB, 55451 },
+ { 0x267C, 55452 },
+ { 0x211F, 55455 },
+ { 0x2310, 55456 },
+ { 0x29A3, 55459 },
+ { 0x29A5, 55461 },
+ { 0x29B0, 55465 },
+ { 0x2035, 55468 },
+ { 0x223D, 55470 },
+ { 0x22CD, 55472 },
+ { 0x2036, 55475 },
+ { 0x301D, 55478 },
+ { 0x2AED, 55483 },
+ { 0x2E11, 55488 },
+ { 0x2037, 55491 },
+ { 0x204B, 55494 },
+ { 0x2619, 55497 },
+ { 0x2E2E, 55502 },
+ { 0x204F, 55505 },
+ { 0x2143, 55507 },
+ { 0x264F, 55511 },
+ { 0x2730, 55512 },
+ { 0x271E, 55515 },
+ { 0x274D, 55519 },
+ { 0x2618, 55522 },
+ { 0x5673, 55523 },
+ { 0x2263, 55525 },
+ { 0x227B, 55528 },
+ { 0x227D, 55529 },
+ { 0x227F, 55533 },
+ { 0x22E9, 55537 },
+ { 0x2AB6, 55542 },
+ { 0x2ABA, 55547 },
+ { 0x2AB8, 55553 },
+ { 0x2AB4, 55558 },
+ { 0x2AB2, 55562 },
+ { 0x2AB0, 55568 },
+ { 0x22B1, 55573 },
+ { 0x2283, 55576 },
+ { 0x2287, 55578 },
+ { 0x2AC4, 55583 },
+ { 0x228B, 55591 },
+ { 0x2ACC, 55597 },
+ { 0x2AC8, 55603 },
+ { 0x2ACA, 55608 },
+ { 0x2AC6, 55614 },
+ { 0x2ABE, 55619 },
+ { 0x2AC0, 55622 },
+ { 0x2AC2, 55627 },
+ { 0x2AD4, 55632 },
+ { 0x2AD6, 55635 },
+ { 0x297B, 55638 },
+ { 0x2AD8, 55642 },
+ { 0x2AD7, 55650 },
+ { 0x27C9, 55653 },
+ { 0x232F, 55656 },
+ { 0x1772, 55657 },
+ { 0x1773, 55661 },
+ { 0x1760, 55665 },
+ { 0x1761, 55668 },
+ { 0x1762, 55671 },
+ { 0x176A, 55674 },
+ { 0x1767, 55677 },
+ { 0x1764, 55680 },
+ { 0x1763, 55683 },
+ { 0x176E, 55686 },
+ { 0x176B, 55689 },
+ { 0x1768, 55692 },
+ { 0x1769, 55695 },
+ { 0x1770, 55698 },
+ { 0x1766, 55701 },
+ { 0x176F, 55704 },
+ { 0x176C, 55707 },
+ { 0x1765, 55710 },
+ { 0x2D30, 55713 },
+ { 0x2D49, 55716 },
+ { 0x2D53, 55719 },
+ { 0x2D44, 55722 },
+ { 0x2D31, 55725 },
+ { 0x2D37, 55728 },
+ { 0x2D3C, 55731 },
+ { 0x2D33, 55734 },
+ { 0x2D40, 55737 },
+ { 0x2D36, 55740 },
+ { 0x2D3D, 55743 },
+ { 0x2D4D, 55746 },
+ { 0x2D4E, 55749 },
+ { 0x2D4F, 55752 },
+ { 0x2D52, 55755 },
+ { 0x2D47, 55758 },
+ { 0x2D54, 55761 },
+ { 0x2D59, 55764 },
+ { 0x2D5C, 55767 },
+ { 0x2D60, 55770 },
+ { 0x2D61, 55773 },
+ { 0x2D62, 55776 },
+ { 0x2D63, 55779 },
+ { 0x2D3B, 55782 },
+ { 0x2D58, 55785 },
+ { 0x2D32, 55789 },
+ { 0x2D5E, 55792 },
+ { 0x2D39, 55795 },
+ { 0x2D38, 55798 },
+ { 0x2D56, 55801 },
+ { 0x2D43, 55804 },
+ { 0x2D45, 55807 },
+ { 0x2D55, 55810 },
+ { 0x2D5B, 55813 },
+ { 0x2D5A, 55816 },
+ { 0x2D5D, 55819 },
+ { 0x2D5F, 55822 },
+ { 0x2D4A, 55825 },
+ { 0x2D65, 55828 },
+ { 0x2D3A, 55831 },
+ { 0x2D34, 55834 },
+ { 0x2D3F, 55837 },
+ { 0x2D41, 55840 },
+ { 0x2D35, 55845 },
+ { 0x2D42, 55850 },
+ { 0x2D3E, 55854 },
+ { 0x2D48, 55858 },
+ { 0x2D57, 55862 },
+ { 0x2D50, 55866 },
+ { 0x2D46, 55870 },
+ { 0x2D51, 55874 },
+ { 0x2D4C, 55878 },
+ { 0x2D4B, 55882 },
+ { 0x2D64, 55886 },
+ { 0x2D6F, 55890 },
+ { 0x204A, 55895 },
+ { 0x29CA, 55898 },
+ { 0x29CD, 55902 },
+ { 0x29CB, 55907 },
+ { 0x205D, 55910 },
+ { 0x739F, 55911 },
+ { 0x739B, 55914 },
+ { 0x739C, 55917 },
+ { 0x7385, 55920 },
+ { 0x7394, 55923 },
+ { 0x739A, 55926 },
+ { 0x7386, 55929 },
+ { 0x7391, 55932 },
+ { 0x7393, 55935 },
+ { 0x738B, 55938 },
+ { 0x7383, 55941 },
+ { 0x738E, 55944 },
+ { 0x7390, 55947 },
+ { 0x739D, 55950 },
+ { 0x7389, 55953 },
+ { 0x738A, 55956 },
+ { 0x7380, 55959 },
+ { 0x7381, 55962 },
+ { 0x738F, 55965 },
+ { 0x7388, 55968 },
+ { 0x7396, 55971 },
+ { 0x7395, 55974 },
+ { 0x738C, 55977 },
+ { 0x7387, 55980 },
+ { 0x7384, 55983 },
+ { 0x7382, 55986 },
+ { 0x7399, 55989 },
+ { 0x738D, 55992 },
+ { 0x7397, 55995 },
+ { 0x7392, 55998 },
+ { 0x7398, 56001 },
+ { 0x2602, 56004 },
+ { 0x2614, 56005 },
+ { 0x203F, 56009 },
+ { 0x2123, 56010 },
+ { 0x27CA, 56011 },
+ { 0x29D0, 56016 },
+ { 0x2AE4, 56021 },
+ { 0x2AE2, 56026 },
+ { 0x205E, 56031 },
+ { 0x3031, 56034 },
+ { 0x3035, 56038 },
+ { 0x3033, 56044 },
+ { 0x3032, 56050 },
+ { 0x3034, 56057 },
+ { 0x007C, 56066 },
+ { 0x2AEF, 56068 },
+ { 0x2AF0, 56073 },
+ { 0x237F, 56078 },
+ { 0x23D0, 56083 },
+ { 0x26A8, 56086 },
+ { 0x2E2F, 56091 },
+ { 0x299A, 56093 },
+ { 0x22EE, 56096 },
+ { 0x303B, 56098 },
+ { 0x2317, 56102 },
+ { 0x2101, 56104 },
+ { 0x0026, 56108 },
+ { 0x260A, 56109 },
+ { 0x22A6, 56111 },
+ { 0x2623, 56112 },
+ { 0x902F, 56114 },
+ { 0x900E, 56118 },
+ { 0x9085, 56123 },
+ { 0x9046, 56127 },
+ { 0x901A, 56132 },
+ { 0x9040, 56137 },
+ { 0x9079, 56141 },
+ { 0x9030, 56147 },
+ { 0x907D, 56151 },
+ { 0x907C, 56156 },
+ { 0x909C, 56161 },
+ { 0x909E, 56166 },
+ { 0x909A, 56171 },
+ { 0x90A1, 56177 },
+ { 0x909F, 56183 },
+ { 0x909D, 56188 },
+ { 0x909B, 56193 },
+ { 0x90A0, 56198 },
+ { 0x9033, 56203 },
+ { 0x900D, 56209 },
+ { 0x9097, 56214 },
+ { 0x90C8, 56218 },
+ { 0x90C9, 56223 },
+ { 0x90CA, 56228 },
+ { 0x9086, 56233 },
+ { 0x9080, 56237 },
+ { 0x902E, 56242 },
+ { 0x9048, 56246 },
+ { 0x9004, 56251 },
+ { 0x9003, 56256 },
+ { 0x9000, 56261 },
+ { 0x9025, 56265 },
+ { 0x9066, 56269 },
+ { 0x902D, 56273 },
+ { 0x9078, 56277 },
+ { 0x9014, 56282 },
+ { 0x9019, 56286 },
+ { 0x906A, 56290 },
+ { 0x9001, 56295 },
+ { 0x90D0, 56299 },
+ { 0x90D2, 56306 },
+ { 0x90D3, 56313 },
+ { 0x90D1, 56320 },
+ { 0x90CE, 56327 },
+ { 0x90CF, 56332 },
+ { 0x9060, 56337 },
+ { 0x9074, 56342 },
+ { 0x90C5, 56347 },
+ { 0x90CB, 56354 },
+ { 0x90BC, 56361 },
+ { 0x90C7, 56367 },
+ { 0x90C3, 56372 },
+ { 0x90C4, 56379 },
+ { 0x90C6, 56386 },
+ { 0x90BE, 56393 },
+ { 0x9034, 56400 },
+ { 0x90B9, 56405 },
+ { 0x90BD, 56412 },
+ { 0x90BF, 56418 },
+ { 0x90C2, 56424 },
+ { 0x90C1, 56431 },
+ { 0x90BA, 56438 },
+ { 0x90C0, 56444 },
+ { 0x90BB, 56450 },
+ { 0x90CC, 56456 },
+ { 0x90D8, 56462 },
+ { 0x90D9, 56467 },
+ { 0x908F, 56472 },
+ { 0x90F5, 56478 },
+ { 0x9016, 56484 },
+ { 0x9091, 56489 },
+ { 0x9090, 56495 },
+ { 0x90AC, 56501 },
+ { 0x9037, 56507 },
+ { 0x9024, 56512 },
+ { 0x907F, 56516 },
+ { 0x90F4, 56521 },
+ { 0x908B, 56526 },
+ { 0x908A, 56532 },
+ { 0x908C, 56538 },
+ { 0x908E, 56544 },
+ { 0x908D, 56550 },
+ { 0x9057, 56556 },
+ { 0x9047, 56561 },
+ { 0x9015, 56566 },
+ { 0x905B, 56571 },
+ { 0x9020, 56575 },
+ { 0x9059, 56580 },
+ { 0x9026, 56585 },
+ { 0x9017, 56590 },
+ { 0x9029, 56594 },
+ { 0x9069, 56598 },
+ { 0x90E8, 56603 },
+ { 0x900F, 56607 },
+ { 0x9087, 56611 },
+ { 0x9058, 56615 },
+ { 0x9006, 56620 },
+ { 0x9005, 56625 },
+ { 0x90D4, 56630 },
+ { 0x90D6, 56637 },
+ { 0x90D7, 56644 },
+ { 0x90D5, 56651 },
+ { 0x90CD, 56658 },
+ { 0x9050, 56663 },
+ { 0x90EC, 56667 },
+ { 0x90EB, 56672 },
+ { 0x90ED, 56677 },
+ { 0x90EF, 56682 },
+ { 0x90E9, 56687 },
+ { 0x90EE, 56692 },
+ { 0x90EA, 56697 },
+ { 0x9056, 56702 },
+ { 0x9099, 56706 },
+ { 0x9055, 56710 },
+ { 0x90B6, 56714 },
+ { 0x903F, 56721 },
+ { 0x904F, 56725 },
+ { 0x90F3, 56731 },
+ { 0x90F1, 56737 },
+ { 0x901B, 56743 },
+ { 0x9089, 56748 },
+ { 0x9083, 56752 },
+ { 0x9082, 56757 },
+ { 0x9081, 56762 },
+ { 0x9061, 56767 },
+ { 0x905D, 56771 },
+ { 0x9041, 56775 },
+ { 0x9049, 56779 },
+ { 0x903C, 56783 },
+ { 0x907E, 56787 },
+ { 0x901F, 56791 },
+ { 0x9065, 56796 },
+ { 0x902B, 56801 },
+ { 0x902A, 56807 },
+ { 0x9013, 56812 },
+ { 0x9031, 56816 },
+ { 0x9027, 56820 },
+ { 0x9021, 56824 },
+ { 0x9053, 56829 },
+ { 0x9084, 56833 },
+ { 0x9022, 56838 },
+ { 0x9023, 56843 },
+ { 0x9018, 56847 },
+ { 0x9067, 56851 },
+ { 0x903B, 56856 },
+ { 0x90DA, 56861 },
+ { 0x90DB, 56867 },
+ { 0x90DC, 56873 },
+ { 0x90DD, 56878 },
+ { 0x9092, 56883 },
+ { 0x9095, 56887 },
+ { 0x9094, 56893 },
+ { 0x9093, 56900 },
+ { 0x90E6, 56907 },
+ { 0x9068, 56912 },
+ { 0x90B7, 56916 },
+ { 0x9007, 56920 },
+ { 0x903A, 56924 },
+ { 0x9042, 56928 },
+ { 0x904A, 56933 },
+ { 0x900C, 56937 },
+ { 0x90A3, 56941 },
+ { 0x90A5, 56948 },
+ { 0x90B1, 56955 },
+ { 0x90A2, 56961 },
+ { 0x90A6, 56967 },
+ { 0x90AA, 56973 },
+ { 0x90AB, 56979 },
+ { 0x90B3, 56985 },
+ { 0x90A4, 56992 },
+ { 0x90A8, 56998 },
+ { 0x90A9, 57004 },
+ { 0x90A7, 57011 },
+ { 0x90B2, 57016 },
+ { 0x901E, 57022 },
+ { 0x9038, 57026 },
+ { 0x904D, 57030 },
+ { 0x901D, 57035 },
+ { 0x90E2, 57039 },
+ { 0x90E3, 57044 },
+ { 0x90E4, 57050 },
+ { 0x90E5, 57056 },
+ { 0x90DE, 57062 },
+ { 0x90DF, 57067 },
+ { 0x90E0, 57073 },
+ { 0x90E1, 57079 },
+ { 0x9088, 57085 },
+ { 0x9063, 57089 },
+ { 0x9043, 57094 },
+ { 0x9036, 57099 },
+ { 0x90E7, 57104 },
+ { 0x907B, 57109 },
+ { 0x90B0, 57113 },
+ { 0x90AF, 57118 },
+ { 0x90AE, 57123 },
+ { 0x9035, 57128 },
+ { 0x907A, 57132 },
+ { 0x9010, 57136 },
+ { 0x904E, 57140 },
+ { 0x90F2, 57146 },
+ { 0x90F0, 57152 },
+ { 0x901C, 57158 },
+ { 0x9032, 57163 },
+ { 0x9075, 57167 },
+ { 0x902C, 57172 },
+ { 0x9039, 57177 },
+ { 0x905A, 57181 },
+ { 0x9008, 57186 },
+ { 0x9096, 57190 },
+ { 0x900A, 57194 },
+ { 0x900B, 57198 },
+ { 0x905C, 57203 },
+ { 0x90AD, 57207 },
+ { 0x9052, 57213 },
+ { 0x9011, 57219 },
+ { 0x9051, 57223 },
+ { 0x9012, 57228 },
+ { 0x9064, 57233 },
+ { 0x90B4, 57237 },
+ { 0x90B5, 57243 },
+ { 0x9098, 57249 },
+ { 0x90B8, 57253 },
+ { 0x905F, 57257 },
+ { 0x903D, 57262 },
+ { 0x9009, 57267 },
+ { 0x905E, 57271 },
+ { 0x903E, 57276 },
+ { 0x9002, 57281 },
+ { 0x9076, 57285 },
+ { 0x9077, 57290 },
+ { 0x9028, 57295 },
+ { 0x9045, 57299 },
+ { 0x9044, 57303 },
+ { 0x9073, 57307 },
+ { 0x9072, 57311 },
+ { 0x906D, 57315 },
+ { 0x9070, 57319 },
+ { 0x9062, 57323 },
+ { 0x904C, 57327 },
+ { 0x9054, 57331 },
+ { 0x904B, 57335 },
+ { 0x906C, 57339 },
+ { 0x9071, 57343 },
+ { 0x906B, 57347 },
+ { 0x906E, 57351 },
+ { 0x906F, 57355 },
+ { 0x2651, 57359 },
+ { 0x2040, 57360 },
+ { 0x21B7, 57362 },
+ { 0x21BB, 57366 },
+ { 0x2941, 57370 },
+ { 0x27F3, 57374 },
+ { 0x2232, 57378 },
+ { 0x2231, 57381 },
+ { 0x033D, 57383 },
+ { 0x0353, 57386 },
+ { 0x1DD0, 57389 },
+ { 0x031D, 57392 },
+ { 0x1DD1, 57396 },
+ { 0x1DD2, 57399 },
+ { 0x0307, 57402 },
+ { 0x0358, 57405 },
+ { 0x0323, 57409 },
+ { 0x0332, 57412 },
+ { 0x034A, 57415 },
+ { 0x031E, 57419 },
+ { 0x20DC, 57423 },
+ { 0x0309, 57427 },
+ { 0x031B, 57430 },
+ { 0x0351, 57432 },
+ { 0x031C, 57437 },
+ { 0x0318, 57442 },
+ { 0x031A, 57446 },
+ { 0x0349, 57450 },
+ { 0x20D6, 57454 },
+ { 0x20EE, 57458 },
+ { 0x20E1, 57462 },
+ { 0x034D, 57467 },
+ { 0x20D0, 57472 },
+ { 0x1DFE, 57476 },
+ { 0x0354, 57480 },
+ { 0x20EB, 57484 },
+ { 0x0336, 57489 },
+ { 0x0338, 57493 },
+ { 0x20D2, 57497 },
+ { 0x031F, 57502 },
+ { 0x030A, 57506 },
+ { 0x0325, 57509 },
+ { 0x20D8, 57512 },
+ { 0x20E9, 57515 },
+ { 0x0341, 57519 },
+ { 0x0301, 57523 },
+ { 0x0317, 57526 },
+ { 0x0306, 57530 },
+ { 0x032E, 57532 },
+ { 0x030C, 57535 },
+ { 0x032C, 57537 },
+ { 0x0313, 57540 },
+ { 0x0315, 57543 },
+ { 0x0326, 57547 },
+ { 0x0340, 57550 },
+ { 0x0300, 57554 },
+ { 0x0316, 57557 },
+ { 0x0343, 57561 },
+ { 0x9242, 57564 },
+ { 0x9244, 57568 },
+ { 0x9243, 57572 },
+ { 0x0344, 57576 },
+ { 0x0342, 57580 },
+ { 0x0345, 57583 },
+ { 0x0363, 57586 },
+ { 0x0368, 57591 },
+ { 0x1DD7, 57596 },
+ { 0x0369, 57602 },
+ { 0x0364, 57607 },
+ { 0x1DDA, 57612 },
+ { 0x036A, 57617 },
+ { 0x0365, 57622 },
+ { 0x1DDC, 57627 },
+ { 0x1DDD, 57632 },
+ { 0x036B, 57637 },
+ { 0x1DE0, 57642 },
+ { 0x0366, 57647 },
+ { 0x036C, 57652 },
+ { 0x1DCA, 57657 },
+ { 0x1DE3, 57663 },
+ { 0x1DE4, 57669 },
+ { 0x036D, 57674 },
+ { 0x0367, 57679 },
+ { 0x036E, 57684 },
+ { 0x036F, 57689 },
+ { 0x1DE6, 57694 },
+ { 0x1DD4, 57699 },
+ { 0x1DD5, 57704 },
+ { 0x1DD6, 57709 },
+ { 0x1DD9, 57714 },
+ { 0x1DE5, 57719 },
+ { 0x1DD8, 57725 },
+ { 0x1DD3, 57731 },
+ { 0x1DDB, 57739 },
+ { 0x1DDE, 57745 },
+ { 0x1DDF, 57751 },
+ { 0x1DE1, 57757 },
+ { 0x1DE2, 57763 },
+ { 0x0320, 57769 },
+ { 0x0357, 57773 },
+ { 0x0339, 57778 },
+ { 0x0319, 57783 },
+ { 0x20D7, 57787 },
+ { 0x20EF, 57791 },
+ { 0x20D1, 57795 },
+ { 0x0356, 57799 },
+ { 0x1DFF, 57806 },
+ { 0x0350, 57813 },
+ { 0x0355, 57817 },
+ { 0x0335, 57821 },
+ { 0x0337, 57825 },
+ { 0x20D3, 57829 },
+ { 0x1DC2, 57834 },
+ { 0x20DB, 57837 },
+ { 0x0303, 57841 },
+ { 0x0330, 57843 },
+ { 0x0334, 57846 },
+ { 0x034C, 57849 },
+ { 0x0346, 57854 },
+ { 0x032A, 57857 },
+ { 0x1DC1, 57860 },
+ { 0x1DC0, 57864 },
+ { 0x0333, 57868 },
+ { 0x035A, 57872 },
+ { 0x030B, 57876 },
+ { 0x035D, 57880 },
+ { 0x035C, 57883 },
+ { 0x030F, 57887 },
+ { 0x0360, 57891 },
+ { 0x6E22, 57894 },
+ { 0x6E23, 57899 },
+ { 0x035E, 57904 },
+ { 0x035F, 57907 },
+ { 0x0361, 57911 },
+ { 0x033F, 57915 },
+ { 0x030E, 57918 },
+ { 0x0348, 57923 },
+ { 0x20E6, 57928 },
+ { 0x1DCD, 57933 },
+ { 0x0362, 57937 },
+ { 0x0347, 57942 },
+ { 0x0304, 57946 },
+ { 0x6E24, 57948 },
+ { 0x0331, 57952 },
+ { 0x6E25, 57955 },
+ { 0x0328, 57959 },
+ { 0x1DCE, 57961 },
+ { 0x033B, 57964 },
+ { 0x20E8, 57967 },
+ { 0x0312, 57970 },
+ { 0x035B, 57974 },
+ { 0x1DCF, 57977 },
+ { 0x20E7, 57980 },
+ { 0x0327, 57983 },
+ { 0x0352, 57985 },
+ { 0x20E5, 57987 },
+ { 0x033C, 57991 },
+ { 0x034E, 57994 },
+ { 0x20F0, 57998 },
+ { 0x0359, 58001 },
+ { 0x5670, 58004 },
+ { 0x0485, 58009 },
+ { 0x0486, 58013 },
+ { 0x0483, 58017 },
+ { 0x566F, 58020 },
+ { 0x567C, 58023 },
+ { 0x2DF6, 58026 },
+ { 0x2DEA, 58030 },
+ { 0x2DE0, 58034 },
+ { 0x2DE3, 58038 },
+ { 0x2DE7, 58042 },
+ { 0x2DE8, 58046 },
+ { 0x2DE9, 58050 },
+ { 0x2DEC, 58054 },
+ { 0x2DED, 58058 },
+ { 0x2DEF, 58062 },
+ { 0x2DF7, 58066 },
+ { 0x2DE6, 58070 },
+ { 0x2DEB, 58074 },
+ { 0x2DEE, 58078 },
+ { 0x2DE1, 58082 },
+ { 0x2DFB, 58086 },
+ { 0x2DE5, 58090 },
+ { 0x2DFE, 58094 },
+ { 0x2DF1, 58099 },
+ { 0x2DE2, 58103 },
+ { 0x2DF2, 58107 },
+ { 0x2DF0, 58111 },
+ { 0x2DFA, 58115 },
+ { 0x2DE4, 58119 },
+ { 0x2DF4, 58123 },
+ { 0x2DF8, 58127 },
+ { 0x2DF5, 58131 },
+ { 0x2DF3, 58135 },
+ { 0x2DFD, 58139 },
+ { 0x2DFC, 58144 },
+ { 0x2DFF, 58149 },
+ { 0x2DF9, 58155 },
+ { 0x5671, 58160 },
+ { 0x0488, 58165 },
+ { 0x567D, 58170 },
+ { 0x0489, 58173 },
+ { 0x0487, 58177 },
+ { 0x5672, 58180 },
+ { 0x0484, 58185 },
+ { 0x034F, 58188 },
+ { 0x0311, 58191 },
+ { 0x032F, 58194 },
+ { 0x033A, 58198 },
+ { 0x032B, 58202 },
+ { 0x6E20, 58207 },
+ { 0x6E21, 58211 },
+ { 0x0305, 58215 },
+ { 0x0314, 58217 },
+ { 0x030D, 58221 },
+ { 0x0329, 58225 },
+ { 0x033E, 58229 },
+ { 0x20D9, 58232 },
+ { 0x20D5, 58236 },
+ { 0x0308, 58240 },
+ { 0x0324, 58242 },
+ { 0x20DD, 58245 },
+ { 0x20E0, 58248 },
+ { 0x20E3, 58252 },
+ { 0x20E2, 58255 },
+ { 0x20DE, 58258 },
+ { 0x20E4, 58261 },
+ { 0x20DF, 58266 },
+ { 0x20EA, 58269 },
+ { 0x20ED, 58273 },
+ { 0x0322, 58279 },
+ { 0x0302, 58283 },
+ { 0x032D, 58286 },
+ { 0x6E26, 58290 },
+ { 0x034B, 58293 },
+ { 0x20EC, 58296 },
+ { 0x1DC3, 58302 },
+ { 0x0310, 58305 },
+ { 0x0321, 58307 },
+ { 0x1DC7, 58311 },
+ { 0x1DCB, 58313 },
+ { 0x1DC5, 58315 },
+ { 0x1DC4, 58317 },
+ { 0x1DCC, 58319 },
+ { 0x1DC6, 58321 },
+ { 0x20DA, 58323 },
+ { 0x20D4, 58327 },
+ { 0x1DC9, 58331 },
+ { 0x1DC8, 58333 },
+ { 0x3099, 58335 },
+ { 0x309A, 58340 },
+ { 0x2A6D, 58345 },
+ { 0x00A9, 58349 },
+ { 0x8000, 58351 },
+ { 0x8001, 58354 },
+ { 0x8004, 58359 },
+ { 0x8002, 58364 },
+ { 0x8005, 58369 },
+ { 0x8008, 58374 },
+ { 0x8003, 58379 },
+ { 0x8007, 58385 },
+ { 0x8006, 58390 },
+ { 0x808A, 58396 },
+ { 0x808C, 58399 },
+ { 0x808B, 58407 },
+ { 0x813F, 58412 },
+ { 0x8140, 58415 },
+ { 0x830B, 58419 },
+ { 0x830D, 58422 },
+ { 0x830C, 58427 },
+ { 0x8310, 58431 },
+ { 0x830E, 58441 },
+ { 0x830F, 58452 },
+ { 0x8009, 58460 },
+ { 0x800A, 58463 },
+ { 0x8015, 58466 },
+ { 0x8014, 58470 },
+ { 0x800F, 58479 },
+ { 0x800D, 58484 },
+ { 0x8010, 58489 },
+ { 0x800B, 58495 },
+ { 0x800C, 58500 },
+ { 0x800E, 58506 },
+ { 0x8011, 58512 },
+ { 0x8012, 58517 },
+ { 0x8013, 58522 },
+ { 0x801C, 58527 },
+ { 0x801D, 58530 },
+ { 0x801E, 58533 },
+ { 0x801F, 58538 },
+ { 0x8020, 58545 },
+ { 0x8021, 58548 },
+ { 0x8024, 58553 },
+ { 0x8026, 58558 },
+ { 0x8027, 58563 },
+ { 0x8028, 58568 },
+ { 0x8022, 58573 },
+ { 0x8023, 58578 },
+ { 0x8025, 58583 },
+ { 0x802D, 58588 },
+ { 0x802E, 58591 },
+ { 0x8031, 58596 },
+ { 0x8030, 58602 },
+ { 0x802F, 58611 },
+ { 0x8040, 58616 },
+ { 0x8049, 58619 },
+ { 0x804A, 58622 },
+ { 0x804B, 58627 },
+ { 0x804C, 58632 },
+ { 0x804D, 58638 },
+ { 0x804E, 58641 },
+ { 0x804F, 58647 },
+ { 0x8050, 58653 },
+ { 0x8055, 58658 },
+ { 0x8072, 58661 },
+ { 0x807A, 58664 },
+ { 0x807C, 58667 },
+ { 0x807B, 58671 },
+ { 0x807D, 58676 },
+ { 0x808D, 58680 },
+ { 0x808E, 58683 },
+ { 0x8093, 58692 },
+ { 0x8090, 58697 },
+ { 0x808F, 58702 },
+ { 0x8091, 58707 },
+ { 0x8092, 58712 },
+ { 0x8096, 58717 },
+ { 0x8097, 58720 },
+ { 0x809A, 58723 },
+ { 0x8098, 58728 },
+ { 0x8099, 58733 },
+ { 0x809D, 58739 },
+ { 0x809B, 58743 },
+ { 0x809C, 58748 },
+ { 0x80B5, 58753 },
+ { 0x80B6, 58756 },
+ { 0x8100, 58760 },
+ { 0x8101, 58763 },
+ { 0x8102, 58768 },
+ { 0x8103, 58773 },
+ { 0x8116, 58778 },
+ { 0x8117, 58781 },
+ { 0x8129, 58786 },
+ { 0x812B, 58789 },
+ { 0x812A, 58793 },
+ { 0x812D, 58797 },
+ { 0x8136, 58800 },
+ { 0x812E, 58805 },
+ { 0x8130, 58810 },
+ { 0x8132, 58815 },
+ { 0x8133, 58820 },
+ { 0x8134, 58825 },
+ { 0x8135, 58830 },
+ { 0x812F, 58835 },
+ { 0x8131, 58840 },
+ { 0x8137, 58845 },
+ { 0x8141, 58848 },
+ { 0x8145, 58851 },
+ { 0x814B, 58854 },
+ { 0x814C, 58857 },
+ { 0x814E, 58863 },
+ { 0x814F, 58866 },
+ { 0x8152, 58871 },
+ { 0x8150, 58875 },
+ { 0x8151, 58880 },
+ { 0x8154, 58885 },
+ { 0x8155, 58888 },
+ { 0x8157, 58891 },
+ { 0x8158, 58894 },
+ { 0x8187, 58899 },
+ { 0x8159, 58904 },
+ { 0x815A, 58909 },
+ { 0x815F, 58916 },
+ { 0x8162, 58921 },
+ { 0x8167, 58926 },
+ { 0x816B, 58931 },
+ { 0x816E, 58936 },
+ { 0x8170, 58941 },
+ { 0x8172, 58946 },
+ { 0x8173, 58951 },
+ { 0x8174, 58956 },
+ { 0x8175, 58961 },
+ { 0x8176, 58968 },
+ { 0x8177, 58975 },
+ { 0x8178, 58982 },
+ { 0x8179, 58987 },
+ { 0x817A, 58994 },
+ { 0x817C, 58999 },
+ { 0x817D, 59004 },
+ { 0x817E, 59009 },
+ { 0x8188, 59014 },
+ { 0x8189, 59019 },
+ { 0x818C, 59024 },
+ { 0x815C, 59029 },
+ { 0x815E, 59034 },
+ { 0x8163, 59039 },
+ { 0x8165, 59044 },
+ { 0x8166, 59049 },
+ { 0x816D, 59058 },
+ { 0x816F, 59063 },
+ { 0x8171, 59068 },
+ { 0x817B, 59073 },
+ { 0x817F, 59078 },
+ { 0x8180, 59083 },
+ { 0x8181, 59088 },
+ { 0x8183, 59093 },
+ { 0x8184, 59098 },
+ { 0x8186, 59103 },
+ { 0x818B, 59108 },
+ { 0x815B, 59113 },
+ { 0x8161, 59118 },
+ { 0x8164, 59123 },
+ { 0x8168, 59129 },
+ { 0x8169, 59134 },
+ { 0x816A, 59141 },
+ { 0x816C, 59148 },
+ { 0x8182, 59153 },
+ { 0x818A, 59158 },
+ { 0x815D, 59165 },
+ { 0x8160, 59170 },
+ { 0x8185, 59175 },
+ { 0x81A0, 59180 },
+ { 0x81A2, 59183 },
+ { 0x81A3, 59188 },
+ { 0x81A1, 59193 },
+ { 0x81AA, 59198 },
+ { 0x81AB, 59201 },
+ { 0x81B7, 59213 },
+ { 0x81F7, 59216 },
+ { 0x81FB, 59219 },
+ { 0x81FC, 59222 },
+ { 0x8220, 59227 },
+ { 0x8222, 59230 },
+ { 0x8221, 59234 },
+ { 0x8228, 59239 },
+ { 0x822A, 59242 },
+ { 0x822C, 59245 },
+ { 0x822D, 59248 },
+ { 0x823E, 59253 },
+ { 0x8248, 59256 },
+ { 0x8249, 59259 },
+ { 0x824A, 59264 },
+ { 0x824B, 59269 },
+ { 0x824C, 59273 },
+ { 0x824D, 59276 },
+ { 0x8261, 59281 },
+ { 0x827A, 59284 },
+ { 0x827F, 59287 },
+ { 0x8280, 59290 },
+ { 0x8284, 59295 },
+ { 0x8285, 59300 },
+ { 0x8287, 59305 },
+ { 0x8281, 59310 },
+ { 0x8282, 59315 },
+ { 0x8283, 59320 },
+ { 0x8286, 59325 },
+ { 0x8288, 59330 },
+ { 0x8289, 59335 },
+ { 0x828F, 59340 },
+ { 0x8291, 59343 },
+ { 0x8292, 59346 },
+ { 0x8293, 59349 },
+ { 0x82DB, 59352 },
+ { 0x82DC, 59355 },
+ { 0x82E2, 59359 },
+ { 0x82E3, 59362 },
+ { 0x82EB, 59367 },
+ { 0x82EF, 59370 },
+ { 0x82ED, 59374 },
+ { 0x82EE, 59379 },
+ { 0x82EC, 59384 },
+ { 0x82FC, 59388 },
+ { 0x82FD, 59391 },
+ { 0x82FE, 59395 },
+ { 0x82FF, 59398 },
+ { 0x8305, 59402 },
+ { 0x8311, 59405 },
+ { 0x8312, 59408 },
+ { 0x8313, 59411 },
+ { 0x8319, 59414 },
+ { 0x8317, 59418 },
+ { 0x8318, 59427 },
+ { 0x8316, 59437 },
+ { 0x8315, 59442 },
+ { 0x8314, 59447 },
+ { 0x831A, 59451 },
+ { 0x831B, 59455 },
+ { 0x831D, 59461 },
+ { 0x8321, 59464 },
+ { 0x831F, 59469 },
+ { 0x8320, 59476 },
+ { 0x831E, 59481 },
+ { 0x8326, 59486 },
+ { 0x8327, 59489 },
+ { 0x8328, 59493 },
+ { 0x832A, 59496 },
+ { 0x8329, 59500 },
+ { 0x835D, 59505 },
+ { 0x835E, 59508 },
+ { 0x835F, 59512 },
+ { 0x8363, 59518 },
+ { 0x8364, 59521 },
+ { 0x836A, 59526 },
+ { 0x8016, 59529 },
+ { 0x8019, 59532 },
+ { 0x8018, 59539 },
+ { 0x801A, 59545 },
+ { 0x801B, 59550 },
+ { 0x8017, 59555 },
+ { 0x8038, 59560 },
+ { 0x803A, 59563 },
+ { 0x803C, 59568 },
+ { 0x803D, 59575 },
+ { 0x803B, 59588 },
+ { 0x8039, 59600 },
+ { 0x8041, 59605 },
+ { 0x8044, 59608 },
+ { 0x8045, 59611 },
+ { 0x8047, 59616 },
+ { 0x8053, 59619 },
+ { 0x8056, 59622 },
+ { 0x8057, 59625 },
+ { 0x805A, 59633 },
+ { 0x805B, 59639 },
+ { 0x805C, 59645 },
+ { 0x805D, 59653 },
+ { 0x8060, 59659 },
+ { 0x8061, 59665 },
+ { 0x8062, 59671 },
+ { 0x8064, 59679 },
+ { 0x8065, 59685 },
+ { 0x8066, 59691 },
+ { 0x8068, 59699 },
+ { 0x806A, 59705 },
+ { 0x806C, 59711 },
+ { 0x805F, 59719 },
+ { 0x8063, 59725 },
+ { 0x8067, 59731 },
+ { 0x8069, 59737 },
+ { 0x806D, 59745 },
+ { 0x8058, 59751 },
+ { 0x805E, 59757 },
+ { 0x806B, 59763 },
+ { 0x8059, 59769 },
+ { 0x806E, 59775 },
+ { 0x806F, 59778 },
+ { 0x8073, 59781 },
+ { 0x8074, 59784 },
+ { 0x8075, 59787 },
+ { 0x8077, 59792 },
+ { 0x8078, 59795 },
+ { 0x807E, 59802 },
+ { 0x807F, 59805 },
+ { 0x8081, 59810 },
+ { 0x8083, 59813 },
+ { 0x8084, 59816 },
+ { 0x80B7, 59819 },
+ { 0x80ED, 59822 },
+ { 0x80B8, 59827 },
+ { 0x80B9, 59836 },
+ { 0x80BA, 59843 },
+ { 0x80EA, 59850 },
+ { 0x80BC, 59855 },
+ { 0x80C3, 59860 },
+ { 0x80C4, 59865 },
+ { 0x80C7, 59870 },
+ { 0x80C8, 59875 },
+ { 0x80C9, 59882 },
+ { 0x80CA, 59887 },
+ { 0x80CD, 59895 },
+ { 0x80D1, 59900 },
+ { 0x80D4, 59909 },
+ { 0x80DD, 59916 },
+ { 0x80DE, 59921 },
+ { 0x80DF, 59928 },
+ { 0x80E2, 59933 },
+ { 0x80EB, 59938 },
+ { 0x80EC, 59943 },
+ { 0x80BB, 59950 },
+ { 0x80BD, 59958 },
+ { 0x80BF, 59963 },
+ { 0x80C0, 59968 },
+ { 0x80C1, 59975 },
+ { 0x80C2, 59980 },
+ { 0x80C5, 59987 },
+ { 0x80C6, 59994 },
+ { 0x80CC, 59999 },
+ { 0x80CE, 60004 },
+ { 0x80CF, 60009 },
+ { 0x80D2, 60016 },
+ { 0x80D3, 60021 },
+ { 0x80D6, 60028 },
+ { 0x80D7, 60034 },
+ { 0x80D8, 60043 },
+ { 0x80DA, 60048 },
+ { 0x80DB, 60053 },
+ { 0x80DC, 60060 },
+ { 0x80E0, 60067 },
+ { 0x80E1, 60072 },
+ { 0x80E3, 60079 },
+ { 0x80E4, 60084 },
+ { 0x80E5, 60089 },
+ { 0x80E6, 60094 },
+ { 0x80E8, 60101 },
+ { 0x80BE, 60106 },
+ { 0x80CB, 60113 },
+ { 0x80D0, 60119 },
+ { 0x80D5, 60126 },
+ { 0x80E7, 60131 },
+ { 0x80E9, 60136 },
+ { 0x80D9, 60141 },
+ { 0x80F0, 60146 },
+ { 0x80F1, 60149 },
+ { 0x80F2, 60157 },
+ { 0x80F3, 60160 },
+ { 0x80F5, 60169 },
+ { 0x80F6, 60172 },
+ { 0x80FB, 60175 },
+ { 0x8104, 60178 },
+ { 0x8105, 60181 },
+ { 0x8106, 60186 },
+ { 0x8118, 60191 },
+ { 0x811D, 60194 },
+ { 0x8119, 60198 },
+ { 0x811A, 60203 },
+ { 0x811B, 60211 },
+ { 0x811C, 60216 },
+ { 0x811E, 60223 },
+ { 0x8121, 60226 },
+ { 0x811F, 60232 },
+ { 0x8120, 60239 },
+ { 0x8122, 60244 },
+ { 0x8123, 60247 },
+ { 0x8124, 60250 },
+ { 0x8125, 60255 },
+ { 0x812C, 60258 },
+ { 0x8146, 60261 },
+ { 0x8148, 60264 },
+ { 0x8147, 60268 },
+ { 0x814A, 60272 },
+ { 0x8149, 60276 },
+ { 0x814D, 60287 },
+ { 0x8156, 60290 },
+ { 0x818D, 60293 },
+ { 0x818E, 60296 },
+ { 0x818F, 60301 },
+ { 0x8195, 60304 },
+ { 0x8196, 60307 },
+ { 0x8197, 60313 },
+ { 0x8198, 60316 },
+ { 0x8199, 60321 },
+ { 0x81A4, 60326 },
+ { 0x81A5, 60329 },
+ { 0x81AC, 60332 },
+ { 0x81AD, 60335 },
+ { 0x81AE, 60338 },
+ { 0x81AF, 60343 },
+ { 0x81B0, 60346 },
+ { 0x81B1, 60349 },
+ { 0x81B2, 60353 },
+ { 0x81B3, 60356 },
+ { 0x81B4, 60359 },
+ { 0x81F2, 60364 },
+ { 0x81F3, 60367 },
+ { 0x81F4, 60372 },
+ { 0x81F5, 60375 },
+ { 0x81F6, 60380 },
+ { 0x81F8, 60387 },
+ { 0x81FD, 60390 },
+ { 0x8211, 60393 },
+ { 0x81FE, 60397 },
+ { 0x8203, 60402 },
+ { 0x8204, 60409 },
+ { 0x8208, 60414 },
+ { 0x8209, 60419 },
+ { 0x820B, 60426 },
+ { 0x820C, 60433 },
+ { 0x820D, 60438 },
+ { 0x820E, 60443 },
+ { 0x81FF, 60450 },
+ { 0x8200, 60455 },
+ { 0x8201, 60460 },
+ { 0x8202, 60466 },
+ { 0x8205, 60472 },
+ { 0x8206, 60477 },
+ { 0x8207, 60482 },
+ { 0x820F, 60489 },
+ { 0x8210, 60496 },
+ { 0x820A, 60501 },
+ { 0x8215, 60506 },
+ { 0x8214, 60510 },
+ { 0x8212, 60514 },
+ { 0x8213, 60519 },
+ { 0x8216, 60524 },
+ { 0x821B, 60527 },
+ { 0x821C, 60530 },
+ { 0x821D, 60533 },
+ { 0x821E, 60536 },
+ { 0x821F, 60541 },
+ { 0x8223, 60549 },
+ { 0x8224, 60552 },
+ { 0x8225, 60555 },
+ { 0x8229, 60558 },
+ { 0x822B, 60561 },
+ { 0x822E, 60564 },
+ { 0x822F, 60567 },
+ { 0x823F, 60571 },
+ { 0x8246, 60574 },
+ { 0x8245, 60577 },
+ { 0x824E, 60581 },
+ { 0x824F, 60584 },
+ { 0x8251, 60587 },
+ { 0x8250, 60595 },
+ { 0x8263, 60601 },
+ { 0x826A, 60604 },
+ { 0x8269, 60609 },
+ { 0x8264, 60613 },
+ { 0x8266, 60619 },
+ { 0x8267, 60625 },
+ { 0x8268, 60636 },
+ { 0x8265, 60642 },
+ { 0x826B, 60648 },
+ { 0x826C, 60653 },
+ { 0x827B, 60661 },
+ { 0x827C, 60664 },
+ { 0x827D, 60667 },
+ { 0x8290, 60670 },
+ { 0x8295, 60673 },
+ { 0x82A8, 60676 },
+ { 0x82A7, 60680 },
+ { 0x8296, 60685 },
+ { 0x8297, 60690 },
+ { 0x8299, 60695 },
+ { 0x829D, 60700 },
+ { 0x82A2, 60705 },
+ { 0x82A3, 60710 },
+ { 0x82A4, 60715 },
+ { 0x82A5, 60720 },
+ { 0x8298, 60725 },
+ { 0x829A, 60730 },
+ { 0x829B, 60735 },
+ { 0x829C, 60740 },
+ { 0x829E, 60745 },
+ { 0x829F, 60750 },
+ { 0x82A1, 60755 },
+ { 0x82A6, 60760 },
+ { 0x82A0, 60765 },
+ { 0x8294, 60770 },
+ { 0x82A9, 60774 },
+ { 0x82AA, 60777 },
+ { 0x82AC, 60783 },
+ { 0x82AD, 60786 },
+ { 0x82BA, 60789 },
+ { 0x82BB, 60792 },
+ { 0x82BC, 60796 },
+ { 0x82BD, 60807 },
+ { 0x82D7, 60818 },
+ { 0x82D8, 60821 },
+ { 0x82DD, 60827 },
+ { 0x82E4, 60830 },
+ { 0x82E7, 60833 },
+ { 0x82E9, 60836 },
+ { 0x82F0, 60839 },
+ { 0x82F1, 60842 },
+ { 0x82F2, 60853 },
+ { 0x82F3, 60857 },
+ { 0x82F4, 60860 },
+ { 0x82F9, 60865 },
+ { 0x82F5, 60870 },
+ { 0x82F6, 60875 },
+ { 0x82F7, 60880 },
+ { 0x82F8, 60885 },
+ { 0x82FB, 60890 },
+ { 0x8300, 60893 },
+ { 0x8301, 60896 },
+ { 0x8303, 60899 },
+ { 0x8304, 60904 },
+ { 0x8302, 60915 },
+ { 0x8307, 60920 },
+ { 0x8308, 60923 },
+ { 0x8309, 60926 },
+ { 0x830A, 60929 },
+ { 0x832B, 60937 },
+ { 0x832C, 60940 },
+ { 0x832D, 60947 },
+ { 0x832E, 60954 },
+ { 0x832F, 60959 },
+ { 0x8331, 60964 },
+ { 0x8333, 60969 },
+ { 0x8332, 60976 },
+ { 0x8330, 60983 },
+ { 0x8334, 60988 },
+ { 0x8335, 60991 },
+ { 0x8337, 60994 },
+ { 0x8338, 60997 },
+ { 0x834C, 61002 },
+ { 0x833C, 61009 },
+ { 0x8340, 61014 },
+ { 0x8341, 61019 },
+ { 0x8343, 61024 },
+ { 0x8345, 61029 },
+ { 0x8348, 61034 },
+ { 0x834B, 61039 },
+ { 0x834D, 61044 },
+ { 0x833A, 61049 },
+ { 0x833B, 61054 },
+ { 0x833D, 61059 },
+ { 0x833F, 61064 },
+ { 0x8342, 61069 },
+ { 0x8344, 61074 },
+ { 0x8346, 61079 },
+ { 0x8347, 61084 },
+ { 0x8349, 61089 },
+ { 0x833E, 61094 },
+ { 0x834A, 61100 },
+ { 0x834E, 61105 },
+ { 0x8339, 61110 },
+ { 0x8351, 61115 },
+ { 0x8352, 61118 },
+ { 0x8353, 61123 },
+ { 0x8354, 61128 },
+ { 0x8355, 61133 },
+ { 0x835A, 61138 },
+ { 0x835B, 61141 },
+ { 0x835C, 61146 },
+ { 0x8360, 61149 },
+ { 0x8362, 61152 },
+ { 0x8365, 61155 },
+ { 0x8366, 61158 },
+ { 0x8367, 61161 },
+ { 0x8368, 61166 },
+ { 0x836B, 61169 },
+ { 0x836C, 61172 },
+ { 0x836E, 61177 },
+ { 0x8029, 61180 },
+ { 0x802B, 61183 },
+ { 0x802C, 61186 },
+ { 0x8033, 61191 },
+ { 0x8034, 61194 },
+ { 0x8035, 61197 },
+ { 0x803E, 61202 },
+ { 0x8042, 61205 },
+ { 0x8054, 61208 },
+ { 0x8076, 61211 },
+ { 0x8079, 61214 },
+ { 0x8080, 61217 },
+ { 0x8085, 61220 },
+ { 0x8086, 61223 },
+ { 0x8087, 61227 },
+ { 0x8088, 61232 },
+ { 0x8089, 61235 },
+ { 0x8094, 61238 },
+ { 0x8095, 61241 },
+ { 0x809E, 61244 },
+ { 0x80A0, 61247 },
+ { 0x80A1, 61250 },
+ { 0x80A2, 61253 },
+ { 0x80A3, 61258 },
+ { 0x80A4, 61265 },
+ { 0x80A5, 61274 },
+ { 0x80A9, 61279 },
+ { 0x80AA, 61284 },
+ { 0x80AF, 61290 },
+ { 0x80B1, 61295 },
+ { 0x80B2, 61300 },
+ { 0x80B3, 61305 },
+ { 0x80B4, 61310 },
+ { 0x80A6, 61315 },
+ { 0x80AB, 61320 },
+ { 0x80AE, 61326 },
+ { 0x80B0, 61331 },
+ { 0x80A7, 61338 },
+ { 0x80A8, 61344 },
+ { 0x80AC, 61351 },
+ { 0x80AD, 61356 },
+ { 0x80EE, 61362 },
+ { 0x80EF, 61365 },
+ { 0x80F7, 61370 },
+ { 0x80F9, 61373 },
+ { 0x80F8, 61378 },
+ { 0x80FA, 61382 },
+ { 0x80FC, 61387 },
+ { 0x8108, 61390 },
+ { 0x8109, 61393 },
+ { 0x810A, 61397 },
+ { 0x810B, 61400 },
+ { 0x810E, 61407 },
+ { 0x810F, 61414 },
+ { 0x810D, 61419 },
+ { 0x810C, 61424 },
+ { 0x8111, 61430 },
+ { 0x8115, 61433 },
+ { 0x8113, 61437 },
+ { 0x8114, 61442 },
+ { 0x8112, 61447 },
+ { 0x8126, 61452 },
+ { 0x8138, 61455 },
+ { 0x8139, 61458 },
+ { 0x813D, 61463 },
+ { 0x813A, 61468 },
+ { 0x813C, 61473 },
+ { 0x813B, 61478 },
+ { 0x813E, 61483 },
+ { 0x8142, 61486 },
+ { 0x8143, 61489 },
+ { 0x8144, 61495 },
+ { 0x8153, 61501 },
+ { 0x8190, 61504 },
+ { 0x8191, 61507 },
+ { 0x8192, 61510 },
+ { 0x8193, 61513 },
+ { 0x8194, 61516 },
+ { 0x819A, 61521 },
+ { 0x819B, 61524 },
+ { 0x81A7, 61527 },
+ { 0x81FA, 61530 },
+ { 0x8226, 61533 },
+ { 0x8232, 61536 },
+ { 0x8236, 61539 },
+ { 0x8237, 61544 },
+ { 0x8233, 61553 },
+ { 0x8235, 61558 },
+ { 0x8234, 61563 },
+ { 0x8238, 61568 },
+ { 0x8240, 61573 },
+ { 0x8242, 61576 },
+ { 0x8241, 61582 },
+ { 0x8243, 61586 },
+ { 0x8247, 61591 },
+ { 0x8262, 61594 },
+ { 0x82AE, 61597 },
+ { 0x82AF, 61600 },
+ { 0x82B5, 61605 },
+ { 0x82B6, 61610 },
+ { 0x82B2, 61617 },
+ { 0x82B0, 61622 },
+ { 0x82B4, 61627 },
+ { 0x82B1, 61632 },
+ { 0x82B3, 61637 },
+ { 0x82B7, 61642 },
+ { 0x82BF, 61645 },
+ { 0x82C3, 61648 },
+ { 0x82C4, 61651 },
+ { 0x82C5, 61656 },
+ { 0x82C6, 61661 },
+ { 0x82C7, 61664 },
+ { 0x82C8, 61669 },
+ { 0x82CA, 61674 },
+ { 0x82CB, 61679 },
+ { 0x82CC, 61684 },
+ { 0x82CD, 61689 },
+ { 0x82CF, 61695 },
+ { 0x82D0, 61700 },
+ { 0x82D1, 61705 },
+ { 0x82C9, 61710 },
+ { 0x82CE, 61715 },
+ { 0x82D3, 61720 },
+ { 0x82D5, 61723 },
+ { 0x82D4, 61731 },
+ { 0x82D9, 61735 },
+ { 0x82DE, 61738 },
+ { 0x82DF, 61741 },
+ { 0x82E0, 61747 },
+ { 0x82E5, 61750 },
+ { 0x82EA, 61753 },
+ { 0x82FA, 61756 },
+ { 0x8306, 61759 },
+ { 0x831C, 61762 },
+ { 0x8323, 61765 },
+ { 0x8325, 61768 },
+ { 0x8324, 61773 },
+ { 0x8336, 61778 },
+ { 0x8357, 61781 },
+ { 0x8356, 61784 },
+ { 0x8361, 61787 },
+ { 0x8369, 61790 },
+ { 0x802A, 61793 },
+ { 0x8032, 61796 },
+ { 0x8036, 61799 },
+ { 0x8037, 61802 },
+ { 0x8046, 61805 },
+ { 0x8048, 61808 },
+ { 0x8051, 61811 },
+ { 0x8052, 61814 },
+ { 0x8070, 61819 },
+ { 0x8071, 61822 },
+ { 0x8082, 61825 },
+ { 0x809F, 61828 },
+ { 0x80F4, 61831 },
+ { 0x8107, 61834 },
+ { 0x8110, 61837 },
+ { 0x8127, 61840 },
+ { 0x819F, 61843 },
+ { 0x81A6, 61846 },
+ { 0x81B8, 61849 },
+ { 0x81B9, 61852 },
+ { 0x81BA, 61857 },
+ { 0x81BB, 61866 },
+ { 0x81BC, 61873 },
+ { 0x81E5, 61880 },
+ { 0x81E6, 61885 },
+ { 0x81E7, 61892 },
+ { 0x81BD, 61901 },
+ { 0x81BE, 61906 },
+ { 0x81C1, 61911 },
+ { 0x81C3, 61916 },
+ { 0x81C4, 61921 },
+ { 0x81C8, 61926 },
+ { 0x81CA, 61931 },
+ { 0x81CC, 61938 },
+ { 0x81CD, 61943 },
+ { 0x81CE, 61950 },
+ { 0x81CF, 61957 },
+ { 0x81D6, 61962 },
+ { 0x81D8, 61967 },
+ { 0x81D9, 61972 },
+ { 0x81DB, 61979 },
+ { 0x81E4, 61984 },
+ { 0x81E8, 61995 },
+ { 0x81E9, 62002 },
+ { 0x81BF, 62007 },
+ { 0x81C0, 62014 },
+ { 0x81C2, 62019 },
+ { 0x81C5, 62024 },
+ { 0x81C6, 62029 },
+ { 0x81C7, 62034 },
+ { 0x81C9, 62041 },
+ { 0x81CB, 62046 },
+ { 0x81D0, 62052 },
+ { 0x81D1, 62057 },
+ { 0x81D2, 62062 },
+ { 0x81D3, 62067 },
+ { 0x81D7, 62076 },
+ { 0x81DC, 62081 },
+ { 0x81E1, 62088 },
+ { 0x81E2, 62093 },
+ { 0x81EA, 62098 },
+ { 0x81D5, 62103 },
+ { 0x81DA, 62108 },
+ { 0x81DF, 62113 },
+ { 0x81E0, 62118 },
+ { 0x81E3, 62125 },
+ { 0x81D4, 62130 },
+ { 0x81DD, 62135 },
+ { 0x81DE, 62144 },
+ { 0x81EB, 62152 },
+ { 0x81EC, 62156 },
+ { 0x81EF, 62159 },
+ { 0x81F0, 62163 },
+ { 0x81ED, 62171 },
+ { 0x81EE, 62176 },
+ { 0x8217, 62183 },
+ { 0x8218, 62186 },
+ { 0x821A, 62191 },
+ { 0x8219, 62195 },
+ { 0x8227, 62200 },
+ { 0x8239, 62203 },
+ { 0x823D, 62206 },
+ { 0x823A, 62210 },
+ { 0x823B, 62215 },
+ { 0x823C, 62222 },
+ { 0x8244, 62227 },
+ { 0x8260, 62230 },
+ { 0x826D, 62233 },
+ { 0x826F, 62236 },
+ { 0x8274, 62242 },
+ { 0x8275, 62248 },
+ { 0x8277, 62254 },
+ { 0x8270, 62260 },
+ { 0x8271, 62266 },
+ { 0x8272, 62272 },
+ { 0x8273, 62279 },
+ { 0x8276, 62285 },
+ { 0x826E, 62291 },
+ { 0x8278, 62297 },
+ { 0x8279, 62303 },
+ { 0x827E, 62310 },
+ { 0x828A, 62313 },
+ { 0x828C, 62316 },
+ { 0x828D, 62321 },
+ { 0x828B, 62326 },
+ { 0x828E, 62331 },
+ { 0x82B8, 62336 },
+ { 0x82B9, 62339 },
+ { 0x82BE, 62342 },
+ { 0x82C0, 62345 },
+ { 0x82D6, 62348 },
+ { 0x82E1, 62351 },
+ { 0x82E6, 62354 },
+ { 0x8322, 62357 },
+ { 0x834F, 62360 },
+ { 0x8350, 62363 },
+ { 0x8359, 62368 },
+ { 0x836D, 62371 },
+ { 0x803F, 62374 },
+ { 0x8043, 62377 },
+ { 0x80FD, 62380 },
+ { 0x8128, 62383 },
+ { 0x819C, 62386 },
+ { 0x819E, 62389 },
+ { 0x819D, 62401 },
+ { 0x81A8, 62411 },
+ { 0x81A9, 62414 },
+ { 0x81B5, 62419 },
+ { 0x81B6, 62422 },
+ { 0x81F1, 62425 },
+ { 0x81F9, 62428 },
+ { 0x8230, 62431 },
+ { 0x8231, 62434 },
+ { 0x8252, 62437 },
+ { 0x8253, 62440 },
+ { 0x8257, 62445 },
+ { 0x8258, 62453 },
+ { 0x825E, 62458 },
+ { 0x8254, 62465 },
+ { 0x8255, 62470 },
+ { 0x8256, 62477 },
+ { 0x8259, 62482 },
+ { 0x825A, 62487 },
+ { 0x825B, 62492 },
+ { 0x825C, 62500 },
+ { 0x825D, 62507 },
+ { 0x825F, 62516 },
+ { 0x82AB, 62521 },
+ { 0x82C1, 62524 },
+ { 0x82D2, 62527 },
+ { 0x82DA, 62530 },
+ { 0x82E8, 62533 },
+ { 0x8358, 62536 },
+ { 0x80FE, 62539 },
+ { 0x80FF, 62542 },
+ { 0x82C2, 62547 },
+ { 0x8461, 62550 },
+ { 0x8462, 62557 },
+ { 0x844F, 62564 },
+ { 0x8434, 62569 },
+ { 0x8458, 62574 },
+ { 0x8415, 62579 },
+ { 0x841E, 62584 },
+ { 0x842C, 62589 },
+ { 0x845A, 62594 },
+ { 0x845D, 62600 },
+ { 0x845F, 62608 },
+ { 0x8460, 62614 },
+ { 0x8411, 62620 },
+ { 0x8404, 62625 },
+ { 0x844E, 62630 },
+ { 0x840B, 62636 },
+ { 0x841A, 62641 },
+ { 0x8428, 62646 },
+ { 0x8440, 62651 },
+ { 0x8400, 62658 },
+ { 0x844A, 62663 },
+ { 0x8450, 62669 },
+ { 0x8435, 62674 },
+ { 0x8459, 62679 },
+ { 0x8416, 62684 },
+ { 0x841F, 62689 },
+ { 0x8423, 62694 },
+ { 0x842D, 62699 },
+ { 0x845B, 62704 },
+ { 0x845E, 62710 },
+ { 0x8410, 62718 },
+ { 0x8403, 62723 },
+ { 0x844D, 62728 },
+ { 0x8454, 62734 },
+ { 0x8455, 62739 },
+ { 0x8439, 62746 },
+ { 0x840A, 62751 },
+ { 0x8419, 62756 },
+ { 0x8422, 62761 },
+ { 0x8427, 62766 },
+ { 0x8431, 62771 },
+ { 0x845C, 62776 },
+ { 0x840F, 62782 },
+ { 0x8402, 62787 },
+ { 0x844C, 62792 },
+ { 0x8452, 62798 },
+ { 0x8453, 62803 },
+ { 0x8438, 62810 },
+ { 0x8409, 62815 },
+ { 0x8418, 62820 },
+ { 0x8421, 62825 },
+ { 0x8426, 62830 },
+ { 0x8430, 62835 },
+ { 0x843C, 62840 },
+ { 0x843E, 62847 },
+ { 0x843F, 62855 },
+ { 0x843D, 62863 },
+ { 0x8414, 62870 },
+ { 0x8407, 62875 },
+ { 0x840E, 62880 },
+ { 0x841D, 62885 },
+ { 0x842B, 62890 },
+ { 0x8446, 62895 },
+ { 0x8449, 62902 },
+ { 0x8447, 62910 },
+ { 0x8448, 62917 },
+ { 0x8413, 62924 },
+ { 0x8406, 62929 },
+ { 0x840D, 62934 },
+ { 0x841C, 62939 },
+ { 0x842A, 62944 },
+ { 0x8444, 62949 },
+ { 0x8445, 62956 },
+ { 0x8412, 62963 },
+ { 0x8405, 62968 },
+ { 0x840C, 62973 },
+ { 0x841B, 62978 },
+ { 0x8429, 62983 },
+ { 0x8442, 62988 },
+ { 0x8443, 62996 },
+ { 0x8441, 63004 },
+ { 0x8433, 63011 },
+ { 0x8432, 63019 },
+ { 0x8401, 63027 },
+ { 0x844B, 63032 },
+ { 0x8451, 63038 },
+ { 0x8436, 63043 },
+ { 0x8437, 63048 },
+ { 0x8408, 63055 },
+ { 0x8417, 63060 },
+ { 0x8420, 63065 },
+ { 0x8424, 63070 },
+ { 0x8425, 63075 },
+ { 0x842E, 63082 },
+ { 0x842F, 63087 },
+ { 0x843A, 63094 },
+ { 0x843B, 63101 },
+ { 0x8457, 63108 },
+ { 0x8456, 63112 },
+ { 0x8470, 63116 },
+ { 0x8472, 63123 },
+ { 0x8473, 63128 },
+ { 0x8471, 63133 },
+ { 0x23CA, 63138 },
+ { 0x23C8, 63144 },
+ { 0x23C2, 63152 },
+ { 0x23C5, 63160 },
+ { 0x23C9, 63168 },
+ { 0x23C7, 63174 },
+ { 0x23C1, 63182 },
+ { 0x23C4, 63190 },
+ { 0x23CB, 63198 },
+ { 0x23BE, 63205 },
+ { 0x23C6, 63212 },
+ { 0x23CC, 63218 },
+ { 0x23BF, 63225 },
+ { 0x23C0, 63232 },
+ { 0x23C3, 63238 },
+ { 0x00A8, 63244 },
+ { 0x2331, 63245 },
+ { 0x21A1, 63247 },
+ { 0x2193, 63251 },
+ { 0x2913, 63253 },
+ { 0x21A7, 63257 },
+ { 0x21B2, 63261 },
+ { 0x21B3, 63266 },
+ { 0x21B5, 63271 },
+ { 0x21DF, 63276 },
+ { 0x2908, 63281 },
+ { 0x21F5, 63286 },
+ { 0x2B07, 63292 },
+ { 0x21E9, 63295 },
+ { 0x2E14, 63298 },
+ { 0x21E3, 63300 },
+ { 0x21D3, 63303 },
+ { 0x21CA, 63306 },
+ { 0x290B, 63309 },
+ { 0x21AF, 63312 },
+ { 0x2959, 63315 },
+ { 0x2961, 63322 },
+ { 0x296F, 63329 },
+ { 0x2965, 63340 },
+ { 0x2955, 63351 },
+ { 0x295D, 63358 },
+ { 0x21C3, 63365 },
+ { 0x21C2, 63370 },
+ { 0x27F1, 63375 },
+ { 0x2E0E, 63378 },
+ { 0x212E, 63380 },
+ { 0x2259, 63382 },
+ { 0x213B, 63383 },
+ { 0x6F3F, 63385 },
+ { 0x6FE2, 63388 },
+ { 0x6FE6, 63391 },
+ { 0x6FE5, 63394 },
+ { 0x6FE0, 63397 },
+ { 0x6F0E, 63400 },
+ { 0x6F5B, 63403 },
+ { 0x6F5F, 63407 },
+ { 0x6F3B, 63411 },
+ { 0x6F08, 63415 },
+ { 0x6F0B, 63418 },
+ { 0x6F1A, 63421 },
+ { 0x6F0C, 63423 },
+ { 0x6F11, 63425 },
+ { 0x6F16, 63428 },
+ { 0x6F12, 63431 },
+ { 0x6F15, 63434 },
+ { 0x6F14, 63437 },
+ { 0x6F19, 63440 },
+ { 0x6F10, 63443 },
+ { 0x6F18, 63446 },
+ { 0x6F17, 63449 },
+ { 0x6F13, 63452 },
+ { 0x6F40, 63455 },
+ { 0x6F41, 63458 },
+ { 0x6F42, 63463 },
+ { 0x6F43, 63468 },
+ { 0x6F44, 63473 },
+ { 0x6F45, 63478 },
+ { 0x6F46, 63483 },
+ { 0x6F47, 63488 },
+ { 0x6F48, 63493 },
+ { 0x6F49, 63498 },
+ { 0x6F4A, 63503 },
+ { 0x6F4B, 63508 },
+ { 0x6F4C, 63513 },
+ { 0x6F4D, 63518 },
+ { 0x6F4E, 63523 },
+ { 0x6F4F, 63528 },
+ { 0x6F50, 63533 },
+ { 0x6F51, 63538 },
+ { 0x6F52, 63543 },
+ { 0x6F53, 63548 },
+ { 0x6F54, 63553 },
+ { 0x6F55, 63558 },
+ { 0x6F56, 63563 },
+ { 0x6F57, 63568 },
+ { 0x6F58, 63573 },
+ { 0x6F59, 63578 },
+ { 0x6F5A, 63583 },
+ { 0x6F21, 63588 },
+ { 0x6F22, 63593 },
+ { 0x6F23, 63598 },
+ { 0x6F24, 63603 },
+ { 0x6F25, 63608 },
+ { 0x6F26, 63613 },
+ { 0x6F27, 63618 },
+ { 0x6F28, 63623 },
+ { 0x6F29, 63628 },
+ { 0x6F2A, 63633 },
+ { 0x6F2B, 63638 },
+ { 0x6F2C, 63643 },
+ { 0x6F2D, 63648 },
+ { 0x6F2E, 63653 },
+ { 0x6F2F, 63658 },
+ { 0x6F30, 63663 },
+ { 0x6F31, 63668 },
+ { 0x6F32, 63673 },
+ { 0x6F33, 63678 },
+ { 0x6F34, 63683 },
+ { 0x6F35, 63688 },
+ { 0x6F36, 63693 },
+ { 0x6F37, 63698 },
+ { 0x6F38, 63703 },
+ { 0x6F39, 63708 },
+ { 0x6F3A, 63713 },
+ { 0x6FE1, 63718 },
+ { 0x6F5D, 63721 },
+ { 0x6F60, 63725 },
+ { 0x6F3D, 63729 },
+ { 0x6F09, 63733 },
+ { 0x6F5E, 63736 },
+ { 0x6FE4, 63738 },
+ { 0x6F04, 63741 },
+ { 0x6F1D, 63744 },
+ { 0x6FE3, 63747 },
+ { 0x6F03, 63749 },
+ { 0x6F05, 63752 },
+ { 0x6F3C, 63755 },
+ { 0x6F0F, 63758 },
+ { 0x6F0A, 63760 },
+ { 0x6F1F, 63762 },
+ { 0x6F5C, 63765 },
+ { 0x6F06, 63768 },
+ { 0x6F1C, 63770 },
+ { 0x6F02, 63773 },
+ { 0x6F1B, 63776 },
+ { 0x6F07, 63778 },
+ { 0x6F3E, 63780 },
+ { 0x6F20, 63783 },
+ { 0x6F01, 63786 },
+ { 0x6F1E, 63789 },
+ { 0x6F0D, 63792 },
+ { 0x223A, 63794 },
+ { 0x6F62, 63796 },
+ { 0x6FED, 63800 },
+ { 0x6FE8, 63803 },
+ { 0x6F63, 63807 },
+ { 0x6FEE, 63811 },
+ { 0x6FA0, 63814 },
+ { 0x6FC2, 63817 },
+ { 0x6FC7, 63821 },
+ { 0x6FDC, 63825 },
+ { 0x6FCC, 63829 },
+ { 0x6FD3, 63833 },
+ { 0x6FC3, 63837 },
+ { 0x6FC6, 63841 },
+ { 0x6FDA, 63845 },
+ { 0x6FCF, 63849 },
+ { 0x6FCD, 63853 },
+ { 0x6FD5, 63857 },
+ { 0x6FD6, 63861 },
+ { 0x6FC4, 63865 },
+ { 0x6FCB, 63869 },
+ { 0x6FDB, 63873 },
+ { 0x6FD2, 63877 },
+ { 0x6FD7, 63881 },
+ { 0x6FCE, 63885 },
+ { 0x6FD4, 63889 },
+ { 0x6FC5, 63893 },
+ { 0x6FCA, 63897 },
+ { 0x6FB5, 63901 },
+ { 0x6FB8, 63905 },
+ { 0x6FBE, 63909 },
+ { 0x6FB7, 63913 },
+ { 0x6FB1, 63917 },
+ { 0x6FA4, 63921 },
+ { 0x6FB2, 63925 },
+ { 0x6FA9, 63929 },
+ { 0x6FA1, 63933 },
+ { 0x6FA7, 63937 },
+ { 0x6FBA, 63941 },
+ { 0x6FBB, 63945 },
+ { 0x6FBD, 63949 },
+ { 0x6FBC, 63953 },
+ { 0x6FB6, 63957 },
+ { 0x6FB4, 63961 },
+ { 0x6FAD, 63965 },
+ { 0x6FB9, 63969 },
+ { 0x6FB3, 63973 },
+ { 0x6FA3, 63977 },
+ { 0x6FA5, 63981 },
+ { 0x6FA6, 63985 },
+ { 0x6FB0, 63989 },
+ { 0x6FAB, 63993 },
+ { 0x6FAC, 63997 },
+ { 0x6FA2, 64001 },
+ { 0x6FA8, 64005 },
+ { 0x6FAA, 64009 },
+ { 0x6FAF, 64013 },
+ { 0x6FAE, 64017 },
+ { 0x6FEA, 64021 },
+ { 0x6F71, 64024 },
+ { 0x6F74, 64028 },
+ { 0x6F72, 64032 },
+ { 0x6F9D, 64036 },
+ { 0x6F75, 64040 },
+ { 0x6F73, 64044 },
+ { 0x6F8A, 64048 },
+ { 0x6F8D, 64052 },
+ { 0x6F8B, 64056 },
+ { 0x6F8E, 64060 },
+ { 0x6F8C, 64064 },
+ { 0x6F76, 64068 },
+ { 0x6F79, 64072 },
+ { 0x6F77, 64076 },
+ { 0x6F7A, 64080 },
+ { 0x6F78, 64084 },
+ { 0x6F8F, 64088 },
+ { 0x6F92, 64092 },
+ { 0x6F90, 64096 },
+ { 0x6F93, 64100 },
+ { 0x6F91, 64104 },
+ { 0x6F85, 64108 },
+ { 0x6F88, 64112 },
+ { 0x6F86, 64116 },
+ { 0x6F89, 64120 },
+ { 0x6F87, 64124 },
+ { 0x6F97, 64128 },
+ { 0x6F9A, 64132 },
+ { 0x6F98, 64136 },
+ { 0x6F9B, 64140 },
+ { 0x6F99, 64144 },
+ { 0x6F7B, 64148 },
+ { 0x6F7E, 64152 },
+ { 0x6F7C, 64156 },
+ { 0x6F7F, 64160 },
+ { 0x6F7D, 64164 },
+ { 0x6F80, 64168 },
+ { 0x6F83, 64172 },
+ { 0x6F81, 64176 },
+ { 0x6F84, 64180 },
+ { 0x6F82, 64184 },
+ { 0x6F9C, 64188 },
+ { 0x6F66, 64192 },
+ { 0x6F94, 64196 },
+ { 0x6F96, 64200 },
+ { 0x6F95, 64204 },
+ { 0x6F67, 64208 },
+ { 0x6F6A, 64213 },
+ { 0x6F68, 64218 },
+ { 0x6F6B, 64223 },
+ { 0x6F69, 64228 },
+ { 0x6F6F, 64233 },
+ { 0x6F6C, 64238 },
+ { 0x6F6E, 64243 },
+ { 0x6F6D, 64248 },
+ { 0x6F65, 64253 },
+ { 0x6F9E, 64257 },
+ { 0x6F9F, 64262 },
+ { 0x6FEC, 64267 },
+ { 0x6FE9, 64270 },
+ { 0x6FEB, 64273 },
+ { 0x6F61, 64276 },
+ { 0x6F64, 64280 },
+ { 0x6F70, 64283 },
+ { 0x22B9, 64288 },
+ { 0x231B, 64291 },
+ { 0x2261, 64292 },
+ { 0x29E5, 64294 },
+ { 0x2A67, 64299 },
+ { 0x29E1, 64303 },
+ { 0x2206, 64305 },
+ { 0x2380, 64306 },
+ { 0x2064, 64308 },
+ { 0x2062, 64310 },
+ { 0x2063, 64312 },
+ { 0x2939, 64314 },
+ { 0x219E, 64318 },
+ { 0x219C, 64322 },
+ { 0x2190, 64325 },
+ { 0x21E4, 64327 },
+ { 0x21B9, 64331 },
+ { 0x291D, 64340 },
+ { 0x21A4, 64345 },
+ { 0x291F, 64349 },
+ { 0x21C6, 64356 },
+ { 0x2B11, 64361 },
+ { 0x2B10, 64366 },
+ { 0x21A9, 64371 },
+ { 0x21AB, 64375 },
+ { 0x2946, 64379 },
+ { 0x21A2, 64384 },
+ { 0x2B3A, 64388 },
+ { 0x2B39, 64396 },
+ { 0x2B38, 64403 },
+ { 0x21FA, 64408 },
+ { 0x219A, 64414 },
+ { 0x21F7, 64418 },
+ { 0x2943, 64423 },
+ { 0x2973, 64429 },
+ { 0x2B4A, 64434 },
+ { 0x2B4B, 64440 },
+ { 0x2B42, 64446 },
+ { 0x2B3E, 64453 },
+ { 0x297A, 64457 },
+ { 0x2977, 64461 },
+ { 0x2B05, 64465 },
+ { 0x21E6, 64468 },
+ { 0x21E0, 64471 },
+ { 0x290C, 64474 },
+ { 0x21D0, 64478 },
+ { 0x2906, 64481 },
+ { 0x21CD, 64486 },
+ { 0x2902, 64491 },
+ { 0x291B, 64497 },
+ { 0x21C7, 64500 },
+ { 0x290E, 64503 },
+ { 0x21DA, 64507 },
+ { 0x21CB, 64510 },
+ { 0x2952, 64515 },
+ { 0x295A, 64522 },
+ { 0x296A, 64529 },
+ { 0x2962, 64537 },
+ { 0x2966, 64548 },
+ { 0x2956, 64559 },
+ { 0x295E, 64566 },
+ { 0x2967, 64573 },
+ { 0x296B, 64584 },
+ { 0x21BC, 64592 },
+ { 0x21BD, 64597 },
+ { 0x21DC, 64602 },
+ { 0x2B45, 64605 },
+ { 0x2919, 64608 },
+ { 0x2B36, 64610 },
+ { 0x2B3B, 64615 },
+ { 0x2B3D, 64620 },
+ { 0x2B3C, 64629 },
+ { 0x2B35, 64637 },
+ { 0x2B34, 64644 },
+ { 0x2B37, 64650 },
+ { 0x21FD, 64655 },
+ { 0x2264, 64658 },
+ { 0x2A7D, 64662 },
+ { 0x2A81, 64667 },
+ { 0x2A83, 64675 },
+ { 0x2A7F, 64684 },
+ { 0x2272, 64692 },
+ { 0x2A85, 64696 },
+ { 0x2276, 64699 },
+ { 0x2A89, 64702 },
+ { 0x2A87, 64706 },
+ { 0x2268, 64712 },
+ { 0x22E6, 64717 },
+ { 0x2266, 64722 },
+ { 0x003C, 64726 },
+ { 0x22D6, 64728 },
+ { 0x2A79, 64731 },
+ { 0x2A7B, 64735 },
+ { 0x2A8D, 64740 },
+ { 0x2A8F, 64745 },
+ { 0x2A93, 64750 },
+ { 0x2976, 64759 },
+ { 0x2A8B, 64763 },
+ { 0x2A91, 64769 },
+ { 0x22DA, 64775 },
+ { 0x2AA6, 64780 },
+ { 0x2AA8, 64784 },
+ { 0x2607, 64791 },
+ { 0x0D57, 64792 },
+ { 0x0D79, 64796 },
+ { 0x0D4D, 64799 },
+ { 0x0D03, 64802 },
+ { 0x0D02, 64805 },
+ { 0x0D3D, 64808 },
+ { 0x0D67, 64811 },
+ { 0x0D6C, 64814 },
+ { 0x0D68, 64817 },
+ { 0x0D6B, 64820 },
+ { 0x0D6A, 64823 },
+ { 0x0D6F, 64826 },
+ { 0x0D66, 64829 },
+ { 0x0D6E, 64832 },
+ { 0x0D6D, 64835 },
+ { 0x0D69, 64838 },
+ { 0x0D46, 64841 },
+ { 0x0D3F, 64845 },
+ { 0x0D4A, 64849 },
+ { 0x0D41, 64853 },
+ { 0x0D3E, 64857 },
+ { 0x0D48, 64861 },
+ { 0x0D4C, 64865 },
+ { 0x0D47, 64869 },
+ { 0x0D40, 64873 },
+ { 0x0D4B, 64877 },
+ { 0x0D42, 64881 },
+ { 0x0D62, 64885 },
+ { 0x0D43, 64890 },
+ { 0x0D63, 64895 },
+ { 0x0D44, 64900 },
+ { 0x0D05, 64905 },
+ { 0x0D0E, 64908 },
+ { 0x0D07, 64911 },
+ { 0x0D12, 64914 },
+ { 0x0D09, 64917 },
+ { 0x0D06, 64920 },
+ { 0x0D10, 64923 },
+ { 0x0D14, 64926 },
+ { 0x0D2C, 64929 },
+ { 0x0D1A, 64932 },
+ { 0x0D26, 64935 },
+ { 0x0D0F, 64938 },
+ { 0x0D17, 64941 },
+ { 0x0D39, 64944 },
+ { 0x0D08, 64947 },
+ { 0x0D1C, 64950 },
+ { 0x0D15, 64953 },
+ { 0x0D32, 64956 },
+ { 0x0D2E, 64959 },
+ { 0x0D28, 64962 },
+ { 0x0D13, 64965 },
+ { 0x0D2A, 64968 },
+ { 0x0D30, 64971 },
+ { 0x0D38, 64974 },
+ { 0x0D24, 64977 },
+ { 0x0D0A, 64980 },
+ { 0x0D35, 64983 },
+ { 0x0D2F, 64986 },
+ { 0x0D2D, 64989 },
+ { 0x0D1B, 64992 },
+ { 0x0D21, 64995 },
+ { 0x0D27, 64998 },
+ { 0x0D18, 65001 },
+ { 0x0D1D, 65004 },
+ { 0x0D16, 65007 },
+ { 0x0D33, 65010 },
+ { 0x0D19, 65013 },
+ { 0x0D23, 65016 },
+ { 0x0D1E, 65019 },
+ { 0x0D2B, 65022 },
+ { 0x0D31, 65025 },
+ { 0x0D36, 65028 },
+ { 0x0D37, 65031 },
+ { 0x0D25, 65034 },
+ { 0x0D1F, 65037 },
+ { 0x0D22, 65040 },
+ { 0x0D34, 65043 },
+ { 0x0D20, 65046 },
+ { 0x0D7F, 65049 },
+ { 0x0D7D, 65053 },
+ { 0x0D7B, 65057 },
+ { 0x0D7E, 65061 },
+ { 0x0D7A, 65065 },
+ { 0x0D7C, 65069 },
+ { 0x0D0C, 65073 },
+ { 0x0D0B, 65077 },
+ { 0x0D61, 65081 },
+ { 0x0D60, 65085 },
+ { 0x0D71, 65089 },
+ { 0x0D72, 65093 },
+ { 0x0D70, 65097 },
+ { 0x0D74, 65100 },
+ { 0x0D73, 65104 },
+ { 0x0D75, 65108 },
+ { 0x00BA, 65112 },
+ { 0x1805, 65115 },
+ { 0x180B, 65118 },
+ { 0x180C, 65123 },
+ { 0x180D, 65128 },
+ { 0x1803, 65133 },
+ { 0x1807, 65136 },
+ { 0x1806, 65141 },
+ { 0x1800, 65145 },
+ { 0x1804, 65147 },
+ { 0x1802, 65149 },
+ { 0x1811, 65151 },
+ { 0x1816, 65154 },
+ { 0x1812, 65157 },
+ { 0x1815, 65160 },
+ { 0x1814, 65163 },
+ { 0x1819, 65166 },
+ { 0x1810, 65169 },
+ { 0x1818, 65172 },
+ { 0x1817, 65175 },
+ { 0x1813, 65178 },
+ { 0x180E, 65181 },
+ { 0x1820, 65184 },
+ { 0x1821, 65187 },
+ { 0x1822, 65190 },
+ { 0x1823, 65193 },
+ { 0x1824, 65196 },
+ { 0x182A, 65199 },
+ { 0x1833, 65202 },
+ { 0x1827, 65205 },
+ { 0x1839, 65208 },
+ { 0x182D, 65211 },
+ { 0x1835, 65214 },
+ { 0x183A, 65217 },
+ { 0x182F, 65220 },
+ { 0x182E, 65223 },
+ { 0x1828, 65226 },
+ { 0x1825, 65229 },
+ { 0x182B, 65232 },
+ { 0x182C, 65235 },
+ { 0x1837, 65238 },
+ { 0x1830, 65241 },
+ { 0x1832, 65244 },
+ { 0x1826, 65247 },
+ { 0x1838, 65250 },
+ { 0x1836, 65253 },
+ { 0x183D, 65256 },
+ { 0x1887, 65259 },
+ { 0x1888, 65264 },
+ { 0x1897, 65269 },
+ { 0x188B, 65274 },
+ { 0x1891, 65279 },
+ { 0x1889, 65284 },
+ { 0x1892, 65289 },
+ { 0x1890, 65294 },
+ { 0x1896, 65299 },
+ { 0x188E, 65304 },
+ { 0x188A, 65309 },
+ { 0x188F, 65314 },
+ { 0x1893, 65319 },
+ { 0x1894, 65324 },
+ { 0x188C, 65329 },
+ { 0x1895, 65334 },
+ { 0x18A6, 65339 },
+ { 0x18A7, 65345 },
+ { 0x188D, 65351 },
+ { 0x1886, 65356 },
+ { 0x1885, 65362 },
+ { 0x1882, 65367 },
+ { 0x18A9, 65372 },
+ { 0x1883, 65377 },
+ { 0x1881, 65382 },
+ { 0x1880, 65388 },
+ { 0x1884, 65394 },
+ { 0x1829, 65400 },
+ { 0x1834, 65403 },
+ { 0x1842, 65406 },
+ { 0x183E, 65409 },
+ { 0x183B, 65412 },
+ { 0x1840, 65415 },
+ { 0x1831, 65418 },
+ { 0x183C, 65421 },
+ { 0x1841, 65424 },
+ { 0x183F, 65427 },
+ { 0x185D, 65430 },
+ { 0x185E, 65434 },
+ { 0x1861, 65438 },
+ { 0x1869, 65442 },
+ { 0x186B, 65446 },
+ { 0x1864, 65450 },
+ { 0x1865, 65454 },
+ { 0x185F, 65458 },
+ { 0x186A, 65462 },
+ { 0x1863, 65466 },
+ { 0x1866, 65470 },
+ { 0x1868, 65474 },
+ { 0x1860, 65478 },
+ { 0x186F, 65482 },
+ { 0x1862, 65486 },
+ { 0x1871, 65490 },
+ { 0x186C, 65494 },
+ { 0x186D, 65498 },
+ { 0x1870, 65502 },
+ { 0x1867, 65506 },
+ { 0x186E, 65510 },
+ { 0x1872, 65514 },
+ { 0x1844, 65518 },
+ { 0x1845, 65522 },
+ { 0x1846, 65526 },
+ { 0x1847, 65530 },
+ { 0x184B, 65534 },
+ { 0x1851, 65538 },
+ { 0x184E, 65542 },
+ { 0x1853, 65546 },
+ { 0x1857, 65550 },
+ { 0x184F, 65554 },
+ { 0x1848, 65558 },
+ { 0x184C, 65562 },
+ { 0x184D, 65566 },
+ { 0x1850, 65570 },
+ { 0x1849, 65574 },
+ { 0x1856, 65578 },
+ { 0x1855, 65582 },
+ { 0x1898, 65586 },
+ { 0x1899, 65592 },
+ { 0x184A, 65598 },
+ { 0x1852, 65602 },
+ { 0x185C, 65606 },
+ { 0x1858, 65610 },
+ { 0x1859, 65614 },
+ { 0x185A, 65618 },
+ { 0x185B, 65622 },
+ { 0x1854, 65626 },
+ { 0x1843, 65630 },
+ { 0x1873, 65636 },
+ { 0x1876, 65640 },
+ { 0x1874, 65644 },
+ { 0x1875, 65648 },
+ { 0x189C, 65652 },
+ { 0x18A0, 65658 },
+ { 0x18A5, 65664 },
+ { 0x18A8, 65670 },
+ { 0x18A3, 65676 },
+ { 0x18A1, 65682 },
+ { 0x189A, 65688 },
+ { 0x189D, 65694 },
+ { 0x18AA, 65700 },
+ { 0x189B, 65706 },
+ { 0x18A2, 65712 },
+ { 0x189E, 65718 },
+ { 0x18A4, 65724 },
+ { 0x189F, 65730 },
+ { 0x1877, 65736 },
+ { 0x1809, 65740 },
+ { 0x1808, 65744 },
+ { 0x180A, 65747 },
+ { 0x1801, 65749 },
+ { 0x2029, 65751 },
+ { 0x267E, 65753 },
+ { 0x22D4, 65756 },
+ { 0x2ADA, 65757 },
+ { 0x2057, 65761 },
+ { 0x2A0C, 65763 },
+ { 0x0022, 65766 },
+ { 0x2673, 65768 },
+ { 0x2674, 65773 },
+ { 0x2675, 65778 },
+ { 0x2676, 65783 },
+ { 0x2677, 65788 },
+ { 0x2678, 65793 },
+ { 0x2679, 65798 },
+ { 0x267A, 65803 },
+ { 0x203B, 65808 },
+ { 0x2A3D, 65810 },
+ { 0x003B, 65813 },
+ { 0x2744, 65814 },
+ { 0x2222, 65815 },
+ { 0x29A1, 65817 },
+ { 0x29A0, 65821 },
+ { 0x2081, 65825 },
+ { 0x2086, 65827 },
+ { 0x2082, 65829 },
+ { 0x2085, 65831 },
+ { 0x2084, 65833 },
+ { 0x208D, 65835 },
+ { 0x2089, 65838 },
+ { 0x208A, 65840 },
+ { 0x2080, 65843 },
+ { 0x2088, 65845 },
+ { 0x208B, 65847 },
+ { 0x208E, 65849 },
+ { 0x2087, 65852 },
+ { 0x2083, 65854 },
+ { 0x208C, 65856 },
+ { 0x23B2, 65859 },
+ { 0x2A0B, 65861 },
+ { 0x23B3, 65864 },
+ { 0x1BAA, 65866 },
+ { 0x1B80, 65869 },
+ { 0x1B81, 65872 },
+ { 0x1B82, 65875 },
+ { 0x1BB1, 65878 },
+ { 0x1BB6, 65881 },
+ { 0x1BB2, 65884 },
+ { 0x1BB5, 65887 },
+ { 0x1BB4, 65890 },
+ { 0x1BB9, 65893 },
+ { 0x1BB0, 65896 },
+ { 0x1BB8, 65899 },
+ { 0x1BB7, 65902 },
+ { 0x1BB3, 65905 },
+ { 0x1BA8, 65908 },
+ { 0x1BA5, 65912 },
+ { 0x1BA4, 65916 },
+ { 0x1BA7, 65920 },
+ { 0x1BA6, 65924 },
+ { 0x1BA9, 65928 },
+ { 0x1B83, 65932 },
+ { 0x1B88, 65935 },
+ { 0x1B84, 65938 },
+ { 0x1B87, 65941 },
+ { 0x1B85, 65944 },
+ { 0x1B86, 65947 },
+ { 0x1B98, 65950 },
+ { 0x1B8E, 65953 },
+ { 0x1B93, 65956 },
+ { 0x1B89, 65959 },
+ { 0x1B96, 65962 },
+ { 0x1B8C, 65965 },
+ { 0x1BA0, 65968 },
+ { 0x1B8F, 65971 },
+ { 0x1B8A, 65974 },
+ { 0x1B9C, 65977 },
+ { 0x1B99, 65980 },
+ { 0x1B94, 65983 },
+ { 0x1B95, 65986 },
+ { 0x1B8B, 65989 },
+ { 0x1B9B, 65992 },
+ { 0x1B9E, 65995 },
+ { 0x1B92, 65998 },
+ { 0x1B97, 66001 },
+ { 0x1B9D, 66004 },
+ { 0x1B9F, 66007 },
+ { 0x1B9A, 66010 },
+ { 0x1B90, 66013 },
+ { 0x1BAE, 66016 },
+ { 0x1B8D, 66019 },
+ { 0x1B91, 66022 },
+ { 0x1BAF, 66025 },
+ { 0x1BA3, 66028 },
+ { 0x1BA2, 66032 },
+ { 0x1BA1, 66036 },
+ { 0x2121, 66040 },
+ { 0x2706, 66042 },
+ { 0x2315, 66045 },
+ { 0x9353, 66047 },
+ { 0x931D, 66052 },
+ { 0x932D, 66055 },
+ { 0x9323, 66060 },
+ { 0x931C, 66064 },
+ { 0x9307, 66067 },
+ { 0x9343, 66071 },
+ { 0x932F, 66074 },
+ { 0x9346, 66079 },
+ { 0x9308, 66082 },
+ { 0x9314, 66085 },
+ { 0x9331, 66088 },
+ { 0x933B, 66091 },
+ { 0x9344, 66094 },
+ { 0x930C, 66097 },
+ { 0x9306, 66100 },
+ { 0x9321, 66103 },
+ { 0x933D, 66106 },
+ { 0x9320, 66110 },
+ { 0x9336, 66113 },
+ { 0x9325, 66116 },
+ { 0x932A, 66119 },
+ { 0x9335, 66122 },
+ { 0x9319, 66125 },
+ { 0x9309, 66128 },
+ { 0x934F, 66131 },
+ { 0x9315, 66134 },
+ { 0x9349, 66137 },
+ { 0x9350, 66140 },
+ { 0x9316, 66143 },
+ { 0x930A, 66147 },
+ { 0x9327, 66151 },
+ { 0x9340, 66154 },
+ { 0x9339, 66157 },
+ { 0x9324, 66160 },
+ { 0x9334, 66163 },
+ { 0x931A, 66166 },
+ { 0x9345, 66169 },
+ { 0x9317, 66172 },
+ { 0x933A, 66175 },
+ { 0x932B, 66178 },
+ { 0x934D, 66181 },
+ { 0x9312, 66184 },
+ { 0x932E, 66187 },
+ { 0x934C, 66190 },
+ { 0x9329, 66193 },
+ { 0x9337, 66196 },
+ { 0x930E, 66201 },
+ { 0x9326, 66205 },
+ { 0x9338, 66208 },
+ { 0x9348, 66211 },
+ { 0x9347, 66214 },
+ { 0x931F, 66217 },
+ { 0x9318, 66220 },
+ { 0x9356, 66223 },
+ { 0x9328, 66226 },
+ { 0x933F, 66229 },
+ { 0x9332, 66233 },
+ { 0x9355, 66236 },
+ { 0x932C, 66239 },
+ { 0x934B, 66242 },
+ { 0x934E, 66245 },
+ { 0x9352, 66248 },
+ { 0x931E, 66251 },
+ { 0x9310, 66254 },
+ { 0x9330, 66257 },
+ { 0x934A, 66260 },
+ { 0x930D, 66263 },
+ { 0x931B, 66266 },
+ { 0x9351, 66269 },
+ { 0x930B, 66272 },
+ { 0x9333, 66275 },
+ { 0x933E, 66278 },
+ { 0x9313, 66281 },
+ { 0x9341, 66284 },
+ { 0x9322, 66287 },
+ { 0x9354, 66290 },
+ { 0x933C, 66293 },
+ { 0x9311, 66296 },
+ { 0x930F, 66299 },
+ { 0x9342, 66304 },
+ { 0x2234, 66307 },
+ { 0x2672, 66308 },
+ { 0x26AF, 66311 },
+ { 0x6E00, 66314 },
+ { 0x6E01, 66316 },
+ { 0x6E02, 66318 },
+ { 0x6E03, 66320 },
+ { 0x6E04, 66322 },
+ { 0x6E05, 66324 },
+ { 0x6E06, 66326 },
+ { 0x6E07, 66328 },
+ { 0x6E08, 66330 },
+ { 0x6E09, 66332 },
+ { 0x6E0A, 66334 },
+ { 0x6E0B, 66336 },
+ { 0x6E0C, 66338 },
+ { 0x6E0D, 66340 },
+ { 0x6E0E, 66342 },
+ { 0x6E0F, 66344 },
+ { 0xC100, 66346 },
+ { 0xC101, 66348 },
+ { 0xC102, 66350 },
+ { 0xC103, 66352 },
+ { 0xC104, 66354 },
+ { 0xC105, 66356 },
+ { 0xC106, 66358 },
+ { 0xC107, 66360 },
+ { 0xC108, 66362 },
+ { 0xC109, 66364 },
+ { 0xC10A, 66366 },
+ { 0xC10B, 66368 },
+ { 0xC10C, 66370 },
+ { 0xC10D, 66372 },
+ { 0xC10E, 66374 },
+ { 0xC10F, 66376 },
+ { 0xC110, 66378 },
+ { 0xC111, 66380 },
+ { 0xC112, 66382 },
+ { 0xC113, 66384 },
+ { 0xC114, 66386 },
+ { 0xC115, 66388 },
+ { 0xC116, 66390 },
+ { 0xC117, 66392 },
+ { 0xC118, 66394 },
+ { 0xC119, 66396 },
+ { 0xC11A, 66398 },
+ { 0xC11B, 66400 },
+ { 0xC11C, 66402 },
+ { 0xC11D, 66404 },
+ { 0xC11E, 66406 },
+ { 0xC11F, 66408 },
+ { 0xC120, 66410 },
+ { 0xC121, 66412 },
+ { 0xC122, 66414 },
+ { 0xC123, 66416 },
+ { 0xC124, 66418 },
+ { 0xC125, 66420 },
+ { 0xC126, 66422 },
+ { 0xC127, 66424 },
+ { 0xC128, 66426 },
+ { 0xC129, 66428 },
+ { 0xC12A, 66430 },
+ { 0xC12B, 66432 },
+ { 0xC12C, 66434 },
+ { 0xC12D, 66436 },
+ { 0xC12E, 66438 },
+ { 0xC12F, 66440 },
+ { 0xC130, 66442 },
+ { 0xC131, 66444 },
+ { 0xC132, 66446 },
+ { 0xC133, 66448 },
+ { 0xC134, 66450 },
+ { 0xC135, 66452 },
+ { 0xC136, 66454 },
+ { 0xC137, 66456 },
+ { 0xC138, 66458 },
+ { 0xC139, 66460 },
+ { 0xC13A, 66462 },
+ { 0xC13B, 66464 },
+ { 0xC13C, 66466 },
+ { 0xC13D, 66468 },
+ { 0xC13E, 66470 },
+ { 0xC13F, 66472 },
+ { 0xC140, 66474 },
+ { 0xC141, 66476 },
+ { 0xC142, 66478 },
+ { 0xC143, 66480 },
+ { 0xC144, 66482 },
+ { 0xC145, 66484 },
+ { 0xC146, 66486 },
+ { 0xC147, 66488 },
+ { 0xC148, 66490 },
+ { 0xC149, 66492 },
+ { 0xC14A, 66494 },
+ { 0xC14B, 66496 },
+ { 0xC14C, 66498 },
+ { 0xC14D, 66500 },
+ { 0xC14E, 66502 },
+ { 0xC14F, 66504 },
+ { 0xC150, 66506 },
+ { 0xC151, 66508 },
+ { 0xC152, 66510 },
+ { 0xC153, 66512 },
+ { 0xC154, 66514 },
+ { 0xC155, 66516 },
+ { 0xC156, 66518 },
+ { 0xC157, 66520 },
+ { 0xC158, 66522 },
+ { 0xC159, 66524 },
+ { 0xC15A, 66526 },
+ { 0xC15B, 66528 },
+ { 0xC15C, 66530 },
+ { 0xC15D, 66532 },
+ { 0xC15E, 66534 },
+ { 0xC15F, 66536 },
+ { 0xC160, 66538 },
+ { 0xC161, 66540 },
+ { 0xC162, 66542 },
+ { 0xC163, 66544 },
+ { 0xC164, 66546 },
+ { 0xC165, 66548 },
+ { 0xC166, 66550 },
+ { 0xC167, 66552 },
+ { 0xC168, 66554 },
+ { 0xC169, 66556 },
+ { 0xC16A, 66558 },
+ { 0xC16B, 66560 },
+ { 0xC16C, 66562 },
+ { 0xC16D, 66564 },
+ { 0xC16E, 66566 },
+ { 0xC16F, 66568 },
+ { 0xC170, 66570 },
+ { 0xC171, 66572 },
+ { 0xC172, 66574 },
+ { 0xC173, 66576 },
+ { 0xC174, 66578 },
+ { 0xC175, 66580 },
+ { 0xC176, 66582 },
+ { 0xC177, 66584 },
+ { 0xC178, 66586 },
+ { 0xC179, 66588 },
+ { 0xC17A, 66590 },
+ { 0xC17B, 66592 },
+ { 0xC17C, 66594 },
+ { 0xC17D, 66596 },
+ { 0xC17E, 66598 },
+ { 0xC17F, 66600 },
+ { 0xC180, 66602 },
+ { 0xC181, 66604 },
+ { 0xC182, 66606 },
+ { 0xC183, 66608 },
+ { 0xC184, 66610 },
+ { 0xC185, 66612 },
+ { 0xC186, 66614 },
+ { 0xC187, 66616 },
+ { 0xC188, 66618 },
+ { 0xC189, 66620 },
+ { 0xC18A, 66622 },
+ { 0xC18B, 66624 },
+ { 0xC18C, 66626 },
+ { 0xC18D, 66628 },
+ { 0xC18E, 66630 },
+ { 0xC18F, 66632 },
+ { 0xC190, 66634 },
+ { 0xC191, 66636 },
+ { 0xC192, 66638 },
+ { 0xC193, 66640 },
+ { 0xC194, 66642 },
+ { 0xC195, 66644 },
+ { 0xC196, 66646 },
+ { 0xC197, 66648 },
+ { 0xC198, 66650 },
+ { 0xC199, 66652 },
+ { 0xC19A, 66654 },
+ { 0xC19B, 66656 },
+ { 0xC19C, 66658 },
+ { 0xC19D, 66660 },
+ { 0xC19E, 66662 },
+ { 0xC19F, 66664 },
+ { 0xC1A0, 66666 },
+ { 0xC1A1, 66668 },
+ { 0xC1A2, 66670 },
+ { 0xC1A3, 66672 },
+ { 0xC1A4, 66674 },
+ { 0xC1A5, 66676 },
+ { 0xC1A6, 66678 },
+ { 0xC1A7, 66680 },
+ { 0xC1A8, 66682 },
+ { 0xC1A9, 66684 },
+ { 0xC1AA, 66686 },
+ { 0xC1AB, 66688 },
+ { 0xC1AC, 66690 },
+ { 0xC1AD, 66692 },
+ { 0xC1AE, 66694 },
+ { 0xC1AF, 66696 },
+ { 0xC1B0, 66698 },
+ { 0xC1B1, 66700 },
+ { 0xC1B2, 66702 },
+ { 0xC1B3, 66704 },
+ { 0xC1B4, 66706 },
+ { 0xC1B5, 66708 },
+ { 0xC1B6, 66710 },
+ { 0xC1B7, 66712 },
+ { 0xC1B8, 66714 },
+ { 0xC1B9, 66716 },
+ { 0xC1BA, 66718 },
+ { 0xC1BB, 66720 },
+ { 0xC1BC, 66722 },
+ { 0xC1BD, 66724 },
+ { 0xC1BE, 66726 },
+ { 0xC1BF, 66728 },
+ { 0xC1C0, 66730 },
+ { 0xC1C1, 66732 },
+ { 0xC1C2, 66734 },
+ { 0xC1C3, 66736 },
+ { 0xC1C4, 66738 },
+ { 0xC1C5, 66740 },
+ { 0xC1C6, 66742 },
+ { 0xC1C7, 66744 },
+ { 0xC1C8, 66746 },
+ { 0xC1C9, 66748 },
+ { 0xC1CA, 66750 },
+ { 0xC1CB, 66752 },
+ { 0xC1CC, 66754 },
+ { 0xC1CD, 66756 },
+ { 0xC1CE, 66758 },
+ { 0xC1CF, 66760 },
+ { 0xC1D0, 66762 },
+ { 0xC1D1, 66764 },
+ { 0xC1D2, 66766 },
+ { 0xC1D3, 66768 },
+ { 0xC1D4, 66770 },
+ { 0xC1D5, 66772 },
+ { 0xC1D6, 66774 },
+ { 0xC1D7, 66776 },
+ { 0xC1D8, 66778 },
+ { 0xC1D9, 66780 },
+ { 0xC1DA, 66782 },
+ { 0xC1DB, 66784 },
+ { 0xC1DC, 66786 },
+ { 0xC1DD, 66788 },
+ { 0xC1DE, 66790 },
+ { 0xC1DF, 66792 },
+ { 0xC1E0, 66794 },
+ { 0xC1E1, 66796 },
+ { 0xC1E2, 66798 },
+ { 0xC1E3, 66800 },
+ { 0xC1E4, 66802 },
+ { 0xC1E5, 66804 },
+ { 0xC1E6, 66806 },
+ { 0xC1E7, 66808 },
+ { 0xC1E8, 66810 },
+ { 0xC1E9, 66812 },
+ { 0xC1EA, 66814 },
+ { 0xC1EB, 66816 },
+ { 0xC1EC, 66818 },
+ { 0xC1ED, 66820 },
+ { 0xC1EE, 66822 },
+ { 0xC1EF, 66824 },
+ { 0x0027, 66826 },
+ { 0x2250, 66827 },
+ { 0x6E4E, 66830 },
+ { 0x6E4A, 66833 },
+ { 0x005E, 66835 },
+ { 0x0040, 66837 },
+ { 0x2052, 66839 },
+ { 0x2201, 66842 },
+ { 0x2381, 66843 },
+ { 0x260B, 66846 },
+ { 0x0950, 66848 },
+ { 0x0971, 66850 },
+ { 0x093C, 66855 },
+ { 0x094D, 66858 },
+ { 0x0903, 66861 },
+ { 0x0902, 66864 },
+ { 0x093D, 66867 },
+ { 0x0901, 66870 },
+ { 0x0954, 66873 },
+ { 0x0964, 66876 },
+ { 0x0967, 66878 },
+ { 0x096C, 66881 },
+ { 0x0968, 66884 },
+ { 0x096B, 66887 },
+ { 0x096A, 66890 },
+ { 0x096F, 66893 },
+ { 0x0966, 66896 },
+ { 0x096E, 66899 },
+ { 0x096D, 66902 },
+ { 0x0969, 66905 },
+ { 0x0953, 66908 },
+ { 0x0947, 66911 },
+ { 0x093F, 66915 },
+ { 0x094B, 66919 },
+ { 0x0941, 66923 },
+ { 0x093E, 66927 },
+ { 0x0948, 66931 },
+ { 0x094C, 66935 },
+ { 0x0940, 66939 },
+ { 0x0942, 66943 },
+ { 0x0946, 66947 },
+ { 0x094A, 66952 },
+ { 0x0945, 66957 },
+ { 0x0949, 66962 },
+ { 0x0962, 66967 },
+ { 0x0943, 66972 },
+ { 0x0963, 66977 },
+ { 0x0944, 66982 },
+ { 0x0965, 66987 },
+ { 0x0905, 66990 },
+ { 0x090F, 66993 },
+ { 0x0907, 66996 },
+ { 0x0913, 66999 },
+ { 0x0909, 67002 },
+ { 0x0906, 67005 },
+ { 0x0910, 67008 },
+ { 0x0914, 67011 },
+ { 0x092C, 67014 },
+ { 0x091A, 67017 },
+ { 0x0926, 67020 },
+ { 0x095E, 67023 },
+ { 0x0917, 67026 },
+ { 0x0939, 67029 },
+ { 0x0908, 67032 },
+ { 0x091C, 67035 },
+ { 0x0915, 67038 },
+ { 0x0932, 67041 },
+ { 0x092E, 67044 },
+ { 0x0928, 67047 },
+ { 0x092A, 67050 },
+ { 0x0958, 67053 },
+ { 0x0930, 67056 },
+ { 0x0938, 67059 },
+ { 0x0924, 67062 },
+ { 0x090A, 67065 },
+ { 0x0935, 67068 },
+ { 0x092F, 67071 },
+ { 0x095B, 67074 },
+ { 0x097F, 67077 },
+ { 0x092D, 67080 },
+ { 0x091B, 67083 },
+ { 0x0921, 67086 },
+ { 0x0927, 67089 },
+ { 0x097B, 67092 },
+ { 0x0918, 67095 },
+ { 0x091D, 67098 },
+ { 0x097C, 67101 },
+ { 0x0916, 67104 },
+ { 0x0933, 67107 },
+ { 0x0919, 67110 },
+ { 0x0923, 67113 },
+ { 0x091E, 67116 },
+ { 0x092B, 67119 },
+ { 0x095D, 67122 },
+ { 0x0931, 67125 },
+ { 0x0936, 67128 },
+ { 0x0937, 67131 },
+ { 0x0925, 67134 },
+ { 0x091F, 67137 },
+ { 0x095F, 67140 },
+ { 0x097E, 67143 },
+ { 0x0922, 67146 },
+ { 0x095A, 67149 },
+ { 0x0959, 67152 },
+ { 0x0934, 67155 },
+ { 0x0929, 67158 },
+ { 0x0920, 67161 },
+ { 0x095C, 67164 },
+ { 0x0904, 67167 },
+ { 0x090E, 67171 },
+ { 0x0912, 67175 },
+ { 0x0972, 67179 },
+ { 0x090D, 67183 },
+ { 0x0911, 67187 },
+ { 0x097D, 67191 },
+ { 0x090C, 67195 },
+ { 0x090B, 67199 },
+ { 0x0961, 67203 },
+ { 0x0960, 67207 },
+ { 0x0951, 67211 },
+ { 0x0952, 67215 },
+ { 0x0970, 67219 },
+ { 0x224F, 67222 },
+ { 0x23E7, 67224 },
+ { 0x224D, 67226 },
+ { 0x2A78, 67228 },
+ { 0x2C3B, 67233 },
+ { 0x2C4A, 67237 },
+ { 0x2C56, 67241 },
+ { 0x2C53, 67245 },
+ { 0x2C30, 67249 },
+ { 0x2C58, 67253 },
+ { 0x2C41, 67258 },
+ { 0x2C49, 67262 },
+ { 0x2C4E, 67266 },
+ { 0x2C4C, 67270 },
+ { 0x2C46, 67274 },
+ { 0x2C31, 67278 },
+ { 0x2C5A, 67282 },
+ { 0x2C48, 67286 },
+ { 0x2C39, 67290 },
+ { 0x2C3D, 67294 },
+ { 0x2C4B, 67298 },
+ { 0x2C32, 67302 },
+ { 0x2C51, 67306 },
+ { 0x2C50, 67310 },
+ { 0x2C4F, 67314 },
+ { 0x2C34, 67318 },
+ { 0x2C37, 67322 },
+ { 0x2C47, 67326 },
+ { 0x2C40, 67330 },
+ { 0x2C43, 67334 },
+ { 0x2C44, 67338 },
+ { 0x2C54, 67342 },
+ { 0x2C55, 67347 },
+ { 0x2C35, 67354 },
+ { 0x2C4D, 67358 },
+ { 0x2C3C, 67362 },
+ { 0x2C42, 67366 },
+ { 0x2C45, 67370 },
+ { 0x2C38, 67374 },
+ { 0x2C33, 67378 },
+ { 0x2C3A, 67382 },
+ { 0x2C59, 67387 },
+ { 0x2C57, 67393 },
+ { 0x2C5B, 67399 },
+ { 0x2C3E, 67403 },
+ { 0x2C3F, 67407 },
+ { 0x2C5C, 67411 },
+ { 0x2C52, 67415 },
+ { 0x2C36, 67420 },
+ { 0x2C5E, 67424 },
+ { 0x2C5D, 67429 },
+ { 0x2C0B, 67434 },
+ { 0x2C1A, 67438 },
+ { 0x2C26, 67442 },
+ { 0x2C23, 67446 },
+ { 0x2C00, 67450 },
+ { 0x2C28, 67454 },
+ { 0x2C11, 67459 },
+ { 0x2C19, 67463 },
+ { 0x2C1E, 67467 },
+ { 0x2C1C, 67471 },
+ { 0x2C16, 67475 },
+ { 0x2C01, 67479 },
+ { 0x2C2A, 67483 },
+ { 0x2C18, 67487 },
+ { 0x2C09, 67491 },
+ { 0x2C0D, 67495 },
+ { 0x2C1B, 67499 },
+ { 0x2C02, 67503 },
+ { 0x2C21, 67507 },
+ { 0x2C20, 67511 },
+ { 0x2C1F, 67515 },
+ { 0x2C04, 67519 },
+ { 0x2C07, 67523 },
+ { 0x2C17, 67527 },
+ { 0x2C10, 67531 },
+ { 0x2C13, 67535 },
+ { 0x2C14, 67539 },
+ { 0x2C24, 67543 },
+ { 0x2C25, 67548 },
+ { 0x2C05, 67555 },
+ { 0x2C1D, 67559 },
+ { 0x2C0C, 67563 },
+ { 0x2C12, 67567 },
+ { 0x2C15, 67571 },
+ { 0x2C08, 67575 },
+ { 0x2C03, 67579 },
+ { 0x2C0A, 67583 },
+ { 0x2C29, 67588 },
+ { 0x2C27, 67594 },
+ { 0x2C2B, 67600 },
+ { 0x2C0E, 67604 },
+ { 0x2C0F, 67608 },
+ { 0x2C2C, 67612 },
+ { 0x2C22, 67616 },
+ { 0x2C06, 67621 },
+ { 0x2C2E, 67625 },
+ { 0x2C2D, 67630 },
+ { 0x223B, 67635 },
+ { 0x2015, 67636 },
+ { 0x23AF, 67638 },
+ { 0x26A9, 67641 },
+ { 0x23BA, 67646 },
+ { 0x23BB, 67649 },
+ { 0x23BC, 67652 },
+ { 0x23BD, 67655 },
+ { 0x2B23, 67658 },
+ { 0x2026, 67661 },
+ { 0x238E, 67663 },
+ { 0x29DC, 67665 },
+ { 0x7A38, 67667 },
+ { 0x7A3A, 67671 },
+ { 0x7A39, 67675 },
+ { 0x7A0D, 67678 },
+ { 0x7A0F, 67683 },
+ { 0x7A0E, 67686 },
+ { 0x7A40, 67689 },
+ { 0x7A41, 67692 },
+ { 0x7A43, 67695 },
+ { 0x7A42, 67698 },
+ { 0x7A05, 67701 },
+ { 0x7A01, 67705 },
+ { 0x7A06, 67709 },
+ { 0x7A02, 67713 },
+ { 0x7A03, 67717 },
+ { 0x7A0C, 67722 },
+ { 0x7A00, 67726 },
+ { 0x7A26, 67729 },
+ { 0x7A15, 67732 },
+ { 0x7A21, 67735 },
+ { 0x7A12, 67738 },
+ { 0x7A31, 67741 },
+ { 0x7A17, 67744 },
+ { 0x7A10, 67747 },
+ { 0x7A2B, 67750 },
+ { 0x7A28, 67753 },
+ { 0x7A23, 67756 },
+ { 0x7A24, 67759 },
+ { 0x7A2A, 67762 },
+ { 0x7A2F, 67765 },
+ { 0x7A1F, 67768 },
+ { 0x7A2C, 67771 },
+ { 0x7A29, 67774 },
+ { 0x7A30, 67777 },
+ { 0x7A27, 67780 },
+ { 0x7A16, 67783 },
+ { 0x7A1C, 67786 },
+ { 0x7A22, 67789 },
+ { 0x7A13, 67792 },
+ { 0x7A11, 67795 },
+ { 0x7A32, 67798 },
+ { 0x7A1E, 67801 },
+ { 0x7A19, 67804 },
+ { 0x7A25, 67807 },
+ { 0x7A2D, 67810 },
+ { 0x7A2E, 67813 },
+ { 0x7A20, 67816 },
+ { 0x7A1A, 67819 },
+ { 0x7A1D, 67822 },
+ { 0x7A1B, 67825 },
+ { 0x7A33, 67828 },
+ { 0x7A46, 67831 },
+ { 0x7A47, 67835 },
+ { 0x7A44, 67839 },
+ { 0x7A45, 67842 },
+ { 0x7A3F, 67845 },
+ { 0x7A50, 67847 },
+ { 0x7A56, 67850 },
+ { 0x7A58, 67853 },
+ { 0x7A55, 67856 },
+ { 0x7A51, 67859 },
+ { 0x7A52, 67863 },
+ { 0x7A57, 67866 },
+ { 0x7A53, 67870 },
+ { 0x7A54, 67874 },
+ { 0x238D, 67877 },
+ { 0x2ADD, 67879 },
+ { 0x260D, 67880 },
+ { 0x1736, 67881 },
+ { 0x1735, 67884 },
+ { 0x791F, 67887 },
+ { 0x7904, 67890 },
+ { 0x7910, 67893 },
+ { 0x790F, 67896 },
+ { 0x7900, 67899 },
+ { 0x7901, 67902 },
+ { 0x7907, 67905 },
+ { 0x790A, 67908 },
+ { 0x790C, 67911 },
+ { 0x790D, 67914 },
+ { 0x7912, 67917 },
+ { 0x7915, 67920 },
+ { 0x7908, 67923 },
+ { 0x7905, 67926 },
+ { 0x7909, 67929 },
+ { 0x7906, 67932 },
+ { 0x7903, 67935 },
+ { 0x7902, 67938 },
+ { 0x790B, 67941 },
+ { 0x7913, 67944 },
+ { 0x7911, 67947 },
+ { 0x790E, 67950 },
+ { 0x7914, 67953 },
+ { 0x7916, 67956 },
+ { 0x7919, 67959 },
+ { 0x7917, 67963 },
+ { 0x7918, 67966 },
+ { 0x00B1, 67969 },
+ { 0x2305, 67971 },
+ { 0x2237, 67972 },
+ { 0x2A16, 67973 },
+ { 0x225F, 67976 },
+ { 0x00AE, 67979 },
+ { 0x2938, 67981 },
+ { 0x21A0, 67985 },
+ { 0x219D, 67989 },
+ { 0x2192, 67992 },
+ { 0x21E5, 67994 },
+ { 0x291E, 67998 },
+ { 0x21A6, 68003 },
+ { 0x2920, 68007 },
+ { 0x21C4, 68014 },
+ { 0x2B0F, 68019 },
+ { 0x2B0E, 68024 },
+ { 0x21AA, 68029 },
+ { 0x21AC, 68033 },
+ { 0x2945, 68037 },
+ { 0x21A3, 68042 },
+ { 0x2915, 68046 },
+ { 0x2914, 68054 },
+ { 0x21B4, 68061 },
+ { 0x2911, 68066 },
+ { 0x21FB, 68071 },
+ { 0x219B, 68077 },
+ { 0x21F8, 68081 },
+ { 0x2942, 68086 },
+ { 0x2974, 68092 },
+ { 0x2975, 68097 },
+ { 0x2B4C, 68103 },
+ { 0x2B48, 68109 },
+ { 0x2947, 68116 },
+ { 0x2B44, 68120 },
+ { 0x2B43, 68124 },
+ { 0x21E8, 68128 },
+ { 0x21F0, 68131 },
+ { 0x21E2, 68136 },
+ { 0x290D, 68139 },
+ { 0x21D2, 68143 },
+ { 0x2907, 68146 },
+ { 0x21CF, 68151 },
+ { 0x2903, 68156 },
+ { 0x291C, 68162 },
+ { 0x21C9, 68165 },
+ { 0x290F, 68168 },
+ { 0x21DB, 68172 },
+ { 0x21CC, 68175 },
+ { 0x2953, 68180 },
+ { 0x295B, 68187 },
+ { 0x296C, 68194 },
+ { 0x2968, 68202 },
+ { 0x2964, 68213 },
+ { 0x2957, 68224 },
+ { 0x295F, 68231 },
+ { 0x2969, 68238 },
+ { 0x296D, 68249 },
+ { 0x21C0, 68257 },
+ { 0x21C1, 68262 },
+ { 0x21DD, 68267 },
+ { 0x2B46, 68270 },
+ { 0x291A, 68273 },
+ { 0x2905, 68275 },
+ { 0x2916, 68280 },
+ { 0x2918, 68285 },
+ { 0x2917, 68294 },
+ { 0x2901, 68302 },
+ { 0x2900, 68309 },
+ { 0x2910, 68315 },
+ { 0x21FE, 68320 },
+ { 0x58C4, 68323 },
+ { 0x5881, 68326 },
+ { 0x5880, 68329 },
+ { 0x58CE, 68332 },
+ { 0x58D1, 68334 },
+ { 0x58D6, 68337 },
+ { 0x58D2, 68340 },
+ { 0x58D5, 68343 },
+ { 0x58D4, 68346 },
+ { 0x58D9, 68349 },
+ { 0x58D0, 68352 },
+ { 0x58D8, 68355 },
+ { 0x58D7, 68358 },
+ { 0x58D3, 68361 },
+ { 0x58BE, 68364 },
+ { 0x58B6, 68368 },
+ { 0x58C1, 68372 },
+ { 0x58B8, 68376 },
+ { 0x58B5, 68380 },
+ { 0x58C0, 68384 },
+ { 0x58C3, 68388 },
+ { 0x58BF, 68392 },
+ { 0x58B7, 68396 },
+ { 0x58C2, 68400 },
+ { 0x58B9, 68404 },
+ { 0x58BC, 68408 },
+ { 0x58BA, 68413 },
+ { 0x58BD, 68418 },
+ { 0x58BB, 68423 },
+ { 0x58CF, 68428 },
+ { 0x5882, 68431 },
+ { 0x588C, 68434 },
+ { 0x5884, 68437 },
+ { 0x588F, 68440 },
+ { 0x5886, 68443 },
+ { 0x5883, 68446 },
+ { 0x588E, 68449 },
+ { 0x5891, 68452 },
+ { 0x58A8, 68455 },
+ { 0x5897, 68458 },
+ { 0x58A3, 68461 },
+ { 0x588D, 68464 },
+ { 0x5894, 68467 },
+ { 0x58B2, 68470 },
+ { 0x5885, 68473 },
+ { 0x5899, 68476 },
+ { 0x5892, 68479 },
+ { 0x58AD, 68482 },
+ { 0x58AA, 68485 },
+ { 0x58A5, 68488 },
+ { 0x5890, 68491 },
+ { 0x58A6, 68494 },
+ { 0x58AC, 68497 },
+ { 0x58B1, 68500 },
+ { 0x58A1, 68503 },
+ { 0x5887, 68506 },
+ { 0x58AE, 68509 },
+ { 0x58AB, 68512 },
+ { 0x58A9, 68515 },
+ { 0x5898, 68518 },
+ { 0x589E, 68521 },
+ { 0x58A4, 68524 },
+ { 0x5895, 68527 },
+ { 0x589A, 68530 },
+ { 0x5893, 68533 },
+ { 0x58B3, 68536 },
+ { 0x5896, 68539 },
+ { 0x58A0, 68542 },
+ { 0x589B, 68545 },
+ { 0x58A7, 68548 },
+ { 0x58AF, 68551 },
+ { 0x58B0, 68554 },
+ { 0x58A2, 68557 },
+ { 0x589C, 68560 },
+ { 0x589F, 68563 },
+ { 0x589D, 68566 },
+ { 0x588A, 68569 },
+ { 0x5888, 68573 },
+ { 0x588B, 68577 },
+ { 0x5889, 68581 },
+ { 0x58B4, 68585 },
+ { 0x2A32, 68589 },
+ { 0x237D, 68594 },
+ { 0x2006, 68597 },
+ { 0x2023, 68599 },
+ { 0x267F, 68601 },
+ { 0x2387, 68603 },
+ { 0x27AB, 68606 },
+ { 0x2A10, 68611 },
+ { 0x2384, 68613 },
+ { 0x260C, 68615 },
+ { 0x2258, 68616 },
+ { 0x2334, 68618 },
+ { 0x2335, 68619 },
+ { 0x2A99, 68620 },
+ { 0x2A9A, 68625 },
+ { 0x2A9B, 68630 },
+ { 0x2A9C, 68636 },
+ { 0x2AF9, 68642 },
+ { 0x2AFA, 68648 },
+ { 0x225A, 68654 },
+ { 0x0021, 68656 },
+ { 0x2049, 68658 },
+ { 0x2005, 68661 },
+ { 0x2027, 68663 },
+ { 0x3002, 68665 },
+ { 0x303F, 68668 },
+ { 0x3001, 68672 },
+ { 0x302A, 68674 },
+ { 0x3000, 68678 },
+ { 0x3007, 68680 },
+ { 0x302B, 68683 },
+ { 0x3006, 68687 },
+ { 0x302D, 68690 },
+ { 0x302C, 68694 },
+ { 0x3005, 68698 },
+ { 0x3037, 68701 },
+ { 0x33E0, 68707 },
+ { 0x33E5, 68713 },
+ { 0x33E9, 68719 },
+ { 0x33E1, 68725 },
+ { 0x33E4, 68731 },
+ { 0x33E3, 68737 },
+ { 0x33E8, 68743 },
+ { 0x33E7, 68749 },
+ { 0x33E6, 68755 },
+ { 0x33E2, 68761 },
+ { 0x33EA, 68767 },
+ { 0x33FD, 68773 },
+ { 0x33EB, 68779 },
+ { 0x33F3, 68785 },
+ { 0x33EE, 68791 },
+ { 0x33EF, 68797 },
+ { 0x33F1, 68803 },
+ { 0x33ED, 68809 },
+ { 0x33F2, 68815 },
+ { 0x33EC, 68821 },
+ { 0x33F0, 68827 },
+ { 0x33FE, 68833 },
+ { 0x33F4, 68839 },
+ { 0x33F9, 68845 },
+ { 0x33F5, 68851 },
+ { 0x33F8, 68857 },
+ { 0x33F7, 68863 },
+ { 0x33FC, 68869 },
+ { 0x33FB, 68875 },
+ { 0x33FA, 68881 },
+ { 0x33F6, 68887 },
+ { 0x32C4, 68893 },
+ { 0x3359, 68898 },
+ { 0x335E, 68904 },
+ { 0x3362, 68910 },
+ { 0x335A, 68916 },
+ { 0x335D, 68922 },
+ { 0x335C, 68928 },
+ { 0x3361, 68934 },
+ { 0x3358, 68940 },
+ { 0x3360, 68946 },
+ { 0x335F, 68952 },
+ { 0x335B, 68958 },
+ { 0x3363, 68964 },
+ { 0x3364, 68970 },
+ { 0x336C, 68976 },
+ { 0x3367, 68982 },
+ { 0x3368, 68988 },
+ { 0x336A, 68994 },
+ { 0x3366, 69000 },
+ { 0x336B, 69006 },
+ { 0x3365, 69012 },
+ { 0x3369, 69018 },
+ { 0x336D, 69024 },
+ { 0x336E, 69030 },
+ { 0x3370, 69036 },
+ { 0x336F, 69042 },
+ { 0x32C6, 69048 },
+ { 0x32C5, 69053 },
+ { 0x32C3, 69058 },
+ { 0x32C2, 69063 },
+ { 0x32C7, 69068 },
+ { 0x32C0, 69073 },
+ { 0x32C9, 69078 },
+ { 0x32CB, 69083 },
+ { 0x32C1, 69088 },
+ { 0x32CA, 69093 },
+ { 0x32C8, 69098 },
+ { 0x303E, 69103 },
+ { 0x319F, 69106 },
+ { 0x3192, 69110 },
+ { 0x3196, 69114 },
+ { 0x3193, 69118 },
+ { 0x3195, 69122 },
+ { 0x319E, 69126 },
+ { 0x3199, 69130 },
+ { 0x319B, 69134 },
+ { 0x3194, 69138 },
+ { 0x3198, 69142 },
+ { 0x319C, 69146 },
+ { 0x319D, 69150 },
+ { 0x3197, 69154 },
+ { 0x319A, 69158 },
+ { 0x3190, 69162 },
+ { 0x3191, 69166 },
+ { 0x2FF4, 69170 },
+ { 0x2FF0, 69175 },
+ { 0x2FF2, 69181 },
+ { 0x2FF1, 69189 },
+ { 0x2FF3, 69195 },
+ { 0x2FFB, 69203 },
+ { 0x2FF7, 69207 },
+ { 0x2FF5, 69213 },
+ { 0x2FF6, 69219 },
+ { 0x2FFA, 69225 },
+ { 0x2FF8, 69232 },
+ { 0x2FF9, 69239 },
+ { 0x2139, 69246 },
+ { 0x22BA, 69248 },
+ { 0x6FF9, 69249 },
+ { 0x6FFA, 69252 },
+ { 0x6FFB, 69255 },
+ { 0x26A4, 69258 },
+ { 0x203D, 69263 },
+ { 0x27AA, 69264 },
+ { 0x2E0F, 69268 },
+ { 0x3250, 69269 },
+ { 0x2306, 69271 },
+ { 0x2008, 69272 },
+ { 0x2622, 69274 },
+ { 0x6FFD, 69276 },
+ { 0x2650, 69278 },
+ { 0x26BA, 69279 },
+ { 0x00B9, 69280 },
+ { 0x2076, 69282 },
+ { 0x00B2, 69284 },
+ { 0x2075, 69286 },
+ { 0x2074, 69288 },
+ { 0x207D, 69290 },
+ { 0x2079, 69293 },
+ { 0x207A, 69295 },
+ { 0x2070, 69298 },
+ { 0x2078, 69300 },
+ { 0x2071, 69302 },
+ { 0x207F, 69307 },
+ { 0x207B, 69312 },
+ { 0x207E, 69314 },
+ { 0x2077, 69317 },
+ { 0x00B3, 69319 },
+ { 0x207C, 69321 },
+ { 0x2ADB, 69324 },
+ { 0x25ED, 69326 },
+ { 0x25EE, 69332 },
+ { 0x214D, 69338 },
+ { 0x2A3F, 69339 },
+ { 0x060A, 69342 },
+ { 0x0609, 69347 },
+ { 0x0606, 69351 },
+ { 0x0661, 69354 },
+ { 0x0666, 69357 },
+ { 0x0662, 69360 },
+ { 0x0665, 69363 },
+ { 0x0664, 69366 },
+ { 0x0669, 69369 },
+ { 0x0660, 69372 },
+ { 0x0668, 69375 },
+ { 0x0667, 69378 },
+ { 0x0663, 69381 },
+ { 0x0607, 69384 },
+ { 0x212D, 69387 },
+ { 0x210C, 69390 },
+ { 0x2111, 69393 },
+ { 0x211C, 69396 },
+ { 0x2128, 69399 },
+ { 0x232D, 69402 },
+ { 0x29DF, 69403 },
+ { 0x29F3, 69405 },
+ { 0x29EF, 69408 },
+ { 0x29F1, 69411 },
+ { 0x29F2, 69414 },
+ { 0x29EE, 69417 },
+ { 0x29F0, 69420 },
+ { 0x269C, 69423 },
+ { 0x27AC, 69424 },
+ { 0x2265, 69429 },
+ { 0x2A7E, 69433 },
+ { 0x2A82, 69438 },
+ { 0x2A84, 69446 },
+ { 0x2A80, 69455 },
+ { 0x2277, 69463 },
+ { 0x2273, 69466 },
+ { 0x2A86, 69470 },
+ { 0x2A8A, 69473 },
+ { 0x2A88, 69477 },
+ { 0x2269, 69483 },
+ { 0x22E7, 69488 },
+ { 0x2267, 69493 },
+ { 0x003E, 69497 },
+ { 0x22D7, 69499 },
+ { 0x2A7A, 69502 },
+ { 0x2A7C, 69506 },
+ { 0x2A8E, 69511 },
+ { 0x2A90, 69516 },
+ { 0x2A94, 69521 },
+ { 0x2A92, 69530 },
+ { 0x2978, 69536 },
+ { 0x2A8C, 69540 },
+ { 0x22DB, 69546 },
+ { 0x2AA5, 69551 },
+ { 0x2AA7, 69554 },
+ { 0x2AA9, 69558 },
+ { 0x2AA4, 69565 },
+ { 0x002D, 69568 },
+ { 0x2E12, 69569 },
+ { 0x2229, 69570 },
+ { 0x2A40, 69571 },
+ { 0x2A44, 69574 },
+ { 0x2A43, 69578 },
+ { 0x2A49, 69581 },
+ { 0x2A47, 69586 },
+ { 0x2A4B, 69589 },
+ { 0x96E1, 69595 },
+ { 0x96DF, 69599 },
+ { 0x96E0, 69603 },
+ { 0x97CF, 69607 },
+ { 0x97D4, 69611 },
+ { 0x97D0, 69615 },
+ { 0x97D3, 69619 },
+ { 0x97D2, 69623 },
+ { 0x97D7, 69627 },
+ { 0x97CE, 69631 },
+ { 0x97D6, 69635 },
+ { 0x97D5, 69639 },
+ { 0x97D1, 69643 },
+ { 0x96DE, 69647 },
+ { 0x96C1, 69651 },
+ { 0x941A, 69654 },
+ { 0x941B, 69658 },
+ { 0x941C, 69662 },
+ { 0x941D, 69666 },
+ { 0x941E, 69670 },
+ { 0x941F, 69674 },
+ { 0x9420, 69678 },
+ { 0x9421, 69682 },
+ { 0x9422, 69686 },
+ { 0x9423, 69690 },
+ { 0x9424, 69694 },
+ { 0x9425, 69698 },
+ { 0x9426, 69702 },
+ { 0x9427, 69706 },
+ { 0x9428, 69710 },
+ { 0x9429, 69714 },
+ { 0x942A, 69718 },
+ { 0x942B, 69722 },
+ { 0x942C, 69726 },
+ { 0x942D, 69730 },
+ { 0x942E, 69734 },
+ { 0x942F, 69738 },
+ { 0x9430, 69742 },
+ { 0x9431, 69746 },
+ { 0x9432, 69750 },
+ { 0x9433, 69754 },
+ { 0x96CD, 69758 },
+ { 0x96CE, 69762 },
+ { 0x96D1, 69766 },
+ { 0x96CF, 69770 },
+ { 0x96D8, 69774 },
+ { 0x96C8, 69778 },
+ { 0x96D7, 69782 },
+ { 0x96D9, 69786 },
+ { 0x96D2, 69790 },
+ { 0x96D5, 69794 },
+ { 0x96C3, 69798 },
+ { 0x96CA, 69802 },
+ { 0x96C7, 69806 },
+ { 0x96C2, 69810 },
+ { 0x96C5, 69814 },
+ { 0x96D3, 69818 },
+ { 0x96C4, 69823 },
+ { 0x96CB, 69827 },
+ { 0x96CC, 69831 },
+ { 0x96DA, 69835 },
+ { 0x96D4, 69839 },
+ { 0x96C9, 69843 },
+ { 0x97CB, 69847 },
+ { 0x96C6, 69851 },
+ { 0x96D0, 69855 },
+ { 0x96D6, 69859 },
+ { 0x96DD, 69863 },
+ { 0x9755, 69867 },
+ { 0x9753, 69872 },
+ { 0x9754, 69877 },
+ { 0x9752, 69882 },
+ { 0x9735, 69887 },
+ { 0x9482, 69891 },
+ { 0x9483, 69896 },
+ { 0x9484, 69901 },
+ { 0x9485, 69906 },
+ { 0x9486, 69911 },
+ { 0x9487, 69916 },
+ { 0x9488, 69921 },
+ { 0x9489, 69926 },
+ { 0x948A, 69931 },
+ { 0x948B, 69936 },
+ { 0x948C, 69941 },
+ { 0x948D, 69946 },
+ { 0x948E, 69951 },
+ { 0x948F, 69956 },
+ { 0x9490, 69961 },
+ { 0x9491, 69966 },
+ { 0x9492, 69971 },
+ { 0x9493, 69976 },
+ { 0x9494, 69981 },
+ { 0x9495, 69986 },
+ { 0x9496, 69991 },
+ { 0x9497, 69996 },
+ { 0x9498, 70001 },
+ { 0x9499, 70006 },
+ { 0x949A, 70011 },
+ { 0x949B, 70016 },
+ { 0x9741, 70021 },
+ { 0x9742, 70026 },
+ { 0x9745, 70031 },
+ { 0x9743, 70036 },
+ { 0x974C, 70041 },
+ { 0x973C, 70046 },
+ { 0x974B, 70051 },
+ { 0x974D, 70056 },
+ { 0x9746, 70061 },
+ { 0x9749, 70066 },
+ { 0x9737, 70071 },
+ { 0x973E, 70076 },
+ { 0x973B, 70081 },
+ { 0x9736, 70086 },
+ { 0x9739, 70091 },
+ { 0x9747, 70096 },
+ { 0x9738, 70102 },
+ { 0x973F, 70107 },
+ { 0x9740, 70112 },
+ { 0x974E, 70117 },
+ { 0x9748, 70122 },
+ { 0x973D, 70127 },
+ { 0x973A, 70132 },
+ { 0x9744, 70137 },
+ { 0x974A, 70142 },
+ { 0x9751, 70147 },
+ { 0x9468, 70152 },
+ { 0x9469, 70157 },
+ { 0x946A, 70162 },
+ { 0x946B, 70167 },
+ { 0x946C, 70172 },
+ { 0x946D, 70177 },
+ { 0x946E, 70182 },
+ { 0x946F, 70187 },
+ { 0x9470, 70192 },
+ { 0x9471, 70197 },
+ { 0x9472, 70202 },
+ { 0x9473, 70207 },
+ { 0x9474, 70212 },
+ { 0x9475, 70217 },
+ { 0x9476, 70222 },
+ { 0x9477, 70227 },
+ { 0x9478, 70232 },
+ { 0x9479, 70237 },
+ { 0x947A, 70242 },
+ { 0x947B, 70247 },
+ { 0x947C, 70252 },
+ { 0x947D, 70257 },
+ { 0x947E, 70262 },
+ { 0x947F, 70267 },
+ { 0x9480, 70272 },
+ { 0x9481, 70277 },
+ { 0x9727, 70282 },
+ { 0x9728, 70287 },
+ { 0x972B, 70292 },
+ { 0x9729, 70297 },
+ { 0x9732, 70302 },
+ { 0x9722, 70307 },
+ { 0x9731, 70312 },
+ { 0x9733, 70317 },
+ { 0x972C, 70322 },
+ { 0x972F, 70327 },
+ { 0x971D, 70332 },
+ { 0x9724, 70337 },
+ { 0x9721, 70342 },
+ { 0x971C, 70347 },
+ { 0x971F, 70352 },
+ { 0x971E, 70357 },
+ { 0x9725, 70362 },
+ { 0x9726, 70367 },
+ { 0x9734, 70372 },
+ { 0x972E, 70377 },
+ { 0x9723, 70382 },
+ { 0x972D, 70387 },
+ { 0x9720, 70393 },
+ { 0x972A, 70398 },
+ { 0x9730, 70403 },
+ { 0x9750, 70408 },
+ { 0x974F, 70413 },
+ { 0x94EA, 70418 },
+ { 0x94EB, 70423 },
+ { 0x94EC, 70428 },
+ { 0x94ED, 70433 },
+ { 0x94EE, 70438 },
+ { 0x94EF, 70443 },
+ { 0x94F0, 70448 },
+ { 0x94F1, 70453 },
+ { 0x94F2, 70458 },
+ { 0x94F3, 70463 },
+ { 0x94F4, 70468 },
+ { 0x94F5, 70473 },
+ { 0x94F6, 70478 },
+ { 0x94F7, 70483 },
+ { 0x94F8, 70488 },
+ { 0x94F9, 70493 },
+ { 0x94FA, 70498 },
+ { 0x94FB, 70503 },
+ { 0x94FC, 70508 },
+ { 0x94FD, 70513 },
+ { 0x94FE, 70518 },
+ { 0x94FF, 70523 },
+ { 0x9500, 70528 },
+ { 0x9501, 70533 },
+ { 0x9502, 70538 },
+ { 0x9503, 70543 },
+ { 0x94D0, 70548 },
+ { 0x94D1, 70553 },
+ { 0x94D2, 70558 },
+ { 0x94D3, 70563 },
+ { 0x94D4, 70568 },
+ { 0x94D5, 70573 },
+ { 0x94D6, 70578 },
+ { 0x94D7, 70583 },
+ { 0x94D8, 70588 },
+ { 0x94D9, 70593 },
+ { 0x94DA, 70598 },
+ { 0x94DB, 70603 },
+ { 0x94DC, 70608 },
+ { 0x94DD, 70613 },
+ { 0x94DE, 70618 },
+ { 0x94DF, 70623 },
+ { 0x94E0, 70628 },
+ { 0x94E1, 70633 },
+ { 0x94E2, 70638 },
+ { 0x94E3, 70643 },
+ { 0x94E4, 70648 },
+ { 0x94E5, 70653 },
+ { 0x94E6, 70658 },
+ { 0x94E7, 70663 },
+ { 0x94E8, 70668 },
+ { 0x94E9, 70673 },
+ { 0x9400, 70678 },
+ { 0x9401, 70682 },
+ { 0x9402, 70686 },
+ { 0x9403, 70690 },
+ { 0x9404, 70694 },
+ { 0x9405, 70698 },
+ { 0x9406, 70702 },
+ { 0x9407, 70706 },
+ { 0x9408, 70710 },
+ { 0x9409, 70714 },
+ { 0x940A, 70718 },
+ { 0x940B, 70722 },
+ { 0x940C, 70726 },
+ { 0x940D, 70730 },
+ { 0x940E, 70734 },
+ { 0x940F, 70738 },
+ { 0x9410, 70742 },
+ { 0x9411, 70746 },
+ { 0x9412, 70750 },
+ { 0x9413, 70754 },
+ { 0x9414, 70758 },
+ { 0x9415, 70762 },
+ { 0x9416, 70766 },
+ { 0x9417, 70770 },
+ { 0x9418, 70774 },
+ { 0x9419, 70778 },
+ { 0x96B3, 70782 },
+ { 0x96B4, 70786 },
+ { 0x96B7, 70790 },
+ { 0x96B5, 70794 },
+ { 0x96BE, 70798 },
+ { 0x96AE, 70802 },
+ { 0x96BD, 70806 },
+ { 0x96BF, 70810 },
+ { 0x96B8, 70814 },
+ { 0x96BB, 70818 },
+ { 0x96A9, 70822 },
+ { 0x96B0, 70826 },
+ { 0x96AD, 70830 },
+ { 0x96A8, 70834 },
+ { 0x96AB, 70838 },
+ { 0x96AA, 70842 },
+ { 0x96B1, 70846 },
+ { 0x96B2, 70850 },
+ { 0x96C0, 70854 },
+ { 0x96BA, 70858 },
+ { 0x96AF, 70862 },
+ { 0x96B9, 70866 },
+ { 0x97CA, 70871 },
+ { 0x96AC, 70875 },
+ { 0x96B6, 70879 },
+ { 0x96BC, 70883 },
+ { 0x96DC, 70887 },
+ { 0x9586, 70891 },
+ { 0x9587, 70896 },
+ { 0x9588, 70901 },
+ { 0x9589, 70906 },
+ { 0x958A, 70911 },
+ { 0x958B, 70916 },
+ { 0x958C, 70921 },
+ { 0x958D, 70926 },
+ { 0x958E, 70931 },
+ { 0x958F, 70936 },
+ { 0x9590, 70941 },
+ { 0x9591, 70946 },
+ { 0x9592, 70951 },
+ { 0x9593, 70956 },
+ { 0x9594, 70961 },
+ { 0x9595, 70966 },
+ { 0x9596, 70971 },
+ { 0x9597, 70976 },
+ { 0x9598, 70981 },
+ { 0x9599, 70986 },
+ { 0x959A, 70991 },
+ { 0x959B, 70996 },
+ { 0x959C, 71001 },
+ { 0x959D, 71006 },
+ { 0x959E, 71011 },
+ { 0x959F, 71016 },
+ { 0x956C, 71021 },
+ { 0x956D, 71026 },
+ { 0x956E, 71031 },
+ { 0x956F, 71036 },
+ { 0x9570, 71041 },
+ { 0x9571, 71046 },
+ { 0x9572, 71051 },
+ { 0x9573, 71056 },
+ { 0x9574, 71061 },
+ { 0x9575, 71066 },
+ { 0x9576, 71071 },
+ { 0x9577, 71076 },
+ { 0x9578, 71081 },
+ { 0x9579, 71086 },
+ { 0x957A, 71091 },
+ { 0x957B, 71096 },
+ { 0x957C, 71101 },
+ { 0x957D, 71106 },
+ { 0x957E, 71111 },
+ { 0x957F, 71116 },
+ { 0x9580, 71121 },
+ { 0x9581, 71126 },
+ { 0x9582, 71131 },
+ { 0x9583, 71136 },
+ { 0x9584, 71141 },
+ { 0x9585, 71146 },
+ { 0x96DB, 71151 },
+ { 0x27E8, 71155 },
+ { 0x27E6, 71159 },
+ { 0x27EC, 71164 },
+ { 0x27EA, 71170 },
+ { 0x27EE, 71175 },
+ { 0x27E9, 71179 },
+ { 0x27E7, 71183 },
+ { 0x27ED, 71188 },
+ { 0x27EB, 71194 },
+ { 0x27EF, 71199 },
+ { 0x971B, 71203 },
+ { 0x9719, 71207 },
+ { 0x971A, 71211 },
+ { 0x9718, 71215 },
+ { 0x96FB, 71219 },
+ { 0x944E, 71222 },
+ { 0x944F, 71226 },
+ { 0x9450, 71230 },
+ { 0x9451, 71234 },
+ { 0x9452, 71238 },
+ { 0x9453, 71242 },
+ { 0x9454, 71246 },
+ { 0x9456, 71250 },
+ { 0x9457, 71254 },
+ { 0x9458, 71258 },
+ { 0x9459, 71262 },
+ { 0x945A, 71266 },
+ { 0x945B, 71270 },
+ { 0x945C, 71274 },
+ { 0x945D, 71278 },
+ { 0x945E, 71282 },
+ { 0x945F, 71286 },
+ { 0x9460, 71290 },
+ { 0x9461, 71294 },
+ { 0x9462, 71298 },
+ { 0x9463, 71302 },
+ { 0x9464, 71306 },
+ { 0x9465, 71310 },
+ { 0x9466, 71314 },
+ { 0x9467, 71318 },
+ { 0x9707, 71322 },
+ { 0x9708, 71326 },
+ { 0x970B, 71330 },
+ { 0x9709, 71334 },
+ { 0x9712, 71338 },
+ { 0x9702, 71342 },
+ { 0x9711, 71346 },
+ { 0x9713, 71350 },
+ { 0x970C, 71354 },
+ { 0x970F, 71358 },
+ { 0x96FD, 71362 },
+ { 0x9704, 71366 },
+ { 0x9701, 71370 },
+ { 0x96FC, 71374 },
+ { 0x96FF, 71378 },
+ { 0x970D, 71382 },
+ { 0x96FE, 71387 },
+ { 0x9705, 71391 },
+ { 0x9706, 71395 },
+ { 0x9714, 71399 },
+ { 0x970E, 71403 },
+ { 0x9703, 71407 },
+ { 0x96A4, 71411 },
+ { 0x96A5, 71416 },
+ { 0x9700, 71421 },
+ { 0x970A, 71425 },
+ { 0x9710, 71429 },
+ { 0x9717, 71433 },
+ { 0x9434, 71437 },
+ { 0x9435, 71441 },
+ { 0x9436, 71445 },
+ { 0x9437, 71449 },
+ { 0x9438, 71453 },
+ { 0x9439, 71457 },
+ { 0x943A, 71461 },
+ { 0x943B, 71465 },
+ { 0x943C, 71469 },
+ { 0x943D, 71473 },
+ { 0x943E, 71477 },
+ { 0x943F, 71481 },
+ { 0x9440, 71485 },
+ { 0x9441, 71489 },
+ { 0x9442, 71493 },
+ { 0x9443, 71497 },
+ { 0x9444, 71501 },
+ { 0x9445, 71505 },
+ { 0x9446, 71509 },
+ { 0x9447, 71513 },
+ { 0x9448, 71517 },
+ { 0x9449, 71521 },
+ { 0x944A, 71525 },
+ { 0x944B, 71529 },
+ { 0x944C, 71533 },
+ { 0x944D, 71537 },
+ { 0x96ED, 71541 },
+ { 0x96EE, 71545 },
+ { 0x96F1, 71549 },
+ { 0x96EF, 71553 },
+ { 0x96F8, 71557 },
+ { 0x96E8, 71561 },
+ { 0x96F7, 71565 },
+ { 0x96F9, 71569 },
+ { 0x96F2, 71573 },
+ { 0x96F5, 71577 },
+ { 0x96E3, 71581 },
+ { 0x96EA, 71585 },
+ { 0x96E7, 71589 },
+ { 0x96E2, 71593 },
+ { 0x96E5, 71597 },
+ { 0x96E4, 71601 },
+ { 0x96EB, 71605 },
+ { 0x96EC, 71609 },
+ { 0x96FA, 71613 },
+ { 0x96F4, 71617 },
+ { 0x96E9, 71621 },
+ { 0x96F3, 71625 },
+ { 0x96E6, 71630 },
+ { 0x96F0, 71634 },
+ { 0x96F6, 71638 },
+ { 0x9716, 71642 },
+ { 0x9715, 71646 },
+ { 0x94B6, 71650 },
+ { 0x94B7, 71654 },
+ { 0x94B8, 71658 },
+ { 0x94B9, 71662 },
+ { 0x94BB, 71666 },
+ { 0x94BD, 71670 },
+ { 0x94BE, 71674 },
+ { 0x94BF, 71678 },
+ { 0x94C0, 71682 },
+ { 0x94C1, 71686 },
+ { 0x94C2, 71690 },
+ { 0x94C3, 71694 },
+ { 0x94C5, 71698 },
+ { 0x94C6, 71702 },
+ { 0x94C7, 71706 },
+ { 0x94C8, 71710 },
+ { 0x94C9, 71714 },
+ { 0x94CA, 71718 },
+ { 0x94CB, 71722 },
+ { 0x94CC, 71726 },
+ { 0x94CD, 71730 },
+ { 0x94CE, 71734 },
+ { 0x94CF, 71738 },
+ { 0x949C, 71742 },
+ { 0x949E, 71746 },
+ { 0x949F, 71750 },
+ { 0x94A2, 71754 },
+ { 0x94A5, 71758 },
+ { 0x94A6, 71762 },
+ { 0x94A9, 71766 },
+ { 0x94AA, 71770 },
+ { 0x94AB, 71774 },
+ { 0x94AC, 71778 },
+ { 0x94AE, 71782 },
+ { 0x94AF, 71786 },
+ { 0x94B0, 71790 },
+ { 0x94B1, 71794 },
+ { 0x94B2, 71798 },
+ { 0x94B3, 71802 },
+ { 0x94B4, 71806 },
+ { 0x94B5, 71810 },
+ { 0x951E, 71814 },
+ { 0x951F, 71818 },
+ { 0x9520, 71822 },
+ { 0x9521, 71826 },
+ { 0x9522, 71830 },
+ { 0x9523, 71834 },
+ { 0x9524, 71838 },
+ { 0x9525, 71842 },
+ { 0x9526, 71846 },
+ { 0x9527, 71850 },
+ { 0x9528, 71854 },
+ { 0x9529, 71858 },
+ { 0x952A, 71862 },
+ { 0x952B, 71866 },
+ { 0x952C, 71870 },
+ { 0x952D, 71874 },
+ { 0x952E, 71878 },
+ { 0x952F, 71882 },
+ { 0x9530, 71886 },
+ { 0x9531, 71890 },
+ { 0x9532, 71894 },
+ { 0x9533, 71898 },
+ { 0x9534, 71902 },
+ { 0x9535, 71906 },
+ { 0x9536, 71910 },
+ { 0x9537, 71914 },
+ { 0x9504, 71918 },
+ { 0x9505, 71922 },
+ { 0x9507, 71926 },
+ { 0x9508, 71930 },
+ { 0x9509, 71934 },
+ { 0x950A, 71938 },
+ { 0x950D, 71942 },
+ { 0x950E, 71946 },
+ { 0x950F, 71950 },
+ { 0x9510, 71954 },
+ { 0x9511, 71958 },
+ { 0x9512, 71962 },
+ { 0x9513, 71966 },
+ { 0x9514, 71970 },
+ { 0x9516, 71974 },
+ { 0x9517, 71978 },
+ { 0x9518, 71982 },
+ { 0x9519, 71986 },
+ { 0x951A, 71990 },
+ { 0x951B, 71994 },
+ { 0x951C, 71998 },
+ { 0x97F7, 72002 },
+ { 0x97FC, 72006 },
+ { 0x97F8, 72010 },
+ { 0x97FB, 72014 },
+ { 0x97FA, 72018 },
+ { 0x97FF, 72022 },
+ { 0x97F6, 72026 },
+ { 0x97FE, 72030 },
+ { 0x97FD, 72034 },
+ { 0x97F9, 72038 },
+ { 0x968A, 72042 },
+ { 0x968B, 72046 },
+ { 0x968C, 72050 },
+ { 0x968D, 72054 },
+ { 0x968E, 72058 },
+ { 0x968F, 72062 },
+ { 0x9690, 72066 },
+ { 0x9691, 72070 },
+ { 0x9692, 72074 },
+ { 0x9693, 72078 },
+ { 0x9694, 72082 },
+ { 0x9695, 72086 },
+ { 0x9696, 72090 },
+ { 0x9697, 72094 },
+ { 0x9698, 72098 },
+ { 0x9699, 72102 },
+ { 0x969A, 72106 },
+ { 0x969B, 72110 },
+ { 0x969C, 72114 },
+ { 0x969D, 72118 },
+ { 0x969E, 72122 },
+ { 0x969F, 72126 },
+ { 0x96A0, 72130 },
+ { 0x96A1, 72134 },
+ { 0x96A2, 72138 },
+ { 0x96A3, 72142 },
+ { 0x9670, 72146 },
+ { 0x9671, 72150 },
+ { 0x9672, 72154 },
+ { 0x9673, 72158 },
+ { 0x9674, 72162 },
+ { 0x9675, 72166 },
+ { 0x9676, 72170 },
+ { 0x9677, 72174 },
+ { 0x9678, 72178 },
+ { 0x9679, 72182 },
+ { 0x967A, 72186 },
+ { 0x967B, 72190 },
+ { 0x967C, 72194 },
+ { 0x967D, 72198 },
+ { 0x967E, 72202 },
+ { 0x967F, 72206 },
+ { 0x9680, 72210 },
+ { 0x9681, 72214 },
+ { 0x9682, 72218 },
+ { 0x9683, 72222 },
+ { 0x9684, 72226 },
+ { 0x9685, 72230 },
+ { 0x9686, 72234 },
+ { 0x9687, 72238 },
+ { 0x9688, 72242 },
+ { 0x9689, 72246 },
+ { 0x978F, 72250 },
+ { 0x978D, 72255 },
+ { 0x978E, 72260 },
+ { 0x97ED, 72265 },
+ { 0x97F2, 72270 },
+ { 0x97EE, 72275 },
+ { 0x97F1, 72280 },
+ { 0x97F0, 72285 },
+ { 0x97F5, 72290 },
+ { 0x97EC, 72295 },
+ { 0x97F4, 72300 },
+ { 0x97F3, 72305 },
+ { 0x97EF, 72310 },
+ { 0x978C, 72315 },
+ { 0x976F, 72320 },
+ { 0x95EE, 72324 },
+ { 0x95EF, 72329 },
+ { 0x95F0, 72334 },
+ { 0x95F1, 72339 },
+ { 0x95F2, 72344 },
+ { 0x95F3, 72349 },
+ { 0x95F4, 72354 },
+ { 0x95F5, 72359 },
+ { 0x95F6, 72364 },
+ { 0x95F7, 72369 },
+ { 0x95F8, 72374 },
+ { 0x95F9, 72379 },
+ { 0x95FA, 72384 },
+ { 0x95FB, 72389 },
+ { 0x95FC, 72394 },
+ { 0x95FD, 72399 },
+ { 0x95FE, 72404 },
+ { 0x95FF, 72409 },
+ { 0x9600, 72414 },
+ { 0x9601, 72419 },
+ { 0x9602, 72424 },
+ { 0x9603, 72429 },
+ { 0x9604, 72434 },
+ { 0x9605, 72439 },
+ { 0x9606, 72444 },
+ { 0x9607, 72449 },
+ { 0x977B, 72454 },
+ { 0x977C, 72459 },
+ { 0x977F, 72464 },
+ { 0x977D, 72469 },
+ { 0x9786, 72474 },
+ { 0x9776, 72479 },
+ { 0x9785, 72484 },
+ { 0x9787, 72489 },
+ { 0x9780, 72494 },
+ { 0x9783, 72499 },
+ { 0x9771, 72504 },
+ { 0x9778, 72509 },
+ { 0x9775, 72514 },
+ { 0x9770, 72519 },
+ { 0x9773, 72524 },
+ { 0x9781, 72529 },
+ { 0x9772, 72535 },
+ { 0x9779, 72540 },
+ { 0x977A, 72545 },
+ { 0x9788, 72550 },
+ { 0x9782, 72555 },
+ { 0x9777, 72560 },
+ { 0x9774, 72565 },
+ { 0x977E, 72570 },
+ { 0x9784, 72575 },
+ { 0x978B, 72580 },
+ { 0x97C9, 72585 },
+ { 0x97C7, 72591 },
+ { 0x97C8, 72597 },
+ { 0x97C6, 72603 },
+ { 0x97A9, 72609 },
+ { 0x9656, 72614 },
+ { 0x9657, 72620 },
+ { 0x9658, 72626 },
+ { 0x9659, 72632 },
+ { 0x965A, 72638 },
+ { 0x965B, 72644 },
+ { 0x965C, 72650 },
+ { 0x965D, 72656 },
+ { 0x965E, 72662 },
+ { 0x965F, 72668 },
+ { 0x9660, 72674 },
+ { 0x9661, 72680 },
+ { 0x9662, 72686 },
+ { 0x9663, 72692 },
+ { 0x9664, 72698 },
+ { 0x9665, 72704 },
+ { 0x9666, 72710 },
+ { 0x9667, 72716 },
+ { 0x9668, 72722 },
+ { 0x9669, 72728 },
+ { 0x966A, 72734 },
+ { 0x966B, 72740 },
+ { 0x966C, 72746 },
+ { 0x966D, 72752 },
+ { 0x966E, 72758 },
+ { 0x966F, 72764 },
+ { 0x97B5, 72770 },
+ { 0x97B6, 72776 },
+ { 0x97B9, 72782 },
+ { 0x97B7, 72788 },
+ { 0x97C0, 72794 },
+ { 0x97B0, 72800 },
+ { 0x97BF, 72806 },
+ { 0x97C1, 72812 },
+ { 0x97BA, 72818 },
+ { 0x97BD, 72824 },
+ { 0x97AB, 72830 },
+ { 0x97B2, 72836 },
+ { 0x97AF, 72842 },
+ { 0x97AA, 72848 },
+ { 0x97AD, 72854 },
+ { 0x97BB, 72860 },
+ { 0x97AC, 72867 },
+ { 0x97B3, 72873 },
+ { 0x97B4, 72879 },
+ { 0x97C2, 72885 },
+ { 0x97BC, 72891 },
+ { 0x97B1, 72897 },
+ { 0x97AE, 72903 },
+ { 0x97B8, 72909 },
+ { 0x97BE, 72915 },
+ { 0x97C5, 72921 },
+ { 0x963C, 72927 },
+ { 0x963D, 72933 },
+ { 0x963E, 72939 },
+ { 0x963F, 72945 },
+ { 0x9640, 72951 },
+ { 0x9641, 72957 },
+ { 0x9642, 72963 },
+ { 0x9643, 72969 },
+ { 0x9644, 72975 },
+ { 0x9645, 72981 },
+ { 0x9646, 72987 },
+ { 0x9647, 72993 },
+ { 0x9648, 72999 },
+ { 0x9649, 73005 },
+ { 0x964A, 73011 },
+ { 0x964B, 73017 },
+ { 0x964C, 73023 },
+ { 0x964D, 73029 },
+ { 0x964E, 73035 },
+ { 0x964F, 73041 },
+ { 0x9650, 73047 },
+ { 0x9651, 73053 },
+ { 0x9652, 73059 },
+ { 0x9653, 73065 },
+ { 0x9654, 73071 },
+ { 0x9655, 73077 },
+ { 0x979B, 73083 },
+ { 0x979C, 73089 },
+ { 0x979F, 73095 },
+ { 0x979D, 73101 },
+ { 0x97A6, 73107 },
+ { 0x9796, 73113 },
+ { 0x97A5, 73119 },
+ { 0x97A7, 73125 },
+ { 0x97A0, 73131 },
+ { 0x97A3, 73137 },
+ { 0x9791, 73143 },
+ { 0x9798, 73149 },
+ { 0x9795, 73155 },
+ { 0x9790, 73161 },
+ { 0x9793, 73167 },
+ { 0x9792, 73173 },
+ { 0x9799, 73179 },
+ { 0x979A, 73185 },
+ { 0x97A8, 73191 },
+ { 0x97A2, 73197 },
+ { 0x9797, 73203 },
+ { 0x97A1, 73209 },
+ { 0x9794, 73216 },
+ { 0x979E, 73222 },
+ { 0x97A4, 73228 },
+ { 0x97C4, 73234 },
+ { 0x97C3, 73240 },
+ { 0x95D4, 73246 },
+ { 0x95D5, 73251 },
+ { 0x95D6, 73256 },
+ { 0x95D7, 73261 },
+ { 0x95D8, 73266 },
+ { 0x95D9, 73271 },
+ { 0x95DA, 73276 },
+ { 0x95DB, 73281 },
+ { 0x95DC, 73286 },
+ { 0x95DD, 73291 },
+ { 0x95DE, 73296 },
+ { 0x95DF, 73301 },
+ { 0x95E0, 73306 },
+ { 0x95E1, 73311 },
+ { 0x95E2, 73316 },
+ { 0x95E3, 73321 },
+ { 0x95E4, 73326 },
+ { 0x95E5, 73331 },
+ { 0x95E6, 73336 },
+ { 0x95E7, 73341 },
+ { 0x95E8, 73346 },
+ { 0x95E9, 73351 },
+ { 0x95EA, 73356 },
+ { 0x95EB, 73361 },
+ { 0x95EC, 73366 },
+ { 0x95ED, 73371 },
+ { 0x9761, 73376 },
+ { 0x9762, 73381 },
+ { 0x9765, 73386 },
+ { 0x9763, 73391 },
+ { 0x976C, 73396 },
+ { 0x975C, 73401 },
+ { 0x976B, 73406 },
+ { 0x976D, 73411 },
+ { 0x9766, 73416 },
+ { 0x9769, 73421 },
+ { 0x9757, 73426 },
+ { 0x975E, 73431 },
+ { 0x975B, 73436 },
+ { 0x9756, 73441 },
+ { 0x9759, 73446 },
+ { 0x9758, 73451 },
+ { 0x975F, 73456 },
+ { 0x9760, 73461 },
+ { 0x976E, 73466 },
+ { 0x9768, 73471 },
+ { 0x975D, 73476 },
+ { 0x9767, 73481 },
+ { 0x975A, 73487 },
+ { 0x9764, 73492 },
+ { 0x976A, 73497 },
+ { 0x978A, 73502 },
+ { 0x9789, 73507 },
+ { 0x97E3, 73512 },
+ { 0x97E8, 73516 },
+ { 0x97E4, 73520 },
+ { 0x97E7, 73524 },
+ { 0x97E6, 73528 },
+ { 0x97EB, 73532 },
+ { 0x97E2, 73536 },
+ { 0x97EA, 73540 },
+ { 0x97E9, 73544 },
+ { 0x97E5, 73548 },
+ { 0x95BA, 73552 },
+ { 0x95BB, 73556 },
+ { 0x95BC, 73560 },
+ { 0x95BD, 73564 },
+ { 0x95BE, 73568 },
+ { 0x95BF, 73572 },
+ { 0x95C0, 73576 },
+ { 0x95C1, 73580 },
+ { 0x95C2, 73584 },
+ { 0x95C3, 73588 },
+ { 0x95C4, 73592 },
+ { 0x95C5, 73596 },
+ { 0x95C6, 73600 },
+ { 0x95C7, 73604 },
+ { 0x95C8, 73608 },
+ { 0x95C9, 73612 },
+ { 0x95CA, 73616 },
+ { 0x95CB, 73620 },
+ { 0x95CC, 73624 },
+ { 0x95CD, 73628 },
+ { 0x95CE, 73632 },
+ { 0x95CF, 73636 },
+ { 0x95D0, 73640 },
+ { 0x95D1, 73644 },
+ { 0x95D2, 73648 },
+ { 0x95D3, 73652 },
+ { 0x9622, 73656 },
+ { 0x9623, 73661 },
+ { 0x9624, 73666 },
+ { 0x9625, 73671 },
+ { 0x9626, 73676 },
+ { 0x9627, 73681 },
+ { 0x9628, 73686 },
+ { 0x9629, 73691 },
+ { 0x962A, 73696 },
+ { 0x962B, 73701 },
+ { 0x962C, 73706 },
+ { 0x962D, 73711 },
+ { 0x962E, 73716 },
+ { 0x962F, 73721 },
+ { 0x9630, 73726 },
+ { 0x9631, 73731 },
+ { 0x9632, 73736 },
+ { 0x9633, 73741 },
+ { 0x9634, 73746 },
+ { 0x9635, 73751 },
+ { 0x9636, 73756 },
+ { 0x9637, 73761 },
+ { 0x9638, 73766 },
+ { 0x9639, 73771 },
+ { 0x963A, 73776 },
+ { 0x963B, 73781 },
+ { 0x9608, 73786 },
+ { 0x9609, 73791 },
+ { 0x960A, 73796 },
+ { 0x960B, 73801 },
+ { 0x960C, 73806 },
+ { 0x960D, 73811 },
+ { 0x960E, 73816 },
+ { 0x960F, 73821 },
+ { 0x9610, 73826 },
+ { 0x9611, 73831 },
+ { 0x9612, 73836 },
+ { 0x9613, 73841 },
+ { 0x9614, 73846 },
+ { 0x9615, 73851 },
+ { 0x9616, 73856 },
+ { 0x9617, 73861 },
+ { 0x9618, 73866 },
+ { 0x9619, 73871 },
+ { 0x961A, 73876 },
+ { 0x961B, 73881 },
+ { 0x961C, 73886 },
+ { 0x961D, 73891 },
+ { 0x961E, 73896 },
+ { 0x961F, 73901 },
+ { 0x9620, 73906 },
+ { 0x9621, 73911 },
+ { 0x95A0, 73916 },
+ { 0x95A1, 73920 },
+ { 0x95A2, 73924 },
+ { 0x95A3, 73928 },
+ { 0x95A4, 73932 },
+ { 0x95A5, 73936 },
+ { 0x95A6, 73940 },
+ { 0x95A7, 73944 },
+ { 0x95A8, 73948 },
+ { 0x95A9, 73952 },
+ { 0x95AA, 73956 },
+ { 0x95AB, 73960 },
+ { 0x95AC, 73964 },
+ { 0x95AD, 73968 },
+ { 0x95AE, 73972 },
+ { 0x95AF, 73976 },
+ { 0x95B0, 73980 },
+ { 0x95B1, 73984 },
+ { 0x95B2, 73988 },
+ { 0x95B3, 73992 },
+ { 0x95B4, 73996 },
+ { 0x95B5, 74000 },
+ { 0x95B6, 74004 },
+ { 0x95B7, 74008 },
+ { 0x95B8, 74012 },
+ { 0x95B9, 74016 },
+ { 0x97D9, 74020 },
+ { 0x97DE, 74024 },
+ { 0x97DA, 74028 },
+ { 0x97DD, 74032 },
+ { 0x97DC, 74036 },
+ { 0x97E1, 74040 },
+ { 0x97D8, 74044 },
+ { 0x97E0, 74048 },
+ { 0x97DF, 74052 },
+ { 0x97DB, 74056 },
+ { 0x9552, 74060 },
+ { 0x9553, 74064 },
+ { 0x9554, 74068 },
+ { 0x9555, 74072 },
+ { 0x9556, 74076 },
+ { 0x9557, 74080 },
+ { 0x9558, 74084 },
+ { 0x9559, 74088 },
+ { 0x955A, 74092 },
+ { 0x955B, 74096 },
+ { 0x955C, 74100 },
+ { 0x955D, 74104 },
+ { 0x955E, 74108 },
+ { 0x955F, 74112 },
+ { 0x9560, 74116 },
+ { 0x9561, 74120 },
+ { 0x9562, 74124 },
+ { 0x9563, 74128 },
+ { 0x9564, 74132 },
+ { 0x9565, 74136 },
+ { 0x9566, 74140 },
+ { 0x9567, 74144 },
+ { 0x9568, 74148 },
+ { 0x9569, 74152 },
+ { 0x956A, 74156 },
+ { 0x956B, 74160 },
+ { 0x9538, 74164 },
+ { 0x9539, 74168 },
+ { 0x953B, 74172 },
+ { 0x953C, 74176 },
+ { 0x953D, 74180 },
+ { 0x953E, 74184 },
+ { 0x9540, 74188 },
+ { 0x9541, 74192 },
+ { 0x9542, 74196 },
+ { 0x9543, 74200 },
+ { 0x9544, 74204 },
+ { 0x9546, 74208 },
+ { 0x954A, 74212 },
+ { 0x954B, 74216 },
+ { 0x954C, 74220 },
+ { 0x954D, 74224 },
+ { 0x954E, 74228 },
+ { 0x954F, 74232 },
+ { 0x9550, 74236 },
+ { 0x2011, 74240 },
+ { 0x211E, 74242 },
+ { 0x6E31, 74244 },
+ { 0x6E32, 74250 },
+ { 0x6E33, 74256 },
+ { 0x6E30, 74262 },
+ { 0x6E3F, 74269 },
+ { 0x6E3B, 74276 },
+ { 0x6E37, 74284 },
+ { 0x6E43, 74291 },
+ { 0x6E17, 74299 },
+ { 0x6E41, 74307 },
+ { 0x6E3D, 74314 },
+ { 0x6E47, 74322 },
+ { 0x6E39, 74329 },
+ { 0x6E35, 74337 },
+ { 0x6E34, 74343 },
+ { 0x6E13, 74350 },
+ { 0x6E10, 74355 },
+ { 0x6E40, 74360 },
+ { 0x6E3C, 74367 },
+ { 0x6E38, 74375 },
+ { 0x6E44, 74382 },
+ { 0x6E18, 74390 },
+ { 0x6E42, 74398 },
+ { 0x6E3E, 74405 },
+ { 0x6E48, 74413 },
+ { 0x6E3A, 74420 },
+ { 0x6E36, 74428 },
+ { 0x6E16, 74434 },
+ { 0x6E14, 74440 },
+ { 0x6E19, 74445 },
+ { 0x6E15, 74451 },
+ { 0x6E12, 74457 },
+ { 0x6E11, 74464 },
+ { 0x221D, 74470 },
+ { 0x27A9, 74472 },
+ { 0x29F4, 74476 },
+ { 0x23E4, 74477 },
+ { 0x2004, 74478 },
+ { 0x2608, 74480 },
+ { 0x27BC, 74481 },
+ { 0x21B6, 74484 },
+ { 0x21BA, 74488 },
+ { 0x2940, 74492 },
+ { 0x27F2, 74496 },
+ { 0x2233, 74500 },
+ { 0x2A11, 74503 },
+ { 0x2246, 74505 },
+ { 0x2A70, 74511 },
+ { 0x2245, 74516 },
+ { 0x2252, 74519 },
+ { 0x2382, 74526 },
+ { 0x2140, 74529 },
+ { 0x213C, 74532 },
+ { 0x213D, 74535 },
+ { 0x2146, 74538 },
+ { 0x2147, 74542 },
+ { 0x2148, 74546 },
+ { 0x2149, 74550 },
+ { 0x2145, 74554 },
+ { 0x2102, 74558 },
+ { 0x210D, 74561 },
+ { 0x2115, 74564 },
+ { 0x2119, 74567 },
+ { 0x211A, 74570 },
+ { 0x211D, 74573 },
+ { 0x2124, 74576 },
+ { 0x213F, 74579 },
+ { 0x213E, 74582 },
+ { 0x29E8, 74585 },
+ { 0x29E9, 74591 },
+ { 0x20A0, 74597 },
+ { 0x2251, 74599 },
+ { 0x224E, 74602 },
+ { 0x2329, 74605 },
+ { 0x29FC, 74608 },
+ { 0x00AB, 74612 },
+ { 0x200E, 74617 },
+ { 0x202D, 74619 },
+ { 0x202A, 74621 },
+ { 0x2213, 74623 },
+ { 0x27BE, 74625 },
+ { 0x2474, 74628 },
+ { 0x2479, 74631 },
+ { 0x2475, 74634 },
+ { 0x2478, 74637 },
+ { 0x2477, 74640 },
+ { 0x247C, 74643 },
+ { 0x247B, 74646 },
+ { 0x247A, 74649 },
+ { 0x2476, 74652 },
+ { 0x249C, 74655 },
+ { 0x249D, 74660 },
+ { 0x249E, 74665 },
+ { 0x249F, 74670 },
+ { 0x24A0, 74675 },
+ { 0x24A1, 74680 },
+ { 0x24A2, 74685 },
+ { 0x24A3, 74690 },
+ { 0x24A4, 74695 },
+ { 0x24A5, 74700 },
+ { 0x24A6, 74705 },
+ { 0x24A7, 74710 },
+ { 0x24A8, 74715 },
+ { 0x24A9, 74720 },
+ { 0x24AA, 74725 },
+ { 0x24AB, 74730 },
+ { 0x24AC, 74735 },
+ { 0x24AD, 74740 },
+ { 0x24AE, 74745 },
+ { 0x24AF, 74750 },
+ { 0x24B0, 74755 },
+ { 0x24B1, 74760 },
+ { 0x24B2, 74765 },
+ { 0x24B3, 74770 },
+ { 0x24B4, 74775 },
+ { 0x24B5, 74780 },
+ { 0x3206, 74785 },
+ { 0x3214, 74788 },
+ { 0x3208, 74792 },
+ { 0x3216, 74795 },
+ { 0x321C, 74799 },
+ { 0x320D, 74803 },
+ { 0x321B, 74806 },
+ { 0x3207, 74810 },
+ { 0x3215, 74813 },
+ { 0x3204, 74817 },
+ { 0x3212, 74820 },
+ { 0x3201, 74824 },
+ { 0x320F, 74827 },
+ { 0x3205, 74831 },
+ { 0x3213, 74834 },
+ { 0x3203, 74838 },
+ { 0x3211, 74841 },
+ { 0x3200, 74845 },
+ { 0x320E, 74848 },
+ { 0x3202, 74852 },
+ { 0x3210, 74855 },
+ { 0x3209, 74859 },
+ { 0x3217, 74862 },
+ { 0x320A, 74866 },
+ { 0x3218, 74869 },
+ { 0x320C, 74873 },
+ { 0x321A, 74876 },
+ { 0x320B, 74880 },
+ { 0x3219, 74883 },
+ { 0x321E, 74887 },
+ { 0x321D, 74892 },
+ { 0x247D, 74896 },
+ { 0x247E, 74899 },
+ { 0x247F, 74902 },
+ { 0x2487, 74905 },
+ { 0x2482, 74908 },
+ { 0x2483, 74911 },
+ { 0x2485, 74914 },
+ { 0x2481, 74917 },
+ { 0x2486, 74920 },
+ { 0x2480, 74923 },
+ { 0x2484, 74926 },
+ { 0x3220, 74929 },
+ { 0x3225, 74932 },
+ { 0x3230, 74935 },
+ { 0x3229, 74938 },
+ { 0x3221, 74941 },
+ { 0x323A, 74944 },
+ { 0x322B, 74947 },
+ { 0x3224, 74950 },
+ { 0x3223, 74953 },
+ { 0x3232, 74956 },
+ { 0x322A, 74959 },
+ { 0x3234, 74962 },
+ { 0x3228, 74965 },
+ { 0x3241, 74968 },
+ { 0x3242, 74971 },
+ { 0x322D, 74974 },
+ { 0x322F, 74977 },
+ { 0x3227, 74980 },
+ { 0x3238, 74983 },
+ { 0x322E, 74986 },
+ { 0x3243, 74989 },
+ { 0x3226, 74992 },
+ { 0x3231, 74995 },
+ { 0x323B, 74998 },
+ { 0x3222, 75001 },
+ { 0x322C, 75004 },
+ { 0x3233, 75007 },
+ { 0x3235, 75010 },
+ { 0x323F, 75013 },
+ { 0x3240, 75016 },
+ { 0x323E, 75019 },
+ { 0x3236, 75022 },
+ { 0x3239, 75025 },
+ { 0x323C, 75028 },
+ { 0x323D, 75031 },
+ { 0x3237, 75034 },
+ { 0x27C2, 75037 },
+ { 0x2AE1, 75038 },
+ { 0x200F, 75041 },
+ { 0x202E, 75043 },
+ { 0x202B, 75045 },
+ { 0x29E7, 75047 },
+ { 0x2243, 75048 },
+ { 0x2749, 75051 },
+ { 0x2715, 75053 },
+ { 0x00D7, 75055 },
+ { 0x2A34, 75057 },
+ { 0x2A35, 75063 },
+ { 0x2A37, 75069 },
+ { 0x2A3B, 75074 },
+ { 0x2A30, 75078 },
+ { 0x2A31, 75083 },
+ { 0x232A, 75087 },
+ { 0x29FD, 75090 },
+ { 0x00BB, 75094 },
+ { 0x26BC, 75099 },
+ { 0x27B6, 75100 },
+ { 0x27B4, 75104 },
+ { 0x27B5, 75108 },
+ { 0x27BA, 75111 },
+ { 0x273B, 75114 },
+ { 0x279D, 75116 },
+ { 0x27B3, 75119 },
+ { 0x30A0, 75122 },
+ { 0x309B, 75125 },
+ { 0x30FC, 75129 },
+ { 0x309C, 75133 },
+ { 0x2394, 75137 },
+ { 0x267D, 75139 },
+ { 0x238F, 75142 },
+ { 0x2390, 75145 },
+ { 0x2392, 75148 },
+ { 0x2391, 75150 },
+};
+static const struct { uint16_t code; uint32_t name:24; }
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+__attribute__((__packed__))
+#endif
+unicode_code_to_name[18242] = {
+ { 0x0020, 22740 },
+ { 0x0021, 68656 },
+ { 0x0022, 65766 },
+ { 0x0023, 35593 },
+ { 0x0024, 31225 },
+ { 0x0025, 42973 },
+ { 0x0026, 56108 },
+ { 0x0027, 66826 },
+ { 0x0028, 9464 },
+ { 0x0029, 21991 },
+ { 0x002A, 45081 },
+ { 0x002B, 9633 },
+ { 0x002C, 10461 },
+ { 0x002D, 69568 },
+ { 0x002E, 9112 },
+ { 0x002F, 43548 },
+ { 0x0030, 10518 },
+ { 0x0031, 10482 },
+ { 0x0032, 10494 },
+ { 0x0033, 10532 },
+ { 0x0034, 10506 },
+ { 0x0035, 10500 },
+ { 0x0036, 10488 },
+ { 0x0037, 10526 },
+ { 0x0038, 10520 },
+ { 0x0039, 10512 },
+ { 0x003A, 10455 },
+ { 0x003B, 65813 },
+ { 0x003C, 64726 },
+ { 0x003D, 31706 },
+ { 0x003E, 69497 },
+ { 0x003F, 55446 },
+ { 0x0040, 66837 },
+ { 0x0041, 18231 },
+ { 0x0042, 18454 },
+ { 0x0043, 18497 },
+ { 0x0044, 18552 },
+ { 0x0045, 18632 },
+ { 0x0046, 18817 },
+ { 0x0047, 18834 },
+ { 0x0048, 18893 },
+ { 0x0049, 18954 },
+ { 0x004A, 19068 },
+ { 0x004B, 19084 },
+ { 0x004C, 19154 },
+ { 0x004D, 19254 },
+ { 0x004E, 19284 },
+ { 0x004F, 19369 },
+ { 0x0050, 19659 },
+ { 0x0051, 19709 },
+ { 0x0052, 19728 },
+ { 0x0053, 19811 },
+ { 0x0054, 19888 },
+ { 0x0055, 19965 },
+ { 0x0056, 20187 },
+ { 0x0057, 20217 },
+ { 0x0058, 20265 },
+ { 0x0059, 20282 },
+ { 0x005A, 20361 },
+ { 0x005B, 9385 },
+ { 0x005C, 42994 },
+ { 0x005D, 21912 },
+ { 0x005E, 66835 },
+ { 0x005F, 6031 },
+ { 0x0060, 10638 },
+ { 0x0061, 14473 },
+ { 0x0062, 14711 },
+ { 0x0063, 14768 },
+ { 0x0064, 14829 },
+ { 0x0065, 14925 },
+ { 0x0066, 15123 },
+ { 0x0067, 15154 },
+ { 0x0068, 15220 },
+ { 0x0069, 15294 },
+ { 0x006A, 15408 },
+ { 0x006B, 15436 },
+ { 0x006C, 15513 },
+ { 0x006D, 15631 },
+ { 0x006E, 15675 },
+ { 0x006F, 15786 },
+ { 0x0070, 16077 },
+ { 0x0071, 16141 },
+ { 0x0072, 16173 },
+ { 0x0073, 16292 },
+ { 0x0074, 16396 },
+ { 0x0075, 16499 },
+ { 0x0076, 16728 },
+ { 0x0077, 16778 },
+ { 0x0078, 16833 },
+ { 0x0079, 16857 },
+ { 0x007A, 16943 },
+ { 0x007B, 9231 },
+ { 0x007C, 56066 },
+ { 0x007D, 21824 },
+ { 0x007E, 23008 },
+ { 0x00A0, 54927 },
+ { 0x00A1, 53357 },
+ { 0x00A2, 8729 },
+ { 0x00A3, 21740 },
+ { 0x00A4, 48521 },
+ { 0x00A5, 8712 },
+ { 0x00A6, 30305 },
+ { 0x00A7, 43022 },
+ { 0x00A8, 63244 },
+ { 0x00A9, 58349 },
+ { 0x00AA, 51775 },
+ { 0x00AB, 74612 },
+ { 0x00AC, 6723 },
+ { 0x00AD, 9710 },
+ { 0x00AE, 67979 },
+ { 0x00AF, 35513 },
+ { 0x00B0, 31179 },
+ { 0x00B1, 67969 },
+ { 0x00B2, 69284 },
+ { 0x00B3, 69319 },
+ { 0x00B4, 10104 },
+ { 0x00B5, 21176 },
+ { 0x00B6, 42975 },
+ { 0x00B7, 35570 },
+ { 0x00B8, 38870 },
+ { 0x00B9, 69280 },
+ { 0x00BA, 65112 },
+ { 0x00BB, 75094 },
+ { 0x00BC, 37732 },
+ { 0x00BD, 37712 },
+ { 0x00BE, 37768 },
+ { 0x00BF, 53352 },
+ { 0x00C0, 18348 },
+ { 0x00C1, 18288 },
+ { 0x00C2, 18406 },
+ { 0x00C3, 18354 },
+ { 0x00C4, 18392 },
+ { 0x00C5, 18265 },
+ { 0x00C6, 20426 },
+ { 0x00C7, 18532 },
+ { 0x00C8, 18675 },
+ { 0x00C9, 18657 },
+ { 0x00CA, 18762 },
+ { 0x00CB, 18756 },
+ { 0x00CC, 18997 },
+ { 0x00CD, 18979 },
+ { 0x00CE, 19062 },
+ { 0x00CF, 19048 },
+ { 0x00D0, 20523 },
+ { 0x00D1, 19350 },
+ { 0x00D2, 19483 },
+ { 0x00D3, 19465 },
+ { 0x00D4, 19611 },
+ { 0x00D5, 19489 },
+ { 0x00D6, 19597 },
+ { 0x00D7, 75055 },
+ { 0x00D8, 19576 },
+ { 0x00D9, 20061 },
+ { 0x00DA, 20043 },
+ { 0x00DB, 20174 },
+ { 0x00DC, 20129 },
+ { 0x00DD, 20319 },
+ { 0x00DE, 20626 },
+ { 0x00DF, 17465 },
+ { 0x00E0, 14590 },
+ { 0x00E1, 14530 },
+ { 0x00E2, 14663 },
+ { 0x00E3, 14604 },
+ { 0x00E4, 14642 },
+ { 0x00E5, 14507 },
+ { 0x00E6, 17042 },
+ { 0x00E7, 14809 },
+ { 0x00E8, 14968 },
+ { 0x00E9, 14950 },
+ { 0x00EA, 15068 },
+ { 0x00EB, 15055 },
+ { 0x00EC, 15330 },
+ { 0x00ED, 15312 },
+ { 0x00EE, 15402 },
+ { 0x00EF, 15381 },
+ { 0x00F0, 17225 },
+ { 0x00F1, 15739 },
+ { 0x00F2, 15908 },
+ { 0x00F3, 15890 },
+ { 0x00F4, 16029 },
+ { 0x00F5, 15914 },
+ { 0x00F6, 16015 },
+ { 0x00F7, 50308 },
+ { 0x00F8, 15994 },
+ { 0x00F9, 16595 },
+ { 0x00FA, 16577 },
+ { 0x00FB, 16715 },
+ { 0x00FC, 16663 },
+ { 0x00FD, 16901 },
+ { 0x00FE, 17476 },
+ { 0x00FF, 16931 },
+ { 0x0100, 18367 },
+ { 0x0101, 14617 },
+ { 0x0102, 18294 },
+ { 0x0103, 14536 },
+ { 0x0104, 18373 },
+ { 0x0105, 14623 },
+ { 0x0106, 18514 },
+ { 0x0107, 14791 },
+ { 0x0108, 18546 },
+ { 0x0109, 14823 },
+ { 0x010A, 18501 },
+ { 0x010B, 14772 },
+ { 0x010C, 18520 },
+ { 0x010D, 14797 },
+ { 0x010E, 18583 },
+ { 0x010F, 14880 },
+ { 0x0110, 18607 },
+ { 0x0111, 14893 },
+ { 0x0112, 18701 },
+ { 0x0113, 15000 },
+ { 0x0114, 18663 },
+ { 0x0115, 14956 },
+ { 0x0116, 18636 },
+ { 0x0117, 14929 },
+ { 0x0118, 18723 },
+ { 0x0119, 15022 },
+ { 0x011A, 18669 },
+ { 0x011B, 14962 },
+ { 0x011C, 18887 },
+ { 0x011D, 15214 },
+ { 0x011E, 18857 },
+ { 0x011F, 15177 },
+ { 0x0120, 18838 },
+ { 0x0121, 15158 },
+ { 0x0122, 18881 },
+ { 0x0123, 15201 },
+ { 0x0124, 18948 },
+ { 0x0125, 15288 },
+ { 0x0126, 18924 },
+ { 0x0127, 15264 },
+ { 0x0128, 19003 },
+ { 0x0129, 15336 },
+ { 0x012A, 19023 },
+ { 0x012B, 15356 },
+ { 0x012C, 18985 },
+ { 0x012D, 15318 },
+ { 0x012E, 19029 },
+ { 0x012F, 15362 },
+ { 0x0130, 18958 },
+ { 0x0131, 17682 },
+ { 0x0132, 20774 },
+ { 0x0133, 17909 },
+ { 0x0134, 19078 },
+ { 0x0135, 15424 },
+ { 0x0136, 19135 },
+ { 0x0137, 15487 },
+ { 0x0138, 17263 },
+ { 0x0139, 19194 },
+ { 0x013A, 15565 },
+ { 0x013B, 19241 },
+ { 0x013C, 15604 },
+ { 0x013D, 19200 },
+ { 0x013E, 15571 },
+ { 0x013F, 19221 },
+ { 0x0140, 15584 },
+ { 0x0141, 19235 },
+ { 0x0142, 15598 },
+ { 0x0143, 19324 },
+ { 0x0144, 15721 },
+ { 0x0145, 19356 },
+ { 0x0146, 15752 },
+ { 0x0147, 19330 },
+ { 0x0148, 15727 },
+ { 0x0149, 15779 },
+ { 0x014A, 20515 },
+ { 0x014B, 17197 },
+ { 0x014C, 19533 },
+ { 0x014D, 15958 },
+ { 0x014E, 19471 },
+ { 0x014F, 15896 },
+ { 0x0150, 19519 },
+ { 0x0151, 15944 },
+ { 0x0152, 20778 },
+ { 0x0153, 17913 },
+ { 0x0154, 19768 },
+ { 0x0155, 16220 },
+ { 0x0156, 19793 },
+ { 0x0157, 16252 },
+ { 0x0158, 19774 },
+ { 0x0159, 16226 },
+ { 0x015A, 19839 },
+ { 0x015B, 16326 },
+ { 0x015C, 19882 },
+ { 0x015D, 16390 },
+ { 0x015E, 19876 },
+ { 0x015F, 16377 },
+ { 0x0160, 19854 },
+ { 0x0161, 16341 },
+ { 0x0162, 19938 },
+ { 0x0163, 16459 },
+ { 0x0164, 19919 },
+ { 0x0165, 16433 },
+ { 0x0166, 19932 },
+ { 0x0167, 16453 },
+ { 0x0168, 20067 },
+ { 0x0169, 16601 },
+ { 0x016A, 20102 },
+ { 0x016B, 16636 },
+ { 0x016C, 20049 },
+ { 0x016D, 16583 },
+ { 0x016E, 20036 },
+ { 0x016F, 16570 },
+ { 0x0170, 20088 },
+ { 0x0171, 16622 },
+ { 0x0172, 20116 },
+ { 0x0173, 16650 },
+ { 0x0174, 20259 },
+ { 0x0175, 16827 },
+ { 0x0176, 20355 },
+ { 0x0177, 16937 },
+ { 0x0178, 20349 },
+ { 0x0179, 20392 },
+ { 0x017A, 16980 },
+ { 0x017B, 20365 },
+ { 0x017C, 16947 },
+ { 0x017D, 20398 },
+ { 0x017E, 16986 },
+ { 0x017F, 17341 },
+ { 0x0180, 14749 },
+ { 0x0181, 18472 },
+ { 0x0182, 18491 },
+ { 0x0183, 14755 },
+ { 0x0184, 20570 },
+ { 0x0185, 17406 },
+ { 0x0186, 20565 },
+ { 0x0187, 18508 },
+ { 0x0188, 14785 },
+ { 0x0189, 20675 },
+ { 0x018A, 18570 },
+ { 0x018B, 18613 },
+ { 0x018C, 14899 },
+ { 0x018D, 17671 },
+ { 0x018E, 20726 },
+ { 0x018F, 20609 },
+ { 0x0190, 20560 },
+ { 0x0191, 18828 },
+ { 0x0192, 15134 },
+ { 0x0193, 18845 },
+ { 0x0194, 20601 },
+ { 0x0195, 17112 },
+ { 0x0196, 20556 },
+ { 0x0197, 19035 },
+ { 0x0198, 19095 },
+ { 0x0199, 15447 },
+ { 0x019A, 15517 },
+ { 0x019B, 17528 },
+ { 0x019C, 20659 },
+ { 0x019D, 19302 },
+ { 0x019E, 15713 },
+ { 0x019F, 19555 },
+ { 0x01A0, 19403 },
+ { 0x01A1, 15828 },
+ { 0x01A2, 20491 },
+ { 0x01A3, 17138 },
+ { 0x01A4, 19670 },
+ { 0x01A5, 16088 },
+ { 0x01A6, 17935 },
+ { 0x01A7, 20575 },
+ { 0x01A8, 17411 },
+ { 0x01A9, 20519 },
+ { 0x01AA, 18206 },
+ { 0x01AB, 16465 },
+ { 0x01AC, 19906 },
+ { 0x01AD, 16420 },
+ { 0x01AE, 19951 },
+ { 0x01AF, 19988 },
+ { 0x01B0, 16522 },
+ { 0x01B1, 20715 },
+ { 0x01B2, 20198 },
+ { 0x01B3, 20300 },
+ { 0x01B4, 16875 },
+ { 0x01B5, 20404 },
+ { 0x01B6, 17006 },
+ { 0x01B7, 20527 },
+ { 0x01B8, 20537 },
+ { 0x01B9, 17258 },
+ { 0x01BA, 17239 },
+ { 0x01BB, 17941 },
+ { 0x01BC, 20580 },
+ { 0x01BD, 17416 },
+ { 0x01BE, 18199 },
+ { 0x01BF, 17946 },
+ { 0x01C0, 18155 },
+ { 0x01C1, 18174 },
+ { 0x01C2, 18178 },
+ { 0x01C3, 18218 },
+ { 0x01C4, 20469 },
+ { 0x01C5, 18597 },
+ { 0x01C6, 17090 },
+ { 0x01C7, 20483 },
+ { 0x01C8, 19206 },
+ { 0x01C9, 17120 },
+ { 0x01CA, 20487 },
+ { 0x01CB, 19342 },
+ { 0x01CC, 17134 },
+ { 0x01CD, 18342 },
+ { 0x01CE, 14584 },
+ { 0x01CF, 18991 },
+ { 0x01D0, 15324 },
+ { 0x01D1, 19477 },
+ { 0x01D2, 15902 },
+ { 0x01D3, 20055 },
+ { 0x01D4, 16589 },
+ { 0x01D5, 20159 },
+ { 0x01D6, 16693 },
+ { 0x01D7, 20135 },
+ { 0x01D8, 16669 },
+ { 0x01D9, 20143 },
+ { 0x01DA, 16677 },
+ { 0x01DB, 20151 },
+ { 0x01DC, 16685 },
+ { 0x01DD, 17544 },
+ { 0x01DE, 18398 },
+ { 0x01DF, 14648 },
+ { 0x01E0, 18242 },
+ { 0x01E1, 14484 },
+ { 0x01E2, 20436 },
+ { 0x01E3, 17052 },
+ { 0x01E4, 18875 },
+ { 0x01E5, 15195 },
+ { 0x01E6, 18863 },
+ { 0x01E7, 15183 },
+ { 0x01E8, 19114 },
+ { 0x01E9, 15466 },
+ { 0x01EA, 19562 },
+ { 0x01EB, 15980 },
+ { 0x01EC, 19568 },
+ { 0x01ED, 15986 },
+ { 0x01EE, 20531 },
+ { 0x01EF, 17245 },
+ { 0x01F0, 15412 },
+ { 0x01F1, 20465 },
+ { 0x01F2, 18589 },
+ { 0x01F3, 17086 },
+ { 0x01F4, 18851 },
+ { 0x01F5, 15171 },
+ { 0x01F6, 20605 },
+ { 0x01F7, 20589 },
+ { 0x01F8, 19336 },
+ { 0x01F9, 15733 },
+ { 0x01FA, 18272 },
+ { 0x01FB, 14514 },
+ { 0x01FC, 20430 },
+ { 0x01FD, 17046 },
+ { 0x01FE, 19582 },
+ { 0x01FF, 16000 },
+ { 0x0200, 18360 },
+ { 0x0201, 14610 },
+ { 0x0202, 18385 },
+ { 0x0203, 14635 },
+ { 0x0204, 18694 },
+ { 0x0205, 14993 },
+ { 0x0206, 18749 },
+ { 0x0207, 15048 },
+ { 0x0208, 19016 },
+ { 0x0209, 15349 },
+ { 0x020A, 19041 },
+ { 0x020B, 15374 },
+ { 0x020C, 19526 },
+ { 0x020D, 15951 },
+ { 0x020E, 19590 },
+ { 0x020F, 16008 },
+ { 0x0210, 19780 },
+ { 0x0211, 16232 },
+ { 0x0212, 19799 },
+ { 0x0213, 16280 },
+ { 0x0214, 20095 },
+ { 0x0215, 16629 },
+ { 0x0216, 20122 },
+ { 0x0217, 16656 },
+ { 0x0218, 19869 },
+ { 0x0219, 16356 },
+ { 0x021A, 19925 },
+ { 0x021B, 16439 },
+ { 0x021C, 20593 },
+ { 0x021D, 17425 },
+ { 0x021E, 18918 },
+ { 0x021F, 15258 },
+ { 0x0220, 19316 },
+ { 0x0221, 14847 },
+ { 0x0222, 20499 },
+ { 0x0223, 17146 },
+ { 0x0224, 20379 },
+ { 0x0225, 16967 },
+ { 0x0226, 18235 },
+ { 0x0227, 14477 },
+ { 0x0228, 18735 },
+ { 0x0229, 15034 },
+ { 0x022A, 19603 },
+ { 0x022B, 16021 },
+ { 0x022C, 19503 },
+ { 0x022D, 15928 },
+ { 0x022E, 19373 },
+ { 0x022F, 15790 },
+ { 0x0230, 19380 },
+ { 0x0231, 15797 },
+ { 0x0232, 20337 },
+ { 0x0233, 16919 },
+ { 0x0234, 15545 },
+ { 0x0235, 15693 },
+ { 0x0236, 16414 },
+ { 0x0237, 17687 },
+ { 0x0238, 17081 },
+ { 0x0239, 17150 },
+ { 0x023A, 18379 },
+ { 0x023B, 18526 },
+ { 0x023C, 14803 },
+ { 0x023D, 19158 },
+ { 0x023E, 19944 },
+ { 0x023F, 16363 },
+ { 0x0240, 16992 },
+ { 0x0241, 20680 },
+ { 0x0242, 17708 },
+ { 0x0243, 18485 },
+ { 0x0244, 19969 },
+ { 0x0245, 20664 },
+ { 0x0246, 18729 },
+ { 0x0247, 15028 },
+ { 0x0248, 19072 },
+ { 0x0249, 15418 },
+ { 0x024A, 20618 },
+ { 0x024B, 16151 },
+ { 0x024C, 19787 },
+ { 0x024D, 16246 },
+ { 0x024E, 20343 },
+ { 0x024F, 16925 },
+ { 0x0250, 17539 },
+ { 0x0251, 17429 },
+ { 0x0252, 17666 },
+ { 0x0253, 14729 },
+ { 0x0254, 17383 },
+ { 0x0255, 14779 },
+ { 0x0256, 14874 },
+ { 0x0257, 14853 },
+ { 0x0258, 17765 },
+ { 0x0259, 17448 },
+ { 0x025A, 17452 },
+ { 0x025B, 17370 },
+ { 0x025C, 17777 },
+ { 0x025D, 17783 },
+ { 0x025E, 17521 },
+ { 0x025F, 17692 },
+ { 0x0260, 15165 },
+ { 0x0261, 17534 },
+ { 0x0262, 17979 },
+ { 0x0263, 17444 },
+ { 0x0264, 17396 },
+ { 0x0265, 17554 },
+ { 0x0266, 15238 },
+ { 0x0267, 17321 },
+ { 0x0268, 15368 },
+ { 0x0269, 17327 },
+ { 0x026A, 17996 },
+ { 0x026B, 15591 },
+ { 0x026C, 15539 },
+ { 0x026D, 15617 },
+ { 0x026E, 17337 },
+ { 0x026F, 17590 },
+ { 0x0270, 17595 },
+ { 0x0271, 15649 },
+ { 0x0272, 15699 },
+ { 0x0273, 15765 },
+ { 0x0274, 18028 },
+ { 0x0275, 17494 },
+ { 0x0276, 18088 },
+ { 0x0277, 17516 },
+ { 0x0278, 17279 },
+ { 0x0279, 17603 },
+ { 0x027A, 17615 },
+ { 0x027B, 17608 },
+ { 0x027C, 16207 },
+ { 0x027D, 16214 },
+ { 0x027E, 16265 },
+ { 0x027F, 17770 },
+ { 0x0280, 18043 },
+ { 0x0281, 18137 },
+ { 0x0282, 16320 },
+ { 0x0283, 17201 },
+ { 0x0284, 17699 },
+ { 0x0285, 17470 },
+ { 0x0286, 17205 },
+ { 0x0287, 17630 },
+ { 0x0288, 16485 },
+ { 0x0289, 16503 },
+ { 0x028A, 17743 },
+ { 0x028B, 16745 },
+ { 0x028C, 17635 },
+ { 0x028D, 17640 },
+ { 0x028E, 17645 },
+ { 0x028F, 18073 },
+ { 0x0290, 17025 },
+ { 0x0291, 16961 },
+ { 0x0292, 17229 },
+ { 0x0293, 17233 },
+ { 0x0294, 18164 },
+ { 0x0295, 18226 },
+ { 0x0296, 18194 },
+ { 0x0297, 18222 },
+ { 0x0298, 18186 },
+ { 0x0299, 17954 },
+ { 0x029A, 17510 },
+ { 0x029B, 17984 },
+ { 0x029C, 17991 },
+ { 0x029D, 15430 },
+ { 0x029E, 17580 },
+ { 0x029F, 18011 },
+ { 0x02A0, 16145 },
+ { 0x02A1, 18168 },
+ { 0x02A2, 18211 },
+ { 0x02A3, 17096 },
+ { 0x02A4, 17302 },
+ { 0x02A5, 17101 },
+ { 0x02A6, 17168 },
+ { 0x02A7, 17401 },
+ { 0x02A8, 17155 },
+ { 0x02A9, 17307 },
+ { 0x02AA, 17124 },
+ { 0x02AB, 17129 },
+ { 0x02AC, 18190 },
+ { 0x02AD, 18182 },
+ { 0x02AE, 17559 },
+ { 0x02AF, 17566 },
+ { 0x02B0, 54170 },
+ { 0x02B1, 54174 },
+ { 0x02B2, 54186 },
+ { 0x02B3, 54250 },
+ { 0x02B4, 54449 },
+ { 0x02B5, 54454 },
+ { 0x02B6, 54509 },
+ { 0x02B7, 54294 },
+ { 0x02B8, 54302 },
+ { 0x02B9, 54116 },
+ { 0x02BA, 54543 },
+ { 0x02BB, 54612 },
+ { 0x02BC, 54827 },
+ { 0x02BD, 54790 },
+ { 0x02BE, 54119 },
+ { 0x02BF, 54058 },
+ { 0x02C0, 54775 },
+ { 0x02C1, 54794 },
+ { 0x02C2, 54063 },
+ { 0x02C3, 54124 },
+ { 0x02C4, 53873 },
+ { 0x02C5, 54025 },
+ { 0x02C6, 54830 },
+ { 0x02C7, 10445 },
+ { 0x02C8, 54799 },
+ { 0x02C9, 54551 },
+ { 0x02CA, 54081 },
+ { 0x02CB, 54102 },
+ { 0x02CC, 53975 },
+ { 0x02CD, 53965 },
+ { 0x02CE, 53938 },
+ { 0x02CF, 53933 },
+ { 0x02D0, 54858 },
+ { 0x02D1, 54029 },
+ { 0x02D2, 54721 },
+ { 0x02D3, 54715 },
+ { 0x02D4, 53869 },
+ { 0x02D5, 54021 },
+ { 0x02D6, 54071 },
+ { 0x02D7, 54112 },
+ { 0x02D8, 10378 },
+ { 0x02D9, 5782 },
+ { 0x02DA, 9699 },
+ { 0x02DB, 35640 },
+ { 0x02DC, 22588 },
+ { 0x02DD, 31564 },
+ { 0x02DE, 54596 },
+ { 0x02DF, 54098 },
+ { 0x02E0, 54383 },
+ { 0x02E1, 54200 },
+ { 0x02E2, 54254 },
+ { 0x02E3, 54298 },
+ { 0x02E4, 54532 },
+ { 0x02E5, 54834 },
+ { 0x02E6, 54034 },
+ { 0x02E7, 53991 },
+ { 0x02E8, 53928 },
+ { 0x02E9, 54803 },
+ { 0x02EA, 54015 },
+ { 0x02EB, 54075 },
+ { 0x02EC, 54779 },
+ { 0x02ED, 54862 },
+ { 0x02EE, 54547 },
+ { 0x02EF, 53909 },
+ { 0x02F0, 53904 },
+ { 0x02F1, 53919 },
+ { 0x02F2, 53943 },
+ { 0x02F3, 53924 },
+ { 0x02F4, 54554 },
+ { 0x02F5, 54565 },
+ { 0x02F6, 54559 },
+ { 0x02F7, 53948 },
+ { 0x02F8, 54581 },
+ { 0x02F9, 54090 },
+ { 0x02FA, 53899 },
+ { 0x02FB, 54085 },
+ { 0x02FC, 53894 },
+ { 0x02FD, 54128 },
+ { 0x02FE, 54067 },
+ { 0x02FF, 53914 },
+ { 0x0300, 57554 },
+ { 0x0301, 57523 },
+ { 0x0302, 58283 },
+ { 0x0303, 57841 },
+ { 0x0304, 57946 },
+ { 0x0305, 58215 },
+ { 0x0306, 57530 },
+ { 0x0307, 57402 },
+ { 0x0308, 58240 },
+ { 0x0309, 57427 },
+ { 0x030A, 57506 },
+ { 0x030B, 57876 },
+ { 0x030C, 57535 },
+ { 0x030D, 58221 },
+ { 0x030E, 57918 },
+ { 0x030F, 57887 },
+ { 0x0310, 58305 },
+ { 0x0311, 58191 },
+ { 0x0312, 57970 },
+ { 0x0313, 57540 },
+ { 0x0314, 58217 },
+ { 0x0315, 57543 },
+ { 0x0316, 57557 },
+ { 0x0317, 57526 },
+ { 0x0318, 57442 },
+ { 0x0319, 57783 },
+ { 0x031A, 57446 },
+ { 0x031B, 57430 },
+ { 0x031C, 57437 },
+ { 0x031D, 57392 },
+ { 0x031E, 57419 },
+ { 0x031F, 57502 },
+ { 0x0320, 57769 },
+ { 0x0321, 58307 },
+ { 0x0322, 58279 },
+ { 0x0323, 57409 },
+ { 0x0324, 58242 },
+ { 0x0325, 57509 },
+ { 0x0326, 57547 },
+ { 0x0327, 57983 },
+ { 0x0328, 57959 },
+ { 0x0329, 58225 },
+ { 0x032A, 57857 },
+ { 0x032B, 58202 },
+ { 0x032C, 57537 },
+ { 0x032D, 58286 },
+ { 0x032E, 57532 },
+ { 0x032F, 58194 },
+ { 0x0330, 57843 },
+ { 0x0331, 57952 },
+ { 0x0332, 57412 },
+ { 0x0333, 57868 },
+ { 0x0334, 57846 },
+ { 0x0335, 57821 },
+ { 0x0336, 57489 },
+ { 0x0337, 57825 },
+ { 0x0338, 57493 },
+ { 0x0339, 57778 },
+ { 0x033A, 58198 },
+ { 0x033B, 57964 },
+ { 0x033C, 57991 },
+ { 0x033D, 57383 },
+ { 0x033E, 58229 },
+ { 0x033F, 57915 },
+ { 0x0340, 57550 },
+ { 0x0341, 57519 },
+ { 0x0342, 57580 },
+ { 0x0343, 57561 },
+ { 0x0344, 57576 },
+ { 0x0345, 57583 },
+ { 0x0346, 57854 },
+ { 0x0347, 57942 },
+ { 0x0348, 57923 },
+ { 0x0349, 57450 },
+ { 0x034A, 57415 },
+ { 0x034B, 58293 },
+ { 0x034C, 57849 },
+ { 0x034D, 57467 },
+ { 0x034E, 57994 },
+ { 0x034F, 58188 },
+ { 0x0350, 57813 },
+ { 0x0351, 57432 },
+ { 0x0352, 57985 },
+ { 0x0353, 57386 },
+ { 0x0354, 57480 },
+ { 0x0355, 57817 },
+ { 0x0356, 57799 },
+ { 0x0357, 57773 },
+ { 0x0358, 57405 },
+ { 0x0359, 58001 },
+ { 0x035A, 57872 },
+ { 0x035B, 57974 },
+ { 0x035C, 57883 },
+ { 0x035D, 57880 },
+ { 0x035E, 57904 },
+ { 0x035F, 57907 },
+ { 0x0360, 57891 },
+ { 0x0361, 57911 },
+ { 0x0362, 57937 },
+ { 0x0363, 57586 },
+ { 0x0364, 57607 },
+ { 0x0365, 57622 },
+ { 0x0366, 57647 },
+ { 0x0367, 57679 },
+ { 0x0368, 57591 },
+ { 0x0369, 57602 },
+ { 0x036A, 57617 },
+ { 0x036B, 57637 },
+ { 0x036C, 57652 },
+ { 0x036D, 57674 },
+ { 0x036E, 57684 },
+ { 0x036F, 57689 },
+ { 0x0370, 12320 },
+ { 0x0371, 10998 },
+ { 0x0372, 12792 },
+ { 0x0373, 11590 },
+ { 0x0374, 13034 },
+ { 0x0375, 10720 },
+ { 0x0376, 12999 },
+ { 0x0377, 11869 },
+ { 0x037A, 13522 },
+ { 0x037B, 11881 },
+ { 0x037C, 10738 },
+ { 0x037D, 11874 },
+ { 0x037E, 13059 },
+ { 0x0384, 11898 },
+ { 0x0385, 13083 },
+ { 0x0386, 12574 },
+ { 0x0387, 10643 },
+ { 0x0388, 12851 },
+ { 0x0389, 12268 },
+ { 0x038A, 12394 },
+ { 0x038C, 12917 },
+ { 0x038E, 12969 },
+ { 0x038F, 12766 },
+ { 0x0390, 11110 },
+ { 0x0391, 12428 },
+ { 0x0392, 12316 },
+ { 0x0393, 12608 },
+ { 0x0394, 12604 },
+ { 0x0395, 12797 },
+ { 0x0396, 12424 },
+ { 0x0397, 12122 },
+ { 0x0398, 12788 },
+ { 0x0399, 12324 },
+ { 0x039A, 12612 },
+ { 0x039B, 12616 },
+ { 0x039C, 12102 },
+ { 0x039D, 12106 },
+ { 0x039E, 12114 },
+ { 0x039F, 12863 },
+ { 0x03A0, 12110 },
+ { 0x03A1, 12294 },
+ { 0x03A3, 12784 },
+ { 0x03A4, 12312 },
+ { 0x03A5, 12929 },
+ { 0x03A6, 12286 },
+ { 0x03A7, 12118 },
+ { 0x03A8, 12290 },
+ { 0x03A9, 12620 },
+ { 0x03AA, 12418 },
+ { 0x03AB, 12993 },
+ { 0x03AC, 11298 },
+ { 0x03AD, 11653 },
+ { 0x03AE, 10918 },
+ { 0x03AF, 11072 },
+ { 0x03B0, 11839 },
+ { 0x03B1, 11144 },
+ { 0x03B2, 10994 },
+ { 0x03B3, 11359 },
+ { 0x03B4, 11350 },
+ { 0x03B5, 11599 },
+ { 0x03B6, 11140 },
+ { 0x03B7, 10764 },
+ { 0x03B8, 11577 },
+ { 0x03B9, 11002 },
+ { 0x03BA, 11363 },
+ { 0x03BB, 11371 },
+ { 0x03BC, 10744 },
+ { 0x03BD, 10748 },
+ { 0x03BE, 10756 },
+ { 0x03BF, 11665 },
+ { 0x03C0, 10752 },
+ { 0x03C1, 10966 },
+ { 0x03C2, 11354 },
+ { 0x03C3, 11573 },
+ { 0x03C4, 10990 },
+ { 0x03C5, 11731 },
+ { 0x03C6, 10958 },
+ { 0x03C7, 10760 },
+ { 0x03C8, 10962 },
+ { 0x03C9, 11375 },
+ { 0x03CA, 11096 },
+ { 0x03CB, 11825 },
+ { 0x03CC, 11719 },
+ { 0x03CD, 11801 },
+ { 0x03CE, 11529 },
+ { 0x03CF, 12088 },
+ { 0x03D0, 10678 },
+ { 0x03D1, 11887 },
+ { 0x03D2, 13037 },
+ { 0x03D3, 13042 },
+ { 0x03D4, 13049 },
+ { 0x03D5, 10659 },
+ { 0x03D6, 10640 },
+ { 0x03D7, 10646 },
+ { 0x03D8, 12064 },
+ { 0x03D9, 11585 },
+ { 0x03DA, 12061 },
+ { 0x03DB, 11581 },
+ { 0x03DC, 12068 },
+ { 0x03DD, 11595 },
+ { 0x03DE, 12030 },
+ { 0x03DF, 11367 },
+ { 0x03E0, 12033 },
+ { 0x03E1, 11569 },
+ { 0x03E2, 31064 },
+ { 0x03E3, 30771 },
+ { 0x03E4, 30926 },
+ { 0x03E5, 30633 },
+ { 0x03E6, 31060 },
+ { 0x03E7, 30767 },
+ { 0x03E8, 31052 },
+ { 0x03E9, 30759 },
+ { 0x03EA, 31104 },
+ { 0x03EB, 30811 },
+ { 0x03EC, 31100 },
+ { 0x03ED, 30807 },
+ { 0x03EE, 30918 },
+ { 0x03EF, 30625 },
+ { 0x03F0, 10714 },
+ { 0x03F1, 10667 },
+ { 0x03F2, 12071 },
+ { 0x03F3, 12027 },
+ { 0x03F4, 12092 },
+ { 0x03F5, 12075 },
+ { 0x03F6, 13062 },
+ { 0x03F7, 12308 },
+ { 0x03F8, 10986 },
+ { 0x03F9, 13004 },
+ { 0x03FA, 12304 },
+ { 0x03FB, 10982 },
+ { 0x03FC, 10662 },
+ { 0x03FD, 13016 },
+ { 0x03FE, 12096 },
+ { 0x03FF, 13009 },
+ { 0x0400, 49628 },
+ { 0x0401, 49634 },
+ { 0x0402, 49779 },
+ { 0x0403, 49828 },
+ { 0x0404, 50271 },
+ { 0x0405, 49787 },
+ { 0x0406, 50281 },
+ { 0x0407, 49723 },
+ { 0x0408, 49638 },
+ { 0x0409, 49848 },
+ { 0x040A, 49852 },
+ { 0x040B, 50007 },
+ { 0x040C, 49836 },
+ { 0x040D, 49451 },
+ { 0x040E, 50103 },
+ { 0x040F, 49910 },
+ { 0x0410, 49421 },
+ { 0x0411, 49502 },
+ { 0x0412, 49711 },
+ { 0x0413, 49791 },
+ { 0x0414, 49506 },
+ { 0x0415, 49618 },
+ { 0x0416, 49884 },
+ { 0x0417, 49735 },
+ { 0x0418, 49447 },
+ { 0x0419, 50091 },
+ { 0x041A, 49642 },
+ { 0x041B, 49514 },
+ { 0x041C, 49537 },
+ { 0x041D, 49547 },
+ { 0x041E, 49469 },
+ { 0x041F, 49675 },
+ { 0x0420, 49576 },
+ { 0x0421, 49586 },
+ { 0x0422, 49690 },
+ { 0x0423, 49479 },
+ { 0x0424, 49510 },
+ { 0x0425, 49596 },
+ { 0x0426, 49868 },
+ { 0x0427, 49756 },
+ { 0x0428, 49864 },
+ { 0x0429, 50087 },
+ { 0x042A, 49926 },
+ { 0x042B, 50019 },
+ { 0x042C, 49998 },
+ { 0x042D, 49437 },
+ { 0x042E, 49731 },
+ { 0x042F, 49719 },
+ { 0x0430, 48523 },
+ { 0x0431, 48604 },
+ { 0x0432, 48813 },
+ { 0x0433, 48893 },
+ { 0x0434, 48608 },
+ { 0x0435, 48720 },
+ { 0x0436, 48986 },
+ { 0x0437, 48837 },
+ { 0x0438, 48549 },
+ { 0x0439, 49193 },
+ { 0x043A, 48744 },
+ { 0x043B, 48616 },
+ { 0x043C, 48639 },
+ { 0x043D, 48649 },
+ { 0x043E, 48571 },
+ { 0x043F, 48777 },
+ { 0x0440, 48678 },
+ { 0x0441, 48688 },
+ { 0x0442, 48792 },
+ { 0x0443, 48581 },
+ { 0x0444, 48612 },
+ { 0x0445, 48698 },
+ { 0x0446, 48970 },
+ { 0x0447, 48858 },
+ { 0x0448, 48966 },
+ { 0x0449, 49189 },
+ { 0x044A, 49028 },
+ { 0x044B, 49121 },
+ { 0x044C, 49100 },
+ { 0x044D, 48539 },
+ { 0x044E, 48833 },
+ { 0x044F, 48821 },
+ { 0x0450, 48730 },
+ { 0x0451, 48736 },
+ { 0x0452, 48881 },
+ { 0x0453, 48930 },
+ { 0x0454, 49377 },
+ { 0x0455, 48889 },
+ { 0x0456, 49387 },
+ { 0x0457, 48825 },
+ { 0x0458, 48740 },
+ { 0x0459, 48950 },
+ { 0x045A, 48954 },
+ { 0x045B, 49109 },
+ { 0x045C, 48938 },
+ { 0x045D, 48553 },
+ { 0x045E, 49205 },
+ { 0x045F, 49012 },
+ { 0x0460, 50062 },
+ { 0x0461, 49164 },
+ { 0x0462, 49880 },
+ { 0x0463, 48982 },
+ { 0x0464, 50173 },
+ { 0x0465, 49275 },
+ { 0x0466, 50132 },
+ { 0x0467, 49234 },
+ { 0x0468, 50196 },
+ { 0x0469, 49298 },
+ { 0x046A, 49751 },
+ { 0x046B, 48853 },
+ { 0x046C, 50178 },
+ { 0x046D, 49280 },
+ { 0x046E, 49840 },
+ { 0x046F, 48942 },
+ { 0x0470, 49856 },
+ { 0x0471, 48958 },
+ { 0x0472, 49922 },
+ { 0x0473, 49024 },
+ { 0x0474, 50151 },
+ { 0x0475, 49253 },
+ { 0x0476, 50155 },
+ { 0x0477, 49257 },
+ { 0x0478, 49707 },
+ { 0x0479, 48809 },
+ { 0x047A, 50072 },
+ { 0x047B, 49174 },
+ { 0x047C, 50066 },
+ { 0x047D, 49168 },
+ { 0x047E, 49671 },
+ { 0x047F, 48773 },
+ { 0x0480, 50058 },
+ { 0x0481, 49160 },
+ { 0x0482, 50303 },
+ { 0x0483, 58017 },
+ { 0x0484, 58185 },
+ { 0x0485, 58009 },
+ { 0x0486, 58013 },
+ { 0x0487, 58177 },
+ { 0x0488, 58165 },
+ { 0x0489, 58173 },
+ { 0x048A, 50096 },
+ { 0x048B, 49198 },
+ { 0x048C, 50217 },
+ { 0x048D, 49323 },
+ { 0x048E, 49580 },
+ { 0x048F, 48682 },
+ { 0x0490, 49816 },
+ { 0x0491, 48918 },
+ { 0x0492, 49802 },
+ { 0x0493, 48904 },
+ { 0x0494, 49795 },
+ { 0x0495, 48897 },
+ { 0x0496, 49894 },
+ { 0x0497, 48996 },
+ { 0x0498, 49739 },
+ { 0x0499, 48841 },
+ { 0x049A, 49665 },
+ { 0x049B, 48767 },
+ { 0x049C, 49658 },
+ { 0x049D, 48760 },
+ { 0x049E, 49652 },
+ { 0x049F, 48754 },
+ { 0x04A0, 50141 },
+ { 0x04A1, 49243 },
+ { 0x04A2, 49570 },
+ { 0x04A3, 48672 },
+ { 0x04A4, 50291 },
+ { 0x04A5, 49397 },
+ { 0x04A6, 49679 },
+ { 0x04A7, 48781 },
+ { 0x04A8, 50234 },
+ { 0x04A9, 49340 },
+ { 0x04AA, 49590 },
+ { 0x04AB, 48692 },
+ { 0x04AC, 49701 },
+ { 0x04AD, 48803 },
+ { 0x04AE, 50222 },
+ { 0x04AF, 49328 },
+ { 0x04B0, 50227 },
+ { 0x04B1, 49333 },
+ { 0x04B2, 49612 },
+ { 0x04B3, 48714 },
+ { 0x04B4, 50296 },
+ { 0x04B5, 49402 },
+ { 0x04B6, 49767 },
+ { 0x04B7, 48869 },
+ { 0x04B8, 49760 },
+ { 0x04B9, 48862 },
+ { 0x04BA, 49975 },
+ { 0x04BB, 49077 },
+ { 0x04BC, 50239 },
+ { 0x04BD, 49345 },
+ { 0x04BE, 50244 },
+ { 0x04BF, 49350 },
+ { 0x04C0, 49414 },
+ { 0x04C1, 49888 },
+ { 0x04C2, 48990 },
+ { 0x04C3, 49646 },
+ { 0x04C4, 48748 },
+ { 0x04C5, 49524 },
+ { 0x04C6, 48626 },
+ { 0x04C7, 49551 },
+ { 0x04C8, 48653 },
+ { 0x04C9, 49557 },
+ { 0x04CA, 48659 },
+ { 0x04CB, 50276 },
+ { 0x04CC, 49382 },
+ { 0x04CD, 49541 },
+ { 0x04CE, 48643 },
+ { 0x04CF, 49304 },
+ { 0x04D0, 49425 },
+ { 0x04D1, 48527 },
+ { 0x04D2, 49431 },
+ { 0x04D3, 48533 },
+ { 0x04D4, 50286 },
+ { 0x04D5, 49392 },
+ { 0x04D6, 49622 },
+ { 0x04D7, 48724 },
+ { 0x04D8, 50077 },
+ { 0x04D9, 49179 },
+ { 0x04DA, 50081 },
+ { 0x04DB, 49183 },
+ { 0x04DC, 49900 },
+ { 0x04DD, 49002 },
+ { 0x04DE, 49745 },
+ { 0x04DF, 48847 },
+ { 0x04E0, 50251 },
+ { 0x04E1, 49357 },
+ { 0x04E2, 49457 },
+ { 0x04E3, 48559 },
+ { 0x04E4, 49463 },
+ { 0x04E5, 48565 },
+ { 0x04E6, 49473 },
+ { 0x04E7, 48575 },
+ { 0x04E8, 50108 },
+ { 0x04E9, 49210 },
+ { 0x04EA, 50113 },
+ { 0x04EB, 49215 },
+ { 0x04EC, 49441 },
+ { 0x04ED, 48543 },
+ { 0x04EE, 49490 },
+ { 0x04EF, 48592 },
+ { 0x04F0, 49496 },
+ { 0x04F1, 48598 },
+ { 0x04F2, 49483 },
+ { 0x04F3, 48585 },
+ { 0x04F4, 49773 },
+ { 0x04F5, 48875 },
+ { 0x04F6, 49822 },
+ { 0x04F7, 48924 },
+ { 0x04F8, 50030 },
+ { 0x04F9, 49132 },
+ { 0x04FA, 49808 },
+ { 0x04FB, 48910 },
+ { 0x04FC, 49600 },
+ { 0x04FD, 48702 },
+ { 0x04FE, 49606 },
+ { 0x04FF, 48708 },
+ { 0x0500, 49935 },
+ { 0x0501, 49037 },
+ { 0x0502, 49940 },
+ { 0x0503, 49042 },
+ { 0x0504, 49965 },
+ { 0x0505, 49067 },
+ { 0x0506, 49970 },
+ { 0x0507, 49072 },
+ { 0x0508, 49945 },
+ { 0x0509, 49047 },
+ { 0x050A, 49950 },
+ { 0x050B, 49052 },
+ { 0x050C, 49955 },
+ { 0x050D, 49057 },
+ { 0x050E, 49960 },
+ { 0x050F, 49062 },
+ { 0x0510, 50207 },
+ { 0x0511, 49313 },
+ { 0x0512, 49518 },
+ { 0x0513, 48620 },
+ { 0x0514, 49844 },
+ { 0x0515, 48946 },
+ { 0x0516, 49860 },
+ { 0x0517, 48962 },
+ { 0x0518, 49876 },
+ { 0x0519, 48978 },
+ { 0x051A, 49686 },
+ { 0x051B, 48788 },
+ { 0x051C, 49715 },
+ { 0x051D, 48817 },
+ { 0x051E, 50040 },
+ { 0x051F, 49142 },
+ { 0x0520, 49530 },
+ { 0x0521, 48632 },
+ { 0x0522, 49563 },
+ { 0x0523, 48665 },
+ { 0x0531, 44961 },
+ { 0x0532, 44965 },
+ { 0x0533, 44981 },
+ { 0x0534, 44917 },
+ { 0x0535, 44973 },
+ { 0x0536, 44957 },
+ { 0x0537, 44921 },
+ { 0x0538, 44925 },
+ { 0x0539, 44945 },
+ { 0x053A, 45029 },
+ { 0x053B, 44985 },
+ { 0x053C, 45045 },
+ { 0x053D, 45025 },
+ { 0x053E, 44909 },
+ { 0x053F, 44993 },
+ { 0x0540, 44929 },
+ { 0x0541, 44933 },
+ { 0x0542, 45037 },
+ { 0x0543, 45033 },
+ { 0x0544, 44997 },
+ { 0x0545, 44953 },
+ { 0x0546, 45001 },
+ { 0x0547, 45017 },
+ { 0x0548, 44949 },
+ { 0x0549, 44969 },
+ { 0x054A, 45005 },
+ { 0x054B, 45041 },
+ { 0x054C, 44941 },
+ { 0x054D, 45013 },
+ { 0x054E, 45021 },
+ { 0x054F, 45053 },
+ { 0x0550, 45009 },
+ { 0x0551, 44913 },
+ { 0x0552, 45057 },
+ { 0x0553, 45049 },
+ { 0x0554, 44989 },
+ { 0x0555, 44937 },
+ { 0x0556, 44977 },
+ { 0x0559, 45064 },
+ { 0x055A, 45073 },
+ { 0x055B, 45061 },
+ { 0x055C, 45075 },
+ { 0x055D, 44723 },
+ { 0x055E, 45070 },
+ { 0x055F, 45078 },
+ { 0x0561, 44777 },
+ { 0x0562, 44781 },
+ { 0x0563, 44797 },
+ { 0x0564, 44733 },
+ { 0x0565, 44789 },
+ { 0x0566, 44773 },
+ { 0x0567, 44737 },
+ { 0x0568, 44741 },
+ { 0x0569, 44761 },
+ { 0x056A, 44845 },
+ { 0x056B, 44801 },
+ { 0x056C, 44861 },
+ { 0x056D, 44841 },
+ { 0x056E, 44725 },
+ { 0x056F, 44809 },
+ { 0x0570, 44745 },
+ { 0x0571, 44749 },
+ { 0x0572, 44853 },
+ { 0x0573, 44849 },
+ { 0x0574, 44813 },
+ { 0x0575, 44769 },
+ { 0x0576, 44817 },
+ { 0x0577, 44833 },
+ { 0x0578, 44765 },
+ { 0x0579, 44785 },
+ { 0x057A, 44821 },
+ { 0x057B, 44857 },
+ { 0x057C, 44757 },
+ { 0x057D, 44829 },
+ { 0x057E, 44837 },
+ { 0x057F, 44869 },
+ { 0x0580, 44825 },
+ { 0x0581, 44729 },
+ { 0x0582, 44873 },
+ { 0x0583, 44865 },
+ { 0x0584, 44805 },
+ { 0x0585, 44753 },
+ { 0x0586, 44793 },
+ { 0x0587, 44877 },
+ { 0x0589, 44720 },
+ { 0x058A, 44907 },
+ { 0x0591, 33056 },
+ { 0x0592, 33004 },
+ { 0x0593, 33073 },
+ { 0x0594, 33022 },
+ { 0x0595, 33018 },
+ { 0x0596, 33053 },
+ { 0x0597, 33001 },
+ { 0x0598, 33026 },
+ { 0x0599, 33046 },
+ { 0x059A, 33015 },
+ { 0x059B, 33007 },
+ { 0x059C, 33032 },
+ { 0x059D, 33035 },
+ { 0x059E, 33070 },
+ { 0x059F, 33049 },
+ { 0x05A0, 33059 },
+ { 0x05A1, 32995 },
+ { 0x05A2, 32985 },
+ { 0x05A3, 32992 },
+ { 0x05A4, 33067 },
+ { 0x05A5, 33039 },
+ { 0x05A6, 33042 },
+ { 0x05A7, 32989 },
+ { 0x05A8, 32998 },
+ { 0x05A9, 33063 },
+ { 0x05AA, 33010 },
+ { 0x05AB, 32976 },
+ { 0x05AC, 32982 },
+ { 0x05AD, 32979 },
+ { 0x05AE, 33029 },
+ { 0x05AF, 32903 },
+ { 0x05B0, 32951 },
+ { 0x05B1, 32922 },
+ { 0x05B2, 32918 },
+ { 0x05B3, 32926 },
+ { 0x05B4, 32930 },
+ { 0x05B5, 32954 },
+ { 0x05B6, 32948 },
+ { 0x05B7, 32945 },
+ { 0x05B8, 32962 },
+ { 0x05B9, 32933 },
+ { 0x05BA, 32936 },
+ { 0x05BB, 32969 },
+ { 0x05BC, 32957 },
+ { 0x05BD, 32942 },
+ { 0x05BE, 33412 },
+ { 0x05BF, 32911 },
+ { 0x05C0, 33415 },
+ { 0x05C1, 32914 },
+ { 0x05C2, 32907 },
+ { 0x05C3, 33408 },
+ { 0x05C4, 32899 },
+ { 0x05C5, 32895 },
+ { 0x05C6, 33404 },
+ { 0x05C7, 32965 },
+ { 0x05D0, 33192 },
+ { 0x05D1, 33097 },
+ { 0x05D2, 33330 },
+ { 0x05D3, 33290 },
+ { 0x05D4, 33076 },
+ { 0x05D5, 33166 },
+ { 0x05D6, 33354 },
+ { 0x05D7, 33110 },
+ { 0x05D8, 33158 },
+ { 0x05D9, 33179 },
+ { 0x05DA, 33308 },
+ { 0x05DB, 33113 },
+ { 0x05DC, 33338 },
+ { 0x05DD, 33318 },
+ { 0x05DE, 33126 },
+ { 0x05DF, 33322 },
+ { 0x05E0, 33134 },
+ { 0x05E1, 33362 },
+ { 0x05E2, 33210 },
+ { 0x05E3, 33298 },
+ { 0x05E4, 33084 },
+ { 0x05E5, 33326 },
+ { 0x05E6, 33346 },
+ { 0x05E7, 33142 },
+ { 0x05E8, 33213 },
+ { 0x05E9, 33221 },
+ { 0x05EA, 33150 },
+ { 0x05F0, 33394 },
+ { 0x05F1, 33383 },
+ { 0x05F2, 33399 },
+ { 0x05F3, 33418 },
+ { 0x05F4, 33421 },
+ { 0x0600, 26405 },
+ { 0x0601, 23733 },
+ { 0x0602, 26459 },
+ { 0x0603, 23730 },
+ { 0x0606, 69351 },
+ { 0x0607, 69384 },
+ { 0x0608, 23706 },
+ { 0x0609, 69347 },
+ { 0x060A, 69342 },
+ { 0x060B, 37776 },
+ { 0x060C, 23764 },
+ { 0x060D, 23708 },
+ { 0x060E, 26408 },
+ { 0x060F, 23727 },
+ { 0x0610, 23756 },
+ { 0x0611, 23736 },
+ { 0x0612, 23752 },
+ { 0x0613, 23722 },
+ { 0x0614, 23749 },
+ { 0x0615, 23840 },
+ { 0x0616, 23923 },
+ { 0x0617, 23872 },
+ { 0x0618, 23935 },
+ { 0x0619, 23932 },
+ { 0x061A, 23938 },
+ { 0x061B, 30222 },
+ { 0x061E, 26422 },
+ { 0x061F, 30214 },
+ { 0x0621, 26056 },
+ { 0x0622, 25371 },
+ { 0x0623, 25327 },
+ { 0x0624, 25097 },
+ { 0x0625, 25349 },
+ { 0x0626, 25155 },
+ { 0x0627, 25310 },
+ { 0x0628, 24144 },
+ { 0x0629, 25027 },
+ { 0x062A, 24996 },
+ { 0x062B, 25851 },
+ { 0x062C, 25554 },
+ { 0x062D, 24447 },
+ { 0x062E, 25577 },
+ { 0x062F, 24260 },
+ { 0x0630, 25838 },
+ { 0x0631, 24833 },
+ { 0x0632, 25897 },
+ { 0x0633, 25747 },
+ { 0x0634, 26192 },
+ { 0x0635, 24929 },
+ { 0x0636, 24231 },
+ { 0x0637, 24966 },
+ { 0x0638, 25287 },
+ { 0x0639, 24090 },
+ { 0x063A, 26027 },
+ { 0x063B, 26073 },
+ { 0x063C, 26087 },
+ { 0x063D, 25996 },
+ { 0x063E, 25950 },
+ { 0x063F, 25958 },
+ { 0x0640, 26440 },
+ { 0x0641, 24346 },
+ { 0x0642, 24797 },
+ { 0x0643, 24672 },
+ { 0x0644, 24720 },
+ { 0x0645, 25600 },
+ { 0x0646, 25635 },
+ { 0x0647, 24545 },
+ { 0x0648, 25076 },
+ { 0x0649, 25432 },
+ { 0x064A, 25147 },
+ { 0x064B, 26453 },
+ { 0x064C, 26447 },
+ { 0x064D, 26465 },
+ { 0x064E, 23786 },
+ { 0x064F, 23766 },
+ { 0x0650, 23807 },
+ { 0x0651, 26412 },
+ { 0x0652, 23947 },
+ { 0x0653, 26402 },
+ { 0x0654, 23801 },
+ { 0x0655, 23804 },
+ { 0x0656, 30224 },
+ { 0x0657, 26462 },
+ { 0x0658, 23718 },
+ { 0x0659, 30220 },
+ { 0x065A, 23962 },
+ { 0x065B, 23968 },
+ { 0x065C, 23957 },
+ { 0x065D, 30217 },
+ { 0x065E, 23788 },
+ { 0x0660, 69372 },
+ { 0x0661, 69354 },
+ { 0x0662, 69360 },
+ { 0x0663, 69381 },
+ { 0x0664, 69366 },
+ { 0x0665, 69363 },
+ { 0x0666, 69357 },
+ { 0x0667, 69378 },
+ { 0x0668, 69375 },
+ { 0x0669, 69369 },
+ { 0x066A, 26430 },
+ { 0x066B, 26427 },
+ { 0x066C, 30227 },
+ { 0x066D, 23711 },
+ { 0x066E, 26331 },
+ { 0x066F, 26339 },
+ { 0x0670, 26398 },
+ { 0x0671, 25416 },
+ { 0x0672, 25313 },
+ { 0x0673, 25320 },
+ { 0x0674, 25535 },
+ { 0x0675, 25549 },
+ { 0x0676, 25539 },
+ { 0x0677, 24001 },
+ { 0x0678, 25544 },
+ { 0x0679, 25874 },
+ { 0x067A, 26290 },
+ { 0x067B, 25453 },
+ { 0x067C, 24999 },
+ { 0x067D, 25004 },
+ { 0x067E, 24774 },
+ { 0x067F, 26254 },
+ { 0x0680, 25910 },
+ { 0x0681, 24465 },
+ { 0x0682, 24457 },
+ { 0x0683, 25711 },
+ { 0x0684, 25489 },
+ { 0x0685, 24500 },
+ { 0x0686, 26225 },
+ { 0x0687, 26375 },
+ { 0x0688, 25476 },
+ { 0x0689, 24296 },
+ { 0x068A, 24263 },
+ { 0x068B, 24269 },
+ { 0x068C, 25933 },
+ { 0x068D, 26277 },
+ { 0x068E, 24333 },
+ { 0x068F, 24301 },
+ { 0x0690, 24289 },
+ { 0x0691, 25734 },
+ { 0x0692, 24884 },
+ { 0x0693, 24873 },
+ { 0x0694, 24836 },
+ { 0x0695, 24890 },
+ { 0x0696, 24842 },
+ { 0x0697, 24851 },
+ { 0x0698, 24659 },
+ { 0x0699, 24866 },
+ { 0x069A, 25750 },
+ { 0x069B, 25785 },
+ { 0x069C, 25792 },
+ { 0x069D, 24932 },
+ { 0x069E, 24939 },
+ { 0x069F, 24969 },
+ { 0x06A0, 24108 },
+ { 0x06A1, 26335 },
+ { 0x06A2, 24355 },
+ { 0x06A3, 24349 },
+ { 0x06A4, 25053 },
+ { 0x06A5, 24369 },
+ { 0x06A6, 26146 },
+ { 0x06A7, 24800 },
+ { 0x06A8, 24806 },
+ { 0x06A9, 26064 },
+ { 0x06AA, 26221 },
+ { 0x06AB, 24688 },
+ { 0x06AC, 24675 },
+ { 0x06AD, 24028 },
+ { 0x06AE, 24693 },
+ { 0x06AF, 24405 },
+ { 0x06B0, 24415 },
+ { 0x06B1, 26123 },
+ { 0x06B2, 24408 },
+ { 0x06B3, 25512 },
+ { 0x06B4, 24420 },
+ { 0x06B5, 24734 },
+ { 0x06B6, 24728 },
+ { 0x06B7, 24740 },
+ { 0x06B8, 24747 },
+ { 0x06B9, 25638 },
+ { 0x06BA, 25680 },
+ { 0x06BB, 26169 },
+ { 0x06BC, 25651 },
+ { 0x06BD, 25668 },
+ { 0x06BE, 24631 },
+ { 0x06BF, 26228 },
+ { 0x06C0, 24583 },
+ { 0x06C1, 24548 },
+ { 0x06C2, 24552 },
+ { 0x06C3, 25031 },
+ { 0x06C4, 25092 },
+ { 0x06C5, 26343 },
+ { 0x06C6, 24051 },
+ { 0x06C7, 23998 },
+ { 0x06C8, 24077 },
+ { 0x06C9, 26359 },
+ { 0x06CA, 25085 },
+ { 0x06CB, 24064 },
+ { 0x06CC, 25946 },
+ { 0x06CD, 25150 },
+ { 0x06CE, 25193 },
+ { 0x06CF, 25079 },
+ { 0x06D0, 23975 },
+ { 0x06D1, 25199 },
+ { 0x06D2, 25211 },
+ { 0x06D3, 25215 },
+ { 0x06D4, 23715 },
+ { 0x06D5, 24025 },
+ { 0x06D6, 23913 },
+ { 0x06D7, 23903 },
+ { 0x06D8, 23852 },
+ { 0x06D9, 23835 },
+ { 0x06DA, 23848 },
+ { 0x06DB, 23880 },
+ { 0x06DC, 23868 },
+ { 0x06DD, 23702 },
+ { 0x06DE, 23941 },
+ { 0x06DF, 23892 },
+ { 0x06E0, 23897 },
+ { 0x06E1, 23885 },
+ { 0x06E2, 23858 },
+ { 0x06E3, 23825 },
+ { 0x06E4, 23876 },
+ { 0x06E5, 23829 },
+ { 0x06E6, 23832 },
+ { 0x06E7, 23844 },
+ { 0x06E8, 23864 },
+ { 0x06E9, 23817 },
+ { 0x06EA, 23776 },
+ { 0x06EB, 23781 },
+ { 0x06EC, 26433 },
+ { 0x06ED, 23821 },
+ { 0x06EE, 24309 },
+ { 0x06EF, 24913 },
+ { 0x06F0, 51759 },
+ { 0x06F1, 51735 },
+ { 0x06F2, 51743 },
+ { 0x06F3, 51771 },
+ { 0x06F4, 51751 },
+ { 0x06F5, 51747 },
+ { 0x06F6, 51739 },
+ { 0x06F7, 51767 },
+ { 0x06F8, 51763 },
+ { 0x06F9, 51755 },
+ { 0x06FA, 26195 },
+ { 0x06FB, 24234 },
+ { 0x06FC, 26030 },
+ { 0x06FD, 23740 },
+ { 0x06FE, 23744 },
+ { 0x06FF, 24605 },
+ { 0x0700, 36871 },
+ { 0x0701, 37114 },
+ { 0x0702, 37094 },
+ { 0x0703, 37118 },
+ { 0x0704, 37098 },
+ { 0x0705, 37106 },
+ { 0x0706, 36885 },
+ { 0x0707, 36889 },
+ { 0x0708, 37121 },
+ { 0x0709, 37101 },
+ { 0x070A, 37109 },
+ { 0x070B, 37081 },
+ { 0x070C, 37084 },
+ { 0x070D, 37087 },
+ { 0x070F, 37126 },
+ { 0x0710, 36987 },
+ { 0x0711, 37046 },
+ { 0x0712, 36952 },
+ { 0x0713, 36994 },
+ { 0x0714, 36997 },
+ { 0x0715, 37004 },
+ { 0x0716, 37010 },
+ { 0x0717, 36934 },
+ { 0x0718, 36949 },
+ { 0x0719, 36984 },
+ { 0x071A, 36955 },
+ { 0x071B, 36970 },
+ { 0x071C, 36973 },
+ { 0x071D, 36977 },
+ { 0x071E, 36980 },
+ { 0x071F, 36958 },
+ { 0x0720, 37007 },
+ { 0x0721, 36940 },
+ { 0x0722, 36943 },
+ { 0x0723, 37027 },
+ { 0x0724, 36990 },
+ { 0x0725, 36931 },
+ { 0x0726, 36937 },
+ { 0x0727, 37042 },
+ { 0x0728, 37001 },
+ { 0x0729, 36961 },
+ { 0x072A, 36964 },
+ { 0x072B, 36967 },
+ { 0x072C, 36946 },
+ { 0x072D, 37015 },
+ { 0x072E, 37019 },
+ { 0x072F, 37023 },
+ { 0x0730, 37050 },
+ { 0x0731, 37053 },
+ { 0x0732, 37056 },
+ { 0x0733, 37059 },
+ { 0x0734, 37062 },
+ { 0x0735, 37065 },
+ { 0x0736, 36907 },
+ { 0x0737, 36910 },
+ { 0x0738, 36927 },
+ { 0x0739, 36923 },
+ { 0x073A, 36899 },
+ { 0x073B, 36902 },
+ { 0x073C, 37111 },
+ { 0x073D, 36893 },
+ { 0x073E, 36896 },
+ { 0x073F, 36913 },
+ { 0x0740, 37078 },
+ { 0x0741, 37092 },
+ { 0x0742, 37090 },
+ { 0x0743, 36875 },
+ { 0x0744, 36880 },
+ { 0x0745, 36915 },
+ { 0x0746, 36919 },
+ { 0x0747, 37070 },
+ { 0x0748, 37074 },
+ { 0x0749, 36905 },
+ { 0x074A, 37068 },
+ { 0x074D, 37038 },
+ { 0x074E, 37034 },
+ { 0x074F, 37030 },
+ { 0x0750, 24195 },
+ { 0x0751, 24147 },
+ { 0x0752, 24173 },
+ { 0x0753, 24182 },
+ { 0x0754, 24157 },
+ { 0x0755, 24203 },
+ { 0x0756, 24167 },
+ { 0x0757, 24450 },
+ { 0x0758, 24507 },
+ { 0x0759, 24278 },
+ { 0x075A, 24315 },
+ { 0x075B, 24908 },
+ { 0x075C, 25767 },
+ { 0x075D, 24093 },
+ { 0x075E, 24115 },
+ { 0x075F, 24100 },
+ { 0x0760, 24362 },
+ { 0x0761, 24376 },
+ { 0x0762, 26067 },
+ { 0x0763, 26080 },
+ { 0x0764, 26094 },
+ { 0x0765, 25603 },
+ { 0x0766, 25609 },
+ { 0x0767, 25644 },
+ { 0x0768, 25662 },
+ { 0x0769, 25656 },
+ { 0x076A, 24723 },
+ { 0x076B, 24858 },
+ { 0x076C, 24878 },
+ { 0x076D, 25759 },
+ { 0x076E, 24491 },
+ { 0x076F, 24471 },
+ { 0x0770, 25774 },
+ { 0x0771, 24897 },
+ { 0x0772, 24482 },
+ { 0x0773, 25393 },
+ { 0x0774, 25402 },
+ { 0x0775, 25966 },
+ { 0x0776, 25986 },
+ { 0x0777, 25976 },
+ { 0x0778, 25119 },
+ { 0x0779, 25128 },
+ { 0x077A, 25240 },
+ { 0x077B, 25250 },
+ { 0x077C, 24516 },
+ { 0x077D, 25803 },
+ { 0x077E, 25812 },
+ { 0x077F, 24681 },
+ { 0x0780, 37486 },
+ { 0x0781, 37591 },
+ { 0x0782, 37534 },
+ { 0x0783, 37492 },
+ { 0x0784, 37483 },
+ { 0x0785, 37588 },
+ { 0x0786, 37525 },
+ { 0x0787, 37516 },
+ { 0x0788, 37543 },
+ { 0x0789, 37531 },
+ { 0x078A, 37519 },
+ { 0x078B, 37552 },
+ { 0x078C, 37510 },
+ { 0x078D, 37528 },
+ { 0x078E, 37522 },
+ { 0x078F, 37585 },
+ { 0x0790, 37540 },
+ { 0x0791, 37567 },
+ { 0x0792, 37579 },
+ { 0x0793, 37576 },
+ { 0x0794, 37495 },
+ { 0x0795, 37573 },
+ { 0x0796, 37570 },
+ { 0x0797, 37582 },
+ { 0x0798, 37513 },
+ { 0x0799, 37504 },
+ { 0x079A, 37507 },
+ { 0x079B, 37564 },
+ { 0x079C, 37498 },
+ { 0x079D, 37561 },
+ { 0x079E, 37558 },
+ { 0x079F, 37549 },
+ { 0x07A0, 37477 },
+ { 0x07A1, 37480 },
+ { 0x07A2, 37501 },
+ { 0x07A3, 37555 },
+ { 0x07A4, 37537 },
+ { 0x07A5, 37546 },
+ { 0x07A6, 37594 },
+ { 0x07A7, 37604 },
+ { 0x07A8, 37598 },
+ { 0x07A9, 37606 },
+ { 0x07AA, 37602 },
+ { 0x07AB, 37612 },
+ { 0x07AC, 37596 },
+ { 0x07AD, 37608 },
+ { 0x07AE, 37600 },
+ { 0x07AF, 37610 },
+ { 0x07B0, 37475 },
+ { 0x07B1, 37489 },
+ { 0x07C0, 6538 },
+ { 0x07C1, 6520 },
+ { 0x07C2, 6526 },
+ { 0x07C3, 6547 },
+ { 0x07C4, 6532 },
+ { 0x07C5, 6529 },
+ { 0x07C6, 6523 },
+ { 0x07C7, 6544 },
+ { 0x07C8, 6541 },
+ { 0x07C9, 6535 },
+ { 0x07CA, 6550 },
+ { 0x07CB, 6574 },
+ { 0x07CC, 6556 },
+ { 0x07CD, 6553 },
+ { 0x07CE, 6565 },
+ { 0x07CF, 6602 },
+ { 0x07D0, 6562 },
+ { 0x07D1, 6651 },
+ { 0x07D2, 6559 },
+ { 0x07D3, 6568 },
+ { 0x07D4, 6605 },
+ { 0x07D5, 6614 },
+ { 0x07D6, 6583 },
+ { 0x07D7, 6623 },
+ { 0x07D8, 6571 },
+ { 0x07D9, 6608 },
+ { 0x07DA, 6636 },
+ { 0x07DB, 6611 },
+ { 0x07DC, 6626 },
+ { 0x07DD, 6577 },
+ { 0x07DE, 6586 },
+ { 0x07DF, 6589 },
+ { 0x07E0, 6598 },
+ { 0x07E1, 6592 },
+ { 0x07E2, 6629 },
+ { 0x07E3, 6595 },
+ { 0x07E4, 6580 },
+ { 0x07E5, 6617 },
+ { 0x07E6, 6620 },
+ { 0x07E7, 6632 },
+ { 0x07E8, 6639 },
+ { 0x07E9, 6647 },
+ { 0x07EA, 6643 },
+ { 0x07EB, 6686 },
+ { 0x07EC, 6681 },
+ { 0x07ED, 6691 },
+ { 0x07EE, 6676 },
+ { 0x07EF, 6666 },
+ { 0x07F0, 6661 },
+ { 0x07F1, 6671 },
+ { 0x07F2, 6701 },
+ { 0x07F3, 6696 },
+ { 0x07F4, 6514 },
+ { 0x07F5, 6510 },
+ { 0x07F6, 6654 },
+ { 0x07F7, 6658 },
+ { 0x07F8, 6518 },
+ { 0x07F9, 6707 },
+ { 0x07FA, 6705 },
+ { 0x0901, 66870 },
+ { 0x0902, 66864 },
+ { 0x0903, 66861 },
+ { 0x0904, 67167 },
+ { 0x0905, 66990 },
+ { 0x0906, 67005 },
+ { 0x0907, 66996 },
+ { 0x0908, 67032 },
+ { 0x0909, 67002 },
+ { 0x090A, 67065 },
+ { 0x090B, 67199 },
+ { 0x090C, 67195 },
+ { 0x090D, 67183 },
+ { 0x090E, 67171 },
+ { 0x090F, 66993 },
+ { 0x0910, 67008 },
+ { 0x0911, 67187 },
+ { 0x0912, 67175 },
+ { 0x0913, 66999 },
+ { 0x0914, 67011 },
+ { 0x0915, 67038 },
+ { 0x0916, 67104 },
+ { 0x0917, 67026 },
+ { 0x0918, 67095 },
+ { 0x0919, 67110 },
+ { 0x091A, 67017 },
+ { 0x091B, 67083 },
+ { 0x091C, 67035 },
+ { 0x091D, 67098 },
+ { 0x091E, 67116 },
+ { 0x091F, 67137 },
+ { 0x0920, 67161 },
+ { 0x0921, 67086 },
+ { 0x0922, 67146 },
+ { 0x0923, 67113 },
+ { 0x0924, 67062 },
+ { 0x0925, 67134 },
+ { 0x0926, 67020 },
+ { 0x0927, 67089 },
+ { 0x0928, 67047 },
+ { 0x0929, 67158 },
+ { 0x092A, 67050 },
+ { 0x092B, 67119 },
+ { 0x092C, 67014 },
+ { 0x092D, 67080 },
+ { 0x092E, 67044 },
+ { 0x092F, 67071 },
+ { 0x0930, 67056 },
+ { 0x0931, 67125 },
+ { 0x0932, 67041 },
+ { 0x0933, 67107 },
+ { 0x0934, 67155 },
+ { 0x0935, 67068 },
+ { 0x0936, 67128 },
+ { 0x0937, 67131 },
+ { 0x0938, 67059 },
+ { 0x0939, 67029 },
+ { 0x093C, 66855 },
+ { 0x093D, 66867 },
+ { 0x093E, 66927 },
+ { 0x093F, 66915 },
+ { 0x0940, 66939 },
+ { 0x0941, 66923 },
+ { 0x0942, 66943 },
+ { 0x0943, 66972 },
+ { 0x0944, 66982 },
+ { 0x0945, 66957 },
+ { 0x0946, 66947 },
+ { 0x0947, 66911 },
+ { 0x0948, 66931 },
+ { 0x0949, 66962 },
+ { 0x094A, 66952 },
+ { 0x094B, 66919 },
+ { 0x094C, 66935 },
+ { 0x094D, 66858 },
+ { 0x0950, 66848 },
+ { 0x0951, 67211 },
+ { 0x0952, 67215 },
+ { 0x0953, 66908 },
+ { 0x0954, 66873 },
+ { 0x0958, 67053 },
+ { 0x0959, 67152 },
+ { 0x095A, 67149 },
+ { 0x095B, 67074 },
+ { 0x095C, 67164 },
+ { 0x095D, 67122 },
+ { 0x095E, 67023 },
+ { 0x095F, 67140 },
+ { 0x0960, 67207 },
+ { 0x0961, 67203 },
+ { 0x0962, 66967 },
+ { 0x0963, 66977 },
+ { 0x0964, 66876 },
+ { 0x0965, 66987 },
+ { 0x0966, 66896 },
+ { 0x0967, 66878 },
+ { 0x0968, 66884 },
+ { 0x0969, 66905 },
+ { 0x096A, 66890 },
+ { 0x096B, 66887 },
+ { 0x096C, 66881 },
+ { 0x096D, 66902 },
+ { 0x096E, 66899 },
+ { 0x096F, 66893 },
+ { 0x0970, 67219 },
+ { 0x0971, 66850 },
+ { 0x0972, 67179 },
+ { 0x097B, 67092 },
+ { 0x097C, 67101 },
+ { 0x097D, 67191 },
+ { 0x097E, 67143 },
+ { 0x097F, 67077 },
+ { 0x0981, 37801 },
+ { 0x0982, 37795 },
+ { 0x0983, 37792 },
+ { 0x0985, 37898 },
+ { 0x0986, 37913 },
+ { 0x0987, 37904 },
+ { 0x0988, 37937 },
+ { 0x0989, 37910 },
+ { 0x098A, 37979 },
+ { 0x098B, 38053 },
+ { 0x098C, 38049 },
+ { 0x098F, 37901 },
+ { 0x0990, 37916 },
+ { 0x0993, 37907 },
+ { 0x0994, 37919 },
+ { 0x0995, 37943 },
+ { 0x0996, 38003 },
+ { 0x0997, 37931 },
+ { 0x0998, 37997 },
+ { 0x0999, 38006 },
+ { 0x099A, 37925 },
+ { 0x099B, 37988 },
+ { 0x099C, 37940 },
+ { 0x099D, 38000 },
+ { 0x099E, 38012 },
+ { 0x099F, 38033 },
+ { 0x09A0, 38042 },
+ { 0x09A1, 37991 },
+ { 0x09A2, 38039 },
+ { 0x09A3, 38009 },
+ { 0x09A4, 37976 },
+ { 0x09A5, 38030 },
+ { 0x09A6, 37928 },
+ { 0x09A7, 37994 },
+ { 0x09A8, 37952 },
+ { 0x09AA, 37955 },
+ { 0x09AB, 38015 },
+ { 0x09AC, 37922 },
+ { 0x09AD, 37985 },
+ { 0x09AE, 37949 },
+ { 0x09AF, 37982 },
+ { 0x09B0, 37958 },
+ { 0x09B2, 37946 },
+ { 0x09B6, 38024 },
+ { 0x09B7, 38027 },
+ { 0x09B8, 37973 },
+ { 0x09B9, 37934 },
+ { 0x09BC, 37786 },
+ { 0x09BD, 37798 },
+ { 0x09BE, 37856 },
+ { 0x09BF, 37844 },
+ { 0x09C0, 37868 },
+ { 0x09C1, 37852 },
+ { 0x09C2, 37872 },
+ { 0x09C3, 37881 },
+ { 0x09C4, 37891 },
+ { 0x09C7, 37840 },
+ { 0x09C8, 37860 },
+ { 0x09CB, 37848 },
+ { 0x09CC, 37864 },
+ { 0x09CD, 37789 },
+ { 0x09CE, 38045 },
+ { 0x09D7, 37782 },
+ { 0x09DC, 38021 },
+ { 0x09DD, 38018 },
+ { 0x09DF, 38036 },
+ { 0x09E0, 38061 },
+ { 0x09E1, 38057 },
+ { 0x09E2, 37876 },
+ { 0x09E3, 37886 },
+ { 0x09E6, 37822 },
+ { 0x09E7, 37804 },
+ { 0x09E8, 37810 },
+ { 0x09E9, 37831 },
+ { 0x09EA, 37816 },
+ { 0x09EB, 37813 },
+ { 0x09EC, 37807 },
+ { 0x09ED, 37828 },
+ { 0x09EE, 37825 },
+ { 0x09EF, 37819 },
+ { 0x09F0, 37967 },
+ { 0x09F1, 37961 },
+ { 0x09F2, 37834 },
+ { 0x09F3, 37837 },
+ { 0x09F4, 38065 },
+ { 0x09F5, 38077 },
+ { 0x09F6, 38085 },
+ { 0x09F7, 38081 },
+ { 0x09F8, 38069 },
+ { 0x09F9, 38089 },
+ { 0x09FA, 37896 },
+ { 0x0A01, 52505 },
+ { 0x0A02, 52509 },
+ { 0x0A03, 52524 },
+ { 0x0A05, 52597 },
+ { 0x0A06, 52606 },
+ { 0x0A07, 52600 },
+ { 0x0A08, 52636 },
+ { 0x0A09, 52603 },
+ { 0x0A0A, 52669 },
+ { 0x0A0F, 52624 },
+ { 0x0A10, 52609 },
+ { 0x0A13, 52654 },
+ { 0x0A14, 52612 },
+ { 0x0A15, 52642 },
+ { 0x0A16, 52699 },
+ { 0x0A17, 52630 },
+ { 0x0A18, 52693 },
+ { 0x0A19, 52705 },
+ { 0x0A1A, 52618 },
+ { 0x0A1B, 52684 },
+ { 0x0A1C, 52639 },
+ { 0x0A1D, 52696 },
+ { 0x0A1E, 52711 },
+ { 0x0A1F, 52726 },
+ { 0x0A20, 52738 },
+ { 0x0A21, 52687 },
+ { 0x0A22, 52729 },
+ { 0x0A23, 52708 },
+ { 0x0A24, 52666 },
+ { 0x0A25, 52723 },
+ { 0x0A26, 52621 },
+ { 0x0A27, 52690 },
+ { 0x0A28, 52651 },
+ { 0x0A2A, 52657 },
+ { 0x0A2B, 52714 },
+ { 0x0A2C, 52615 },
+ { 0x0A2D, 52681 },
+ { 0x0A2E, 52648 },
+ { 0x0A2F, 52675 },
+ { 0x0A30, 52660 },
+ { 0x0A32, 52645 },
+ { 0x0A33, 52702 },
+ { 0x0A35, 52672 },
+ { 0x0A36, 52720 },
+ { 0x0A38, 52663 },
+ { 0x0A39, 52633 },
+ { 0x0A3C, 52512 },
+ { 0x0A3E, 52569 },
+ { 0x0A3F, 52561 },
+ { 0x0A40, 52585 },
+ { 0x0A41, 52565 },
+ { 0x0A42, 52593 },
+ { 0x0A47, 52581 },
+ { 0x0A48, 52573 },
+ { 0x0A4B, 52589 },
+ { 0x0A4C, 52577 },
+ { 0x0A4D, 52518 },
+ { 0x0A51, 52515 },
+ { 0x0A59, 52735 },
+ { 0x0A5A, 52732 },
+ { 0x0A5B, 52678 },
+ { 0x0A5C, 52717 },
+ { 0x0A5E, 52627 },
+ { 0x0A66, 52547 },
+ { 0x0A67, 52529 },
+ { 0x0A68, 52535 },
+ { 0x0A69, 52556 },
+ { 0x0A6A, 52541 },
+ { 0x0A6B, 52538 },
+ { 0x0A6C, 52532 },
+ { 0x0A6D, 52553 },
+ { 0x0A6E, 52550 },
+ { 0x0A6F, 52544 },
+ { 0x0A70, 52559 },
+ { 0x0A71, 52527 },
+ { 0x0A72, 52501 },
+ { 0x0A73, 52503 },
+ { 0x0A74, 52498 },
+ { 0x0A75, 52521 },
+ { 0x0A81, 52240 },
+ { 0x0A82, 52234 },
+ { 0x0A83, 52231 },
+ { 0x0A85, 52350 },
+ { 0x0A86, 52365 },
+ { 0x0A87, 52356 },
+ { 0x0A88, 52389 },
+ { 0x0A89, 52362 },
+ { 0x0A8A, 52419 },
+ { 0x0A8B, 52486 },
+ { 0x0A8C, 52482 },
+ { 0x0A8D, 52342 },
+ { 0x0A8F, 52353 },
+ { 0x0A90, 52368 },
+ { 0x0A91, 52346 },
+ { 0x0A93, 52359 },
+ { 0x0A94, 52371 },
+ { 0x0A95, 52395 },
+ { 0x0A96, 52446 },
+ { 0x0A97, 52383 },
+ { 0x0A98, 52440 },
+ { 0x0A99, 52452 },
+ { 0x0A9A, 52377 },
+ { 0x0A9B, 52431 },
+ { 0x0A9C, 52392 },
+ { 0x0A9D, 52443 },
+ { 0x0A9E, 52458 },
+ { 0x0A9F, 52473 },
+ { 0x0AA0, 52479 },
+ { 0x0AA1, 52434 },
+ { 0x0AA2, 52476 },
+ { 0x0AA3, 52455 },
+ { 0x0AA4, 52416 },
+ { 0x0AA5, 52470 },
+ { 0x0AA6, 52380 },
+ { 0x0AA7, 52437 },
+ { 0x0AA8, 52404 },
+ { 0x0AAA, 52407 },
+ { 0x0AAB, 52461 },
+ { 0x0AAC, 52374 },
+ { 0x0AAD, 52428 },
+ { 0x0AAE, 52401 },
+ { 0x0AAF, 52425 },
+ { 0x0AB0, 52410 },
+ { 0x0AB2, 52398 },
+ { 0x0AB3, 52449 },
+ { 0x0AB5, 52422 },
+ { 0x0AB6, 52464 },
+ { 0x0AB7, 52467 },
+ { 0x0AB8, 52413 },
+ { 0x0AB9, 52386 },
+ { 0x0ABC, 52225 },
+ { 0x0ABD, 52237 },
+ { 0x0ABE, 52292 },
+ { 0x0ABF, 52280 },
+ { 0x0AC0, 52304 },
+ { 0x0AC1, 52288 },
+ { 0x0AC2, 52308 },
+ { 0x0AC3, 52327 },
+ { 0x0AC4, 52337 },
+ { 0x0AC5, 52312 },
+ { 0x0AC7, 52276 },
+ { 0x0AC8, 52296 },
+ { 0x0AC9, 52317 },
+ { 0x0ACB, 52284 },
+ { 0x0ACC, 52300 },
+ { 0x0ACD, 52228 },
+ { 0x0AD0, 52223 },
+ { 0x0AE0, 52494 },
+ { 0x0AE1, 52490 },
+ { 0x0AE2, 52322 },
+ { 0x0AE3, 52332 },
+ { 0x0AE6, 52261 },
+ { 0x0AE7, 52243 },
+ { 0x0AE8, 52249 },
+ { 0x0AE9, 52270 },
+ { 0x0AEA, 52255 },
+ { 0x0AEB, 52252 },
+ { 0x0AEC, 52246 },
+ { 0x0AED, 52267 },
+ { 0x0AEE, 52264 },
+ { 0x0AEF, 52258 },
+ { 0x0AF1, 52273 },
+ { 0x0B01, 21480 },
+ { 0x0B02, 21474 },
+ { 0x0B03, 21471 },
+ { 0x0B05, 21571 },
+ { 0x0B06, 21586 },
+ { 0x0B07, 21577 },
+ { 0x0B08, 21610 },
+ { 0x0B09, 21583 },
+ { 0x0B0A, 21640 },
+ { 0x0B0B, 21719 },
+ { 0x0B0C, 21715 },
+ { 0x0B0F, 21574 },
+ { 0x0B10, 21589 },
+ { 0x0B13, 21580 },
+ { 0x0B14, 21592 },
+ { 0x0B15, 21616 },
+ { 0x0B16, 21670 },
+ { 0x0B17, 21604 },
+ { 0x0B18, 21664 },
+ { 0x0B19, 21676 },
+ { 0x0B1A, 21598 },
+ { 0x0B1B, 21655 },
+ { 0x0B1C, 21613 },
+ { 0x0B1D, 21667 },
+ { 0x0B1E, 21682 },
+ { 0x0B1F, 21703 },
+ { 0x0B20, 21712 },
+ { 0x0B21, 21658 },
+ { 0x0B22, 21709 },
+ { 0x0B23, 21679 },
+ { 0x0B24, 21637 },
+ { 0x0B25, 21700 },
+ { 0x0B26, 21601 },
+ { 0x0B27, 21661 },
+ { 0x0B28, 21625 },
+ { 0x0B2A, 21628 },
+ { 0x0B2B, 21685 },
+ { 0x0B2C, 21595 },
+ { 0x0B2D, 21652 },
+ { 0x0B2E, 21622 },
+ { 0x0B2F, 21649 },
+ { 0x0B30, 21631 },
+ { 0x0B32, 21619 },
+ { 0x0B33, 21673 },
+ { 0x0B35, 21643 },
+ { 0x0B36, 21694 },
+ { 0x0B37, 21697 },
+ { 0x0B38, 21634 },
+ { 0x0B39, 21607 },
+ { 0x0B3C, 21465 },
+ { 0x0B3D, 21477 },
+ { 0x0B3E, 21529 },
+ { 0x0B3F, 21517 },
+ { 0x0B40, 21541 },
+ { 0x0B41, 21525 },
+ { 0x0B42, 21545 },
+ { 0x0B43, 21554 },
+ { 0x0B44, 21564 },
+ { 0x0B47, 21513 },
+ { 0x0B48, 21533 },
+ { 0x0B4B, 21521 },
+ { 0x0B4C, 21537 },
+ { 0x0B4D, 21468 },
+ { 0x0B56, 21457 },
+ { 0x0B57, 21461 },
+ { 0x0B5C, 21691 },
+ { 0x0B5D, 21688 },
+ { 0x0B5F, 21706 },
+ { 0x0B60, 21727 },
+ { 0x0B61, 21723 },
+ { 0x0B62, 21549 },
+ { 0x0B63, 21559 },
+ { 0x0B66, 21501 },
+ { 0x0B67, 21483 },
+ { 0x0B68, 21489 },
+ { 0x0B69, 21510 },
+ { 0x0B6A, 21495 },
+ { 0x0B6B, 21492 },
+ { 0x0B6C, 21486 },
+ { 0x0B6D, 21507 },
+ { 0x0B6E, 21504 },
+ { 0x0B6F, 21498 },
+ { 0x0B70, 21569 },
+ { 0x0B71, 21646 },
+ { 0x0B82, 22772 },
+ { 0x0B83, 22769 },
+ { 0x0B85, 22864 },
+ { 0x0B86, 22879 },
+ { 0x0B87, 22870 },
+ { 0x0B88, 22897 },
+ { 0x0B89, 22876 },
+ { 0x0B8A, 22930 },
+ { 0x0B8E, 22867 },
+ { 0x0B8F, 22891 },
+ { 0x0B90, 22882 },
+ { 0x0B92, 22873 },
+ { 0x0B93, 22915 },
+ { 0x0B94, 22885 },
+ { 0x0B95, 22903 },
+ { 0x0B99, 22942 },
+ { 0x0B9A, 22888 },
+ { 0x0B9C, 22900 },
+ { 0x0B9E, 22948 },
+ { 0x0B9F, 22960 },
+ { 0x0BA3, 22945 },
+ { 0x0BA4, 22927 },
+ { 0x0BA8, 22912 },
+ { 0x0BA9, 22966 },
+ { 0x0BAA, 22918 },
+ { 0x0BAE, 22909 },
+ { 0x0BAF, 22936 },
+ { 0x0BB0, 22921 },
+ { 0x0BB1, 22951 },
+ { 0x0BB2, 22906 },
+ { 0x0BB3, 22939 },
+ { 0x0BB4, 22963 },
+ { 0x0BB5, 22933 },
+ { 0x0BB6, 22954 },
+ { 0x0BB7, 22957 },
+ { 0x0BB8, 22924 },
+ { 0x0BB9, 22894 },
+ { 0x0BBE, 22833 },
+ { 0x0BBF, 22821 },
+ { 0x0BC0, 22849 },
+ { 0x0BC1, 22829 },
+ { 0x0BC2, 22857 },
+ { 0x0BC6, 22817 },
+ { 0x0BC7, 22845 },
+ { 0x0BC8, 22837 },
+ { 0x0BCA, 22825 },
+ { 0x0BCB, 22853 },
+ { 0x0BCC, 22841 },
+ { 0x0BCD, 22766 },
+ { 0x0BD0, 22761 },
+ { 0x0BD7, 22757 },
+ { 0x0BE6, 22799 },
+ { 0x0BE7, 22781 },
+ { 0x0BE8, 22787 },
+ { 0x0BE9, 22808 },
+ { 0x0BEA, 22793 },
+ { 0x0BEB, 22790 },
+ { 0x0BEC, 22784 },
+ { 0x0BED, 22805 },
+ { 0x0BEE, 22802 },
+ { 0x0BEF, 22796 },
+ { 0x0BF0, 22977 },
+ { 0x0BF1, 22969 },
+ { 0x0BF2, 22973 },
+ { 0x0BF3, 22763 },
+ { 0x0BF4, 22811 },
+ { 0x0BF5, 22775 },
+ { 0x0BF6, 22778 },
+ { 0x0BF7, 22861 },
+ { 0x0BF8, 22753 },
+ { 0x0BF9, 22814 },
+ { 0x0BFA, 22980 },
+ { 0x0C01, 37149 },
+ { 0x0C02, 37143 },
+ { 0x0C03, 37140 },
+ { 0x0C05, 37249 },
+ { 0x0C06, 37264 },
+ { 0x0C07, 37255 },
+ { 0x0C08, 37291 },
+ { 0x0C09, 37261 },
+ { 0x0C0A, 37324 },
+ { 0x0C0B, 37400 },
+ { 0x0C0C, 37396 },
+ { 0x0C0E, 37252 },
+ { 0x0C0F, 37282 },
+ { 0x0C10, 37267 },
+ { 0x0C12, 37258 },
+ { 0x0C13, 37309 },
+ { 0x0C14, 37270 },
+ { 0x0C15, 37297 },
+ { 0x0C16, 37354 },
+ { 0x0C17, 37285 },
+ { 0x0C18, 37348 },
+ { 0x0C19, 37360 },
+ { 0x0C1A, 37276 },
+ { 0x0C1B, 37336 },
+ { 0x0C1C, 37294 },
+ { 0x0C1D, 37351 },
+ { 0x0C1E, 37366 },
+ { 0x0C1F, 37387 },
+ { 0x0C20, 37393 },
+ { 0x0C21, 37339 },
+ { 0x0C22, 37390 },
+ { 0x0C23, 37363 },
+ { 0x0C24, 37321 },
+ { 0x0C25, 37381 },
+ { 0x0C26, 37279 },
+ { 0x0C27, 37342 },
+ { 0x0C28, 37306 },
+ { 0x0C2A, 37312 },
+ { 0x0C2B, 37369 },
+ { 0x0C2C, 37273 },
+ { 0x0C2D, 37333 },
+ { 0x0C2E, 37303 },
+ { 0x0C2F, 37330 },
+ { 0x0C30, 37315 },
+ { 0x0C31, 37372 },
+ { 0x0C32, 37300 },
+ { 0x0C33, 37357 },
+ { 0x0C35, 37327 },
+ { 0x0C36, 37375 },
+ { 0x0C37, 37378 },
+ { 0x0C38, 37318 },
+ { 0x0C39, 37288 },
+ { 0x0C3D, 37146 },
+ { 0x0C3E, 37198 },
+ { 0x0C3F, 37186 },
+ { 0x0C40, 37214 },
+ { 0x0C41, 37194 },
+ { 0x0C42, 37222 },
+ { 0x0C43, 37231 },
+ { 0x0C44, 37241 },
+ { 0x0C46, 37182 },
+ { 0x0C47, 37210 },
+ { 0x0C48, 37202 },
+ { 0x0C4A, 37190 },
+ { 0x0C4B, 37218 },
+ { 0x0C4C, 37206 },
+ { 0x0C4D, 37137 },
+ { 0x0C55, 37246 },
+ { 0x0C56, 37130 },
+ { 0x0C58, 37384 },
+ { 0x0C59, 37345 },
+ { 0x0C60, 37408 },
+ { 0x0C61, 37404 },
+ { 0x0C62, 37226 },
+ { 0x0C63, 37236 },
+ { 0x0C66, 37170 },
+ { 0x0C67, 37152 },
+ { 0x0C68, 37158 },
+ { 0x0C69, 37179 },
+ { 0x0C6A, 37164 },
+ { 0x0C6B, 37161 },
+ { 0x0C6C, 37155 },
+ { 0x0C6D, 37176 },
+ { 0x0C6E, 37173 },
+ { 0x0C6F, 37167 },
+ { 0x0C78, 37448 },
+ { 0x0C79, 37412 },
+ { 0x0C7A, 37430 },
+ { 0x0C7B, 37457 },
+ { 0x0C7C, 37421 },
+ { 0x0C7D, 37439 },
+ { 0x0C7E, 37466 },
+ { 0x0C7F, 37134 },
+ { 0x0C82, 40655 },
+ { 0x0C83, 40652 },
+ { 0x0C85, 40764 },
+ { 0x0C86, 40779 },
+ { 0x0C87, 40770 },
+ { 0x0C88, 40809 },
+ { 0x0C89, 40776 },
+ { 0x0C8A, 40842 },
+ { 0x0C8B, 40912 },
+ { 0x0C8C, 40908 },
+ { 0x0C8E, 40767 },
+ { 0x0C8F, 40797 },
+ { 0x0C90, 40782 },
+ { 0x0C92, 40773 },
+ { 0x0C93, 40827 },
+ { 0x0C94, 40785 },
+ { 0x0C95, 40815 },
+ { 0x0C96, 40869 },
+ { 0x0C97, 40803 },
+ { 0x0C98, 40863 },
+ { 0x0C99, 40875 },
+ { 0x0C9A, 40791 },
+ { 0x0C9B, 40854 },
+ { 0x0C9C, 40812 },
+ { 0x0C9D, 40866 },
+ { 0x0C9E, 40881 },
+ { 0x0C9F, 40899 },
+ { 0x0CA0, 40905 },
+ { 0x0CA1, 40857 },
+ { 0x0CA2, 40902 },
+ { 0x0CA3, 40878 },
+ { 0x0CA4, 40839 },
+ { 0x0CA5, 40896 },
+ { 0x0CA6, 40794 },
+ { 0x0CA7, 40860 },
+ { 0x0CA8, 40824 },
+ { 0x0CAA, 40830 },
+ { 0x0CAB, 40884 },
+ { 0x0CAC, 40788 },
+ { 0x0CAD, 40851 },
+ { 0x0CAE, 40821 },
+ { 0x0CAF, 40848 },
+ { 0x0CB0, 40833 },
+ { 0x0CB1, 40887 },
+ { 0x0CB2, 40818 },
+ { 0x0CB3, 40872 },
+ { 0x0CB5, 40845 },
+ { 0x0CB6, 40890 },
+ { 0x0CB7, 40893 },
+ { 0x0CB8, 40836 },
+ { 0x0CB9, 40806 },
+ { 0x0CBC, 40646 },
+ { 0x0CBD, 40658 },
+ { 0x0CBE, 40713 },
+ { 0x0CBF, 40701 },
+ { 0x0CC0, 40729 },
+ { 0x0CC1, 40709 },
+ { 0x0CC2, 40737 },
+ { 0x0CC3, 40746 },
+ { 0x0CC4, 40756 },
+ { 0x0CC6, 40697 },
+ { 0x0CC7, 40725 },
+ { 0x0CC8, 40717 },
+ { 0x0CCA, 40705 },
+ { 0x0CCB, 40733 },
+ { 0x0CCC, 40721 },
+ { 0x0CCD, 40649 },
+ { 0x0CD5, 40761 },
+ { 0x0CD6, 40642 },
+ { 0x0CDE, 40800 },
+ { 0x0CE0, 40920 },
+ { 0x0CE1, 40916 },
+ { 0x0CE2, 40741 },
+ { 0x0CE3, 40751 },
+ { 0x0CE6, 40685 },
+ { 0x0CE7, 40667 },
+ { 0x0CE8, 40673 },
+ { 0x0CE9, 40694 },
+ { 0x0CEA, 40679 },
+ { 0x0CEB, 40676 },
+ { 0x0CEC, 40670 },
+ { 0x0CED, 40691 },
+ { 0x0CEE, 40688 },
+ { 0x0CEF, 40682 },
+ { 0x0CF1, 40661 },
+ { 0x0CF2, 40664 },
+ { 0x0D02, 64805 },
+ { 0x0D03, 64802 },
+ { 0x0D05, 64905 },
+ { 0x0D06, 64920 },
+ { 0x0D07, 64911 },
+ { 0x0D08, 64947 },
+ { 0x0D09, 64917 },
+ { 0x0D0A, 64980 },
+ { 0x0D0B, 65077 },
+ { 0x0D0C, 65073 },
+ { 0x0D0E, 64908 },
+ { 0x0D0F, 64938 },
+ { 0x0D10, 64923 },
+ { 0x0D12, 64914 },
+ { 0x0D13, 64965 },
+ { 0x0D14, 64926 },
+ { 0x0D15, 64953 },
+ { 0x0D16, 65007 },
+ { 0x0D17, 64941 },
+ { 0x0D18, 65001 },
+ { 0x0D19, 65013 },
+ { 0x0D1A, 64932 },
+ { 0x0D1B, 64992 },
+ { 0x0D1C, 64950 },
+ { 0x0D1D, 65004 },
+ { 0x0D1E, 65019 },
+ { 0x0D1F, 65037 },
+ { 0x0D20, 65046 },
+ { 0x0D21, 64995 },
+ { 0x0D22, 65040 },
+ { 0x0D23, 65016 },
+ { 0x0D24, 64977 },
+ { 0x0D25, 65034 },
+ { 0x0D26, 64935 },
+ { 0x0D27, 64998 },
+ { 0x0D28, 64962 },
+ { 0x0D2A, 64968 },
+ { 0x0D2B, 65022 },
+ { 0x0D2C, 64929 },
+ { 0x0D2D, 64989 },
+ { 0x0D2E, 64959 },
+ { 0x0D2F, 64986 },
+ { 0x0D30, 64971 },
+ { 0x0D31, 65025 },
+ { 0x0D32, 64956 },
+ { 0x0D33, 65010 },
+ { 0x0D34, 65043 },
+ { 0x0D35, 64983 },
+ { 0x0D36, 65028 },
+ { 0x0D37, 65031 },
+ { 0x0D38, 64974 },
+ { 0x0D39, 64944 },
+ { 0x0D3D, 64808 },
+ { 0x0D3E, 64857 },
+ { 0x0D3F, 64845 },
+ { 0x0D40, 64873 },
+ { 0x0D41, 64853 },
+ { 0x0D42, 64881 },
+ { 0x0D43, 64890 },
+ { 0x0D44, 64900 },
+ { 0x0D46, 64841 },
+ { 0x0D47, 64869 },
+ { 0x0D48, 64861 },
+ { 0x0D4A, 64849 },
+ { 0x0D4B, 64877 },
+ { 0x0D4C, 64865 },
+ { 0x0D4D, 64799 },
+ { 0x0D57, 64792 },
+ { 0x0D60, 65085 },
+ { 0x0D61, 65081 },
+ { 0x0D62, 64885 },
+ { 0x0D63, 64895 },
+ { 0x0D66, 64829 },
+ { 0x0D67, 64811 },
+ { 0x0D68, 64817 },
+ { 0x0D69, 64838 },
+ { 0x0D6A, 64823 },
+ { 0x0D6B, 64820 },
+ { 0x0D6C, 64814 },
+ { 0x0D6D, 64835 },
+ { 0x0D6E, 64832 },
+ { 0x0D6F, 64826 },
+ { 0x0D70, 65097 },
+ { 0x0D71, 65089 },
+ { 0x0D72, 65093 },
+ { 0x0D73, 65104 },
+ { 0x0D74, 65100 },
+ { 0x0D75, 65108 },
+ { 0x0D79, 64796 },
+ { 0x0D7A, 65065 },
+ { 0x0D7B, 65057 },
+ { 0x0D7C, 65069 },
+ { 0x0D7D, 65053 },
+ { 0x0D7E, 65061 },
+ { 0x0D7F, 65049 },
+ { 0x0D82, 43201 },
+ { 0x0D83, 43198 },
+ { 0x0D85, 43293 },
+ { 0x0D86, 43308 },
+ { 0x0D87, 43311 },
+ { 0x0D88, 43395 },
+ { 0x0D89, 43299 },
+ { 0x0D8A, 43341 },
+ { 0x0D8B, 43305 },
+ { 0x0D8C, 43386 },
+ { 0x0D8D, 43401 },
+ { 0x0D8E, 43407 },
+ { 0x0D8F, 43398 },
+ { 0x0D90, 43404 },
+ { 0x0D91, 43296 },
+ { 0x0D92, 43332 },
+ { 0x0D93, 43314 },
+ { 0x0D94, 43302 },
+ { 0x0D95, 43351 },
+ { 0x0D96, 43317 },
+ { 0x0D9A, 43442 },
+ { 0x0D9B, 43482 },
+ { 0x0D9C, 43434 },
+ { 0x0D9D, 43474 },
+ { 0x0D9E, 43344 },
+ { 0x0D9F, 43361 },
+ { 0x0DA0, 43426 },
+ { 0x0DA1, 43466 },
+ { 0x0DA2, 43438 },
+ { 0x0DA3, 43478 },
+ { 0x0DA4, 43382 },
+ { 0x0DA5, 43377 },
+ { 0x0DA6, 43365 },
+ { 0x0DA7, 43458 },
+ { 0x0DA8, 43498 },
+ { 0x0DA9, 43454 },
+ { 0x0DAA, 43494 },
+ { 0x0DAB, 43414 },
+ { 0x0DAC, 43369 },
+ { 0x0DAD, 43450 },
+ { 0x0DAE, 43490 },
+ { 0x0DAF, 43430 },
+ { 0x0DB0, 43470 },
+ { 0x0DB1, 43324 },
+ { 0x0DB3, 43357 },
+ { 0x0DB4, 43446 },
+ { 0x0DB5, 43486 },
+ { 0x0DB6, 43422 },
+ { 0x0DB7, 43462 },
+ { 0x0DB8, 43348 },
+ { 0x0DB9, 43289 },
+ { 0x0DBA, 43392 },
+ { 0x0DBB, 43354 },
+ { 0x0DBD, 43320 },
+ { 0x0DC0, 43389 },
+ { 0x0DC1, 43373 },
+ { 0x0DC2, 43418 },
+ { 0x0DC3, 43328 },
+ { 0x0DC4, 43338 },
+ { 0x0DC5, 43410 },
+ { 0x0DC6, 43335 },
+ { 0x0DCA, 43195 },
+ { 0x0DCF, 43277 },
+ { 0x0DD0, 43244 },
+ { 0x0DD1, 43219 },
+ { 0x0DD2, 43234 },
+ { 0x0DD3, 43209 },
+ { 0x0DD4, 43239 },
+ { 0x0DD6, 43214 },
+ { 0x0DD8, 43285 },
+ { 0x0DD9, 43254 },
+ { 0x0DDA, 43204 },
+ { 0x0DDB, 43249 },
+ { 0x0DDC, 43265 },
+ { 0x0DDD, 43258 },
+ { 0x0DDE, 43271 },
+ { 0x0DDF, 43281 },
+ { 0x0DF2, 43229 },
+ { 0x0DF3, 43224 },
+ { 0x0DF4, 43502 },
+ { 0x0E01, 9790 },
+ { 0x0E02, 9880 },
+ { 0x0E03, 9888 },
+ { 0x0E04, 9892 },
+ { 0x0E05, 9884 },
+ { 0x0E06, 9896 },
+ { 0x0E07, 9920 },
+ { 0x0E08, 9864 },
+ { 0x0E09, 9876 },
+ { 0x0E0A, 9872 },
+ { 0x0E0B, 9828 },
+ { 0x0E0C, 9868 },
+ { 0x0E0D, 9860 },
+ { 0x0E0E, 9770 },
+ { 0x0E0F, 9848 },
+ { 0x0E10, 9936 },
+ { 0x0E11, 9956 },
+ { 0x0E12, 9952 },
+ { 0x0E13, 9813 },
+ { 0x0E14, 9766 },
+ { 0x0E15, 9844 },
+ { 0x0E16, 9944 },
+ { 0x0E17, 9948 },
+ { 0x0E18, 9940 },
+ { 0x0E19, 9809 },
+ { 0x0E1A, 9762 },
+ { 0x0E1B, 9817 },
+ { 0x0E1C, 9928 },
+ { 0x0E1D, 9774 },
+ { 0x0E1E, 9924 },
+ { 0x0E1F, 9778 },
+ { 0x0E20, 9932 },
+ { 0x0E21, 9805 },
+ { 0x0E22, 9856 },
+ { 0x0E23, 9821 },
+ { 0x0E24, 9825 },
+ { 0x0E25, 9794 },
+ { 0x0E26, 9802 },
+ { 0x0E27, 9852 },
+ { 0x0E28, 9840 },
+ { 0x0E29, 9836 },
+ { 0x0E2A, 9832 },
+ { 0x0E2B, 9782 },
+ { 0x0E2C, 9798 },
+ { 0x0E2D, 9758 },
+ { 0x0E2E, 9786 },
+ { 0x0E2F, 10039 },
+ { 0x0E30, 9960 },
+ { 0x0E31, 9916 },
+ { 0x0E32, 9980 },
+ { 0x0E33, 9998 },
+ { 0x0E34, 9968 },
+ { 0x0E35, 10002 },
+ { 0x0E36, 10006 },
+ { 0x0E37, 10014 },
+ { 0x0E38, 9976 },
+ { 0x0E39, 10010 },
+ { 0x0E3A, 10024 },
+ { 0x0E3F, 9754 },
+ { 0x0E40, 9964 },
+ { 0x0E41, 9984 },
+ { 0x0E42, 9972 },
+ { 0x0E43, 9988 },
+ { 0x0E44, 9993 },
+ { 0x0E45, 10045 },
+ { 0x0E46, 10027 },
+ { 0x0E47, 10036 },
+ { 0x0E48, 9900 },
+ { 0x0E49, 9904 },
+ { 0x0E4A, 9908 },
+ { 0x0E4B, 9912 },
+ { 0x0E4C, 10048 },
+ { 0x0E4D, 10030 },
+ { 0x0E4E, 10033 },
+ { 0x0E4F, 10021 },
+ { 0x0E50, 9742 },
+ { 0x0E51, 9724 },
+ { 0x0E52, 9730 },
+ { 0x0E53, 9751 },
+ { 0x0E54, 9736 },
+ { 0x0E55, 9733 },
+ { 0x0E56, 9727 },
+ { 0x0E57, 9748 },
+ { 0x0E58, 9745 },
+ { 0x0E59, 9739 },
+ { 0x0E5A, 10042 },
+ { 0x0E5B, 10018 },
+ { 0x0E81, 5948 },
+ { 0x0E82, 5989 },
+ { 0x0E84, 5985 },
+ { 0x0E87, 5993 },
+ { 0x0E88, 5926 },
+ { 0x0E8A, 5968 },
+ { 0x0E8D, 5996 },
+ { 0x0E94, 5929 },
+ { 0x0E95, 5976 },
+ { 0x0E96, 6011 },
+ { 0x0E97, 6007 },
+ { 0x0E99, 5962 },
+ { 0x0E9A, 5923 },
+ { 0x0E9B, 5965 },
+ { 0x0E9C, 6003 },
+ { 0x0E9D, 5932 },
+ { 0x0E9E, 5999 },
+ { 0x0E9F, 5936 },
+ { 0x0EA1, 5959 },
+ { 0x0EA2, 5982 },
+ { 0x0EA3, 5951 },
+ { 0x0EA5, 5955 },
+ { 0x0EA7, 5979 },
+ { 0x0EAA, 5972 },
+ { 0x0EAB, 5944 },
+ { 0x0EAD, 5920 },
+ { 0x0EAE, 5940 },
+ { 0x0EAF, 6015 },
+ { 0x0EB0, 5854 },
+ { 0x0EB1, 5910 },
+ { 0x0EB2, 5878 },
+ { 0x0EB3, 5886 },
+ { 0x0EB4, 5862 },
+ { 0x0EB5, 5898 },
+ { 0x0EB6, 5874 },
+ { 0x0EB7, 5906 },
+ { 0x0EB8, 5870 },
+ { 0x0EB9, 5902 },
+ { 0x0EBB, 5915 },
+ { 0x0EBC, 6019 },
+ { 0x0EBD, 6023 },
+ { 0x0EC0, 5858 },
+ { 0x0EC1, 5894 },
+ { 0x0EC2, 5866 },
+ { 0x0EC3, 5890 },
+ { 0x0EC4, 5882 },
+ { 0x0EC6, 5805 },
+ { 0x0EC8, 5808 },
+ { 0x0EC9, 5816 },
+ { 0x0ECA, 5812 },
+ { 0x0ECB, 5820 },
+ { 0x0ECC, 6027 },
+ { 0x0ECD, 6017 },
+ { 0x0ED0, 5842 },
+ { 0x0ED1, 5824 },
+ { 0x0ED2, 5830 },
+ { 0x0ED3, 5851 },
+ { 0x0ED4, 5836 },
+ { 0x0ED5, 5833 },
+ { 0x0ED6, 5827 },
+ { 0x0ED7, 5848 },
+ { 0x0ED8, 5845 },
+ { 0x0ED9, 5839 },
+ { 0x0EDC, 5802 },
+ { 0x0EDD, 5799 },
+ { 0x0F00, 44295 },
+ { 0x0F01, 43729 },
+ { 0x0F02, 43720 },
+ { 0x0F03, 43711 },
+ { 0x0F04, 43850 },
+ { 0x0F05, 43831 },
+ { 0x0F06, 43789 },
+ { 0x0F07, 43698 },
+ { 0x0F08, 43820 },
+ { 0x0F09, 43784 },
+ { 0x0F0A, 43705 },
+ { 0x0F0B, 43871 },
+ { 0x0F0C, 43866 },
+ { 0x0F0D, 43770 },
+ { 0x0F0E, 43752 },
+ { 0x0F0F, 43824 },
+ { 0x0F10, 43760 },
+ { 0x0F11, 43688 },
+ { 0x0F12, 43765 },
+ { 0x0F13, 43797 },
+ { 0x0F14, 43736 },
+ { 0x0F15, 44285 },
+ { 0x0F16, 44290 },
+ { 0x0F17, 44477 },
+ { 0x0F18, 44489 },
+ { 0x0F19, 44484 },
+ { 0x0F1A, 43937 },
+ { 0x0F1B, 43953 },
+ { 0x0F1C, 43942 },
+ { 0x0F1D, 43916 },
+ { 0x0F1E, 43932 },
+ { 0x0F1F, 43947 },
+ { 0x0F20, 44030 },
+ { 0x0F21, 43972 },
+ { 0x0F22, 43978 },
+ { 0x0F23, 44039 },
+ { 0x0F24, 43984 },
+ { 0x0F25, 43981 },
+ { 0x0F26, 43975 },
+ { 0x0F27, 44036 },
+ { 0x0F28, 44033 },
+ { 0x0F29, 44027 },
+ { 0x0F2A, 43987 },
+ { 0x0F2B, 43995 },
+ { 0x0F2C, 44023 },
+ { 0x0F2D, 44003 },
+ { 0x0F2E, 43999 },
+ { 0x0F2F, 43991 },
+ { 0x0F30, 44019 },
+ { 0x0F31, 44015 },
+ { 0x0F32, 44007 },
+ { 0x0F33, 44011 },
+ { 0x0F34, 43773 },
+ { 0x0F35, 43740 },
+ { 0x0F36, 43805 },
+ { 0x0F37, 43746 },
+ { 0x0F38, 43674 },
+ { 0x0F39, 43694 },
+ { 0x0F3A, 43683 },
+ { 0x0F3B, 43678 },
+ { 0x0F3C, 43669 },
+ { 0x0F3D, 43664 },
+ { 0x0F3E, 43908 },
+ { 0x0F3F, 43894 },
+ { 0x0F40, 44132 },
+ { 0x0F41, 44183 },
+ { 0x0F42, 44123 },
+ { 0x0F43, 44180 },
+ { 0x0F44, 44189 },
+ { 0x0F45, 44117 },
+ { 0x0F46, 44168 },
+ { 0x0F47, 44129 },
+ { 0x0F49, 44195 },
+ { 0x0F4A, 44216 },
+ { 0x0F4B, 44234 },
+ { 0x0F4C, 44171 },
+ { 0x0F4D, 44222 },
+ { 0x0F4E, 44192 },
+ { 0x0F4F, 44153 },
+ { 0x0F50, 44210 },
+ { 0x0F51, 44120 },
+ { 0x0F52, 44174 },
+ { 0x0F53, 44141 },
+ { 0x0F54, 44144 },
+ { 0x0F55, 44198 },
+ { 0x0F56, 44114 },
+ { 0x0F57, 44165 },
+ { 0x0F58, 44138 },
+ { 0x0F59, 44213 },
+ { 0x0F5A, 44231 },
+ { 0x0F5B, 44177 },
+ { 0x0F5C, 44225 },
+ { 0x0F5D, 44156 },
+ { 0x0F5E, 44219 },
+ { 0x0F5F, 44162 },
+ { 0x0F60, 44111 },
+ { 0x0F61, 44159 },
+ { 0x0F62, 44147 },
+ { 0x0F63, 44135 },
+ { 0x0F64, 44204 },
+ { 0x0F65, 44207 },
+ { 0x0F66, 44150 },
+ { 0x0F67, 44126 },
+ { 0x0F68, 44108 },
+ { 0x0F69, 44228 },
+ { 0x0F6A, 44237 },
+ { 0x0F6B, 44186 },
+ { 0x0F6C, 44201 },
+ { 0x0F71, 44058 },
+ { 0x0F72, 44046 },
+ { 0x0F73, 44066 },
+ { 0x0F74, 44054 },
+ { 0x0F75, 44074 },
+ { 0x0F76, 44083 },
+ { 0x0F77, 44093 },
+ { 0x0F78, 44078 },
+ { 0x0F79, 44088 },
+ { 0x0F7A, 44042 },
+ { 0x0F7B, 44062 },
+ { 0x0F7C, 44050 },
+ { 0x0F7D, 44070 },
+ { 0x0F7E, 43958 },
+ { 0x0F7F, 43964 },
+ { 0x0F80, 44098 },
+ { 0x0F81, 44103 },
+ { 0x0F82, 43898 },
+ { 0x0F83, 43904 },
+ { 0x0F84, 43847 },
+ { 0x0F85, 43828 },
+ { 0x0F86, 43890 },
+ { 0x0F87, 43968 },
+ { 0x0F88, 43885 },
+ { 0x0F89, 43912 },
+ { 0x0F8A, 43875 },
+ { 0x0F8B, 43880 },
+ { 0x0F90, 44330 },
+ { 0x0F91, 44398 },
+ { 0x0F92, 44318 },
+ { 0x0F93, 44394 },
+ { 0x0F94, 44402 },
+ { 0x0F95, 44310 },
+ { 0x0F96, 44378 },
+ { 0x0F97, 44326 },
+ { 0x0F99, 44410 },
+ { 0x0F9A, 44434 },
+ { 0x0F9B, 44458 },
+ { 0x0F9C, 44382 },
+ { 0x0F9D, 44442 },
+ { 0x0F9E, 44406 },
+ { 0x0F9F, 44358 },
+ { 0x0FA0, 44426 },
+ { 0x0FA1, 44314 },
+ { 0x0FA2, 44386 },
+ { 0x0FA3, 44342 },
+ { 0x0FA4, 44346 },
+ { 0x0FA5, 44414 },
+ { 0x0FA6, 44306 },
+ { 0x0FA7, 44374 },
+ { 0x0FA8, 44338 },
+ { 0x0FA9, 44430 },
+ { 0x0FAA, 44454 },
+ { 0x0FAB, 44390 },
+ { 0x0FAC, 44446 },
+ { 0x0FAD, 44362 },
+ { 0x0FAE, 44438 },
+ { 0x0FAF, 44370 },
+ { 0x0FB0, 44302 },
+ { 0x0FB1, 44366 },
+ { 0x0FB2, 44350 },
+ { 0x0FB3, 44334 },
+ { 0x0FB4, 44418 },
+ { 0x0FB5, 44422 },
+ { 0x0FB6, 44354 },
+ { 0x0FB7, 44322 },
+ { 0x0FB8, 44298 },
+ { 0x0FB9, 44450 },
+ { 0x0FBA, 44467 },
+ { 0x0FBB, 44472 },
+ { 0x0FBC, 44462 },
+ { 0x0FBE, 43653 },
+ { 0x0FBF, 43657 },
+ { 0x0FC0, 44504 },
+ { 0x0FC1, 44509 },
+ { 0x0FC2, 44494 },
+ { 0x0FC3, 44499 },
+ { 0x0FC4, 44273 },
+ { 0x0FC5, 44263 },
+ { 0x0FC6, 44281 },
+ { 0x0FC7, 44267 },
+ { 0x0FC8, 44277 },
+ { 0x0FC9, 44241 },
+ { 0x0FCA, 44257 },
+ { 0x0FCB, 44251 },
+ { 0x0FCC, 44245 },
+ { 0x0FCE, 43926 },
+ { 0x0FCF, 43921 },
+ { 0x0FD0, 43777 },
+ { 0x0FD1, 43813 },
+ { 0x0FD2, 43756 },
+ { 0x0FD3, 43857 },
+ { 0x0FD4, 43838 },
+ { 0x1000, 42482 },
+ { 0x1001, 42533 },
+ { 0x1002, 42470 },
+ { 0x1003, 42527 },
+ { 0x1004, 42559 },
+ { 0x1005, 42464 },
+ { 0x1006, 42518 },
+ { 0x1007, 42479 },
+ { 0x1008, 42530 },
+ { 0x1009, 42565 },
+ { 0x100A, 42586 },
+ { 0x100B, 42580 },
+ { 0x100C, 42650 },
+ { 0x100D, 42521 },
+ { 0x100E, 42583 },
+ { 0x100F, 42562 },
+ { 0x1010, 42503 },
+ { 0x1011, 42577 },
+ { 0x1012, 42467 },
+ { 0x1013, 42524 },
+ { 0x1014, 42491 },
+ { 0x1015, 42494 },
+ { 0x1016, 42568 },
+ { 0x1017, 42461 },
+ { 0x1018, 42515 },
+ { 0x1019, 42488 },
+ { 0x101A, 42512 },
+ { 0x101B, 42497 },
+ { 0x101C, 42485 },
+ { 0x101D, 42509 },
+ { 0x101E, 42500 },
+ { 0x101F, 42473 },
+ { 0x1020, 42536 },
+ { 0x1021, 42443 },
+ { 0x1022, 42594 },
+ { 0x1023, 42449 },
+ { 0x1024, 42476 },
+ { 0x1025, 42455 },
+ { 0x1026, 42506 },
+ { 0x1027, 42446 },
+ { 0x1028, 42539 },
+ { 0x1029, 42452 },
+ { 0x102A, 42458 },
+ { 0x102B, 42389 },
+ { 0x102C, 42329 },
+ { 0x102D, 42321 },
+ { 0x102E, 42337 },
+ { 0x102F, 42325 },
+ { 0x1030, 42341 },
+ { 0x1031, 42312 },
+ { 0x1032, 42333 },
+ { 0x1033, 42350 },
+ { 0x1034, 42345 },
+ { 0x1035, 42316 },
+ { 0x1036, 42266 },
+ { 0x1037, 42179 },
+ { 0x1038, 42233 },
+ { 0x1039, 42227 },
+ { 0x103A, 42183 },
+ { 0x103B, 42767 },
+ { 0x103C, 42757 },
+ { 0x103D, 42762 },
+ { 0x103E, 42752 },
+ { 0x103F, 42653 },
+ { 0x1040, 42300 },
+ { 0x1041, 42282 },
+ { 0x1042, 42288 },
+ { 0x1043, 42309 },
+ { 0x1044, 42294 },
+ { 0x1045, 42291 },
+ { 0x1046, 42285 },
+ { 0x1047, 42306 },
+ { 0x1048, 42303 },
+ { 0x1049, 42297 },
+ { 0x104A, 42223 },
+ { 0x104B, 42230 },
+ { 0x104C, 42719 },
+ { 0x104D, 42722 },
+ { 0x104E, 42725 },
+ { 0x104F, 42716 },
+ { 0x1050, 42571 },
+ { 0x1051, 42574 },
+ { 0x1052, 42684 },
+ { 0x1053, 42692 },
+ { 0x1054, 42680 },
+ { 0x1055, 42688 },
+ { 0x1056, 42414 },
+ { 0x1057, 42424 },
+ { 0x1058, 42409 },
+ { 0x1059, 42419 },
+ { 0x105A, 42555 },
+ { 0x105B, 42551 },
+ { 0x105C, 42543 },
+ { 0x105D, 42547 },
+ { 0x105E, 42740 },
+ { 0x105F, 42734 },
+ { 0x1060, 42728 },
+ { 0x1061, 42589 },
+ { 0x1062, 42361 },
+ { 0x1063, 42276 },
+ { 0x1064, 42269 },
+ { 0x1065, 42702 },
+ { 0x1066, 42696 },
+ { 0x1067, 42429 },
+ { 0x1068, 42436 },
+ { 0x1069, 42236 },
+ { 0x106A, 42242 },
+ { 0x106B, 42248 },
+ { 0x106C, 42254 },
+ { 0x106D, 42260 },
+ { 0x106E, 42662 },
+ { 0x106F, 42668 },
+ { 0x1070, 42674 },
+ { 0x1071, 42355 },
+ { 0x1072, 42404 },
+ { 0x1073, 42394 },
+ { 0x1074, 42399 },
+ { 0x1075, 42622 },
+ { 0x1076, 42634 },
+ { 0x1077, 42614 },
+ { 0x1078, 42602 },
+ { 0x1079, 42630 },
+ { 0x107A, 42638 },
+ { 0x107B, 42606 },
+ { 0x107C, 42626 },
+ { 0x107D, 42642 },
+ { 0x107E, 42610 },
+ { 0x107F, 42598 },
+ { 0x1080, 42646 },
+ { 0x1081, 42618 },
+ { 0x1082, 42746 },
+ { 0x1083, 42378 },
+ { 0x1084, 42367 },
+ { 0x1085, 42372 },
+ { 0x1086, 42383 },
+ { 0x1087, 42186 },
+ { 0x1088, 42190 },
+ { 0x1089, 42194 },
+ { 0x108A, 42198 },
+ { 0x108B, 42202 },
+ { 0x108C, 42207 },
+ { 0x108D, 42212 },
+ { 0x108E, 42657 },
+ { 0x108F, 42218 },
+ { 0x1090, 42163 },
+ { 0x1091, 42139 },
+ { 0x1092, 42147 },
+ { 0x1093, 42175 },
+ { 0x1094, 42155 },
+ { 0x1095, 42151 },
+ { 0x1096, 42143 },
+ { 0x1097, 42171 },
+ { 0x1098, 42167 },
+ { 0x1099, 42159 },
+ { 0x109E, 42708 },
+ { 0x109F, 42712 },
+ { 0x10A0, 52068 },
+ { 0x10A1, 52096 },
+ { 0x10A2, 52112 },
+ { 0x10A3, 52108 },
+ { 0x10A4, 52072 },
+ { 0x10A5, 52176 },
+ { 0x10A6, 52184 },
+ { 0x10A7, 52168 },
+ { 0x10A8, 52080 },
+ { 0x10A9, 52136 },
+ { 0x10AA, 52140 },
+ { 0x10AB, 52144 },
+ { 0x10AC, 52148 },
+ { 0x10AD, 52084 },
+ { 0x10AE, 52152 },
+ { 0x10AF, 52216 },
+ { 0x10B0, 52160 },
+ { 0x10B1, 52164 },
+ { 0x10B2, 52172 },
+ { 0x10B3, 52088 },
+ { 0x10B4, 52208 },
+ { 0x10B5, 52204 },
+ { 0x10B6, 52196 },
+ { 0x10B7, 52156 },
+ { 0x10B8, 52212 },
+ { 0x10B9, 52192 },
+ { 0x10BA, 52100 },
+ { 0x10BB, 52132 },
+ { 0x10BC, 52104 },
+ { 0x10BD, 52188 },
+ { 0x10BE, 52180 },
+ { 0x10BF, 52200 },
+ { 0x10C0, 52116 },
+ { 0x10C1, 52076 },
+ { 0x10C2, 52124 },
+ { 0x10C3, 52092 },
+ { 0x10C4, 52120 },
+ { 0x10C5, 52128 },
+ { 0x10D0, 51938 },
+ { 0x10D1, 51968 },
+ { 0x10D2, 51980 },
+ { 0x10D3, 51977 },
+ { 0x10D4, 51941 },
+ { 0x10D5, 52028 },
+ { 0x10D6, 52034 },
+ { 0x10D7, 52022 },
+ { 0x10D8, 51950 },
+ { 0x10D9, 51998 },
+ { 0x10DA, 52001 },
+ { 0x10DB, 52004 },
+ { 0x10DC, 52007 },
+ { 0x10DD, 51953 },
+ { 0x10DE, 52010 },
+ { 0x10DF, 52058 },
+ { 0x10E0, 52016 },
+ { 0x10E1, 52019 },
+ { 0x10E2, 52025 },
+ { 0x10E3, 51956 },
+ { 0x10E4, 52052 },
+ { 0x10E5, 52049 },
+ { 0x10E6, 52043 },
+ { 0x10E7, 52013 },
+ { 0x10E8, 52055 },
+ { 0x10E9, 52040 },
+ { 0x10EA, 51971 },
+ { 0x10EB, 51995 },
+ { 0x10EC, 51974 },
+ { 0x10ED, 52037 },
+ { 0x10EE, 52031 },
+ { 0x10EF, 52046 },
+ { 0x10F0, 51983 },
+ { 0x10F1, 51947 },
+ { 0x10F2, 51989 },
+ { 0x10F3, 51959 },
+ { 0x10F4, 51986 },
+ { 0x10F5, 51992 },
+ { 0x10F6, 51944 },
+ { 0x10F7, 51962 },
+ { 0x10F8, 52061 },
+ { 0x10F9, 52064 },
+ { 0x10FA, 51965 },
+ { 0x10FB, 52220 },
+ { 0x10FC, 54786 },
+ { 0x1100, 32202 },
+ { 0x1101, 32310 },
+ { 0x1102, 32190 },
+ { 0x1103, 32205 },
+ { 0x1104, 32313 },
+ { 0x1105, 32196 },
+ { 0x1106, 32187 },
+ { 0x1107, 32193 },
+ { 0x1108, 32268 },
+ { 0x1109, 32175 },
+ { 0x110A, 32226 },
+ { 0x110B, 32184 },
+ { 0x110C, 32178 },
+ { 0x110D, 32256 },
+ { 0x110E, 32208 },
+ { 0x110F, 32211 },
+ { 0x1110, 32220 },
+ { 0x1111, 32217 },
+ { 0x1112, 32181 },
+ { 0x1113, 32328 },
+ { 0x1114, 32265 },
+ { 0x1115, 32331 },
+ { 0x1116, 32289 },
+ { 0x1117, 32391 },
+ { 0x1118, 32301 },
+ { 0x1119, 32271 },
+ { 0x111A, 32298 },
+ { 0x111B, 32376 },
+ { 0x111C, 32286 },
+ { 0x111D, 32370 },
+ { 0x111E, 32334 },
+ { 0x111F, 32295 },
+ { 0x1120, 32337 },
+ { 0x1121, 32232 },
+ { 0x1122, 32424 },
+ { 0x1123, 32427 },
+ { 0x1124, 32418 },
+ { 0x1125, 32409 },
+ { 0x1126, 32415 },
+ { 0x1127, 32292 },
+ { 0x1128, 32382 },
+ { 0x1129, 32388 },
+ { 0x112A, 32385 },
+ { 0x112B, 32373 },
+ { 0x112C, 32439 },
+ { 0x112D, 32304 },
+ { 0x112E, 32247 },
+ { 0x112F, 32307 },
+ { 0x1130, 32253 },
+ { 0x1131, 32244 },
+ { 0x1132, 32250 },
+ { 0x1133, 32430 },
+ { 0x1134, 32394 },
+ { 0x1135, 32241 },
+ { 0x1136, 32235 },
+ { 0x1137, 32340 },
+ { 0x1138, 32343 },
+ { 0x1139, 32349 },
+ { 0x113A, 32346 },
+ { 0x113B, 32238 },
+ { 0x113C, 32319 },
+ { 0x113D, 32421 },
+ { 0x113E, 32397 },
+ { 0x113F, 32442 },
+ { 0x1140, 32214 },
+ { 0x1141, 32322 },
+ { 0x1142, 32325 },
+ { 0x1143, 32280 },
+ { 0x1144, 32283 },
+ { 0x1145, 32229 },
+ { 0x1146, 32361 },
+ { 0x1147, 32262 },
+ { 0x1148, 32277 },
+ { 0x1149, 32358 },
+ { 0x114A, 32367 },
+ { 0x114B, 32364 },
+ { 0x114C, 32223 },
+ { 0x114D, 32274 },
+ { 0x114E, 32355 },
+ { 0x114F, 32436 },
+ { 0x1150, 32412 },
+ { 0x1151, 32445 },
+ { 0x1152, 32400 },
+ { 0x1153, 32352 },
+ { 0x1154, 32403 },
+ { 0x1155, 32433 },
+ { 0x1156, 32379 },
+ { 0x1157, 32406 },
+ { 0x1158, 32259 },
+ { 0x1159, 32316 },
+ { 0x115F, 32199 },
+ { 0x1160, 32865 },
+ { 0x1161, 32694 },
+ { 0x1162, 32709 },
+ { 0x1163, 32730 },
+ { 0x1164, 32781 },
+ { 0x1165, 32712 },
+ { 0x1166, 32697 },
+ { 0x1167, 32784 },
+ { 0x1168, 32733 },
+ { 0x1169, 32703 },
+ { 0x116A, 32721 },
+ { 0x116B, 32775 },
+ { 0x116C, 32718 },
+ { 0x116D, 32739 },
+ { 0x116E, 32706 },
+ { 0x116F, 32778 },
+ { 0x1170, 32724 },
+ { 0x1171, 32727 },
+ { 0x1172, 32742 },
+ { 0x1173, 32715 },
+ { 0x1174, 32736 },
+ { 0x1175, 32700 },
+ { 0x1176, 32745 },
+ { 0x1177, 32748 },
+ { 0x1178, 32814 },
+ { 0x1179, 32847 },
+ { 0x117A, 32787 },
+ { 0x117B, 32790 },
+ { 0x117C, 32841 },
+ { 0x117D, 32850 },
+ { 0x117E, 32853 },
+ { 0x117F, 32802 },
+ { 0x1180, 32760 },
+ { 0x1181, 32805 },
+ { 0x1182, 32763 },
+ { 0x1183, 32766 },
+ { 0x1184, 32856 },
+ { 0x1185, 32868 },
+ { 0x1186, 32871 },
+ { 0x1187, 32823 },
+ { 0x1188, 32820 },
+ { 0x1189, 32769 },
+ { 0x118A, 32808 },
+ { 0x118B, 32886 },
+ { 0x118C, 32811 },
+ { 0x118D, 32772 },
+ { 0x118E, 32826 },
+ { 0x118F, 32859 },
+ { 0x1190, 32829 },
+ { 0x1191, 32874 },
+ { 0x1192, 32862 },
+ { 0x1193, 32835 },
+ { 0x1194, 32832 },
+ { 0x1195, 32793 },
+ { 0x1196, 32844 },
+ { 0x1197, 32817 },
+ { 0x1198, 32751 },
+ { 0x1199, 32799 },
+ { 0x119A, 32754 },
+ { 0x119B, 32757 },
+ { 0x119C, 32796 },
+ { 0x119D, 32883 },
+ { 0x119E, 32838 },
+ { 0x119F, 32889 },
+ { 0x11A0, 32880 },
+ { 0x11A1, 32877 },
+ { 0x11A2, 32892 },
+ { 0x11A8, 32472 },
+ { 0x11A9, 32577 },
+ { 0x11AA, 32535 },
+ { 0x11AB, 32463 },
+ { 0x11AC, 32547 },
+ { 0x11AD, 32550 },
+ { 0x11AE, 32475 },
+ { 0x11AF, 32469 },
+ { 0x11B0, 32598 },
+ { 0x11B1, 32562 },
+ { 0x11B2, 32568 },
+ { 0x11B3, 32508 },
+ { 0x11B4, 32643 },
+ { 0x11B5, 32640 },
+ { 0x11B6, 32559 },
+ { 0x11B7, 32460 },
+ { 0x11B8, 32466 },
+ { 0x11B9, 32505 },
+ { 0x11BA, 32448 },
+ { 0x11BB, 32496 },
+ { 0x11BC, 32457 },
+ { 0x11BD, 32451 },
+ { 0x11BE, 32478 },
+ { 0x11BF, 32481 },
+ { 0x11C0, 32490 },
+ { 0x11C1, 32487 },
+ { 0x11C2, 32454 },
+ { 0x11C3, 32586 },
+ { 0x11C4, 32682 },
+ { 0x11C5, 32592 },
+ { 0x11C6, 32595 },
+ { 0x11C7, 32502 },
+ { 0x11C8, 32622 },
+ { 0x11C9, 32625 },
+ { 0x11CA, 32646 },
+ { 0x11CB, 32604 },
+ { 0x11CC, 32673 },
+ { 0x11CD, 32565 },
+ { 0x11CE, 32601 },
+ { 0x11CF, 32688 },
+ { 0x11D0, 32520 },
+ { 0x11D1, 32685 },
+ { 0x11D2, 32661 },
+ { 0x11D3, 32664 },
+ { 0x11D4, 32676 },
+ { 0x11D5, 32691 },
+ { 0x11D6, 32658 },
+ { 0x11D7, 32637 },
+ { 0x11D8, 32634 },
+ { 0x11D9, 32679 },
+ { 0x11DA, 32589 },
+ { 0x11DB, 32544 },
+ { 0x11DC, 32541 },
+ { 0x11DD, 32499 },
+ { 0x11DE, 32655 },
+ { 0x11DF, 32619 },
+ { 0x11E0, 32616 },
+ { 0x11E1, 32538 },
+ { 0x11E2, 32610 },
+ { 0x11E3, 32556 },
+ { 0x11E4, 32631 },
+ { 0x11E5, 32553 },
+ { 0x11E6, 32613 },
+ { 0x11E7, 32571 },
+ { 0x11E8, 32574 },
+ { 0x11E9, 32514 },
+ { 0x11EA, 32511 },
+ { 0x11EB, 32484 },
+ { 0x11EC, 32583 },
+ { 0x11ED, 32670 },
+ { 0x11EE, 32517 },
+ { 0x11EF, 32607 },
+ { 0x11F0, 32493 },
+ { 0x11F1, 32649 },
+ { 0x11F2, 32667 },
+ { 0x11F3, 32628 },
+ { 0x11F4, 32652 },
+ { 0x11F5, 32526 },
+ { 0x11F6, 32532 },
+ { 0x11F7, 32523 },
+ { 0x11F8, 32529 },
+ { 0x11F9, 32580 },
+ { 0x1200, 50516 },
+ { 0x1201, 50528 },
+ { 0x1202, 50522 },
+ { 0x1203, 50909 },
+ { 0x1204, 50912 },
+ { 0x1205, 50519 },
+ { 0x1206, 50525 },
+ { 0x1207, 50930 },
+ { 0x1208, 50561 },
+ { 0x1209, 50573 },
+ { 0x120A, 50567 },
+ { 0x120B, 50993 },
+ { 0x120C, 50996 },
+ { 0x120D, 50564 },
+ { 0x120E, 50570 },
+ { 0x120F, 51002 },
+ { 0x1210, 50915 },
+ { 0x1211, 50927 },
+ { 0x1212, 50921 },
+ { 0x1213, 51443 },
+ { 0x1214, 51446 },
+ { 0x1215, 50918 },
+ { 0x1216, 50924 },
+ { 0x1217, 51449 },
+ { 0x1218, 50576 },
+ { 0x1219, 50588 },
+ { 0x121A, 50582 },
+ { 0x121B, 51005 },
+ { 0x121C, 51008 },
+ { 0x121D, 50579 },
+ { 0x121E, 50585 },
+ { 0x121F, 51014 },
+ { 0x1220, 51191 },
+ { 0x1221, 51203 },
+ { 0x1222, 51197 },
+ { 0x1223, 51554 },
+ { 0x1224, 51557 },
+ { 0x1225, 51194 },
+ { 0x1226, 51200 },
+ { 0x1227, 51560 },
+ { 0x1228, 50636 },
+ { 0x1229, 50648 },
+ { 0x122A, 50642 },
+ { 0x122B, 51134 },
+ { 0x122C, 51137 },
+ { 0x122D, 50639 },
+ { 0x122E, 50645 },
+ { 0x122F, 51143 },
+ { 0x1230, 50651 },
+ { 0x1231, 50663 },
+ { 0x1232, 50657 },
+ { 0x1233, 51149 },
+ { 0x1234, 51152 },
+ { 0x1235, 50654 },
+ { 0x1236, 50660 },
+ { 0x1237, 51188 },
+ { 0x1238, 51155 },
+ { 0x1239, 51167 },
+ { 0x123A, 51161 },
+ { 0x123B, 51536 },
+ { 0x123C, 51539 },
+ { 0x123D, 51158 },
+ { 0x123E, 51164 },
+ { 0x123F, 51545 },
+ { 0x1240, 50621 },
+ { 0x1241, 50633 },
+ { 0x1242, 50627 },
+ { 0x1243, 51086 },
+ { 0x1244, 51089 },
+ { 0x1245, 50624 },
+ { 0x1246, 50630 },
+ { 0x1247, 51107 },
+ { 0x1248, 51110 },
+ { 0x124A, 51116 },
+ { 0x124B, 51524 },
+ { 0x124C, 51527 },
+ { 0x124D, 51113 },
+ { 0x1250, 51092 },
+ { 0x1251, 51104 },
+ { 0x1252, 51098 },
+ { 0x1253, 51509 },
+ { 0x1254, 51512 },
+ { 0x1255, 51095 },
+ { 0x1256, 51101 },
+ { 0x1258, 51515 },
+ { 0x125A, 51521 },
+ { 0x125B, 51638 },
+ { 0x125C, 51641 },
+ { 0x125D, 51518 },
+ { 0x1260, 50441 },
+ { 0x1261, 50453 },
+ { 0x1262, 50447 },
+ { 0x1263, 50756 },
+ { 0x1264, 50759 },
+ { 0x1265, 50444 },
+ { 0x1266, 50450 },
+ { 0x1267, 50765 },
+ { 0x1268, 50681 },
+ { 0x1269, 50693 },
+ { 0x126A, 50687 },
+ { 0x126B, 51263 },
+ { 0x126C, 51266 },
+ { 0x126D, 50684 },
+ { 0x126E, 50690 },
+ { 0x126F, 51269 },
+ { 0x1270, 50666 },
+ { 0x1271, 50678 },
+ { 0x1272, 50672 },
+ { 0x1273, 51206 },
+ { 0x1274, 51209 },
+ { 0x1275, 50669 },
+ { 0x1276, 50675 },
+ { 0x1277, 51245 },
+ { 0x1278, 50456 },
+ { 0x1279, 50468 },
+ { 0x127A, 50462 },
+ { 0x127B, 50774 },
+ { 0x127C, 50792 },
+ { 0x127D, 50459 },
+ { 0x127E, 50465 },
+ { 0x127F, 50813 },
+ { 0x1280, 50711 },
+ { 0x1281, 50723 },
+ { 0x1282, 50717 },
+ { 0x1283, 51281 },
+ { 0x1284, 51284 },
+ { 0x1285, 50714 },
+ { 0x1286, 50720 },
+ { 0x1287, 51287 },
+ { 0x1288, 51290 },
+ { 0x128A, 51296 },
+ { 0x128B, 51593 },
+ { 0x128C, 51596 },
+ { 0x128D, 51293 },
+ { 0x1290, 50591 },
+ { 0x1291, 50603 },
+ { 0x1292, 50597 },
+ { 0x1293, 51026 },
+ { 0x1294, 51029 },
+ { 0x1295, 50594 },
+ { 0x1296, 50600 },
+ { 0x1297, 51035 },
+ { 0x1298, 51038 },
+ { 0x1299, 51050 },
+ { 0x129A, 51044 },
+ { 0x129B, 51482 },
+ { 0x129C, 51485 },
+ { 0x129D, 51041 },
+ { 0x129E, 51047 },
+ { 0x129F, 51491 },
+ { 0x12A0, 51644 },
+ { 0x12A1, 51660 },
+ { 0x12A2, 51652 },
+ { 0x12A3, 51664 },
+ { 0x12A4, 51668 },
+ { 0x12A5, 51648 },
+ { 0x12A6, 51656 },
+ { 0x12A7, 51676 },
+ { 0x12A8, 50546 },
+ { 0x12A9, 50558 },
+ { 0x12AA, 50552 },
+ { 0x12AB, 50945 },
+ { 0x12AC, 50948 },
+ { 0x12AD, 50549 },
+ { 0x12AE, 50555 },
+ { 0x12AF, 50951 },
+ { 0x12B0, 50954 },
+ { 0x12B2, 50960 },
+ { 0x12B3, 51452 },
+ { 0x12B4, 51455 },
+ { 0x12B5, 50957 },
+ { 0x12B8, 50963 },
+ { 0x12B9, 50975 },
+ { 0x12BA, 50969 },
+ { 0x12BB, 51458 },
+ { 0x12BC, 51461 },
+ { 0x12BD, 50966 },
+ { 0x12BE, 50972 },
+ { 0x12C0, 51464 },
+ { 0x12C2, 51470 },
+ { 0x12C3, 51632 },
+ { 0x12C4, 51635 },
+ { 0x12C5, 51467 },
+ { 0x12C8, 50696 },
+ { 0x12C9, 50708 },
+ { 0x12CA, 50702 },
+ { 0x12CB, 51272 },
+ { 0x12CC, 51275 },
+ { 0x12CD, 50699 },
+ { 0x12CE, 50705 },
+ { 0x12CF, 51278 },
+ { 0x12D0, 51696 },
+ { 0x12D1, 51712 },
+ { 0x12D2, 51704 },
+ { 0x12D3, 51716 },
+ { 0x12D4, 51720 },
+ { 0x12D5, 51700 },
+ { 0x12D6, 51708 },
+ { 0x12D8, 50741 },
+ { 0x12D9, 50753 },
+ { 0x12DA, 50747 },
+ { 0x12DB, 51323 },
+ { 0x12DC, 51326 },
+ { 0x12DD, 50744 },
+ { 0x12DE, 50750 },
+ { 0x12DF, 51347 },
+ { 0x12E0, 51329 },
+ { 0x12E1, 51341 },
+ { 0x12E2, 51335 },
+ { 0x12E3, 51605 },
+ { 0x12E4, 51608 },
+ { 0x12E5, 51332 },
+ { 0x12E6, 51338 },
+ { 0x12E7, 51611 },
+ { 0x12E8, 50726 },
+ { 0x12E9, 50738 },
+ { 0x12EA, 50732 },
+ { 0x12EB, 51314 },
+ { 0x12EC, 51317 },
+ { 0x12ED, 50729 },
+ { 0x12EE, 50735 },
+ { 0x12EF, 51320 },
+ { 0x12F0, 50471 },
+ { 0x12F1, 50483 },
+ { 0x12F2, 50477 },
+ { 0x12F3, 50816 },
+ { 0x12F4, 50834 },
+ { 0x12F5, 50474 },
+ { 0x12F6, 50480 },
+ { 0x12F7, 50840 },
+ { 0x12F8, 50819 },
+ { 0x12F9, 50831 },
+ { 0x12FA, 50825 },
+ { 0x12FB, 51401 },
+ { 0x12FC, 51404 },
+ { 0x12FD, 50822 },
+ { 0x12FE, 50828 },
+ { 0x12FF, 51410 },
+ { 0x1300, 50531 },
+ { 0x1301, 50543 },
+ { 0x1302, 50537 },
+ { 0x1303, 50933 },
+ { 0x1304, 50936 },
+ { 0x1305, 50534 },
+ { 0x1306, 50540 },
+ { 0x1307, 50942 },
+ { 0x1308, 50501 },
+ { 0x1309, 50513 },
+ { 0x130A, 50507 },
+ { 0x130B, 50861 },
+ { 0x130C, 50864 },
+ { 0x130D, 50504 },
+ { 0x130E, 50510 },
+ { 0x130F, 50882 },
+ { 0x1310, 50885 },
+ { 0x1312, 50891 },
+ { 0x1313, 51431 },
+ { 0x1314, 51434 },
+ { 0x1315, 50888 },
+ { 0x1318, 50867 },
+ { 0x1319, 50879 },
+ { 0x131A, 50873 },
+ { 0x131B, 51416 },
+ { 0x131C, 51419 },
+ { 0x131D, 50870 },
+ { 0x131E, 50876 },
+ { 0x131F, 51626 },
+ { 0x1320, 51212 },
+ { 0x1321, 51224 },
+ { 0x1322, 51218 },
+ { 0x1323, 51563 },
+ { 0x1324, 51566 },
+ { 0x1325, 51215 },
+ { 0x1326, 51221 },
+ { 0x1327, 51572 },
+ { 0x1328, 50795 },
+ { 0x1329, 50807 },
+ { 0x132A, 50801 },
+ { 0x132B, 51389 },
+ { 0x132C, 51392 },
+ { 0x132D, 50798 },
+ { 0x132E, 50804 },
+ { 0x132F, 51398 },
+ { 0x1330, 51059 },
+ { 0x1331, 51071 },
+ { 0x1332, 51065 },
+ { 0x1333, 51494 },
+ { 0x1334, 51497 },
+ { 0x1335, 51062 },
+ { 0x1336, 51068 },
+ { 0x1337, 51503 },
+ { 0x1338, 51230 },
+ { 0x1339, 51242 },
+ { 0x133A, 51236 },
+ { 0x133B, 51575 },
+ { 0x133C, 51578 },
+ { 0x133D, 51233 },
+ { 0x133E, 51239 },
+ { 0x133F, 51581 },
+ { 0x1340, 51248 },
+ { 0x1341, 51260 },
+ { 0x1342, 51254 },
+ { 0x1343, 51584 },
+ { 0x1344, 51587 },
+ { 0x1345, 51251 },
+ { 0x1346, 51257 },
+ { 0x1347, 51590 },
+ { 0x1348, 50486 },
+ { 0x1349, 50498 },
+ { 0x134A, 50492 },
+ { 0x134B, 50843 },
+ { 0x134C, 50846 },
+ { 0x134D, 50489 },
+ { 0x134E, 50495 },
+ { 0x134F, 50849 },
+ { 0x1350, 50606 },
+ { 0x1351, 50618 },
+ { 0x1352, 50612 },
+ { 0x1353, 51053 },
+ { 0x1354, 51056 },
+ { 0x1355, 50609 },
+ { 0x1356, 50615 },
+ { 0x1357, 51077 },
+ { 0x1358, 51146 },
+ { 0x1359, 51023 },
+ { 0x135A, 50858 },
+ { 0x135F, 51724 },
+ { 0x1360, 50435 },
+ { 0x1361, 51733 },
+ { 0x1362, 50323 },
+ { 0x1363, 50328 },
+ { 0x1364, 51731 },
+ { 0x1365, 50326 },
+ { 0x1366, 50432 },
+ { 0x1367, 50438 },
+ { 0x1368, 51728 },
+ { 0x1369, 50330 },
+ { 0x136A, 50336 },
+ { 0x136B, 50354 },
+ { 0x136C, 50342 },
+ { 0x136D, 50339 },
+ { 0x136E, 50333 },
+ { 0x136F, 50351 },
+ { 0x1370, 50348 },
+ { 0x1371, 50345 },
+ { 0x1372, 50398 },
+ { 0x1373, 50423 },
+ { 0x1374, 50420 },
+ { 0x1375, 50408 },
+ { 0x1376, 50405 },
+ { 0x1377, 50411 },
+ { 0x1378, 50429 },
+ { 0x1379, 50414 },
+ { 0x137A, 50417 },
+ { 0x137B, 50426 },
+ { 0x137C, 50401 },
+ { 0x1380, 51688 },
+ { 0x1381, 51020 },
+ { 0x1382, 51479 },
+ { 0x1383, 51017 },
+ { 0x1384, 51680 },
+ { 0x1385, 50771 },
+ { 0x1386, 51365 },
+ { 0x1387, 50768 },
+ { 0x1388, 51684 },
+ { 0x1389, 50855 },
+ { 0x138A, 51413 },
+ { 0x138B, 50852 },
+ { 0x138C, 51692 },
+ { 0x138D, 51083 },
+ { 0x138E, 51506 },
+ { 0x138F, 51080 },
+ { 0x1390, 50382 },
+ { 0x1391, 50361 },
+ { 0x1392, 50390 },
+ { 0x1393, 50377 },
+ { 0x1394, 50365 },
+ { 0x1395, 50373 },
+ { 0x1396, 50386 },
+ { 0x1397, 50369 },
+ { 0x1398, 50394 },
+ { 0x1399, 50357 },
+ { 0x13A0, 48143 },
+ { 0x13A1, 48146 },
+ { 0x13A2, 48149 },
+ { 0x13A3, 48152 },
+ { 0x13A4, 48158 },
+ { 0x13A5, 48161 },
+ { 0x13A6, 48182 },
+ { 0x13A7, 48218 },
+ { 0x13A8, 48185 },
+ { 0x13A9, 48188 },
+ { 0x13AA, 48191 },
+ { 0x13AB, 48194 },
+ { 0x13AC, 48197 },
+ { 0x13AD, 48200 },
+ { 0x13AE, 48203 },
+ { 0x13AF, 48206 },
+ { 0x13B0, 48209 },
+ { 0x13B1, 48212 },
+ { 0x13B2, 48215 },
+ { 0x13B3, 48221 },
+ { 0x13B4, 48224 },
+ { 0x13B5, 48227 },
+ { 0x13B6, 48230 },
+ { 0x13B7, 48233 },
+ { 0x13B8, 48236 },
+ { 0x13B9, 48239 },
+ { 0x13BA, 48242 },
+ { 0x13BB, 48245 },
+ { 0x13BC, 48248 },
+ { 0x13BD, 48251 },
+ { 0x13BE, 48254 },
+ { 0x13BF, 48338 },
+ { 0x13C0, 48341 },
+ { 0x13C1, 48257 },
+ { 0x13C2, 48260 },
+ { 0x13C3, 48263 },
+ { 0x13C4, 48266 },
+ { 0x13C5, 48269 },
+ { 0x13C6, 48344 },
+ { 0x13C7, 48347 },
+ { 0x13C8, 48350 },
+ { 0x13C9, 48353 },
+ { 0x13CA, 48356 },
+ { 0x13CB, 48359 },
+ { 0x13CC, 48272 },
+ { 0x13CD, 48155 },
+ { 0x13CE, 48275 },
+ { 0x13CF, 48278 },
+ { 0x13D0, 48281 },
+ { 0x13D1, 48284 },
+ { 0x13D2, 48287 },
+ { 0x13D3, 48164 },
+ { 0x13D4, 48290 },
+ { 0x13D5, 48167 },
+ { 0x13D6, 48293 },
+ { 0x13D7, 48170 },
+ { 0x13D8, 48296 },
+ { 0x13D9, 48173 },
+ { 0x13DA, 48176 },
+ { 0x13DB, 48179 },
+ { 0x13DC, 48335 },
+ { 0x13DD, 48362 },
+ { 0x13DE, 48365 },
+ { 0x13DF, 48368 },
+ { 0x13E0, 48371 },
+ { 0x13E1, 48374 },
+ { 0x13E2, 48377 },
+ { 0x13E3, 48380 },
+ { 0x13E4, 48383 },
+ { 0x13E5, 48386 },
+ { 0x13E6, 48389 },
+ { 0x13E7, 48392 },
+ { 0x13E8, 48395 },
+ { 0x13E9, 48299 },
+ { 0x13EA, 48302 },
+ { 0x13EB, 48305 },
+ { 0x13EC, 48308 },
+ { 0x13ED, 48311 },
+ { 0x13EE, 48314 },
+ { 0x13EF, 48317 },
+ { 0x13F0, 48320 },
+ { 0x13F1, 48323 },
+ { 0x13F2, 48326 },
+ { 0x13F3, 48329 },
+ { 0x13F4, 48332 },
+ { 0x1401, 45872 },
+ { 0x1402, 46118 },
+ { 0x1403, 45878 },
+ { 0x1404, 45953 },
+ { 0x1405, 45893 },
+ { 0x1406, 46025 },
+ { 0x1407, 46790 },
+ { 0x1408, 46858 },
+ { 0x1409, 46842 },
+ { 0x140A, 45866 },
+ { 0x140B, 45914 },
+ { 0x140C, 46097 },
+ { 0x140D, 47791 },
+ { 0x140E, 46100 },
+ { 0x140F, 47795 },
+ { 0x1410, 46392 },
+ { 0x1411, 47927 },
+ { 0x1412, 46103 },
+ { 0x1413, 47799 },
+ { 0x1414, 46395 },
+ { 0x1415, 47931 },
+ { 0x1416, 47555 },
+ { 0x1417, 46094 },
+ { 0x1418, 47787 },
+ { 0x1419, 46389 },
+ { 0x141A, 47923 },
+ { 0x141B, 47551 },
+ { 0x141C, 45917 },
+ { 0x141D, 46786 },
+ { 0x141E, 47539 },
+ { 0x141F, 46643 },
+ { 0x1420, 46647 },
+ { 0x1421, 46663 },
+ { 0x1422, 46624 },
+ { 0x1423, 46651 },
+ { 0x1424, 46639 },
+ { 0x1425, 46669 },
+ { 0x1426, 46674 },
+ { 0x1427, 46681 },
+ { 0x1428, 46657 },
+ { 0x1429, 46635 },
+ { 0x142A, 46630 },
+ { 0x142B, 45935 },
+ { 0x142C, 45956 },
+ { 0x142D, 46022 },
+ { 0x142E, 45920 },
+ { 0x142F, 46031 },
+ { 0x1430, 46513 },
+ { 0x1431, 46034 },
+ { 0x1432, 46257 },
+ { 0x1433, 46037 },
+ { 0x1434, 46260 },
+ { 0x1435, 46814 },
+ { 0x1436, 47186 },
+ { 0x1437, 46882 },
+ { 0x1438, 46028 },
+ { 0x1439, 46254 },
+ { 0x143A, 46266 },
+ { 0x143B, 47879 },
+ { 0x143C, 46269 },
+ { 0x143D, 47883 },
+ { 0x143E, 46519 },
+ { 0x143F, 48011 },
+ { 0x1440, 46272 },
+ { 0x1441, 47887 },
+ { 0x1442, 46522 },
+ { 0x1443, 48015 },
+ { 0x1444, 46263 },
+ { 0x1445, 47875 },
+ { 0x1446, 46516 },
+ { 0x1447, 48007 },
+ { 0x1448, 46830 },
+ { 0x1449, 45896 },
+ { 0x144A, 47747 },
+ { 0x144B, 46838 },
+ { 0x144C, 46082 },
+ { 0x144D, 46567 },
+ { 0x144E, 46088 },
+ { 0x144F, 46344 },
+ { 0x1450, 46091 },
+ { 0x1451, 46347 },
+ { 0x1452, 46822 },
+ { 0x1453, 47118 },
+ { 0x1454, 46854 },
+ { 0x1455, 46079 },
+ { 0x1456, 46329 },
+ { 0x1457, 46368 },
+ { 0x1458, 47911 },
+ { 0x1459, 46371 },
+ { 0x145A, 47915 },
+ { 0x145B, 46606 },
+ { 0x145C, 48055 },
+ { 0x145D, 46374 },
+ { 0x145E, 47919 },
+ { 0x145F, 46609 },
+ { 0x1460, 48059 },
+ { 0x1461, 46365 },
+ { 0x1462, 47907 },
+ { 0x1463, 46603 },
+ { 0x1464, 48051 },
+ { 0x1465, 47595 },
+ { 0x1466, 45908 },
+ { 0x1467, 46353 },
+ { 0x1468, 46359 },
+ { 0x1469, 46362 },
+ { 0x146A, 46350 },
+ { 0x146B, 45962 },
+ { 0x146C, 46441 },
+ { 0x146D, 45965 },
+ { 0x146E, 46158 },
+ { 0x146F, 45968 },
+ { 0x1470, 46161 },
+ { 0x1471, 46798 },
+ { 0x1472, 45959 },
+ { 0x1473, 46155 },
+ { 0x1474, 46167 },
+ { 0x1475, 47823 },
+ { 0x1476, 46170 },
+ { 0x1477, 47827 },
+ { 0x1478, 46447 },
+ { 0x1479, 47971 },
+ { 0x147A, 46173 },
+ { 0x147B, 47831 },
+ { 0x147C, 46450 },
+ { 0x147D, 47975 },
+ { 0x147E, 46164 },
+ { 0x147F, 47819 },
+ { 0x1480, 46444 },
+ { 0x1481, 47967 },
+ { 0x1482, 47563 },
+ { 0x1483, 45881 },
+ { 0x1484, 45971 },
+ { 0x1485, 48131 },
+ { 0x1486, 48135 },
+ { 0x1487, 48139 },
+ { 0x1488, 48127 },
+ { 0x1489, 45926 },
+ { 0x148A, 46419 },
+ { 0x148B, 45929 },
+ { 0x148C, 46128 },
+ { 0x148D, 45932 },
+ { 0x148E, 46131 },
+ { 0x148F, 46794 },
+ { 0x1490, 45923 },
+ { 0x1491, 46121 },
+ { 0x1492, 46137 },
+ { 0x1493, 47807 },
+ { 0x1494, 46140 },
+ { 0x1495, 47811 },
+ { 0x1496, 46425 },
+ { 0x1497, 47955 },
+ { 0x1498, 46143 },
+ { 0x1499, 47815 },
+ { 0x149A, 46428 },
+ { 0x149B, 47959 },
+ { 0x149C, 46134 },
+ { 0x149D, 47803 },
+ { 0x149E, 46422 },
+ { 0x149F, 47951 },
+ { 0x14A0, 47559 },
+ { 0x14A1, 45869 },
+ { 0x14A2, 46762 },
+ { 0x14A3, 45992 },
+ { 0x14A4, 46474 },
+ { 0x14A5, 45998 },
+ { 0x14A6, 46209 },
+ { 0x14A7, 46001 },
+ { 0x14A8, 46212 },
+ { 0x14A9, 46806 },
+ { 0x14AA, 45989 },
+ { 0x14AB, 46206 },
+ { 0x14AC, 46218 },
+ { 0x14AD, 47855 },
+ { 0x14AE, 46221 },
+ { 0x14AF, 47859 },
+ { 0x14B0, 46480 },
+ { 0x14B1, 47995 },
+ { 0x14B2, 46224 },
+ { 0x14B3, 47863 },
+ { 0x14B4, 46483 },
+ { 0x14B5, 47999 },
+ { 0x14B6, 46215 },
+ { 0x14B7, 47851 },
+ { 0x14B8, 46477 },
+ { 0x14B9, 47991 },
+ { 0x14BA, 47567 },
+ { 0x14BB, 45887 },
+ { 0x14BC, 47743 },
+ { 0x14BD, 45995 },
+ { 0x14BE, 48091 },
+ { 0x14BF, 46734 },
+ { 0x14C0, 46007 },
+ { 0x14C1, 46486 },
+ { 0x14C2, 46016 },
+ { 0x14C3, 46239 },
+ { 0x14C4, 46019 },
+ { 0x14C5, 46245 },
+ { 0x14C6, 46810 },
+ { 0x14C7, 46004 },
+ { 0x14C8, 46227 },
+ { 0x14C9, 46251 },
+ { 0x14CA, 47871 },
+ { 0x14CB, 46248 },
+ { 0x14CC, 47867 },
+ { 0x14CD, 46510 },
+ { 0x14CE, 48003 },
+ { 0x14CF, 47571 },
+ { 0x14D0, 45890 },
+ { 0x14D1, 46958 },
+ { 0x14D2, 46013 },
+ { 0x14D3, 45977 },
+ { 0x14D4, 46453 },
+ { 0x14D5, 45983 },
+ { 0x14D6, 46188 },
+ { 0x14D7, 45986 },
+ { 0x14D8, 46191 },
+ { 0x14D9, 46802 },
+ { 0x14DA, 45974 },
+ { 0x14DB, 46176 },
+ { 0x14DC, 46197 },
+ { 0x14DD, 47839 },
+ { 0x14DE, 46200 },
+ { 0x14DF, 47843 },
+ { 0x14E0, 46468 },
+ { 0x14E1, 47983 },
+ { 0x14E2, 46203 },
+ { 0x14E3, 47847 },
+ { 0x14E4, 46471 },
+ { 0x14E5, 47987 },
+ { 0x14E6, 46194 },
+ { 0x14E7, 47835 },
+ { 0x14E8, 46465 },
+ { 0x14E9, 47979 },
+ { 0x14EA, 45884 },
+ { 0x14EB, 47739 },
+ { 0x14EC, 46710 },
+ { 0x14ED, 46064 },
+ { 0x14EE, 46534 },
+ { 0x14EF, 46070 },
+ { 0x14F0, 46311 },
+ { 0x14F1, 46073 },
+ { 0x14F2, 46314 },
+ { 0x14F3, 46818 },
+ { 0x14F4, 46061 },
+ { 0x14F5, 46296 },
+ { 0x14F6, 46320 },
+ { 0x14F7, 47895 },
+ { 0x14F8, 46323 },
+ { 0x14F9, 47899 },
+ { 0x14FA, 46561 },
+ { 0x14FB, 48043 },
+ { 0x14FC, 46326 },
+ { 0x14FD, 47903 },
+ { 0x14FE, 46564 },
+ { 0x14FF, 48047 },
+ { 0x1500, 46317 },
+ { 0x1501, 47891 },
+ { 0x1502, 46558 },
+ { 0x1503, 48039 },
+ { 0x1504, 47591 },
+ { 0x1505, 45905 },
+ { 0x1506, 48095 },
+ { 0x1507, 46076 },
+ { 0x1508, 47687 },
+ { 0x1509, 48103 },
+ { 0x150A, 47547 },
+ { 0x150B, 47543 },
+ { 0x150C, 47583 },
+ { 0x150D, 47587 },
+ { 0x150E, 47579 },
+ { 0x150F, 47575 },
+ { 0x1510, 46302 },
+ { 0x1511, 46305 },
+ { 0x1512, 46540 },
+ { 0x1513, 46308 },
+ { 0x1514, 46543 },
+ { 0x1515, 46299 },
+ { 0x1516, 46537 },
+ { 0x1517, 46549 },
+ { 0x1518, 48027 },
+ { 0x1519, 46552 },
+ { 0x151A, 48031 },
+ { 0x151B, 46701 },
+ { 0x151C, 48079 },
+ { 0x151D, 46555 },
+ { 0x151E, 48035 },
+ { 0x151F, 46704 },
+ { 0x1520, 48083 },
+ { 0x1521, 46546 },
+ { 0x1522, 48023 },
+ { 0x1523, 46698 },
+ { 0x1524, 48075 },
+ { 0x1525, 46067 },
+ { 0x1526, 46109 },
+ { 0x1527, 46612 },
+ { 0x1528, 46112 },
+ { 0x1529, 46401 },
+ { 0x152A, 46115 },
+ { 0x152B, 46404 },
+ { 0x152C, 46826 },
+ { 0x152D, 46106 },
+ { 0x152E, 46398 },
+ { 0x152F, 46410 },
+ { 0x1530, 47939 },
+ { 0x1531, 46413 },
+ { 0x1532, 47943 },
+ { 0x1533, 46618 },
+ { 0x1534, 48067 },
+ { 0x1535, 46416 },
+ { 0x1536, 47947 },
+ { 0x1537, 46621 },
+ { 0x1538, 48071 },
+ { 0x1539, 46407 },
+ { 0x153A, 47935 },
+ { 0x153B, 46615 },
+ { 0x153C, 48063 },
+ { 0x153D, 47599 },
+ { 0x153E, 45911 },
+ { 0x153F, 48099 },
+ { 0x1540, 47755 },
+ { 0x1541, 46766 },
+ { 0x1542, 46052 },
+ { 0x1543, 46730 },
+ { 0x1544, 47763 },
+ { 0x1545, 46528 },
+ { 0x1546, 46055 },
+ { 0x1547, 46290 },
+ { 0x1548, 46058 },
+ { 0x1549, 46293 },
+ { 0x154A, 47767 },
+ { 0x154B, 46049 },
+ { 0x154C, 46287 },
+ { 0x154D, 47759 },
+ { 0x154E, 46531 },
+ { 0x154F, 48019 },
+ { 0x1550, 45902 },
+ { 0x1551, 47751 },
+ { 0x1552, 46714 },
+ { 0x1553, 45941 },
+ { 0x1554, 46431 },
+ { 0x1555, 45944 },
+ { 0x1556, 46149 },
+ { 0x1557, 45947 },
+ { 0x1558, 46152 },
+ { 0x1559, 45938 },
+ { 0x155A, 46146 },
+ { 0x155B, 46438 },
+ { 0x155C, 47963 },
+ { 0x155D, 45875 },
+ { 0x155E, 46335 },
+ { 0x155F, 46718 },
+ { 0x1560, 46338 },
+ { 0x1561, 46722 },
+ { 0x1562, 46573 },
+ { 0x1563, 46726 },
+ { 0x1564, 46341 },
+ { 0x1565, 46576 },
+ { 0x1566, 46332 },
+ { 0x1567, 46570 },
+ { 0x1568, 46707 },
+ { 0x1569, 48087 },
+ { 0x156A, 46085 },
+ { 0x156B, 46594 },
+ { 0x156C, 46597 },
+ { 0x156D, 46600 },
+ { 0x156E, 46591 },
+ { 0x156F, 46356 },
+ { 0x1570, 46380 },
+ { 0x1571, 46383 },
+ { 0x1572, 46386 },
+ { 0x1573, 46377 },
+ { 0x1574, 47611 },
+ { 0x1575, 47615 },
+ { 0x1576, 47627 },
+ { 0x1577, 47619 },
+ { 0x1578, 47631 },
+ { 0x1579, 47607 },
+ { 0x157A, 47623 },
+ { 0x157B, 47603 },
+ { 0x157C, 47635 },
+ { 0x157D, 45950 },
+ { 0x157E, 46525 },
+ { 0x157F, 46043 },
+ { 0x1580, 46281 },
+ { 0x1581, 46046 },
+ { 0x1582, 46284 },
+ { 0x1583, 46040 },
+ { 0x1584, 46275 },
+ { 0x1585, 45899 },
+ { 0x1586, 46582 },
+ { 0x1587, 46585 },
+ { 0x1588, 46588 },
+ { 0x1589, 46579 },
+ { 0x158A, 47775 },
+ { 0x158B, 47779 },
+ { 0x158C, 47783 },
+ { 0x158D, 47771 },
+ { 0x158E, 46686 },
+ { 0x158F, 46233 },
+ { 0x1590, 46495 },
+ { 0x1591, 46236 },
+ { 0x1592, 46498 },
+ { 0x1593, 46230 },
+ { 0x1594, 46489 },
+ { 0x1595, 46010 },
+ { 0x1596, 46242 },
+ { 0x1597, 46774 },
+ { 0x1598, 46778 },
+ { 0x1599, 46782 },
+ { 0x159A, 46770 },
+ { 0x159B, 48115 },
+ { 0x159C, 48119 },
+ { 0x159D, 48123 },
+ { 0x159E, 48111 },
+ { 0x159F, 48107 },
+ { 0x15A0, 46182 },
+ { 0x15A1, 46459 },
+ { 0x15A2, 46185 },
+ { 0x15A3, 46462 },
+ { 0x15A4, 46179 },
+ { 0x15A5, 46456 },
+ { 0x15A6, 45980 },
+ { 0x15A7, 47647 },
+ { 0x15A8, 47651 },
+ { 0x15A9, 47663 },
+ { 0x15AA, 47655 },
+ { 0x15AB, 47667 },
+ { 0x15AC, 47643 },
+ { 0x15AD, 47659 },
+ { 0x15AE, 47639 },
+ { 0x15AF, 46834 },
+ { 0x15B0, 47675 },
+ { 0x15B1, 47679 },
+ { 0x15B2, 47683 },
+ { 0x15B3, 47671 },
+ { 0x15B4, 47727 },
+ { 0x15B5, 47731 },
+ { 0x15B6, 47735 },
+ { 0x15B7, 47723 },
+ { 0x15B8, 47711 },
+ { 0x15B9, 47715 },
+ { 0x15BA, 47719 },
+ { 0x15BB, 47707 },
+ { 0x15BC, 47695 },
+ { 0x15BD, 47699 },
+ { 0x15BE, 47703 },
+ { 0x15BF, 47691 },
+ { 0x15C0, 46742 },
+ { 0x15C1, 46746 },
+ { 0x15C2, 46750 },
+ { 0x15C3, 46738 },
+ { 0x15C4, 47182 },
+ { 0x15C5, 47178 },
+ { 0x15C6, 47170 },
+ { 0x15C7, 47442 },
+ { 0x15C8, 47174 },
+ { 0x15C9, 47166 },
+ { 0x15CA, 47010 },
+ { 0x15CB, 47006 },
+ { 0x15CC, 46998 },
+ { 0x15CD, 47310 },
+ { 0x15CE, 47002 },
+ { 0x15CF, 46994 },
+ { 0x15D0, 47054 },
+ { 0x15D1, 47050 },
+ { 0x15D2, 47042 },
+ { 0x15D3, 47418 },
+ { 0x15D4, 47046 },
+ { 0x15D5, 47038 },
+ { 0x15D6, 47206 },
+ { 0x15D7, 47202 },
+ { 0x15D8, 47194 },
+ { 0x15D9, 47446 },
+ { 0x15DA, 47198 },
+ { 0x15DB, 47190 },
+ { 0x15DC, 47354 },
+ { 0x15DD, 47350 },
+ { 0x15DE, 47342 },
+ { 0x15DF, 47470 },
+ { 0x15E0, 47346 },
+ { 0x15E1, 47338 },
+ { 0x15E2, 47414 },
+ { 0x15E3, 47410 },
+ { 0x15E4, 47402 },
+ { 0x15E5, 47502 },
+ { 0x15E6, 47406 },
+ { 0x15E7, 47398 },
+ { 0x15E8, 46990 },
+ { 0x15E9, 46986 },
+ { 0x15EA, 46978 },
+ { 0x15EB, 47306 },
+ { 0x15EC, 46982 },
+ { 0x15ED, 46974 },
+ { 0x15EE, 46846 },
+ { 0x15EF, 46878 },
+ { 0x15F0, 46874 },
+ { 0x15F1, 46866 },
+ { 0x15F2, 47162 },
+ { 0x15F3, 46870 },
+ { 0x15F4, 46862 },
+ { 0x15F5, 47250 },
+ { 0x15F6, 47246 },
+ { 0x15F7, 47238 },
+ { 0x15F8, 47454 },
+ { 0x15F9, 47242 },
+ { 0x15FA, 47234 },
+ { 0x15FB, 47270 },
+ { 0x15FC, 47266 },
+ { 0x15FD, 47258 },
+ { 0x15FE, 47458 },
+ { 0x15FF, 47262 },
+ { 0x1600, 47254 },
+ { 0x1601, 46906 },
+ { 0x1602, 46970 },
+ { 0x1603, 46966 },
+ { 0x1604, 46954 },
+ { 0x1605, 47302 },
+ { 0x1606, 46962 },
+ { 0x1607, 46950 },
+ { 0x1608, 46946 },
+ { 0x1609, 46942 },
+ { 0x160A, 46934 },
+ { 0x160B, 47298 },
+ { 0x160C, 46938 },
+ { 0x160D, 46930 },
+ { 0x160E, 47074 },
+ { 0x160F, 47070 },
+ { 0x1610, 47062 },
+ { 0x1611, 47422 },
+ { 0x1612, 47066 },
+ { 0x1613, 47058 },
+ { 0x1614, 46902 },
+ { 0x1615, 46758 },
+ { 0x1616, 46898 },
+ { 0x1617, 46890 },
+ { 0x1618, 47210 },
+ { 0x1619, 46894 },
+ { 0x161A, 46754 },
+ { 0x161B, 46886 },
+ { 0x161C, 47230 },
+ { 0x161D, 47226 },
+ { 0x161E, 47218 },
+ { 0x161F, 47450 },
+ { 0x1620, 47222 },
+ { 0x1621, 47214 },
+ { 0x1622, 46926 },
+ { 0x1623, 46922 },
+ { 0x1624, 46914 },
+ { 0x1625, 47274 },
+ { 0x1626, 46918 },
+ { 0x1627, 46910 },
+ { 0x1628, 47138 },
+ { 0x1629, 47134 },
+ { 0x162A, 47126 },
+ { 0x162B, 47434 },
+ { 0x162C, 47130 },
+ { 0x162D, 47122 },
+ { 0x162E, 47294 },
+ { 0x162F, 47290 },
+ { 0x1630, 47282 },
+ { 0x1631, 47462 },
+ { 0x1632, 47286 },
+ { 0x1633, 47278 },
+ { 0x1634, 47494 },
+ { 0x1635, 47490 },
+ { 0x1636, 47482 },
+ { 0x1637, 47526 },
+ { 0x1638, 47486 },
+ { 0x1639, 47478 },
+ { 0x163A, 47374 },
+ { 0x163B, 47370 },
+ { 0x163C, 47362 },
+ { 0x163D, 47474 },
+ { 0x163E, 47366 },
+ { 0x163F, 47358 },
+ { 0x1640, 47094 },
+ { 0x1641, 47090 },
+ { 0x1642, 47082 },
+ { 0x1643, 47426 },
+ { 0x1644, 47086 },
+ { 0x1645, 47078 },
+ { 0x1646, 46850 },
+ { 0x1647, 47534 },
+ { 0x1648, 47158 },
+ { 0x1649, 47154 },
+ { 0x164A, 47146 },
+ { 0x164B, 47438 },
+ { 0x164C, 47150 },
+ { 0x164D, 47142 },
+ { 0x164E, 47034 },
+ { 0x164F, 47030 },
+ { 0x1650, 47018 },
+ { 0x1651, 47314 },
+ { 0x1652, 47026 },
+ { 0x1653, 47014 },
+ { 0x1654, 47334 },
+ { 0x1655, 47330 },
+ { 0x1656, 47322 },
+ { 0x1657, 47466 },
+ { 0x1658, 47326 },
+ { 0x1659, 47318 },
+ { 0x165A, 47022 },
+ { 0x165B, 47394 },
+ { 0x165C, 47390 },
+ { 0x165D, 47382 },
+ { 0x165E, 47498 },
+ { 0x165F, 47386 },
+ { 0x1660, 47378 },
+ { 0x1661, 47114 },
+ { 0x1662, 47110 },
+ { 0x1663, 47102 },
+ { 0x1664, 47430 },
+ { 0x1665, 47106 },
+ { 0x1666, 47098 },
+ { 0x1667, 47522 },
+ { 0x1668, 47518 },
+ { 0x1669, 47510 },
+ { 0x166A, 47530 },
+ { 0x166B, 47514 },
+ { 0x166C, 47506 },
+ { 0x166D, 46124 },
+ { 0x166E, 46434 },
+ { 0x166F, 46278 },
+ { 0x1670, 46492 },
+ { 0x1671, 46504 },
+ { 0x1672, 46692 },
+ { 0x1673, 46507 },
+ { 0x1674, 46695 },
+ { 0x1675, 46501 },
+ { 0x1676, 46689 },
+ { 0x1680, 21369 },
+ { 0x1681, 21414 },
+ { 0x1682, 21396 },
+ { 0x1683, 21420 },
+ { 0x1684, 21408 },
+ { 0x1685, 21402 },
+ { 0x1686, 21411 },
+ { 0x1687, 21387 },
+ { 0x1688, 21426 },
+ { 0x1689, 21384 },
+ { 0x168A, 21417 },
+ { 0x168B, 21399 },
+ { 0x168C, 21390 },
+ { 0x168D, 21441 },
+ { 0x168E, 21429 },
+ { 0x168F, 21405 },
+ { 0x1690, 21381 },
+ { 0x1691, 21378 },
+ { 0x1692, 21375 },
+ { 0x1693, 21435 },
+ { 0x1694, 21438 },
+ { 0x1695, 21432 },
+ { 0x1696, 21372 },
+ { 0x1697, 21444 },
+ { 0x1698, 21393 },
+ { 0x1699, 21447 },
+ { 0x169A, 21423 },
+ { 0x169B, 21450 },
+ { 0x169C, 21453 },
+ { 0x16A0, 22222 },
+ { 0x16A1, 22160 },
+ { 0x16A2, 22250 },
+ { 0x16A3, 22189 },
+ { 0x16A4, 22169 },
+ { 0x16A5, 22163 },
+ { 0x16A6, 22368 },
+ { 0x16A7, 22201 },
+ { 0x16A8, 22259 },
+ { 0x16A9, 22185 },
+ { 0x16AA, 22175 },
+ { 0x16AB, 22216 },
+ { 0x16AC, 22402 },
+ { 0x16AD, 22390 },
+ { 0x16AE, 22154 },
+ { 0x16AF, 22179 },
+ { 0x16B0, 22182 },
+ { 0x16B1, 22287 },
+ { 0x16B2, 22284 },
+ { 0x16B3, 22192 },
+ { 0x16B4, 22243 },
+ { 0x16B5, 22151 },
+ { 0x16B6, 22198 },
+ { 0x16B7, 22228 },
+ { 0x16B8, 22204 },
+ { 0x16B9, 22304 },
+ { 0x16BA, 22309 },
+ { 0x16BB, 22276 },
+ { 0x16BC, 22422 },
+ { 0x16BD, 22418 },
+ { 0x16BE, 22327 },
+ { 0x16BF, 22410 },
+ { 0x16C0, 22362 },
+ { 0x16C1, 22233 },
+ { 0x16C2, 22148 },
+ { 0x16C3, 22280 },
+ { 0x16C4, 22207 },
+ { 0x16C5, 22383 },
+ { 0x16C6, 22376 },
+ { 0x16C7, 22239 },
+ { 0x16C8, 22336 },
+ { 0x16C9, 22255 },
+ { 0x16CA, 22341 },
+ { 0x16CB, 22293 },
+ { 0x16CC, 22394 },
+ { 0x16CD, 22142 },
+ { 0x16CE, 22172 },
+ { 0x16CF, 22298 },
+ { 0x16D0, 22398 },
+ { 0x16D1, 22145 },
+ { 0x16D2, 22353 },
+ { 0x16D3, 22426 },
+ { 0x16D4, 22365 },
+ { 0x16D5, 22333 },
+ { 0x16D6, 22271 },
+ { 0x16D7, 22322 },
+ { 0x16D8, 22414 },
+ { 0x16D9, 22406 },
+ { 0x16DA, 22316 },
+ { 0x16DB, 22359 },
+ { 0x16DC, 22313 },
+ { 0x16DD, 22210 },
+ { 0x16DE, 22266 },
+ { 0x16DF, 22348 },
+ { 0x16E0, 22195 },
+ { 0x16E1, 22213 },
+ { 0x16E2, 22345 },
+ { 0x16E3, 22219 },
+ { 0x16E4, 22263 },
+ { 0x16E5, 22247 },
+ { 0x16E6, 22387 },
+ { 0x16E7, 22380 },
+ { 0x16E8, 22373 },
+ { 0x16E9, 22157 },
+ { 0x16EA, 22166 },
+ { 0x16EB, 22430 },
+ { 0x16EC, 22436 },
+ { 0x16ED, 22136 },
+ { 0x16EE, 22139 },
+ { 0x16EF, 22439 },
+ { 0x16F0, 22433 },
+ { 0x1700, 43594 },
+ { 0x1701, 43597 },
+ { 0x1702, 43600 },
+ { 0x1703, 43615 },
+ { 0x1704, 43609 },
+ { 0x1705, 43642 },
+ { 0x1706, 43633 },
+ { 0x1707, 43606 },
+ { 0x1708, 43624 },
+ { 0x1709, 43627 },
+ { 0x170A, 43603 },
+ { 0x170B, 43621 },
+ { 0x170C, 43639 },
+ { 0x170E, 43618 },
+ { 0x170F, 43636 },
+ { 0x1710, 43630 },
+ { 0x1711, 43612 },
+ { 0x1712, 43586 },
+ { 0x1713, 43590 },
+ { 0x1714, 43583 },
+ { 0x1720, 40573 },
+ { 0x1721, 40576 },
+ { 0x1722, 40579 },
+ { 0x1723, 40594 },
+ { 0x1724, 40588 },
+ { 0x1725, 40624 },
+ { 0x1726, 40615 },
+ { 0x1727, 40585 },
+ { 0x1728, 40603 },
+ { 0x1729, 40606 },
+ { 0x172A, 40582 },
+ { 0x172B, 40600 },
+ { 0x172C, 40621 },
+ { 0x172D, 40609 },
+ { 0x172E, 40597 },
+ { 0x172F, 40618 },
+ { 0x1730, 40612 },
+ { 0x1731, 40591 },
+ { 0x1732, 40565 },
+ { 0x1733, 40569 },
+ { 0x1734, 40562 },
+ { 0x1735, 67884 },
+ { 0x1736, 67881 },
+ { 0x1740, 10387 },
+ { 0x1741, 10390 },
+ { 0x1742, 10393 },
+ { 0x1743, 10408 },
+ { 0x1744, 10402 },
+ { 0x1745, 10438 },
+ { 0x1746, 10429 },
+ { 0x1747, 10399 },
+ { 0x1748, 10417 },
+ { 0x1749, 10420 },
+ { 0x174A, 10396 },
+ { 0x174B, 10414 },
+ { 0x174C, 10435 },
+ { 0x174D, 10423 },
+ { 0x174E, 10411 },
+ { 0x174F, 10432 },
+ { 0x1750, 10426 },
+ { 0x1751, 10405 },
+ { 0x1752, 10379 },
+ { 0x1753, 10383 },
+ { 0x1760, 55665 },
+ { 0x1761, 55668 },
+ { 0x1762, 55671 },
+ { 0x1763, 55683 },
+ { 0x1764, 55680 },
+ { 0x1765, 55710 },
+ { 0x1766, 55701 },
+ { 0x1767, 55677 },
+ { 0x1768, 55692 },
+ { 0x1769, 55695 },
+ { 0x176A, 55674 },
+ { 0x176B, 55689 },
+ { 0x176C, 55707 },
+ { 0x176E, 55686 },
+ { 0x176F, 55704 },
+ { 0x1770, 55698 },
+ { 0x1772, 55657 },
+ { 0x1773, 55661 },
+ { 0x1780, 14115 },
+ { 0x1781, 14163 },
+ { 0x1782, 14118 },
+ { 0x1783, 14166 },
+ { 0x1784, 14169 },
+ { 0x1785, 14100 },
+ { 0x1786, 14157 },
+ { 0x1787, 14103 },
+ { 0x1788, 14160 },
+ { 0x1789, 14175 },
+ { 0x178A, 14106 },
+ { 0x178B, 14196 },
+ { 0x178C, 14109 },
+ { 0x178D, 14199 },
+ { 0x178E, 14172 },
+ { 0x178F, 14145 },
+ { 0x1790, 14190 },
+ { 0x1791, 14148 },
+ { 0x1792, 14193 },
+ { 0x1793, 14130 },
+ { 0x1794, 14097 },
+ { 0x1795, 14178 },
+ { 0x1796, 14133 },
+ { 0x1797, 14181 },
+ { 0x1798, 14127 },
+ { 0x1799, 14154 },
+ { 0x179A, 14139 },
+ { 0x179B, 14124 },
+ { 0x179C, 14151 },
+ { 0x179D, 14184 },
+ { 0x179E, 14187 },
+ { 0x179F, 14142 },
+ { 0x17A0, 14112 },
+ { 0x17A1, 14121 },
+ { 0x17A2, 14136 },
+ { 0x17A3, 14414 },
+ { 0x17A4, 14406 },
+ { 0x17A5, 14390 },
+ { 0x17A6, 14422 },
+ { 0x17A7, 14394 },
+ { 0x17A8, 14438 },
+ { 0x17A9, 14442 },
+ { 0x17AA, 14450 },
+ { 0x17AB, 14398 },
+ { 0x17AC, 14446 },
+ { 0x17AD, 14382 },
+ { 0x17AE, 14402 },
+ { 0x17AF, 14386 },
+ { 0x17B0, 14410 },
+ { 0x17B1, 14426 },
+ { 0x17B2, 14432 },
+ { 0x17B3, 14418 },
+ { 0x17B4, 14093 },
+ { 0x17B5, 14089 },
+ { 0x17B6, 14041 },
+ { 0x17B7, 14029 },
+ { 0x17B8, 14061 },
+ { 0x17B9, 14037 },
+ { 0x17BA, 14085 },
+ { 0x17BB, 14033 },
+ { 0x17BC, 14077 },
+ { 0x17BD, 14073 },
+ { 0x17BE, 14065 },
+ { 0x17BF, 14081 },
+ { 0x17C0, 14057 },
+ { 0x17C1, 14025 },
+ { 0x17C2, 14045 },
+ { 0x17C3, 14049 },
+ { 0x17C4, 14069 },
+ { 0x17C5, 14053 },
+ { 0x17C6, 13965 },
+ { 0x17C7, 13968 },
+ { 0x17C8, 13992 },
+ { 0x17C9, 13983 },
+ { 0x17CA, 13971 },
+ { 0x17CB, 13937 },
+ { 0x17CC, 13934 },
+ { 0x17CD, 13986 },
+ { 0x17CE, 13959 },
+ { 0x17CF, 13928 },
+ { 0x17D0, 13952 },
+ { 0x17D1, 13956 },
+ { 0x17D2, 13931 },
+ { 0x17D3, 13980 },
+ { 0x17D4, 13925 },
+ { 0x17D5, 13977 },
+ { 0x17D6, 13943 },
+ { 0x17D7, 13921 },
+ { 0x17D8, 13940 },
+ { 0x17D9, 13948 },
+ { 0x17DA, 13962 },
+ { 0x17DB, 14378 },
+ { 0x17DC, 13989 },
+ { 0x17DD, 13974 },
+ { 0x17E0, 14013 },
+ { 0x17E1, 13995 },
+ { 0x17E2, 14001 },
+ { 0x17E3, 14022 },
+ { 0x17E4, 14007 },
+ { 0x17E5, 14004 },
+ { 0x17E6, 13998 },
+ { 0x17E7, 14019 },
+ { 0x17E8, 14016 },
+ { 0x17E9, 14010 },
+ { 0x17F0, 14228 },
+ { 0x17F1, 14238 },
+ { 0x17F2, 14223 },
+ { 0x17F3, 14218 },
+ { 0x17F4, 14233 },
+ { 0x17F5, 14243 },
+ { 0x17F6, 14263 },
+ { 0x17F7, 14253 },
+ { 0x17F8, 14248 },
+ { 0x17F9, 14258 },
+ { 0x1800, 65145 },
+ { 0x1801, 65749 },
+ { 0x1802, 65149 },
+ { 0x1803, 65133 },
+ { 0x1804, 65147 },
+ { 0x1805, 65115 },
+ { 0x1806, 65141 },
+ { 0x1807, 65136 },
+ { 0x1808, 65744 },
+ { 0x1809, 65740 },
+ { 0x180A, 65747 },
+ { 0x180B, 65118 },
+ { 0x180C, 65123 },
+ { 0x180D, 65128 },
+ { 0x180E, 65181 },
+ { 0x1810, 65169 },
+ { 0x1811, 65151 },
+ { 0x1812, 65157 },
+ { 0x1813, 65178 },
+ { 0x1814, 65163 },
+ { 0x1815, 65160 },
+ { 0x1816, 65154 },
+ { 0x1817, 65175 },
+ { 0x1818, 65172 },
+ { 0x1819, 65166 },
+ { 0x1820, 65184 },
+ { 0x1821, 65187 },
+ { 0x1822, 65190 },
+ { 0x1823, 65193 },
+ { 0x1824, 65196 },
+ { 0x1825, 65229 },
+ { 0x1826, 65247 },
+ { 0x1827, 65205 },
+ { 0x1828, 65226 },
+ { 0x1829, 65400 },
+ { 0x182A, 65199 },
+ { 0x182B, 65232 },
+ { 0x182C, 65235 },
+ { 0x182D, 65211 },
+ { 0x182E, 65223 },
+ { 0x182F, 65220 },
+ { 0x1830, 65241 },
+ { 0x1831, 65418 },
+ { 0x1832, 65244 },
+ { 0x1833, 65202 },
+ { 0x1834, 65403 },
+ { 0x1835, 65214 },
+ { 0x1836, 65253 },
+ { 0x1837, 65238 },
+ { 0x1838, 65250 },
+ { 0x1839, 65208 },
+ { 0x183A, 65217 },
+ { 0x183B, 65412 },
+ { 0x183C, 65421 },
+ { 0x183D, 65256 },
+ { 0x183E, 65409 },
+ { 0x183F, 65427 },
+ { 0x1840, 65415 },
+ { 0x1841, 65424 },
+ { 0x1842, 65406 },
+ { 0x1843, 65630 },
+ { 0x1844, 65518 },
+ { 0x1845, 65522 },
+ { 0x1846, 65526 },
+ { 0x1847, 65530 },
+ { 0x1848, 65558 },
+ { 0x1849, 65574 },
+ { 0x184A, 65598 },
+ { 0x184B, 65534 },
+ { 0x184C, 65562 },
+ { 0x184D, 65566 },
+ { 0x184E, 65542 },
+ { 0x184F, 65554 },
+ { 0x1850, 65570 },
+ { 0x1851, 65538 },
+ { 0x1852, 65602 },
+ { 0x1853, 65546 },
+ { 0x1854, 65626 },
+ { 0x1855, 65582 },
+ { 0x1856, 65578 },
+ { 0x1857, 65550 },
+ { 0x1858, 65610 },
+ { 0x1859, 65614 },
+ { 0x185A, 65618 },
+ { 0x185B, 65622 },
+ { 0x185C, 65606 },
+ { 0x185D, 65430 },
+ { 0x185E, 65434 },
+ { 0x185F, 65458 },
+ { 0x1860, 65478 },
+ { 0x1861, 65438 },
+ { 0x1862, 65486 },
+ { 0x1863, 65466 },
+ { 0x1864, 65450 },
+ { 0x1865, 65454 },
+ { 0x1866, 65470 },
+ { 0x1867, 65506 },
+ { 0x1868, 65474 },
+ { 0x1869, 65442 },
+ { 0x186A, 65462 },
+ { 0x186B, 65446 },
+ { 0x186C, 65494 },
+ { 0x186D, 65498 },
+ { 0x186E, 65510 },
+ { 0x186F, 65482 },
+ { 0x1870, 65502 },
+ { 0x1871, 65490 },
+ { 0x1872, 65514 },
+ { 0x1873, 65636 },
+ { 0x1874, 65644 },
+ { 0x1875, 65648 },
+ { 0x1876, 65640 },
+ { 0x1877, 65736 },
+ { 0x1880, 65388 },
+ { 0x1881, 65382 },
+ { 0x1882, 65367 },
+ { 0x1883, 65377 },
+ { 0x1884, 65394 },
+ { 0x1885, 65362 },
+ { 0x1886, 65356 },
+ { 0x1887, 65259 },
+ { 0x1888, 65264 },
+ { 0x1889, 65284 },
+ { 0x188A, 65309 },
+ { 0x188B, 65274 },
+ { 0x188C, 65329 },
+ { 0x188D, 65351 },
+ { 0x188E, 65304 },
+ { 0x188F, 65314 },
+ { 0x1890, 65294 },
+ { 0x1891, 65279 },
+ { 0x1892, 65289 },
+ { 0x1893, 65319 },
+ { 0x1894, 65324 },
+ { 0x1895, 65334 },
+ { 0x1896, 65299 },
+ { 0x1897, 65269 },
+ { 0x1898, 65586 },
+ { 0x1899, 65592 },
+ { 0x189A, 65688 },
+ { 0x189B, 65706 },
+ { 0x189C, 65652 },
+ { 0x189D, 65694 },
+ { 0x189E, 65718 },
+ { 0x189F, 65730 },
+ { 0x18A0, 65658 },
+ { 0x18A1, 65682 },
+ { 0x18A2, 65712 },
+ { 0x18A3, 65676 },
+ { 0x18A4, 65724 },
+ { 0x18A5, 65664 },
+ { 0x18A6, 65339 },
+ { 0x18A7, 65345 },
+ { 0x18A8, 65670 },
+ { 0x18A9, 65372 },
+ { 0x18AA, 65700 },
+ { 0x1900, 21091 },
+ { 0x1901, 21007 },
+ { 0x1902, 21052 },
+ { 0x1903, 20998 },
+ { 0x1904, 21046 },
+ { 0x1905, 21055 },
+ { 0x1906, 20992 },
+ { 0x1907, 21040 },
+ { 0x1908, 21004 },
+ { 0x1909, 21049 },
+ { 0x190A, 21070 },
+ { 0x190B, 21028 },
+ { 0x190C, 21067 },
+ { 0x190D, 20995 },
+ { 0x190E, 21043 },
+ { 0x190F, 21016 },
+ { 0x1910, 21019 },
+ { 0x1911, 21058 },
+ { 0x1912, 20989 },
+ { 0x1913, 21037 },
+ { 0x1914, 21013 },
+ { 0x1915, 21034 },
+ { 0x1916, 21022 },
+ { 0x1917, 21010 },
+ { 0x1918, 21031 },
+ { 0x1919, 21061 },
+ { 0x191A, 21064 },
+ { 0x191B, 21025 },
+ { 0x191C, 21001 },
+ { 0x1920, 20953 },
+ { 0x1921, 20961 },
+ { 0x1922, 20969 },
+ { 0x1923, 20981 },
+ { 0x1924, 20973 },
+ { 0x1925, 20985 },
+ { 0x1926, 20977 },
+ { 0x1927, 20957 },
+ { 0x1928, 20965 },
+ { 0x1929, 21084 },
+ { 0x192A, 21076 },
+ { 0x192B, 21080 },
+ { 0x1930, 20917 },
+ { 0x1931, 20945 },
+ { 0x1932, 20949 },
+ { 0x1933, 20941 },
+ { 0x1934, 20929 },
+ { 0x1935, 20933 },
+ { 0x1936, 20925 },
+ { 0x1937, 20937 },
+ { 0x1938, 20921 },
+ { 0x1939, 20884 },
+ { 0x193A, 20881 },
+ { 0x193B, 20878 },
+ { 0x1940, 20875 },
+ { 0x1944, 21088 },
+ { 0x1945, 21073 },
+ { 0x1946, 20905 },
+ { 0x1947, 20887 },
+ { 0x1948, 20893 },
+ { 0x1949, 20914 },
+ { 0x194A, 20899 },
+ { 0x194B, 20896 },
+ { 0x194C, 20890 },
+ { 0x194D, 20911 },
+ { 0x194E, 20908 },
+ { 0x194F, 20902 },
+ { 0x1950, 7612 },
+ { 0x1951, 7656 },
+ { 0x1952, 7672 },
+ { 0x1953, 7684 },
+ { 0x1954, 7640 },
+ { 0x1955, 7660 },
+ { 0x1956, 7644 },
+ { 0x1957, 7680 },
+ { 0x1958, 7616 },
+ { 0x1959, 7632 },
+ { 0x195A, 7676 },
+ { 0x195B, 7620 },
+ { 0x195C, 7604 },
+ { 0x195D, 7652 },
+ { 0x195E, 7608 },
+ { 0x195F, 7636 },
+ { 0x1960, 7668 },
+ { 0x1961, 7688 },
+ { 0x1962, 7624 },
+ { 0x1963, 7572 },
+ { 0x1964, 7580 },
+ { 0x1965, 7596 },
+ { 0x1966, 7600 },
+ { 0x1967, 7588 },
+ { 0x1968, 7628 },
+ { 0x1969, 7584 },
+ { 0x196A, 7648 },
+ { 0x196B, 7576 },
+ { 0x196C, 7664 },
+ { 0x196D, 7592 },
+ { 0x1970, 7692 },
+ { 0x1971, 7696 },
+ { 0x1972, 7700 },
+ { 0x1973, 7704 },
+ { 0x1974, 7708 },
+ { 0x1980, 6393 },
+ { 0x1981, 6267 },
+ { 0x1982, 6363 },
+ { 0x1983, 6417 },
+ { 0x1984, 6435 },
+ { 0x1985, 6237 },
+ { 0x1986, 6291 },
+ { 0x1987, 6309 },
+ { 0x1988, 6453 },
+ { 0x1989, 6399 },
+ { 0x198A, 6423 },
+ { 0x198B, 6327 },
+ { 0x198C, 6273 },
+ { 0x198D, 6297 },
+ { 0x198E, 6405 },
+ { 0x198F, 6447 },
+ { 0x1990, 6381 },
+ { 0x1991, 6279 },
+ { 0x1992, 6321 },
+ { 0x1993, 6255 },
+ { 0x1994, 6387 },
+ { 0x1995, 6441 },
+ { 0x1996, 6375 },
+ { 0x1997, 6261 },
+ { 0x1998, 6315 },
+ { 0x1999, 6249 },
+ { 0x199A, 6351 },
+ { 0x199B, 6411 },
+ { 0x199C, 6369 },
+ { 0x199D, 6225 },
+ { 0x199E, 6285 },
+ { 0x199F, 6243 },
+ { 0x19A0, 6357 },
+ { 0x19A1, 6345 },
+ { 0x19A2, 6339 },
+ { 0x19A3, 6231 },
+ { 0x19A4, 6219 },
+ { 0x19A5, 6213 },
+ { 0x19A6, 6429 },
+ { 0x19A7, 6459 },
+ { 0x19A8, 6303 },
+ { 0x19A9, 6333 },
+ { 0x19B0, 6206 },
+ { 0x19B1, 6128 },
+ { 0x19B2, 6146 },
+ { 0x19B3, 6122 },
+ { 0x19B4, 6176 },
+ { 0x19B5, 6110 },
+ { 0x19B6, 6134 },
+ { 0x19B7, 6116 },
+ { 0x19B8, 6158 },
+ { 0x19B9, 6170 },
+ { 0x19BA, 6140 },
+ { 0x19BB, 6188 },
+ { 0x19BC, 6182 },
+ { 0x19BD, 6164 },
+ { 0x19BE, 6194 },
+ { 0x19BF, 6200 },
+ { 0x19C0, 6152 },
+ { 0x19C1, 6495 },
+ { 0x19C2, 6501 },
+ { 0x19C3, 6489 },
+ { 0x19C4, 6483 },
+ { 0x19C5, 6477 },
+ { 0x19C6, 6471 },
+ { 0x19C7, 6465 },
+ { 0x19C8, 6050 },
+ { 0x19C9, 6055 },
+ { 0x19D0, 6090 },
+ { 0x19D1, 6060 },
+ { 0x19D2, 6070 },
+ { 0x19D3, 6105 },
+ { 0x19D4, 6080 },
+ { 0x19D5, 6075 },
+ { 0x19D6, 6065 },
+ { 0x19D7, 6100 },
+ { 0x19D8, 6095 },
+ { 0x19D9, 6085 },
+ { 0x19DE, 6040 },
+ { 0x19DF, 6045 },
+ { 0x19E0, 14375 },
+ { 0x19E1, 14288 },
+ { 0x19E2, 14272 },
+ { 0x19E3, 14206 },
+ { 0x19E4, 14280 },
+ { 0x19E5, 14296 },
+ { 0x19E6, 14368 },
+ { 0x19E7, 14352 },
+ { 0x19E8, 14344 },
+ { 0x19E9, 14360 },
+ { 0x19EA, 14214 },
+ { 0x19EB, 14328 },
+ { 0x19EC, 14312 },
+ { 0x19ED, 14304 },
+ { 0x19EE, 14320 },
+ { 0x19EF, 14336 },
+ { 0x19F0, 14372 },
+ { 0x19F1, 14284 },
+ { 0x19F2, 14268 },
+ { 0x19F3, 14202 },
+ { 0x19F4, 14276 },
+ { 0x19F5, 14292 },
+ { 0x19F6, 14364 },
+ { 0x19F7, 14348 },
+ { 0x19F8, 14340 },
+ { 0x19F9, 14356 },
+ { 0x19FA, 14210 },
+ { 0x19FB, 14324 },
+ { 0x19FC, 14308 },
+ { 0x19FD, 14300 },
+ { 0x19FE, 14316 },
+ { 0x19FF, 14332 },
+ { 0x1A00, 45814 },
+ { 0x1A01, 45805 },
+ { 0x1A02, 45847 },
+ { 0x1A03, 45856 },
+ { 0x1A04, 45826 },
+ { 0x1A05, 45796 },
+ { 0x1A06, 45820 },
+ { 0x1A07, 45844 },
+ { 0x1A08, 45835 },
+ { 0x1A09, 45802 },
+ { 0x1A0A, 45823 },
+ { 0x1A0B, 45850 },
+ { 0x1A0C, 45799 },
+ { 0x1A0D, 45811 },
+ { 0x1A0E, 45853 },
+ { 0x1A0F, 45859 },
+ { 0x1A10, 45841 },
+ { 0x1A11, 45829 },
+ { 0x1A12, 45817 },
+ { 0x1A13, 45838 },
+ { 0x1A14, 45832 },
+ { 0x1A15, 45793 },
+ { 0x1A16, 45808 },
+ { 0x1A17, 45777 },
+ { 0x1A18, 45785 },
+ { 0x1A19, 45773 },
+ { 0x1A1A, 45781 },
+ { 0x1A1B, 45789 },
+ { 0x1A1E, 45862 },
+ { 0x1A1F, 45769 },
+ { 0x1B00, 45088 },
+ { 0x1B01, 45092 },
+ { 0x1B02, 45099 },
+ { 0x1B03, 45102 },
+ { 0x1B04, 45096 },
+ { 0x1B05, 45383 },
+ { 0x1B06, 45386 },
+ { 0x1B07, 45393 },
+ { 0x1B08, 45396 },
+ { 0x1B09, 45407 },
+ { 0x1B0A, 45410 },
+ { 0x1B0B, 45315 },
+ { 0x1B0C, 45319 },
+ { 0x1B0D, 45286 },
+ { 0x1B0E, 45290 },
+ { 0x1B0F, 45390 },
+ { 0x1B10, 45414 },
+ { 0x1B11, 45400 },
+ { 0x1B12, 45403 },
+ { 0x1B13, 45276 },
+ { 0x1B14, 45279 },
+ { 0x1B15, 45259 },
+ { 0x1B16, 45262 },
+ { 0x1B17, 45365 },
+ { 0x1B18, 45231 },
+ { 0x1B19, 45234 },
+ { 0x1B1A, 45269 },
+ { 0x1B1B, 45272 },
+ { 0x1B1C, 45368 },
+ { 0x1B1D, 45342 },
+ { 0x1B1E, 45346 },
+ { 0x1B1F, 45245 },
+ { 0x1B20, 45250 },
+ { 0x1B21, 45301 },
+ { 0x1B22, 45335 },
+ { 0x1B23, 45338 },
+ { 0x1B24, 45238 },
+ { 0x1B25, 45241 },
+ { 0x1B26, 45298 },
+ { 0x1B27, 45305 },
+ { 0x1B28, 45308 },
+ { 0x1B29, 45224 },
+ { 0x1B2A, 45227 },
+ { 0x1B2B, 45295 },
+ { 0x1B2C, 45358 },
+ { 0x1B2D, 45312 },
+ { 0x1B2E, 45283 },
+ { 0x1B2F, 45355 },
+ { 0x1B30, 45327 },
+ { 0x1B31, 45331 },
+ { 0x1B32, 45324 },
+ { 0x1B33, 45266 },
+ { 0x1B34, 45105 },
+ { 0x1B35, 45218 },
+ { 0x1B36, 45171 },
+ { 0x1B37, 45175 },
+ { 0x1B38, 45180 },
+ { 0x1B39, 45184 },
+ { 0x1B3A, 45160 },
+ { 0x1B3B, 45165 },
+ { 0x1B3C, 45149 },
+ { 0x1B3D, 45154 },
+ { 0x1B3E, 45198 },
+ { 0x1B3F, 45202 },
+ { 0x1B40, 45213 },
+ { 0x1B41, 45207 },
+ { 0x1B42, 45189 },
+ { 0x1B43, 45193 },
+ { 0x1B44, 45085 },
+ { 0x1B45, 45361 },
+ { 0x1B46, 45375 },
+ { 0x1B47, 45379 },
+ { 0x1B48, 45255 },
+ { 0x1B49, 45351 },
+ { 0x1B4A, 45371 },
+ { 0x1B4B, 45417 },
+ { 0x1B50, 45135 },
+ { 0x1B51, 45117 },
+ { 0x1B52, 45123 },
+ { 0x1B53, 45144 },
+ { 0x1B54, 45129 },
+ { 0x1B55, 45126 },
+ { 0x1B56, 45120 },
+ { 0x1B57, 45141 },
+ { 0x1B58, 45138 },
+ { 0x1B59, 45132 },
+ { 0x1B5A, 45147 },
+ { 0x1B5B, 45421 },
+ { 0x1B5C, 45222 },
+ { 0x1B5D, 45114 },
+ { 0x1B5E, 45108 },
+ { 0x1B5F, 45111 },
+ { 0x1B60, 45568 },
+ { 0x1B61, 45445 },
+ { 0x1B62, 45437 },
+ { 0x1B63, 45449 },
+ { 0x1B64, 45423 },
+ { 0x1B65, 45432 },
+ { 0x1B66, 45441 },
+ { 0x1B67, 45453 },
+ { 0x1B68, 45461 },
+ { 0x1B69, 45457 },
+ { 0x1B6A, 45427 },
+ { 0x1B6B, 45480 },
+ { 0x1B6C, 45475 },
+ { 0x1B6D, 45497 },
+ { 0x1B6E, 45485 },
+ { 0x1B6F, 45509 },
+ { 0x1B70, 45502 },
+ { 0x1B71, 45490 },
+ { 0x1B72, 45470 },
+ { 0x1B73, 45465 },
+ { 0x1B74, 45550 },
+ { 0x1B75, 45544 },
+ { 0x1B76, 45562 },
+ { 0x1B77, 45556 },
+ { 0x1B78, 45514 },
+ { 0x1B79, 45526 },
+ { 0x1B7A, 45532 },
+ { 0x1B7B, 45538 },
+ { 0x1B7C, 45520 },
+ { 0x1B80, 65869 },
+ { 0x1B81, 65872 },
+ { 0x1B82, 65875 },
+ { 0x1B83, 65932 },
+ { 0x1B84, 65938 },
+ { 0x1B85, 65944 },
+ { 0x1B86, 65947 },
+ { 0x1B87, 65941 },
+ { 0x1B88, 65935 },
+ { 0x1B89, 65959 },
+ { 0x1B8A, 65974 },
+ { 0x1B8B, 65989 },
+ { 0x1B8C, 65965 },
+ { 0x1B8D, 66019 },
+ { 0x1B8E, 65953 },
+ { 0x1B8F, 65971 },
+ { 0x1B90, 66013 },
+ { 0x1B91, 66022 },
+ { 0x1B92, 65998 },
+ { 0x1B93, 65956 },
+ { 0x1B94, 65983 },
+ { 0x1B95, 65986 },
+ { 0x1B96, 65962 },
+ { 0x1B97, 66001 },
+ { 0x1B98, 65950 },
+ { 0x1B99, 65980 },
+ { 0x1B9A, 66010 },
+ { 0x1B9B, 65992 },
+ { 0x1B9C, 65977 },
+ { 0x1B9D, 66004 },
+ { 0x1B9E, 65995 },
+ { 0x1B9F, 66007 },
+ { 0x1BA0, 65968 },
+ { 0x1BA1, 66036 },
+ { 0x1BA2, 66032 },
+ { 0x1BA3, 66028 },
+ { 0x1BA4, 65916 },
+ { 0x1BA5, 65912 },
+ { 0x1BA6, 65924 },
+ { 0x1BA7, 65920 },
+ { 0x1BA8, 65908 },
+ { 0x1BA9, 65928 },
+ { 0x1BAA, 65866 },
+ { 0x1BAE, 66016 },
+ { 0x1BAF, 66025 },
+ { 0x1BB0, 65896 },
+ { 0x1BB1, 65878 },
+ { 0x1BB2, 65884 },
+ { 0x1BB3, 65905 },
+ { 0x1BB4, 65890 },
+ { 0x1BB5, 65887 },
+ { 0x1BB6, 65881 },
+ { 0x1BB7, 65902 },
+ { 0x1BB8, 65899 },
+ { 0x1BB9, 65893 },
+ { 0x1C00, 34194 },
+ { 0x1C01, 34251 },
+ { 0x1C02, 34248 },
+ { 0x1C03, 34185 },
+ { 0x1C04, 34242 },
+ { 0x1C05, 34257 },
+ { 0x1C06, 34176 },
+ { 0x1C07, 34230 },
+ { 0x1C08, 34191 },
+ { 0x1C09, 34260 },
+ { 0x1C0A, 34215 },
+ { 0x1C0B, 34272 },
+ { 0x1C0C, 34179 },
+ { 0x1C0D, 34203 },
+ { 0x1C0E, 34206 },
+ { 0x1C0F, 34266 },
+ { 0x1C10, 34263 },
+ { 0x1C11, 34182 },
+ { 0x1C12, 34239 },
+ { 0x1C13, 34173 },
+ { 0x1C14, 34227 },
+ { 0x1C15, 34200 },
+ { 0x1C16, 34254 },
+ { 0x1C17, 34275 },
+ { 0x1C18, 34281 },
+ { 0x1C19, 34236 },
+ { 0x1C1A, 34224 },
+ { 0x1C1B, 34209 },
+ { 0x1C1C, 34197 },
+ { 0x1C1D, 34188 },
+ { 0x1C1E, 34245 },
+ { 0x1C1F, 34218 },
+ { 0x1C20, 34212 },
+ { 0x1C21, 34269 },
+ { 0x1C22, 34221 },
+ { 0x1C23, 34170 },
+ { 0x1C24, 34327 },
+ { 0x1C25, 34323 },
+ { 0x1C26, 34158 },
+ { 0x1C27, 34146 },
+ { 0x1C28, 34150 },
+ { 0x1C29, 34162 },
+ { 0x1C2A, 34154 },
+ { 0x1C2B, 34166 },
+ { 0x1C2C, 34142 },
+ { 0x1C2D, 34287 },
+ { 0x1C2E, 34295 },
+ { 0x1C2F, 34291 },
+ { 0x1C30, 34299 },
+ { 0x1C31, 34303 },
+ { 0x1C32, 34307 },
+ { 0x1C33, 34311 },
+ { 0x1C34, 34319 },
+ { 0x1C35, 34315 },
+ { 0x1C36, 34106 },
+ { 0x1C37, 34109 },
+ { 0x1C3B, 34339 },
+ { 0x1C3C, 34331 },
+ { 0x1C3D, 34336 },
+ { 0x1C3E, 34345 },
+ { 0x1C3F, 34342 },
+ { 0x1C40, 34130 },
+ { 0x1C41, 34112 },
+ { 0x1C42, 34118 },
+ { 0x1C43, 34139 },
+ { 0x1C44, 34124 },
+ { 0x1C45, 34121 },
+ { 0x1C46, 34115 },
+ { 0x1C47, 34136 },
+ { 0x1C48, 34133 },
+ { 0x1C49, 34127 },
+ { 0x1C4D, 34278 },
+ { 0x1C4E, 34284 },
+ { 0x1C4F, 34233 },
+ { 0x1C50, 112 },
+ { 0x1C51, 88 },
+ { 0x1C52, 96 },
+ { 0x1C53, 124 },
+ { 0x1C54, 104 },
+ { 0x1C55, 100 },
+ { 0x1C56, 92 },
+ { 0x1C57, 120 },
+ { 0x1C58, 116 },
+ { 0x1C59, 108 },
+ { 0x1C5A, 163 },
+ { 0x1C5B, 139 },
+ { 0x1C5C, 131 },
+ { 0x1C5D, 223 },
+ { 0x1C5E, 135 },
+ { 0x1C5F, 239 },
+ { 0x1C60, 211 },
+ { 0x1C61, 207 },
+ { 0x1C62, 215 },
+ { 0x1C63, 219 },
+ { 0x1C64, 171 },
+ { 0x1C65, 159 },
+ { 0x1C66, 151 },
+ { 0x1C67, 235 },
+ { 0x1C68, 155 },
+ { 0x1C69, 179 },
+ { 0x1C6A, 195 },
+ { 0x1C6B, 199 },
+ { 0x1C6C, 247 },
+ { 0x1C6D, 203 },
+ { 0x1C6E, 167 },
+ { 0x1C6F, 147 },
+ { 0x1C70, 227 },
+ { 0x1C71, 143 },
+ { 0x1C72, 231 },
+ { 0x1C73, 175 },
+ { 0x1C74, 243 },
+ { 0x1C75, 183 },
+ { 0x1C76, 191 },
+ { 0x1C77, 187 },
+ { 0x1C78, 81 },
+ { 0x1C79, 251 },
+ { 0x1C7A, 258 },
+ { 0x1C7B, 128 },
+ { 0x1C7C, 255 },
+ { 0x1C7D, 85 },
+ { 0x1C7E, 267 },
+ { 0x1C7F, 262 },
+ { 0x1D00, 17949 },
+ { 0x1D01, 18083 },
+ { 0x1D02, 17650 },
+ { 0x1D03, 18119 },
+ { 0x1D04, 17959 },
+ { 0x1D05, 17964 },
+ { 0x1D06, 18098 },
+ { 0x1D07, 17969 },
+ { 0x1D08, 17660 },
+ { 0x1D09, 17575 },
+ { 0x1D0A, 18001 },
+ { 0x1D0B, 18006 },
+ { 0x1D0C, 18016 },
+ { 0x1D0D, 18023 },
+ { 0x1D0E, 18143 },
+ { 0x1D0F, 18033 },
+ { 0x1D10, 18113 },
+ { 0x1D11, 17804 },
+ { 0x1D12, 17821 },
+ { 0x1D13, 17809 },
+ { 0x1D14, 17655 },
+ { 0x1D15, 18093 },
+ { 0x1D16, 17292 },
+ { 0x1D17, 17499 },
+ { 0x1D18, 18038 },
+ { 0x1D19, 18149 },
+ { 0x1D1A, 18131 },
+ { 0x1D1B, 18053 },
+ { 0x1D1C, 18058 },
+ { 0x1D1D, 17816 },
+ { 0x1D1E, 17833 },
+ { 0x1D1F, 17827 },
+ { 0x1D20, 18063 },
+ { 0x1D21, 18068 },
+ { 0x1D22, 18078 },
+ { 0x1D23, 18103 },
+ { 0x1D24, 18159 },
+ { 0x1D25, 17938 },
+ { 0x1D26, 12051 },
+ { 0x1D27, 12056 },
+ { 0x1D28, 12036 },
+ { 0x1D29, 12046 },
+ { 0x1D2A, 12041 },
+ { 0x1D2B, 49409 },
+ { 0x1D2C, 54616 },
+ { 0x1D2D, 54692 },
+ { 0x1D2E, 54620 },
+ { 0x1D2F, 54700 },
+ { 0x1D30, 54624 },
+ { 0x1D31, 54628 },
+ { 0x1D32, 54705 },
+ { 0x1D33, 54632 },
+ { 0x1D34, 54636 },
+ { 0x1D35, 54640 },
+ { 0x1D36, 54644 },
+ { 0x1D37, 54648 },
+ { 0x1D38, 54652 },
+ { 0x1D39, 54656 },
+ { 0x1D3A, 54660 },
+ { 0x1D3B, 54710 },
+ { 0x1D3C, 54664 },
+ { 0x1D3D, 54696 },
+ { 0x1D3E, 54668 },
+ { 0x1D3F, 54672 },
+ { 0x1D40, 54676 },
+ { 0x1D41, 54680 },
+ { 0x1D42, 54688 },
+ { 0x1D43, 54136 },
+ { 0x1D44, 54421 },
+ { 0x1D45, 54375 },
+ { 0x1D46, 54466 },
+ { 0x1D47, 54140 },
+ { 0x1D48, 54154 },
+ { 0x1D49, 54158 },
+ { 0x1D4A, 54397 },
+ { 0x1D4B, 54365 },
+ { 0x1D4C, 54471 },
+ { 0x1D4D, 54166 },
+ { 0x1D4E, 54431 },
+ { 0x1D4F, 54196 },
+ { 0x1D50, 54218 },
+ { 0x1D51, 54331 },
+ { 0x1D52, 54242 },
+ { 0x1D53, 54370 },
+ { 0x1D54, 54351 },
+ { 0x1D55, 54410 },
+ { 0x1D56, 54246 },
+ { 0x1D57, 54264 },
+ { 0x1D58, 54275 },
+ { 0x1D59, 54538 },
+ { 0x1D5A, 54436 },
+ { 0x1D5B, 54284 },
+ { 0x1D5C, 54323 },
+ { 0x1D5D, 54357 },
+ { 0x1D5E, 54392 },
+ { 0x1D5F, 54379 },
+ { 0x1D60, 54387 },
+ { 0x1D61, 54327 },
+ { 0x1D62, 20792 },
+ { 0x1D63, 20807 },
+ { 0x1D64, 20812 },
+ { 0x1D65, 20817 },
+ { 0x1D66, 13101 },
+ { 0x1D67, 13106 },
+ { 0x1D68, 13096 },
+ { 0x1D69, 13091 },
+ { 0x1D6A, 13086 },
+ { 0x1D6B, 17177 },
+ { 0x1D6C, 14742 },
+ { 0x1D6D, 14886 },
+ { 0x1D6E, 15140 },
+ { 0x1D6F, 15661 },
+ { 0x1D70, 15745 },
+ { 0x1D71, 16100 },
+ { 0x1D72, 16239 },
+ { 0x1D73, 16271 },
+ { 0x1D74, 16370 },
+ { 0x1D75, 16446 },
+ { 0x1D76, 16999 },
+ { 0x1D77, 17549 },
+ { 0x1D78, 54782 },
+ { 0x1D79, 17723 },
+ { 0x1D7A, 17162 },
+ { 0x1D7B, 17883 },
+ { 0x1D7C, 17331 },
+ { 0x1D7D, 16107 },
+ { 0x1D7E, 17890 },
+ { 0x1D7F, 17747 },
+ { 0x1D80, 14761 },
+ { 0x1D81, 14911 },
+ { 0x1D82, 15147 },
+ { 0x1D83, 15207 },
+ { 0x1D84, 15493 },
+ { 0x1D85, 15610 },
+ { 0x1D86, 15668 },
+ { 0x1D87, 15758 },
+ { 0x1D88, 16121 },
+ { 0x1D89, 16258 },
+ { 0x1D8A, 16383 },
+ { 0x1D8B, 17211 },
+ { 0x1D8C, 16764 },
+ { 0x1D8D, 16844 },
+ { 0x1D8E, 17012 },
+ { 0x1D8F, 14656 },
+ { 0x1D90, 17433 },
+ { 0x1D91, 14859 },
+ { 0x1D92, 15061 },
+ { 0x1D93, 17375 },
+ { 0x1D94, 17791 },
+ { 0x1D95, 17458 },
+ { 0x1D96, 15395 },
+ { 0x1D97, 17388 },
+ { 0x1D98, 17218 },
+ { 0x1D99, 16708 },
+ { 0x1D9A, 17251 },
+ { 0x1D9B, 54477 },
+ { 0x1D9C, 54144 },
+ { 0x1D9D, 54148 },
+ { 0x1D9E, 54339 },
+ { 0x1D9F, 54526 },
+ { 0x1DA0, 54162 },
+ { 0x1DA1, 54515 },
+ { 0x1DA2, 54416 },
+ { 0x1DA3, 54426 },
+ { 0x1DA4, 54180 },
+ { 0x1DA5, 54361 },
+ { 0x1DA6, 54482 },
+ { 0x1DA7, 54487 },
+ { 0x1DA8, 54190 },
+ { 0x1DA9, 54211 },
+ { 0x1DAA, 54204 },
+ { 0x1DAB, 54494 },
+ { 0x1DAC, 54222 },
+ { 0x1DAD, 54441 },
+ { 0x1DAE, 54228 },
+ { 0x1DAF, 54235 },
+ { 0x1DB0, 54499 },
+ { 0x1DB1, 54405 },
+ { 0x1DB2, 54347 },
+ { 0x1DB3, 54258 },
+ { 0x1DB4, 54335 },
+ { 0x1DB5, 54268 },
+ { 0x1DB6, 54279 },
+ { 0x1DB7, 54522 },
+ { 0x1DB8, 54504 },
+ { 0x1DB9, 54288 },
+ { 0x1DBA, 54461 },
+ { 0x1DBB, 54306 },
+ { 0x1DBC, 54316 },
+ { 0x1DBD, 54310 },
+ { 0x1DBE, 54343 },
+ { 0x1DBF, 54401 },
+ { 0x1DC0, 57864 },
+ { 0x1DC1, 57860 },
+ { 0x1DC2, 57834 },
+ { 0x1DC3, 58302 },
+ { 0x1DC4, 58317 },
+ { 0x1DC5, 58315 },
+ { 0x1DC6, 58321 },
+ { 0x1DC7, 58311 },
+ { 0x1DC8, 58333 },
+ { 0x1DC9, 58331 },
+ { 0x1DCA, 57657 },
+ { 0x1DCB, 58313 },
+ { 0x1DCC, 58319 },
+ { 0x1DCD, 57933 },
+ { 0x1DCE, 57961 },
+ { 0x1DCF, 57977 },
+ { 0x1DD0, 57389 },
+ { 0x1DD1, 57396 },
+ { 0x1DD2, 57399 },
+ { 0x1DD3, 57731 },
+ { 0x1DD4, 57699 },
+ { 0x1DD5, 57704 },
+ { 0x1DD6, 57709 },
+ { 0x1DD7, 57596 },
+ { 0x1DD8, 57725 },
+ { 0x1DD9, 57714 },
+ { 0x1DDA, 57612 },
+ { 0x1DDB, 57739 },
+ { 0x1DDC, 57627 },
+ { 0x1DDD, 57632 },
+ { 0x1DDE, 57745 },
+ { 0x1DDF, 57751 },
+ { 0x1DE0, 57642 },
+ { 0x1DE1, 57757 },
+ { 0x1DE2, 57763 },
+ { 0x1DE3, 57663 },
+ { 0x1DE4, 57669 },
+ { 0x1DE5, 57719 },
+ { 0x1DE6, 57694 },
+ { 0x1DFE, 57476 },
+ { 0x1DFF, 57806 },
+ { 0x1E00, 18281 },
+ { 0x1E01, 14523 },
+ { 0x1E02, 18458 },
+ { 0x1E03, 14715 },
+ { 0x1E04, 18465 },
+ { 0x1E05, 14722 },
+ { 0x1E06, 18478 },
+ { 0x1E07, 14735 },
+ { 0x1E08, 18538 },
+ { 0x1E09, 14815 },
+ { 0x1E0A, 18556 },
+ { 0x1E0B, 14833 },
+ { 0x1E0C, 18563 },
+ { 0x1E0D, 14840 },
+ { 0x1E0E, 18576 },
+ { 0x1E0F, 14867 },
+ { 0x1E10, 18619 },
+ { 0x1E11, 14905 },
+ { 0x1E12, 18625 },
+ { 0x1E13, 14918 },
+ { 0x1E14, 18715 },
+ { 0x1E15, 15014 },
+ { 0x1E16, 18707 },
+ { 0x1E17, 15006 },
+ { 0x1E18, 18810 },
+ { 0x1E19, 15116 },
+ { 0x1E1A, 18687 },
+ { 0x1E1B, 14986 },
+ { 0x1E1C, 18741 },
+ { 0x1E1D, 15040 },
+ { 0x1E1E, 18821 },
+ { 0x1E1F, 15127 },
+ { 0x1E20, 18869 },
+ { 0x1E21, 15189 },
+ { 0x1E22, 18897 },
+ { 0x1E23, 15224 },
+ { 0x1E24, 18904 },
+ { 0x1E25, 15231 },
+ { 0x1E26, 18942 },
+ { 0x1E27, 15282 },
+ { 0x1E28, 18930 },
+ { 0x1E29, 15270 },
+ { 0x1E2A, 18911 },
+ { 0x1E2B, 15251 },
+ { 0x1E2C, 19009 },
+ { 0x1E2D, 15342 },
+ { 0x1E2E, 19054 },
+ { 0x1E2F, 15387 },
+ { 0x1E30, 19108 },
+ { 0x1E31, 15460 },
+ { 0x1E32, 19088 },
+ { 0x1E33, 15440 },
+ { 0x1E34, 19101 },
+ { 0x1E35, 15453 },
+ { 0x1E36, 19164 },
+ { 0x1E37, 15523 },
+ { 0x1E38, 19171 },
+ { 0x1E39, 15530 },
+ { 0x1E3A, 19187 },
+ { 0x1E3B, 15558 },
+ { 0x1E3C, 19247 },
+ { 0x1E3D, 15624 },
+ { 0x1E3E, 19278 },
+ { 0x1E3F, 15655 },
+ { 0x1E40, 19258 },
+ { 0x1E41, 15635 },
+ { 0x1E42, 19265 },
+ { 0x1E43, 15642 },
+ { 0x1E44, 19288 },
+ { 0x1E45, 15679 },
+ { 0x1E46, 19295 },
+ { 0x1E47, 15686 },
+ { 0x1E48, 19309 },
+ { 0x1E49, 15706 },
+ { 0x1E4A, 19362 },
+ { 0x1E4B, 15772 },
+ { 0x1E4C, 19495 },
+ { 0x1E4D, 15920 },
+ { 0x1E4E, 19511 },
+ { 0x1E4F, 15936 },
+ { 0x1E50, 19547 },
+ { 0x1E51, 15972 },
+ { 0x1E52, 19539 },
+ { 0x1E53, 15964 },
+ { 0x1E54, 19676 },
+ { 0x1E55, 16094 },
+ { 0x1E56, 19663 },
+ { 0x1E57, 16081 },
+ { 0x1E58, 19732 },
+ { 0x1E59, 16177 },
+ { 0x1E5A, 19739 },
+ { 0x1E5B, 16184 },
+ { 0x1E5C, 19746 },
+ { 0x1E5D, 16191 },
+ { 0x1E5E, 19755 },
+ { 0x1E5F, 16200 },
+ { 0x1E60, 19815 },
+ { 0x1E61, 16296 },
+ { 0x1E62, 19822 },
+ { 0x1E63, 16303 },
+ { 0x1E64, 19845 },
+ { 0x1E65, 16332 },
+ { 0x1E66, 19860 },
+ { 0x1E67, 16347 },
+ { 0x1E68, 19829 },
+ { 0x1E69, 16310 },
+ { 0x1E6A, 19892 },
+ { 0x1E6B, 16400 },
+ { 0x1E6C, 19899 },
+ { 0x1E6D, 16407 },
+ { 0x1E6E, 19912 },
+ { 0x1E6F, 16426 },
+ { 0x1E70, 19958 },
+ { 0x1E71, 16492 },
+ { 0x1E72, 20167 },
+ { 0x1E73, 16701 },
+ { 0x1E74, 20081 },
+ { 0x1E75, 16615 },
+ { 0x1E76, 20180 },
+ { 0x1E77, 16721 },
+ { 0x1E78, 20073 },
+ { 0x1E79, 16607 },
+ { 0x1E7A, 20108 },
+ { 0x1E7B, 16642 },
+ { 0x1E7C, 20204 },
+ { 0x1E7D, 16758 },
+ { 0x1E7E, 20191 },
+ { 0x1E7F, 16732 },
+ { 0x1E80, 20247 },
+ { 0x1E81, 16815 },
+ { 0x1E82, 20241 },
+ { 0x1E83, 16809 },
+ { 0x1E84, 20253 },
+ { 0x1E85, 16821 },
+ { 0x1E86, 20221 },
+ { 0x1E87, 16782 },
+ { 0x1E88, 20228 },
+ { 0x1E89, 16789 },
+ { 0x1E8A, 20269 },
+ { 0x1E8B, 16837 },
+ { 0x1E8C, 20276 },
+ { 0x1E8D, 16851 },
+ { 0x1E8E, 20286 },
+ { 0x1E8F, 16861 },
+ { 0x1E90, 20416 },
+ { 0x1E91, 17032 },
+ { 0x1E92, 20372 },
+ { 0x1E93, 16954 },
+ { 0x1E94, 20385 },
+ { 0x1E95, 16973 },
+ { 0x1E96, 15244 },
+ { 0x1E97, 16479 },
+ { 0x1E98, 16802 },
+ { 0x1E99, 16894 },
+ { 0x1E9A, 14596 },
+ { 0x1E9B, 17346 },
+ { 0x1E9C, 17362 },
+ { 0x1E9D, 17354 },
+ { 0x1E9E, 20613 },
+ { 0x1E9F, 17440 },
+ { 0x1EA0, 18251 },
+ { 0x1EA1, 14493 },
+ { 0x1EA2, 18258 },
+ { 0x1EA3, 14500 },
+ { 0x1EA4, 18430 },
+ { 0x1EA5, 14687 },
+ { 0x1EA6, 18438 },
+ { 0x1EA7, 14695 },
+ { 0x1EA8, 18421 },
+ { 0x1EA9, 14678 },
+ { 0x1EAA, 18446 },
+ { 0x1EAB, 14703 },
+ { 0x1EAC, 18412 },
+ { 0x1EAD, 14669 },
+ { 0x1EAE, 18318 },
+ { 0x1EAF, 14560 },
+ { 0x1EB0, 18326 },
+ { 0x1EB1, 14568 },
+ { 0x1EB2, 18309 },
+ { 0x1EB3, 14551 },
+ { 0x1EB4, 18334 },
+ { 0x1EB5, 14576 },
+ { 0x1EB6, 18300 },
+ { 0x1EB7, 14542 },
+ { 0x1EB8, 18643 },
+ { 0x1EB9, 14936 },
+ { 0x1EBA, 18650 },
+ { 0x1EBB, 14943 },
+ { 0x1EBC, 18681 },
+ { 0x1EBD, 14980 },
+ { 0x1EBE, 18786 },
+ { 0x1EBF, 15092 },
+ { 0x1EC0, 18794 },
+ { 0x1EC1, 15100 },
+ { 0x1EC2, 18777 },
+ { 0x1EC3, 15083 },
+ { 0x1EC4, 18802 },
+ { 0x1EC5, 15108 },
+ { 0x1EC6, 18768 },
+ { 0x1EC7, 15074 },
+ { 0x1EC8, 18972 },
+ { 0x1EC9, 15305 },
+ { 0x1ECA, 18965 },
+ { 0x1ECB, 15298 },
+ { 0x1ECC, 19389 },
+ { 0x1ECD, 15806 },
+ { 0x1ECE, 19396 },
+ { 0x1ECF, 15821 },
+ { 0x1ED0, 19635 },
+ { 0x1ED1, 16053 },
+ { 0x1ED2, 19643 },
+ { 0x1ED3, 16061 },
+ { 0x1ED4, 19626 },
+ { 0x1ED5, 16044 },
+ { 0x1ED6, 19651 },
+ { 0x1ED7, 16069 },
+ { 0x1ED8, 19617 },
+ { 0x1ED9, 16035 },
+ { 0x1EDA, 19427 },
+ { 0x1EDB, 15852 },
+ { 0x1EDC, 19435 },
+ { 0x1EDD, 15860 },
+ { 0x1EDE, 19418 },
+ { 0x1EDF, 15843 },
+ { 0x1EE0, 19443 },
+ { 0x1EE1, 15868 },
+ { 0x1EE2, 19409 },
+ { 0x1EE3, 15834 },
+ { 0x1EE4, 19974 },
+ { 0x1EE5, 16508 },
+ { 0x1EE6, 19981 },
+ { 0x1EE7, 16515 },
+ { 0x1EE8, 20012 },
+ { 0x1EE9, 16546 },
+ { 0x1EEA, 20020 },
+ { 0x1EEB, 16554 },
+ { 0x1EEC, 20003 },
+ { 0x1EED, 16537 },
+ { 0x1EEE, 20028 },
+ { 0x1EEF, 16562 },
+ { 0x1EF0, 19994 },
+ { 0x1EF1, 16528 },
+ { 0x1EF2, 20325 },
+ { 0x1EF3, 16907 },
+ { 0x1EF4, 20293 },
+ { 0x1EF5, 16868 },
+ { 0x1EF6, 20306 },
+ { 0x1EF7, 16881 },
+ { 0x1EF8, 20331 },
+ { 0x1EF9, 16913 },
+ { 0x1EFA, 20759 },
+ { 0x1EFB, 17868 },
+ { 0x1EFC, 20754 },
+ { 0x1EFD, 17863 },
+ { 0x1EFE, 20313 },
+ { 0x1EFF, 16888 },
+ { 0x1F00, 11230 },
+ { 0x1F01, 11162 },
+ { 0x1F02, 11254 },
+ { 0x1F03, 11186 },
+ { 0x1F04, 11236 },
+ { 0x1F05, 11168 },
+ { 0x1F06, 11272 },
+ { 0x1F07, 11204 },
+ { 0x1F08, 12506 },
+ { 0x1F09, 12438 },
+ { 0x1F0A, 12530 },
+ { 0x1F0B, 12462 },
+ { 0x1F0C, 12512 },
+ { 0x1F0D, 12444 },
+ { 0x1F0E, 12548 },
+ { 0x1F0F, 12480 },
+ { 0x1F10, 11631 },
+ { 0x1F11, 11609 },
+ { 0x1F12, 11645 },
+ { 0x1F13, 11623 },
+ { 0x1F14, 11637 },
+ { 0x1F15, 11615 },
+ { 0x1F18, 12829 },
+ { 0x1F19, 12807 },
+ { 0x1F1A, 12843 },
+ { 0x1F1B, 12821 },
+ { 0x1F1C, 12835 },
+ { 0x1F1D, 12813 },
+ { 0x1F20, 10850 },
+ { 0x1F21, 10782 },
+ { 0x1F22, 10874 },
+ { 0x1F23, 10806 },
+ { 0x1F24, 10856 },
+ { 0x1F25, 10788 },
+ { 0x1F26, 10892 },
+ { 0x1F27, 10824 },
+ { 0x1F28, 12200 },
+ { 0x1F29, 12132 },
+ { 0x1F2A, 12224 },
+ { 0x1F2B, 12156 },
+ { 0x1F2C, 12206 },
+ { 0x1F2D, 12138 },
+ { 0x1F2E, 12242 },
+ { 0x1F2F, 12174 },
+ { 0x1F30, 11042 },
+ { 0x1F31, 11012 },
+ { 0x1F32, 11056 },
+ { 0x1F33, 11026 },
+ { 0x1F34, 11048 },
+ { 0x1F35, 11018 },
+ { 0x1F36, 11064 },
+ { 0x1F37, 11034 },
+ { 0x1F38, 12364 },
+ { 0x1F39, 12334 },
+ { 0x1F3A, 12378 },
+ { 0x1F3B, 12348 },
+ { 0x1F3C, 12370 },
+ { 0x1F3D, 12340 },
+ { 0x1F3E, 12386 },
+ { 0x1F3F, 12356 },
+ { 0x1F40, 11697 },
+ { 0x1F41, 11675 },
+ { 0x1F42, 11711 },
+ { 0x1F43, 11689 },
+ { 0x1F44, 11703 },
+ { 0x1F45, 11681 },
+ { 0x1F48, 12895 },
+ { 0x1F49, 12873 },
+ { 0x1F4A, 12909 },
+ { 0x1F4B, 12887 },
+ { 0x1F4C, 12901 },
+ { 0x1F4D, 12879 },
+ { 0x1F50, 11771 },
+ { 0x1F51, 11741 },
+ { 0x1F52, 11785 },
+ { 0x1F53, 11755 },
+ { 0x1F54, 11777 },
+ { 0x1F55, 11747 },
+ { 0x1F56, 11793 },
+ { 0x1F57, 11763 },
+ { 0x1F59, 12939 },
+ { 0x1F5B, 12953 },
+ { 0x1F5D, 12945 },
+ { 0x1F5F, 12961 },
+ { 0x1F60, 11461 },
+ { 0x1F61, 11393 },
+ { 0x1F62, 11485 },
+ { 0x1F63, 11417 },
+ { 0x1F64, 11467 },
+ { 0x1F65, 11399 },
+ { 0x1F66, 11503 },
+ { 0x1F67, 11435 },
+ { 0x1F68, 12698 },
+ { 0x1F69, 12630 },
+ { 0x1F6A, 12722 },
+ { 0x1F6B, 12654 },
+ { 0x1F6C, 12704 },
+ { 0x1F6D, 12636 },
+ { 0x1F6E, 12740 },
+ { 0x1F6F, 12672 },
+ { 0x1F70, 11304 },
+ { 0x1F71, 11148 },
+ { 0x1F72, 11659 },
+ { 0x1F73, 11603 },
+ { 0x1F74, 10924 },
+ { 0x1F75, 10768 },
+ { 0x1F76, 11078 },
+ { 0x1F77, 11006 },
+ { 0x1F78, 11725 },
+ { 0x1F79, 11669 },
+ { 0x1F7A, 11807 },
+ { 0x1F7B, 11735 },
+ { 0x1F7C, 11535 },
+ { 0x1F7D, 11379 },
+ { 0x1F80, 11290 },
+ { 0x1F81, 11222 },
+ { 0x1F82, 11262 },
+ { 0x1F83, 11194 },
+ { 0x1F84, 11244 },
+ { 0x1F85, 11176 },
+ { 0x1F86, 11280 },
+ { 0x1F87, 11212 },
+ { 0x1F88, 12566 },
+ { 0x1F89, 12498 },
+ { 0x1F8A, 12538 },
+ { 0x1F8B, 12470 },
+ { 0x1F8C, 12520 },
+ { 0x1F8D, 12452 },
+ { 0x1F8E, 12556 },
+ { 0x1F8F, 12488 },
+ { 0x1F90, 10910 },
+ { 0x1F91, 10842 },
+ { 0x1F92, 10882 },
+ { 0x1F93, 10814 },
+ { 0x1F94, 10864 },
+ { 0x1F95, 10796 },
+ { 0x1F96, 10900 },
+ { 0x1F97, 10832 },
+ { 0x1F98, 12260 },
+ { 0x1F99, 12192 },
+ { 0x1F9A, 12232 },
+ { 0x1F9B, 12164 },
+ { 0x1F9C, 12214 },
+ { 0x1F9D, 12146 },
+ { 0x1F9E, 12250 },
+ { 0x1F9F, 12182 },
+ { 0x1FA0, 11521 },
+ { 0x1FA1, 11453 },
+ { 0x1FA2, 11493 },
+ { 0x1FA3, 11425 },
+ { 0x1FA4, 11475 },
+ { 0x1FA5, 11407 },
+ { 0x1FA6, 11511 },
+ { 0x1FA7, 11443 },
+ { 0x1FA8, 12758 },
+ { 0x1FA9, 12690 },
+ { 0x1FAA, 12730 },
+ { 0x1FAB, 12662 },
+ { 0x1FAC, 12712 },
+ { 0x1FAD, 12644 },
+ { 0x1FAE, 12748 },
+ { 0x1FAF, 12680 },
+ { 0x1FB0, 11324 },
+ { 0x1FB1, 11318 },
+ { 0x1FB2, 11310 },
+ { 0x1FB3, 11344 },
+ { 0x1FB4, 11154 },
+ { 0x1FB6, 11330 },
+ { 0x1FB7, 11336 },
+ { 0x1FB8, 12592 },
+ { 0x1FB9, 12586 },
+ { 0x1FBA, 12580 },
+ { 0x1FBB, 12432 },
+ { 0x1FBC, 12598 },
+ { 0x1FBD, 13025 },
+ { 0x1FBE, 13524 },
+ { 0x1FBF, 10724 },
+ { 0x1FC0, 13372 },
+ { 0x1FC1, 13079 },
+ { 0x1FC2, 10930 },
+ { 0x1FC3, 10952 },
+ { 0x1FC4, 10774 },
+ { 0x1FC6, 10938 },
+ { 0x1FC7, 10944 },
+ { 0x1FC8, 12857 },
+ { 0x1FC9, 12801 },
+ { 0x1FCA, 12274 },
+ { 0x1FCB, 12126 },
+ { 0x1FCC, 12280 },
+ { 0x1FCD, 10730 },
+ { 0x1FCE, 10726 },
+ { 0x1FCF, 10734 },
+ { 0x1FD0, 11090 },
+ { 0x1FD1, 11084 },
+ { 0x1FD2, 11118 },
+ { 0x1FD3, 11102 },
+ { 0x1FD6, 11134 },
+ { 0x1FD7, 11126 },
+ { 0x1FD8, 12412 },
+ { 0x1FD9, 12406 },
+ { 0x1FDA, 12400 },
+ { 0x1FDB, 12328 },
+ { 0x1FDD, 10706 },
+ { 0x1FDE, 10702 },
+ { 0x1FDF, 10710 },
+ { 0x1FE0, 11819 },
+ { 0x1FE1, 11813 },
+ { 0x1FE2, 11847 },
+ { 0x1FE3, 11831 },
+ { 0x1FE4, 10976 },
+ { 0x1FE5, 10970 },
+ { 0x1FE6, 11863 },
+ { 0x1FE7, 11855 },
+ { 0x1FE8, 12987 },
+ { 0x1FE9, 12981 },
+ { 0x1FEA, 12975 },
+ { 0x1FEB, 12933 },
+ { 0x1FEC, 12298 },
+ { 0x1FED, 13075 },
+ { 0x1FEE, 13071 },
+ { 0x1FEF, 11900 },
+ { 0x1FF2, 11541 },
+ { 0x1FF3, 11563 },
+ { 0x1FF4, 11385 },
+ { 0x1FF6, 11549 },
+ { 0x1FF7, 11555 },
+ { 0x1FF8, 12923 },
+ { 0x1FF9, 12867 },
+ { 0x1FFA, 12772 },
+ { 0x1FFB, 12624 },
+ { 0x1FFC, 12778 },
+ { 0x1FFD, 10692 },
+ { 0x1FFE, 10700 },
+ { 0x2000, 77 },
+ { 0x2001, 71 },
+ { 0x2002, 79 },
+ { 0x2003, 73 },
+ { 0x2004, 74478 },
+ { 0x2005, 68661 },
+ { 0x2006, 68597 },
+ { 0x2007, 31771 },
+ { 0x2008, 69272 },
+ { 0x2009, 10051 },
+ { 0x200A, 9123 },
+ { 0x200B, 10089 },
+ { 0x200C, 10099 },
+ { 0x200D, 10092 },
+ { 0x200E, 74617 },
+ { 0x200F, 75041 },
+ { 0x2010, 33424 },
+ { 0x2011, 74240 },
+ { 0x2012, 31769 },
+ { 0x2013, 75 },
+ { 0x2014, 69 },
+ { 0x2015, 67636 },
+ { 0x2016, 31692 },
+ { 0x2017, 31548 },
+ { 0x2018, 9381 },
+ { 0x2019, 21908 },
+ { 0x201A, 35854 },
+ { 0x201B, 35868 },
+ { 0x201C, 9365 },
+ { 0x201D, 21892 },
+ { 0x201E, 31570 },
+ { 0x201F, 31700 },
+ { 0x2020, 31169 },
+ { 0x2021, 31587 },
+ { 0x2022, 30312 },
+ { 0x2023, 68599 },
+ { 0x2024, 7161 },
+ { 0x2025, 7766 },
+ { 0x2026, 67661 },
+ { 0x2027, 68663 },
+ { 0x2028, 9483 },
+ { 0x2029, 65751 },
+ { 0x202A, 74621 },
+ { 0x202B, 75045 },
+ { 0x202C, 7173 },
+ { 0x202D, 74619 },
+ { 0x202E, 75043 },
+ { 0x202F, 35576 },
+ { 0x2030, 7170 },
+ { 0x2031, 7164 },
+ { 0x2032, 21742 },
+ { 0x2033, 31574 },
+ { 0x2034, 37619 },
+ { 0x2035, 55468 },
+ { 0x2036, 55475 },
+ { 0x2037, 55491 },
+ { 0x2038, 10441 },
+ { 0x2039, 35858 },
+ { 0x203A, 35863 },
+ { 0x203B, 65808 },
+ { 0x203C, 31695 },
+ { 0x203D, 69263 },
+ { 0x203E, 54945 },
+ { 0x203F, 56009 },
+ { 0x2040, 57360 },
+ { 0x2041, 10442 },
+ { 0x2042, 45084 },
+ { 0x2043, 33428 },
+ { 0x2044, 51779 },
+ { 0x2045, 9404 },
+ { 0x2046, 21931 },
+ { 0x2047, 31668 },
+ { 0x2048, 55448 },
+ { 0x2049, 68658 },
+ { 0x204A, 55895 },
+ { 0x204B, 55494 },
+ { 0x204C, 10314 },
+ { 0x204D, 10331 },
+ { 0x204E, 6038 },
+ { 0x204F, 55505 },
+ { 0x2050, 10452 },
+ { 0x2051, 7789 },
+ { 0x2052, 66839 },
+ { 0x2053, 22751 },
+ { 0x2054, 53355 },
+ { 0x2055, 31779 },
+ { 0x2056, 22989 },
+ { 0x2057, 65761 },
+ { 0x2058, 9100 },
+ { 0x2059, 9094 },
+ { 0x205A, 7769 },
+ { 0x205B, 9097 },
+ { 0x205C, 31529 },
+ { 0x205D, 55910 },
+ { 0x205E, 56031 },
+ { 0x205F, 35557 },
+ { 0x2060, 10087 },
+ { 0x2061, 51784 },
+ { 0x2062, 64310 },
+ { 0x2063, 64312 },
+ { 0x2064, 64308 },
+ { 0x206A, 40633 },
+ { 0x206B, 44713 },
+ { 0x206C, 40629 },
+ { 0x206D, 44709 },
+ { 0x206E, 54880 },
+ { 0x206F, 42828 },
+ { 0x2070, 69298 },
+ { 0x2071, 69302 },
+ { 0x2074, 69288 },
+ { 0x2075, 69286 },
+ { 0x2076, 69282 },
+ { 0x2077, 69317 },
+ { 0x2078, 69300 },
+ { 0x2079, 69293 },
+ { 0x207A, 69295 },
+ { 0x207B, 69312 },
+ { 0x207C, 69321 },
+ { 0x207D, 69290 },
+ { 0x207E, 69314 },
+ { 0x207F, 69307 },
+ { 0x2080, 65843 },
+ { 0x2081, 65825 },
+ { 0x2082, 65829 },
+ { 0x2083, 65854 },
+ { 0x2084, 65833 },
+ { 0x2085, 65831 },
+ { 0x2086, 65827 },
+ { 0x2087, 65852 },
+ { 0x2088, 65845 },
+ { 0x2089, 65838 },
+ { 0x208A, 65840 },
+ { 0x208B, 65847 },
+ { 0x208C, 65856 },
+ { 0x208D, 65835 },
+ { 0x208E, 65849 },
+ { 0x2090, 20782 },
+ { 0x2091, 20787 },
+ { 0x2092, 20802 },
+ { 0x2093, 20822 },
+ { 0x2094, 20827 },
+ { 0x20A0, 74597 },
+ { 0x20A1, 10456 },
+ { 0x20A2, 48519 },
+ { 0x20A3, 31787 },
+ { 0x20A4, 9505 },
+ { 0x20A5, 9596 },
+ { 0x20A6, 21269 },
+ { 0x20A7, 35651 },
+ { 0x20A8, 22442 },
+ { 0x20A9, 8709 },
+ { 0x20AA, 6507 },
+ { 0x20AB, 9068 },
+ { 0x20AC, 9089 },
+ { 0x20AD, 5797 },
+ { 0x20AE, 37669 },
+ { 0x20AF, 40498 },
+ { 0x20B0, 31791 },
+ { 0x20B1, 9631 },
+ { 0x20B2, 40560 },
+ { 0x20B3, 37779 },
+ { 0x20B4, 40627 },
+ { 0x20B5, 8727 },
+ { 0x20D0, 57472 },
+ { 0x20D1, 57795 },
+ { 0x20D2, 57497 },
+ { 0x20D3, 57829 },
+ { 0x20D4, 58327 },
+ { 0x20D5, 58236 },
+ { 0x20D6, 57454 },
+ { 0x20D7, 57787 },
+ { 0x20D8, 57512 },
+ { 0x20D9, 58232 },
+ { 0x20DA, 58323 },
+ { 0x20DB, 57837 },
+ { 0x20DC, 57423 },
+ { 0x20DD, 58245 },
+ { 0x20DE, 58258 },
+ { 0x20DF, 58266 },
+ { 0x20E0, 58248 },
+ { 0x20E1, 57462 },
+ { 0x20E2, 58255 },
+ { 0x20E3, 58252 },
+ { 0x20E4, 58261 },
+ { 0x20E5, 57987 },
+ { 0x20E6, 57928 },
+ { 0x20E7, 57980 },
+ { 0x20E8, 57967 },
+ { 0x20E9, 57515 },
+ { 0x20EA, 58269 },
+ { 0x20EB, 57484 },
+ { 0x20EC, 58296 },
+ { 0x20ED, 58273 },
+ { 0x20EE, 57458 },
+ { 0x20EF, 57791 },
+ { 0x20F0, 57998 },
+ { 0x2100, 37774 },
+ { 0x2101, 56104 },
+ { 0x2102, 74558 },
+ { 0x2103, 31181 },
+ { 0x2104, 30465 },
+ { 0x2105, 8725 },
+ { 0x2106, 8723 },
+ { 0x2107, 10628 },
+ { 0x2108, 43021 },
+ { 0x2109, 31183 },
+ { 0x210A, 35815 },
+ { 0x210B, 35833 },
+ { 0x210C, 69390 },
+ { 0x210D, 74561 },
+ { 0x210E, 35654 },
+ { 0x210F, 35656 },
+ { 0x2110, 35836 },
+ { 0x2111, 69393 },
+ { 0x2112, 35839 },
+ { 0x2113, 35818 },
+ { 0x2114, 0 },
+ { 0x2115, 74564 },
+ { 0x2116, 35635 },
+ { 0x2117, 22671 },
+ { 0x2118, 35845 },
+ { 0x2119, 74567 },
+ { 0x211A, 74570 },
+ { 0x211B, 35848 },
+ { 0x211C, 69396 },
+ { 0x211D, 74573 },
+ { 0x211E, 74242 },
+ { 0x211F, 55455 },
+ { 0x2120, 43025 },
+ { 0x2121, 66040 },
+ { 0x2122, 23055 },
+ { 0x2123, 56010 },
+ { 0x2124, 74576 },
+ { 0x2125, 21731 },
+ { 0x2126, 6813 },
+ { 0x2127, 53346 },
+ { 0x2128, 69399 },
+ { 0x2129, 37676 },
+ { 0x212A, 34094 },
+ { 0x212B, 44717 },
+ { 0x212C, 35824 },
+ { 0x212D, 69387 },
+ { 0x212E, 63380 },
+ { 0x212F, 35812 },
+ { 0x2130, 35827 },
+ { 0x2131, 35830 },
+ { 0x2132, 37684 },
+ { 0x2133, 35842 },
+ { 0x2134, 35821 },
+ { 0x2135, 8716 },
+ { 0x2136, 4380 },
+ { 0x2137, 10636 },
+ { 0x2138, 10477 },
+ { 0x2139, 69246 },
+ { 0x213A, 43017 },
+ { 0x213B, 63383 },
+ { 0x213C, 74532 },
+ { 0x213D, 74535 },
+ { 0x213E, 74582 },
+ { 0x213F, 74579 },
+ { 0x2140, 74529 },
+ { 0x2141, 37689 },
+ { 0x2142, 37693 },
+ { 0x2143, 55507 },
+ { 0x2144, 37697 },
+ { 0x2145, 74554 },
+ { 0x2146, 74538 },
+ { 0x2147, 74542 },
+ { 0x2148, 74546 },
+ { 0x2149, 74550 },
+ { 0x214A, 55384 },
+ { 0x214B, 37687 },
+ { 0x214C, 7168 },
+ { 0x214D, 69338 },
+ { 0x214E, 37681 },
+ { 0x214F, 36848 },
+ { 0x2153, 37724 },
+ { 0x2154, 37740 },
+ { 0x2155, 37716 },
+ { 0x2156, 37736 },
+ { 0x2157, 37760 },
+ { 0x2158, 37752 },
+ { 0x2159, 37720 },
+ { 0x215A, 37744 },
+ { 0x215B, 37728 },
+ { 0x215C, 37764 },
+ { 0x215D, 37748 },
+ { 0x215E, 37756 },
+ { 0x215F, 51781 },
+ { 0x2160, 22020 },
+ { 0x2161, 22057 },
+ { 0x2162, 22095 },
+ { 0x2163, 22071 },
+ { 0x2164, 22060 },
+ { 0x2165, 22042 },
+ { 0x2166, 22092 },
+ { 0x2167, 22077 },
+ { 0x2168, 22074 },
+ { 0x2169, 22050 },
+ { 0x216A, 22098 },
+ { 0x216B, 22101 },
+ { 0x216C, 22080 },
+ { 0x216D, 22023 },
+ { 0x216E, 22063 },
+ { 0x216F, 22032 },
+ { 0x2170, 22521 },
+ { 0x2171, 22543 },
+ { 0x2172, 22576 },
+ { 0x2173, 22556 },
+ { 0x2174, 22547 },
+ { 0x2175, 22535 },
+ { 0x2176, 22572 },
+ { 0x2177, 22564 },
+ { 0x2178, 22560 },
+ { 0x2179, 22539 },
+ { 0x217A, 22580 },
+ { 0x217B, 22584 },
+ { 0x217C, 22568 },
+ { 0x217D, 22525 },
+ { 0x217E, 22551 },
+ { 0x217F, 22530 },
+ { 0x2180, 22036 },
+ { 0x2181, 22067 },
+ { 0x2182, 22053 },
+ { 0x2183, 22104 },
+ { 0x2184, 17753 },
+ { 0x2185, 22045 },
+ { 0x2186, 22083 },
+ { 0x2187, 22088 },
+ { 0x2188, 22027 },
+ { 0x2190, 64325 },
+ { 0x2191, 44542 },
+ { 0x2192, 67992 },
+ { 0x2193, 63251 },
+ { 0x2194, 9258 },
+ { 0x2195, 303 },
+ { 0x2196, 21324 },
+ { 0x2197, 21277 },
+ { 0x2198, 22674 },
+ { 0x2199, 22713 },
+ { 0x219A, 64414 },
+ { 0x219B, 68077 },
+ { 0x219C, 64322 },
+ { 0x219D, 67989 },
+ { 0x219E, 64318 },
+ { 0x219F, 44538 },
+ { 0x21A0, 67985 },
+ { 0x21A1, 63247 },
+ { 0x21A2, 64384 },
+ { 0x21A3, 68042 },
+ { 0x21A4, 64345 },
+ { 0x21A5, 44548 },
+ { 0x21A6, 68003 },
+ { 0x21A7, 63257 },
+ { 0x21A8, 306 },
+ { 0x21A9, 64371 },
+ { 0x21AA, 68029 },
+ { 0x21AB, 64375 },
+ { 0x21AC, 68033 },
+ { 0x21AD, 9254 },
+ { 0x21AE, 9268 },
+ { 0x21AF, 63312 },
+ { 0x21B0, 44552 },
+ { 0x21B1, 44557 },
+ { 0x21B2, 63261 },
+ { 0x21B3, 63266 },
+ { 0x21B4, 68061 },
+ { 0x21B5, 63271 },
+ { 0x21B6, 74484 },
+ { 0x21B7, 57362 },
+ { 0x21B8, 21327 },
+ { 0x21B9, 64331 },
+ { 0x21BA, 74488 },
+ { 0x21BB, 57366 },
+ { 0x21BC, 64592 },
+ { 0x21BD, 64597 },
+ { 0x21BE, 44689 },
+ { 0x21BF, 44684 },
+ { 0x21C0, 68257 },
+ { 0x21C1, 68262 },
+ { 0x21C2, 63370 },
+ { 0x21C3, 63365 },
+ { 0x21C4, 68014 },
+ { 0x21C5, 44572 },
+ { 0x21C6, 64356 },
+ { 0x21C7, 64500 },
+ { 0x21C8, 44628 },
+ { 0x21C9, 68165 },
+ { 0x21CA, 63306 },
+ { 0x21CB, 64510 },
+ { 0x21CC, 68175 },
+ { 0x21CD, 64486 },
+ { 0x21CE, 9297 },
+ { 0x21CF, 68151 },
+ { 0x21D0, 64478 },
+ { 0x21D1, 44625 },
+ { 0x21D2, 68143 },
+ { 0x21D3, 63303 },
+ { 0x21D4, 9293 },
+ { 0x21D5, 319 },
+ { 0x21D6, 21365 },
+ { 0x21D7, 21314 },
+ { 0x21D8, 22709 },
+ { 0x21D9, 22736 },
+ { 0x21DA, 64507 },
+ { 0x21DB, 68172 },
+ { 0x21DC, 64602 },
+ { 0x21DD, 68267 },
+ { 0x21DE, 44562 },
+ { 0x21DF, 63276 },
+ { 0x21E0, 64471 },
+ { 0x21E1, 44622 },
+ { 0x21E2, 68136 },
+ { 0x21E3, 63300 },
+ { 0x21E4, 64327 },
+ { 0x21E5, 67994 },
+ { 0x21E6, 64468 },
+ { 0x21E7, 44581 },
+ { 0x21E8, 68128 },
+ { 0x21E9, 63295 },
+ { 0x21EA, 44605 },
+ { 0x21EB, 44584 },
+ { 0x21EC, 44597 },
+ { 0x21ED, 44589 },
+ { 0x21EE, 44610 },
+ { 0x21EF, 44614 },
+ { 0x21F0, 68131 },
+ { 0x21F1, 21333 },
+ { 0x21F2, 22677 },
+ { 0x21F3, 315 },
+ { 0x21F4, 21805 },
+ { 0x21F5, 63286 },
+ { 0x21F6, 22995 },
+ { 0x21F7, 64418 },
+ { 0x21F8, 68081 },
+ { 0x21F9, 9273 },
+ { 0x21FA, 64408 },
+ { 0x21FB, 68071 },
+ { 0x21FC, 9261 },
+ { 0x21FD, 64655 },
+ { 0x21FE, 68320 },
+ { 0x21FF, 9310 },
+ { 0x2200, 5791 },
+ { 0x2201, 66842 },
+ { 0x2202, 42971 },
+ { 0x2203, 22987 },
+ { 0x2204, 22983 },
+ { 0x2205, 10570 },
+ { 0x2206, 64305 },
+ { 0x2207, 21268 },
+ { 0x2208, 40500 },
+ { 0x2209, 6719 },
+ { 0x220A, 22599 },
+ { 0x220B, 48398 },
+ { 0x220C, 9033 },
+ { 0x220D, 22626 },
+ { 0x220E, 5788 },
+ { 0x220F, 21260 },
+ { 0x2210, 21262 },
+ { 0x2211, 21264 },
+ { 0x2212, 21178 },
+ { 0x2213, 74623 },
+ { 0x2214, 5780 },
+ { 0x2215, 50310 },
+ { 0x2216, 7176 },
+ { 0x2217, 45082 },
+ { 0x2218, 9706 },
+ { 0x2219, 30313 },
+ { 0x221A, 36200 },
+ { 0x221B, 9013 },
+ { 0x221C, 31785 },
+ { 0x221D, 74470 },
+ { 0x221E, 53300 },
+ { 0x221F, 21771 },
+ { 0x2220, 10106 },
+ { 0x2221, 53732 },
+ { 0x2222, 65815 },
+ { 0x2223, 40489 },
+ { 0x2224, 9023 },
+ { 0x2225, 54946 },
+ { 0x2226, 6764 },
+ { 0x2227, 40959 },
+ { 0x2228, 40927 },
+ { 0x2229, 69570 },
+ { 0x222A, 23058 },
+ { 0x222B, 53306 },
+ { 0x222C, 31664 },
+ { 0x222D, 37633 },
+ { 0x222E, 39790 },
+ { 0x222F, 43581 },
+ { 0x2230, 37710 },
+ { 0x2231, 57381 },
+ { 0x2232, 57378 },
+ { 0x2233, 74500 },
+ { 0x2234, 66307 },
+ { 0x2235, 37781 },
+ { 0x2236, 21746 },
+ { 0x2237, 67972 },
+ { 0x2238, 5784 },
+ { 0x2239, 31766 },
+ { 0x223A, 63794 },
+ { 0x223B, 67635 },
+ { 0x223C, 23021 },
+ { 0x223D, 55470 },
+ { 0x223E, 53349 },
+ { 0x223F, 9708 },
+ { 0x2240, 37772 },
+ { 0x2241, 6733 },
+ { 0x2242, 21204 },
+ { 0x2243, 75048 },
+ { 0x2244, 6777 },
+ { 0x2245, 74516 },
+ { 0x2246, 74505 },
+ { 0x2247, 42821 },
+ { 0x2248, 23692 },
+ { 0x2249, 6735 },
+ { 0x224A, 23687 },
+ { 0x224B, 37621 },
+ { 0x224C, 4011 },
+ { 0x224D, 67226 },
+ { 0x224E, 74602 },
+ { 0x224F, 67222 },
+ { 0x2250, 66827 },
+ { 0x2251, 74599 },
+ { 0x2252, 74519 },
+ { 0x2253, 13722 },
+ { 0x2254, 10458 },
+ { 0x2255, 31764 },
+ { 0x2256, 9695 },
+ { 0x2257, 9701 },
+ { 0x2258, 68616 },
+ { 0x2259, 63382 },
+ { 0x225A, 68654 },
+ { 0x225B, 9718 },
+ { 0x225C, 10479 },
+ { 0x225D, 10596 },
+ { 0x225E, 53730 },
+ { 0x225F, 67976 },
+ { 0x2260, 6730 },
+ { 0x2261, 64292 },
+ { 0x2262, 6767 },
+ { 0x2263, 55525 },
+ { 0x2264, 64658 },
+ { 0x2265, 69429 },
+ { 0x2266, 64722 },
+ { 0x2267, 69493 },
+ { 0x2268, 64712 },
+ { 0x2269, 69483 },
+ { 0x226A, 9599 },
+ { 0x226B, 9601 },
+ { 0x226C, 38099 },
+ { 0x226D, 6772 },
+ { 0x226E, 6770 },
+ { 0x226F, 6775 },
+ { 0x2270, 42793 },
+ { 0x2271, 42807 },
+ { 0x2272, 64692 },
+ { 0x2273, 69466 },
+ { 0x2274, 42798 },
+ { 0x2275, 42816 },
+ { 0x2276, 64699 },
+ { 0x2277, 69463 },
+ { 0x2278, 42803 },
+ { 0x2279, 42812 },
+ { 0x227A, 55334 },
+ { 0x227B, 55528 },
+ { 0x227C, 55335 },
+ { 0x227D, 55529 },
+ { 0x227E, 55339 },
+ { 0x227F, 55533 },
+ { 0x2280, 9052 },
+ { 0x2281, 9060 },
+ { 0x2282, 36469 },
+ { 0x2283, 55576 },
+ { 0x2284, 6711 },
+ { 0x2285, 6715 },
+ { 0x2286, 36471 },
+ { 0x2287, 55578 },
+ { 0x2288, 42779 },
+ { 0x2289, 42786 },
+ { 0x228A, 36484 },
+ { 0x228B, 55591 },
+ { 0x228C, 54875 },
+ { 0x228D, 54878 },
+ { 0x228E, 54876 },
+ { 0x228F, 36310 },
+ { 0x2290, 36425 },
+ { 0x2291, 36320 },
+ { 0x2292, 36435 },
+ { 0x2293, 36092 },
+ { 0x2294, 36094 },
+ { 0x2295, 38882 },
+ { 0x2296, 39182 },
+ { 0x2297, 39184 },
+ { 0x2298, 39468 },
+ { 0x2299, 38871 },
+ { 0x229A, 38884 },
+ { 0x229B, 39462 },
+ { 0x229C, 39194 },
+ { 0x229D, 38874 },
+ { 0x229E, 43560 },
+ { 0x229F, 43562 },
+ { 0x22A0, 43567 },
+ { 0x22A1, 43553 },
+ { 0x22A2, 21769 },
+ { 0x22A3, 9202 },
+ { 0x22A4, 9073 },
+ { 0x22A5, 326 },
+ { 0x22A6, 56111 },
+ { 0x22A7, 35572 },
+ { 0x22A8, 10054 },
+ { 0x22A9, 31782 },
+ { 0x22AA, 37641 },
+ { 0x22AB, 31686 },
+ { 0x22AC, 9020 },
+ { 0x22AD, 6725 },
+ { 0x22AE, 9017 },
+ { 0x22AF, 42772 },
+ { 0x22B0, 55379 },
+ { 0x22B1, 55573 },
+ { 0x22B2, 35580 },
+ { 0x22B3, 48401 },
+ { 0x22B4, 35583 },
+ { 0x22B5, 48405 },
+ { 0x22B6, 54929 },
+ { 0x22B7, 13720 },
+ { 0x22B8, 54874 },
+ { 0x22B9, 64288 },
+ { 0x22BA, 69248 },
+ { 0x22BB, 8711 },
+ { 0x22BC, 9603 },
+ { 0x22BD, 6710 },
+ { 0x22BE, 21773 },
+ { 0x22BF, 21972 },
+ { 0x22C0, 21257 },
+ { 0x22C1, 21254 },
+ { 0x22C2, 21266 },
+ { 0x22C3, 21218 },
+ { 0x22C4, 40327 },
+ { 0x22C5, 5786 },
+ { 0x22C6, 9720 },
+ { 0x22C7, 50312 },
+ { 0x22C8, 30294 },
+ { 0x22C9, 9372 },
+ { 0x22CA, 21899 },
+ { 0x22CB, 9461 },
+ { 0x22CC, 21988 },
+ { 0x22CD, 55472 },
+ { 0x22CE, 10471 },
+ { 0x22CF, 10474 },
+ { 0x22D0, 31610 },
+ { 0x22D1, 31673 },
+ { 0x22D2, 31698 },
+ { 0x22D3, 31585 },
+ { 0x22D4, 65756 },
+ { 0x22D5, 10616 },
+ { 0x22D6, 64728 },
+ { 0x22D7, 69499 },
+ { 0x22D8, 10057 },
+ { 0x22D9, 10060 },
+ { 0x22DA, 64775 },
+ { 0x22DB, 69546 },
+ { 0x22DC, 10608 },
+ { 0x22DD, 10612 },
+ { 0x22DE, 10600 },
+ { 0x22DF, 10604 },
+ { 0x22E0, 9055 },
+ { 0x22E1, 9063 },
+ { 0x22E2, 6750 },
+ { 0x22E3, 6757 },
+ { 0x22E4, 36313 },
+ { 0x22E5, 36428 },
+ { 0x22E6, 64717 },
+ { 0x22E7, 69488 },
+ { 0x22E8, 55343 },
+ { 0x22E9, 55537 },
+ { 0x22EA, 6739 },
+ { 0x22EB, 9038 },
+ { 0x22EC, 6743 },
+ { 0x22ED, 9044 },
+ { 0x22EE, 56096 },
+ { 0x22EF, 41192 },
+ { 0x22F0, 337 },
+ { 0x22F1, 9080 },
+ { 0x22F2, 40513 },
+ { 0x22F3, 40527 },
+ { 0x22F4, 22607 },
+ { 0x22F5, 40502 },
+ { 0x22F6, 40519 },
+ { 0x22F7, 22602 },
+ { 0x22F8, 40523 },
+ { 0x22F9, 40507 },
+ { 0x22FA, 48412 },
+ { 0x22FB, 48420 },
+ { 0x22FC, 22634 },
+ { 0x22FD, 48417 },
+ { 0x22FE, 22630 },
+ { 0x22FF, 12 },
+ { 0x2300, 50306 },
+ { 0x2301, 50318 },
+ { 0x2302, 13719 },
+ { 0x2303, 341 },
+ { 0x2304, 9084 },
+ { 0x2305, 67971 },
+ { 0x2306, 69271 },
+ { 0x2307, 10080 },
+ { 0x2308, 9431 },
+ { 0x2309, 21958 },
+ { 0x230A, 9249 },
+ { 0x230B, 21842 },
+ { 0x230C, 30268 },
+ { 0x230D, 30255 },
+ { 0x230E, 7747 },
+ { 0x230F, 7734 },
+ { 0x2310, 55456 },
+ { 0x2311, 36399 },
+ { 0x2312, 4379 },
+ { 0x2313, 43024 },
+ { 0x2314, 35851 },
+ { 0x2315, 66045 },
+ { 0x2316, 55332 },
+ { 0x2317, 56102 },
+ { 0x2318, 21735 },
+ { 0x2319, 37671 },
+ { 0x231A, 23154 },
+ { 0x231B, 64291 },
+ { 0x231C, 7741 },
+ { 0x231D, 7754 },
+ { 0x231E, 30262 },
+ { 0x231F, 30275 },
+ { 0x2320, 7731 },
+ { 0x2321, 30252 },
+ { 0x2322, 10635 },
+ { 0x2323, 22670 },
+ { 0x2324, 343 },
+ { 0x2325, 35641 },
+ { 0x2326, 10624 },
+ { 0x2327, 7 },
+ { 0x2328, 53725 },
+ { 0x2329, 74605 },
+ { 0x232A, 75087 },
+ { 0x232B, 10620 },
+ { 0x232C, 38093 },
+ { 0x232D, 69402 },
+ { 0x232E, 4014 },
+ { 0x232F, 55656 },
+ { 0x2330, 23053 },
+ { 0x2331, 63245 },
+ { 0x2332, 39788 },
+ { 0x2333, 22479 },
+ { 0x2334, 68618 },
+ { 0x2335, 68619 },
+ { 0x2336, 4325 },
+ { 0x2337, 4329 },
+ { 0x2338, 4159 },
+ { 0x2339, 4174 },
+ { 0x233A, 4179 },
+ { 0x233B, 4132 },
+ { 0x233C, 4169 },
+ { 0x233D, 4305 },
+ { 0x233E, 4295 },
+ { 0x233F, 4276 },
+ { 0x2340, 4349 },
+ { 0x2341, 4164 },
+ { 0x2342, 4195 },
+ { 0x2343, 4212 },
+ { 0x2344, 4223 },
+ { 0x2345, 4359 },
+ { 0x2346, 4369 },
+ { 0x2347, 4206 },
+ { 0x2348, 4217 },
+ { 0x2349, 4315 },
+ { 0x234A, 4090 },
+ { 0x234B, 4247 },
+ { 0x234C, 4143 },
+ { 0x234D, 4154 },
+ { 0x234E, 4084 },
+ { 0x234F, 4344 },
+ { 0x2350, 4184 },
+ { 0x2351, 4031 },
+ { 0x2352, 4049 },
+ { 0x2353, 4121 },
+ { 0x2354, 4127 },
+ { 0x2355, 4025 },
+ { 0x2356, 4354 },
+ { 0x2357, 4200 },
+ { 0x2358, 4271 },
+ { 0x2359, 4252 },
+ { 0x235A, 4334 },
+ { 0x235B, 4064 },
+ { 0x235C, 4310 },
+ { 0x235D, 4019 },
+ { 0x235E, 4266 },
+ { 0x235F, 4300 },
+ { 0x2360, 4149 },
+ { 0x2361, 4037 },
+ { 0x2362, 4059 },
+ { 0x2363, 4228 },
+ { 0x2364, 4069 },
+ { 0x2365, 4320 },
+ { 0x2366, 4078 },
+ { 0x2367, 4111 },
+ { 0x2368, 4286 },
+ { 0x2369, 4374 },
+ { 0x236A, 4242 },
+ { 0x236B, 4054 },
+ { 0x236C, 4291 },
+ { 0x236D, 4281 },
+ { 0x236E, 4364 },
+ { 0x236F, 4137 },
+ { 0x2370, 4190 },
+ { 0x2371, 4096 },
+ { 0x2372, 4043 },
+ { 0x2373, 4102 },
+ { 0x2374, 4074 },
+ { 0x2375, 4257 },
+ { 0x2376, 4237 },
+ { 0x2377, 4339 },
+ { 0x2378, 4106 },
+ { 0x2379, 4261 },
+ { 0x237A, 4233 },
+ { 0x237B, 6727 },
+ { 0x237C, 21777 },
+ { 0x237D, 68594 },
+ { 0x237E, 8721 },
+ { 0x237F, 56078 },
+ { 0x2380, 64306 },
+ { 0x2381, 66843 },
+ { 0x2382, 74526 },
+ { 0x2383, 50320 },
+ { 0x2384, 68613 },
+ { 0x2385, 23322 },
+ { 0x2386, 10594 },
+ { 0x2387, 68603 },
+ { 0x2388, 9125 },
+ { 0x2389, 39769 },
+ { 0x238A, 39614 },
+ { 0x238B, 30307 },
+ { 0x238C, 10055 },
+ { 0x238D, 67877 },
+ { 0x238E, 67663 },
+ { 0x238F, 75142 },
+ { 0x2390, 75145 },
+ { 0x2391, 75150 },
+ { 0x2392, 75148 },
+ { 0x2393, 31220 },
+ { 0x2394, 75137 },
+ { 0x2395, 4117 },
+ { 0x2396, 39959 },
+ { 0x2397, 55382 },
+ { 0x2398, 9604 },
+ { 0x2399, 21743 },
+ { 0x239A, 10449 },
+ { 0x239B, 9470 },
+ { 0x239C, 9474 },
+ { 0x239D, 9466 },
+ { 0x239E, 21997 },
+ { 0x239F, 22001 },
+ { 0x23A0, 21993 },
+ { 0x23A1, 9419 },
+ { 0x23A2, 9424 },
+ { 0x23A3, 9414 },
+ { 0x23A4, 21946 },
+ { 0x23A5, 21951 },
+ { 0x23A6, 21941 },
+ { 0x23A7, 9239 },
+ { 0x23A8, 9244 },
+ { 0x23A9, 9234 },
+ { 0x23AA, 10468 },
+ { 0x23AB, 21832 },
+ { 0x23AC, 21837 },
+ { 0x23AD, 21827 },
+ { 0x23AE, 53342 },
+ { 0x23AF, 67638 },
+ { 0x23B0, 23099 },
+ { 0x23B1, 23123 },
+ { 0x23B2, 65859 },
+ { 0x23B3, 65864 },
+ { 0x23B4, 7757 },
+ { 0x23B5, 30278 },
+ { 0x23B6, 30281 },
+ { 0x23B7, 42979 },
+ { 0x23B8, 9457 },
+ { 0x23B9, 21984 },
+ { 0x23BA, 67646 },
+ { 0x23BB, 67649 },
+ { 0x23BC, 67652 },
+ { 0x23BD, 67655 },
+ { 0x23BE, 63205 },
+ { 0x23BF, 63225 },
+ { 0x23C0, 63232 },
+ { 0x23C1, 63182 },
+ { 0x23C2, 63152 },
+ { 0x23C3, 63238 },
+ { 0x23C4, 63190 },
+ { 0x23C5, 63160 },
+ { 0x23C6, 63212 },
+ { 0x23C7, 63174 },
+ { 0x23C8, 63144 },
+ { 0x23C9, 63168 },
+ { 0x23CA, 63138 },
+ { 0x23CB, 63198 },
+ { 0x23CC, 63218 },
+ { 0x23CD, 36165 },
+ { 0x23CE, 35797 },
+ { 0x23CF, 10568 },
+ { 0x23D0, 56083 },
+ { 0x23D1, 53857 },
+ { 0x23D2, 53853 },
+ { 0x23D3, 53859 },
+ { 0x23D4, 53848 },
+ { 0x23D5, 53839 },
+ { 0x23D6, 53844 },
+ { 0x23D7, 53863 },
+ { 0x23D8, 53867 },
+ { 0x23D9, 53865 },
+ { 0x23DA, 10541 },
+ { 0x23DB, 9119 },
+ { 0x23DC, 7764 },
+ { 0x23DD, 30292 },
+ { 0x23DE, 7744 },
+ { 0x23DF, 30265 },
+ { 0x23E0, 7760 },
+ { 0x23E1, 30288 },
+ { 0x23E2, 23412 },
+ { 0x23E3, 38095 },
+ { 0x23E4, 74477 },
+ { 0x23E5, 51778 },
+ { 0x23E6, 67 },
+ { 0x23E7, 67224 },
+ { 0x2400, 36757 },
+ { 0x2401, 36784 },
+ { 0x2402, 36779 },
+ { 0x2403, 36716 },
+ { 0x2404, 36726 },
+ { 0x2405, 36827 },
+ { 0x2406, 36864 },
+ { 0x2407, 36737 },
+ { 0x2408, 36845 },
+ { 0x2409, 36852 },
+ { 0x240A, 36753 },
+ { 0x240B, 36841 },
+ { 0x240C, 36749 },
+ { 0x240D, 36833 },
+ { 0x240E, 36772 },
+ { 0x240F, 36768 },
+ { 0x2410, 36740 },
+ { 0x2411, 36800 },
+ { 0x2412, 36805 },
+ { 0x2413, 36815 },
+ { 0x2414, 36810 },
+ { 0x2415, 36837 },
+ { 0x2416, 36867 },
+ { 0x2417, 36731 },
+ { 0x2418, 36789 },
+ { 0x2419, 36721 },
+ { 0x241A, 36856 },
+ { 0x241B, 36820 },
+ { 0x241C, 36745 },
+ { 0x241D, 36764 },
+ { 0x241E, 36823 },
+ { 0x241F, 36760 },
+ { 0x2420, 36776 },
+ { 0x2421, 36792 },
+ { 0x2422, 10376 },
+ { 0x2423, 9606 },
+ { 0x2424, 36830 },
+ { 0x2425, 36795 },
+ { 0x2426, 36859 },
+ { 0x2440, 6791 },
+ { 0x2441, 6793 },
+ { 0x2442, 6789 },
+ { 0x2443, 6810 },
+ { 0x2444, 6784 },
+ { 0x2445, 6781 },
+ { 0x2446, 6799 },
+ { 0x2447, 6795 },
+ { 0x2448, 6787 },
+ { 0x2449, 6806 },
+ { 0x244A, 6803 },
+ { 0x2460, 38887 },
+ { 0x2461, 38893 },
+ { 0x2462, 38914 },
+ { 0x2463, 38899 },
+ { 0x2464, 38896 },
+ { 0x2465, 38890 },
+ { 0x2466, 38911 },
+ { 0x2467, 38908 },
+ { 0x2468, 38902 },
+ { 0x2469, 39306 },
+ { 0x246A, 39351 },
+ { 0x246B, 39393 },
+ { 0x246C, 39450 },
+ { 0x246D, 39444 },
+ { 0x246E, 39435 },
+ { 0x246F, 39438 },
+ { 0x2470, 39453 },
+ { 0x2471, 39441 },
+ { 0x2472, 39447 },
+ { 0x2473, 39396 },
+ { 0x2474, 74628 },
+ { 0x2475, 74634 },
+ { 0x2476, 74652 },
+ { 0x2477, 74640 },
+ { 0x2478, 74637 },
+ { 0x2479, 74631 },
+ { 0x247A, 74649 },
+ { 0x247B, 74646 },
+ { 0x247C, 74643 },
+ { 0x247D, 74896 },
+ { 0x247E, 74899 },
+ { 0x247F, 74902 },
+ { 0x2480, 74923 },
+ { 0x2481, 74917 },
+ { 0x2482, 74908 },
+ { 0x2483, 74911 },
+ { 0x2484, 74926 },
+ { 0x2485, 74914 },
+ { 0x2486, 74920 },
+ { 0x2487, 74905 },
+ { 0x2488, 10484 },
+ { 0x2489, 10496 },
+ { 0x248A, 10534 },
+ { 0x248B, 10508 },
+ { 0x248C, 10502 },
+ { 0x248D, 10490 },
+ { 0x248E, 10528 },
+ { 0x248F, 10522 },
+ { 0x2490, 10514 },
+ { 0x2491, 35589 },
+ { 0x2492, 35595 },
+ { 0x2493, 35599 },
+ { 0x2494, 35627 },
+ { 0x2495, 35619 },
+ { 0x2496, 35607 },
+ { 0x2497, 35611 },
+ { 0x2498, 35631 },
+ { 0x2499, 35615 },
+ { 0x249A, 35623 },
+ { 0x249B, 35603 },
+ { 0x249C, 74655 },
+ { 0x249D, 74660 },
+ { 0x249E, 74665 },
+ { 0x249F, 74670 },
+ { 0x24A0, 74675 },
+ { 0x24A1, 74680 },
+ { 0x24A2, 74685 },
+ { 0x24A3, 74690 },
+ { 0x24A4, 74695 },
+ { 0x24A5, 74700 },
+ { 0x24A6, 74705 },
+ { 0x24A7, 74710 },
+ { 0x24A8, 74715 },
+ { 0x24A9, 74720 },
+ { 0x24AA, 74725 },
+ { 0x24AB, 74730 },
+ { 0x24AC, 74735 },
+ { 0x24AD, 74740 },
+ { 0x24AE, 74745 },
+ { 0x24AF, 74750 },
+ { 0x24B0, 74755 },
+ { 0x24B1, 74760 },
+ { 0x24B2, 74765 },
+ { 0x24B3, 74770 },
+ { 0x24B4, 74775 },
+ { 0x24B5, 74780 },
+ { 0x24B6, 39052 },
+ { 0x24B7, 39057 },
+ { 0x24B8, 39062 },
+ { 0x24B9, 39067 },
+ { 0x24BA, 39072 },
+ { 0x24BB, 39077 },
+ { 0x24BC, 39082 },
+ { 0x24BD, 39087 },
+ { 0x24BE, 39092 },
+ { 0x24BF, 39097 },
+ { 0x24C0, 39102 },
+ { 0x24C1, 39107 },
+ { 0x24C2, 39112 },
+ { 0x24C3, 39117 },
+ { 0x24C4, 39122 },
+ { 0x24C5, 39127 },
+ { 0x24C6, 39132 },
+ { 0x24C7, 39137 },
+ { 0x24C8, 39142 },
+ { 0x24C9, 39147 },
+ { 0x24CA, 39152 },
+ { 0x24CB, 39157 },
+ { 0x24CC, 39162 },
+ { 0x24CD, 39167 },
+ { 0x24CE, 39172 },
+ { 0x24CF, 39177 },
+ { 0x24D0, 38922 },
+ { 0x24D1, 38927 },
+ { 0x24D2, 38932 },
+ { 0x24D3, 38937 },
+ { 0x24D4, 38942 },
+ { 0x24D5, 38947 },
+ { 0x24D6, 38952 },
+ { 0x24D7, 38957 },
+ { 0x24D8, 38962 },
+ { 0x24D9, 38967 },
+ { 0x24DA, 38972 },
+ { 0x24DB, 38977 },
+ { 0x24DC, 38982 },
+ { 0x24DD, 38987 },
+ { 0x24DE, 38992 },
+ { 0x24DF, 38997 },
+ { 0x24E0, 39002 },
+ { 0x24E1, 39007 },
+ { 0x24E2, 39012 },
+ { 0x24E3, 39017 },
+ { 0x24E4, 39022 },
+ { 0x24E5, 39027 },
+ { 0x24E6, 39032 },
+ { 0x24E7, 39037 },
+ { 0x24E8, 39042 },
+ { 0x24E9, 39047 },
+ { 0x24EA, 38905 },
+ { 0x24EB, 54887 },
+ { 0x24EC, 54891 },
+ { 0x24ED, 54919 },
+ { 0x24EE, 54911 },
+ { 0x24EF, 54899 },
+ { 0x24F0, 54903 },
+ { 0x24F1, 54923 },
+ { 0x24F2, 54907 },
+ { 0x24F3, 54915 },
+ { 0x24F4, 54895 },
+ { 0x24F5, 31612 },
+ { 0x24F6, 31620 },
+ { 0x24F7, 31644 },
+ { 0x24F8, 31628 },
+ { 0x24F9, 31624 },
+ { 0x24FA, 31616 },
+ { 0x24FB, 31640 },
+ { 0x24FC, 31636 },
+ { 0x24FD, 31632 },
+ { 0x24FE, 31648 },
+ { 0x24FF, 54883 },
+ { 0x2500, 5020 },
+ { 0x2501, 4841 },
+ { 0x2502, 4986 },
+ { 0x2503, 4807 },
+ { 0x2504, 4957 },
+ { 0x2505, 4801 },
+ { 0x2506, 4951 },
+ { 0x2507, 4795 },
+ { 0x2508, 5014 },
+ { 0x2509, 4835 },
+ { 0x250A, 5008 },
+ { 0x250B, 4829 },
+ { 0x250C, 4912 },
+ { 0x250D, 4595 },
+ { 0x250E, 4550 },
+ { 0x250F, 4756 },
+ { 0x2510, 4906 },
+ { 0x2511, 4580 },
+ { 0x2512, 4535 },
+ { 0x2513, 4750 },
+ { 0x2514, 4862 },
+ { 0x2515, 4463 },
+ { 0x2516, 4418 },
+ { 0x2517, 4734 },
+ { 0x2518, 4849 },
+ { 0x2519, 4448 },
+ { 0x251A, 4403 },
+ { 0x251B, 4721 },
+ { 0x251C, 4996 },
+ { 0x251D, 5180 },
+ { 0x251E, 4410 },
+ { 0x251F, 4542 },
+ { 0x2520, 5159 },
+ { 0x2521, 4587 },
+ { 0x2522, 4455 },
+ { 0x2523, 4817 },
+ { 0x2524, 4990 },
+ { 0x2525, 5173 },
+ { 0x2526, 4395 },
+ { 0x2527, 4527 },
+ { 0x2528, 5152 },
+ { 0x2529, 4572 },
+ { 0x252A, 4440 },
+ { 0x252B, 4811 },
+ { 0x252C, 4918 },
+ { 0x252D, 4677 },
+ { 0x252E, 5050 },
+ { 0x252F, 4602 },
+ { 0x2530, 4557 },
+ { 0x2531, 5074 },
+ { 0x2532, 4701 },
+ { 0x2533, 4762 },
+ { 0x2534, 4868 },
+ { 0x2535, 4669 },
+ { 0x2536, 5042 },
+ { 0x2537, 4470 },
+ { 0x2538, 4425 },
+ { 0x2539, 5066 },
+ { 0x253A, 4693 },
+ { 0x253B, 4740 },
+ { 0x253C, 5002 },
+ { 0x253D, 4685 },
+ { 0x253E, 5058 },
+ { 0x253F, 5187 },
+ { 0x2540, 4387 },
+ { 0x2541, 4519 },
+ { 0x2542, 5166 },
+ { 0x2543, 4651 },
+ { 0x2544, 5024 },
+ { 0x2545, 4660 },
+ { 0x2546, 5033 },
+ { 0x2547, 4564 },
+ { 0x2548, 4432 },
+ { 0x2549, 5082 },
+ { 0x254A, 4709 },
+ { 0x254B, 4823 },
+ { 0x254C, 4945 },
+ { 0x254D, 4789 },
+ { 0x254E, 4939 },
+ { 0x254F, 4783 },
+ { 0x2550, 5148 },
+ { 0x2551, 5126 },
+ { 0x2552, 4637 },
+ { 0x2553, 4616 },
+ { 0x2554, 5114 },
+ { 0x2555, 4630 },
+ { 0x2556, 4609 },
+ { 0x2557, 5108 },
+ { 0x2558, 4505 },
+ { 0x2559, 4484 },
+ { 0x255A, 5096 },
+ { 0x255B, 4498 },
+ { 0x255C, 4477 },
+ { 0x255D, 5090 },
+ { 0x255E, 5222 },
+ { 0x255F, 5201 },
+ { 0x2560, 5136 },
+ { 0x2561, 5215 },
+ { 0x2562, 5194 },
+ { 0x2563, 5130 },
+ { 0x2564, 4644 },
+ { 0x2565, 4623 },
+ { 0x2566, 5120 },
+ { 0x2567, 4512 },
+ { 0x2568, 4491 },
+ { 0x2569, 5102 },
+ { 0x256A, 5229 },
+ { 0x256B, 5208 },
+ { 0x256C, 5142 },
+ { 0x256D, 4895 },
+ { 0x256E, 4888 },
+ { 0x256F, 4874 },
+ { 0x2570, 4881 },
+ { 0x2571, 4977 },
+ { 0x2572, 4968 },
+ { 0x2573, 4963 },
+ { 0x2574, 4924 },
+ { 0x2575, 4845 },
+ { 0x2576, 4935 },
+ { 0x2577, 4902 },
+ { 0x2578, 4768 },
+ { 0x2579, 4717 },
+ { 0x257A, 4779 },
+ { 0x257B, 4746 },
+ { 0x257C, 4928 },
+ { 0x257D, 4855 },
+ { 0x257E, 4772 },
+ { 0x257F, 4727 },
+ { 0x2580, 23088 },
+ { 0x2581, 21094 },
+ { 0x2582, 21098 },
+ { 0x2583, 21168 },
+ { 0x2584, 21106 },
+ { 0x2585, 21102 },
+ { 0x2586, 21172 },
+ { 0x2587, 21164 },
+ { 0x2588, 9114 },
+ { 0x2589, 9314 },
+ { 0x258A, 9322 },
+ { 0x258B, 9191 },
+ { 0x258C, 9199 },
+ { 0x258D, 9318 },
+ { 0x258E, 9156 },
+ { 0x258F, 9152 },
+ { 0x2590, 21766 },
+ { 0x2591, 20870 },
+ { 0x2592, 35535 },
+ { 0x2593, 9015 },
+ { 0x2594, 23084 },
+ { 0x2595, 21755 },
+ { 0x2596, 55386 },
+ { 0x2597, 55389 },
+ { 0x2598, 55392 },
+ { 0x2599, 55395 },
+ { 0x259A, 55404 },
+ { 0x259B, 55410 },
+ { 0x259C, 55419 },
+ { 0x259D, 55428 },
+ { 0x259E, 55431 },
+ { 0x259F, 55437 },
+ { 0x25A0, 10270 },
+ { 0x25A1, 23296 },
+ { 0x25A2, 23328 },
+ { 0x25A3, 23349 },
+ { 0x25A4, 36279 },
+ { 0x25A5, 36271 },
+ { 0x25A6, 36283 },
+ { 0x25A7, 36231 },
+ { 0x25A8, 36246 },
+ { 0x25A9, 36266 },
+ { 0x25AA, 10212 },
+ { 0x25AB, 23225 },
+ { 0x25AC, 10317 },
+ { 0x25AD, 23408 },
+ { 0x25AE, 10309 },
+ { 0x25AF, 23403 },
+ { 0x25B0, 10361 },
+ { 0x25B1, 23461 },
+ { 0x25B2, 10341 },
+ { 0x25B3, 23421 },
+ { 0x25B4, 10337 },
+ { 0x25B5, 23417 },
+ { 0x25B6, 10373 },
+ { 0x25B7, 23473 },
+ { 0x25B8, 10363 },
+ { 0x25B9, 23463 },
+ { 0x25BA, 10367 },
+ { 0x25BB, 23467 },
+ { 0x25BC, 10348 },
+ { 0x25BD, 23448 },
+ { 0x25BE, 10344 },
+ { 0x25BF, 23444 },
+ { 0x25C0, 10358 },
+ { 0x25C1, 23458 },
+ { 0x25C2, 10351 },
+ { 0x25C3, 23451 },
+ { 0x25C4, 10355 },
+ { 0x25C5, 23455 },
+ { 0x25C6, 10272 },
+ { 0x25C7, 23355 },
+ { 0x25C8, 23365 },
+ { 0x25C9, 40556 },
+ { 0x25CA, 40990 },
+ { 0x25CB, 23236 },
+ { 0x25CC, 31533 },
+ { 0x25CD, 30518 },
+ { 0x25CE, 45864 },
+ { 0x25CF, 10238 },
+ { 0x25D0, 30485 },
+ { 0x25D1, 30495 },
+ { 0x25D2, 30490 },
+ { 0x25D3, 30507 },
+ { 0x25D4, 30512 },
+ { 0x25D5, 30469 },
+ { 0x25D6, 9195 },
+ { 0x25D7, 21762 },
+ { 0x25D8, 40639 },
+ { 0x25D9, 40636 },
+ { 0x25DA, 23094 },
+ { 0x25DB, 21112 },
+ { 0x25DC, 23112 },
+ { 0x25DD, 23134 },
+ { 0x25DE, 21141 },
+ { 0x25DF, 21117 },
+ { 0x25E0, 23091 },
+ { 0x25E1, 21109 },
+ { 0x25E2, 10198 },
+ { 0x25E3, 10194 },
+ { 0x25E4, 10224 },
+ { 0x25E5, 10228 },
+ { 0x25E6, 23234 },
+ { 0x25E7, 36207 },
+ { 0x25E8, 36226 },
+ { 0x25E9, 36239 },
+ { 0x25EA, 36219 },
+ { 0x25EB, 23333 },
+ { 0x25EC, 23424 },
+ { 0x25ED, 69326 },
+ { 0x25EE, 69332 },
+ { 0x25EF, 14464 },
+ { 0x25F0, 23310 },
+ { 0x25F1, 23298 },
+ { 0x25F2, 23304 },
+ { 0x25F3, 23316 },
+ { 0x25F4, 23265 },
+ { 0x25F5, 23253 },
+ { 0x25F6, 23259 },
+ { 0x25F7, 23271 },
+ { 0x25F8, 23117 },
+ { 0x25F9, 23144 },
+ { 0x25FA, 21122 },
+ { 0x25FB, 23284 },
+ { 0x25FC, 10261 },
+ { 0x25FD, 23280 },
+ { 0x25FE, 10257 },
+ { 0x25FF, 21151 },
+ { 0x2600, 10141 },
+ { 0x2601, 10454 },
+ { 0x2602, 56004 },
+ { 0x2603, 43547 },
+ { 0x2604, 10460 },
+ { 0x2605, 10161 },
+ { 0x2606, 23185 },
+ { 0x2607, 64791 },
+ { 0x2608, 74480 },
+ { 0x2609, 7188 },
+ { 0x260A, 56109 },
+ { 0x260B, 66846 },
+ { 0x260C, 68615 },
+ { 0x260D, 67880 },
+ { 0x260E, 10319 },
+ { 0x260F, 23410 },
+ { 0x2610, 30232 },
+ { 0x2611, 30238 },
+ { 0x2612, 30234 },
+ { 0x2613, 43020 },
+ { 0x2614, 56005 },
+ { 0x2615, 5795 },
+ { 0x2616, 23219 },
+ { 0x2617, 10206 },
+ { 0x2618, 55522 },
+ { 0x2619, 55497 },
+ { 0x261A, 10154 },
+ { 0x261B, 10202 },
+ { 0x261C, 23181 },
+ { 0x261D, 23158 },
+ { 0x261E, 23215 },
+ { 0x261F, 23171 },
+ { 0x2620, 22476 },
+ { 0x2621, 38868 },
+ { 0x2622, 69274 },
+ { 0x2623, 56112 },
+ { 0x2624, 45865 },
+ { 0x2625, 8718 },
+ { 0x2626, 54931 },
+ { 0x2627, 5236 },
+ { 0x2628, 10462 },
+ { 0x2629, 10465 },
+ { 0x262A, 9715 },
+ { 0x262B, 10630 },
+ { 0x262C, 4009 },
+ { 0x262D, 31881 },
+ { 0x262E, 21733 },
+ { 0x262F, 8714 },
+ { 0x2630, 44529 },
+ { 0x2631, 44517 },
+ { 0x2632, 44514 },
+ { 0x2633, 44532 },
+ { 0x2634, 44520 },
+ { 0x2635, 44526 },
+ { 0x2636, 44535 },
+ { 0x2637, 44523 },
+ { 0x2638, 23155 },
+ { 0x2639, 23384 },
+ { 0x263A, 23373 },
+ { 0x263B, 10291 },
+ { 0x263C, 23164 },
+ { 0x263D, 10632 },
+ { 0x263E, 9132 },
+ { 0x263F, 41191 },
+ { 0x2640, 31767 },
+ { 0x2641, 10540 },
+ { 0x2642, 9580 },
+ { 0x2643, 40641 },
+ { 0x2644, 35810 },
+ { 0x2645, 37705 },
+ { 0x2646, 42827 },
+ { 0x2647, 21739 },
+ { 0x2648, 10114 },
+ { 0x2649, 37129 },
+ { 0x264A, 31790 },
+ { 0x264B, 30317 },
+ { 0x264C, 6030 },
+ { 0x264D, 23153 },
+ { 0x264E, 20857 },
+ { 0x264F, 55511 },
+ { 0x2650, 69278 },
+ { 0x2651, 57359 },
+ { 0x2652, 44719 },
+ { 0x2653, 35653 },
+ { 0x2654, 23191 },
+ { 0x2655, 23200 },
+ { 0x2656, 23197 },
+ { 0x2657, 23203 },
+ { 0x2658, 23206 },
+ { 0x2659, 23194 },
+ { 0x265A, 10167 },
+ { 0x265B, 10176 },
+ { 0x265C, 10173 },
+ { 0x265D, 10179 },
+ { 0x265E, 10182 },
+ { 0x265F, 10170 },
+ { 0x2660, 10221 },
+ { 0x2661, 23209 },
+ { 0x2662, 23357 },
+ { 0x2663, 10145 },
+ { 0x2664, 23231 },
+ { 0x2665, 10185 },
+ { 0x2666, 10274 },
+ { 0x2667, 23168 },
+ { 0x2668, 5793 },
+ { 0x2669, 42977 },
+ { 0x266A, 31704 },
+ { 0x266B, 30242 },
+ { 0x266C, 30245 },
+ { 0x266D, 21206 },
+ { 0x266E, 21212 },
+ { 0x266F, 21209 },
+ { 0x2670, 10084 },
+ { 0x2671, 9086 },
+ { 0x2672, 66308 },
+ { 0x2673, 65768 },
+ { 0x2674, 65773 },
+ { 0x2675, 65778 },
+ { 0x2676, 65783 },
+ { 0x2677, 65788 },
+ { 0x2678, 65793 },
+ { 0x2679, 65798 },
+ { 0x267A, 65803 },
+ { 0x267B, 10321 },
+ { 0x267C, 55452 },
+ { 0x267D, 75139 },
+ { 0x267E, 65753 },
+ { 0x267F, 68601 },
+ { 0x2680, 5768 },
+ { 0x2681, 5770 },
+ { 0x2682, 5772 },
+ { 0x2683, 5774 },
+ { 0x2684, 5776 },
+ { 0x2685, 5778 },
+ { 0x2686, 23238 },
+ { 0x2687, 23243 },
+ { 0x2688, 10251 },
+ { 0x2689, 10240 },
+ { 0x268A, 54868 },
+ { 0x268B, 54865 },
+ { 0x268C, 31212 },
+ { 0x268D, 31192 },
+ { 0x268E, 31196 },
+ { 0x268F, 31208 },
+ { 0x2690, 23175 },
+ { 0x2691, 10148 },
+ { 0x2692, 31878 },
+ { 0x2693, 23701 },
+ { 0x2694, 39792 },
+ { 0x2695, 22748 },
+ { 0x2696, 35811 },
+ { 0x2697, 37778 },
+ { 0x2698, 31778 },
+ { 0x2699, 9120 },
+ { 0x269A, 22745 },
+ { 0x269B, 8719 },
+ { 0x269C, 69423 },
+ { 0x269D, 54942 },
+ { 0x26A0, 44705 },
+ { 0x26A1, 9127 },
+ { 0x26A2, 40495 },
+ { 0x26A3, 40492 },
+ { 0x26A4, 69258 },
+ { 0x26A5, 9576 },
+ { 0x26A6, 9590 },
+ { 0x26A7, 9582 },
+ { 0x26A8, 56086 },
+ { 0x26A9, 67641 },
+ { 0x26AA, 35541 },
+ { 0x26AB, 35523 },
+ { 0x26AC, 35537 },
+ { 0x26AD, 53728 },
+ { 0x26AE, 40490 },
+ { 0x26AF, 66311 },
+ { 0x26B0, 30571 },
+ { 0x26B1, 40558 },
+ { 0x26B2, 35579 },
+ { 0x26B3, 10446 },
+ { 0x26B4, 35649 },
+ { 0x26B5, 9131 },
+ { 0x26B6, 23152 },
+ { 0x26B7, 30468 },
+ { 0x26B8, 10158 },
+ { 0x26B9, 43027 },
+ { 0x26BA, 69279 },
+ { 0x26BB, 55451 },
+ { 0x26BC, 75099 },
+ { 0x26C0, 23376 },
+ { 0x26C1, 23379 },
+ { 0x26C2, 10294 },
+ { 0x26C3, 10297 },
+ { 0x2701, 23120 },
+ { 0x2702, 10304 },
+ { 0x2703, 21130 },
+ { 0x2704, 23389 },
+ { 0x2706, 66042 },
+ { 0x2707, 9722 },
+ { 0x2708, 44716 },
+ { 0x2709, 50322 },
+ { 0x270C, 44703 },
+ { 0x270D, 44707 },
+ { 0x270E, 21138 },
+ { 0x270F, 35650 },
+ { 0x2710, 23131 },
+ { 0x2711, 23162 },
+ { 0x2712, 10139 },
+ { 0x2713, 10447 },
+ { 0x2714, 13551 },
+ { 0x2715, 75053 },
+ { 0x2716, 13671 },
+ { 0x2717, 30230 },
+ { 0x2718, 13593 },
+ { 0x2719, 54936 },
+ { 0x271A, 13565 },
+ { 0x271B, 9612 },
+ { 0x271C, 13530 },
+ { 0x271D, 14471 },
+ { 0x271E, 55515 },
+ { 0x271F, 54939 },
+ { 0x2720, 41189 },
+ { 0x2721, 9712 },
+ { 0x2722, 9109 },
+ { 0x2723, 9106 },
+ { 0x2724, 13526 },
+ { 0x2725, 9103 },
+ { 0x2726, 10150 },
+ { 0x2727, 23177 },
+ { 0x2729, 36465 },
+ { 0x272A, 39186 },
+ { 0x272B, 9608 },
+ { 0x272C, 10234 },
+ { 0x272D, 54933 },
+ { 0x272E, 13634 },
+ { 0x272F, 55330 },
+ { 0x2730, 55512 },
+ { 0x2731, 13632 },
+ { 0x2732, 9615 },
+ { 0x2733, 10543 },
+ { 0x2734, 10546 },
+ { 0x2735, 10550 },
+ { 0x2736, 7178 },
+ { 0x2737, 10554 },
+ { 0x2738, 13554 },
+ { 0x2739, 37701 },
+ { 0x273A, 43505 },
+ { 0x273B, 75114 },
+ { 0x273C, 9618 },
+ { 0x273D, 13704 },
+ { 0x273E, 7182 },
+ { 0x273F, 10300 },
+ { 0x2740, 23382 },
+ { 0x2741, 10559 },
+ { 0x2742, 38876 },
+ { 0x2743, 13707 },
+ { 0x2744, 65814 },
+ { 0x2745, 23005 },
+ { 0x2746, 13627 },
+ { 0x2747, 43552 },
+ { 0x2748, 13630 },
+ { 0x2749, 75051 },
+ { 0x274A, 10564 },
+ { 0x274B, 13560 },
+ { 0x274D, 55519 },
+ { 0x274F, 21159 },
+ { 0x2750, 23147 },
+ { 0x2751, 21146 },
+ { 0x2752, 23139 },
+ { 0x2756, 10282 },
+ { 0x2758, 20872 },
+ { 0x2759, 35544 },
+ { 0x275A, 13638 },
+ { 0x275B, 13620 },
+ { 0x275C, 13614 },
+ { 0x275D, 13607 },
+ { 0x275E, 13601 },
+ { 0x2761, 31164 },
+ { 0x2762, 13644 },
+ { 0x2763, 13568 },
+ { 0x2764, 13534 },
+ { 0x2765, 43008 },
+ { 0x2766, 31776 },
+ { 0x2767, 43013 },
+ { 0x2768, 35519 },
+ { 0x2769, 35531 },
+ { 0x276A, 35547 },
+ { 0x276B, 35552 },
+ { 0x276C, 35560 },
+ { 0x276D, 35565 },
+ { 0x276E, 13665 },
+ { 0x276F, 13679 },
+ { 0x2770, 13660 },
+ { 0x2771, 13674 },
+ { 0x2772, 20858 },
+ { 0x2773, 20864 },
+ { 0x2774, 35514 },
+ { 0x2775, 35526 },
+ { 0x2776, 40379 },
+ { 0x2777, 40389 },
+ { 0x2778, 40419 },
+ { 0x2779, 40399 },
+ { 0x277A, 40394 },
+ { 0x277B, 40384 },
+ { 0x277C, 40414 },
+ { 0x277D, 40409 },
+ { 0x277E, 40404 },
+ { 0x277F, 40424 },
+ { 0x2780, 40329 },
+ { 0x2781, 40339 },
+ { 0x2782, 40369 },
+ { 0x2783, 40349 },
+ { 0x2784, 40344 },
+ { 0x2785, 40334 },
+ { 0x2786, 40364 },
+ { 0x2787, 40359 },
+ { 0x2788, 40354 },
+ { 0x2789, 40374 },
+ { 0x278A, 40429 },
+ { 0x278B, 40441 },
+ { 0x278C, 40477 },
+ { 0x278D, 40453 },
+ { 0x278E, 40447 },
+ { 0x278F, 40435 },
+ { 0x2790, 40471 },
+ { 0x2791, 40465 },
+ { 0x2792, 40459 },
+ { 0x2793, 40483 },
+ { 0x2794, 13648 },
+ { 0x2798, 13583 },
+ { 0x2799, 13641 },
+ { 0x279A, 13579 },
+ { 0x279B, 50314 },
+ { 0x279C, 13652 },
+ { 0x279D, 75116 },
+ { 0x279E, 13711 },
+ { 0x279F, 31175 },
+ { 0x27A0, 13596 },
+ { 0x27A1, 10328 },
+ { 0x27A2, 43645 },
+ { 0x27A3, 43649 },
+ { 0x27A4, 10334 },
+ { 0x27A5, 13544 },
+ { 0x27A6, 13537 },
+ { 0x27A7, 22741 },
+ { 0x27A8, 13699 },
+ { 0x27A9, 74472 },
+ { 0x27AA, 69264 },
+ { 0x27AB, 68606 },
+ { 0x27AC, 69424 },
+ { 0x27AD, 13573 },
+ { 0x27AE, 13587 },
+ { 0x27AF, 42831 },
+ { 0x27B1, 42837 },
+ { 0x27B2, 38917 },
+ { 0x27B3, 75119 },
+ { 0x27B4, 75104 },
+ { 0x27B5, 75108 },
+ { 0x27B6, 75100 },
+ { 0x27B7, 13690 },
+ { 0x27B8, 13695 },
+ { 0x27B9, 13685 },
+ { 0x27BA, 75111 },
+ { 0x27BB, 13715 },
+ { 0x27BC, 74481 },
+ { 0x27BD, 13656 },
+ { 0x27BE, 74625 },
+ { 0x27C0, 23002 },
+ { 0x27C1, 23391 },
+ { 0x27C2, 75037 },
+ { 0x27C3, 9622 },
+ { 0x27C4, 9624 },
+ { 0x27C5, 9435 },
+ { 0x27C6, 21960 },
+ { 0x27C7, 271 },
+ { 0x27C8, 43004 },
+ { 0x27C9, 55653 },
+ { 0x27CA, 56011 },
+ { 0x27CC, 9530 },
+ { 0x27D0, 23360 },
+ { 0x27D1, 4016 },
+ { 0x27D2, 40537 },
+ { 0x27D3, 21133 },
+ { 0x27D4, 23107 },
+ { 0x27D5, 9251 },
+ { 0x27D6, 21844 },
+ { 0x27D7, 9116 },
+ { 0x27D8, 14454 },
+ { 0x27D9, 14457 },
+ { 0x27DA, 9139 },
+ { 0x27DB, 9135 },
+ { 0x27DC, 9433 },
+ { 0x27DD, 9527 },
+ { 0x27DE, 9515 },
+ { 0x27DF, 328 },
+ { 0x27E0, 40991 },
+ { 0x27E1, 23429 },
+ { 0x27E2, 23432 },
+ { 0x27E3, 23438 },
+ { 0x27E4, 23339 },
+ { 0x27E5, 23344 },
+ { 0x27E6, 71159 },
+ { 0x27E7, 71183 },
+ { 0x27E8, 71155 },
+ { 0x27E9, 71179 },
+ { 0x27EA, 71170 },
+ { 0x27EB, 71194 },
+ { 0x27EC, 71164 },
+ { 0x27ED, 71188 },
+ { 0x27EE, 71175 },
+ { 0x27EF, 71199 },
+ { 0x27F0, 44694 },
+ { 0x27F1, 63375 },
+ { 0x27F2, 74496 },
+ { 0x27F3, 57374 },
+ { 0x27F4, 21810 },
+ { 0x27F5, 9532 },
+ { 0x27F6, 9554 },
+ { 0x27F7, 9518 },
+ { 0x27F8, 9540 },
+ { 0x27F9, 9562 },
+ { 0x27FA, 9522 },
+ { 0x27FB, 9535 },
+ { 0x27FC, 9557 },
+ { 0x27FD, 9544 },
+ { 0x27FE, 9566 },
+ { 0x27FF, 9572 },
+ { 0x2800, 38100 },
+ { 0x2801, 38103 },
+ { 0x2802, 38106 },
+ { 0x2803, 38127 },
+ { 0x2804, 38109 },
+ { 0x2805, 38130 },
+ { 0x2806, 38148 },
+ { 0x2807, 38211 },
+ { 0x2808, 38112 },
+ { 0x2809, 38133 },
+ { 0x280A, 38151 },
+ { 0x280B, 38214 },
+ { 0x280C, 38166 },
+ { 0x280D, 38229 },
+ { 0x280E, 38274 },
+ { 0x280F, 38379 },
+ { 0x2810, 38115 },
+ { 0x2811, 38136 },
+ { 0x2812, 38154 },
+ { 0x2813, 38217 },
+ { 0x2814, 38169 },
+ { 0x2815, 38232 },
+ { 0x2816, 38277 },
+ { 0x2817, 38382 },
+ { 0x2818, 38181 },
+ { 0x2819, 38244 },
+ { 0x281A, 38289 },
+ { 0x281B, 38394 },
+ { 0x281C, 38319 },
+ { 0x281D, 38424 },
+ { 0x281E, 38484 },
+ { 0x281F, 38589 },
+ { 0x2820, 38118 },
+ { 0x2821, 38139 },
+ { 0x2822, 38157 },
+ { 0x2823, 38220 },
+ { 0x2824, 38172 },
+ { 0x2825, 38235 },
+ { 0x2826, 38280 },
+ { 0x2827, 38385 },
+ { 0x2828, 38184 },
+ { 0x2829, 38247 },
+ { 0x282A, 38292 },
+ { 0x282B, 38397 },
+ { 0x282C, 38322 },
+ { 0x282D, 38427 },
+ { 0x282E, 38487 },
+ { 0x282F, 38592 },
+ { 0x2830, 38193 },
+ { 0x2831, 38256 },
+ { 0x2832, 38301 },
+ { 0x2833, 38406 },
+ { 0x2834, 38331 },
+ { 0x2835, 38436 },
+ { 0x2836, 38496 },
+ { 0x2837, 38601 },
+ { 0x2838, 38349 },
+ { 0x2839, 38454 },
+ { 0x283A, 38514 },
+ { 0x283B, 38619 },
+ { 0x283C, 38544 },
+ { 0x283D, 38649 },
+ { 0x283E, 38694 },
+ { 0x283F, 38757 },
+ { 0x2840, 38121 },
+ { 0x2841, 38142 },
+ { 0x2842, 38160 },
+ { 0x2843, 38223 },
+ { 0x2844, 38175 },
+ { 0x2845, 38238 },
+ { 0x2846, 38283 },
+ { 0x2847, 38388 },
+ { 0x2848, 38187 },
+ { 0x2849, 38250 },
+ { 0x284A, 38295 },
+ { 0x284B, 38400 },
+ { 0x284C, 38325 },
+ { 0x284D, 38430 },
+ { 0x284E, 38490 },
+ { 0x284F, 38595 },
+ { 0x2850, 38196 },
+ { 0x2851, 38259 },
+ { 0x2852, 38304 },
+ { 0x2853, 38409 },
+ { 0x2854, 38334 },
+ { 0x2855, 38439 },
+ { 0x2856, 38499 },
+ { 0x2857, 38604 },
+ { 0x2858, 38352 },
+ { 0x2859, 38457 },
+ { 0x285A, 38517 },
+ { 0x285B, 38622 },
+ { 0x285C, 38547 },
+ { 0x285D, 38652 },
+ { 0x285E, 38697 },
+ { 0x285F, 38760 },
+ { 0x2860, 38202 },
+ { 0x2861, 38265 },
+ { 0x2862, 38310 },
+ { 0x2863, 38415 },
+ { 0x2864, 38340 },
+ { 0x2865, 38445 },
+ { 0x2866, 38505 },
+ { 0x2867, 38610 },
+ { 0x2868, 38358 },
+ { 0x2869, 38463 },
+ { 0x286A, 38523 },
+ { 0x286B, 38628 },
+ { 0x286C, 38553 },
+ { 0x286D, 38658 },
+ { 0x286E, 38703 },
+ { 0x286F, 38766 },
+ { 0x2870, 38367 },
+ { 0x2871, 38472 },
+ { 0x2872, 38532 },
+ { 0x2873, 38637 },
+ { 0x2874, 38562 },
+ { 0x2875, 38667 },
+ { 0x2876, 38712 },
+ { 0x2877, 38775 },
+ { 0x2878, 38574 },
+ { 0x2879, 38679 },
+ { 0x287A, 38724 },
+ { 0x287B, 38787 },
+ { 0x287C, 38739 },
+ { 0x287D, 38802 },
+ { 0x287E, 38820 },
+ { 0x287F, 38841 },
+ { 0x2880, 38124 },
+ { 0x2881, 38145 },
+ { 0x2882, 38163 },
+ { 0x2883, 38226 },
+ { 0x2884, 38178 },
+ { 0x2885, 38241 },
+ { 0x2886, 38286 },
+ { 0x2887, 38391 },
+ { 0x2888, 38190 },
+ { 0x2889, 38253 },
+ { 0x288A, 38298 },
+ { 0x288B, 38403 },
+ { 0x288C, 38328 },
+ { 0x288D, 38433 },
+ { 0x288E, 38493 },
+ { 0x288F, 38598 },
+ { 0x2890, 38199 },
+ { 0x2891, 38262 },
+ { 0x2892, 38307 },
+ { 0x2893, 38412 },
+ { 0x2894, 38337 },
+ { 0x2895, 38442 },
+ { 0x2896, 38502 },
+ { 0x2897, 38607 },
+ { 0x2898, 38355 },
+ { 0x2899, 38460 },
+ { 0x289A, 38520 },
+ { 0x289B, 38625 },
+ { 0x289C, 38550 },
+ { 0x289D, 38655 },
+ { 0x289E, 38700 },
+ { 0x289F, 38763 },
+ { 0x28A0, 38205 },
+ { 0x28A1, 38268 },
+ { 0x28A2, 38313 },
+ { 0x28A3, 38418 },
+ { 0x28A4, 38343 },
+ { 0x28A5, 38448 },
+ { 0x28A6, 38508 },
+ { 0x28A7, 38613 },
+ { 0x28A8, 38361 },
+ { 0x28A9, 38466 },
+ { 0x28AA, 38526 },
+ { 0x28AB, 38631 },
+ { 0x28AC, 38556 },
+ { 0x28AD, 38661 },
+ { 0x28AE, 38706 },
+ { 0x28AF, 38769 },
+ { 0x28B0, 38370 },
+ { 0x28B1, 38475 },
+ { 0x28B2, 38535 },
+ { 0x28B3, 38640 },
+ { 0x28B4, 38565 },
+ { 0x28B5, 38670 },
+ { 0x28B6, 38715 },
+ { 0x28B7, 38778 },
+ { 0x28B8, 38577 },
+ { 0x28B9, 38682 },
+ { 0x28BA, 38727 },
+ { 0x28BB, 38790 },
+ { 0x28BC, 38742 },
+ { 0x28BD, 38805 },
+ { 0x28BE, 38823 },
+ { 0x28BF, 38844 },
+ { 0x28C0, 38208 },
+ { 0x28C1, 38271 },
+ { 0x28C2, 38316 },
+ { 0x28C3, 38421 },
+ { 0x28C4, 38346 },
+ { 0x28C5, 38451 },
+ { 0x28C6, 38511 },
+ { 0x28C7, 38616 },
+ { 0x28C8, 38364 },
+ { 0x28C9, 38469 },
+ { 0x28CA, 38529 },
+ { 0x28CB, 38634 },
+ { 0x28CC, 38559 },
+ { 0x28CD, 38664 },
+ { 0x28CE, 38709 },
+ { 0x28CF, 38772 },
+ { 0x28D0, 38373 },
+ { 0x28D1, 38478 },
+ { 0x28D2, 38538 },
+ { 0x28D3, 38643 },
+ { 0x28D4, 38568 },
+ { 0x28D5, 38673 },
+ { 0x28D6, 38718 },
+ { 0x28D7, 38781 },
+ { 0x28D8, 38580 },
+ { 0x28D9, 38685 },
+ { 0x28DA, 38730 },
+ { 0x28DB, 38793 },
+ { 0x28DC, 38745 },
+ { 0x28DD, 38808 },
+ { 0x28DE, 38826 },
+ { 0x28DF, 38847 },
+ { 0x28E0, 38376 },
+ { 0x28E1, 38481 },
+ { 0x28E2, 38541 },
+ { 0x28E3, 38646 },
+ { 0x28E4, 38571 },
+ { 0x28E5, 38676 },
+ { 0x28E6, 38721 },
+ { 0x28E7, 38784 },
+ { 0x28E8, 38583 },
+ { 0x28E9, 38688 },
+ { 0x28EA, 38733 },
+ { 0x28EB, 38796 },
+ { 0x28EC, 38748 },
+ { 0x28ED, 38811 },
+ { 0x28EE, 38829 },
+ { 0x28EF, 38850 },
+ { 0x28F0, 38586 },
+ { 0x28F1, 38691 },
+ { 0x28F2, 38736 },
+ { 0x28F3, 38799 },
+ { 0x28F4, 38751 },
+ { 0x28F5, 38814 },
+ { 0x28F6, 38832 },
+ { 0x28F7, 38853 },
+ { 0x28F8, 38754 },
+ { 0x28F9, 38817 },
+ { 0x28FA, 38835 },
+ { 0x28FB, 38856 },
+ { 0x28FC, 38838 },
+ { 0x28FD, 38859 },
+ { 0x28FE, 38862 },
+ { 0x28FF, 38865 },
+ { 0x2900, 68309 },
+ { 0x2901, 68302 },
+ { 0x2902, 64491 },
+ { 0x2903, 68156 },
+ { 0x2904, 9303 },
+ { 0x2905, 68275 },
+ { 0x2906, 64481 },
+ { 0x2907, 68146 },
+ { 0x2908, 63281 },
+ { 0x2909, 44567 },
+ { 0x290A, 44631 },
+ { 0x290B, 63309 },
+ { 0x290C, 64474 },
+ { 0x290D, 68139 },
+ { 0x290E, 64503 },
+ { 0x290F, 68168 },
+ { 0x2910, 68315 },
+ { 0x2911, 68066 },
+ { 0x2912, 44544 },
+ { 0x2913, 63253 },
+ { 0x2914, 68054 },
+ { 0x2915, 68046 },
+ { 0x2916, 68280 },
+ { 0x2917, 68294 },
+ { 0x2918, 68285 },
+ { 0x2919, 64608 },
+ { 0x291A, 68273 },
+ { 0x291B, 64497 },
+ { 0x291C, 68162 },
+ { 0x291D, 64340 },
+ { 0x291E, 67998 },
+ { 0x291F, 64349 },
+ { 0x2920, 68007 },
+ { 0x2921, 21318 },
+ { 0x2922, 21271 },
+ { 0x2923, 21345 },
+ { 0x2924, 21287 },
+ { 0x2925, 22689 },
+ { 0x2926, 22723 },
+ { 0x2927, 21338 },
+ { 0x2928, 21280 },
+ { 0x2929, 22682 },
+ { 0x292A, 22716 },
+ { 0x292B, 35805 },
+ { 0x292C, 40551 },
+ { 0x292D, 22694 },
+ { 0x292E, 21299 },
+ { 0x292F, 40545 },
+ { 0x2930, 35799 },
+ { 0x2931, 21292 },
+ { 0x2932, 21350 },
+ { 0x2933, 10070 },
+ { 0x2934, 10127 },
+ { 0x2935, 10133 },
+ { 0x2936, 10115 },
+ { 0x2937, 10121 },
+ { 0x2938, 67981 },
+ { 0x2939, 64314 },
+ { 0x293A, 7721 },
+ { 0x293B, 30248 },
+ { 0x293C, 7715 },
+ { 0x293D, 7725 },
+ { 0x293E, 21154 },
+ { 0x293F, 21125 },
+ { 0x2940, 74492 },
+ { 0x2941, 57370 },
+ { 0x2942, 68086 },
+ { 0x2943, 64423 },
+ { 0x2944, 22470 },
+ { 0x2945, 68037 },
+ { 0x2946, 64379 },
+ { 0x2947, 68116 },
+ { 0x2948, 9279 },
+ { 0x2949, 44697 },
+ { 0x294A, 9167 },
+ { 0x294B, 9174 },
+ { 0x294C, 289 },
+ { 0x294D, 282 },
+ { 0x294E, 9160 },
+ { 0x294F, 296 },
+ { 0x2950, 9181 },
+ { 0x2951, 275 },
+ { 0x2952, 64515 },
+ { 0x2953, 68180 },
+ { 0x2954, 44670 },
+ { 0x2955, 63351 },
+ { 0x2956, 64559 },
+ { 0x2957, 68224 },
+ { 0x2958, 44634 },
+ { 0x2959, 63315 },
+ { 0x295A, 64522 },
+ { 0x295B, 68187 },
+ { 0x295C, 44677 },
+ { 0x295D, 63358 },
+ { 0x295E, 64566 },
+ { 0x295F, 68231 },
+ { 0x2960, 44641 },
+ { 0x2961, 63322 },
+ { 0x2962, 64537 },
+ { 0x2963, 44648 },
+ { 0x2964, 68213 },
+ { 0x2965, 63340 },
+ { 0x2966, 64548 },
+ { 0x2967, 64573 },
+ { 0x2968, 68202 },
+ { 0x2969, 68238 },
+ { 0x296A, 64529 },
+ { 0x296B, 64584 },
+ { 0x296C, 68194 },
+ { 0x296D, 68249 },
+ { 0x296E, 44659 },
+ { 0x296F, 63329 },
+ { 0x2970, 21882 },
+ { 0x2971, 31756 },
+ { 0x2972, 23038 },
+ { 0x2973, 64429 },
+ { 0x2974, 68092 },
+ { 0x2975, 68097 },
+ { 0x2976, 64759 },
+ { 0x2977, 64461 },
+ { 0x2978, 69536 },
+ { 0x2979, 36531 },
+ { 0x297A, 64457 },
+ { 0x297B, 55638 },
+ { 0x297C, 9188 },
+ { 0x297D, 21759 },
+ { 0x297E, 323 },
+ { 0x297F, 9070 },
+ { 0x2980, 37651 },
+ { 0x2981, 26 },
+ { 0x2982, 29 },
+ { 0x2983, 9326 },
+ { 0x2984, 21847 },
+ { 0x2985, 9347 },
+ { 0x2986, 21868 },
+ { 0x2987, 16 },
+ { 0x2988, 37 },
+ { 0x2989, 21 },
+ { 0x298A, 42 },
+ { 0x298B, 9409 },
+ { 0x298C, 21936 },
+ { 0x298D, 9388 },
+ { 0x298E, 21923 },
+ { 0x298F, 9396 },
+ { 0x2990, 21915 },
+ { 0x2991, 9207 },
+ { 0x2992, 21791 },
+ { 0x2993, 9144 },
+ { 0x2994, 21747 },
+ { 0x2995, 31554 },
+ { 0x2996, 31580 },
+ { 0x2997, 9222 },
+ { 0x2998, 21815 },
+ { 0x2999, 31531 },
+ { 0x299A, 56093 },
+ { 0x299B, 53830 },
+ { 0x299C, 21796 },
+ { 0x299D, 53834 },
+ { 0x299E, 10107 },
+ { 0x299F, 10102 },
+ { 0x29A0, 65821 },
+ { 0x29A1, 65817 },
+ { 0x29A2, 37674 },
+ { 0x29A3, 55459 },
+ { 0x29A4, 10111 },
+ { 0x29A5, 55461 },
+ { 0x29A6, 42843 },
+ { 0x29A7, 42847 },
+ { 0x29A8, 53746 },
+ { 0x29A9, 53734 },
+ { 0x29AA, 53770 },
+ { 0x29AB, 53758 },
+ { 0x29AC, 53806 },
+ { 0x29AD, 53782 },
+ { 0x29AE, 53818 },
+ { 0x29AF, 53794 },
+ { 0x29B0, 55465 },
+ { 0x29B1, 10590 },
+ { 0x29B2, 10584 },
+ { 0x29B3, 10578 },
+ { 0x29B4, 10572 },
+ { 0x29B5, 30522 },
+ { 0x29B6, 39617 },
+ { 0x29B7, 39612 },
+ { 0x29B8, 39459 },
+ { 0x29B9, 39776 },
+ { 0x29BA, 30530 },
+ { 0x29BB, 30526 },
+ { 0x29BC, 39784 },
+ { 0x29BD, 333 },
+ { 0x29BE, 39189 },
+ { 0x29BF, 39192 },
+ { 0x29C0, 39767 },
+ { 0x29C1, 39774 },
+ { 0x29C2, 30500 },
+ { 0x29C3, 30477 },
+ { 0x29C4, 43569 },
+ { 0x29C5, 43575 },
+ { 0x29C6, 43579 },
+ { 0x29C7, 43564 },
+ { 0x29C8, 43573 },
+ { 0x29C9, 7778 },
+ { 0x29CA, 55898 },
+ { 0x29CB, 55907 },
+ { 0x29CC, 4 },
+ { 0x29CD, 55902 },
+ { 0x29CE, 21974 },
+ { 0x29CF, 9447 },
+ { 0x29D0, 56016 },
+ { 0x29D1, 30295 },
+ { 0x29D2, 30300 },
+ { 0x29D3, 10232 },
+ { 0x29D4, 23043 },
+ { 0x29D5, 23048 },
+ { 0x29D6, 23406 },
+ { 0x29D7, 10312 },
+ { 0x29D8, 9428 },
+ { 0x29D9, 21955 },
+ { 0x29DA, 9361 },
+ { 0x29DB, 21888 },
+ { 0x29DC, 67665 },
+ { 0x29DD, 7712 },
+ { 0x29DE, 53301 },
+ { 0x29DF, 69403 },
+ { 0x29E0, 36275 },
+ { 0x29E1, 64303 },
+ { 0x29E2, 43172 },
+ { 0x29E3, 31708 },
+ { 0x29E4, 31713 },
+ { 0x29E5, 64294 },
+ { 0x29E6, 31794 },
+ { 0x29E7, 75047 },
+ { 0x29E8, 74585 },
+ { 0x29E9, 74591 },
+ { 0x29EA, 10277 },
+ { 0x29EB, 10289 },
+ { 0x29EC, 23248 },
+ { 0x29ED, 10246 },
+ { 0x29EE, 69417 },
+ { 0x29EF, 69408 },
+ { 0x29F0, 69420 },
+ { 0x29F1, 69411 },
+ { 0x29F2, 69414 },
+ { 0x29F3, 69405 },
+ { 0x29F4, 74476 },
+ { 0x29F5, 43001 },
+ { 0x29F6, 43549 },
+ { 0x29F7, 42996 },
+ { 0x29F8, 4385 },
+ { 0x29F9, 4382 },
+ { 0x29FA, 31559 },
+ { 0x29FB, 37614 },
+ { 0x29FC, 74608 },
+ { 0x29FD, 75090 },
+ { 0x29FE, 10053 },
+ { 0x29FF, 9598 },
+ { 0x2A00, 21242 },
+ { 0x2A01, 21246 },
+ { 0x2A02, 21250 },
+ { 0x2A03, 21220 },
+ { 0x2A04, 21225 },
+ { 0x2A05, 21238 },
+ { 0x2A06, 21234 },
+ { 0x2A07, 7785 },
+ { 0x2A08, 7781 },
+ { 0x2A09, 21215 },
+ { 0x2A0A, 35573 },
+ { 0x2A0B, 65861 },
+ { 0x2A0C, 65763 },
+ { 0x2A0D, 31773 },
+ { 0x2A0E, 53314 },
+ { 0x2A0F, 53338 },
+ { 0x2A10, 68611 },
+ { 0x2A11, 74503 },
+ { 0x2A12, 9491 },
+ { 0x2A13, 9498 },
+ { 0x2A14, 9485 },
+ { 0x2A15, 53333 },
+ { 0x2A16, 67973 },
+ { 0x2A17, 53324 },
+ { 0x2A18, 53307 },
+ { 0x2A19, 53330 },
+ { 0x2A1A, 53311 },
+ { 0x2A1B, 53318 },
+ { 0x2A1C, 53321 },
+ { 0x2A1D, 9130 },
+ { 0x2A1E, 14460 },
+ { 0x2A1F, 59 },
+ { 0x2A20, 51 },
+ { 0x2A21, 55 },
+ { 0x2A22, 9661 },
+ { 0x2A23, 9682 },
+ { 0x2A24, 9667 },
+ { 0x2A25, 9651 },
+ { 0x2A26, 9672 },
+ { 0x2A27, 9677 },
+ { 0x2A28, 9656 },
+ { 0x2A29, 21189 },
+ { 0x2A2A, 21184 },
+ { 0x2A2B, 21199 },
+ { 0x2A2C, 21194 },
+ { 0x2A2D, 9635 },
+ { 0x2A2E, 9641 },
+ { 0x2A2F, 37706 },
+ { 0x2A30, 75078 },
+ { 0x2A31, 75083 },
+ { 0x2A32, 68589 },
+ { 0x2A33, 22668 },
+ { 0x2A34, 75057 },
+ { 0x2A35, 75063 },
+ { 0x2A36, 39778 },
+ { 0x2A37, 75069 },
+ { 0x2A38, 39465 },
+ { 0x2A39, 9647 },
+ { 0x2A3A, 21180 },
+ { 0x2A3B, 75074 },
+ { 0x2A3C, 53344 },
+ { 0x2A3D, 65810 },
+ { 0x2A3E, 63 },
+ { 0x2A3F, 69339 },
+ { 0x2A40, 69571 },
+ { 0x2A41, 23059 },
+ { 0x2A42, 23067 },
+ { 0x2A43, 69578 },
+ { 0x2A44, 69574 },
+ { 0x2A45, 23063 },
+ { 0x2A46, 23075 },
+ { 0x2A47, 69586 },
+ { 0x2A48, 23070 },
+ { 0x2A49, 69581 },
+ { 0x2A4A, 23078 },
+ { 0x2A4B, 69589 },
+ { 0x2A4C, 30542 },
+ { 0x2A4D, 30567 },
+ { 0x2A4E, 31603 },
+ { 0x2A4F, 31600 },
+ { 0x2A50, 30546 },
+ { 0x2A51, 40961 },
+ { 0x2A52, 40929 },
+ { 0x2A53, 31655 },
+ { 0x2A54, 31652 },
+ { 0x2A55, 7801 },
+ { 0x2A56, 7797 },
+ { 0x2A57, 43534 },
+ { 0x2A58, 43537 },
+ { 0x2A59, 40954 },
+ { 0x2A5A, 40976 },
+ { 0x2A5B, 40944 },
+ { 0x2A5C, 40985 },
+ { 0x2A5D, 40949 },
+ { 0x2A5E, 40966 },
+ { 0x2A5F, 40981 },
+ { 0x2A60, 40971 },
+ { 0x2A61, 22483 },
+ { 0x2A62, 40934 },
+ { 0x2A63, 40939 },
+ { 0x2A64, 47 },
+ { 0x2A65, 33 },
+ { 0x2A66, 31721 },
+ { 0x2A67, 64299 },
+ { 0x2A68, 37655 },
+ { 0x2A69, 37662 },
+ { 0x2A6A, 23023 },
+ { 0x2A6B, 23028 },
+ { 0x2A6C, 43192 },
+ { 0x2A6D, 58345 },
+ { 0x2A6E, 31761 },
+ { 0x2A6F, 23695 },
+ { 0x2A70, 74511 },
+ { 0x2A71, 31741 },
+ { 0x2A72, 9688 },
+ { 0x2A73, 31746 },
+ { 0x2A74, 31567 },
+ { 0x2A75, 7793 },
+ { 0x2A76, 22998 },
+ { 0x2A77, 31726 },
+ { 0x2A78, 67228 },
+ { 0x2A79, 64731 },
+ { 0x2A7A, 69502 },
+ { 0x2A7B, 64735 },
+ { 0x2A7C, 69506 },
+ { 0x2A7D, 64662 },
+ { 0x2A7E, 69433 },
+ { 0x2A7F, 64684 },
+ { 0x2A80, 69455 },
+ { 0x2A81, 64667 },
+ { 0x2A82, 69438 },
+ { 0x2A83, 64675 },
+ { 0x2A84, 69446 },
+ { 0x2A85, 64696 },
+ { 0x2A86, 69470 },
+ { 0x2A87, 64706 },
+ { 0x2A88, 69477 },
+ { 0x2A89, 64702 },
+ { 0x2A8A, 69473 },
+ { 0x2A8B, 64763 },
+ { 0x2A8C, 69540 },
+ { 0x2A8D, 64740 },
+ { 0x2A8E, 69511 },
+ { 0x2A8F, 64745 },
+ { 0x2A90, 69516 },
+ { 0x2A91, 64769 },
+ { 0x2A92, 69530 },
+ { 0x2A93, 64750 },
+ { 0x2A94, 69521 },
+ { 0x2A95, 43508 },
+ { 0x2A96, 43521 },
+ { 0x2A97, 43513 },
+ { 0x2A98, 43526 },
+ { 0x2A99, 68620 },
+ { 0x2A9A, 68625 },
+ { 0x2A9B, 68630 },
+ { 0x2A9C, 68636 },
+ { 0x2A9D, 43174 },
+ { 0x2A9E, 43177 },
+ { 0x2A9F, 43180 },
+ { 0x2AA0, 43186 },
+ { 0x2AA1, 31589 },
+ { 0x2AA2, 31597 },
+ { 0x2AA3, 31592 },
+ { 0x2AA4, 69565 },
+ { 0x2AA5, 69551 },
+ { 0x2AA6, 64780 },
+ { 0x2AA7, 69554 },
+ { 0x2AA8, 64784 },
+ { 0x2AA9, 69558 },
+ { 0x2AAA, 43540 },
+ { 0x2AAB, 34099 },
+ { 0x2AAC, 43542 },
+ { 0x2AAD, 34101 },
+ { 0x2AAE, 31736 },
+ { 0x2AAF, 55374 },
+ { 0x2AB0, 55568 },
+ { 0x2AB1, 55368 },
+ { 0x2AB2, 55562 },
+ { 0x2AB3, 55364 },
+ { 0x2AB4, 55558 },
+ { 0x2AB5, 55348 },
+ { 0x2AB6, 55542 },
+ { 0x2AB7, 55359 },
+ { 0x2AB8, 55553 },
+ { 0x2AB9, 55353 },
+ { 0x2ABA, 55547 },
+ { 0x2ABB, 31666 },
+ { 0x2ABC, 31671 },
+ { 0x2ABD, 36512 },
+ { 0x2ABE, 55619 },
+ { 0x2ABF, 36515 },
+ { 0x2AC0, 55622 },
+ { 0x2AC1, 36520 },
+ { 0x2AC2, 55627 },
+ { 0x2AC3, 36476 },
+ { 0x2AC4, 55583 },
+ { 0x2AC5, 36507 },
+ { 0x2AC6, 55614 },
+ { 0x2AC7, 36496 },
+ { 0x2AC8, 55603 },
+ { 0x2AC9, 36501 },
+ { 0x2ACA, 55608 },
+ { 0x2ACB, 36490 },
+ { 0x2ACC, 55597 },
+ { 0x2ACD, 36177 },
+ { 0x2ACE, 36346 },
+ { 0x2ACF, 30553 },
+ { 0x2AD0, 30560 },
+ { 0x2AD1, 30555 },
+ { 0x2AD2, 30562 },
+ { 0x2AD3, 36528 },
+ { 0x2AD4, 55632 },
+ { 0x2AD5, 36525 },
+ { 0x2AD6, 55635 },
+ { 0x2AD7, 55650 },
+ { 0x2AD8, 55642 },
+ { 0x2AD9, 40541 },
+ { 0x2ADA, 65757 },
+ { 0x2ADB, 69324 },
+ { 0x2ADC, 40557 },
+ { 0x2ADD, 67879 },
+ { 0x2ADE, 22467 },
+ { 0x2ADF, 22459 },
+ { 0x2AE0, 22444 },
+ { 0x2AE1, 75038 },
+ { 0x2AE2, 56026 },
+ { 0x2AE3, 31675 },
+ { 0x2AE4, 56021 },
+ { 0x2AE5, 31680 },
+ { 0x2AE6, 9507 },
+ { 0x2AE7, 22462 },
+ { 0x2AE8, 22447 },
+ { 0x2AE9, 22452 },
+ { 0x2AEA, 31551 },
+ { 0x2AEB, 31545 },
+ { 0x2AEC, 31606 },
+ { 0x2AED, 55483 },
+ { 0x2AEE, 9026 },
+ { 0x2AEF, 56068 },
+ { 0x2AF0, 56073 },
+ { 0x2AF1, 9075 },
+ { 0x2AF2, 54952 },
+ { 0x2AF3, 54948 },
+ { 0x2AF4, 37646 },
+ { 0x2AF5, 37635 },
+ { 0x2AF6, 37616 },
+ { 0x2AF7, 37623 },
+ { 0x2AF8, 37626 },
+ { 0x2AF9, 68642 },
+ { 0x2AFA, 68648 },
+ { 0x2AFB, 37629 },
+ { 0x2AFC, 14466 },
+ { 0x2AFD, 31661 },
+ { 0x2AFE, 23397 },
+ { 0x2AFF, 21230 },
+ { 0x2B00, 21310 },
+ { 0x2B01, 21361 },
+ { 0x2B02, 22705 },
+ { 0x2B03, 22732 },
+ { 0x2B04, 9289 },
+ { 0x2B05, 64465 },
+ { 0x2B06, 44578 },
+ { 0x2B07, 63292 },
+ { 0x2B08, 21306 },
+ { 0x2B09, 21357 },
+ { 0x2B0A, 22701 },
+ { 0x2B0B, 22728 },
+ { 0x2B0C, 9285 },
+ { 0x2B0D, 311 },
+ { 0x2B0E, 68024 },
+ { 0x2B0F, 68019 },
+ { 0x2B10, 64366 },
+ { 0x2B11, 64361 },
+ { 0x2B12, 36202 },
+ { 0x2B13, 36261 },
+ { 0x2B14, 36254 },
+ { 0x2B15, 36212 },
+ { 0x2B16, 40312 },
+ { 0x2B17, 40317 },
+ { 0x2B18, 40307 },
+ { 0x2B19, 40322 },
+ { 0x2B1A, 31537 },
+ { 0x2B1B, 10191 },
+ { 0x2B1C, 23212 },
+ { 0x2B1D, 10163 },
+ { 0x2B1E, 23187 },
+ { 0x2B1F, 10302 },
+ { 0x2B20, 23387 },
+ { 0x2B21, 23371 },
+ { 0x2B22, 10287 },
+ { 0x2B23, 67658 },
+ { 0x2B24, 10188 },
+ { 0x2B25, 10264 },
+ { 0x2B26, 23287 },
+ { 0x2B27, 10267 },
+ { 0x2B28, 23290 },
+ { 0x2B29, 10215 },
+ { 0x2B2A, 10218 },
+ { 0x2B2B, 23228 },
+ { 0x2B2C, 10325 },
+ { 0x2B2D, 23414 },
+ { 0x2B2E, 10306 },
+ { 0x2B2F, 23400 },
+ { 0x2B30, 9212 },
+ { 0x2B31, 22992 },
+ { 0x2B32, 9217 },
+ { 0x2B33, 9550 },
+ { 0x2B34, 64644 },
+ { 0x2B35, 64637 },
+ { 0x2B36, 64610 },
+ { 0x2B37, 64650 },
+ { 0x2B38, 64403 },
+ { 0x2B39, 64396 },
+ { 0x2B3A, 64388 },
+ { 0x2B3B, 64615 },
+ { 0x2B3C, 64629 },
+ { 0x2B3D, 64620 },
+ { 0x2B3E, 64453 },
+ { 0x2B3F, 10065 },
+ { 0x2B40, 31751 },
+ { 0x2B41, 42982 },
+ { 0x2B42, 64446 },
+ { 0x2B43, 68124 },
+ { 0x2B44, 68120 },
+ { 0x2B45, 64605 },
+ { 0x2B46, 68270 },
+ { 0x2B47, 42988 },
+ { 0x2B48, 68109 },
+ { 0x2B49, 23033 },
+ { 0x2B4A, 64434 },
+ { 0x2B4B, 64440 },
+ { 0x2B4C, 68103 },
+ { 0x2B50, 23277 },
+ { 0x2B51, 10209 },
+ { 0x2B52, 23222 },
+ { 0x2B53, 10370 },
+ { 0x2B54, 23470 },
+ { 0x2C00, 67450 },
+ { 0x2C01, 67479 },
+ { 0x2C02, 67503 },
+ { 0x2C03, 67579 },
+ { 0x2C04, 67519 },
+ { 0x2C05, 67555 },
+ { 0x2C06, 67621 },
+ { 0x2C07, 67523 },
+ { 0x2C08, 67575 },
+ { 0x2C09, 67491 },
+ { 0x2C0A, 67583 },
+ { 0x2C0B, 67434 },
+ { 0x2C0C, 67563 },
+ { 0x2C0D, 67495 },
+ { 0x2C0E, 67604 },
+ { 0x2C0F, 67608 },
+ { 0x2C10, 67531 },
+ { 0x2C11, 67459 },
+ { 0x2C12, 67567 },
+ { 0x2C13, 67535 },
+ { 0x2C14, 67539 },
+ { 0x2C15, 67571 },
+ { 0x2C16, 67475 },
+ { 0x2C17, 67527 },
+ { 0x2C18, 67487 },
+ { 0x2C19, 67463 },
+ { 0x2C1A, 67438 },
+ { 0x2C1B, 67499 },
+ { 0x2C1C, 67471 },
+ { 0x2C1D, 67559 },
+ { 0x2C1E, 67467 },
+ { 0x2C1F, 67515 },
+ { 0x2C20, 67511 },
+ { 0x2C21, 67507 },
+ { 0x2C22, 67616 },
+ { 0x2C23, 67446 },
+ { 0x2C24, 67543 },
+ { 0x2C25, 67548 },
+ { 0x2C26, 67442 },
+ { 0x2C27, 67594 },
+ { 0x2C28, 67454 },
+ { 0x2C29, 67588 },
+ { 0x2C2A, 67483 },
+ { 0x2C2B, 67600 },
+ { 0x2C2C, 67612 },
+ { 0x2C2D, 67630 },
+ { 0x2C2E, 67625 },
+ { 0x2C30, 67249 },
+ { 0x2C31, 67278 },
+ { 0x2C32, 67302 },
+ { 0x2C33, 67378 },
+ { 0x2C34, 67318 },
+ { 0x2C35, 67354 },
+ { 0x2C36, 67420 },
+ { 0x2C37, 67322 },
+ { 0x2C38, 67374 },
+ { 0x2C39, 67290 },
+ { 0x2C3A, 67382 },
+ { 0x2C3B, 67233 },
+ { 0x2C3C, 67362 },
+ { 0x2C3D, 67294 },
+ { 0x2C3E, 67403 },
+ { 0x2C3F, 67407 },
+ { 0x2C40, 67330 },
+ { 0x2C41, 67258 },
+ { 0x2C42, 67366 },
+ { 0x2C43, 67334 },
+ { 0x2C44, 67338 },
+ { 0x2C45, 67370 },
+ { 0x2C46, 67274 },
+ { 0x2C47, 67326 },
+ { 0x2C48, 67286 },
+ { 0x2C49, 67262 },
+ { 0x2C4A, 67237 },
+ { 0x2C4B, 67298 },
+ { 0x2C4C, 67270 },
+ { 0x2C4D, 67358 },
+ { 0x2C4E, 67266 },
+ { 0x2C4F, 67314 },
+ { 0x2C50, 67310 },
+ { 0x2C51, 67306 },
+ { 0x2C52, 67415 },
+ { 0x2C53, 67245 },
+ { 0x2C54, 67342 },
+ { 0x2C55, 67347 },
+ { 0x2C56, 67241 },
+ { 0x2C57, 67393 },
+ { 0x2C58, 67253 },
+ { 0x2C59, 67387 },
+ { 0x2C5A, 67282 },
+ { 0x2C5B, 67399 },
+ { 0x2C5C, 67411 },
+ { 0x2C5D, 67429 },
+ { 0x2C5E, 67424 },
+ { 0x2C60, 19214 },
+ { 0x2C61, 15577 },
+ { 0x2C62, 19228 },
+ { 0x2C63, 19682 },
+ { 0x2C64, 19762 },
+ { 0x2C65, 14629 },
+ { 0x2C66, 16472 },
+ { 0x2C67, 18936 },
+ { 0x2C68, 15276 },
+ { 0x2C69, 19148 },
+ { 0x2C6A, 15507 },
+ { 0x2C6B, 20410 },
+ { 0x2C6C, 17019 },
+ { 0x2C6D, 20597 },
+ { 0x2C6E, 19272 },
+ { 0x2C6F, 20649 },
+ { 0x2C71, 16751 },
+ { 0x2C72, 20235 },
+ { 0x2C73, 16796 },
+ { 0x2C74, 16739 },
+ { 0x2C75, 20547 },
+ { 0x2C76, 17312 },
+ { 0x2C77, 17839 },
+ { 0x2C78, 14974 },
+ { 0x2C79, 17623 },
+ { 0x2C7A, 15813 },
+ { 0x2C7B, 18125 },
+ { 0x2C7C, 20797 },
+ { 0x2C7D, 54684 },
+ { 0x2C80, 31044 },
+ { 0x2C81, 30751 },
+ { 0x2C82, 31072 },
+ { 0x2C83, 30779 },
+ { 0x2C84, 31084 },
+ { 0x2C85, 30791 },
+ { 0x2C86, 31080 },
+ { 0x2C87, 30787 },
+ { 0x2C88, 30922 },
+ { 0x2C89, 30629 },
+ { 0x2C8A, 31036 },
+ { 0x2C8B, 30743 },
+ { 0x2C8C, 31076 },
+ { 0x2C8D, 30783 },
+ { 0x2C8E, 31048 },
+ { 0x2C8F, 30755 },
+ { 0x2C90, 31108 },
+ { 0x2C91, 30815 },
+ { 0x2C92, 31088 },
+ { 0x2C93, 30795 },
+ { 0x2C94, 31056 },
+ { 0x2C95, 30763 },
+ { 0x2C96, 31092 },
+ { 0x2C97, 30799 },
+ { 0x2C98, 30898 },
+ { 0x2C99, 30605 },
+ { 0x2C9A, 30902 },
+ { 0x2C9B, 30609 },
+ { 0x2C9C, 30934 },
+ { 0x2C9D, 30641 },
+ { 0x2C9E, 30890 },
+ { 0x2C9F, 30597 },
+ { 0x2CA0, 30906 },
+ { 0x2CA1, 30613 },
+ { 0x2CA2, 30910 },
+ { 0x2CA3, 30617 },
+ { 0x2CA4, 31068 },
+ { 0x2CA5, 30775 },
+ { 0x2CA6, 31040 },
+ { 0x2CA7, 30747 },
+ { 0x2CA8, 30914 },
+ { 0x2CA9, 30621 },
+ { 0x2CAA, 30894 },
+ { 0x2CAB, 30601 },
+ { 0x2CAC, 30930 },
+ { 0x2CAD, 30637 },
+ { 0x2CAE, 31032 },
+ { 0x2CAF, 30739 },
+ { 0x2CB0, 31028 },
+ { 0x2CB1, 30735 },
+ { 0x2CB2, 31132 },
+ { 0x2CB3, 30839 },
+ { 0x2CB4, 30944 },
+ { 0x2CB5, 30651 },
+ { 0x2CB6, 31152 },
+ { 0x2CB7, 30859 },
+ { 0x2CB8, 31142 },
+ { 0x2CB9, 30849 },
+ { 0x2CBA, 31127 },
+ { 0x2CBB, 30834 },
+ { 0x2CBC, 31147 },
+ { 0x2CBD, 30854 },
+ { 0x2CBE, 30974 },
+ { 0x2CBF, 30681 },
+ { 0x2CC0, 31096 },
+ { 0x2CC1, 30803 },
+ { 0x2CC2, 31112 },
+ { 0x2CC3, 30819 },
+ { 0x2CC4, 30986 },
+ { 0x2CC5, 30693 },
+ { 0x2CC6, 30956 },
+ { 0x2CC7, 30663 },
+ { 0x2CC8, 31117 },
+ { 0x2CC9, 30824 },
+ { 0x2CCA, 31137 },
+ { 0x2CCB, 30844 },
+ { 0x2CCC, 30980 },
+ { 0x2CCD, 30687 },
+ { 0x2CCE, 30938 },
+ { 0x2CCF, 30645 },
+ { 0x2CD0, 31122 },
+ { 0x2CD1, 30829 },
+ { 0x2CD2, 30968 },
+ { 0x2CD3, 30675 },
+ { 0x2CD4, 30962 },
+ { 0x2CD5, 30669 },
+ { 0x2CD6, 30998 },
+ { 0x2CD7, 30705 },
+ { 0x2CD8, 30950 },
+ { 0x2CD9, 30657 },
+ { 0x2CDA, 30992 },
+ { 0x2CDB, 30699 },
+ { 0x2CDC, 31022 },
+ { 0x2CDD, 30729 },
+ { 0x2CDE, 31004 },
+ { 0x2CDF, 30711 },
+ { 0x2CE0, 31010 },
+ { 0x2CE1, 30717 },
+ { 0x2CE2, 31016 },
+ { 0x2CE3, 30723 },
+ { 0x2CE4, 30872 },
+ { 0x2CE5, 30864 },
+ { 0x2CE6, 30868 },
+ { 0x2CE7, 30887 },
+ { 0x2CE8, 30879 },
+ { 0x2CE9, 30875 },
+ { 0x2CEA, 30883 },
+ { 0x2CF9, 30572 },
+ { 0x2CFA, 30582 },
+ { 0x2CFB, 30588 },
+ { 0x2CFC, 30577 },
+ { 0x2CFD, 31157 },
+ { 0x2CFE, 30594 },
+ { 0x2CFF, 31161 },
+ { 0x2D00, 51786 },
+ { 0x2D01, 51814 },
+ { 0x2D02, 51830 },
+ { 0x2D03, 51826 },
+ { 0x2D04, 51790 },
+ { 0x2D05, 51894 },
+ { 0x2D06, 51902 },
+ { 0x2D07, 51886 },
+ { 0x2D08, 51798 },
+ { 0x2D09, 51854 },
+ { 0x2D0A, 51858 },
+ { 0x2D0B, 51862 },
+ { 0x2D0C, 51866 },
+ { 0x2D0D, 51802 },
+ { 0x2D0E, 51870 },
+ { 0x2D0F, 51934 },
+ { 0x2D10, 51878 },
+ { 0x2D11, 51882 },
+ { 0x2D12, 51890 },
+ { 0x2D13, 51806 },
+ { 0x2D14, 51926 },
+ { 0x2D15, 51922 },
+ { 0x2D16, 51914 },
+ { 0x2D17, 51874 },
+ { 0x2D18, 51930 },
+ { 0x2D19, 51910 },
+ { 0x2D1A, 51818 },
+ { 0x2D1B, 51850 },
+ { 0x2D1C, 51822 },
+ { 0x2D1D, 51906 },
+ { 0x2D1E, 51898 },
+ { 0x2D1F, 51918 },
+ { 0x2D20, 51834 },
+ { 0x2D21, 51794 },
+ { 0x2D22, 51842 },
+ { 0x2D23, 51810 },
+ { 0x2D24, 51838 },
+ { 0x2D25, 51846 },
+ { 0x2D30, 55713 },
+ { 0x2D31, 55725 },
+ { 0x2D32, 55789 },
+ { 0x2D33, 55734 },
+ { 0x2D34, 55834 },
+ { 0x2D35, 55845 },
+ { 0x2D36, 55740 },
+ { 0x2D37, 55728 },
+ { 0x2D38, 55798 },
+ { 0x2D39, 55795 },
+ { 0x2D3A, 55831 },
+ { 0x2D3B, 55782 },
+ { 0x2D3C, 55731 },
+ { 0x2D3D, 55743 },
+ { 0x2D3E, 55854 },
+ { 0x2D3F, 55837 },
+ { 0x2D40, 55737 },
+ { 0x2D41, 55840 },
+ { 0x2D42, 55850 },
+ { 0x2D43, 55804 },
+ { 0x2D44, 55722 },
+ { 0x2D45, 55807 },
+ { 0x2D46, 55870 },
+ { 0x2D47, 55758 },
+ { 0x2D48, 55858 },
+ { 0x2D49, 55716 },
+ { 0x2D4A, 55825 },
+ { 0x2D4B, 55882 },
+ { 0x2D4C, 55878 },
+ { 0x2D4D, 55746 },
+ { 0x2D4E, 55749 },
+ { 0x2D4F, 55752 },
+ { 0x2D50, 55866 },
+ { 0x2D51, 55874 },
+ { 0x2D52, 55755 },
+ { 0x2D53, 55719 },
+ { 0x2D54, 55761 },
+ { 0x2D55, 55810 },
+ { 0x2D56, 55801 },
+ { 0x2D57, 55862 },
+ { 0x2D58, 55785 },
+ { 0x2D59, 55764 },
+ { 0x2D5A, 55816 },
+ { 0x2D5B, 55813 },
+ { 0x2D5C, 55767 },
+ { 0x2D5D, 55819 },
+ { 0x2D5E, 55792 },
+ { 0x2D5F, 55822 },
+ { 0x2D60, 55770 },
+ { 0x2D61, 55773 },
+ { 0x2D62, 55776 },
+ { 0x2D63, 55779 },
+ { 0x2D64, 55886 },
+ { 0x2D65, 55828 },
+ { 0x2D6F, 55890 },
+ { 0x2D80, 50999 },
+ { 0x2D81, 51011 },
+ { 0x2D82, 51140 },
+ { 0x2D83, 51170 },
+ { 0x2D84, 51542 },
+ { 0x2D85, 50762 },
+ { 0x2D86, 51227 },
+ { 0x2D87, 50810 },
+ { 0x2D88, 51032 },
+ { 0x2D89, 51488 },
+ { 0x2D8A, 51672 },
+ { 0x2D8B, 51344 },
+ { 0x2D8C, 50837 },
+ { 0x2D8D, 51407 },
+ { 0x2D8E, 50939 },
+ { 0x2D8F, 51569 },
+ { 0x2D90, 51395 },
+ { 0x2D91, 51500 },
+ { 0x2D92, 51074 },
+ { 0x2D93, 51422 },
+ { 0x2D94, 51428 },
+ { 0x2D95, 51629 },
+ { 0x2D96, 51425 },
+ { 0x2DA0, 51173 },
+ { 0x2DA1, 51185 },
+ { 0x2DA2, 51179 },
+ { 0x2DA3, 51548 },
+ { 0x2DA4, 51551 },
+ { 0x2DA5, 51176 },
+ { 0x2DA6, 51182 },
+ { 0x2DA8, 50777 },
+ { 0x2DA9, 50789 },
+ { 0x2DAA, 50783 },
+ { 0x2DAB, 51368 },
+ { 0x2DAC, 51371 },
+ { 0x2DAD, 50780 },
+ { 0x2DAE, 50786 },
+ { 0x2DB0, 51350 },
+ { 0x2DB1, 51362 },
+ { 0x2DB2, 51356 },
+ { 0x2DB3, 51614 },
+ { 0x2DB4, 51617 },
+ { 0x2DB5, 51353 },
+ { 0x2DB6, 51359 },
+ { 0x2DB8, 51374 },
+ { 0x2DB9, 51386 },
+ { 0x2DBA, 51380 },
+ { 0x2DBB, 51620 },
+ { 0x2DBC, 51623 },
+ { 0x2DBD, 51377 },
+ { 0x2DBE, 51383 },
+ { 0x2DC0, 51119 },
+ { 0x2DC1, 51131 },
+ { 0x2DC2, 51125 },
+ { 0x2DC3, 51530 },
+ { 0x2DC4, 51533 },
+ { 0x2DC5, 51122 },
+ { 0x2DC6, 51128 },
+ { 0x2DC8, 50978 },
+ { 0x2DC9, 50990 },
+ { 0x2DCA, 50984 },
+ { 0x2DCB, 51473 },
+ { 0x2DCC, 51476 },
+ { 0x2DCD, 50981 },
+ { 0x2DCE, 50987 },
+ { 0x2DD0, 51299 },
+ { 0x2DD1, 51311 },
+ { 0x2DD2, 51305 },
+ { 0x2DD3, 51599 },
+ { 0x2DD4, 51602 },
+ { 0x2DD5, 51302 },
+ { 0x2DD6, 51308 },
+ { 0x2DD8, 50894 },
+ { 0x2DD9, 50906 },
+ { 0x2DDA, 50900 },
+ { 0x2DDB, 51437 },
+ { 0x2DDC, 51440 },
+ { 0x2DDD, 50897 },
+ { 0x2DDE, 50903 },
+ { 0x2DE0, 58034 },
+ { 0x2DE1, 58082 },
+ { 0x2DE2, 58103 },
+ { 0x2DE3, 58038 },
+ { 0x2DE4, 58119 },
+ { 0x2DE5, 58090 },
+ { 0x2DE6, 58070 },
+ { 0x2DE7, 58042 },
+ { 0x2DE8, 58046 },
+ { 0x2DE9, 58050 },
+ { 0x2DEA, 58030 },
+ { 0x2DEB, 58074 },
+ { 0x2DEC, 58054 },
+ { 0x2DED, 58058 },
+ { 0x2DEE, 58078 },
+ { 0x2DEF, 58062 },
+ { 0x2DF0, 58111 },
+ { 0x2DF1, 58099 },
+ { 0x2DF2, 58107 },
+ { 0x2DF3, 58135 },
+ { 0x2DF4, 58123 },
+ { 0x2DF5, 58131 },
+ { 0x2DF6, 58026 },
+ { 0x2DF7, 58066 },
+ { 0x2DF8, 58127 },
+ { 0x2DF9, 58155 },
+ { 0x2DFA, 58115 },
+ { 0x2DFB, 58086 },
+ { 0x2DFC, 58144 },
+ { 0x2DFD, 58139 },
+ { 0x2DFE, 58094 },
+ { 0x2DFF, 58149 },
+ { 0x2E00, 21801 },
+ { 0x2E01, 21783 },
+ { 0x2E02, 9477 },
+ { 0x2E03, 22004 },
+ { 0x2E04, 9353 },
+ { 0x2E05, 21874 },
+ { 0x2E06, 35672 },
+ { 0x2E07, 35666 },
+ { 0x2E08, 31539 },
+ { 0x2E09, 9480 },
+ { 0x2E0A, 22007 },
+ { 0x2E0B, 35670 },
+ { 0x2E0C, 9377 },
+ { 0x2E0D, 21904 },
+ { 0x2E0E, 63378 },
+ { 0x2E0F, 69268 },
+ { 0x2E10, 31783 },
+ { 0x2E11, 55488 },
+ { 0x2E12, 69569 },
+ { 0x2E13, 31535 },
+ { 0x2E14, 63298 },
+ { 0x2E15, 44620 },
+ { 0x2E16, 31542 },
+ { 0x2E17, 31658 },
+ { 0x2E18, 53360 },
+ { 0x2E19, 9626 },
+ { 0x2E1A, 33425 },
+ { 0x2E1B, 23017 },
+ { 0x2E1C, 9148 },
+ { 0x2E1D, 21751 },
+ { 0x2E1E, 23009 },
+ { 0x2E1F, 23013 },
+ { 0x2E20, 9452 },
+ { 0x2E21, 21979 },
+ { 0x2E22, 7737 },
+ { 0x2E23, 7750 },
+ { 0x2E24, 30258 },
+ { 0x2E25, 30271 },
+ { 0x2E26, 9439 },
+ { 0x2E27, 21964 },
+ { 0x2E28, 9369 },
+ { 0x2E29, 21896 },
+ { 0x2E2A, 7772 },
+ { 0x2E2B, 7155 },
+ { 0x2E2C, 43556 },
+ { 0x2E2D, 9091 },
+ { 0x2E2E, 55502 },
+ { 0x2E2F, 56091 },
+ { 0x2E30, 9704 },
+ { 0x2E80, 5603 },
+ { 0x2E81, 5510 },
+ { 0x2E82, 5606 },
+ { 0x2E83, 5610 },
+ { 0x2E84, 5614 },
+ { 0x2E85, 5600 },
+ { 0x2E86, 5346 },
+ { 0x2E87, 5577 },
+ { 0x2E88, 5539 },
+ { 0x2E89, 5543 },
+ { 0x2E8A, 5638 },
+ { 0x2E8B, 5477 },
+ { 0x2E8C, 5558 },
+ { 0x2E8D, 5562 },
+ { 0x2E8E, 5441 },
+ { 0x2E8F, 5445 },
+ { 0x2E90, 5453 },
+ { 0x2E91, 5449 },
+ { 0x2E92, 5566 },
+ { 0x2E93, 5626 },
+ { 0x2E94, 5569 },
+ { 0x2E95, 5573 },
+ { 0x2E96, 5531 },
+ { 0x2E97, 5535 },
+ { 0x2E98, 5429 },
+ { 0x2E99, 5403 },
+ { 0x2E9B, 5507 },
+ { 0x2E9C, 5406 },
+ { 0x2E9D, 5471 },
+ { 0x2E9E, 5513 },
+ { 0x2E9F, 5597 },
+ { 0x2EA0, 5635 },
+ { 0x2EA1, 5583 },
+ { 0x2EA2, 5587 },
+ { 0x2EA3, 5423 },
+ { 0x2EA4, 5392 },
+ { 0x2EA5, 5396 },
+ { 0x2EA6, 5641 },
+ { 0x2EA7, 5349 },
+ { 0x2EA8, 5352 },
+ { 0x2EA9, 5438 },
+ { 0x2EAA, 5412 },
+ { 0x2EAB, 5370 },
+ { 0x2EAC, 5618 },
+ { 0x2EAD, 5622 },
+ { 0x2EAE, 5591 },
+ { 0x2EAF, 5480 },
+ { 0x2EB0, 5715 },
+ { 0x2EB1, 5373 },
+ { 0x2EB2, 5377 },
+ { 0x2EB3, 5385 },
+ { 0x2EB4, 5381 },
+ { 0x2EB5, 5468 },
+ { 0x2EB6, 5555 },
+ { 0x2EB7, 5400 },
+ { 0x2EB8, 5367 },
+ { 0x2EB9, 5389 },
+ { 0x2EBA, 5499 },
+ { 0x2EBB, 5503 },
+ { 0x2EBC, 5465 },
+ { 0x2EBD, 5594 },
+ { 0x2EBE, 5519 },
+ { 0x2EBF, 5523 },
+ { 0x2EC0, 5527 },
+ { 0x2EC1, 5580 },
+ { 0x2EC2, 5632 },
+ { 0x2EC3, 5491 },
+ { 0x2EC4, 5495 },
+ { 0x2EC5, 5671 },
+ { 0x2EC6, 5647 },
+ { 0x2EC7, 5435 },
+ { 0x2EC8, 5739 },
+ { 0x2EC9, 5727 },
+ { 0x2ECA, 5426 },
+ { 0x2ECB, 5679 },
+ { 0x2ECC, 5651 },
+ { 0x2ECD, 5483 },
+ { 0x2ECE, 5487 },
+ { 0x2ECF, 5420 },
+ { 0x2ED0, 5699 },
+ { 0x2ED1, 5457 },
+ { 0x2ED2, 5461 },
+ { 0x2ED3, 5707 },
+ { 0x2ED4, 5695 },
+ { 0x2ED5, 5547 },
+ { 0x2ED6, 5551 },
+ { 0x2ED7, 5474 },
+ { 0x2ED8, 5409 },
+ { 0x2ED9, 5743 },
+ { 0x2EDA, 5703 },
+ { 0x2EDB, 5719 },
+ { 0x2EDC, 5667 },
+ { 0x2EDD, 5355 },
+ { 0x2EDE, 5359 },
+ { 0x2EDF, 5363 },
+ { 0x2EE0, 5663 },
+ { 0x2EE1, 5432 },
+ { 0x2EE2, 5723 },
+ { 0x2EE3, 5417 },
+ { 0x2EE4, 5516 },
+ { 0x2EE5, 5687 },
+ { 0x2EE6, 5675 },
+ { 0x2EE7, 5711 },
+ { 0x2EE8, 5655 },
+ { 0x2EE9, 5659 },
+ { 0x2EEA, 5691 },
+ { 0x2EEB, 5752 },
+ { 0x2EEC, 5683 },
+ { 0x2EED, 5756 },
+ { 0x2EEE, 5731 },
+ { 0x2EEF, 5760 },
+ { 0x2EF0, 5735 },
+ { 0x2EF1, 5629 },
+ { 0x2EF2, 5764 },
+ { 0x2EF3, 5748 },
+ { 0x2F00, 33501 },
+ { 0x2F01, 33669 },
+ { 0x2F02, 33459 },
+ { 0x2F03, 33860 },
+ { 0x2F04, 33981 },
+ { 0x2F05, 33639 },
+ { 0x2F06, 33531 },
+ { 0x2F07, 33486 },
+ { 0x2F08, 33489 },
+ { 0x2F09, 33663 },
+ { 0x2F0A, 33792 },
+ { 0x2F0B, 33789 },
+ { 0x2F0C, 33588 },
+ { 0x2F0D, 33780 },
+ { 0x2F0E, 33480 },
+ { 0x2F0F, 33896 },
+ { 0x2F10, 33688 },
+ { 0x2F11, 33819 },
+ { 0x2F12, 33831 },
+ { 0x2F13, 33753 },
+ { 0x2F14, 33881 },
+ { 0x2F15, 33834 },
+ { 0x2F16, 33962 },
+ { 0x2F17, 33528 },
+ { 0x2F18, 34081 },
+ { 0x2F19, 33707 },
+ { 0x2F1A, 33774 },
+ { 0x2F1B, 34048 },
+ { 0x2F1C, 33756 },
+ { 0x2F1D, 33828 },
+ { 0x2F1E, 34078 },
+ { 0x2F1F, 33786 },
+ { 0x2F20, 34051 },
+ { 0x2F21, 33434 },
+ { 0x2F22, 33437 },
+ { 0x2F23, 34030 },
+ { 0x2F24, 33447 },
+ { 0x2F25, 33917 },
+ { 0x2F26, 33771 },
+ { 0x2F27, 33701 },
+ { 0x2F28, 33645 },
+ { 0x2F29, 33869 },
+ { 0x2F2A, 33654 },
+ { 0x2F2B, 33938 },
+ { 0x2F2C, 33990 },
+ { 0x2F2D, 34066 },
+ { 0x2F2E, 33839 },
+ { 0x2F2F, 33750 },
+ { 0x2F30, 34045 },
+ { 0x2F31, 34006 },
+ { 0x2F32, 33462 },
+ { 0x2F33, 33856 },
+ { 0x2F34, 33948 },
+ { 0x2F35, 33675 },
+ { 0x2F36, 33534 },
+ { 0x2F37, 33848 },
+ { 0x2F38, 33450 },
+ { 0x2F39, 33872 },
+ { 0x2F3A, 34021 },
+ { 0x2F3B, 33719 },
+ { 0x2F3C, 33813 },
+ { 0x2F3D, 34036 },
+ { 0x2F3E, 33585 },
+ { 0x2F3F, 33630 },
+ { 0x2F40, 33935 },
+ { 0x2F41, 33507 },
+ { 0x2F42, 33978 },
+ { 0x2F43, 33941 },
+ { 0x2F44, 33444 },
+ { 0x2F45, 33993 },
+ { 0x2F46, 33495 },
+ { 0x2F47, 33525 },
+ { 0x2F48, 33519 },
+ { 0x2F49, 33682 },
+ { 0x2F4A, 33731 },
+ { 0x2F4B, 33651 },
+ { 0x2F4C, 33722 },
+ { 0x2F4D, 33783 },
+ { 0x2F4E, 34015 },
+ { 0x2F4F, 33430 },
+ { 0x2F50, 34027 },
+ { 0x2F51, 33477 },
+ { 0x2F52, 33573 },
+ { 0x2F53, 33887 },
+ { 0x2F54, 33908 },
+ { 0x2F55, 33604 },
+ { 0x2F56, 33576 },
+ { 0x2F57, 33959 },
+ { 0x2F58, 33952 },
+ { 0x2F59, 33625 },
+ { 0x2F5A, 33866 },
+ { 0x2F5B, 33601 },
+ { 0x2F5C, 33453 },
+ { 0x2F5D, 33456 },
+ { 0x2F5E, 34069 },
+ { 0x2F5F, 33648 },
+ { 0x2F60, 33822 },
+ { 0x2F61, 33728 },
+ { 0x2F62, 33893 },
+ { 0x2F63, 33666 },
+ { 0x2F64, 33538 },
+ { 0x2F65, 33795 },
+ { 0x2F66, 33556 },
+ { 0x2F67, 34072 },
+ { 0x2F68, 33944 },
+ { 0x2F69, 33914 },
+ { 0x2F6A, 33716 },
+ { 0x2F6B, 33582 },
+ { 0x2F6C, 33471 },
+ { 0x2F6D, 33878 },
+ { 0x2F6E, 33759 },
+ { 0x2F6F, 33890 },
+ { 0x2F70, 33987 },
+ { 0x2F71, 33905 },
+ { 0x2F72, 33807 },
+ { 0x2F73, 33567 },
+ { 0x2F74, 33884 },
+ { 0x2F75, 33929 },
+ { 0x2F76, 33698 },
+ { 0x2F77, 33713 },
+ { 0x2F78, 33483 },
+ { 0x2F79, 33492 },
+ { 0x2F7A, 33842 },
+ { 0x2F7B, 34033 },
+ { 0x2F7C, 33498 },
+ { 0x2F7D, 33441 },
+ { 0x2F7E, 33692 },
+ { 0x2F7F, 33465 },
+ { 0x2F80, 33768 },
+ { 0x2F81, 33679 },
+ { 0x2F82, 34063 },
+ { 0x2F83, 33710 },
+ { 0x2F84, 33923 },
+ { 0x2F85, 33972 },
+ { 0x2F86, 34000 },
+ { 0x2F87, 33975 },
+ { 0x2F88, 33550 },
+ { 0x2F89, 34075 },
+ { 0x2F8A, 33777 },
+ { 0x2F8B, 33810 },
+ { 0x2F8C, 33899 },
+ { 0x2F8D, 33966 },
+ { 0x2F8E, 33765 },
+ { 0x2F8F, 33737 },
+ { 0x2F90, 34024 },
+ { 0x2F91, 33741 },
+ { 0x2F92, 33522 },
+ { 0x2F93, 33642 },
+ { 0x2F94, 33984 },
+ { 0x2F95, 34012 },
+ { 0x2F96, 33541 },
+ { 0x2F97, 33504 },
+ { 0x2F98, 33926 },
+ { 0x2F99, 33845 },
+ { 0x2F9A, 33513 },
+ { 0x2F9B, 33516 },
+ { 0x2F9C, 33610 },
+ { 0x2F9D, 33553 },
+ { 0x2F9E, 33564 },
+ { 0x2F9F, 33932 },
+ { 0x2FA0, 34042 },
+ { 0x2FA1, 33734 },
+ { 0x2FA2, 33570 },
+ { 0x2FA3, 33747 },
+ { 0x2FA4, 34087 },
+ { 0x2FA5, 34054 },
+ { 0x2FA6, 33619 },
+ { 0x2FA7, 33672 },
+ { 0x2FA8, 33616 },
+ { 0x2FA9, 33825 },
+ { 0x2FAA, 33863 },
+ { 0x2FAB, 33851 },
+ { 0x2FAC, 33695 },
+ { 0x2FAD, 33547 },
+ { 0x2FAE, 33920 },
+ { 0x2FAF, 33598 },
+ { 0x2FB0, 34039 },
+ { 0x2FB1, 33996 },
+ { 0x2FB2, 33660 },
+ { 0x2FB3, 33875 },
+ { 0x2FB4, 33657 },
+ { 0x2FB5, 33744 },
+ { 0x2FB6, 33474 },
+ { 0x2FB7, 33468 },
+ { 0x2FB8, 33633 },
+ { 0x2FB9, 34060 },
+ { 0x2FBA, 33816 },
+ { 0x2FBB, 33561 },
+ { 0x2FBC, 33725 },
+ { 0x2FBD, 33622 },
+ { 0x2FBE, 33798 },
+ { 0x2FBF, 34090 },
+ { 0x2FC0, 34057 },
+ { 0x2FC1, 33804 },
+ { 0x2FC2, 33607 },
+ { 0x2FC3, 33544 },
+ { 0x2FC4, 33704 },
+ { 0x2FC5, 33579 },
+ { 0x2FC6, 33911 },
+ { 0x2FC7, 33636 },
+ { 0x2FC8, 34018 },
+ { 0x2FC9, 33969 },
+ { 0x2FCA, 33762 },
+ { 0x2FCB, 34084 },
+ { 0x2FCC, 33613 },
+ { 0x2FCD, 34003 },
+ { 0x2FCE, 33592 },
+ { 0x2FCF, 33510 },
+ { 0x2FD0, 33685 },
+ { 0x2FD1, 33595 },
+ { 0x2FD2, 33902 },
+ { 0x2FD3, 33956 },
+ { 0x2FD4, 34009 },
+ { 0x2FD5, 33801 },
+ { 0x2FF0, 69175 },
+ { 0x2FF1, 69189 },
+ { 0x2FF2, 69181 },
+ { 0x2FF3, 69195 },
+ { 0x2FF4, 69170 },
+ { 0x2FF5, 69213 },
+ { 0x2FF6, 69219 },
+ { 0x2FF7, 69207 },
+ { 0x2FF8, 69232 },
+ { 0x2FF9, 69239 },
+ { 0x2FFA, 69225 },
+ { 0x2FFB, 69203 },
+ { 0x3000, 68678 },
+ { 0x3001, 68672 },
+ { 0x3002, 68665 },
+ { 0x3003, 10538 },
+ { 0x3004, 53362 },
+ { 0x3005, 68698 },
+ { 0x3006, 68687 },
+ { 0x3007, 68680 },
+ { 0x3008, 9204 },
+ { 0x3009, 21788 },
+ { 0x300A, 9357 },
+ { 0x300B, 21878 },
+ { 0x300C, 9350 },
+ { 0x300D, 21871 },
+ { 0x300E, 9330 },
+ { 0x300F, 21851 },
+ { 0x3010, 9227 },
+ { 0x3011, 21820 },
+ { 0x3012, 35661 },
+ { 0x3013, 9121 },
+ { 0x3014, 9443 },
+ { 0x3015, 21968 },
+ { 0x3016, 9343 },
+ { 0x3017, 21864 },
+ { 0x3018, 9338 },
+ { 0x3019, 21859 },
+ { 0x301A, 9334 },
+ { 0x301B, 21855 },
+ { 0x301C, 10063 },
+ { 0x301D, 55478 },
+ { 0x301E, 31576 },
+ { 0x301F, 6033 },
+ { 0x3020, 35663 },
+ { 0x3021, 52741 },
+ { 0x3022, 52750 },
+ { 0x3023, 52768 },
+ { 0x3024, 52756 },
+ { 0x3025, 52753 },
+ { 0x3026, 52744 },
+ { 0x3027, 52765 },
+ { 0x3028, 52762 },
+ { 0x3029, 52759 },
+ { 0x302A, 68674 },
+ { 0x302B, 68683 },
+ { 0x302C, 68694 },
+ { 0x302D, 68690 },
+ { 0x302E, 32170 },
+ { 0x302F, 31884 },
+ { 0x3030, 10078 },
+ { 0x3031, 56034 },
+ { 0x3032, 56050 },
+ { 0x3033, 56044 },
+ { 0x3034, 56057 },
+ { 0x3035, 56038 },
+ { 0x3036, 39456 },
+ { 0x3037, 68701 },
+ { 0x3038, 52747 },
+ { 0x3039, 52774 },
+ { 0x303A, 52771 },
+ { 0x303B, 56098 },
+ { 0x303C, 9594 },
+ { 0x303D, 9628 },
+ { 0x303E, 69103 },
+ { 0x303F, 68668 },
+ { 0x3041, 53242 },
+ { 0x3042, 53020 },
+ { 0x3043, 53250 },
+ { 0x3044, 53026 },
+ { 0x3045, 53258 },
+ { 0x3046, 53035 },
+ { 0x3047, 53246 },
+ { 0x3048, 53023 },
+ { 0x3049, 53254 },
+ { 0x304A, 53032 },
+ { 0x304B, 53098 },
+ { 0x304C, 53068 },
+ { 0x304D, 53104 },
+ { 0x304E, 53074 },
+ { 0x304F, 53110 },
+ { 0x3050, 53080 },
+ { 0x3051, 53101 },
+ { 0x3052, 53071 },
+ { 0x3053, 53107 },
+ { 0x3054, 53077 },
+ { 0x3055, 53173 },
+ { 0x3056, 53227 },
+ { 0x3057, 53179 },
+ { 0x3058, 53233 },
+ { 0x3059, 53185 },
+ { 0x305A, 53239 },
+ { 0x305B, 53176 },
+ { 0x305C, 53230 },
+ { 0x305D, 53182 },
+ { 0x305E, 53236 },
+ { 0x305F, 53188 },
+ { 0x3060, 53053 },
+ { 0x3061, 53194 },
+ { 0x3062, 53059 },
+ { 0x3063, 53270 },
+ { 0x3064, 53200 },
+ { 0x3065, 53065 },
+ { 0x3066, 53191 },
+ { 0x3067, 53056 },
+ { 0x3068, 53197 },
+ { 0x3069, 53062 },
+ { 0x306A, 53128 },
+ { 0x306B, 53134 },
+ { 0x306C, 53140 },
+ { 0x306D, 53131 },
+ { 0x306E, 53137 },
+ { 0x306F, 53083 },
+ { 0x3070, 53038 },
+ { 0x3071, 53143 },
+ { 0x3072, 53089 },
+ { 0x3073, 53044 },
+ { 0x3074, 53149 },
+ { 0x3075, 53095 },
+ { 0x3076, 53050 },
+ { 0x3077, 53155 },
+ { 0x3078, 53086 },
+ { 0x3079, 53041 },
+ { 0x307A, 53146 },
+ { 0x307B, 53092 },
+ { 0x307C, 53047 },
+ { 0x307D, 53152 },
+ { 0x307E, 53113 },
+ { 0x307F, 53119 },
+ { 0x3080, 53125 },
+ { 0x3081, 53116 },
+ { 0x3082, 53122 },
+ { 0x3083, 53278 },
+ { 0x3084, 53218 },
+ { 0x3085, 53286 },
+ { 0x3086, 53224 },
+ { 0x3087, 53282 },
+ { 0x3088, 53221 },
+ { 0x3089, 53158 },
+ { 0x308A, 53164 },
+ { 0x308B, 53170 },
+ { 0x308C, 53161 },
+ { 0x308D, 53167 },
+ { 0x308E, 53274 },
+ { 0x308F, 53206 },
+ { 0x3090, 53212 },
+ { 0x3091, 53209 },
+ { 0x3092, 53215 },
+ { 0x3093, 53029 },
+ { 0x3094, 53203 },
+ { 0x3095, 53262 },
+ { 0x3096, 53266 },
+ { 0x3099, 58335 },
+ { 0x309A, 58340 },
+ { 0x309B, 75125 },
+ { 0x309C, 75133 },
+ { 0x309D, 53297 },
+ { 0x309E, 53290 },
+ { 0x309F, 53294 },
+ { 0x30A0, 75122 },
+ { 0x30A1, 53600 },
+ { 0x30A2, 53366 },
+ { 0x30A3, 53608 },
+ { 0x30A4, 53372 },
+ { 0x30A5, 53616 },
+ { 0x30A6, 53381 },
+ { 0x30A7, 53604 },
+ { 0x30A8, 53369 },
+ { 0x30A9, 53612 },
+ { 0x30AA, 53378 },
+ { 0x30AB, 53444 },
+ { 0x30AC, 53414 },
+ { 0x30AD, 53450 },
+ { 0x30AE, 53420 },
+ { 0x30AF, 53456 },
+ { 0x30B0, 53426 },
+ { 0x30B1, 53447 },
+ { 0x30B2, 53417 },
+ { 0x30B3, 53453 },
+ { 0x30B4, 53423 },
+ { 0x30B5, 53519 },
+ { 0x30B6, 53585 },
+ { 0x30B7, 53525 },
+ { 0x30B8, 53591 },
+ { 0x30B9, 53531 },
+ { 0x30BA, 53597 },
+ { 0x30BB, 53522 },
+ { 0x30BC, 53588 },
+ { 0x30BD, 53528 },
+ { 0x30BE, 53594 },
+ { 0x30BF, 53534 },
+ { 0x30C0, 53399 },
+ { 0x30C1, 53540 },
+ { 0x30C2, 53405 },
+ { 0x30C3, 53692 },
+ { 0x30C4, 53546 },
+ { 0x30C5, 53411 },
+ { 0x30C6, 53537 },
+ { 0x30C7, 53402 },
+ { 0x30C8, 53543 },
+ { 0x30C9, 53408 },
+ { 0x30CA, 53474 },
+ { 0x30CB, 53480 },
+ { 0x30CC, 53486 },
+ { 0x30CD, 53477 },
+ { 0x30CE, 53483 },
+ { 0x30CF, 53429 },
+ { 0x30D0, 53384 },
+ { 0x30D1, 53489 },
+ { 0x30D2, 53435 },
+ { 0x30D3, 53390 },
+ { 0x30D4, 53495 },
+ { 0x30D5, 53441 },
+ { 0x30D6, 53396 },
+ { 0x30D7, 53501 },
+ { 0x30D8, 53432 },
+ { 0x30D9, 53387 },
+ { 0x30DA, 53492 },
+ { 0x30DB, 53438 },
+ { 0x30DC, 53393 },
+ { 0x30DD, 53498 },
+ { 0x30DE, 53459 },
+ { 0x30DF, 53465 },
+ { 0x30E0, 53471 },
+ { 0x30E1, 53462 },
+ { 0x30E2, 53468 },
+ { 0x30E3, 53700 },
+ { 0x30E4, 53576 },
+ { 0x30E5, 53708 },
+ { 0x30E6, 53582 },
+ { 0x30E7, 53704 },
+ { 0x30E8, 53579 },
+ { 0x30E9, 53504 },
+ { 0x30EA, 53510 },
+ { 0x30EB, 53516 },
+ { 0x30EC, 53507 },
+ { 0x30ED, 53513 },
+ { 0x30EE, 53696 },
+ { 0x30EF, 53564 },
+ { 0x30F0, 53570 },
+ { 0x30F1, 53567 },
+ { 0x30F2, 53573 },
+ { 0x30F3, 53375 },
+ { 0x30F4, 53561 },
+ { 0x30F5, 53640 },
+ { 0x30F6, 53644 },
+ { 0x30F7, 53549 },
+ { 0x30F8, 53555 },
+ { 0x30F9, 53552 },
+ { 0x30FA, 53558 },
+ { 0x30FB, 53712 },
+ { 0x30FC, 75129 },
+ { 0x30FD, 53722 },
+ { 0x30FE, 53715 },
+ { 0x30FF, 53719 },
+ { 0x3105, 45589 },
+ { 0x3106, 45631 },
+ { 0x3107, 45622 },
+ { 0x3108, 45601 },
+ { 0x3109, 45595 },
+ { 0x310A, 45643 },
+ { 0x310B, 45625 },
+ { 0x310C, 45619 },
+ { 0x310D, 45604 },
+ { 0x310E, 45616 },
+ { 0x310F, 45607 },
+ { 0x3110, 45613 },
+ { 0x3111, 45634 },
+ { 0x3112, 45652 },
+ { 0x3113, 45727 },
+ { 0x3114, 45673 },
+ { 0x3115, 45724 },
+ { 0x3116, 45637 },
+ { 0x3117, 45655 },
+ { 0x3118, 45592 },
+ { 0x3119, 45640 },
+ { 0x311A, 45586 },
+ { 0x311B, 45628 },
+ { 0x311C, 45598 },
+ { 0x311D, 45679 },
+ { 0x311E, 45658 },
+ { 0x311F, 45682 },
+ { 0x3120, 45667 },
+ { 0x3121, 45721 },
+ { 0x3122, 45664 },
+ { 0x3123, 45685 },
+ { 0x3124, 45733 },
+ { 0x3125, 45739 },
+ { 0x3126, 45688 },
+ { 0x3127, 45610 },
+ { 0x3128, 45646 },
+ { 0x3129, 45706 },
+ { 0x312A, 45649 },
+ { 0x312B, 45712 },
+ { 0x312C, 45691 },
+ { 0x312D, 45697 },
+ { 0x3131, 31996 },
+ { 0x3132, 32095 },
+ { 0x3133, 32065 },
+ { 0x3134, 31978 },
+ { 0x3135, 32071 },
+ { 0x3136, 32074 },
+ { 0x3137, 31999 },
+ { 0x3138, 32098 },
+ { 0x3139, 31984 },
+ { 0x313A, 32113 },
+ { 0x313B, 32083 },
+ { 0x313C, 32086 },
+ { 0x313D, 32038 },
+ { 0x313E, 32140 },
+ { 0x313F, 32137 },
+ { 0x3140, 32080 },
+ { 0x3141, 31975 },
+ { 0x3142, 31981 },
+ { 0x3143, 32062 },
+ { 0x3144, 32035 },
+ { 0x3145, 31954 },
+ { 0x3146, 32026 },
+ { 0x3147, 31972 },
+ { 0x3148, 31966 },
+ { 0x3149, 32050 },
+ { 0x314A, 32008 },
+ { 0x314B, 32011 },
+ { 0x314C, 32020 },
+ { 0x314D, 32017 },
+ { 0x314E, 31969 },
+ { 0x314F, 31891 },
+ { 0x3150, 31906 },
+ { 0x3151, 31927 },
+ { 0x3152, 31948 },
+ { 0x3153, 31909 },
+ { 0x3154, 31894 },
+ { 0x3155, 31951 },
+ { 0x3156, 31930 },
+ { 0x3157, 31900 },
+ { 0x3158, 31918 },
+ { 0x3159, 31942 },
+ { 0x315A, 31915 },
+ { 0x315B, 31936 },
+ { 0x315C, 31903 },
+ { 0x315D, 31945 },
+ { 0x315E, 31921 },
+ { 0x315F, 31924 },
+ { 0x3160, 31939 },
+ { 0x3161, 31912 },
+ { 0x3162, 31933 },
+ { 0x3163, 31897 },
+ { 0x3164, 31889 },
+ { 0x3165, 32059 },
+ { 0x3166, 32104 },
+ { 0x3167, 32032 },
+ { 0x3168, 32128 },
+ { 0x3169, 32161 },
+ { 0x316A, 32116 },
+ { 0x316B, 32149 },
+ { 0x316C, 32134 },
+ { 0x316D, 32164 },
+ { 0x316E, 32068 },
+ { 0x316F, 32029 },
+ { 0x3170, 32125 },
+ { 0x3171, 32119 },
+ { 0x3172, 32107 },
+ { 0x3173, 32110 },
+ { 0x3174, 32155 },
+ { 0x3175, 32158 },
+ { 0x3176, 32077 },
+ { 0x3177, 32131 },
+ { 0x3178, 32122 },
+ { 0x3179, 32167 },
+ { 0x317A, 32089 },
+ { 0x317B, 32044 },
+ { 0x317C, 32092 },
+ { 0x317D, 32047 },
+ { 0x317E, 32041 },
+ { 0x317F, 32014 },
+ { 0x3180, 32056 },
+ { 0x3181, 32023 },
+ { 0x3182, 32143 },
+ { 0x3183, 32152 },
+ { 0x3184, 32146 },
+ { 0x3185, 32053 },
+ { 0x3186, 32101 },
+ { 0x3187, 31987 },
+ { 0x3188, 32002 },
+ { 0x3189, 31957 },
+ { 0x318A, 32005 },
+ { 0x318B, 31990 },
+ { 0x318C, 31960 },
+ { 0x318D, 31963 },
+ { 0x318E, 31993 },
+ { 0x3190, 69162 },
+ { 0x3191, 69166 },
+ { 0x3192, 69110 },
+ { 0x3193, 69118 },
+ { 0x3194, 69138 },
+ { 0x3195, 69122 },
+ { 0x3196, 69114 },
+ { 0x3197, 69154 },
+ { 0x3198, 69142 },
+ { 0x3199, 69130 },
+ { 0x319A, 69158 },
+ { 0x319B, 69134 },
+ { 0x319C, 69146 },
+ { 0x319D, 69150 },
+ { 0x319E, 69126 },
+ { 0x319F, 69106 },
+ { 0x31A0, 45670 },
+ { 0x31A1, 45730 },
+ { 0x31A2, 45709 },
+ { 0x31A3, 45694 },
+ { 0x31A4, 45676 },
+ { 0x31A5, 45742 },
+ { 0x31A6, 45718 },
+ { 0x31A7, 45754 },
+ { 0x31A8, 45703 },
+ { 0x31A9, 45736 },
+ { 0x31AA, 45745 },
+ { 0x31AB, 45757 },
+ { 0x31AC, 45700 },
+ { 0x31AD, 45748 },
+ { 0x31AE, 45760 },
+ { 0x31AF, 45763 },
+ { 0x31B0, 45661 },
+ { 0x31B1, 45715 },
+ { 0x31B2, 45751 },
+ { 0x31B3, 45766 },
+ { 0x31B4, 45578 },
+ { 0x31B5, 45582 },
+ { 0x31B6, 45574 },
+ { 0x31B7, 45570 },
+ { 0x31C0, 5256 },
+ { 0x31C1, 5295 },
+ { 0x31C2, 5298 },
+ { 0x31C3, 5301 },
+ { 0x31C4, 5286 },
+ { 0x31C5, 5313 },
+ { 0x31C6, 5304 },
+ { 0x31C7, 5262 },
+ { 0x31C8, 5331 },
+ { 0x31C9, 5340 },
+ { 0x31CA, 5307 },
+ { 0x31CB, 5334 },
+ { 0x31CC, 5325 },
+ { 0x31CD, 5310 },
+ { 0x31CE, 5337 },
+ { 0x31CF, 5244 },
+ { 0x31D0, 5241 },
+ { 0x31D1, 5253 },
+ { 0x31D2, 5247 },
+ { 0x31D3, 5280 },
+ { 0x31D4, 5238 },
+ { 0x31D5, 5265 },
+ { 0x31D6, 5259 },
+ { 0x31D7, 5289 },
+ { 0x31D8, 5319 },
+ { 0x31D9, 5283 },
+ { 0x31DA, 5277 },
+ { 0x31DB, 5268 },
+ { 0x31DC, 5274 },
+ { 0x31DD, 5292 },
+ { 0x31DE, 5322 },
+ { 0x31DF, 5316 },
+ { 0x31E0, 5328 },
+ { 0x31E1, 5343 },
+ { 0x31E2, 5271 },
+ { 0x31E3, 5250 },
+ { 0x31F0, 53648 },
+ { 0x31F1, 53680 },
+ { 0x31F2, 53684 },
+ { 0x31F3, 53688 },
+ { 0x31F4, 53656 },
+ { 0x31F5, 53620 },
+ { 0x31F6, 53628 },
+ { 0x31F7, 53636 },
+ { 0x31F8, 53624 },
+ { 0x31F9, 53632 },
+ { 0x31FA, 53652 },
+ { 0x31FB, 53660 },
+ { 0x31FC, 53668 },
+ { 0x31FD, 53676 },
+ { 0x31FE, 53664 },
+ { 0x31FF, 53672 },
+ { 0x3200, 74845 },
+ { 0x3201, 74824 },
+ { 0x3202, 74852 },
+ { 0x3203, 74838 },
+ { 0x3204, 74817 },
+ { 0x3205, 74831 },
+ { 0x3206, 74785 },
+ { 0x3207, 74810 },
+ { 0x3208, 74792 },
+ { 0x3209, 74859 },
+ { 0x320A, 74866 },
+ { 0x320B, 74880 },
+ { 0x320C, 74873 },
+ { 0x320D, 74803 },
+ { 0x320E, 74848 },
+ { 0x320F, 74827 },
+ { 0x3210, 74855 },
+ { 0x3211, 74841 },
+ { 0x3212, 74820 },
+ { 0x3213, 74834 },
+ { 0x3214, 74788 },
+ { 0x3215, 74813 },
+ { 0x3216, 74795 },
+ { 0x3217, 74862 },
+ { 0x3218, 74869 },
+ { 0x3219, 74883 },
+ { 0x321A, 74876 },
+ { 0x321B, 74806 },
+ { 0x321C, 74799 },
+ { 0x321D, 74892 },
+ { 0x321E, 74887 },
+ { 0x3220, 74929 },
+ { 0x3221, 74941 },
+ { 0x3222, 75001 },
+ { 0x3223, 74953 },
+ { 0x3224, 74950 },
+ { 0x3225, 74932 },
+ { 0x3226, 74992 },
+ { 0x3227, 74980 },
+ { 0x3228, 74965 },
+ { 0x3229, 74938 },
+ { 0x322A, 74959 },
+ { 0x322B, 74947 },
+ { 0x322C, 75004 },
+ { 0x322D, 74974 },
+ { 0x322E, 74986 },
+ { 0x322F, 74977 },
+ { 0x3230, 74935 },
+ { 0x3231, 74995 },
+ { 0x3232, 74956 },
+ { 0x3233, 75007 },
+ { 0x3234, 74962 },
+ { 0x3235, 75010 },
+ { 0x3236, 75022 },
+ { 0x3237, 75034 },
+ { 0x3238, 74983 },
+ { 0x3239, 75025 },
+ { 0x323A, 74944 },
+ { 0x323B, 74998 },
+ { 0x323C, 75028 },
+ { 0x323D, 75031 },
+ { 0x323E, 75019 },
+ { 0x323F, 75013 },
+ { 0x3240, 75016 },
+ { 0x3241, 74968 },
+ { 0x3242, 74971 },
+ { 0x3243, 74989 },
+ { 0x3250, 69269 },
+ { 0x3251, 39399 },
+ { 0x3252, 39407 },
+ { 0x3253, 39431 },
+ { 0x3254, 39415 },
+ { 0x3255, 39411 },
+ { 0x3256, 39403 },
+ { 0x3257, 39427 },
+ { 0x3258, 39423 },
+ { 0x3259, 39419 },
+ { 0x325A, 39354 },
+ { 0x325B, 39357 },
+ { 0x325C, 39365 },
+ { 0x325D, 39389 },
+ { 0x325E, 39373 },
+ { 0x325F, 39369 },
+ { 0x3260, 39256 },
+ { 0x3261, 39235 },
+ { 0x3262, 39263 },
+ { 0x3263, 39249 },
+ { 0x3264, 39228 },
+ { 0x3265, 39242 },
+ { 0x3266, 39196 },
+ { 0x3267, 39217 },
+ { 0x3268, 39203 },
+ { 0x3269, 39270 },
+ { 0x326A, 39277 },
+ { 0x326B, 39291 },
+ { 0x326C, 39284 },
+ { 0x326D, 39210 },
+ { 0x326E, 39259 },
+ { 0x326F, 39238 },
+ { 0x3270, 39266 },
+ { 0x3271, 39252 },
+ { 0x3272, 39231 },
+ { 0x3273, 39245 },
+ { 0x3274, 39199 },
+ { 0x3275, 39220 },
+ { 0x3276, 39206 },
+ { 0x3277, 39273 },
+ { 0x3278, 39280 },
+ { 0x3279, 39294 },
+ { 0x327A, 39287 },
+ { 0x327B, 39213 },
+ { 0x327C, 39302 },
+ { 0x327D, 39298 },
+ { 0x327E, 39224 },
+ { 0x327F, 34096 },
+ { 0x3280, 39623 },
+ { 0x3281, 39635 },
+ { 0x3282, 39710 },
+ { 0x3283, 39647 },
+ { 0x3284, 39644 },
+ { 0x3285, 39626 },
+ { 0x3286, 39701 },
+ { 0x3287, 39683 },
+ { 0x3288, 39671 },
+ { 0x3289, 39632 },
+ { 0x328A, 39665 },
+ { 0x328B, 39641 },
+ { 0x328C, 39713 },
+ { 0x328D, 39677 },
+ { 0x328E, 39689 },
+ { 0x328F, 39680 },
+ { 0x3290, 39629 },
+ { 0x3291, 39704 },
+ { 0x3292, 39650 },
+ { 0x3293, 39728 },
+ { 0x3294, 39668 },
+ { 0x3295, 39731 },
+ { 0x3296, 39755 },
+ { 0x3297, 39764 },
+ { 0x3298, 39686 },
+ { 0x3299, 39722 },
+ { 0x329A, 39662 },
+ { 0x329B, 39719 },
+ { 0x329C, 39746 },
+ { 0x329D, 39752 },
+ { 0x329E, 39695 },
+ { 0x329F, 39749 },
+ { 0x32A0, 39656 },
+ { 0x32A1, 39674 },
+ { 0x32A2, 39638 },
+ { 0x32A3, 39725 },
+ { 0x32A4, 39653 },
+ { 0x32A5, 39716 },
+ { 0x32A6, 39620 },
+ { 0x32A7, 39659 },
+ { 0x32A8, 39698 },
+ { 0x32A9, 39737 },
+ { 0x32AA, 39740 },
+ { 0x32AB, 39707 },
+ { 0x32AC, 39758 },
+ { 0x32AD, 39761 },
+ { 0x32AE, 39743 },
+ { 0x32AF, 39734 },
+ { 0x32B0, 39692 },
+ { 0x32B1, 39361 },
+ { 0x32B2, 39385 },
+ { 0x32B3, 39381 },
+ { 0x32B4, 39377 },
+ { 0x32B5, 39312 },
+ { 0x32B6, 39315 },
+ { 0x32B7, 39323 },
+ { 0x32B8, 39347 },
+ { 0x32B9, 39331 },
+ { 0x32BA, 39327 },
+ { 0x32BB, 39319 },
+ { 0x32BC, 39343 },
+ { 0x32BD, 39339 },
+ { 0x32BE, 39335 },
+ { 0x32BF, 39309 },
+ { 0x32C0, 69073 },
+ { 0x32C1, 69088 },
+ { 0x32C2, 69063 },
+ { 0x32C3, 69058 },
+ { 0x32C4, 68893 },
+ { 0x32C5, 69053 },
+ { 0x32C6, 69048 },
+ { 0x32C7, 69068 },
+ { 0x32C8, 69098 },
+ { 0x32C9, 69078 },
+ { 0x32CA, 69093 },
+ { 0x32CB, 69083 },
+ { 0x32CC, 35949 },
+ { 0x32CD, 36112 },
+ { 0x32CE, 35939 },
+ { 0x32CF, 40924 },
+ { 0x32D0, 39471 },
+ { 0x32D1, 39477 },
+ { 0x32D2, 39483 },
+ { 0x32D3, 39474 },
+ { 0x32D4, 39480 },
+ { 0x32D5, 39501 },
+ { 0x32D6, 39507 },
+ { 0x32D7, 39513 },
+ { 0x32D8, 39504 },
+ { 0x32D9, 39510 },
+ { 0x32DA, 39561 },
+ { 0x32DB, 39567 },
+ { 0x32DC, 39573 },
+ { 0x32DD, 39564 },
+ { 0x32DE, 39570 },
+ { 0x32DF, 39576 },
+ { 0x32E0, 39582 },
+ { 0x32E1, 39588 },
+ { 0x32E2, 39579 },
+ { 0x32E3, 39585 },
+ { 0x32E4, 39531 },
+ { 0x32E5, 39537 },
+ { 0x32E6, 39543 },
+ { 0x32E7, 39534 },
+ { 0x32E8, 39540 },
+ { 0x32E9, 39486 },
+ { 0x32EA, 39492 },
+ { 0x32EB, 39498 },
+ { 0x32EC, 39489 },
+ { 0x32ED, 39495 },
+ { 0x32EE, 39516 },
+ { 0x32EF, 39522 },
+ { 0x32F0, 39528 },
+ { 0x32F1, 39519 },
+ { 0x32F2, 39525 },
+ { 0x32F3, 39603 },
+ { 0x32F4, 39609 },
+ { 0x32F5, 39606 },
+ { 0x32F6, 39546 },
+ { 0x32F7, 39552 },
+ { 0x32F8, 39558 },
+ { 0x32F9, 39549 },
+ { 0x32FA, 39555 },
+ { 0x32FB, 39591 },
+ { 0x32FC, 39597 },
+ { 0x32FD, 39594 },
+ { 0x32FE, 39600 },
+ { 0x3300, 36363 },
+ { 0x3301, 36365 },
+ { 0x3302, 36290 },
+ { 0x3303, 36157 },
+ { 0x3304, 36375 },
+ { 0x3305, 36171 },
+ { 0x3306, 36155 },
+ { 0x3307, 36421 },
+ { 0x3308, 36296 },
+ { 0x3309, 36188 },
+ { 0x330A, 36190 },
+ { 0x330B, 36326 },
+ { 0x330C, 36393 },
+ { 0x330D, 36395 },
+ { 0x330E, 36300 },
+ { 0x330F, 36298 },
+ { 0x3310, 36167 },
+ { 0x3311, 36302 },
+ { 0x3312, 36379 },
+ { 0x3313, 36391 },
+ { 0x3314, 36175 },
+ { 0x3315, 36459 },
+ { 0x3316, 36463 },
+ { 0x3317, 36451 },
+ { 0x3318, 36369 },
+ { 0x3319, 36447 },
+ { 0x331A, 36453 },
+ { 0x331B, 36397 },
+ { 0x331C, 36328 },
+ { 0x331D, 36377 },
+ { 0x331E, 36330 },
+ { 0x331F, 36415 },
+ { 0x3320, 36445 },
+ { 0x3321, 36417 },
+ { 0x3322, 36353 },
+ { 0x3323, 36355 },
+ { 0x3324, 36294 },
+ { 0x3325, 36161 },
+ { 0x3326, 36163 },
+ { 0x3327, 36153 },
+ { 0x3328, 36186 },
+ { 0x3329, 36336 },
+ { 0x332A, 36304 },
+ { 0x332B, 36441 },
+ { 0x332C, 36338 },
+ { 0x332D, 36389 },
+ { 0x332E, 36457 },
+ { 0x332F, 36385 },
+ { 0x3330, 36194 },
+ { 0x3331, 36159 },
+ { 0x3332, 36423 },
+ { 0x3333, 36373 },
+ { 0x3334, 36419 },
+ { 0x3335, 36308 },
+ { 0x3336, 36449 },
+ { 0x3337, 36192 },
+ { 0x3338, 36383 },
+ { 0x3339, 36371 },
+ { 0x333A, 36342 },
+ { 0x333B, 36340 },
+ { 0x333C, 36292 },
+ { 0x333D, 36387 },
+ { 0x333E, 36367 },
+ { 0x333F, 36120 },
+ { 0x3340, 36344 },
+ { 0x3341, 36306 },
+ { 0x3342, 36169 },
+ { 0x3343, 36401 },
+ { 0x3344, 36334 },
+ { 0x3345, 36332 },
+ { 0x3346, 36381 },
+ { 0x3347, 36403 },
+ { 0x3348, 36409 },
+ { 0x3349, 36184 },
+ { 0x334A, 36455 },
+ { 0x334B, 36182 },
+ { 0x334C, 36407 },
+ { 0x334D, 36405 },
+ { 0x334E, 36359 },
+ { 0x334F, 36361 },
+ { 0x3350, 36288 },
+ { 0x3351, 36411 },
+ { 0x3352, 36198 },
+ { 0x3353, 36351 },
+ { 0x3354, 36413 },
+ { 0x3355, 36196 },
+ { 0x3356, 36443 },
+ { 0x3357, 36357 },
+ { 0x3358, 68940 },
+ { 0x3359, 68898 },
+ { 0x335A, 68916 },
+ { 0x335B, 68958 },
+ { 0x335C, 68928 },
+ { 0x335D, 68922 },
+ { 0x335E, 68904 },
+ { 0x335F, 68952 },
+ { 0x3360, 68946 },
+ { 0x3361, 68934 },
+ { 0x3362, 68910 },
+ { 0x3363, 68964 },
+ { 0x3364, 68970 },
+ { 0x3365, 69012 },
+ { 0x3366, 69000 },
+ { 0x3367, 68982 },
+ { 0x3368, 68988 },
+ { 0x3369, 69018 },
+ { 0x336A, 68994 },
+ { 0x336B, 69006 },
+ { 0x336C, 68976 },
+ { 0x336D, 69024 },
+ { 0x336E, 69030 },
+ { 0x336F, 69042 },
+ { 0x3370, 69036 },
+ { 0x3371, 36122 },
+ { 0x3372, 35925 },
+ { 0x3373, 35907 },
+ { 0x3374, 36088 },
+ { 0x3375, 36059 },
+ { 0x3376, 36066 },
+ { 0x3377, 35931 },
+ { 0x3378, 35936 },
+ { 0x3379, 35933 },
+ { 0x337A, 35957 },
+ { 0x337B, 36100 },
+ { 0x337C, 36104 },
+ { 0x337D, 36108 },
+ { 0x337E, 36096 },
+ { 0x337F, 36461 },
+ { 0x3380, 36063 },
+ { 0x3381, 36047 },
+ { 0x3382, 36013 },
+ { 0x3383, 35992 },
+ { 0x3384, 35959 },
+ { 0x3385, 35961 },
+ { 0x3386, 35994 },
+ { 0x3387, 35943 },
+ { 0x3388, 36090 },
+ { 0x3389, 36173 },
+ { 0x338A, 36068 },
+ { 0x338B, 36049 },
+ { 0x338C, 36016 },
+ { 0x338D, 36019 },
+ { 0x338E, 35999 },
+ { 0x338F, 35963 },
+ { 0x3390, 35953 },
+ { 0x3391, 36124 },
+ { 0x3392, 36130 },
+ { 0x3393, 36116 },
+ { 0x3394, 36151 },
+ { 0x3395, 36022 },
+ { 0x3396, 36001 },
+ { 0x3397, 35929 },
+ { 0x3398, 35967 },
+ { 0x3399, 35941 },
+ { 0x339A, 36051 },
+ { 0x339B, 36025 },
+ { 0x339C, 36003 },
+ { 0x339D, 35915 },
+ { 0x339E, 35969 },
+ { 0x339F, 36008 },
+ { 0x33A0, 35920 },
+ { 0x33A1, 35898 },
+ { 0x33A2, 35977 },
+ { 0x33A3, 36005 },
+ { 0x33A4, 35917 },
+ { 0x33A5, 35895 },
+ { 0x33A6, 35971 },
+ { 0x33A7, 35886 },
+ { 0x33A8, 35890 },
+ { 0x33A9, 36061 },
+ { 0x33AA, 36126 },
+ { 0x33AB, 36136 },
+ { 0x33AC, 36118 },
+ { 0x33AD, 36140 },
+ { 0x33AE, 36142 },
+ { 0x33AF, 36146 },
+ { 0x33B0, 36076 },
+ { 0x33B1, 36053 },
+ { 0x33B2, 36028 },
+ { 0x33B3, 36011 },
+ { 0x33B4, 36078 },
+ { 0x33B5, 36055 },
+ { 0x33B6, 36031 },
+ { 0x33B7, 36037 },
+ { 0x33B8, 35982 },
+ { 0x33B9, 36039 },
+ { 0x33BA, 36080 },
+ { 0x33BB, 36057 },
+ { 0x33BC, 36034 },
+ { 0x33BD, 36042 },
+ { 0x33BE, 35984 },
+ { 0x33BF, 36044 },
+ { 0x33C0, 35880 },
+ { 0x33C1, 35883 },
+ { 0x33C2, 35905 },
+ { 0x33C3, 35909 },
+ { 0x33C4, 35911 },
+ { 0x33C5, 35913 },
+ { 0x33C6, 35876 },
+ { 0x33C7, 35923 },
+ { 0x33C8, 35927 },
+ { 0x33C9, 35945 },
+ { 0x33CA, 35947 },
+ { 0x33CB, 35951 },
+ { 0x33CC, 35955 },
+ { 0x33CD, 35965 },
+ { 0x33CE, 35974 },
+ { 0x33CF, 35980 },
+ { 0x33D0, 35986 },
+ { 0x33D1, 35988 },
+ { 0x33D2, 36128 },
+ { 0x33D3, 35990 },
+ { 0x33D4, 35996 },
+ { 0x33D5, 36132 },
+ { 0x33D6, 36134 },
+ { 0x33D7, 36070 },
+ { 0x33D8, 36072 },
+ { 0x33D9, 36138 },
+ { 0x33DA, 36074 },
+ { 0x33DB, 36082 },
+ { 0x33DC, 36084 },
+ { 0x33DD, 36086 },
+ { 0x33DE, 35901 },
+ { 0x33DF, 35872 },
+ { 0x33E0, 68707 },
+ { 0x33E1, 68725 },
+ { 0x33E2, 68761 },
+ { 0x33E3, 68737 },
+ { 0x33E4, 68731 },
+ { 0x33E5, 68713 },
+ { 0x33E6, 68755 },
+ { 0x33E7, 68749 },
+ { 0x33E8, 68743 },
+ { 0x33E9, 68719 },
+ { 0x33EA, 68767 },
+ { 0x33EB, 68779 },
+ { 0x33EC, 68821 },
+ { 0x33ED, 68809 },
+ { 0x33EE, 68791 },
+ { 0x33EF, 68797 },
+ { 0x33F0, 68827 },
+ { 0x33F1, 68803 },
+ { 0x33F2, 68815 },
+ { 0x33F3, 68785 },
+ { 0x33F4, 68839 },
+ { 0x33F5, 68851 },
+ { 0x33F6, 68887 },
+ { 0x33F7, 68863 },
+ { 0x33F8, 68857 },
+ { 0x33F9, 68845 },
+ { 0x33FA, 68881 },
+ { 0x33FB, 68875 },
+ { 0x33FC, 68869 },
+ { 0x33FD, 68773 },
+ { 0x33FE, 68833 },
+ { 0x33FF, 36114 },
+ { 0x4DC0, 52824 },
+ { 0x4DC1, 52838 },
+ { 0x4DC2, 52975 },
+ { 0x4DC3, 52945 },
+ { 0x4DC4, 52921 },
+ { 0x4DC5, 52927 },
+ { 0x4DC6, 52777 },
+ { 0x4DC7, 52907 },
+ { 0x4DC8, 52883 },
+ { 0x4DC9, 52942 },
+ { 0x4DCA, 52880 },
+ { 0x4DCB, 53002 },
+ { 0x4DCC, 52987 },
+ { 0x4DCD, 52864 },
+ { 0x4DCE, 52911 },
+ { 0x4DCF, 52984 },
+ { 0x4DD0, 52958 },
+ { 0x4DD1, 52843 },
+ { 0x4DD2, 52924 },
+ { 0x4DD3, 53017 },
+ { 0x4DD4, 52895 },
+ { 0x4DD5, 52853 },
+ { 0x4DD6, 52971 },
+ { 0x4DD7, 52904 },
+ { 0x4DD8, 52968 },
+ { 0x4DD9, 52860 },
+ { 0x4DDA, 52876 },
+ { 0x4DDB, 52868 },
+ { 0x4DDC, 52799 },
+ { 0x4DDD, 52819 },
+ { 0x4DDE, 52965 },
+ { 0x4DDF, 52933 },
+ { 0x4DE0, 52918 },
+ { 0x4DE1, 52856 },
+ { 0x4DE2, 52939 },
+ { 0x4DE3, 52952 },
+ { 0x4DE4, 52785 },
+ { 0x4DE5, 52993 },
+ { 0x4DE6, 53011 },
+ { 0x4DE7, 53005 },
+ { 0x4DE8, 52930 },
+ { 0x4DE9, 52936 },
+ { 0x4DEA, 53014 },
+ { 0x4DEB, 52899 },
+ { 0x4DEC, 52961 },
+ { 0x4DED, 52914 },
+ { 0x4DEE, 52996 },
+ { 0x4DEF, 52781 },
+ { 0x4DF0, 52999 },
+ { 0x4DF1, 52815 },
+ { 0x4DF2, 52810 },
+ { 0x4DF3, 52804 },
+ { 0x4DF4, 53008 },
+ { 0x4DF5, 52829 },
+ { 0x4DF6, 52949 },
+ { 0x4DF7, 52834 },
+ { 0x4DF8, 52789 },
+ { 0x4DF9, 52794 },
+ { 0x4DFA, 52981 },
+ { 0x4DFB, 52990 },
+ { 0x4DFC, 52872 },
+ { 0x4DFD, 52887 },
+ { 0x4DFE, 52849 },
+ { 0x4DFF, 52891 },
+ { 0x5000, 634 },
+ { 0x5001, 637 },
+ { 0x5002, 520 },
+ { 0x5003, 631 },
+ { 0x5004, 1300 },
+ { 0x5005, 1303 },
+ { 0x5006, 628 },
+ { 0x5007, 1297 },
+ { 0x5008, 529 },
+ { 0x5009, 532 },
+ { 0x500A, 514 },
+ { 0x500B, 526 },
+ { 0x500C, 2011 },
+ { 0x500D, 802 },
+ { 0x500E, 2008 },
+ { 0x500F, 721 },
+ { 0x5010, 724 },
+ { 0x5011, 523 },
+ { 0x5012, 718 },
+ { 0x5013, 586 },
+ { 0x5014, 517 },
+ { 0x5015, 829 },
+ { 0x5016, 910 },
+ { 0x5017, 913 },
+ { 0x5018, 541 },
+ { 0x5019, 907 },
+ { 0x501A, 2341 },
+ { 0x501B, 2344 },
+ { 0x501C, 904 },
+ { 0x501D, 2338 },
+ { 0x501E, 874 },
+ { 0x501F, 877 },
+ { 0x5020, 535 },
+ { 0x5021, 871 },
+ { 0x5022, 2350 },
+ { 0x5023, 925 },
+ { 0x5024, 2347 },
+ { 0x5025, 919 },
+ { 0x5026, 922 },
+ { 0x5027, 544 },
+ { 0x5028, 916 },
+ { 0x5029, 901 },
+ { 0x502A, 538 },
+ { 0x502B, 898 },
+ { 0x502C, 934 },
+ { 0x502D, 937 },
+ { 0x502E, 547 },
+ { 0x502F, 928 },
+ { 0x5030, 2353 },
+ { 0x5031, 931 },
+ { 0x5032, 946 },
+ { 0x5033, 949 },
+ { 0x5034, 550 },
+ { 0x5035, 940 },
+ { 0x5036, 2356 },
+ { 0x5037, 943 },
+ { 0x5038, 1705 },
+ { 0x5039, 1708 },
+ { 0x503A, 730 },
+ { 0x503B, 1702 },
+ { 0x503C, 3274 },
+ { 0x503D, 1699 },
+ { 0x503E, 3271 },
+ { 0x503F, 1693 },
+ { 0x5040, 1696 },
+ { 0x5041, 727 },
+ { 0x5042, 1690 },
+ { 0x5043, 3280 },
+ { 0x5044, 1720 },
+ { 0x5045, 3277 },
+ { 0x5046, 1714 },
+ { 0x5047, 1717 },
+ { 0x5048, 733 },
+ { 0x5049, 1711 },
+ { 0x504A, 1729 },
+ { 0x504B, 1732 },
+ { 0x504C, 736 },
+ { 0x504D, 1723 },
+ { 0x504E, 3283 },
+ { 0x504F, 1726 },
+ { 0x5050, 1741 },
+ { 0x5051, 1744 },
+ { 0x5052, 739 },
+ { 0x5053, 1735 },
+ { 0x5054, 3286 },
+ { 0x5055, 1738 },
+ { 0x5056, 2299 },
+ { 0x5057, 2302 },
+ { 0x5058, 886 },
+ { 0x5059, 2296 },
+ { 0x505A, 3709 },
+ { 0x505B, 3712 },
+ { 0x505C, 2293 },
+ { 0x505D, 3706 },
+ { 0x505E, 2281 },
+ { 0x505F, 2284 },
+ { 0x5060, 880 },
+ { 0x5061, 2278 },
+ { 0x5062, 3718 },
+ { 0x5063, 2314 },
+ { 0x5064, 3715 },
+ { 0x5065, 2308 },
+ { 0x5066, 2311 },
+ { 0x5067, 889 },
+ { 0x5068, 2305 },
+ { 0x5069, 2290 },
+ { 0x506A, 883 },
+ { 0x506B, 2287 },
+ { 0x506C, 2323 },
+ { 0x506D, 2326 },
+ { 0x506E, 892 },
+ { 0x506F, 2317 },
+ { 0x5070, 3721 },
+ { 0x5071, 2320 },
+ { 0x5072, 2332 },
+ { 0x5073, 2335 },
+ { 0x5074, 895 },
+ { 0x5075, 2329 },
+ { 0x5076, 2959 },
+ { 0x5077, 2962 },
+ { 0x5078, 1561 },
+ { 0x5079, 2956 },
+ { 0x507A, 3871 },
+ { 0x507B, 2953 },
+ { 0x507C, 3868 },
+ { 0x507D, 2947 },
+ { 0x507E, 2950 },
+ { 0x507F, 1558 },
+ { 0x5080, 2944 },
+ { 0x5081, 2968 },
+ { 0x5082, 2971 },
+ { 0x5083, 1564 },
+ { 0x5084, 2965 },
+ { 0x5085, 2980 },
+ { 0x5086, 2983 },
+ { 0x5087, 1567 },
+ { 0x5088, 2974 },
+ { 0x5089, 3874 },
+ { 0x508A, 2977 },
+ { 0x508B, 2992 },
+ { 0x508C, 2995 },
+ { 0x508D, 1570 },
+ { 0x508E, 2986 },
+ { 0x508F, 3877 },
+ { 0x5090, 2989 },
+ { 0x5091, 2647 },
+ { 0x5092, 2650 },
+ { 0x5093, 1252 },
+ { 0x5094, 2644 },
+ { 0x5095, 3793 },
+ { 0x5096, 2641 },
+ { 0x5097, 3790 },
+ { 0x5098, 2635 },
+ { 0x5099, 2638 },
+ { 0x509A, 1249 },
+ { 0x509B, 2632 },
+ { 0x509C, 3799 },
+ { 0x509D, 2662 },
+ { 0x509E, 3796 },
+ { 0x509F, 2656 },
+ { 0x50A0, 2659 },
+ { 0x50A1, 1255 },
+ { 0x50A2, 2653 },
+ { 0x50A3, 2671 },
+ { 0x50A4, 2674 },
+ { 0x50A5, 1258 },
+ { 0x50A6, 2665 },
+ { 0x50A7, 3802 },
+ { 0x50A8, 2668 },
+ { 0x50A9, 2683 },
+ { 0x50AA, 1261 },
+ { 0x50AB, 2677 },
+ { 0x50AC, 3805 },
+ { 0x50AD, 2680 },
+ { 0x50AE, 1513 },
+ { 0x50AF, 1516 },
+ { 0x50B0, 691 },
+ { 0x50B1, 1510 },
+ { 0x50B2, 2929 },
+ { 0x50B3, 1507 },
+ { 0x50B4, 2926 },
+ { 0x50B5, 1486 },
+ { 0x50B6, 1489 },
+ { 0x50B7, 685 },
+ { 0x50B8, 1483 },
+ { 0x50B9, 2935 },
+ { 0x50BA, 2938 },
+ { 0x50BB, 1528 },
+ { 0x50BC, 2932 },
+ { 0x50BD, 1522 },
+ { 0x50BE, 1525 },
+ { 0x50BF, 694 },
+ { 0x50C0, 1519 },
+ { 0x50C1, 1492 },
+ { 0x50C2, 688 },
+ { 0x50C3, 1537 },
+ { 0x50C4, 1540 },
+ { 0x50C5, 697 },
+ { 0x50C6, 1531 },
+ { 0x50C7, 2941 },
+ { 0x50C8, 1534 },
+ { 0x50C9, 1546 },
+ { 0x50CA, 1549 },
+ { 0x50CB, 700 },
+ { 0x50CC, 1543 },
+ { 0x50CD, 1108 },
+ { 0x50CE, 1111 },
+ { 0x50CF, 592 },
+ { 0x50D0, 1105 },
+ { 0x50D1, 1099 },
+ { 0x50D2, 1102 },
+ { 0x50D3, 589 },
+ { 0x50D4, 1096 },
+ { 0x50D5, 1117 },
+ { 0x50D6, 595 },
+ { 0x50D7, 1114 },
+ { 0x50D8, 1126 },
+ { 0x50D9, 1129 },
+ { 0x50DA, 598 },
+ { 0x50DB, 1120 },
+ { 0x50DC, 2494 },
+ { 0x50DD, 1123 },
+ { 0x50DE, 1135 },
+ { 0x50DF, 1138 },
+ { 0x50E0, 601 },
+ { 0x50E1, 1132 },
+ { 0x50E2, 2035 },
+ { 0x50E3, 2038 },
+ { 0x50E4, 808 },
+ { 0x50E5, 2032 },
+ { 0x50E6, 3523 },
+ { 0x50E7, 3526 },
+ { 0x50E8, 2029 },
+ { 0x50E9, 3520 },
+ { 0x50EA, 2017 },
+ { 0x50EB, 2020 },
+ { 0x50EC, 805 },
+ { 0x50ED, 2014 },
+ { 0x50EE, 2044 },
+ { 0x50EF, 2047 },
+ { 0x50F0, 811 },
+ { 0x50F1, 2041 },
+ { 0x50F2, 2026 },
+ { 0x50F3, 2023 },
+ { 0x50F4, 2056 },
+ { 0x50F5, 2059 },
+ { 0x50F6, 814 },
+ { 0x50F7, 2050 },
+ { 0x50F8, 3529 },
+ { 0x50F9, 2053 },
+ { 0x50FA, 2068 },
+ { 0x50FB, 2071 },
+ { 0x50FC, 817 },
+ { 0x50FD, 2062 },
+ { 0x50FE, 3532 },
+ { 0x50FF, 2065 },
+ { 0x5100, 1066 },
+ { 0x5101, 1069 },
+ { 0x5102, 577 },
+ { 0x5103, 1063 },
+ { 0x5104, 2485 },
+ { 0x5105, 1060 },
+ { 0x5106, 2482 },
+ { 0x5107, 1033 },
+ { 0x5108, 1036 },
+ { 0x5109, 571 },
+ { 0x510A, 1030 },
+ { 0x510B, 2488 },
+ { 0x510C, 1081 },
+ { 0x510D, 1075 },
+ { 0x510E, 1078 },
+ { 0x510F, 580 },
+ { 0x5110, 1072 },
+ { 0x5111, 1057 },
+ { 0x5112, 574 },
+ { 0x5113, 1054 },
+ { 0x5114, 1090 },
+ { 0x5115, 1093 },
+ { 0x5116, 583 },
+ { 0x5117, 1084 },
+ { 0x5118, 2491 },
+ { 0x5119, 1087 },
+ { 0x511A, 1978 },
+ { 0x511B, 1981 },
+ { 0x511C, 793 },
+ { 0x511D, 1975 },
+ { 0x511E, 3505 },
+ { 0x511F, 1972 },
+ { 0x5120, 3502 },
+ { 0x5121, 1960 },
+ { 0x5122, 1963 },
+ { 0x5123, 787 },
+ { 0x5124, 1957 },
+ { 0x5125, 3511 },
+ { 0x5126, 3514 },
+ { 0x5127, 1993 },
+ { 0x5128, 3508 },
+ { 0x5129, 1987 },
+ { 0x512A, 1990 },
+ { 0x512B, 796 },
+ { 0x512C, 1984 },
+ { 0x512D, 1969 },
+ { 0x512E, 790 },
+ { 0x512F, 1966 },
+ { 0x5130, 2002 },
+ { 0x5131, 2005 },
+ { 0x5132, 799 },
+ { 0x5133, 1996 },
+ { 0x5134, 3517 },
+ { 0x5135, 1999 },
+ { 0x5136, 2452 },
+ { 0x5137, 2455 },
+ { 0x5138, 1045 },
+ { 0x5139, 2449 },
+ { 0x513A, 3742 },
+ { 0x513B, 2446 },
+ { 0x513C, 3739 },
+ { 0x513D, 2434 },
+ { 0x513E, 2437 },
+ { 0x513F, 1039 },
+ { 0x5140, 2431 },
+ { 0x5141, 3748 },
+ { 0x5142, 2467 },
+ { 0x5143, 3745 },
+ { 0x5144, 2461 },
+ { 0x5145, 2464 },
+ { 0x5146, 1048 },
+ { 0x5147, 2458 },
+ { 0x5148, 2443 },
+ { 0x5149, 1042 },
+ { 0x514A, 2440 },
+ { 0x514B, 2476 },
+ { 0x514C, 2479 },
+ { 0x514D, 1051 },
+ { 0x514E, 2470 },
+ { 0x514F, 3751 },
+ { 0x5150, 2473 },
+ { 0x5151, 3019 },
+ { 0x5152, 3022 },
+ { 0x5153, 1579 },
+ { 0x5154, 3016 },
+ { 0x5155, 3880 },
+ { 0x5156, 3013 },
+ { 0x5157, 3001 },
+ { 0x5158, 3004 },
+ { 0x5159, 1573 },
+ { 0x515A, 2998 },
+ { 0x515B, 3028 },
+ { 0x515C, 3031 },
+ { 0x515D, 1582 },
+ { 0x515E, 3025 },
+ { 0x515F, 3010 },
+ { 0x5160, 1576 },
+ { 0x5161, 3007 },
+ { 0x5162, 3040 },
+ { 0x5163, 3043 },
+ { 0x5164, 1585 },
+ { 0x5165, 3034 },
+ { 0x5166, 3883 },
+ { 0x5167, 3037 },
+ { 0x5168, 2707 },
+ { 0x5169, 2710 },
+ { 0x516A, 1270 },
+ { 0x516B, 2704 },
+ { 0x516C, 3811 },
+ { 0x516D, 3814 },
+ { 0x516E, 2701 },
+ { 0x516F, 3808 },
+ { 0x5170, 2689 },
+ { 0x5171, 2692 },
+ { 0x5172, 1264 },
+ { 0x5173, 2686 },
+ { 0x5174, 3817 },
+ { 0x5175, 2722 },
+ { 0x5176, 2716 },
+ { 0x5177, 2719 },
+ { 0x5178, 2713 },
+ { 0x5179, 2698 },
+ { 0x517A, 1267 },
+ { 0x517B, 2695 },
+ { 0x517C, 2725 },
+ { 0x517D, 1609 },
+ { 0x517E, 1612 },
+ { 0x517F, 709 },
+ { 0x5180, 1606 },
+ { 0x5181, 3079 },
+ { 0x5182, 1603 },
+ { 0x5183, 3076 },
+ { 0x5184, 1555 },
+ { 0x5185, 703 },
+ { 0x5186, 1552 },
+ { 0x5187, 3178 },
+ { 0x5188, 1651 },
+ { 0x5189, 3175 },
+ { 0x518A, 1630 },
+ { 0x518B, 1633 },
+ { 0x518C, 712 },
+ { 0x518D, 1627 },
+ { 0x518E, 1591 },
+ { 0x518F, 706 },
+ { 0x5190, 1588 },
+ { 0x5191, 1660 },
+ { 0x5192, 1663 },
+ { 0x5193, 715 },
+ { 0x5194, 1654 },
+ { 0x5195, 3181 },
+ { 0x5196, 1657 },
+ { 0x5197, 2593 },
+ { 0x5198, 2596 },
+ { 0x5199, 1237 },
+ { 0x519A, 2590 },
+ { 0x519B, 3775 },
+ { 0x519C, 2587 },
+ { 0x519D, 3772 },
+ { 0x519E, 2575 },
+ { 0x519F, 2578 },
+ { 0x51A0, 1231 },
+ { 0x51A1, 2572 },
+ { 0x51A2, 3781 },
+ { 0x51A3, 2605 },
+ { 0x51A4, 3778 },
+ { 0x51A5, 2602 },
+ { 0x51A6, 1240 },
+ { 0x51A7, 2599 },
+ { 0x51A8, 2584 },
+ { 0x51A9, 1234 },
+ { 0x51AA, 2581 },
+ { 0x51AB, 2614 },
+ { 0x51AC, 2617 },
+ { 0x51AD, 1243 },
+ { 0x51AE, 2608 },
+ { 0x51AF, 3784 },
+ { 0x51B0, 2611 },
+ { 0x51B1, 2626 },
+ { 0x51B2, 2629 },
+ { 0x51B3, 1246 },
+ { 0x51B4, 2620 },
+ { 0x51B5, 3787 },
+ { 0x51B6, 2623 },
+ { 0x51B7, 1441 },
+ { 0x51B8, 1444 },
+ { 0x51B9, 673 },
+ { 0x51BA, 1438 },
+ { 0x51BB, 2863 },
+ { 0x51BC, 2866 },
+ { 0x51BD, 1435 },
+ { 0x51BE, 2860 },
+ { 0x51BF, 1423 },
+ { 0x51C0, 1426 },
+ { 0x51C1, 667 },
+ { 0x51C2, 1420 },
+ { 0x51C3, 2872 },
+ { 0x51C4, 2875 },
+ { 0x51C5, 1456 },
+ { 0x51C6, 2869 },
+ { 0x51C7, 1450 },
+ { 0x51C8, 1453 },
+ { 0x51C9, 676 },
+ { 0x51CA, 1447 },
+ { 0x51CB, 1432 },
+ { 0x51CC, 670 },
+ { 0x51CD, 1429 },
+ { 0x51CE, 1465 },
+ { 0x51CF, 1468 },
+ { 0x51D0, 679 },
+ { 0x51D1, 1459 },
+ { 0x51D2, 2878 },
+ { 0x51D3, 1462 },
+ { 0x51D4, 1477 },
+ { 0x51D5, 1480 },
+ { 0x51D6, 682 },
+ { 0x51D7, 1471 },
+ { 0x51D8, 2881 },
+ { 0x51D9, 1474 },
+ { 0x51DA, 1180 },
+ { 0x51DB, 1183 },
+ { 0x51DC, 610 },
+ { 0x51DD, 1177 },
+ { 0x51DE, 2551 },
+ { 0x51DF, 2554 },
+ { 0x51E0, 1174 },
+ { 0x51E1, 2548 },
+ { 0x51E2, 1144 },
+ { 0x51E3, 1147 },
+ { 0x51E4, 604 },
+ { 0x51E5, 1141 },
+ { 0x51E6, 2560 },
+ { 0x51E7, 2563 },
+ { 0x51E8, 1195 },
+ { 0x51E9, 2557 },
+ { 0x51EA, 1189 },
+ { 0x51EB, 1192 },
+ { 0x51EC, 613 },
+ { 0x51ED, 1186 },
+ { 0x51EE, 1153 },
+ { 0x51EF, 1156 },
+ { 0x51F0, 607 },
+ { 0x51F1, 1150 },
+ { 0x51F2, 1204 },
+ { 0x51F3, 1207 },
+ { 0x51F4, 616 },
+ { 0x51F5, 1198 },
+ { 0x51F6, 2566 },
+ { 0x51F7, 1201 },
+ { 0x51F8, 1390 },
+ { 0x51F9, 1393 },
+ { 0x51FA, 658 },
+ { 0x51FB, 1387 },
+ { 0x51FC, 2848 },
+ { 0x51FD, 1384 },
+ { 0x51FE, 2845 },
+ { 0x51FF, 1369 },
+ { 0x5200, 1372 },
+ { 0x5201, 652 },
+ { 0x5202, 1366 },
+ { 0x5203, 2854 },
+ { 0x5204, 1405 },
+ { 0x5205, 2851 },
+ { 0x5206, 1399 },
+ { 0x5207, 1402 },
+ { 0x5208, 661 },
+ { 0x5209, 1396 },
+ { 0x520A, 1378 },
+ { 0x520B, 1381 },
+ { 0x520C, 655 },
+ { 0x520D, 1375 },
+ { 0x520E, 1414 },
+ { 0x520F, 1417 },
+ { 0x5210, 664 },
+ { 0x5211, 1408 },
+ { 0x5212, 2857 },
+ { 0x5213, 1411 },
+ { 0x5214, 2518 },
+ { 0x5215, 2521 },
+ { 0x5216, 1165 },
+ { 0x5217, 3757 },
+ { 0x5218, 2515 },
+ { 0x5219, 3754 },
+ { 0x521A, 2500 },
+ { 0x521B, 2503 },
+ { 0x521C, 1159 },
+ { 0x521D, 2497 },
+ { 0x521E, 3763 },
+ { 0x521F, 3766 },
+ { 0x5220, 2533 },
+ { 0x5221, 3760 },
+ { 0x5222, 2527 },
+ { 0x5223, 2530 },
+ { 0x5224, 1168 },
+ { 0x5225, 2524 },
+ { 0x5226, 2509 },
+ { 0x5227, 2512 },
+ { 0x5228, 1162 },
+ { 0x5229, 2506 },
+ { 0x522A, 2542 },
+ { 0x522B, 2545 },
+ { 0x522C, 1171 },
+ { 0x522D, 2536 },
+ { 0x522E, 3769 },
+ { 0x522F, 2539 },
+ { 0x5230, 3856 },
+ { 0x5231, 2899 },
+ { 0x5232, 2887 },
+ { 0x5233, 2890 },
+ { 0x5234, 1495 },
+ { 0x5235, 2884 },
+ { 0x5236, 3862 },
+ { 0x5237, 2911 },
+ { 0x5238, 3859 },
+ { 0x5239, 2905 },
+ { 0x523A, 2908 },
+ { 0x523B, 1501 },
+ { 0x523C, 2902 },
+ { 0x523D, 2896 },
+ { 0x523E, 1498 },
+ { 0x523F, 2893 },
+ { 0x5240, 2920 },
+ { 0x5241, 2923 },
+ { 0x5242, 1504 },
+ { 0x5243, 2914 },
+ { 0x5244, 3865 },
+ { 0x5245, 2917 },
+ { 0x5246, 2758 },
+ { 0x5247, 2761 },
+ { 0x5248, 1291 },
+ { 0x5249, 2755 },
+ { 0x524A, 3823 },
+ { 0x524B, 3826 },
+ { 0x524C, 2752 },
+ { 0x524D, 3820 },
+ { 0x524E, 2740 },
+ { 0x524F, 2743 },
+ { 0x5250, 1285 },
+ { 0x5251, 2737 },
+ { 0x5252, 3832 },
+ { 0x5253, 3835 },
+ { 0x5254, 2773 },
+ { 0x5255, 3829 },
+ { 0x5256, 2767 },
+ { 0x5257, 2770 },
+ { 0x5258, 1294 },
+ { 0x5259, 2764 },
+ { 0x525A, 2749 },
+ { 0x525B, 1288 },
+ { 0x525C, 2746 },
+ { 0x525D, 3889 },
+ { 0x525E, 3061 },
+ { 0x525F, 3886 },
+ { 0x5260, 3049 },
+ { 0x5261, 3052 },
+ { 0x5262, 1594 },
+ { 0x5263, 3046 },
+ { 0x5264, 3892 },
+ { 0x5265, 3895 },
+ { 0x5266, 3073 },
+ { 0x5267, 3067 },
+ { 0x5268, 3070 },
+ { 0x5269, 1600 },
+ { 0x526A, 3064 },
+ { 0x526B, 3058 },
+ { 0x526C, 1597 },
+ { 0x526D, 3055 },
+ { 0x526E, 1228 },
+ { 0x526F, 2569 },
+ { 0x5270, 1225 },
+ { 0x5271, 1213 },
+ { 0x5272, 1216 },
+ { 0x5273, 619 },
+ { 0x5274, 1210 },
+ { 0x5275, 2731 },
+ { 0x5276, 2734 },
+ { 0x5277, 1282 },
+ { 0x5278, 2728 },
+ { 0x5279, 1276 },
+ { 0x527A, 1279 },
+ { 0x527B, 625 },
+ { 0x527C, 1273 },
+ { 0x527D, 1222 },
+ { 0x527E, 622 },
+ { 0x527F, 1219 },
+ { 0x5280, 2077 },
+ { 0x5281, 2080 },
+ { 0x5282, 820 },
+ { 0x5283, 2074 },
+ { 0x5284, 3538 },
+ { 0x5285, 2095 },
+ { 0x5286, 3535 },
+ { 0x5287, 2092 },
+ { 0x5288, 826 },
+ { 0x5289, 2089 },
+ { 0x528A, 2086 },
+ { 0x528B, 823 },
+ { 0x528C, 2083 },
+ { 0x528D, 2218 },
+ { 0x528E, 2221 },
+ { 0x528F, 859 },
+ { 0x5290, 2215 },
+ { 0x5291, 3637 },
+ { 0x5292, 2212 },
+ { 0x5293, 3634 },
+ { 0x5294, 2185 },
+ { 0x5295, 2188 },
+ { 0x5296, 853 },
+ { 0x5297, 2182 },
+ { 0x5298, 3643 },
+ { 0x5299, 2233 },
+ { 0x529A, 3640 },
+ { 0x529B, 2227 },
+ { 0x529C, 2230 },
+ { 0x529D, 862 },
+ { 0x529E, 2224 },
+ { 0x529F, 2194 },
+ { 0x52A0, 856 },
+ { 0x52A1, 2191 },
+ { 0x52A2, 2242 },
+ { 0x52A3, 2245 },
+ { 0x52A4, 865 },
+ { 0x52A5, 2236 },
+ { 0x52A6, 3646 },
+ { 0x52A7, 2239 },
+ { 0x52A8, 2254 },
+ { 0x52A9, 2257 },
+ { 0x52AA, 868 },
+ { 0x52AB, 2248 },
+ { 0x52AC, 3649 },
+ { 0x52AD, 2251 },
+ { 0x52AE, 988 },
+ { 0x52AF, 991 },
+ { 0x52B0, 559 },
+ { 0x52B1, 985 },
+ { 0x52B2, 2413 },
+ { 0x52B3, 2416 },
+ { 0x52B4, 982 },
+ { 0x52B5, 2410 },
+ { 0x52B6, 955 },
+ { 0x52B7, 958 },
+ { 0x52B8, 553 },
+ { 0x52B9, 952 },
+ { 0x52BA, 2422 },
+ { 0x52BB, 1003 },
+ { 0x52BC, 2419 },
+ { 0x52BD, 997 },
+ { 0x52BE, 1000 },
+ { 0x52BF, 562 },
+ { 0x52C0, 994 },
+ { 0x52C1, 964 },
+ { 0x52C2, 556 },
+ { 0x52C3, 961 },
+ { 0x52C4, 1012 },
+ { 0x52C5, 1015 },
+ { 0x52C6, 565 },
+ { 0x52C7, 1006 },
+ { 0x52C8, 2425 },
+ { 0x52C9, 1009 },
+ { 0x52CA, 1024 },
+ { 0x52CB, 1027 },
+ { 0x52CC, 568 },
+ { 0x52CD, 1018 },
+ { 0x52CE, 2428 },
+ { 0x52CF, 1021 },
+ { 0x52D0, 3673 },
+ { 0x52D1, 3676 },
+ { 0x52D2, 2266 },
+ { 0x52D3, 3670 },
+ { 0x52D4, 3997 },
+ { 0x52D5, 4000 },
+ { 0x52D6, 3667 },
+ { 0x52D7, 3994 },
+ { 0x52D8, 3655 },
+ { 0x52D9, 3658 },
+ { 0x52DA, 2260 },
+ { 0x52DB, 3652 },
+ { 0x52DC, 3682 },
+ { 0x52DD, 2269 },
+ { 0x52DE, 3679 },
+ { 0x52DF, 3664 },
+ { 0x52E0, 2263 },
+ { 0x52E1, 3661 },
+ { 0x52E2, 3691 },
+ { 0x52E3, 2272 },
+ { 0x52E4, 3685 },
+ { 0x52E5, 4003 },
+ { 0x52E6, 3688 },
+ { 0x52E7, 3700 },
+ { 0x52E8, 3703 },
+ { 0x52E9, 2275 },
+ { 0x52EA, 3694 },
+ { 0x52EB, 4006 },
+ { 0x52EC, 3697 },
+ { 0x52ED, 3235 },
+ { 0x52EE, 3238 },
+ { 0x52EF, 1681 },
+ { 0x52F0, 3232 },
+ { 0x52F1, 3940 },
+ { 0x52F2, 3229 },
+ { 0x52F3, 3937 },
+ { 0x52F4, 3220 },
+ { 0x52F5, 3223 },
+ { 0x52F6, 1675 },
+ { 0x52F7, 3217 },
+ { 0x52F8, 3943 },
+ { 0x52F9, 3247 },
+ { 0x52FA, 3244 },
+ { 0x52FB, 3241 },
+ { 0x52FC, 3226 },
+ { 0x52FD, 1678 },
+ { 0x52FE, 3256 },
+ { 0x52FF, 1684 },
+ { 0x5300, 3250 },
+ { 0x5301, 3946 },
+ { 0x5302, 3253 },
+ { 0x5303, 3265 },
+ { 0x5304, 3268 },
+ { 0x5305, 1687 },
+ { 0x5306, 3259 },
+ { 0x5307, 3949 },
+ { 0x5308, 3262 },
+ { 0x5309, 1897 },
+ { 0x530A, 1900 },
+ { 0x530B, 775 },
+ { 0x530C, 1894 },
+ { 0x530D, 3430 },
+ { 0x530E, 1891 },
+ { 0x530F, 3427 },
+ { 0x5310, 1864 },
+ { 0x5311, 1867 },
+ { 0x5312, 769 },
+ { 0x5313, 1861 },
+ { 0x5314, 3493 },
+ { 0x5315, 1930 },
+ { 0x5316, 3490 },
+ { 0x5317, 1906 },
+ { 0x5318, 1909 },
+ { 0x5319, 778 },
+ { 0x531A, 1903 },
+ { 0x531B, 1873 },
+ { 0x531C, 772 },
+ { 0x531D, 1870 },
+ { 0x531E, 1939 },
+ { 0x531F, 1942 },
+ { 0x5320, 781 },
+ { 0x5321, 1933 },
+ { 0x5322, 3496 },
+ { 0x5323, 1936 },
+ { 0x5324, 1951 },
+ { 0x5325, 1954 },
+ { 0x5326, 784 },
+ { 0x5327, 1945 },
+ { 0x5328, 3499 },
+ { 0x5329, 1948 },
+ { 0x532A, 3454 },
+ { 0x532B, 3457 },
+ { 0x532C, 1918 },
+ { 0x532D, 3451 },
+ { 0x532E, 3976 },
+ { 0x532F, 3448 },
+ { 0x5330, 3973 },
+ { 0x5331, 3436 },
+ { 0x5332, 3439 },
+ { 0x5333, 1912 },
+ { 0x5334, 3433 },
+ { 0x5335, 3463 },
+ { 0x5336, 3466 },
+ { 0x5337, 1921 },
+ { 0x5338, 3460 },
+ { 0x5339, 3445 },
+ { 0x533A, 1915 },
+ { 0x533B, 3442 },
+ { 0x533C, 3472 },
+ { 0x533D, 3475 },
+ { 0x533E, 1924 },
+ { 0x533F, 3469 },
+ { 0x5340, 3484 },
+ { 0x5341, 3487 },
+ { 0x5342, 1927 },
+ { 0x5343, 3478 },
+ { 0x5344, 3979 },
+ { 0x5345, 3481 },
+ { 0x5346, 3583 },
+ { 0x5347, 3586 },
+ { 0x5348, 2197 },
+ { 0x5349, 3580 },
+ { 0x534A, 3985 },
+ { 0x534B, 3607 },
+ { 0x534C, 3982 },
+ { 0x534D, 3601 },
+ { 0x534E, 3604 },
+ { 0x534F, 2203 },
+ { 0x5350, 3598 },
+ { 0x5351, 3592 },
+ { 0x5352, 3595 },
+ { 0x5353, 2200 },
+ { 0x5354, 3589 },
+ { 0x5355, 3616 },
+ { 0x5356, 3619 },
+ { 0x5357, 2206 },
+ { 0x5358, 3610 },
+ { 0x5359, 3988 },
+ { 0x535A, 3613 },
+ { 0x535B, 3628 },
+ { 0x535C, 3631 },
+ { 0x535D, 2209 },
+ { 0x535E, 3622 },
+ { 0x535F, 3991 },
+ { 0x5360, 3625 },
+ { 0x5361, 2362 },
+ { 0x5362, 2365 },
+ { 0x5363, 967 },
+ { 0x5364, 2359 },
+ { 0x5365, 3727 },
+ { 0x5366, 3730 },
+ { 0x5367, 2386 },
+ { 0x5368, 3724 },
+ { 0x5369, 2380 },
+ { 0x536A, 2383 },
+ { 0x536B, 973 },
+ { 0x536C, 2377 },
+ { 0x536D, 2371 },
+ { 0x536E, 2374 },
+ { 0x536F, 970 },
+ { 0x5370, 2368 },
+ { 0x5371, 2395 },
+ { 0x5372, 976 },
+ { 0x5373, 2389 },
+ { 0x5374, 3733 },
+ { 0x5375, 2392 },
+ { 0x5376, 2404 },
+ { 0x5377, 2407 },
+ { 0x5378, 979 },
+ { 0x5379, 2398 },
+ { 0x537A, 3736 },
+ { 0x537B, 2401 },
+ { 0x537C, 3313 },
+ { 0x537D, 1819 },
+ { 0x537E, 3952 },
+ { 0x537F, 3334 },
+ { 0x5380, 3328 },
+ { 0x5381, 3331 },
+ { 0x5382, 1825 },
+ { 0x5383, 3325 },
+ { 0x5384, 3319 },
+ { 0x5385, 3322 },
+ { 0x5386, 1822 },
+ { 0x5387, 3316 },
+ { 0x5388, 3343 },
+ { 0x5389, 3346 },
+ { 0x538A, 1828 },
+ { 0x538B, 3337 },
+ { 0x538C, 3955 },
+ { 0x538D, 3340 },
+ { 0x538E, 3355 },
+ { 0x538F, 3358 },
+ { 0x5390, 1831 },
+ { 0x5391, 3349 },
+ { 0x5392, 3958 },
+ { 0x5393, 3352 },
+ { 0x5394, 3130 },
+ { 0x5395, 3133 },
+ { 0x5396, 1636 },
+ { 0x5397, 3127 },
+ { 0x5398, 3148 },
+ { 0x5399, 1642 },
+ { 0x539A, 3145 },
+ { 0x539B, 3139 },
+ { 0x539C, 3142 },
+ { 0x539D, 1639 },
+ { 0x539E, 3136 },
+ { 0x539F, 3157 },
+ { 0x53A0, 3160 },
+ { 0x53A1, 1645 },
+ { 0x53A2, 3151 },
+ { 0x53A3, 3916 },
+ { 0x53A4, 3154 },
+ { 0x53A5, 3169 },
+ { 0x53A6, 3172 },
+ { 0x53A7, 1648 },
+ { 0x53A8, 3163 },
+ { 0x53A9, 3919 },
+ { 0x53AA, 3166 },
+ { 0x53AB, 3376 },
+ { 0x53AC, 3379 },
+ { 0x53AD, 1876 },
+ { 0x53AE, 3373 },
+ { 0x53AF, 3964 },
+ { 0x53B0, 3400 },
+ { 0x53B1, 3961 },
+ { 0x53B2, 3394 },
+ { 0x53B3, 3397 },
+ { 0x53B4, 1882 },
+ { 0x53B5, 3391 },
+ { 0x53B6, 3385 },
+ { 0x53B7, 3388 },
+ { 0x53B8, 1879 },
+ { 0x53B9, 3382 },
+ { 0x53BA, 3409 },
+ { 0x53BB, 3412 },
+ { 0x53BC, 1885 },
+ { 0x53BD, 3403 },
+ { 0x53BE, 3967 },
+ { 0x53BF, 3406 },
+ { 0x53C0, 3421 },
+ { 0x53C1, 3424 },
+ { 0x53C2, 1888 },
+ { 0x53C3, 3415 },
+ { 0x53C4, 3970 },
+ { 0x53C5, 3418 },
+ { 0x53C6, 1798 },
+ { 0x53C7, 1801 },
+ { 0x53C8, 754 },
+ { 0x53C9, 1795 },
+ { 0x53CA, 3364 },
+ { 0x53CB, 1834 },
+ { 0x53CC, 3361 },
+ { 0x53CD, 1813 },
+ { 0x53CE, 1816 },
+ { 0x53CF, 760 },
+ { 0x53D0, 1810 },
+ { 0x53D1, 1807 },
+ { 0x53D2, 757 },
+ { 0x53D3, 1804 },
+ { 0x53D4, 1843 },
+ { 0x53D5, 1846 },
+ { 0x53D6, 763 },
+ { 0x53D7, 1837 },
+ { 0x53D8, 3367 },
+ { 0x53D9, 1840 },
+ { 0x53DA, 1855 },
+ { 0x53DB, 1858 },
+ { 0x53DC, 766 },
+ { 0x53DD, 1849 },
+ { 0x53DE, 3370 },
+ { 0x53DF, 1852 },
+ { 0x53E0, 1312 },
+ { 0x53E1, 1315 },
+ { 0x53E2, 640 },
+ { 0x53E3, 1309 },
+ { 0x53E4, 2779 },
+ { 0x53E5, 2782 },
+ { 0x53E6, 1306 },
+ { 0x53E7, 2776 },
+ { 0x53E8, 2833 },
+ { 0x53E9, 2836 },
+ { 0x53EA, 1339 },
+ { 0x53EB, 2830 },
+ { 0x53EC, 1333 },
+ { 0x53ED, 1336 },
+ { 0x53EE, 643 },
+ { 0x53EF, 1330 },
+ { 0x53F0, 1348 },
+ { 0x53F1, 1351 },
+ { 0x53F2, 646 },
+ { 0x53F3, 1342 },
+ { 0x53F4, 2839 },
+ { 0x53F5, 1345 },
+ { 0x53F6, 1360 },
+ { 0x53F7, 1363 },
+ { 0x53F8, 649 },
+ { 0x53F9, 1354 },
+ { 0x53FA, 2842 },
+ { 0x53FB, 1357 },
+ { 0x53FC, 1753 },
+ { 0x53FD, 1756 },
+ { 0x53FE, 742 },
+ { 0x53FF, 1750 },
+ { 0x5400, 3292 },
+ { 0x5401, 3295 },
+ { 0x5402, 1747 },
+ { 0x5403, 3289 },
+ { 0x5404, 3301 },
+ { 0x5405, 3304 },
+ { 0x5406, 1768 },
+ { 0x5407, 3298 },
+ { 0x5408, 1762 },
+ { 0x5409, 1765 },
+ { 0x540A, 745 },
+ { 0x540B, 1759 },
+ { 0x540C, 1777 },
+ { 0x540D, 1780 },
+ { 0x540E, 748 },
+ { 0x540F, 1771 },
+ { 0x5410, 3307 },
+ { 0x5411, 1774 },
+ { 0x5412, 1789 },
+ { 0x5413, 1792 },
+ { 0x5414, 751 },
+ { 0x5415, 1783 },
+ { 0x5416, 3310 },
+ { 0x5417, 1786 },
+ { 0x5418, 2791 },
+ { 0x5419, 2794 },
+ { 0x541A, 1318 },
+ { 0x541B, 2788 },
+ { 0x541C, 3841 },
+ { 0x541D, 3844 },
+ { 0x541E, 2785 },
+ { 0x541F, 3838 },
+ { 0x5420, 3850 },
+ { 0x5421, 2806 },
+ { 0x5422, 3847 },
+ { 0x5423, 2800 },
+ { 0x5424, 2803 },
+ { 0x5425, 1321 },
+ { 0x5426, 2797 },
+ { 0x5427, 2815 },
+ { 0x5428, 2818 },
+ { 0x5429, 1324 },
+ { 0x542A, 2809 },
+ { 0x542B, 3853 },
+ { 0x542C, 2812 },
+ { 0x542D, 2824 },
+ { 0x542E, 2827 },
+ { 0x542F, 1327 },
+ { 0x5430, 2821 },
+ { 0x5431, 3088 },
+ { 0x5432, 3091 },
+ { 0x5433, 1615 },
+ { 0x5434, 3085 },
+ { 0x5435, 3901 },
+ { 0x5436, 3904 },
+ { 0x5437, 3082 },
+ { 0x5438, 3898 },
+ { 0x5439, 3907 },
+ { 0x543A, 3103 },
+ { 0x543B, 3097 },
+ { 0x543C, 3100 },
+ { 0x543D, 1618 },
+ { 0x543E, 3094 },
+ { 0x543F, 3112 },
+ { 0x5440, 1621 },
+ { 0x5441, 3106 },
+ { 0x5442, 3910 },
+ { 0x5443, 3109 },
+ { 0x5444, 3121 },
+ { 0x5445, 3124 },
+ { 0x5446, 1624 },
+ { 0x5447, 3115 },
+ { 0x5448, 3913 },
+ { 0x5449, 3118 },
+ { 0x544A, 3190 },
+ { 0x544B, 3193 },
+ { 0x544C, 1666 },
+ { 0x544D, 3187 },
+ { 0x544E, 3925 },
+ { 0x544F, 3928 },
+ { 0x5450, 3184 },
+ { 0x5451, 3922 },
+ { 0x5452, 3934 },
+ { 0x5453, 3205 },
+ { 0x5454, 3931 },
+ { 0x5455, 3199 },
+ { 0x5456, 3202 },
+ { 0x5457, 1669 },
+ { 0x5458, 3196 },
+ { 0x5459, 3211 },
+ { 0x545A, 3214 },
+ { 0x545B, 1672 },
+ { 0x545C, 3208 },
+ { 0x545D, 2104 },
+ { 0x545E, 2107 },
+ { 0x545F, 832 },
+ { 0x5460, 2101 },
+ { 0x5461, 3544 },
+ { 0x5462, 3547 },
+ { 0x5463, 2098 },
+ { 0x5464, 3541 },
+ { 0x5465, 3550 },
+ { 0x5466, 2119 },
+ { 0x5467, 2113 },
+ { 0x5468, 2116 },
+ { 0x5469, 835 },
+ { 0x546A, 2110 },
+ { 0x546B, 2128 },
+ { 0x546C, 2131 },
+ { 0x546D, 838 },
+ { 0x546E, 2122 },
+ { 0x546F, 3553 },
+ { 0x5470, 2125 },
+ { 0x5471, 2140 },
+ { 0x5472, 2143 },
+ { 0x5473, 841 },
+ { 0x5474, 2137 },
+ { 0x5475, 3559 },
+ { 0x5476, 3562 },
+ { 0x5477, 2134 },
+ { 0x5478, 3556 },
+ { 0x5479, 3568 },
+ { 0x547A, 3571 },
+ { 0x547B, 2155 },
+ { 0x547C, 3565 },
+ { 0x547D, 2149 },
+ { 0x547E, 2152 },
+ { 0x547F, 844 },
+ { 0x5480, 2146 },
+ { 0x5481, 2164 },
+ { 0x5482, 2167 },
+ { 0x5483, 847 },
+ { 0x5484, 2158 },
+ { 0x5485, 3574 },
+ { 0x5486, 2161 },
+ { 0x5487, 2176 },
+ { 0x5488, 2179 },
+ { 0x5489, 850 },
+ { 0x548A, 2170 },
+ { 0x548B, 3577 },
+ { 0x548C, 2173 },
+ { 0x5490, 430 },
+ { 0x5491, 364 },
+ { 0x5492, 412 },
+ { 0x5493, 493 },
+ { 0x5494, 394 },
+ { 0x5495, 436 },
+ { 0x5496, 469 },
+ { 0x5497, 400 },
+ { 0x5498, 367 },
+ { 0x5499, 475 },
+ { 0x549A, 418 },
+ { 0x549B, 460 },
+ { 0x549C, 421 },
+ { 0x549D, 379 },
+ { 0x549E, 424 },
+ { 0x549F, 481 },
+ { 0x54A0, 439 },
+ { 0x54A1, 355 },
+ { 0x54A2, 454 },
+ { 0x54A3, 397 },
+ { 0x54A4, 466 },
+ { 0x54A5, 385 },
+ { 0x54A6, 472 },
+ { 0x54A7, 496 },
+ { 0x54A8, 373 },
+ { 0x54A9, 370 },
+ { 0x54AA, 487 },
+ { 0x54AB, 451 },
+ { 0x54AC, 427 },
+ { 0x54AD, 406 },
+ { 0x54AE, 448 },
+ { 0x54AF, 445 },
+ { 0x54B0, 433 },
+ { 0x54B1, 442 },
+ { 0x54B2, 382 },
+ { 0x54B3, 358 },
+ { 0x54B4, 499 },
+ { 0x54B5, 409 },
+ { 0x54B6, 403 },
+ { 0x54B7, 484 },
+ { 0x54B8, 376 },
+ { 0x54B9, 352 },
+ { 0x54BA, 508 },
+ { 0x54BB, 415 },
+ { 0x54BC, 349 },
+ { 0x54BD, 463 },
+ { 0x54BE, 391 },
+ { 0x54BF, 478 },
+ { 0x54C0, 502 },
+ { 0x54C1, 457 },
+ { 0x54C2, 505 },
+ { 0x54C3, 388 },
+ { 0x54C4, 511 },
+ { 0x54C5, 490 },
+ { 0x54C6, 361 },
+ { 0x5500, 7945 },
+ { 0x5501, 8254 },
+ { 0x5502, 8290 },
+ { 0x5503, 8482 },
+ { 0x5504, 8653 },
+ { 0x5505, 8419 },
+ { 0x5506, 8527 },
+ { 0x5507, 8206 },
+ { 0x5508, 8578 },
+ { 0x5509, 8569 },
+ { 0x550A, 8671 },
+ { 0x550B, 8554 },
+ { 0x550C, 8257 },
+ { 0x550D, 8473 },
+ { 0x550E, 8452 },
+ { 0x550F, 8647 },
+ { 0x5510, 8533 },
+ { 0x5511, 8665 },
+ { 0x5512, 8338 },
+ { 0x5513, 8425 },
+ { 0x5514, 8233 },
+ { 0x5515, 8599 },
+ { 0x5516, 8431 },
+ { 0x5517, 8641 },
+ { 0x5518, 8506 },
+ { 0x5519, 8659 },
+ { 0x551A, 8227 },
+ { 0x551B, 8308 },
+ { 0x551C, 8629 },
+ { 0x551D, 8500 },
+ { 0x551E, 8317 },
+ { 0x551F, 8697 },
+ { 0x5520, 8278 },
+ { 0x5521, 8359 },
+ { 0x5522, 8380 },
+ { 0x5523, 8635 },
+ { 0x5524, 7888 },
+ { 0x5525, 7996 },
+ { 0x5526, 7987 },
+ { 0x5527, 8296 },
+ { 0x5528, 8167 },
+ { 0x5529, 8488 },
+ { 0x552A, 8089 },
+ { 0x552B, 8215 },
+ { 0x552C, 7906 },
+ { 0x552D, 8350 },
+ { 0x552E, 8329 },
+ { 0x552F, 8590 },
+ { 0x5530, 8269 },
+ { 0x5531, 7957 },
+ { 0x5532, 8152 },
+ { 0x5533, 8134 },
+ { 0x5534, 8461 },
+ { 0x5535, 8242 },
+ { 0x5536, 8542 },
+ { 0x5537, 8035 },
+ { 0x5538, 8104 },
+ { 0x5539, 7936 },
+ { 0x553A, 8371 },
+ { 0x553B, 8119 },
+ { 0x553C, 8440 },
+ { 0x553D, 8197 },
+ { 0x553E, 8515 },
+ { 0x553F, 7921 },
+ { 0x5540, 8005 },
+ { 0x5541, 8389 },
+ { 0x5542, 8182 },
+ { 0x5543, 8020 },
+ { 0x5544, 8617 },
+ { 0x5545, 7972 },
+ { 0x5546, 8050 },
+ { 0x5547, 8068 },
+ { 0x5548, 8407 },
+ { 0x5549, 7882 },
+ { 0x554A, 7897 },
+ { 0x554B, 8605 },
+ { 0x554C, 7981 },
+ { 0x554D, 8287 },
+ { 0x554E, 8161 },
+ { 0x554F, 8479 },
+ { 0x5550, 8083 },
+ { 0x5551, 8209 },
+ { 0x5552, 7900 },
+ { 0x5553, 8344 },
+ { 0x5554, 8323 },
+ { 0x5555, 8566 },
+ { 0x5556, 8584 },
+ { 0x5557, 8263 },
+ { 0x5558, 7951 },
+ { 0x5559, 8146 },
+ { 0x555A, 8128 },
+ { 0x555B, 8455 },
+ { 0x555C, 8236 },
+ { 0x555D, 8536 },
+ { 0x555E, 8029 },
+ { 0x555F, 8098 },
+ { 0x5560, 7930 },
+ { 0x5561, 8365 },
+ { 0x5562, 8113 },
+ { 0x5563, 8434 },
+ { 0x5564, 8191 },
+ { 0x5565, 8509 },
+ { 0x5566, 7915 },
+ { 0x5567, 7999 },
+ { 0x5568, 8383 },
+ { 0x5569, 8176 },
+ { 0x556A, 8014 },
+ { 0x556B, 8314 },
+ { 0x556C, 8611 },
+ { 0x556D, 7966 },
+ { 0x556E, 8044 },
+ { 0x556F, 8059 },
+ { 0x5570, 8401 },
+ { 0x5571, 8080 },
+ { 0x5572, 8416 },
+ { 0x5573, 8302 },
+ { 0x5574, 8494 },
+ { 0x5575, 8656 },
+ { 0x5576, 8422 },
+ { 0x5577, 8530 },
+ { 0x5578, 8224 },
+ { 0x5579, 8581 },
+ { 0x557A, 8575 },
+ { 0x557B, 8674 },
+ { 0x557C, 8563 },
+ { 0x557D, 8260 },
+ { 0x557E, 8476 },
+ { 0x557F, 8470 },
+ { 0x5580, 8650 },
+ { 0x5581, 8551 },
+ { 0x5582, 8668 },
+ { 0x5583, 8341 },
+ { 0x5584, 8428 },
+ { 0x5585, 8251 },
+ { 0x5586, 8602 },
+ { 0x5587, 8449 },
+ { 0x5588, 8644 },
+ { 0x5589, 8524 },
+ { 0x558A, 8662 },
+ { 0x558B, 8230 },
+ { 0x558C, 8311 },
+ { 0x558D, 8632 },
+ { 0x558E, 8503 },
+ { 0x558F, 8320 },
+ { 0x5590, 8703 },
+ { 0x5591, 8284 },
+ { 0x5592, 8362 },
+ { 0x5593, 8398 },
+ { 0x5594, 8638 },
+ { 0x5595, 7894 },
+ { 0x5596, 8143 },
+ { 0x5597, 7993 },
+ { 0x5598, 8305 },
+ { 0x5599, 8173 },
+ { 0x559A, 8497 },
+ { 0x559B, 8095 },
+ { 0x559C, 8221 },
+ { 0x559D, 7912 },
+ { 0x559E, 8356 },
+ { 0x559F, 8335 },
+ { 0x55A0, 8596 },
+ { 0x55A1, 8275 },
+ { 0x55A2, 7963 },
+ { 0x55A3, 8158 },
+ { 0x55A4, 8140 },
+ { 0x55A5, 8467 },
+ { 0x55A6, 8248 },
+ { 0x55A7, 8548 },
+ { 0x55A8, 8041 },
+ { 0x55A9, 8110 },
+ { 0x55AA, 7942 },
+ { 0x55AB, 8377 },
+ { 0x55AC, 8125 },
+ { 0x55AD, 8446 },
+ { 0x55AE, 8203 },
+ { 0x55AF, 8521 },
+ { 0x55B0, 7927 },
+ { 0x55B1, 8011 },
+ { 0x55B2, 8395 },
+ { 0x55B3, 8188 },
+ { 0x55B4, 8026 },
+ { 0x55B5, 8623 },
+ { 0x55B6, 7978 },
+ { 0x55B7, 8056 },
+ { 0x55B8, 8074 },
+ { 0x55B9, 8413 },
+ { 0x55BA, 7891 },
+ { 0x55BB, 8077 },
+ { 0x55BC, 8626 },
+ { 0x55BD, 7990 },
+ { 0x55BE, 8299 },
+ { 0x55BF, 8170 },
+ { 0x55C0, 8491 },
+ { 0x55C1, 8092 },
+ { 0x55C2, 8218 },
+ { 0x55C3, 7909 },
+ { 0x55C4, 8353 },
+ { 0x55C5, 8332 },
+ { 0x55C6, 8593 },
+ { 0x55C7, 8272 },
+ { 0x55C8, 8560 },
+ { 0x55C9, 7960 },
+ { 0x55CA, 8155 },
+ { 0x55CB, 8137 },
+ { 0x55CC, 8464 },
+ { 0x55CD, 8245 },
+ { 0x55CE, 8545 },
+ { 0x55CF, 8038 },
+ { 0x55D0, 8107 },
+ { 0x55D1, 7939 },
+ { 0x55D2, 8374 },
+ { 0x55D3, 8122 },
+ { 0x55D4, 8443 },
+ { 0x55D5, 8200 },
+ { 0x55D6, 8518 },
+ { 0x55D7, 7924 },
+ { 0x55D8, 8008 },
+ { 0x55D9, 8392 },
+ { 0x55DA, 8185 },
+ { 0x55DB, 8023 },
+ { 0x55DC, 8620 },
+ { 0x55DD, 7975 },
+ { 0x55DE, 8053 },
+ { 0x55DF, 8071 },
+ { 0x55E0, 8410 },
+ { 0x55E1, 7885 },
+ { 0x55E2, 7948 },
+ { 0x55E3, 8608 },
+ { 0x55E4, 7984 },
+ { 0x55E5, 8293 },
+ { 0x55E6, 8164 },
+ { 0x55E7, 8485 },
+ { 0x55E8, 8086 },
+ { 0x55E9, 8212 },
+ { 0x55EA, 7903 },
+ { 0x55EB, 8347 },
+ { 0x55EC, 8326 },
+ { 0x55ED, 8572 },
+ { 0x55EE, 8587 },
+ { 0x55EF, 8266 },
+ { 0x55F0, 8557 },
+ { 0x55F1, 7954 },
+ { 0x55F2, 8149 },
+ { 0x55F3, 8131 },
+ { 0x55F4, 8458 },
+ { 0x55F5, 8239 },
+ { 0x55F6, 8539 },
+ { 0x55F7, 8032 },
+ { 0x55F8, 8101 },
+ { 0x55F9, 7933 },
+ { 0x55FA, 8368 },
+ { 0x55FB, 8116 },
+ { 0x55FC, 8437 },
+ { 0x55FD, 8194 },
+ { 0x55FE, 8512 },
+ { 0x55FF, 7918 },
+ { 0x5600, 8002 },
+ { 0x5601, 8386 },
+ { 0x5602, 8179 },
+ { 0x5603, 8017 },
+ { 0x5604, 8614 },
+ { 0x5605, 8700 },
+ { 0x5606, 7969 },
+ { 0x5607, 8281 },
+ { 0x5608, 8047 },
+ { 0x5609, 8062 },
+ { 0x560A, 8404 },
+ { 0x560B, 8065 },
+ { 0x560C, 8706 },
+ { 0x560D, 7808 },
+ { 0x560E, 7805 },
+ { 0x560F, 7879 },
+ { 0x5610, 8681 },
+ { 0x5611, 8685 },
+ { 0x5612, 8693 },
+ { 0x5613, 7873 },
+ { 0x5614, 7876 },
+ { 0x5615, 7864 },
+ { 0x5616, 7843 },
+ { 0x5617, 7849 },
+ { 0x5618, 7840 },
+ { 0x5619, 7846 },
+ { 0x561A, 7852 },
+ { 0x561B, 7870 },
+ { 0x561C, 7861 },
+ { 0x561D, 7867 },
+ { 0x561E, 7855 },
+ { 0x561F, 7858 },
+ { 0x5620, 7828 },
+ { 0x5621, 7810 },
+ { 0x5622, 7816 },
+ { 0x5623, 7837 },
+ { 0x5624, 7822 },
+ { 0x5625, 7819 },
+ { 0x5626, 7813 },
+ { 0x5627, 7834 },
+ { 0x5628, 7831 },
+ { 0x5629, 7825 },
+ { 0x562A, 8689 },
+ { 0x562B, 8677 },
+ { 0x5640, 50137 },
+ { 0x5641, 49239 },
+ { 0x5642, 50054 },
+ { 0x5643, 49156 },
+ { 0x5644, 50212 },
+ { 0x5645, 49318 },
+ { 0x5646, 49931 },
+ { 0x5647, 49033 },
+ { 0x5648, 50050 },
+ { 0x5649, 49152 },
+ { 0x564A, 50266 },
+ { 0x564B, 49372 },
+ { 0x564C, 50045 },
+ { 0x564D, 49147 },
+ { 0x564E, 50163 },
+ { 0x564F, 49265 },
+ { 0x5650, 50023 },
+ { 0x5651, 49125 },
+ { 0x5652, 50184 },
+ { 0x5653, 49286 },
+ { 0x5654, 50202 },
+ { 0x5655, 49308 },
+ { 0x5656, 50168 },
+ { 0x5657, 49270 },
+ { 0x5658, 50120 },
+ { 0x5659, 49222 },
+ { 0x565A, 50146 },
+ { 0x565B, 49248 },
+ { 0x565C, 50189 },
+ { 0x565D, 49291 },
+ { 0x565E, 49727 },
+ { 0x565F, 48829 },
+ { 0x5662, 49983 },
+ { 0x5663, 49085 },
+ { 0x5664, 49988 },
+ { 0x5665, 49090 },
+ { 0x5666, 49993 },
+ { 0x5667, 49095 },
+ { 0x5668, 50261 },
+ { 0x5669, 49367 },
+ { 0x566A, 50256 },
+ { 0x566B, 49362 },
+ { 0x566C, 50126 },
+ { 0x566D, 49228 },
+ { 0x566E, 49417 },
+ { 0x566F, 58020 },
+ { 0x5670, 58004 },
+ { 0x5671, 58160 },
+ { 0x5672, 58180 },
+ { 0x5673, 55523 },
+ { 0x567C, 58023 },
+ { 0x567D, 58170 },
+ { 0x567E, 49407 },
+ { 0x567F, 50301 },
+ { 0x5680, 49783 },
+ { 0x5681, 48885 },
+ { 0x5682, 49914 },
+ { 0x5683, 49016 },
+ { 0x5684, 50036 },
+ { 0x5685, 49138 },
+ { 0x5686, 49906 },
+ { 0x5687, 49008 },
+ { 0x5688, 49918 },
+ { 0x5689, 49020 },
+ { 0x568A, 49694 },
+ { 0x568B, 48796 },
+ { 0x568C, 49872 },
+ { 0x568D, 48974 },
+ { 0x568E, 50015 },
+ { 0x568F, 49117 },
+ { 0x5690, 50011 },
+ { 0x5691, 49113 },
+ { 0x5692, 50003 },
+ { 0x5693, 49105 },
+ { 0x5694, 49832 },
+ { 0x5695, 48934 },
+ { 0x5696, 49979 },
+ { 0x5697, 49081 },
+ { 0x5700, 54739 },
+ { 0x5701, 54763 },
+ { 0x5702, 54745 },
+ { 0x5703, 54769 },
+ { 0x5704, 54727 },
+ { 0x5705, 54751 },
+ { 0x5706, 54733 },
+ { 0x5707, 54757 },
+ { 0x5708, 54839 },
+ { 0x5709, 54039 },
+ { 0x570A, 53996 },
+ { 0x570B, 53952 },
+ { 0x570C, 54808 },
+ { 0x570D, 54845 },
+ { 0x570E, 54045 },
+ { 0x570F, 54002 },
+ { 0x5710, 53958 },
+ { 0x5711, 54814 },
+ { 0x5712, 54852 },
+ { 0x5713, 54052 },
+ { 0x5714, 54009 },
+ { 0x5715, 53980 },
+ { 0x5716, 54821 },
+ { 0x5717, 53884 },
+ { 0x5718, 53880 },
+ { 0x5719, 53889 },
+ { 0x571A, 54106 },
+ { 0x571B, 54571 },
+ { 0x571C, 54576 },
+ { 0x571D, 54591 },
+ { 0x571E, 54585 },
+ { 0x571F, 53969 },
+ { 0x5720, 54606 },
+ { 0x5721, 54600 },
+ { 0x5722, 20769 },
+ { 0x5723, 17878 },
+ { 0x5724, 20764 },
+ { 0x5725, 17873 },
+ { 0x5726, 20552 },
+ { 0x5727, 17317 },
+ { 0x5728, 20503 },
+ { 0x5729, 17173 },
+ { 0x572A, 20735 },
+ { 0x572B, 17844 },
+ { 0x572C, 20739 },
+ { 0x572D, 17848 },
+ { 0x572E, 20743 },
+ { 0x572F, 17852 },
+ { 0x5730, 17974 },
+ { 0x5731, 18048 },
+ { 0x5732, 20422 },
+ { 0x5733, 17038 },
+ { 0x5734, 20442 },
+ { 0x5735, 17058 },
+ { 0x5736, 20446 },
+ { 0x5737, 17062 },
+ { 0x5738, 20450 },
+ { 0x5739, 17066 },
+ { 0x573A, 20454 },
+ { 0x573B, 17070 },
+ { 0x573C, 20461 },
+ { 0x573D, 17077 },
+ { 0x573E, 20719 },
+ { 0x573F, 17758 },
+ { 0x5740, 19120 },
+ { 0x5741, 15472 },
+ { 0x5742, 19141 },
+ { 0x5743, 15500 },
+ { 0x5744, 19126 },
+ { 0x5745, 15478 },
+ { 0x5746, 20644 },
+ { 0x5747, 17505 },
+ { 0x5748, 19180 },
+ { 0x5749, 15551 },
+ { 0x574A, 19451 },
+ { 0x574B, 15876 },
+ { 0x574C, 19459 },
+ { 0x574D, 15884 },
+ { 0x574E, 20495 },
+ { 0x574F, 17142 },
+ { 0x5750, 19688 },
+ { 0x5751, 16113 },
+ { 0x5752, 19696 },
+ { 0x5753, 16128 },
+ { 0x5754, 19702 },
+ { 0x5755, 16134 },
+ { 0x5756, 19713 },
+ { 0x5757, 16158 },
+ { 0x5758, 19721 },
+ { 0x5759, 16166 },
+ { 0x575A, 19806 },
+ { 0x575B, 16287 },
+ { 0x575C, 20542 },
+ { 0x575D, 17287 },
+ { 0x575E, 20210 },
+ { 0x575F, 16771 },
+ { 0x5760, 20507 },
+ { 0x5761, 17185 },
+ { 0x5762, 20749 },
+ { 0x5763, 17858 },
+ { 0x5764, 20630 },
+ { 0x5765, 17480 },
+ { 0x5766, 20636 },
+ { 0x5767, 17486 },
+ { 0x5768, 20585 },
+ { 0x5769, 17421 },
+ { 0x576A, 20475 },
+ { 0x576B, 17108 },
+ { 0x576C, 20479 },
+ { 0x576D, 17116 },
+ { 0x576E, 20511 },
+ { 0x576F, 17189 },
+ { 0x5770, 53877 },
+ { 0x5771, 17193 },
+ { 0x5772, 17267 },
+ { 0x5773, 17271 },
+ { 0x5774, 17275 },
+ { 0x5775, 17283 },
+ { 0x5776, 18108 },
+ { 0x5777, 17298 },
+ { 0x5778, 17181 },
+ { 0x5779, 20685 },
+ { 0x577A, 17713 },
+ { 0x577B, 20690 },
+ { 0x577C, 17718 },
+ { 0x577D, 20695 },
+ { 0x577E, 20669 },
+ { 0x577F, 17676 },
+ { 0x5780, 20654 },
+ { 0x5781, 17585 },
+ { 0x5782, 20700 },
+ { 0x5783, 17728 },
+ { 0x5784, 20705 },
+ { 0x5785, 17733 },
+ { 0x5786, 20710 },
+ { 0x5787, 17738 },
+ { 0x5788, 53986 },
+ { 0x5789, 54095 },
+ { 0x578A, 54131 },
+ { 0x578B, 20731 },
+ { 0x578C, 17800 },
+ { 0x57FB, 20847 },
+ { 0x57FC, 20852 },
+ { 0x57FD, 20842 },
+ { 0x57FE, 20832 },
+ { 0x57FF, 20837 },
+ { 0x5800, 36572 },
+ { 0x5801, 36580 },
+ { 0x5802, 36543 },
+ { 0x5803, 36588 },
+ { 0x5804, 36576 },
+ { 0x5805, 36584 },
+ { 0x5806, 36535 },
+ { 0x5807, 36616 },
+ { 0x5808, 36672 },
+ { 0x5809, 36604 },
+ { 0x580A, 36664 },
+ { 0x580B, 36539 },
+ { 0x580C, 36596 },
+ { 0x580D, 36652 },
+ { 0x580E, 36612 },
+ { 0x580F, 36668 },
+ { 0x5810, 36688 },
+ { 0x5811, 36696 },
+ { 0x5812, 36656 },
+ { 0x5813, 36692 },
+ { 0x5814, 36644 },
+ { 0x5815, 36684 },
+ { 0x5816, 36600 },
+ { 0x5817, 36660 },
+ { 0x5818, 36628 },
+ { 0x5819, 36632 },
+ { 0x581A, 36676 },
+ { 0x581B, 36592 },
+ { 0x581C, 36648 },
+ { 0x581D, 36624 },
+ { 0x581E, 36636 },
+ { 0x581F, 36620 },
+ { 0x5820, 36680 },
+ { 0x5821, 36640 },
+ { 0x5822, 36608 },
+ { 0x5823, 36547 },
+ { 0x5824, 36557 },
+ { 0x5825, 36562 },
+ { 0x5826, 36552 },
+ { 0x5827, 36567 },
+ { 0x5828, 36700 },
+ { 0x5829, 36704 },
+ { 0x582A, 36708 },
+ { 0x582B, 36712 },
+ { 0x5840, 55006 },
+ { 0x5841, 55057 },
+ { 0x5842, 54997 },
+ { 0x5843, 55060 },
+ { 0x5844, 54985 },
+ { 0x5845, 55045 },
+ { 0x5846, 55003 },
+ { 0x5847, 55066 },
+ { 0x5848, 55030 },
+ { 0x5849, 55075 },
+ { 0x584A, 54988 },
+ { 0x584B, 55015 },
+ { 0x584C, 55018 },
+ { 0x584D, 55069 },
+ { 0x584E, 54982 },
+ { 0x584F, 55012 },
+ { 0x5850, 55078 },
+ { 0x5851, 55087 },
+ { 0x5852, 55051 },
+ { 0x5853, 55033 },
+ { 0x5854, 55084 },
+ { 0x5855, 55042 },
+ { 0x5856, 55093 },
+ { 0x5857, 55039 },
+ { 0x5858, 55024 },
+ { 0x5859, 55009 },
+ { 0x585A, 55072 },
+ { 0x585B, 55027 },
+ { 0x585C, 55000 },
+ { 0x585D, 54967 },
+ { 0x585E, 54973 },
+ { 0x585F, 54979 },
+ { 0x5860, 54970 },
+ { 0x5861, 54976 },
+ { 0x5862, 55021 },
+ { 0x5863, 55036 },
+ { 0x5864, 54994 },
+ { 0x5865, 55054 },
+ { 0x5866, 54991 },
+ { 0x5867, 55124 },
+ { 0x5868, 55128 },
+ { 0x5869, 55081 },
+ { 0x586A, 55090 },
+ { 0x586B, 55048 },
+ { 0x586C, 55063 },
+ { 0x586D, 55101 },
+ { 0x586E, 55109 },
+ { 0x586F, 55097 },
+ { 0x5870, 55105 },
+ { 0x5871, 55120 },
+ { 0x5872, 55132 },
+ { 0x5873, 55113 },
+ { 0x5874, 55116 },
+ { 0x5875, 54963 },
+ { 0x5876, 54956 },
+ { 0x5877, 54959 },
+ { 0x5880, 68329 },
+ { 0x5881, 68326 },
+ { 0x5882, 68431 },
+ { 0x5883, 68446 },
+ { 0x5884, 68437 },
+ { 0x5885, 68473 },
+ { 0x5886, 68443 },
+ { 0x5887, 68506 },
+ { 0x5888, 68573 },
+ { 0x5889, 68581 },
+ { 0x588A, 68569 },
+ { 0x588B, 68577 },
+ { 0x588C, 68434 },
+ { 0x588D, 68464 },
+ { 0x588E, 68449 },
+ { 0x588F, 68440 },
+ { 0x5890, 68491 },
+ { 0x5891, 68452 },
+ { 0x5892, 68479 },
+ { 0x5893, 68533 },
+ { 0x5894, 68467 },
+ { 0x5895, 68527 },
+ { 0x5896, 68539 },
+ { 0x5897, 68458 },
+ { 0x5898, 68518 },
+ { 0x5899, 68476 },
+ { 0x589A, 68530 },
+ { 0x589B, 68545 },
+ { 0x589C, 68560 },
+ { 0x589D, 68566 },
+ { 0x589E, 68521 },
+ { 0x589F, 68563 },
+ { 0x58A0, 68542 },
+ { 0x58A1, 68503 },
+ { 0x58A2, 68557 },
+ { 0x58A3, 68461 },
+ { 0x58A4, 68524 },
+ { 0x58A5, 68488 },
+ { 0x58A6, 68494 },
+ { 0x58A7, 68548 },
+ { 0x58A8, 68455 },
+ { 0x58A9, 68515 },
+ { 0x58AA, 68485 },
+ { 0x58AB, 68512 },
+ { 0x58AC, 68497 },
+ { 0x58AD, 68482 },
+ { 0x58AE, 68509 },
+ { 0x58AF, 68551 },
+ { 0x58B0, 68554 },
+ { 0x58B1, 68500 },
+ { 0x58B2, 68470 },
+ { 0x58B3, 68536 },
+ { 0x58B4, 68585 },
+ { 0x58B5, 68380 },
+ { 0x58B6, 68368 },
+ { 0x58B7, 68396 },
+ { 0x58B8, 68376 },
+ { 0x58B9, 68404 },
+ { 0x58BA, 68413 },
+ { 0x58BB, 68423 },
+ { 0x58BC, 68408 },
+ { 0x58BD, 68418 },
+ { 0x58BE, 68364 },
+ { 0x58BF, 68392 },
+ { 0x58C0, 68384 },
+ { 0x58C1, 68372 },
+ { 0x58C2, 68400 },
+ { 0x58C3, 68388 },
+ { 0x58C4, 68323 },
+ { 0x58CE, 68332 },
+ { 0x58CF, 68428 },
+ { 0x58D0, 68352 },
+ { 0x58D1, 68334 },
+ { 0x58D2, 68340 },
+ { 0x58D3, 68361 },
+ { 0x58D4, 68346 },
+ { 0x58D5, 68343 },
+ { 0x58D6, 68337 },
+ { 0x58D7, 68358 },
+ { 0x58D8, 68355 },
+ { 0x58D9, 68349 },
+ { 0x5900, 13773 },
+ { 0x5901, 13749 },
+ { 0x5902, 13757 },
+ { 0x5903, 13785 },
+ { 0x5904, 13765 },
+ { 0x5905, 13761 },
+ { 0x5906, 13753 },
+ { 0x5907, 13781 },
+ { 0x5908, 13777 },
+ { 0x5909, 13769 },
+ { 0x590A, 13837 },
+ { 0x590B, 13897 },
+ { 0x590C, 13829 },
+ { 0x590D, 13901 },
+ { 0x590E, 13869 },
+ { 0x590F, 13913 },
+ { 0x5910, 13889 },
+ { 0x5911, 13905 },
+ { 0x5912, 13873 },
+ { 0x5913, 13893 },
+ { 0x5914, 13849 },
+ { 0x5915, 13861 },
+ { 0x5916, 13909 },
+ { 0x5917, 13845 },
+ { 0x5918, 13825 },
+ { 0x5919, 13817 },
+ { 0x591A, 13865 },
+ { 0x591B, 13885 },
+ { 0x591C, 13841 },
+ { 0x591D, 13881 },
+ { 0x591E, 13917 },
+ { 0x591F, 13833 },
+ { 0x5920, 13877 },
+ { 0x5921, 13821 },
+ { 0x5922, 13809 },
+ { 0x5923, 13853 },
+ { 0x5924, 13813 },
+ { 0x5925, 13857 },
+ { 0x5926, 13805 },
+ { 0x5927, 13789 },
+ { 0x5928, 13797 },
+ { 0x5929, 13801 },
+ { 0x592A, 13793 },
+ { 0x592B, 13745 },
+ { 0x592C, 13736 },
+ { 0x592D, 13740 },
+ { 0x592E, 13728 },
+ { 0x592F, 13732 },
+ { 0x5930, 35728 },
+ { 0x5931, 35719 },
+ { 0x5932, 35764 },
+ { 0x5933, 35749 },
+ { 0x5934, 35716 },
+ { 0x5935, 35737 },
+ { 0x5936, 35740 },
+ { 0x5937, 35710 },
+ { 0x5938, 35734 },
+ { 0x5939, 35713 },
+ { 0x593A, 35725 },
+ { 0x593B, 35767 },
+ { 0x593C, 35746 },
+ { 0x593D, 35743 },
+ { 0x593E, 35731 },
+ { 0x593F, 35755 },
+ { 0x5940, 35752 },
+ { 0x5941, 35722 },
+ { 0x5942, 35758 },
+ { 0x5943, 35770 },
+ { 0x5944, 35761 },
+ { 0x5945, 35773 },
+ { 0x5946, 35707 },
+ { 0x5947, 35679 },
+ { 0x5948, 35687 },
+ { 0x5949, 35675 },
+ { 0x594A, 35691 },
+ { 0x594B, 35683 },
+ { 0x594C, 35695 },
+ { 0x594D, 35703 },
+ { 0x594E, 35699 },
+ { 0x594F, 35793 },
+ { 0x5950, 35785 },
+ { 0x5951, 35789 },
+ { 0x5952, 35781 },
+ { 0x5953, 35776 },
+ { 0x595F, 35778 },
+ { 0x5A00, 8801 },
+ { 0x5A01, 8807 },
+ { 0x5A02, 8813 },
+ { 0x5A03, 8804 },
+ { 0x5A04, 8816 },
+ { 0x5A05, 8810 },
+ { 0x5A06, 8834 },
+ { 0x5A07, 8885 },
+ { 0x5A08, 8825 },
+ { 0x5A09, 8879 },
+ { 0x5A0A, 8915 },
+ { 0x5A0B, 8891 },
+ { 0x5A0C, 8870 },
+ { 0x5A0D, 8912 },
+ { 0x5A0E, 8831 },
+ { 0x5A0F, 8882 },
+ { 0x5A10, 8921 },
+ { 0x5A11, 8894 },
+ { 0x5A12, 8918 },
+ { 0x5A13, 8855 },
+ { 0x5A14, 8909 },
+ { 0x5A15, 8822 },
+ { 0x5A16, 8876 },
+ { 0x5A17, 8897 },
+ { 0x5A18, 8843 },
+ { 0x5A19, 8873 },
+ { 0x5A1A, 8846 },
+ { 0x5A1B, 8903 },
+ { 0x5A1C, 8900 },
+ { 0x5A1D, 8819 },
+ { 0x5A1E, 8867 },
+ { 0x5A1F, 8888 },
+ { 0x5A20, 8840 },
+ { 0x5A21, 8864 },
+ { 0x5A22, 8861 },
+ { 0x5A23, 8849 },
+ { 0x5A24, 8837 },
+ { 0x5A25, 8858 },
+ { 0x5A26, 8906 },
+ { 0x5A27, 8852 },
+ { 0x5A28, 8828 },
+ { 0x5A29, 8773 },
+ { 0x5A2A, 8761 },
+ { 0x5A2B, 8789 },
+ { 0x5A2C, 8785 },
+ { 0x5A2D, 8769 },
+ { 0x5A2E, 8793 },
+ { 0x5A2F, 8765 },
+ { 0x5A30, 8777 },
+ { 0x5A31, 8781 },
+ { 0x5A32, 8797 },
+ { 0x5A33, 8980 },
+ { 0x5A34, 8972 },
+ { 0x5A35, 8968 },
+ { 0x5A36, 8976 },
+ { 0x5A40, 8928 },
+ { 0x5A41, 8924 },
+ { 0x5A42, 8960 },
+ { 0x5A43, 8994 },
+ { 0x5A44, 8956 },
+ { 0x5A45, 8948 },
+ { 0x5A46, 8936 },
+ { 0x5A47, 8940 },
+ { 0x5A48, 8952 },
+ { 0x5A49, 8944 },
+ { 0x5A4A, 8932 },
+ { 0x5A4B, 8964 },
+ { 0x5A4C, 8989 },
+ { 0x5A4D, 8984 },
+ { 0x5A50, 8749 },
+ { 0x5A51, 8731 },
+ { 0x5A52, 8737 },
+ { 0x5A53, 8758 },
+ { 0x5A54, 8743 },
+ { 0x5A55, 8740 },
+ { 0x5A56, 8734 },
+ { 0x5A57, 8755 },
+ { 0x5A58, 8752 },
+ { 0x5A59, 8746 },
+ { 0x5A5C, 9006 },
+ { 0x5A5D, 8999 },
+ { 0x5A5E, 9002 },
+ { 0x5A5F, 9009 },
+ { 0x6B00, 17897 },
+ { 0x6B01, 17901 },
+ { 0x6B02, 17905 },
+ { 0x6B03, 17921 },
+ { 0x6B04, 17925 },
+ { 0x6B05, 17929 },
+ { 0x6B06, 17917 },
+ { 0x6B13, 44892 },
+ { 0x6B14, 44882 },
+ { 0x6B15, 44887 },
+ { 0x6B16, 44902 },
+ { 0x6B17, 44897 },
+ { 0x6B1D, 33182 },
+ { 0x6B1E, 32972 },
+ { 0x6B1F, 33388 },
+ { 0x6B20, 33370 },
+ { 0x6B21, 33269 },
+ { 0x6B22, 33277 },
+ { 0x6B23, 33257 },
+ { 0x6B24, 33261 },
+ { 0x6B25, 33286 },
+ { 0x6B26, 33281 },
+ { 0x6B27, 33273 },
+ { 0x6B28, 33265 },
+ { 0x6B29, 33374 },
+ { 0x6B2A, 33230 },
+ { 0x6B2B, 33224 },
+ { 0x6B2C, 33249 },
+ { 0x6B2D, 33241 },
+ { 0x6B2E, 33200 },
+ { 0x6B2F, 33205 },
+ { 0x6B30, 33195 },
+ { 0x6B31, 33105 },
+ { 0x6B32, 33333 },
+ { 0x6B33, 33293 },
+ { 0x6B34, 33079 },
+ { 0x6B35, 33174 },
+ { 0x6B36, 33357 },
+ { 0x6B38, 33161 },
+ { 0x6B39, 33187 },
+ { 0x6B3A, 33312 },
+ { 0x6B3B, 33121 },
+ { 0x6B3C, 33341 },
+ { 0x6B3E, 33129 },
+ { 0x6B40, 33137 },
+ { 0x6B41, 33365 },
+ { 0x6B43, 33302 },
+ { 0x6B44, 33092 },
+ { 0x6B46, 33349 },
+ { 0x6B47, 33145 },
+ { 0x6B48, 33216 },
+ { 0x6B49, 33236 },
+ { 0x6B4A, 33153 },
+ { 0x6B4B, 33169 },
+ { 0x6B4C, 33100 },
+ { 0x6B4D, 33116 },
+ { 0x6B4E, 33087 },
+ { 0x6B4F, 33379 },
+ { 0x6B50, 25426 },
+ { 0x6B51, 25420 },
+ { 0x6B52, 25471 },
+ { 0x6B53, 25456 },
+ { 0x6B54, 25466 },
+ { 0x6B55, 25461 },
+ { 0x6B56, 24792 },
+ { 0x6B57, 24777 },
+ { 0x6B58, 24787 },
+ { 0x6B59, 24782 },
+ { 0x6B5A, 25928 },
+ { 0x6B5B, 25913 },
+ { 0x6B5C, 25923 },
+ { 0x6B5D, 25918 },
+ { 0x6B5E, 26308 },
+ { 0x6B5F, 26293 },
+ { 0x6B60, 26303 },
+ { 0x6B61, 26298 },
+ { 0x6B62, 26272 },
+ { 0x6B63, 26257 },
+ { 0x6B64, 26267 },
+ { 0x6B65, 26262 },
+ { 0x6B66, 25892 },
+ { 0x6B67, 25877 },
+ { 0x6B68, 25887 },
+ { 0x6B69, 25882 },
+ { 0x6B6A, 25071 },
+ { 0x6B6B, 25056 },
+ { 0x6B6C, 25066 },
+ { 0x6B6D, 25061 },
+ { 0x6B6E, 26164 },
+ { 0x6B6F, 26149 },
+ { 0x6B70, 26159 },
+ { 0x6B71, 26154 },
+ { 0x6B72, 25507 },
+ { 0x6B73, 25492 },
+ { 0x6B74, 25502 },
+ { 0x6B75, 25497 },
+ { 0x6B76, 25729 },
+ { 0x6B77, 25714 },
+ { 0x6B78, 25724 },
+ { 0x6B79, 25719 },
+ { 0x6B7A, 26249 },
+ { 0x6B7B, 26234 },
+ { 0x6B7C, 26244 },
+ { 0x6B7D, 26239 },
+ { 0x6B7E, 26393 },
+ { 0x6B7F, 26378 },
+ { 0x6B80, 26388 },
+ { 0x6B81, 26383 },
+ { 0x6B82, 26285 },
+ { 0x6B83, 26280 },
+ { 0x6B84, 25941 },
+ { 0x6B85, 25936 },
+ { 0x6B86, 24341 },
+ { 0x6B87, 24336 },
+ { 0x6B88, 25484 },
+ { 0x6B89, 25479 },
+ { 0x6B8A, 24667 },
+ { 0x6B8B, 24662 },
+ { 0x6B8C, 25742 },
+ { 0x6B8D, 25737 },
+ { 0x6B8E, 26118 },
+ { 0x6B8F, 26103 },
+ { 0x6B90, 26113 },
+ { 0x6B91, 26108 },
+ { 0x6B92, 24442 },
+ { 0x6B93, 24427 },
+ { 0x6B94, 24437 },
+ { 0x6B95, 24432 },
+ { 0x6B96, 25530 },
+ { 0x6B97, 25515 },
+ { 0x6B98, 25525 },
+ { 0x6B99, 25520 },
+ { 0x6B9A, 26141 },
+ { 0x6B9B, 26126 },
+ { 0x6B9C, 26136 },
+ { 0x6B9D, 26131 },
+ { 0x6B9E, 25690 },
+ { 0x6B9F, 25684 },
+ { 0x6BA0, 26187 },
+ { 0x6BA1, 26172 },
+ { 0x6BA2, 26182 },
+ { 0x6BA3, 26177 },
+ { 0x6BA4, 24597 },
+ { 0x6BA5, 24589 },
+ { 0x6BA6, 24577 },
+ { 0x6BA7, 24559 },
+ { 0x6BA8, 24571 },
+ { 0x6BA9, 24565 },
+ { 0x6BAA, 24653 },
+ { 0x6BAB, 24635 },
+ { 0x6BAC, 24647 },
+ { 0x6BAD, 24641 },
+ { 0x6BAE, 25266 },
+ { 0x6BAF, 25260 },
+ { 0x6BB0, 25231 },
+ { 0x6BB1, 25222 },
+ { 0x6BD3, 24046 },
+ { 0x6BD4, 24031 },
+ { 0x6BD5, 24041 },
+ { 0x6BD6, 24036 },
+ { 0x6BD7, 24020 },
+ { 0x6BD8, 24015 },
+ { 0x6BD9, 24059 },
+ { 0x6BDA, 24054 },
+ { 0x6BDB, 24085 },
+ { 0x6BDC, 24080 },
+ { 0x6BDD, 24007 },
+ { 0x6BDE, 24072 },
+ { 0x6BDF, 24067 },
+ { 0x6BE0, 26353 },
+ { 0x6BE1, 26347 },
+ { 0x6BE2, 26369 },
+ { 0x6BE3, 26363 },
+ { 0x6BE4, 23993 },
+ { 0x6BE5, 23978 },
+ { 0x6BE6, 23988 },
+ { 0x6BE7, 23983 },
+ { 0x6BE8, 26322 },
+ { 0x6BE9, 26313 },
+ { 0x6BEA, 28622 },
+ { 0x6BEB, 28590 },
+ { 0x6BEC, 28450 },
+ { 0x6BED, 28440 },
+ { 0x6BEE, 28560 },
+ { 0x6BEF, 28550 },
+ { 0x6BF0, 28430 },
+ { 0x6BF1, 28420 },
+ { 0x6BF2, 28470 },
+ { 0x6BF3, 28460 },
+ { 0x6BF4, 28490 },
+ { 0x6BF5, 28480 },
+ { 0x6BF6, 28410 },
+ { 0x6BF7, 28390 },
+ { 0x6BF8, 28400 },
+ { 0x6BF9, 30178 },
+ { 0x6BFA, 30152 },
+ { 0x6BFB, 30165 },
+ { 0x6BFC, 26021 },
+ { 0x6BFD, 26003 },
+ { 0x6BFE, 26015 },
+ { 0x6BFF, 26009 },
+ { 0x6C00, 28642 },
+ { 0x6C01, 28510 },
+ { 0x6C02, 28692 },
+ { 0x6C03, 28611 },
+ { 0x6C04, 28580 },
+ { 0x6C05, 26665 },
+ { 0x6C06, 26600 },
+ { 0x6C07, 26688 },
+ { 0x6C08, 26716 },
+ { 0x6C09, 26650 },
+ { 0x6C0A, 26635 },
+ { 0x6C0B, 28073 },
+ { 0x6C0C, 27980 },
+ { 0x6C0D, 28115 },
+ { 0x6C0E, 28189 },
+ { 0x6C0F, 28030 },
+ { 0x6C10, 28015 },
+ { 0x6C11, 29671 },
+ { 0x6C12, 29699 },
+ { 0x6C13, 29663 },
+ { 0x6C14, 29648 },
+ { 0x6C15, 28801 },
+ { 0x6C16, 28882 },
+ { 0x6C17, 27033 },
+ { 0x6C18, 27066 },
+ { 0x6C19, 28933 },
+ { 0x6C1A, 28889 },
+ { 0x6C1B, 28947 },
+ { 0x6C1C, 29506 },
+ { 0x6C1D, 29408 },
+ { 0x6C1E, 29546 },
+ { 0x6C1F, 29612 },
+ { 0x6C20, 27755 },
+ { 0x6C21, 27838 },
+ { 0x6C22, 26821 },
+ { 0x6C23, 26763 },
+ { 0x6C24, 26853 },
+ { 0x6C25, 26867 },
+ { 0x6C26, 27852 },
+ { 0x6C27, 27939 },
+ { 0x6C28, 28736 },
+ { 0x6C29, 26526 },
+ { 0x6C2A, 26577 },
+ { 0x6C2B, 29767 },
+ { 0x6C2C, 29809 },
+ { 0x6C2D, 26925 },
+ { 0x6C2E, 26881 },
+ { 0x6C2F, 26957 },
+ { 0x6C30, 26980 },
+ { 0x6C31, 26910 },
+ { 0x6C32, 26895 },
+ { 0x6C33, 27626 },
+ { 0x6C34, 27706 },
+ { 0x6C35, 27655 },
+ { 0x6C36, 27640 },
+ { 0x6C37, 27221 },
+ { 0x6C38, 27235 },
+ { 0x6C39, 27149 },
+ { 0x6C3A, 27249 },
+ { 0x6C3B, 27177 },
+ { 0x6C3C, 27304 },
+ { 0x6C3D, 27213 },
+ { 0x6C3E, 27191 },
+ { 0x6C3F, 27525 },
+ { 0x6C40, 27355 },
+ { 0x6C41, 27557 },
+ { 0x6C42, 27612 },
+ { 0x6C43, 27458 },
+ { 0x6C44, 27376 },
+ { 0x6C45, 29060 },
+ { 0x6C46, 28988 },
+ { 0x6C47, 29101 },
+ { 0x6C48, 29131 },
+ { 0x6C49, 29009 },
+ { 0x6C4A, 28995 },
+ { 0x6C4B, 29293 },
+ { 0x6C4C, 29173 },
+ { 0x6C4D, 29307 },
+ { 0x6C4E, 29354 },
+ { 0x6C4F, 29223 },
+ { 0x6C50, 29208 },
+ { 0x6C51, 27095 },
+ { 0x6C52, 27127 },
+ { 0x6C53, 27080 },
+ { 0x6C54, 27073 },
+ { 0x6C55, 28300 },
+ { 0x6C56, 28226 },
+ { 0x6C57, 28314 },
+ { 0x6C58, 28369 },
+ { 0x6C59, 28276 },
+ { 0x6C5A, 28261 },
+ { 0x6C5B, 29619 },
+ { 0x6C5C, 27713 },
+ { 0x6C5D, 28766 },
+ { 0x6C5E, 30130 },
+ { 0x6C5F, 30137 },
+ { 0x6C60, 30109 },
+ { 0x6C61, 30095 },
+ { 0x6C62, 30123 },
+ { 0x6C63, 30144 },
+ { 0x6C64, 28540 },
+ { 0x6C65, 28712 },
+ { 0x6C66, 28662 },
+ { 0x6C67, 28702 },
+ { 0x6C68, 28600 },
+ { 0x6C69, 28570 },
+ { 0x6C6A, 26621 },
+ { 0x6C6B, 26730 },
+ { 0x6C6C, 26695 },
+ { 0x6C6D, 26723 },
+ { 0x6C6E, 26642 },
+ { 0x6C6F, 26628 },
+ { 0x6C70, 28001 },
+ { 0x6C71, 28203 },
+ { 0x6C72, 28168 },
+ { 0x6C73, 28196 },
+ { 0x6C74, 28022 },
+ { 0x6C75, 28008 },
+ { 0x6C76, 29634 },
+ { 0x6C77, 29713 },
+ { 0x6C78, 29678 },
+ { 0x6C79, 29706 },
+ { 0x6C7A, 29655 },
+ { 0x6C7B, 29641 },
+ { 0x6C7C, 26902 },
+ { 0x6C7D, 26888 },
+ { 0x6C7E, 27647 },
+ { 0x6C7F, 27633 },
+ { 0x6C80, 27198 },
+ { 0x6C81, 27156 },
+ { 0x6C82, 27283 },
+ { 0x6C83, 27205 },
+ { 0x6C84, 27184 },
+ { 0x6C85, 27591 },
+ { 0x6C86, 27450 },
+ { 0x6C87, 27369 },
+ { 0x6C88, 29002 },
+ { 0x6C89, 29117 },
+ { 0x6C8A, 29194 },
+ { 0x6C8B, 29368 },
+ { 0x6C8C, 29333 },
+ { 0x6C8D, 29361 },
+ { 0x6C8E, 29215 },
+ { 0x6C8F, 29201 },
+ { 0x6C90, 28757 },
+ { 0x6C91, 28247 },
+ { 0x6C92, 28383 },
+ { 0x6C93, 28348 },
+ { 0x6C94, 28376 },
+ { 0x6C95, 28268 },
+ { 0x6C96, 28254 },
+ { 0x6C97, 28632 },
+ { 0x6C98, 28500 },
+ { 0x6C99, 28652 },
+ { 0x6C9A, 28682 },
+ { 0x6C9B, 28530 },
+ { 0x6C9C, 26658 },
+ { 0x6C9D, 26593 },
+ { 0x6C9E, 26681 },
+ { 0x6C9F, 26709 },
+ { 0x6CA0, 26614 },
+ { 0x6CA1, 28066 },
+ { 0x6CA2, 27973 },
+ { 0x6CA3, 28108 },
+ { 0x6CA4, 28182 },
+ { 0x6CA5, 27994 },
+ { 0x6CA6, 29692 },
+ { 0x6CA7, 28794 },
+ { 0x6CA8, 28875 },
+ { 0x6CA9, 27026 },
+ { 0x6CAA, 27059 },
+ { 0x6CAB, 28926 },
+ { 0x6CAC, 28940 },
+ { 0x6CAD, 29499 },
+ { 0x6CAE, 29401 },
+ { 0x6CAF, 29539 },
+ { 0x6CB0, 29605 },
+ { 0x6CB1, 27748 },
+ { 0x6CB2, 27806 },
+ { 0x6CB3, 27831 },
+ { 0x6CB4, 26814 },
+ { 0x6CB5, 26756 },
+ { 0x6CB6, 26846 },
+ { 0x6CB7, 26860 },
+ { 0x6CB8, 27845 },
+ { 0x6CB9, 28729 },
+ { 0x6CBA, 26519 },
+ { 0x6CBB, 26570 },
+ { 0x6CBC, 29760 },
+ { 0x6CBD, 29802 },
+ { 0x6CBE, 26918 },
+ { 0x6CBF, 26874 },
+ { 0x6CC0, 26950 },
+ { 0x6CC1, 26973 },
+ { 0x6CC2, 27619 },
+ { 0x6CC3, 27699 },
+ { 0x6CC4, 27228 },
+ { 0x6CC5, 27142 },
+ { 0x6CC6, 27242 },
+ { 0x6CC7, 27170 },
+ { 0x6CC8, 27297 },
+ { 0x6CC9, 27518 },
+ { 0x6CCA, 27348 },
+ { 0x6CCB, 27550 },
+ { 0x6CCC, 27605 },
+ { 0x6CCD, 27362 },
+ { 0x6CCE, 29053 },
+ { 0x6CCF, 28981 },
+ { 0x6CD0, 29094 },
+ { 0x6CD1, 29124 },
+ { 0x6CD2, 29286 },
+ { 0x6CD3, 29166 },
+ { 0x6CD4, 29300 },
+ { 0x6CD5, 29347 },
+ { 0x6CD6, 29187 },
+ { 0x6CD7, 27088 },
+ { 0x6CD8, 27120 },
+ { 0x6CD9, 27134 },
+ { 0x6CDA, 28293 },
+ { 0x6CDB, 28219 },
+ { 0x6CDC, 28307 },
+ { 0x6CDD, 28362 },
+ { 0x6CDE, 28240 },
+ { 0x6CDF, 28672 },
+ { 0x6CE0, 28520 },
+ { 0x6CE1, 26702 },
+ { 0x6CE2, 26607 },
+ { 0x6CE3, 28175 },
+ { 0x6CE4, 27987 },
+ { 0x6CE5, 29685 },
+ { 0x6CE6, 29627 },
+ { 0x6CE7, 29598 },
+ { 0x6CE8, 29415 },
+ { 0x6CE9, 30057 },
+ { 0x6CEA, 29891 },
+ { 0x6CEB, 27163 },
+ { 0x6CEC, 27290 },
+ { 0x6CED, 27598 },
+ { 0x6CEE, 29340 },
+ { 0x6CEF, 29180 },
+ { 0x6CF0, 28355 },
+ { 0x6CF1, 28233 },
+ { 0x6CF2, 30102 },
+ { 0x6CF3, 30088 },
+ { 0x6CF4, 30116 },
+ { 0x6CF5, 27881 },
+ { 0x6CF6, 27866 },
+ { 0x6CF7, 26493 },
+ { 0x6CF8, 26478 },
+ { 0x6CF9, 29752 },
+ { 0x6CFA, 29737 },
+ { 0x6CFB, 29465 },
+ { 0x6CFC, 29450 },
+ { 0x6CFD, 29941 },
+ { 0x6CFE, 29926 },
+ { 0x6CFF, 27009 },
+ { 0x6D00, 26994 },
+ { 0x6D01, 28830 },
+ { 0x6D02, 28815 },
+ { 0x6D03, 28918 },
+ { 0x6D04, 28903 },
+ { 0x6D05, 27798 },
+ { 0x6D06, 27783 },
+ { 0x6D07, 26806 },
+ { 0x6D08, 26791 },
+ { 0x6D09, 29979 },
+ { 0x6D0A, 29884 },
+ { 0x6D0B, 30007 },
+ { 0x6D0C, 30071 },
+ { 0x6D0D, 29912 },
+ { 0x6D0E, 29436 },
+ { 0x6D0F, 27769 },
+ { 0x6D10, 26777 },
+ { 0x6D11, 27873 },
+ { 0x6D12, 27859 },
+ { 0x6D13, 26485 },
+ { 0x6D14, 26471 },
+ { 0x6D15, 29744 },
+ { 0x6D16, 29730 },
+ { 0x6D17, 29457 },
+ { 0x6D18, 29443 },
+ { 0x6D19, 29933 },
+ { 0x6D1A, 29919 },
+ { 0x6D1B, 27001 },
+ { 0x6D1C, 26987 },
+ { 0x6D1D, 28822 },
+ { 0x6D1E, 28808 },
+ { 0x6D1F, 28910 },
+ { 0x6D20, 28896 },
+ { 0x6D21, 27790 },
+ { 0x6D22, 27776 },
+ { 0x6D23, 26798 },
+ { 0x6D24, 26784 },
+ { 0x6D25, 29958 },
+ { 0x6D26, 29863 },
+ { 0x6D27, 29986 },
+ { 0x6D28, 30050 },
+ { 0x6D29, 29905 },
+ { 0x6D2A, 29429 },
+ { 0x6D2B, 27762 },
+ { 0x6D2C, 26770 },
+ { 0x6D2D, 29972 },
+ { 0x6D2E, 29877 },
+ { 0x6D2F, 30000 },
+ { 0x6D30, 30064 },
+ { 0x6D31, 29422 },
+ { 0x6D32, 29898 },
+ { 0x6D33, 27932 },
+ { 0x6D34, 29492 },
+ { 0x6D35, 29394 },
+ { 0x6D36, 29532 },
+ { 0x6D37, 29965 },
+ { 0x6D38, 29870 },
+ { 0x6D39, 29993 },
+ { 0x6D3A, 27925 },
+ { 0x6D3B, 28722 },
+ { 0x6D3C, 28743 },
+ { 0x6D3D, 28750 },
+ { 0x6D3E, 35643 },
+ { 0x6D3F, 35646 },
+ { 0x6D50, 28057 },
+ { 0x6D51, 27946 },
+ { 0x6D52, 27955 },
+ { 0x6D53, 27964 },
+ { 0x6D54, 28099 },
+ { 0x6D55, 28150 },
+ { 0x6D56, 28122 },
+ { 0x6D57, 28159 },
+ { 0x6D58, 28838 },
+ { 0x6D59, 28847 },
+ { 0x6D5A, 27040 },
+ { 0x6D5B, 27049 },
+ { 0x6D5C, 29385 },
+ { 0x6D5D, 29473 },
+ { 0x6D5E, 29482 },
+ { 0x6D5F, 29553 },
+ { 0x6D60, 29562 },
+ { 0x6D61, 29571 },
+ { 0x6D62, 29580 },
+ { 0x6D63, 29589 },
+ { 0x6D64, 27721 },
+ { 0x6D65, 27730 },
+ { 0x6D66, 27813 },
+ { 0x6D67, 29845 },
+ { 0x6D68, 29854 },
+ { 0x6D69, 29949 },
+ { 0x6D6A, 30014 },
+ { 0x6D6B, 30023 },
+ { 0x6D6C, 30032 },
+ { 0x6D6D, 30041 },
+ { 0x6D6E, 26746 },
+ { 0x6D6F, 26828 },
+ { 0x6D70, 26837 },
+ { 0x6D71, 27889 },
+ { 0x6D72, 27898 },
+ { 0x6D73, 27916 },
+ { 0x6D74, 27907 },
+ { 0x6D75, 26501 },
+ { 0x6D76, 26552 },
+ { 0x6D77, 26561 },
+ { 0x6D78, 26542 },
+ { 0x6D79, 29793 },
+ { 0x6D7A, 29774 },
+ { 0x6D7B, 29783 },
+ { 0x6D7C, 26932 },
+ { 0x6D7D, 26941 },
+ { 0x6D7E, 27663 },
+ { 0x6D7F, 27690 },
+ { 0x6D80, 27330 },
+ { 0x6D81, 27311 },
+ { 0x6D82, 27320 },
+ { 0x6D83, 27491 },
+ { 0x6D84, 27482 },
+ { 0x6D85, 27532 },
+ { 0x6D86, 27541 },
+ { 0x6D87, 27564 },
+ { 0x6D88, 27573 },
+ { 0x6D89, 28963 },
+ { 0x6D8A, 28972 },
+ { 0x6D8B, 28954 },
+ { 0x6D8C, 29017 },
+ { 0x6D8D, 29044 },
+ { 0x6D8E, 29076 },
+ { 0x6D8F, 29085 },
+ { 0x6D92, 29035 },
+ { 0x6D93, 27102 },
+ { 0x6D94, 27111 },
+ { 0x6D95, 29157 },
+ { 0x6D96, 29147 },
+ { 0x6D97, 29268 },
+ { 0x6D98, 29277 },
+ { 0x6D99, 29258 },
+ { 0x6D9A, 29314 },
+ { 0x6D9B, 29323 },
+ { 0x6D9C, 28330 },
+ { 0x6D9D, 28339 },
+ { 0x6D9E, 26672 },
+ { 0x6D9F, 28038 },
+ { 0x6DA0, 28047 },
+ { 0x6DA1, 28080 },
+ { 0x6DA2, 28089 },
+ { 0x6DA3, 28131 },
+ { 0x6DA4, 28140 },
+ { 0x6DA5, 28856 },
+ { 0x6DA6, 28784 },
+ { 0x6DA7, 28865 },
+ { 0x6DA8, 29522 },
+ { 0x6DA9, 27739 },
+ { 0x6DAA, 29836 },
+ { 0x6DAB, 26737 },
+ { 0x6DAC, 27473 },
+ { 0x6DAD, 27582 },
+ { 0x6DAE, 28210 },
+ { 0x6DAF, 28284 },
+ { 0x6DB0, 28321 },
+ { 0x6DB1, 29108 },
+ { 0x6DB2, 27681 },
+ { 0x6DB3, 29138 },
+ { 0x6DB4, 27672 },
+ { 0x6DB5, 27339 },
+ { 0x6DB6, 26533 },
+ { 0x6DB7, 27256 },
+ { 0x6DB8, 29240 },
+ { 0x6DB9, 29067 },
+ { 0x6DBA, 27509 },
+ { 0x6DBB, 27265 },
+ { 0x6DBC, 27500 },
+ { 0x6DBD, 29231 },
+ { 0x6DBE, 28775 },
+ { 0x6DBF, 27017 },
+ { 0x6DC0, 29026 },
+ { 0x6DC1, 26964 },
+ { 0x6DC2, 26584 },
+ { 0x6DC3, 27274 },
+ { 0x6DC4, 26510 },
+ { 0x6DC5, 27822 },
+ { 0x6DC6, 29513 },
+ { 0x6DC7, 29249 },
+ { 0x6DF0, 29821 },
+ { 0x6DF1, 29375 },
+ { 0x6DF2, 29725 },
+ { 0x6DF3, 29720 },
+ { 0x6DF4, 30191 },
+ { 0x6DF5, 29816 },
+ { 0x6DF6, 30083 },
+ { 0x6DF7, 30078 },
+ { 0x6DF8, 30196 },
+ { 0x6DF9, 29831 },
+ { 0x6DFA, 30206 },
+ { 0x6DFB, 30211 },
+ { 0x6DFC, 9693 },
+ { 0x6DFD, 30201 },
+ { 0x6E00, 66314 },
+ { 0x6E01, 66316 },
+ { 0x6E02, 66318 },
+ { 0x6E03, 66320 },
+ { 0x6E04, 66322 },
+ { 0x6E05, 66324 },
+ { 0x6E06, 66326 },
+ { 0x6E07, 66328 },
+ { 0x6E08, 66330 },
+ { 0x6E09, 66332 },
+ { 0x6E0A, 66334 },
+ { 0x6E0B, 66336 },
+ { 0x6E0C, 66338 },
+ { 0x6E0D, 66340 },
+ { 0x6E0E, 66342 },
+ { 0x6E0F, 66344 },
+ { 0x6E10, 74355 },
+ { 0x6E11, 74464 },
+ { 0x6E12, 74457 },
+ { 0x6E13, 74350 },
+ { 0x6E14, 74440 },
+ { 0x6E15, 74451 },
+ { 0x6E16, 74434 },
+ { 0x6E17, 74299 },
+ { 0x6E18, 74390 },
+ { 0x6E19, 74445 },
+ { 0x6E20, 58207 },
+ { 0x6E21, 58211 },
+ { 0x6E22, 57894 },
+ { 0x6E23, 57899 },
+ { 0x6E24, 57948 },
+ { 0x6E25, 57955 },
+ { 0x6E26, 58290 },
+ { 0x6E30, 74262 },
+ { 0x6E31, 74244 },
+ { 0x6E32, 74250 },
+ { 0x6E33, 74256 },
+ { 0x6E34, 74343 },
+ { 0x6E35, 74337 },
+ { 0x6E36, 74428 },
+ { 0x6E37, 74284 },
+ { 0x6E38, 74375 },
+ { 0x6E39, 74329 },
+ { 0x6E3A, 74420 },
+ { 0x6E3B, 74276 },
+ { 0x6E3C, 74367 },
+ { 0x6E3D, 74314 },
+ { 0x6E3E, 74405 },
+ { 0x6E3F, 74269 },
+ { 0x6E40, 74360 },
+ { 0x6E41, 74307 },
+ { 0x6E42, 74398 },
+ { 0x6E43, 74291 },
+ { 0x6E44, 74382 },
+ { 0x6E45, 35852 },
+ { 0x6E46, 23293 },
+ { 0x6E47, 74322 },
+ { 0x6E48, 74413 },
+ { 0x6E49, 31173 },
+ { 0x6E4A, 66833 },
+ { 0x6E4B, 10082 },
+ { 0x6E4C, 31561 },
+ { 0x6E4D, 31170 },
+ { 0x6E4E, 66830 },
+ { 0x6E4F, 10075 },
+ { 0x6E50, 22507 },
+ { 0x6E51, 22660 },
+ { 0x6E52, 22487 },
+ { 0x6E54, 22652 },
+ { 0x6E55, 22505 },
+ { 0x6E56, 22644 },
+ { 0x6E57, 22657 },
+ { 0x6E58, 22480 },
+ { 0x6E59, 22499 },
+ { 0x6E5A, 22518 },
+ { 0x6E5B, 22490 },
+ { 0x6E5C, 22509 },
+ { 0x6E5D, 22494 },
+ { 0x6E5E, 22513 },
+ { 0x6E5F, 22596 },
+ { 0x6E60, 22647 },
+ { 0x6E61, 22624 },
+ { 0x6E62, 22502 },
+ { 0x6E63, 22666 },
+ { 0x6E64, 22649 },
+ { 0x6E65, 22663 },
+ { 0x6E66, 22593 },
+ { 0x6E68, 22621 },
+ { 0x6E69, 22590 },
+ { 0x6E6A, 22618 },
+ { 0x6E6B, 22654 },
+ { 0x6E70, 26455 },
+ { 0x6E71, 26442 },
+ { 0x6E72, 26449 },
+ { 0x6E73, 23761 },
+ { 0x6E74, 26467 },
+ { 0x6E76, 23797 },
+ { 0x6E77, 23793 },
+ { 0x6E78, 23772 },
+ { 0x6E79, 23768 },
+ { 0x6E7A, 23813 },
+ { 0x6E7B, 23809 },
+ { 0x6E7C, 26418 },
+ { 0x6E7D, 26414 },
+ { 0x6E7E, 23953 },
+ { 0x6E7F, 23949 },
+ { 0x6E80, 26059 },
+ { 0x6E81, 25385 },
+ { 0x6E82, 25377 },
+ { 0x6E83, 25341 },
+ { 0x6E84, 25333 },
+ { 0x6E85, 25111 },
+ { 0x6E86, 25103 },
+ { 0x6E87, 25363 },
+ { 0x6E88, 25355 },
+ { 0x6E89, 25185 },
+ { 0x6E8A, 25161 },
+ { 0x6E8B, 25177 },
+ { 0x6E8C, 25169 },
+ { 0x6E8D, 25448 },
+ { 0x6E8E, 25411 },
+ { 0x6E8F, 24226 },
+ { 0x6E90, 24211 },
+ { 0x6E91, 24221 },
+ { 0x6E92, 24216 },
+ { 0x6E93, 25042 },
+ { 0x6E94, 25036 },
+ { 0x6E95, 25048 },
+ { 0x6E96, 25012 },
+ { 0x6E97, 25022 },
+ { 0x6E98, 25017 },
+ { 0x6E99, 25869 },
+ { 0x6E9A, 25854 },
+ { 0x6E9B, 25864 },
+ { 0x6E9C, 25859 },
+ { 0x6E9D, 25572 },
+ { 0x6E9E, 25557 },
+ { 0x6E9F, 25567 },
+ { 0x6EA0, 25562 },
+ { 0x6EA1, 24540 },
+ { 0x6EA2, 24525 },
+ { 0x6EA3, 24535 },
+ { 0x6EA4, 24530 },
+ { 0x6EA5, 25595 },
+ { 0x6EA6, 25580 },
+ { 0x6EA7, 25590 },
+ { 0x6EA8, 25585 },
+ { 0x6EA9, 24328 },
+ { 0x6EAA, 24323 },
+ { 0x6EAB, 25846 },
+ { 0x6EAC, 25841 },
+ { 0x6EAD, 24924 },
+ { 0x6EAE, 24919 },
+ { 0x6EAF, 25905 },
+ { 0x6EB0, 25900 },
+ { 0x6EB1, 25833 },
+ { 0x6EB2, 25818 },
+ { 0x6EB3, 25828 },
+ { 0x6EB4, 25823 },
+ { 0x6EB5, 26216 },
+ { 0x6EB6, 26201 },
+ { 0x6EB7, 26211 },
+ { 0x6EB8, 26206 },
+ { 0x6EB9, 24961 },
+ { 0x6EBA, 24946 },
+ { 0x6EBB, 24956 },
+ { 0x6EBC, 24951 },
+ { 0x6EBD, 24255 },
+ { 0x6EBE, 24240 },
+ { 0x6EBF, 24250 },
+ { 0x6EC0, 24245 },
+ { 0x6EC1, 24991 },
+ { 0x6EC2, 24976 },
+ { 0x6EC3, 24986 },
+ { 0x6EC4, 24981 },
+ { 0x6EC5, 25305 },
+ { 0x6EC6, 25290 },
+ { 0x6EC7, 25300 },
+ { 0x6EC8, 25295 },
+ { 0x6EC9, 24139 },
+ { 0x6ECA, 24124 },
+ { 0x6ECB, 24134 },
+ { 0x6ECC, 24129 },
+ { 0x6ECD, 26051 },
+ { 0x6ECE, 26036 },
+ { 0x6ECF, 26046 },
+ { 0x6ED0, 26041 },
+ { 0x6ED1, 24400 },
+ { 0x6ED2, 24385 },
+ { 0x6ED3, 24395 },
+ { 0x6ED4, 24390 },
+ { 0x6ED5, 24828 },
+ { 0x6ED6, 24813 },
+ { 0x6ED7, 24823 },
+ { 0x6ED8, 24818 },
+ { 0x6ED9, 24715 },
+ { 0x6EDA, 24700 },
+ { 0x6EDB, 24710 },
+ { 0x6EDC, 24705 },
+ { 0x6EDD, 24769 },
+ { 0x6EDE, 24754 },
+ { 0x6EDF, 24764 },
+ { 0x6EE0, 24759 },
+ { 0x6EE1, 25630 },
+ { 0x6EE2, 25615 },
+ { 0x6EE3, 25625 },
+ { 0x6EE4, 25620 },
+ { 0x6EE5, 25706 },
+ { 0x6EE6, 25675 },
+ { 0x6EE7, 25701 },
+ { 0x6EE8, 25696 },
+ { 0x6EE9, 24626 },
+ { 0x6EEA, 24611 },
+ { 0x6EEB, 24621 },
+ { 0x6EEC, 24616 },
+ { 0x6EED, 25142 },
+ { 0x6EEE, 25137 },
+ { 0x6EEF, 25442 },
+ { 0x6EF0, 25436 },
+ { 0x6EF1, 25282 },
+ { 0x6EF2, 25206 },
+ { 0x6EF3, 25277 },
+ { 0x6EF4, 25272 },
+ { 0x6EF5, 27433 },
+ { 0x6EF6, 27423 },
+ { 0x6EF7, 27393 },
+ { 0x6EF8, 27383 },
+ { 0x6EF9, 27413 },
+ { 0x6EFA, 27403 },
+ { 0x6EFB, 27466 },
+ { 0x6EFC, 27443 },
+ { 0x6EFF, 10095 },
+ { 0x6F01, 63786 },
+ { 0x6F02, 63773 },
+ { 0x6F03, 63749 },
+ { 0x6F04, 63741 },
+ { 0x6F05, 63752 },
+ { 0x6F06, 63768 },
+ { 0x6F07, 63778 },
+ { 0x6F08, 63415 },
+ { 0x6F09, 63733 },
+ { 0x6F0A, 63760 },
+ { 0x6F0B, 63418 },
+ { 0x6F0C, 63423 },
+ { 0x6F0D, 63792 },
+ { 0x6F0E, 63400 },
+ { 0x6F0F, 63758 },
+ { 0x6F10, 63443 },
+ { 0x6F11, 63425 },
+ { 0x6F12, 63431 },
+ { 0x6F13, 63452 },
+ { 0x6F14, 63437 },
+ { 0x6F15, 63434 },
+ { 0x6F16, 63428 },
+ { 0x6F17, 63449 },
+ { 0x6F18, 63446 },
+ { 0x6F19, 63440 },
+ { 0x6F1A, 63421 },
+ { 0x6F1B, 63776 },
+ { 0x6F1C, 63770 },
+ { 0x6F1D, 63744 },
+ { 0x6F1E, 63789 },
+ { 0x6F1F, 63762 },
+ { 0x6F20, 63783 },
+ { 0x6F21, 63588 },
+ { 0x6F22, 63593 },
+ { 0x6F23, 63598 },
+ { 0x6F24, 63603 },
+ { 0x6F25, 63608 },
+ { 0x6F26, 63613 },
+ { 0x6F27, 63618 },
+ { 0x6F28, 63623 },
+ { 0x6F29, 63628 },
+ { 0x6F2A, 63633 },
+ { 0x6F2B, 63638 },
+ { 0x6F2C, 63643 },
+ { 0x6F2D, 63648 },
+ { 0x6F2E, 63653 },
+ { 0x6F2F, 63658 },
+ { 0x6F30, 63663 },
+ { 0x6F31, 63668 },
+ { 0x6F32, 63673 },
+ { 0x6F33, 63678 },
+ { 0x6F34, 63683 },
+ { 0x6F35, 63688 },
+ { 0x6F36, 63693 },
+ { 0x6F37, 63698 },
+ { 0x6F38, 63703 },
+ { 0x6F39, 63708 },
+ { 0x6F3A, 63713 },
+ { 0x6F3B, 63411 },
+ { 0x6F3C, 63755 },
+ { 0x6F3D, 63729 },
+ { 0x6F3E, 63780 },
+ { 0x6F3F, 63385 },
+ { 0x6F40, 63455 },
+ { 0x6F41, 63458 },
+ { 0x6F42, 63463 },
+ { 0x6F43, 63468 },
+ { 0x6F44, 63473 },
+ { 0x6F45, 63478 },
+ { 0x6F46, 63483 },
+ { 0x6F47, 63488 },
+ { 0x6F48, 63493 },
+ { 0x6F49, 63498 },
+ { 0x6F4A, 63503 },
+ { 0x6F4B, 63508 },
+ { 0x6F4C, 63513 },
+ { 0x6F4D, 63518 },
+ { 0x6F4E, 63523 },
+ { 0x6F4F, 63528 },
+ { 0x6F50, 63533 },
+ { 0x6F51, 63538 },
+ { 0x6F52, 63543 },
+ { 0x6F53, 63548 },
+ { 0x6F54, 63553 },
+ { 0x6F55, 63558 },
+ { 0x6F56, 63563 },
+ { 0x6F57, 63568 },
+ { 0x6F58, 63573 },
+ { 0x6F59, 63578 },
+ { 0x6F5A, 63583 },
+ { 0x6F5B, 63403 },
+ { 0x6F5C, 63765 },
+ { 0x6F5D, 63721 },
+ { 0x6F5E, 63736 },
+ { 0x6F5F, 63407 },
+ { 0x6F60, 63725 },
+ { 0x6F61, 64276 },
+ { 0x6F62, 63796 },
+ { 0x6F63, 63807 },
+ { 0x6F64, 64280 },
+ { 0x6F65, 64253 },
+ { 0x6F66, 64192 },
+ { 0x6F67, 64208 },
+ { 0x6F68, 64218 },
+ { 0x6F69, 64228 },
+ { 0x6F6A, 64213 },
+ { 0x6F6B, 64223 },
+ { 0x6F6C, 64238 },
+ { 0x6F6D, 64248 },
+ { 0x6F6E, 64243 },
+ { 0x6F6F, 64233 },
+ { 0x6F70, 64283 },
+ { 0x6F71, 64024 },
+ { 0x6F72, 64032 },
+ { 0x6F73, 64044 },
+ { 0x6F74, 64028 },
+ { 0x6F75, 64040 },
+ { 0x6F76, 64068 },
+ { 0x6F77, 64076 },
+ { 0x6F78, 64084 },
+ { 0x6F79, 64072 },
+ { 0x6F7A, 64080 },
+ { 0x6F7B, 64148 },
+ { 0x6F7C, 64156 },
+ { 0x6F7D, 64164 },
+ { 0x6F7E, 64152 },
+ { 0x6F7F, 64160 },
+ { 0x6F80, 64168 },
+ { 0x6F81, 64176 },
+ { 0x6F82, 64184 },
+ { 0x6F83, 64172 },
+ { 0x6F84, 64180 },
+ { 0x6F85, 64108 },
+ { 0x6F86, 64116 },
+ { 0x6F87, 64124 },
+ { 0x6F88, 64112 },
+ { 0x6F89, 64120 },
+ { 0x6F8A, 64048 },
+ { 0x6F8B, 64056 },
+ { 0x6F8C, 64064 },
+ { 0x6F8D, 64052 },
+ { 0x6F8E, 64060 },
+ { 0x6F8F, 64088 },
+ { 0x6F90, 64096 },
+ { 0x6F91, 64104 },
+ { 0x6F92, 64092 },
+ { 0x6F93, 64100 },
+ { 0x6F94, 64196 },
+ { 0x6F95, 64204 },
+ { 0x6F96, 64200 },
+ { 0x6F97, 64128 },
+ { 0x6F98, 64136 },
+ { 0x6F99, 64144 },
+ { 0x6F9A, 64132 },
+ { 0x6F9B, 64140 },
+ { 0x6F9C, 64188 },
+ { 0x6F9D, 64036 },
+ { 0x6F9E, 64257 },
+ { 0x6F9F, 64262 },
+ { 0x6FA0, 63814 },
+ { 0x6FA1, 63933 },
+ { 0x6FA2, 64001 },
+ { 0x6FA3, 63977 },
+ { 0x6FA4, 63921 },
+ { 0x6FA5, 63981 },
+ { 0x6FA6, 63985 },
+ { 0x6FA7, 63937 },
+ { 0x6FA8, 64005 },
+ { 0x6FA9, 63929 },
+ { 0x6FAA, 64009 },
+ { 0x6FAB, 63993 },
+ { 0x6FAC, 63997 },
+ { 0x6FAD, 63965 },
+ { 0x6FAE, 64017 },
+ { 0x6FAF, 64013 },
+ { 0x6FB0, 63989 },
+ { 0x6FB1, 63917 },
+ { 0x6FB2, 63925 },
+ { 0x6FB3, 63973 },
+ { 0x6FB4, 63961 },
+ { 0x6FB5, 63901 },
+ { 0x6FB6, 63957 },
+ { 0x6FB7, 63913 },
+ { 0x6FB8, 63905 },
+ { 0x6FB9, 63969 },
+ { 0x6FBA, 63941 },
+ { 0x6FBB, 63945 },
+ { 0x6FBC, 63953 },
+ { 0x6FBD, 63949 },
+ { 0x6FBE, 63909 },
+ { 0x6FC2, 63817 },
+ { 0x6FC3, 63837 },
+ { 0x6FC4, 63865 },
+ { 0x6FC5, 63893 },
+ { 0x6FC6, 63841 },
+ { 0x6FC7, 63821 },
+ { 0x6FCA, 63897 },
+ { 0x6FCB, 63869 },
+ { 0x6FCC, 63829 },
+ { 0x6FCD, 63853 },
+ { 0x6FCE, 63885 },
+ { 0x6FCF, 63849 },
+ { 0x6FD2, 63877 },
+ { 0x6FD3, 63833 },
+ { 0x6FD4, 63889 },
+ { 0x6FD5, 63857 },
+ { 0x6FD6, 63861 },
+ { 0x6FD7, 63881 },
+ { 0x6FDA, 63845 },
+ { 0x6FDB, 63873 },
+ { 0x6FDC, 63825 },
+ { 0x6FE0, 63397 },
+ { 0x6FE1, 63718 },
+ { 0x6FE2, 63388 },
+ { 0x6FE3, 63747 },
+ { 0x6FE4, 63738 },
+ { 0x6FE5, 63394 },
+ { 0x6FE6, 63391 },
+ { 0x6FE8, 63803 },
+ { 0x6FE9, 64270 },
+ { 0x6FEA, 64021 },
+ { 0x6FEB, 64273 },
+ { 0x6FEC, 64267 },
+ { 0x6FED, 63800 },
+ { 0x6FEE, 63811 },
+ { 0x6FF9, 69249 },
+ { 0x6FFA, 69252 },
+ { 0x6FFB, 69255 },
+ { 0x6FFC, 35637 },
+ { 0x6FFD, 69276 },
+ { 0x7000, 35010 },
+ { 0x7001, 35135 },
+ { 0x7002, 35095 },
+ { 0x7003, 35235 },
+ { 0x7004, 35020 },
+ { 0x7005, 34975 },
+ { 0x7006, 35170 },
+ { 0x7007, 35005 },
+ { 0x7008, 35040 },
+ { 0x7009, 35190 },
+ { 0x700A, 35215 },
+ { 0x700B, 35175 },
+ { 0x700D, 35125 },
+ { 0x700E, 35245 },
+ { 0x700F, 35305 },
+ { 0x7010, 35165 },
+ { 0x7011, 35255 },
+ { 0x7012, 35270 },
+ { 0x7013, 35320 },
+ { 0x7014, 35315 },
+ { 0x7015, 35035 },
+ { 0x7016, 35285 },
+ { 0x7017, 35045 },
+ { 0x7018, 35070 },
+ { 0x7019, 35000 },
+ { 0x701A, 35075 },
+ { 0x701B, 35105 },
+ { 0x701C, 35195 },
+ { 0x701D, 35210 },
+ { 0x701E, 34985 },
+ { 0x701F, 35280 },
+ { 0x7020, 35140 },
+ { 0x7021, 35025 },
+ { 0x7022, 35185 },
+ { 0x7023, 35050 },
+ { 0x7024, 35310 },
+ { 0x7025, 35065 },
+ { 0x7026, 35115 },
+ { 0x7028, 35230 },
+ { 0x7029, 35090 },
+ { 0x702A, 35200 },
+ { 0x702B, 34980 },
+ { 0x702C, 35085 },
+ { 0x702D, 35110 },
+ { 0x702E, 35015 },
+ { 0x702F, 35150 },
+ { 0x7030, 35030 },
+ { 0x7031, 35220 },
+ { 0x7032, 35225 },
+ { 0x7033, 34990 },
+ { 0x7034, 35130 },
+ { 0x7035, 34995 },
+ { 0x7036, 35265 },
+ { 0x7037, 35205 },
+ { 0x7038, 35295 },
+ { 0x7039, 35145 },
+ { 0x703A, 35155 },
+ { 0x703C, 35055 },
+ { 0x703D, 35290 },
+ { 0x703F, 35060 },
+ { 0x7040, 35080 },
+ { 0x7041, 35160 },
+ { 0x7042, 35325 },
+ { 0x7043, 35275 },
+ { 0x7044, 35335 },
+ { 0x7045, 35180 },
+ { 0x7046, 35100 },
+ { 0x7047, 35240 },
+ { 0x7048, 35300 },
+ { 0x7049, 35120 },
+ { 0x704A, 35260 },
+ { 0x704B, 35250 },
+ { 0x704C, 35330 },
+ { 0x704D, 35340 },
+ { 0x7050, 34349 },
+ { 0x7051, 34353 },
+ { 0x7052, 34357 },
+ { 0x7053, 34361 },
+ { 0x7054, 34365 },
+ { 0x7055, 34369 },
+ { 0x7056, 34373 },
+ { 0x7057, 34377 },
+ { 0x7058, 34381 },
+ { 0x7059, 34385 },
+ { 0x705A, 34389 },
+ { 0x705B, 34393 },
+ { 0x705C, 34397 },
+ { 0x705D, 34401 },
+ { 0x7080, 34405 },
+ { 0x7081, 34410 },
+ { 0x7082, 34415 },
+ { 0x7083, 34420 },
+ { 0x7084, 34750 },
+ { 0x7085, 34755 },
+ { 0x7086, 34760 },
+ { 0x7087, 34765 },
+ { 0x7088, 34770 },
+ { 0x7089, 34775 },
+ { 0x708A, 34780 },
+ { 0x708B, 34785 },
+ { 0x708C, 34790 },
+ { 0x708D, 34795 },
+ { 0x708E, 34425 },
+ { 0x708F, 34430 },
+ { 0x7090, 34435 },
+ { 0x7091, 34440 },
+ { 0x7092, 34445 },
+ { 0x7093, 34945 },
+ { 0x7094, 34950 },
+ { 0x7095, 34450 },
+ { 0x7096, 34455 },
+ { 0x7097, 34460 },
+ { 0x7098, 34955 },
+ { 0x7099, 34960 },
+ { 0x709A, 34464 },
+ { 0x709B, 34469 },
+ { 0x709C, 34474 },
+ { 0x709D, 34478 },
+ { 0x709E, 34483 },
+ { 0x709F, 34487 },
+ { 0x70A0, 34491 },
+ { 0x70A1, 34496 },
+ { 0x70A2, 34500 },
+ { 0x70A3, 34504 },
+ { 0x70A4, 34965 },
+ { 0x70A5, 34508 },
+ { 0x70A6, 34512 },
+ { 0x70A7, 34516 },
+ { 0x70A8, 34521 },
+ { 0x70A9, 34525 },
+ { 0x70AA, 34529 },
+ { 0x70AB, 34534 },
+ { 0x70AC, 34539 },
+ { 0x70AD, 34543 },
+ { 0x70AE, 34547 },
+ { 0x70AF, 34551 },
+ { 0x70B0, 34555 },
+ { 0x70B1, 34559 },
+ { 0x70B2, 34563 },
+ { 0x70B3, 34567 },
+ { 0x70B4, 34571 },
+ { 0x70B5, 34575 },
+ { 0x70B6, 34580 },
+ { 0x70B7, 34584 },
+ { 0x70B8, 34589 },
+ { 0x70B9, 34593 },
+ { 0x70BA, 34597 },
+ { 0x70BB, 34601 },
+ { 0x70BC, 34605 },
+ { 0x70BD, 34609 },
+ { 0x70BE, 34613 },
+ { 0x70BF, 34617 },
+ { 0x70C0, 34621 },
+ { 0x70C1, 34625 },
+ { 0x70C2, 34629 },
+ { 0x70C3, 34633 },
+ { 0x70C4, 34638 },
+ { 0x70C5, 34643 },
+ { 0x70C6, 34648 },
+ { 0x70C7, 34653 },
+ { 0x70C8, 34658 },
+ { 0x70C9, 34662 },
+ { 0x70CA, 34667 },
+ { 0x70CB, 34671 },
+ { 0x70CC, 34675 },
+ { 0x70CD, 34681 },
+ { 0x70CE, 34686 },
+ { 0x70CF, 34692 },
+ { 0x70D0, 34697 },
+ { 0x70D1, 34701 },
+ { 0x70D2, 34970 },
+ { 0x70D3, 34705 },
+ { 0x70D4, 34709 },
+ { 0x70D5, 34713 },
+ { 0x70D6, 34717 },
+ { 0x70D7, 34721 },
+ { 0x70D8, 34725 },
+ { 0x70D9, 34730 },
+ { 0x70DA, 34734 },
+ { 0x70DB, 34738 },
+ { 0x70DC, 34742 },
+ { 0x70DD, 34746 },
+ { 0x70DE, 34800 },
+ { 0x70DF, 34805 },
+ { 0x70E0, 34810 },
+ { 0x70E1, 34815 },
+ { 0x70E2, 34820 },
+ { 0x70E3, 34825 },
+ { 0x70E4, 34830 },
+ { 0x70E5, 34835 },
+ { 0x70E6, 34840 },
+ { 0x70E7, 34845 },
+ { 0x70E8, 34850 },
+ { 0x70E9, 34855 },
+ { 0x70EA, 34860 },
+ { 0x70EB, 34865 },
+ { 0x70EC, 34870 },
+ { 0x70ED, 34875 },
+ { 0x70EE, 34880 },
+ { 0x70EF, 34885 },
+ { 0x70F0, 34890 },
+ { 0x70F1, 34895 },
+ { 0x70F2, 34900 },
+ { 0x70F3, 34905 },
+ { 0x70F4, 34910 },
+ { 0x70F5, 34915 },
+ { 0x70F6, 34920 },
+ { 0x70F7, 34925 },
+ { 0x70F8, 34930 },
+ { 0x70F9, 34935 },
+ { 0x70FA, 34940 },
+ { 0x7100, 23485 },
+ { 0x7101, 23481 },
+ { 0x7102, 23489 },
+ { 0x7107, 23497 },
+ { 0x7108, 23526 },
+ { 0x7109, 23613 },
+ { 0x710A, 23548 },
+ { 0x710B, 23537 },
+ { 0x710C, 23508 },
+ { 0x710D, 23595 },
+ { 0x710E, 23570 },
+ { 0x710F, 23559 },
+ { 0x7110, 23519 },
+ { 0x7111, 23645 },
+ { 0x7112, 23638 },
+ { 0x7113, 23588 },
+ { 0x7114, 23581 },
+ { 0x7115, 23606 },
+ { 0x7116, 23652 },
+ { 0x7117, 23624 },
+ { 0x7118, 23631 },
+ { 0x7119, 23500 },
+ { 0x711A, 23529 },
+ { 0x711B, 23616 },
+ { 0x711C, 23551 },
+ { 0x711D, 23540 },
+ { 0x711E, 23511 },
+ { 0x711F, 23598 },
+ { 0x7120, 23573 },
+ { 0x7121, 23562 },
+ { 0x7122, 23504 },
+ { 0x7123, 23533 },
+ { 0x7124, 23620 },
+ { 0x7125, 23555 },
+ { 0x7126, 23544 },
+ { 0x7127, 23515 },
+ { 0x7128, 23602 },
+ { 0x7129, 23577 },
+ { 0x712A, 23566 },
+ { 0x712B, 23522 },
+ { 0x712C, 23648 },
+ { 0x712D, 23641 },
+ { 0x712E, 23591 },
+ { 0x712F, 23584 },
+ { 0x7130, 23609 },
+ { 0x7131, 23655 },
+ { 0x7132, 23627 },
+ { 0x7133, 23634 },
+ { 0x7137, 23659 },
+ { 0x7138, 23663 },
+ { 0x7139, 23675 },
+ { 0x713A, 23667 },
+ { 0x713B, 23671 },
+ { 0x713C, 23476 },
+ { 0x713D, 23492 },
+ { 0x713E, 23683 },
+ { 0x713F, 23679 },
+ { 0x7140, 13133 },
+ { 0x7141, 13111 },
+ { 0x7142, 13116 },
+ { 0x7143, 13171 },
+ { 0x7144, 13213 },
+ { 0x7145, 13175 },
+ { 0x7146, 13202 },
+ { 0x7147, 13227 },
+ { 0x7148, 13197 },
+ { 0x7149, 13160 },
+ { 0x714A, 13222 },
+ { 0x714B, 13127 },
+ { 0x714C, 13186 },
+ { 0x714D, 13144 },
+ { 0x714E, 13207 },
+ { 0x714F, 13192 },
+ { 0x7150, 13155 },
+ { 0x7151, 13217 },
+ { 0x7152, 13121 },
+ { 0x7153, 13180 },
+ { 0x7154, 13138 },
+ { 0x7155, 13165 },
+ { 0x7156, 13232 },
+ { 0x7157, 13150 },
+ { 0x7158, 13248 },
+ { 0x7159, 13263 },
+ { 0x715A, 13331 },
+ { 0x715B, 13317 },
+ { 0x715C, 13281 },
+ { 0x715D, 13253 },
+ { 0x715E, 13321 },
+ { 0x715F, 13353 },
+ { 0x7160, 13343 },
+ { 0x7161, 13347 },
+ { 0x7162, 13335 },
+ { 0x7163, 13313 },
+ { 0x7164, 13277 },
+ { 0x7165, 13304 },
+ { 0x7166, 13362 },
+ { 0x7167, 13366 },
+ { 0x7168, 13339 },
+ { 0x7169, 13295 },
+ { 0x716A, 13267 },
+ { 0x716B, 13299 },
+ { 0x716C, 13326 },
+ { 0x716D, 13357 },
+ { 0x716E, 13285 },
+ { 0x716F, 13308 },
+ { 0x7170, 13238 },
+ { 0x7171, 13272 },
+ { 0x7172, 13290 },
+ { 0x7173, 13243 },
+ { 0x7174, 13258 },
+ { 0x7175, 10649 },
+ { 0x7176, 10653 },
+ { 0x7177, 10674 },
+ { 0x7178, 11894 },
+ { 0x7179, 10694 },
+ { 0x717A, 12082 },
+ { 0x717B, 13022 },
+ { 0x717C, 10689 },
+ { 0x717D, 10670 },
+ { 0x717E, 11890 },
+ { 0x717F, 10685 },
+ { 0x7180, 10681 },
+ { 0x7181, 13056 },
+ { 0x7182, 13027 },
+ { 0x7183, 10717 },
+ { 0x7184, 12079 },
+ { 0x7185, 12085 },
+ { 0x7186, 12021 },
+ { 0x7187, 12018 },
+ { 0x7188, 12024 },
+ { 0x7189, 13067 },
+ { 0x718A, 10697 },
+ { 0x7190, 22109 },
+ { 0x7191, 22013 },
+ { 0x7192, 22121 },
+ { 0x7193, 22112 },
+ { 0x7194, 22016 },
+ { 0x7195, 22115 },
+ { 0x7196, 22118 },
+ { 0x7197, 22130 },
+ { 0x7198, 22133 },
+ { 0x7199, 22127 },
+ { 0x719A, 22010 },
+ { 0x719B, 22124 },
+ { 0x71D0, 55326 },
+ { 0x71D1, 55265 },
+ { 0x71D2, 55306 },
+ { 0x71D3, 55278 },
+ { 0x71D4, 55211 },
+ { 0x71D5, 55245 },
+ { 0x71D6, 55261 },
+ { 0x71D7, 55294 },
+ { 0x71D8, 55237 },
+ { 0x71D9, 55202 },
+ { 0x71DA, 55145 },
+ { 0x71DB, 55270 },
+ { 0x71DC, 55165 },
+ { 0x71DD, 55298 },
+ { 0x71DE, 55282 },
+ { 0x71DF, 55161 },
+ { 0x71E0, 55153 },
+ { 0x71E1, 55311 },
+ { 0x71E2, 55315 },
+ { 0x71E3, 55253 },
+ { 0x71E4, 55169 },
+ { 0x71E5, 55228 },
+ { 0x71E6, 55249 },
+ { 0x71E7, 55274 },
+ { 0x71E8, 55189 },
+ { 0x71E9, 55181 },
+ { 0x71EA, 55177 },
+ { 0x71EB, 55206 },
+ { 0x71EC, 55149 },
+ { 0x71ED, 55157 },
+ { 0x71EE, 55215 },
+ { 0x71EF, 55173 },
+ { 0x71F0, 55241 },
+ { 0x71F1, 55141 },
+ { 0x71F2, 55223 },
+ { 0x71F3, 55193 },
+ { 0x71F4, 55286 },
+ { 0x71F5, 55290 },
+ { 0x71F6, 55185 },
+ { 0x71F7, 55136 },
+ { 0x71F8, 55219 },
+ { 0x71F9, 55257 },
+ { 0x71FA, 55302 },
+ { 0x71FB, 55232 },
+ { 0x71FC, 55197 },
+ { 0x71FD, 55320 },
+ { 0x7280, 35345 },
+ { 0x7281, 35354 },
+ { 0x7282, 35348 },
+ { 0x7283, 35411 },
+ { 0x7284, 35357 },
+ { 0x7285, 35351 },
+ { 0x7286, 35363 },
+ { 0x7287, 35399 },
+ { 0x7288, 35405 },
+ { 0x7289, 35426 },
+ { 0x728A, 35366 },
+ { 0x728B, 35369 },
+ { 0x728C, 35384 },
+ { 0x728D, 35372 },
+ { 0x728E, 35375 },
+ { 0x728F, 35378 },
+ { 0x7290, 35420 },
+ { 0x7291, 35423 },
+ { 0x7292, 35396 },
+ { 0x7293, 35381 },
+ { 0x7294, 35417 },
+ { 0x7295, 35387 },
+ { 0x7296, 35390 },
+ { 0x7297, 35393 },
+ { 0x7298, 35429 },
+ { 0x7299, 35408 },
+ { 0x729A, 35414 },
+ { 0x729B, 35360 },
+ { 0x729C, 35402 },
+ { 0x72A0, 30318 },
+ { 0x72A1, 30405 },
+ { 0x72A2, 30324 },
+ { 0x72A3, 30339 },
+ { 0x72A4, 30447 },
+ { 0x72A5, 30357 },
+ { 0x72A6, 30390 },
+ { 0x72A7, 30372 },
+ { 0x72A8, 30354 },
+ { 0x72A9, 30321 },
+ { 0x72AA, 30342 },
+ { 0x72AB, 30348 },
+ { 0x72AC, 30375 },
+ { 0x72AD, 30363 },
+ { 0x72AE, 30411 },
+ { 0x72AF, 30438 },
+ { 0x72B0, 30360 },
+ { 0x72B1, 30450 },
+ { 0x72B2, 30366 },
+ { 0x72B3, 30402 },
+ { 0x72B4, 30369 },
+ { 0x72B5, 30345 },
+ { 0x72B6, 30444 },
+ { 0x72B7, 30351 },
+ { 0x72B8, 30414 },
+ { 0x72B9, 30333 },
+ { 0x72BA, 30327 },
+ { 0x72BB, 30462 },
+ { 0x72BC, 30336 },
+ { 0x72BD, 30387 },
+ { 0x72BE, 30396 },
+ { 0x72BF, 30423 },
+ { 0x72C0, 30330 },
+ { 0x72C1, 30381 },
+ { 0x72C2, 30417 },
+ { 0x72C3, 30441 },
+ { 0x72C4, 30399 },
+ { 0x72C5, 30384 },
+ { 0x72C6, 30453 },
+ { 0x72C7, 30420 },
+ { 0x72C8, 30456 },
+ { 0x72C9, 30408 },
+ { 0x72CA, 30393 },
+ { 0x72CB, 30429 },
+ { 0x72CC, 30432 },
+ { 0x72CD, 30435 },
+ { 0x72CE, 30426 },
+ { 0x72CF, 30378 },
+ { 0x72D0, 30459 },
+ { 0x7300, 6815 },
+ { 0x7301, 6835 },
+ { 0x7302, 6879 },
+ { 0x7303, 6839 },
+ { 0x7304, 6819 },
+ { 0x7305, 6899 },
+ { 0x7306, 6903 },
+ { 0x7307, 6867 },
+ { 0x7308, 6935 },
+ { 0x7309, 6823 },
+ { 0x730A, 6875 },
+ { 0x730B, 6847 },
+ { 0x730C, 6851 },
+ { 0x730D, 6855 },
+ { 0x730E, 6919 },
+ { 0x730F, 6827 },
+ { 0x7310, 6887 },
+ { 0x7311, 6931 },
+ { 0x7312, 6883 },
+ { 0x7313, 6859 },
+ { 0x7314, 6863 },
+ { 0x7315, 6891 },
+ { 0x7316, 6831 },
+ { 0x7317, 6911 },
+ { 0x7318, 6927 },
+ { 0x7319, 6923 },
+ { 0x731A, 6843 },
+ { 0x731B, 6915 },
+ { 0x731C, 6907 },
+ { 0x731D, 6871 },
+ { 0x731E, 6895 },
+ { 0x7320, 6939 },
+ { 0x7321, 6947 },
+ { 0x7322, 6943 },
+ { 0x7323, 6951 },
+ { 0x7330, 31802 },
+ { 0x7331, 31869 },
+ { 0x7332, 31808 },
+ { 0x7333, 31805 },
+ { 0x7334, 31857 },
+ { 0x7335, 31875 },
+ { 0x7336, 31814 },
+ { 0x7337, 31811 },
+ { 0x7338, 31866 },
+ { 0x7339, 31796 },
+ { 0x733A, 31833 },
+ { 0x733B, 31836 },
+ { 0x733C, 31839 },
+ { 0x733D, 31860 },
+ { 0x733E, 31799 },
+ { 0x733F, 31821 },
+ { 0x7340, 31872 },
+ { 0x7341, 31863 },
+ { 0x7342, 31845 },
+ { 0x7343, 31848 },
+ { 0x7344, 31851 },
+ { 0x7345, 31854 },
+ { 0x7346, 31824 },
+ { 0x7347, 31830 },
+ { 0x7348, 31827 },
+ { 0x7349, 31842 },
+ { 0x734A, 31817 },
+ { 0x7380, 55959 },
+ { 0x7381, 55962 },
+ { 0x7382, 55986 },
+ { 0x7383, 55941 },
+ { 0x7384, 55983 },
+ { 0x7385, 55920 },
+ { 0x7386, 55929 },
+ { 0x7387, 55980 },
+ { 0x7388, 55968 },
+ { 0x7389, 55953 },
+ { 0x738A, 55956 },
+ { 0x738B, 55938 },
+ { 0x738C, 55977 },
+ { 0x738D, 55992 },
+ { 0x738E, 55944 },
+ { 0x738F, 55965 },
+ { 0x7390, 55947 },
+ { 0x7391, 55932 },
+ { 0x7392, 55998 },
+ { 0x7393, 55935 },
+ { 0x7394, 55923 },
+ { 0x7395, 55974 },
+ { 0x7396, 55971 },
+ { 0x7397, 55995 },
+ { 0x7398, 56001 },
+ { 0x7399, 55989 },
+ { 0x739A, 55926 },
+ { 0x739B, 55914 },
+ { 0x739C, 55917 },
+ { 0x739D, 55950 },
+ { 0x739F, 55911 },
+ { 0x73A0, 6955 },
+ { 0x73A1, 6959 },
+ { 0x73A2, 6963 },
+ { 0x73A3, 7011 },
+ { 0x73A4, 7015 },
+ { 0x73A5, 6991 },
+ { 0x73A6, 6995 },
+ { 0x73A7, 7075 },
+ { 0x73A8, 6971 },
+ { 0x73A9, 7003 },
+ { 0x73AA, 7007 },
+ { 0x73AB, 7059 },
+ { 0x73AC, 7063 },
+ { 0x73AD, 6975 },
+ { 0x73AE, 6979 },
+ { 0x73AF, 6983 },
+ { 0x73B0, 7095 },
+ { 0x73B1, 7043 },
+ { 0x73B2, 6967 },
+ { 0x73B3, 6987 },
+ { 0x73B4, 7035 },
+ { 0x73B5, 7039 },
+ { 0x73B6, 7023 },
+ { 0x73B7, 7027 },
+ { 0x73B8, 7031 },
+ { 0x73B9, 7079 },
+ { 0x73BA, 7067 },
+ { 0x73BB, 7071 },
+ { 0x73BC, 7047 },
+ { 0x73BD, 7051 },
+ { 0x73BE, 7019 },
+ { 0x73BF, 7055 },
+ { 0x73C0, 7083 },
+ { 0x73C1, 7087 },
+ { 0x73C2, 7091 },
+ { 0x73C3, 6999 },
+ { 0x73C8, 7111 },
+ { 0x73C9, 7119 },
+ { 0x73CA, 7123 },
+ { 0x73CB, 7127 },
+ { 0x73CC, 7107 },
+ { 0x73CD, 7115 },
+ { 0x73CE, 7099 },
+ { 0x73CF, 7103 },
+ { 0x73D0, 7131 },
+ { 0x73D1, 7135 },
+ { 0x73D2, 7143 },
+ { 0x73D3, 7139 },
+ { 0x73D4, 7147 },
+ { 0x73D5, 7151 },
+ { 0x7400, 40249 },
+ { 0x7401, 40244 },
+ { 0x7402, 40239 },
+ { 0x7403, 40259 },
+ { 0x7404, 40254 },
+ { 0x7405, 40264 },
+ { 0x7406, 40287 },
+ { 0x7407, 40282 },
+ { 0x7408, 40277 },
+ { 0x7409, 40297 },
+ { 0x740A, 40292 },
+ { 0x740B, 40302 },
+ { 0x740C, 40139 },
+ { 0x740D, 40175 },
+ { 0x740E, 40179 },
+ { 0x740F, 40227 },
+ { 0x7410, 40135 },
+ { 0x7411, 40215 },
+ { 0x7412, 40183 },
+ { 0x7413, 40219 },
+ { 0x7414, 40187 },
+ { 0x7415, 40235 },
+ { 0x7416, 40207 },
+ { 0x7417, 40211 },
+ { 0x7418, 40203 },
+ { 0x7419, 40143 },
+ { 0x741A, 40223 },
+ { 0x741B, 40199 },
+ { 0x741C, 40269 },
+ { 0x741D, 40163 },
+ { 0x741E, 40231 },
+ { 0x741F, 40195 },
+ { 0x7420, 40273 },
+ { 0x7421, 40159 },
+ { 0x7422, 40147 },
+ { 0x7423, 40151 },
+ { 0x7424, 40155 },
+ { 0x7425, 40191 },
+ { 0x7426, 40171 },
+ { 0x7427, 40167 },
+ { 0x7428, 40077 },
+ { 0x7429, 40072 },
+ { 0x742A, 40067 },
+ { 0x742B, 40087 },
+ { 0x742C, 40082 },
+ { 0x742D, 40092 },
+ { 0x742E, 40115 },
+ { 0x742F, 40110 },
+ { 0x7430, 40105 },
+ { 0x7431, 40125 },
+ { 0x7432, 40120 },
+ { 0x7433, 40130 },
+ { 0x7434, 39967 },
+ { 0x7435, 40003 },
+ { 0x7436, 40007 },
+ { 0x7437, 40055 },
+ { 0x7438, 39963 },
+ { 0x7439, 40043 },
+ { 0x743A, 40011 },
+ { 0x743B, 40047 },
+ { 0x743C, 40015 },
+ { 0x743D, 40063 },
+ { 0x743E, 40035 },
+ { 0x743F, 40039 },
+ { 0x7440, 40031 },
+ { 0x7441, 39971 },
+ { 0x7442, 40051 },
+ { 0x7443, 40027 },
+ { 0x7444, 40097 },
+ { 0x7445, 39991 },
+ { 0x7446, 40059 },
+ { 0x7447, 40023 },
+ { 0x7448, 40101 },
+ { 0x7449, 39987 },
+ { 0x744A, 39975 },
+ { 0x744B, 39979 },
+ { 0x744C, 39983 },
+ { 0x744D, 40019 },
+ { 0x744E, 39999 },
+ { 0x744F, 39995 },
+ { 0x7450, 43139 },
+ { 0x7451, 43103 },
+ { 0x7452, 43127 },
+ { 0x7453, 43079 },
+ { 0x7454, 43163 },
+ { 0x7455, 43040 },
+ { 0x7456, 43145 },
+ { 0x7457, 43166 },
+ { 0x7458, 43112 },
+ { 0x7459, 43124 },
+ { 0x745A, 43064 },
+ { 0x745B, 43121 },
+ { 0x745C, 43082 },
+ { 0x745D, 43106 },
+ { 0x745E, 43148 },
+ { 0x745F, 43118 },
+ { 0x7460, 43169 },
+ { 0x7461, 43160 },
+ { 0x7462, 43109 },
+ { 0x7463, 43157 },
+ { 0x7464, 43130 },
+ { 0x7465, 43133 },
+ { 0x7466, 43031 },
+ { 0x7467, 43073 },
+ { 0x7468, 43058 },
+ { 0x7469, 43046 },
+ { 0x746A, 43034 },
+ { 0x746B, 43151 },
+ { 0x746C, 43100 },
+ { 0x746D, 43028 },
+ { 0x746E, 43142 },
+ { 0x746F, 43091 },
+ { 0x7470, 43070 },
+ { 0x7471, 43049 },
+ { 0x7472, 43088 },
+ { 0x7473, 43043 },
+ { 0x7474, 43094 },
+ { 0x7475, 43136 },
+ { 0x7476, 43097 },
+ { 0x7477, 43061 },
+ { 0x7478, 43055 },
+ { 0x7479, 43037 },
+ { 0x747A, 43052 },
+ { 0x747B, 43076 },
+ { 0x747C, 43154 },
+ { 0x747D, 43067 },
+ { 0x747E, 43085 },
+ { 0x747F, 43115 },
+ { 0x7480, 42944 },
+ { 0x7481, 42899 },
+ { 0x7482, 42926 },
+ { 0x7483, 42914 },
+ { 0x7484, 42929 },
+ { 0x7485, 42938 },
+ { 0x7486, 42950 },
+ { 0x7487, 42920 },
+ { 0x7488, 42923 },
+ { 0x7489, 42968 },
+ { 0x748A, 42935 },
+ { 0x748B, 42947 },
+ { 0x748C, 42908 },
+ { 0x748D, 42905 },
+ { 0x748E, 42965 },
+ { 0x748F, 42953 },
+ { 0x7490, 42956 },
+ { 0x7491, 42959 },
+ { 0x7492, 42962 },
+ { 0x7493, 42941 },
+ { 0x7494, 42911 },
+ { 0x7495, 42932 },
+ { 0x7496, 42881 },
+ { 0x7497, 42884 },
+ { 0x7498, 42887 },
+ { 0x7499, 42890 },
+ { 0x749A, 42893 },
+ { 0x749B, 42896 },
+ { 0x749C, 42902 },
+ { 0x749D, 42917 },
+ { 0x74A0, 42869 },
+ { 0x74A1, 42851 },
+ { 0x74A2, 42857 },
+ { 0x74A3, 42878 },
+ { 0x74A4, 42863 },
+ { 0x74A5, 42860 },
+ { 0x74A6, 42854 },
+ { 0x74A7, 42875 },
+ { 0x74A8, 42872 },
+ { 0x74A9, 42866 },
+ { 0x7800, 39794 },
+ { 0x7801, 39797 },
+ { 0x7802, 39800 },
+ { 0x7803, 39803 },
+ { 0x7804, 39806 },
+ { 0x7805, 39809 },
+ { 0x7808, 39812 },
+ { 0x780A, 39815 },
+ { 0x780B, 39818 },
+ { 0x780C, 39821 },
+ { 0x780D, 39824 },
+ { 0x780E, 39827 },
+ { 0x780F, 39830 },
+ { 0x7810, 39833 },
+ { 0x7811, 39836 },
+ { 0x7812, 39839 },
+ { 0x7813, 39842 },
+ { 0x7814, 39845 },
+ { 0x7815, 39848 },
+ { 0x7816, 39851 },
+ { 0x7817, 39854 },
+ { 0x7818, 39857 },
+ { 0x7819, 39860 },
+ { 0x781A, 39863 },
+ { 0x781B, 39866 },
+ { 0x781C, 39869 },
+ { 0x781D, 39872 },
+ { 0x781E, 39875 },
+ { 0x781F, 39878 },
+ { 0x7820, 39881 },
+ { 0x7821, 39884 },
+ { 0x7822, 39887 },
+ { 0x7823, 39890 },
+ { 0x7824, 39893 },
+ { 0x7825, 39896 },
+ { 0x7826, 39899 },
+ { 0x7827, 39902 },
+ { 0x7828, 39905 },
+ { 0x7829, 39908 },
+ { 0x782A, 39911 },
+ { 0x782B, 39914 },
+ { 0x782C, 39917 },
+ { 0x782D, 39920 },
+ { 0x782E, 39923 },
+ { 0x782F, 39926 },
+ { 0x7830, 39929 },
+ { 0x7831, 39932 },
+ { 0x7832, 39935 },
+ { 0x7833, 39938 },
+ { 0x7834, 39941 },
+ { 0x7835, 39944 },
+ { 0x7837, 39947 },
+ { 0x7838, 39950 },
+ { 0x783C, 39953 },
+ { 0x783F, 39956 },
+ { 0x7900, 67899 },
+ { 0x7901, 67902 },
+ { 0x7902, 67938 },
+ { 0x7903, 67935 },
+ { 0x7904, 67890 },
+ { 0x7905, 67926 },
+ { 0x7906, 67932 },
+ { 0x7907, 67905 },
+ { 0x7908, 67923 },
+ { 0x7909, 67929 },
+ { 0x790A, 67908 },
+ { 0x790B, 67941 },
+ { 0x790C, 67911 },
+ { 0x790D, 67914 },
+ { 0x790E, 67950 },
+ { 0x790F, 67896 },
+ { 0x7910, 67893 },
+ { 0x7911, 67947 },
+ { 0x7912, 67917 },
+ { 0x7913, 67944 },
+ { 0x7914, 67953 },
+ { 0x7915, 67920 },
+ { 0x7916, 67956 },
+ { 0x7917, 67963 },
+ { 0x7918, 67966 },
+ { 0x7919, 67959 },
+ { 0x791F, 67887 },
+ { 0x7920, 35432 },
+ { 0x7921, 35435 },
+ { 0x7922, 35450 },
+ { 0x7923, 35441 },
+ { 0x7924, 35444 },
+ { 0x7925, 35486 },
+ { 0x7926, 35453 },
+ { 0x7927, 35489 },
+ { 0x7928, 35456 },
+ { 0x7929, 35459 },
+ { 0x792A, 35462 },
+ { 0x792B, 35465 },
+ { 0x792C, 35468 },
+ { 0x792D, 35474 },
+ { 0x792E, 35504 },
+ { 0x792F, 35480 },
+ { 0x7930, 35483 },
+ { 0x7931, 35447 },
+ { 0x7932, 35471 },
+ { 0x7933, 35477 },
+ { 0x7934, 35507 },
+ { 0x7935, 35492 },
+ { 0x7936, 35495 },
+ { 0x7937, 35498 },
+ { 0x7938, 35501 },
+ { 0x7939, 35438 },
+ { 0x793F, 35510 },
+ { 0x7A00, 67726 },
+ { 0x7A01, 67705 },
+ { 0x7A02, 67713 },
+ { 0x7A03, 67717 },
+ { 0x7A05, 67701 },
+ { 0x7A06, 67709 },
+ { 0x7A0C, 67722 },
+ { 0x7A0D, 67678 },
+ { 0x7A0E, 67686 },
+ { 0x7A0F, 67683 },
+ { 0x7A10, 67747 },
+ { 0x7A11, 67795 },
+ { 0x7A12, 67738 },
+ { 0x7A13, 67792 },
+ { 0x7A15, 67732 },
+ { 0x7A16, 67783 },
+ { 0x7A17, 67744 },
+ { 0x7A19, 67804 },
+ { 0x7A1A, 67819 },
+ { 0x7A1B, 67825 },
+ { 0x7A1C, 67786 },
+ { 0x7A1D, 67822 },
+ { 0x7A1E, 67801 },
+ { 0x7A1F, 67768 },
+ { 0x7A20, 67816 },
+ { 0x7A21, 67735 },
+ { 0x7A22, 67789 },
+ { 0x7A23, 67756 },
+ { 0x7A24, 67759 },
+ { 0x7A25, 67807 },
+ { 0x7A26, 67729 },
+ { 0x7A27, 67780 },
+ { 0x7A28, 67753 },
+ { 0x7A29, 67774 },
+ { 0x7A2A, 67762 },
+ { 0x7A2B, 67750 },
+ { 0x7A2C, 67771 },
+ { 0x7A2D, 67810 },
+ { 0x7A2E, 67813 },
+ { 0x7A2F, 67765 },
+ { 0x7A30, 67777 },
+ { 0x7A31, 67741 },
+ { 0x7A32, 67798 },
+ { 0x7A33, 67828 },
+ { 0x7A38, 67667 },
+ { 0x7A39, 67675 },
+ { 0x7A3A, 67671 },
+ { 0x7A3F, 67845 },
+ { 0x7A40, 67689 },
+ { 0x7A41, 67692 },
+ { 0x7A42, 67698 },
+ { 0x7A43, 67695 },
+ { 0x7A44, 67839 },
+ { 0x7A45, 67842 },
+ { 0x7A46, 67831 },
+ { 0x7A47, 67835 },
+ { 0x7A50, 67847 },
+ { 0x7A51, 67859 },
+ { 0x7A52, 67863 },
+ { 0x7A53, 67870 },
+ { 0x7A54, 67874 },
+ { 0x7A55, 67856 },
+ { 0x7A56, 67850 },
+ { 0x7A57, 67866 },
+ { 0x7A58, 67853 },
+ { 0x8000, 58351 },
+ { 0x8001, 58354 },
+ { 0x8002, 58364 },
+ { 0x8003, 58379 },
+ { 0x8004, 58359 },
+ { 0x8005, 58369 },
+ { 0x8006, 58390 },
+ { 0x8007, 58385 },
+ { 0x8008, 58374 },
+ { 0x8009, 58460 },
+ { 0x800A, 58463 },
+ { 0x800B, 58495 },
+ { 0x800C, 58500 },
+ { 0x800D, 58484 },
+ { 0x800E, 58506 },
+ { 0x800F, 58479 },
+ { 0x8010, 58489 },
+ { 0x8011, 58512 },
+ { 0x8012, 58517 },
+ { 0x8013, 58522 },
+ { 0x8014, 58470 },
+ { 0x8015, 58466 },
+ { 0x8016, 59529 },
+ { 0x8017, 59555 },
+ { 0x8018, 59539 },
+ { 0x8019, 59532 },
+ { 0x801A, 59545 },
+ { 0x801B, 59550 },
+ { 0x801C, 58527 },
+ { 0x801D, 58530 },
+ { 0x801E, 58533 },
+ { 0x801F, 58538 },
+ { 0x8020, 58545 },
+ { 0x8021, 58548 },
+ { 0x8022, 58573 },
+ { 0x8023, 58578 },
+ { 0x8024, 58553 },
+ { 0x8025, 58583 },
+ { 0x8026, 58558 },
+ { 0x8027, 58563 },
+ { 0x8028, 58568 },
+ { 0x8029, 61180 },
+ { 0x802A, 61793 },
+ { 0x802B, 61183 },
+ { 0x802C, 61186 },
+ { 0x802D, 58588 },
+ { 0x802E, 58591 },
+ { 0x802F, 58611 },
+ { 0x8030, 58602 },
+ { 0x8031, 58596 },
+ { 0x8032, 61796 },
+ { 0x8033, 61191 },
+ { 0x8034, 61194 },
+ { 0x8035, 61197 },
+ { 0x8036, 61799 },
+ { 0x8037, 61802 },
+ { 0x8038, 59560 },
+ { 0x8039, 59600 },
+ { 0x803A, 59563 },
+ { 0x803B, 59588 },
+ { 0x803C, 59568 },
+ { 0x803D, 59575 },
+ { 0x803E, 61202 },
+ { 0x803F, 62374 },
+ { 0x8040, 58616 },
+ { 0x8041, 59605 },
+ { 0x8042, 61205 },
+ { 0x8043, 62377 },
+ { 0x8044, 59608 },
+ { 0x8045, 59611 },
+ { 0x8046, 61805 },
+ { 0x8047, 59616 },
+ { 0x8048, 61808 },
+ { 0x8049, 58619 },
+ { 0x804A, 58622 },
+ { 0x804B, 58627 },
+ { 0x804C, 58632 },
+ { 0x804D, 58638 },
+ { 0x804E, 58641 },
+ { 0x804F, 58647 },
+ { 0x8050, 58653 },
+ { 0x8051, 61811 },
+ { 0x8052, 61814 },
+ { 0x8053, 59619 },
+ { 0x8054, 61208 },
+ { 0x8055, 58658 },
+ { 0x8056, 59622 },
+ { 0x8057, 59625 },
+ { 0x8058, 59751 },
+ { 0x8059, 59769 },
+ { 0x805A, 59633 },
+ { 0x805B, 59639 },
+ { 0x805C, 59645 },
+ { 0x805D, 59653 },
+ { 0x805E, 59757 },
+ { 0x805F, 59719 },
+ { 0x8060, 59659 },
+ { 0x8061, 59665 },
+ { 0x8062, 59671 },
+ { 0x8063, 59725 },
+ { 0x8064, 59679 },
+ { 0x8065, 59685 },
+ { 0x8066, 59691 },
+ { 0x8067, 59731 },
+ { 0x8068, 59699 },
+ { 0x8069, 59737 },
+ { 0x806A, 59705 },
+ { 0x806B, 59763 },
+ { 0x806C, 59711 },
+ { 0x806D, 59745 },
+ { 0x806E, 59775 },
+ { 0x806F, 59778 },
+ { 0x8070, 61819 },
+ { 0x8071, 61822 },
+ { 0x8072, 58661 },
+ { 0x8073, 59781 },
+ { 0x8074, 59784 },
+ { 0x8075, 59787 },
+ { 0x8076, 61211 },
+ { 0x8077, 59792 },
+ { 0x8078, 59795 },
+ { 0x8079, 61214 },
+ { 0x807A, 58664 },
+ { 0x807B, 58671 },
+ { 0x807C, 58667 },
+ { 0x807D, 58676 },
+ { 0x807E, 59802 },
+ { 0x807F, 59805 },
+ { 0x8080, 61217 },
+ { 0x8081, 59810 },
+ { 0x8082, 61825 },
+ { 0x8083, 59813 },
+ { 0x8084, 59816 },
+ { 0x8085, 61220 },
+ { 0x8086, 61223 },
+ { 0x8087, 61227 },
+ { 0x8088, 61232 },
+ { 0x8089, 61235 },
+ { 0x808A, 58396 },
+ { 0x808B, 58407 },
+ { 0x808C, 58399 },
+ { 0x808D, 58680 },
+ { 0x808E, 58683 },
+ { 0x808F, 58702 },
+ { 0x8090, 58697 },
+ { 0x8091, 58707 },
+ { 0x8092, 58712 },
+ { 0x8093, 58692 },
+ { 0x8094, 61238 },
+ { 0x8095, 61241 },
+ { 0x8096, 58717 },
+ { 0x8097, 58720 },
+ { 0x8098, 58728 },
+ { 0x8099, 58733 },
+ { 0x809A, 58723 },
+ { 0x809B, 58743 },
+ { 0x809C, 58748 },
+ { 0x809D, 58739 },
+ { 0x809E, 61244 },
+ { 0x809F, 61828 },
+ { 0x80A0, 61247 },
+ { 0x80A1, 61250 },
+ { 0x80A2, 61253 },
+ { 0x80A3, 61258 },
+ { 0x80A4, 61265 },
+ { 0x80A5, 61274 },
+ { 0x80A6, 61315 },
+ { 0x80A7, 61338 },
+ { 0x80A8, 61344 },
+ { 0x80A9, 61279 },
+ { 0x80AA, 61284 },
+ { 0x80AB, 61320 },
+ { 0x80AC, 61351 },
+ { 0x80AD, 61356 },
+ { 0x80AE, 61326 },
+ { 0x80AF, 61290 },
+ { 0x80B0, 61331 },
+ { 0x80B1, 61295 },
+ { 0x80B2, 61300 },
+ { 0x80B3, 61305 },
+ { 0x80B4, 61310 },
+ { 0x80B5, 58753 },
+ { 0x80B6, 58756 },
+ { 0x80B7, 59819 },
+ { 0x80B8, 59827 },
+ { 0x80B9, 59836 },
+ { 0x80BA, 59843 },
+ { 0x80BB, 59950 },
+ { 0x80BC, 59855 },
+ { 0x80BD, 59958 },
+ { 0x80BE, 60106 },
+ { 0x80BF, 59963 },
+ { 0x80C0, 59968 },
+ { 0x80C1, 59975 },
+ { 0x80C2, 59980 },
+ { 0x80C3, 59860 },
+ { 0x80C4, 59865 },
+ { 0x80C5, 59987 },
+ { 0x80C6, 59994 },
+ { 0x80C7, 59870 },
+ { 0x80C8, 59875 },
+ { 0x80C9, 59882 },
+ { 0x80CA, 59887 },
+ { 0x80CB, 60113 },
+ { 0x80CC, 59999 },
+ { 0x80CD, 59895 },
+ { 0x80CE, 60004 },
+ { 0x80CF, 60009 },
+ { 0x80D0, 60119 },
+ { 0x80D1, 59900 },
+ { 0x80D2, 60016 },
+ { 0x80D3, 60021 },
+ { 0x80D4, 59909 },
+ { 0x80D5, 60126 },
+ { 0x80D6, 60028 },
+ { 0x80D7, 60034 },
+ { 0x80D8, 60043 },
+ { 0x80D9, 60141 },
+ { 0x80DA, 60048 },
+ { 0x80DB, 60053 },
+ { 0x80DC, 60060 },
+ { 0x80DD, 59916 },
+ { 0x80DE, 59921 },
+ { 0x80DF, 59928 },
+ { 0x80E0, 60067 },
+ { 0x80E1, 60072 },
+ { 0x80E2, 59933 },
+ { 0x80E3, 60079 },
+ { 0x80E4, 60084 },
+ { 0x80E5, 60089 },
+ { 0x80E6, 60094 },
+ { 0x80E7, 60131 },
+ { 0x80E8, 60101 },
+ { 0x80E9, 60136 },
+ { 0x80EA, 59850 },
+ { 0x80EB, 59938 },
+ { 0x80EC, 59943 },
+ { 0x80ED, 59822 },
+ { 0x80EE, 61362 },
+ { 0x80EF, 61365 },
+ { 0x80F0, 60146 },
+ { 0x80F1, 60149 },
+ { 0x80F2, 60157 },
+ { 0x80F3, 60160 },
+ { 0x80F4, 61831 },
+ { 0x80F5, 60169 },
+ { 0x80F6, 60172 },
+ { 0x80F7, 61370 },
+ { 0x80F8, 61378 },
+ { 0x80F9, 61373 },
+ { 0x80FA, 61382 },
+ { 0x80FB, 60175 },
+ { 0x80FC, 61387 },
+ { 0x80FD, 62380 },
+ { 0x80FE, 62539 },
+ { 0x80FF, 62542 },
+ { 0x8100, 58760 },
+ { 0x8101, 58763 },
+ { 0x8102, 58768 },
+ { 0x8103, 58773 },
+ { 0x8104, 60178 },
+ { 0x8105, 60181 },
+ { 0x8106, 60186 },
+ { 0x8107, 61834 },
+ { 0x8108, 61390 },
+ { 0x8109, 61393 },
+ { 0x810A, 61397 },
+ { 0x810B, 61400 },
+ { 0x810C, 61424 },
+ { 0x810D, 61419 },
+ { 0x810E, 61407 },
+ { 0x810F, 61414 },
+ { 0x8110, 61837 },
+ { 0x8111, 61430 },
+ { 0x8112, 61447 },
+ { 0x8113, 61437 },
+ { 0x8114, 61442 },
+ { 0x8115, 61433 },
+ { 0x8116, 58778 },
+ { 0x8117, 58781 },
+ { 0x8118, 60191 },
+ { 0x8119, 60198 },
+ { 0x811A, 60203 },
+ { 0x811B, 60211 },
+ { 0x811C, 60216 },
+ { 0x811D, 60194 },
+ { 0x811E, 60223 },
+ { 0x811F, 60232 },
+ { 0x8120, 60239 },
+ { 0x8121, 60226 },
+ { 0x8122, 60244 },
+ { 0x8123, 60247 },
+ { 0x8124, 60250 },
+ { 0x8125, 60255 },
+ { 0x8126, 61452 },
+ { 0x8127, 61840 },
+ { 0x8128, 62383 },
+ { 0x8129, 58786 },
+ { 0x812A, 58793 },
+ { 0x812B, 58789 },
+ { 0x812C, 60258 },
+ { 0x812D, 58797 },
+ { 0x812E, 58805 },
+ { 0x812F, 58835 },
+ { 0x8130, 58810 },
+ { 0x8131, 58840 },
+ { 0x8132, 58815 },
+ { 0x8133, 58820 },
+ { 0x8134, 58825 },
+ { 0x8135, 58830 },
+ { 0x8136, 58800 },
+ { 0x8137, 58845 },
+ { 0x8138, 61455 },
+ { 0x8139, 61458 },
+ { 0x813A, 61468 },
+ { 0x813B, 61478 },
+ { 0x813C, 61473 },
+ { 0x813D, 61463 },
+ { 0x813E, 61483 },
+ { 0x813F, 58412 },
+ { 0x8140, 58415 },
+ { 0x8141, 58848 },
+ { 0x8142, 61486 },
+ { 0x8143, 61489 },
+ { 0x8144, 61495 },
+ { 0x8145, 58851 },
+ { 0x8146, 60261 },
+ { 0x8147, 60268 },
+ { 0x8148, 60264 },
+ { 0x8149, 60276 },
+ { 0x814A, 60272 },
+ { 0x814B, 58854 },
+ { 0x814C, 58857 },
+ { 0x814D, 60287 },
+ { 0x814E, 58863 },
+ { 0x814F, 58866 },
+ { 0x8150, 58875 },
+ { 0x8151, 58880 },
+ { 0x8152, 58871 },
+ { 0x8153, 61501 },
+ { 0x8154, 58885 },
+ { 0x8155, 58888 },
+ { 0x8156, 60290 },
+ { 0x8157, 58891 },
+ { 0x8158, 58894 },
+ { 0x8159, 58904 },
+ { 0x815A, 58909 },
+ { 0x815B, 59113 },
+ { 0x815C, 59029 },
+ { 0x815D, 59165 },
+ { 0x815E, 59034 },
+ { 0x815F, 58916 },
+ { 0x8160, 59170 },
+ { 0x8161, 59118 },
+ { 0x8162, 58921 },
+ { 0x8163, 59039 },
+ { 0x8164, 59123 },
+ { 0x8165, 59044 },
+ { 0x8166, 59049 },
+ { 0x8167, 58926 },
+ { 0x8168, 59129 },
+ { 0x8169, 59134 },
+ { 0x816A, 59141 },
+ { 0x816B, 58931 },
+ { 0x816C, 59148 },
+ { 0x816D, 59058 },
+ { 0x816E, 58936 },
+ { 0x816F, 59063 },
+ { 0x8170, 58941 },
+ { 0x8171, 59068 },
+ { 0x8172, 58946 },
+ { 0x8173, 58951 },
+ { 0x8174, 58956 },
+ { 0x8175, 58961 },
+ { 0x8176, 58968 },
+ { 0x8177, 58975 },
+ { 0x8178, 58982 },
+ { 0x8179, 58987 },
+ { 0x817A, 58994 },
+ { 0x817B, 59073 },
+ { 0x817C, 58999 },
+ { 0x817D, 59004 },
+ { 0x817E, 59009 },
+ { 0x817F, 59078 },
+ { 0x8180, 59083 },
+ { 0x8181, 59088 },
+ { 0x8182, 59153 },
+ { 0x8183, 59093 },
+ { 0x8184, 59098 },
+ { 0x8185, 59175 },
+ { 0x8186, 59103 },
+ { 0x8187, 58899 },
+ { 0x8188, 59014 },
+ { 0x8189, 59019 },
+ { 0x818A, 59158 },
+ { 0x818B, 59108 },
+ { 0x818C, 59024 },
+ { 0x818D, 60293 },
+ { 0x818E, 60296 },
+ { 0x818F, 60301 },
+ { 0x8190, 61504 },
+ { 0x8191, 61507 },
+ { 0x8192, 61510 },
+ { 0x8193, 61513 },
+ { 0x8194, 61516 },
+ { 0x8195, 60304 },
+ { 0x8196, 60307 },
+ { 0x8197, 60313 },
+ { 0x8198, 60316 },
+ { 0x8199, 60321 },
+ { 0x819A, 61521 },
+ { 0x819B, 61524 },
+ { 0x819C, 62386 },
+ { 0x819D, 62401 },
+ { 0x819E, 62389 },
+ { 0x819F, 61843 },
+ { 0x81A0, 59180 },
+ { 0x81A1, 59193 },
+ { 0x81A2, 59183 },
+ { 0x81A3, 59188 },
+ { 0x81A4, 60326 },
+ { 0x81A5, 60329 },
+ { 0x81A6, 61846 },
+ { 0x81A7, 61527 },
+ { 0x81A8, 62411 },
+ { 0x81A9, 62414 },
+ { 0x81AA, 59198 },
+ { 0x81AB, 59201 },
+ { 0x81AC, 60332 },
+ { 0x81AD, 60335 },
+ { 0x81AE, 60338 },
+ { 0x81AF, 60343 },
+ { 0x81B0, 60346 },
+ { 0x81B1, 60349 },
+ { 0x81B2, 60353 },
+ { 0x81B3, 60356 },
+ { 0x81B4, 60359 },
+ { 0x81B5, 62419 },
+ { 0x81B6, 62422 },
+ { 0x81B7, 59213 },
+ { 0x81B8, 61849 },
+ { 0x81B9, 61852 },
+ { 0x81BA, 61857 },
+ { 0x81BB, 61866 },
+ { 0x81BC, 61873 },
+ { 0x81BD, 61901 },
+ { 0x81BE, 61906 },
+ { 0x81BF, 62007 },
+ { 0x81C0, 62014 },
+ { 0x81C1, 61911 },
+ { 0x81C2, 62019 },
+ { 0x81C3, 61916 },
+ { 0x81C4, 61921 },
+ { 0x81C5, 62024 },
+ { 0x81C6, 62029 },
+ { 0x81C7, 62034 },
+ { 0x81C8, 61926 },
+ { 0x81C9, 62041 },
+ { 0x81CA, 61931 },
+ { 0x81CB, 62046 },
+ { 0x81CC, 61938 },
+ { 0x81CD, 61943 },
+ { 0x81CE, 61950 },
+ { 0x81CF, 61957 },
+ { 0x81D0, 62052 },
+ { 0x81D1, 62057 },
+ { 0x81D2, 62062 },
+ { 0x81D3, 62067 },
+ { 0x81D4, 62130 },
+ { 0x81D5, 62103 },
+ { 0x81D6, 61962 },
+ { 0x81D7, 62076 },
+ { 0x81D8, 61967 },
+ { 0x81D9, 61972 },
+ { 0x81DA, 62108 },
+ { 0x81DB, 61979 },
+ { 0x81DC, 62081 },
+ { 0x81DD, 62135 },
+ { 0x81DE, 62144 },
+ { 0x81DF, 62113 },
+ { 0x81E0, 62118 },
+ { 0x81E1, 62088 },
+ { 0x81E2, 62093 },
+ { 0x81E3, 62125 },
+ { 0x81E4, 61984 },
+ { 0x81E5, 61880 },
+ { 0x81E6, 61885 },
+ { 0x81E7, 61892 },
+ { 0x81E8, 61995 },
+ { 0x81E9, 62002 },
+ { 0x81EA, 62098 },
+ { 0x81EB, 62152 },
+ { 0x81EC, 62156 },
+ { 0x81ED, 62171 },
+ { 0x81EE, 62176 },
+ { 0x81EF, 62159 },
+ { 0x81F0, 62163 },
+ { 0x81F1, 62425 },
+ { 0x81F2, 60364 },
+ { 0x81F3, 60367 },
+ { 0x81F4, 60372 },
+ { 0x81F5, 60375 },
+ { 0x81F6, 60380 },
+ { 0x81F7, 59216 },
+ { 0x81F8, 60387 },
+ { 0x81F9, 62428 },
+ { 0x81FA, 61530 },
+ { 0x81FB, 59219 },
+ { 0x81FC, 59222 },
+ { 0x81FD, 60390 },
+ { 0x81FE, 60397 },
+ { 0x81FF, 60450 },
+ { 0x8200, 60455 },
+ { 0x8201, 60460 },
+ { 0x8202, 60466 },
+ { 0x8203, 60402 },
+ { 0x8204, 60409 },
+ { 0x8205, 60472 },
+ { 0x8206, 60477 },
+ { 0x8207, 60482 },
+ { 0x8208, 60414 },
+ { 0x8209, 60419 },
+ { 0x820A, 60501 },
+ { 0x820B, 60426 },
+ { 0x820C, 60433 },
+ { 0x820D, 60438 },
+ { 0x820E, 60443 },
+ { 0x820F, 60489 },
+ { 0x8210, 60496 },
+ { 0x8211, 60393 },
+ { 0x8212, 60514 },
+ { 0x8213, 60519 },
+ { 0x8214, 60510 },
+ { 0x8215, 60506 },
+ { 0x8216, 60524 },
+ { 0x8217, 62183 },
+ { 0x8218, 62186 },
+ { 0x8219, 62195 },
+ { 0x821A, 62191 },
+ { 0x821B, 60527 },
+ { 0x821C, 60530 },
+ { 0x821D, 60533 },
+ { 0x821E, 60536 },
+ { 0x821F, 60541 },
+ { 0x8220, 59227 },
+ { 0x8221, 59234 },
+ { 0x8222, 59230 },
+ { 0x8223, 60549 },
+ { 0x8224, 60552 },
+ { 0x8225, 60555 },
+ { 0x8226, 61533 },
+ { 0x8227, 62200 },
+ { 0x8228, 59239 },
+ { 0x8229, 60558 },
+ { 0x822A, 59242 },
+ { 0x822B, 60561 },
+ { 0x822C, 59245 },
+ { 0x822D, 59248 },
+ { 0x822E, 60564 },
+ { 0x822F, 60567 },
+ { 0x8230, 62431 },
+ { 0x8231, 62434 },
+ { 0x8232, 61536 },
+ { 0x8233, 61553 },
+ { 0x8234, 61563 },
+ { 0x8235, 61558 },
+ { 0x8236, 61539 },
+ { 0x8237, 61544 },
+ { 0x8238, 61568 },
+ { 0x8239, 62203 },
+ { 0x823A, 62210 },
+ { 0x823B, 62215 },
+ { 0x823C, 62222 },
+ { 0x823D, 62206 },
+ { 0x823E, 59253 },
+ { 0x823F, 60571 },
+ { 0x8240, 61573 },
+ { 0x8241, 61582 },
+ { 0x8242, 61576 },
+ { 0x8243, 61586 },
+ { 0x8244, 62227 },
+ { 0x8245, 60577 },
+ { 0x8246, 60574 },
+ { 0x8247, 61591 },
+ { 0x8248, 59256 },
+ { 0x8249, 59259 },
+ { 0x824A, 59264 },
+ { 0x824B, 59269 },
+ { 0x824C, 59273 },
+ { 0x824D, 59276 },
+ { 0x824E, 60581 },
+ { 0x824F, 60584 },
+ { 0x8250, 60595 },
+ { 0x8251, 60587 },
+ { 0x8252, 62437 },
+ { 0x8253, 62440 },
+ { 0x8254, 62465 },
+ { 0x8255, 62470 },
+ { 0x8256, 62477 },
+ { 0x8257, 62445 },
+ { 0x8258, 62453 },
+ { 0x8259, 62482 },
+ { 0x825A, 62487 },
+ { 0x825B, 62492 },
+ { 0x825C, 62500 },
+ { 0x825D, 62507 },
+ { 0x825E, 62458 },
+ { 0x825F, 62516 },
+ { 0x8260, 62230 },
+ { 0x8261, 59281 },
+ { 0x8262, 61594 },
+ { 0x8263, 60601 },
+ { 0x8264, 60613 },
+ { 0x8265, 60642 },
+ { 0x8266, 60619 },
+ { 0x8267, 60625 },
+ { 0x8268, 60636 },
+ { 0x8269, 60609 },
+ { 0x826A, 60604 },
+ { 0x826B, 60648 },
+ { 0x826C, 60653 },
+ { 0x826D, 62233 },
+ { 0x826E, 62291 },
+ { 0x826F, 62236 },
+ { 0x8270, 62260 },
+ { 0x8271, 62266 },
+ { 0x8272, 62272 },
+ { 0x8273, 62279 },
+ { 0x8274, 62242 },
+ { 0x8275, 62248 },
+ { 0x8276, 62285 },
+ { 0x8277, 62254 },
+ { 0x8278, 62297 },
+ { 0x8279, 62303 },
+ { 0x827A, 59284 },
+ { 0x827B, 60661 },
+ { 0x827C, 60664 },
+ { 0x827D, 60667 },
+ { 0x827E, 62310 },
+ { 0x827F, 59287 },
+ { 0x8280, 59290 },
+ { 0x8281, 59310 },
+ { 0x8282, 59315 },
+ { 0x8283, 59320 },
+ { 0x8284, 59295 },
+ { 0x8285, 59300 },
+ { 0x8286, 59325 },
+ { 0x8287, 59305 },
+ { 0x8288, 59330 },
+ { 0x8289, 59335 },
+ { 0x828A, 62313 },
+ { 0x828B, 62326 },
+ { 0x828C, 62316 },
+ { 0x828D, 62321 },
+ { 0x828E, 62331 },
+ { 0x828F, 59340 },
+ { 0x8290, 60670 },
+ { 0x8291, 59343 },
+ { 0x8292, 59346 },
+ { 0x8293, 59349 },
+ { 0x8294, 60770 },
+ { 0x8295, 60673 },
+ { 0x8296, 60685 },
+ { 0x8297, 60690 },
+ { 0x8298, 60725 },
+ { 0x8299, 60695 },
+ { 0x829A, 60730 },
+ { 0x829B, 60735 },
+ { 0x829C, 60740 },
+ { 0x829D, 60700 },
+ { 0x829E, 60745 },
+ { 0x829F, 60750 },
+ { 0x82A0, 60765 },
+ { 0x82A1, 60755 },
+ { 0x82A2, 60705 },
+ { 0x82A3, 60710 },
+ { 0x82A4, 60715 },
+ { 0x82A5, 60720 },
+ { 0x82A6, 60760 },
+ { 0x82A7, 60680 },
+ { 0x82A8, 60676 },
+ { 0x82A9, 60774 },
+ { 0x82AA, 60777 },
+ { 0x82AB, 62521 },
+ { 0x82AC, 60783 },
+ { 0x82AD, 60786 },
+ { 0x82AE, 61597 },
+ { 0x82AF, 61600 },
+ { 0x82B0, 61622 },
+ { 0x82B1, 61632 },
+ { 0x82B2, 61617 },
+ { 0x82B3, 61637 },
+ { 0x82B4, 61627 },
+ { 0x82B5, 61605 },
+ { 0x82B6, 61610 },
+ { 0x82B7, 61642 },
+ { 0x82B8, 62336 },
+ { 0x82B9, 62339 },
+ { 0x82BA, 60789 },
+ { 0x82BB, 60792 },
+ { 0x82BC, 60796 },
+ { 0x82BD, 60807 },
+ { 0x82BE, 62342 },
+ { 0x82BF, 61645 },
+ { 0x82C0, 62345 },
+ { 0x82C1, 62524 },
+ { 0x82C2, 62547 },
+ { 0x82C3, 61648 },
+ { 0x82C4, 61651 },
+ { 0x82C5, 61656 },
+ { 0x82C6, 61661 },
+ { 0x82C7, 61664 },
+ { 0x82C8, 61669 },
+ { 0x82C9, 61710 },
+ { 0x82CA, 61674 },
+ { 0x82CB, 61679 },
+ { 0x82CC, 61684 },
+ { 0x82CD, 61689 },
+ { 0x82CE, 61715 },
+ { 0x82CF, 61695 },
+ { 0x82D0, 61700 },
+ { 0x82D1, 61705 },
+ { 0x82D2, 62527 },
+ { 0x82D3, 61720 },
+ { 0x82D4, 61731 },
+ { 0x82D5, 61723 },
+ { 0x82D6, 62348 },
+ { 0x82D7, 60818 },
+ { 0x82D8, 60821 },
+ { 0x82D9, 61735 },
+ { 0x82DA, 62530 },
+ { 0x82DB, 59352 },
+ { 0x82DC, 59355 },
+ { 0x82DD, 60827 },
+ { 0x82DE, 61738 },
+ { 0x82DF, 61741 },
+ { 0x82E0, 61747 },
+ { 0x82E1, 62351 },
+ { 0x82E2, 59359 },
+ { 0x82E3, 59362 },
+ { 0x82E4, 60830 },
+ { 0x82E5, 61750 },
+ { 0x82E6, 62354 },
+ { 0x82E7, 60833 },
+ { 0x82E8, 62533 },
+ { 0x82E9, 60836 },
+ { 0x82EA, 61753 },
+ { 0x82EB, 59367 },
+ { 0x82EC, 59384 },
+ { 0x82ED, 59374 },
+ { 0x82EE, 59379 },
+ { 0x82EF, 59370 },
+ { 0x82F0, 60839 },
+ { 0x82F1, 60842 },
+ { 0x82F2, 60853 },
+ { 0x82F3, 60857 },
+ { 0x82F4, 60860 },
+ { 0x82F5, 60870 },
+ { 0x82F6, 60875 },
+ { 0x82F7, 60880 },
+ { 0x82F8, 60885 },
+ { 0x82F9, 60865 },
+ { 0x82FA, 61756 },
+ { 0x82FB, 60890 },
+ { 0x82FC, 59388 },
+ { 0x82FD, 59391 },
+ { 0x82FE, 59395 },
+ { 0x82FF, 59398 },
+ { 0x8300, 60893 },
+ { 0x8301, 60896 },
+ { 0x8302, 60915 },
+ { 0x8303, 60899 },
+ { 0x8304, 60904 },
+ { 0x8305, 59402 },
+ { 0x8306, 61759 },
+ { 0x8307, 60920 },
+ { 0x8308, 60923 },
+ { 0x8309, 60926 },
+ { 0x830A, 60929 },
+ { 0x830B, 58419 },
+ { 0x830C, 58427 },
+ { 0x830D, 58422 },
+ { 0x830E, 58441 },
+ { 0x830F, 58452 },
+ { 0x8310, 58431 },
+ { 0x8311, 59405 },
+ { 0x8312, 59408 },
+ { 0x8313, 59411 },
+ { 0x8314, 59447 },
+ { 0x8315, 59442 },
+ { 0x8316, 59437 },
+ { 0x8317, 59418 },
+ { 0x8318, 59427 },
+ { 0x8319, 59414 },
+ { 0x831A, 59451 },
+ { 0x831B, 59455 },
+ { 0x831C, 61762 },
+ { 0x831D, 59461 },
+ { 0x831E, 59481 },
+ { 0x831F, 59469 },
+ { 0x8320, 59476 },
+ { 0x8321, 59464 },
+ { 0x8322, 62357 },
+ { 0x8323, 61765 },
+ { 0x8324, 61773 },
+ { 0x8325, 61768 },
+ { 0x8326, 59486 },
+ { 0x8327, 59489 },
+ { 0x8328, 59493 },
+ { 0x8329, 59500 },
+ { 0x832A, 59496 },
+ { 0x832B, 60937 },
+ { 0x832C, 60940 },
+ { 0x832D, 60947 },
+ { 0x832E, 60954 },
+ { 0x832F, 60959 },
+ { 0x8330, 60983 },
+ { 0x8331, 60964 },
+ { 0x8332, 60976 },
+ { 0x8333, 60969 },
+ { 0x8334, 60988 },
+ { 0x8335, 60991 },
+ { 0x8336, 61778 },
+ { 0x8337, 60994 },
+ { 0x8338, 60997 },
+ { 0x8339, 61110 },
+ { 0x833A, 61049 },
+ { 0x833B, 61054 },
+ { 0x833C, 61009 },
+ { 0x833D, 61059 },
+ { 0x833E, 61094 },
+ { 0x833F, 61064 },
+ { 0x8340, 61014 },
+ { 0x8341, 61019 },
+ { 0x8342, 61069 },
+ { 0x8343, 61024 },
+ { 0x8344, 61074 },
+ { 0x8345, 61029 },
+ { 0x8346, 61079 },
+ { 0x8347, 61084 },
+ { 0x8348, 61034 },
+ { 0x8349, 61089 },
+ { 0x834A, 61100 },
+ { 0x834B, 61039 },
+ { 0x834C, 61002 },
+ { 0x834D, 61044 },
+ { 0x834E, 61105 },
+ { 0x834F, 62360 },
+ { 0x8350, 62363 },
+ { 0x8351, 61115 },
+ { 0x8352, 61118 },
+ { 0x8353, 61123 },
+ { 0x8354, 61128 },
+ { 0x8355, 61133 },
+ { 0x8356, 61784 },
+ { 0x8357, 61781 },
+ { 0x8358, 62536 },
+ { 0x8359, 62368 },
+ { 0x835A, 61138 },
+ { 0x835B, 61141 },
+ { 0x835C, 61146 },
+ { 0x835D, 59505 },
+ { 0x835E, 59508 },
+ { 0x835F, 59512 },
+ { 0x8360, 61149 },
+ { 0x8361, 61787 },
+ { 0x8362, 61152 },
+ { 0x8363, 59518 },
+ { 0x8364, 59521 },
+ { 0x8365, 61155 },
+ { 0x8366, 61158 },
+ { 0x8367, 61161 },
+ { 0x8368, 61166 },
+ { 0x8369, 61790 },
+ { 0x836A, 59526 },
+ { 0x836B, 61169 },
+ { 0x836C, 61172 },
+ { 0x836D, 62371 },
+ { 0x836E, 61177 },
+ { 0x8400, 62658 },
+ { 0x8401, 63027 },
+ { 0x8402, 62787 },
+ { 0x8403, 62723 },
+ { 0x8404, 62625 },
+ { 0x8405, 62968 },
+ { 0x8406, 62929 },
+ { 0x8407, 62875 },
+ { 0x8408, 63055 },
+ { 0x8409, 62815 },
+ { 0x840A, 62751 },
+ { 0x840B, 62636 },
+ { 0x840C, 62973 },
+ { 0x840D, 62934 },
+ { 0x840E, 62880 },
+ { 0x840F, 62782 },
+ { 0x8410, 62718 },
+ { 0x8411, 62620 },
+ { 0x8412, 62963 },
+ { 0x8413, 62924 },
+ { 0x8414, 62870 },
+ { 0x8415, 62579 },
+ { 0x8416, 62684 },
+ { 0x8417, 63060 },
+ { 0x8418, 62820 },
+ { 0x8419, 62756 },
+ { 0x841A, 62641 },
+ { 0x841B, 62978 },
+ { 0x841C, 62939 },
+ { 0x841D, 62885 },
+ { 0x841E, 62584 },
+ { 0x841F, 62689 },
+ { 0x8420, 63065 },
+ { 0x8421, 62825 },
+ { 0x8422, 62761 },
+ { 0x8423, 62694 },
+ { 0x8424, 63070 },
+ { 0x8425, 63075 },
+ { 0x8426, 62830 },
+ { 0x8427, 62766 },
+ { 0x8428, 62646 },
+ { 0x8429, 62983 },
+ { 0x842A, 62944 },
+ { 0x842B, 62890 },
+ { 0x842C, 62589 },
+ { 0x842D, 62699 },
+ { 0x842E, 63082 },
+ { 0x842F, 63087 },
+ { 0x8430, 62835 },
+ { 0x8431, 62771 },
+ { 0x8432, 63019 },
+ { 0x8433, 63011 },
+ { 0x8434, 62569 },
+ { 0x8435, 62674 },
+ { 0x8436, 63043 },
+ { 0x8437, 63048 },
+ { 0x8438, 62810 },
+ { 0x8439, 62746 },
+ { 0x843A, 63094 },
+ { 0x843B, 63101 },
+ { 0x843C, 62840 },
+ { 0x843D, 62863 },
+ { 0x843E, 62847 },
+ { 0x843F, 62855 },
+ { 0x8440, 62651 },
+ { 0x8441, 63004 },
+ { 0x8442, 62988 },
+ { 0x8443, 62996 },
+ { 0x8444, 62949 },
+ { 0x8445, 62956 },
+ { 0x8446, 62895 },
+ { 0x8447, 62910 },
+ { 0x8448, 62917 },
+ { 0x8449, 62902 },
+ { 0x844A, 62663 },
+ { 0x844B, 63032 },
+ { 0x844C, 62792 },
+ { 0x844D, 62728 },
+ { 0x844E, 62630 },
+ { 0x844F, 62564 },
+ { 0x8450, 62669 },
+ { 0x8451, 63038 },
+ { 0x8452, 62798 },
+ { 0x8453, 62803 },
+ { 0x8454, 62734 },
+ { 0x8455, 62739 },
+ { 0x8456, 63112 },
+ { 0x8457, 63108 },
+ { 0x8458, 62574 },
+ { 0x8459, 62679 },
+ { 0x845A, 62594 },
+ { 0x845B, 62704 },
+ { 0x845C, 62776 },
+ { 0x845D, 62600 },
+ { 0x845E, 62710 },
+ { 0x845F, 62608 },
+ { 0x8460, 62614 },
+ { 0x8461, 62550 },
+ { 0x8462, 62557 },
+ { 0x8470, 63116 },
+ { 0x8471, 63133 },
+ { 0x8472, 63123 },
+ { 0x8473, 63128 },
+ { 0x9000, 56261 },
+ { 0x9001, 56295 },
+ { 0x9002, 57281 },
+ { 0x9003, 56256 },
+ { 0x9004, 56251 },
+ { 0x9005, 56625 },
+ { 0x9006, 56620 },
+ { 0x9007, 56920 },
+ { 0x9008, 57186 },
+ { 0x9009, 57267 },
+ { 0x900A, 57194 },
+ { 0x900B, 57198 },
+ { 0x900C, 56937 },
+ { 0x900D, 56209 },
+ { 0x900E, 56118 },
+ { 0x900F, 56607 },
+ { 0x9010, 57136 },
+ { 0x9011, 57219 },
+ { 0x9012, 57228 },
+ { 0x9013, 56812 },
+ { 0x9014, 56282 },
+ { 0x9015, 56566 },
+ { 0x9016, 56484 },
+ { 0x9017, 56590 },
+ { 0x9018, 56847 },
+ { 0x9019, 56286 },
+ { 0x901A, 56132 },
+ { 0x901B, 56743 },
+ { 0x901C, 57158 },
+ { 0x901D, 57035 },
+ { 0x901E, 57022 },
+ { 0x901F, 56791 },
+ { 0x9020, 56575 },
+ { 0x9021, 56824 },
+ { 0x9022, 56838 },
+ { 0x9023, 56843 },
+ { 0x9024, 56512 },
+ { 0x9025, 56265 },
+ { 0x9026, 56585 },
+ { 0x9027, 56820 },
+ { 0x9028, 57295 },
+ { 0x9029, 56594 },
+ { 0x902A, 56807 },
+ { 0x902B, 56801 },
+ { 0x902C, 57172 },
+ { 0x902D, 56273 },
+ { 0x902E, 56242 },
+ { 0x902F, 56114 },
+ { 0x9030, 56147 },
+ { 0x9031, 56816 },
+ { 0x9032, 57163 },
+ { 0x9033, 56203 },
+ { 0x9034, 56400 },
+ { 0x9035, 57128 },
+ { 0x9036, 57099 },
+ { 0x9037, 56507 },
+ { 0x9038, 57026 },
+ { 0x9039, 57177 },
+ { 0x903A, 56924 },
+ { 0x903B, 56856 },
+ { 0x903C, 56783 },
+ { 0x903D, 57262 },
+ { 0x903E, 57276 },
+ { 0x903F, 56721 },
+ { 0x9040, 56137 },
+ { 0x9041, 56775 },
+ { 0x9042, 56928 },
+ { 0x9043, 57094 },
+ { 0x9044, 57303 },
+ { 0x9045, 57299 },
+ { 0x9046, 56127 },
+ { 0x9047, 56561 },
+ { 0x9048, 56246 },
+ { 0x9049, 56779 },
+ { 0x904A, 56933 },
+ { 0x904B, 57335 },
+ { 0x904C, 57327 },
+ { 0x904D, 57030 },
+ { 0x904E, 57140 },
+ { 0x904F, 56725 },
+ { 0x9050, 56663 },
+ { 0x9051, 57223 },
+ { 0x9052, 57213 },
+ { 0x9053, 56829 },
+ { 0x9054, 57331 },
+ { 0x9055, 56710 },
+ { 0x9056, 56702 },
+ { 0x9057, 56556 },
+ { 0x9058, 56615 },
+ { 0x9059, 56580 },
+ { 0x905A, 57181 },
+ { 0x905B, 56571 },
+ { 0x905C, 57203 },
+ { 0x905D, 56771 },
+ { 0x905E, 57271 },
+ { 0x905F, 57257 },
+ { 0x9060, 56337 },
+ { 0x9061, 56767 },
+ { 0x9062, 57323 },
+ { 0x9063, 57089 },
+ { 0x9064, 57233 },
+ { 0x9065, 56796 },
+ { 0x9066, 56269 },
+ { 0x9067, 56851 },
+ { 0x9068, 56912 },
+ { 0x9069, 56598 },
+ { 0x906A, 56290 },
+ { 0x906B, 57347 },
+ { 0x906C, 57339 },
+ { 0x906D, 57315 },
+ { 0x906E, 57351 },
+ { 0x906F, 57355 },
+ { 0x9070, 57319 },
+ { 0x9071, 57343 },
+ { 0x9072, 57311 },
+ { 0x9073, 57307 },
+ { 0x9074, 56342 },
+ { 0x9075, 57167 },
+ { 0x9076, 57285 },
+ { 0x9077, 57290 },
+ { 0x9078, 56277 },
+ { 0x9079, 56141 },
+ { 0x907A, 57132 },
+ { 0x907B, 57109 },
+ { 0x907C, 56156 },
+ { 0x907D, 56151 },
+ { 0x907E, 56787 },
+ { 0x907F, 56516 },
+ { 0x9080, 56237 },
+ { 0x9081, 56762 },
+ { 0x9082, 56757 },
+ { 0x9083, 56752 },
+ { 0x9084, 56833 },
+ { 0x9085, 56123 },
+ { 0x9086, 56233 },
+ { 0x9087, 56611 },
+ { 0x9088, 57085 },
+ { 0x9089, 56748 },
+ { 0x908A, 56532 },
+ { 0x908B, 56526 },
+ { 0x908C, 56538 },
+ { 0x908D, 56550 },
+ { 0x908E, 56544 },
+ { 0x908F, 56472 },
+ { 0x9090, 56495 },
+ { 0x9091, 56489 },
+ { 0x9092, 56883 },
+ { 0x9093, 56900 },
+ { 0x9094, 56893 },
+ { 0x9095, 56887 },
+ { 0x9096, 57190 },
+ { 0x9097, 56214 },
+ { 0x9098, 57249 },
+ { 0x9099, 56706 },
+ { 0x909A, 56171 },
+ { 0x909B, 56193 },
+ { 0x909C, 56161 },
+ { 0x909D, 56188 },
+ { 0x909E, 56166 },
+ { 0x909F, 56183 },
+ { 0x90A0, 56198 },
+ { 0x90A1, 56177 },
+ { 0x90A2, 56961 },
+ { 0x90A3, 56941 },
+ { 0x90A4, 56992 },
+ { 0x90A5, 56948 },
+ { 0x90A6, 56967 },
+ { 0x90A7, 57011 },
+ { 0x90A8, 56998 },
+ { 0x90A9, 57004 },
+ { 0x90AA, 56973 },
+ { 0x90AB, 56979 },
+ { 0x90AC, 56501 },
+ { 0x90AD, 57207 },
+ { 0x90AE, 57123 },
+ { 0x90AF, 57118 },
+ { 0x90B0, 57113 },
+ { 0x90B1, 56955 },
+ { 0x90B2, 57016 },
+ { 0x90B3, 56985 },
+ { 0x90B4, 57237 },
+ { 0x90B5, 57243 },
+ { 0x90B6, 56714 },
+ { 0x90B7, 56916 },
+ { 0x90B8, 57253 },
+ { 0x90B9, 56405 },
+ { 0x90BA, 56438 },
+ { 0x90BB, 56450 },
+ { 0x90BC, 56361 },
+ { 0x90BD, 56412 },
+ { 0x90BE, 56393 },
+ { 0x90BF, 56418 },
+ { 0x90C0, 56444 },
+ { 0x90C1, 56431 },
+ { 0x90C2, 56424 },
+ { 0x90C3, 56372 },
+ { 0x90C4, 56379 },
+ { 0x90C5, 56347 },
+ { 0x90C6, 56386 },
+ { 0x90C7, 56367 },
+ { 0x90C8, 56218 },
+ { 0x90C9, 56223 },
+ { 0x90CA, 56228 },
+ { 0x90CB, 56354 },
+ { 0x90CC, 56456 },
+ { 0x90CD, 56658 },
+ { 0x90CE, 56327 },
+ { 0x90CF, 56332 },
+ { 0x90D0, 56299 },
+ { 0x90D1, 56320 },
+ { 0x90D2, 56306 },
+ { 0x90D3, 56313 },
+ { 0x90D4, 56630 },
+ { 0x90D5, 56651 },
+ { 0x90D6, 56637 },
+ { 0x90D7, 56644 },
+ { 0x90D8, 56462 },
+ { 0x90D9, 56467 },
+ { 0x90DA, 56861 },
+ { 0x90DB, 56867 },
+ { 0x90DC, 56873 },
+ { 0x90DD, 56878 },
+ { 0x90DE, 57062 },
+ { 0x90DF, 57067 },
+ { 0x90E0, 57073 },
+ { 0x90E1, 57079 },
+ { 0x90E2, 57039 },
+ { 0x90E3, 57044 },
+ { 0x90E4, 57050 },
+ { 0x90E5, 57056 },
+ { 0x90E6, 56907 },
+ { 0x90E7, 57104 },
+ { 0x90E8, 56603 },
+ { 0x90E9, 56687 },
+ { 0x90EA, 56697 },
+ { 0x90EB, 56672 },
+ { 0x90EC, 56667 },
+ { 0x90ED, 56677 },
+ { 0x90EE, 56692 },
+ { 0x90EF, 56682 },
+ { 0x90F0, 57152 },
+ { 0x90F1, 56737 },
+ { 0x90F2, 57146 },
+ { 0x90F3, 56731 },
+ { 0x90F4, 56521 },
+ { 0x90F5, 56478 },
+ { 0x9100, 41562 },
+ { 0x9101, 41524 },
+ { 0x9102, 41404 },
+ { 0x9103, 41695 },
+ { 0x9104, 41508 },
+ { 0x9105, 41470 },
+ { 0x9106, 41337 },
+ { 0x9107, 41454 },
+ { 0x9108, 41558 },
+ { 0x9109, 41249 },
+ { 0x910A, 41238 },
+ { 0x910B, 41459 },
+ { 0x910C, 41290 },
+ { 0x910D, 41776 },
+ { 0x910E, 41780 },
+ { 0x910F, 41784 },
+ { 0x9110, 41659 },
+ { 0x9111, 41662 },
+ { 0x9112, 41485 },
+ { 0x9113, 41646 },
+ { 0x9114, 41395 },
+ { 0x9115, 41643 },
+ { 0x9116, 41728 },
+ { 0x9117, 41861 },
+ { 0x9118, 42079 },
+ { 0x9119, 41999 },
+ { 0x911A, 41995 },
+ { 0x911B, 41788 },
+ { 0x911C, 42075 },
+ { 0x911D, 42086 },
+ { 0x911E, 41215 },
+ { 0x911F, 41219 },
+ { 0x9120, 41225 },
+ { 0x9121, 41195 },
+ { 0x9122, 41199 },
+ { 0x9123, 41203 },
+ { 0x9124, 41209 },
+ { 0x9125, 41300 },
+ { 0x9126, 41304 },
+ { 0x9129, 41719 },
+ { 0x912A, 41520 },
+ { 0x912B, 41516 },
+ { 0x912C, 41308 },
+ { 0x912D, 41312 },
+ { 0x912E, 41666 },
+ { 0x912F, 41670 },
+ { 0x9130, 41462 },
+ { 0x9131, 41466 },
+ { 0x9132, 41690 },
+ { 0x9133, 41685 },
+ { 0x9134, 41504 },
+ { 0x9135, 41245 },
+ { 0x9136, 41550 },
+ { 0x9137, 41554 },
+ { 0x9138, 42103 },
+ { 0x9139, 42107 },
+ { 0x913A, 41438 },
+ { 0x913B, 41481 },
+ { 0x913C, 41328 },
+ { 0x913D, 41681 },
+ { 0x913E, 41532 },
+ { 0x913F, 42039 },
+ { 0x9140, 42123 },
+ { 0x9141, 42115 },
+ { 0x9142, 41280 },
+ { 0x9143, 41231 },
+ { 0x9144, 41356 },
+ { 0x9145, 41496 },
+ { 0x9146, 41575 },
+ { 0x9147, 41570 },
+ { 0x9148, 41819 },
+ { 0x9149, 41799 },
+ { 0x914A, 41843 },
+ { 0x914B, 41837 },
+ { 0x914C, 41855 },
+ { 0x914D, 41849 },
+ { 0x914E, 41831 },
+ { 0x914F, 41825 },
+ { 0x9150, 41812 },
+ { 0x9151, 41805 },
+ { 0x9152, 41347 },
+ { 0x9153, 41342 },
+ { 0x9154, 42133 },
+ { 0x9155, 42127 },
+ { 0x9156, 42096 },
+ { 0x9157, 41371 },
+ { 0x9158, 41724 },
+ { 0x9159, 41352 },
+ { 0x915A, 41654 },
+ { 0x915B, 41649 },
+ { 0x915C, 41398 },
+ { 0x915D, 41477 },
+ { 0x915E, 41324 },
+ { 0x915F, 41677 },
+ { 0x9160, 41528 },
+ { 0x9161, 42035 },
+ { 0x9162, 42119 },
+ { 0x9163, 42111 },
+ { 0x9164, 41274 },
+ { 0x9165, 41896 },
+ { 0x9166, 41975 },
+ { 0x9167, 41958 },
+ { 0x9168, 41962 },
+ { 0x9169, 41966 },
+ { 0x916A, 41703 },
+ { 0x916B, 41707 },
+ { 0x916C, 41711 },
+ { 0x916D, 41970 },
+ { 0x916E, 41917 },
+ { 0x916F, 41921 },
+ { 0x9170, 41925 },
+ { 0x9171, 41929 },
+ { 0x9172, 41933 },
+ { 0x9173, 41383 },
+ { 0x9174, 41262 },
+ { 0x9175, 41379 },
+ { 0x9176, 41258 },
+ { 0x9177, 41387 },
+ { 0x9178, 41266 },
+ { 0x9179, 41391 },
+ { 0x917A, 41270 },
+ { 0x917B, 41908 },
+ { 0x917C, 41954 },
+ { 0x917D, 41937 },
+ { 0x917E, 41980 },
+ { 0x917F, 41946 },
+ { 0x9180, 41988 },
+ { 0x9181, 41984 },
+ { 0x9182, 41900 },
+ { 0x9183, 42043 },
+ { 0x9184, 42047 },
+ { 0x9185, 41878 },
+ { 0x9186, 41870 },
+ { 0x9187, 41887 },
+ { 0x9188, 41904 },
+ { 0x9189, 41874 },
+ { 0x918A, 41912 },
+ { 0x918B, 41941 },
+ { 0x918C, 42100 },
+ { 0x918D, 41580 },
+ { 0x918E, 41235 },
+ { 0x918F, 41451 },
+ { 0x9190, 41435 },
+ { 0x9191, 41408 },
+ { 0x9192, 41992 },
+ { 0x9193, 42083 },
+ { 0x9194, 41417 },
+ { 0x9195, 41411 },
+ { 0x9196, 41242 },
+ { 0x9197, 41360 },
+ { 0x9198, 41715 },
+ { 0x9199, 41367 },
+ { 0x919A, 41363 },
+ { 0x919B, 41732 },
+ { 0x919C, 41736 },
+ { 0x919D, 41740 },
+ { 0x919E, 41744 },
+ { 0x919F, 41748 },
+ { 0x91A0, 41752 },
+ { 0x91A1, 41756 },
+ { 0x91A2, 41760 },
+ { 0x91A3, 41764 },
+ { 0x91A4, 41768 },
+ { 0x91A5, 41772 },
+ { 0x91A6, 42090 },
+ { 0x91A7, 42093 },
+ { 0x91A8, 41253 },
+ { 0x91A9, 41512 },
+ { 0x91AA, 41882 },
+ { 0x91AB, 41865 },
+ { 0x91AC, 41950 },
+ { 0x91AD, 41891 },
+ { 0x91AE, 41447 },
+ { 0x91AF, 41442 },
+ { 0x91B0, 41332 },
+ { 0x91B1, 42003 },
+ { 0x91B2, 42007 },
+ { 0x91B3, 41375 },
+ { 0x91B4, 41293 },
+ { 0x91B5, 41296 },
+ { 0x91B6, 41536 },
+ { 0x91B7, 41422 },
+ { 0x91B8, 41489 },
+ { 0x91B9, 42059 },
+ { 0x91BA, 42055 },
+ { 0x91BB, 41539 },
+ { 0x91BC, 41546 },
+ { 0x91BD, 42071 },
+ { 0x91BE, 42067 },
+ { 0x91BF, 41320 },
+ { 0x91C0, 41316 },
+ { 0x91C1, 41425 },
+ { 0x91C2, 41430 },
+ { 0x91C3, 41492 },
+ { 0x91C4, 42051 },
+ { 0x91C5, 41542 },
+ { 0x91C6, 42063 },
+ { 0x91C7, 41583 },
+ { 0x91C8, 41598 },
+ { 0x91C9, 41590 },
+ { 0x91CA, 41605 },
+ { 0x91CB, 41612 },
+ { 0x91CC, 41619 },
+ { 0x91CD, 41627 },
+ { 0x91CE, 41635 },
+ { 0x91CF, 41401 },
+ { 0x91D0, 42011 },
+ { 0x91D1, 42016 },
+ { 0x91D2, 41566 },
+ { 0x91D3, 41474 },
+ { 0x91D4, 41674 },
+ { 0x91D5, 41501 },
+ { 0x91D6, 42028 },
+ { 0x91D7, 41700 },
+ { 0x91D8, 41792 },
+ { 0x91D9, 42021 },
+ { 0x91DA, 42024 },
+ { 0x91DB, 42031 },
+ { 0x91DC, 41795 },
+ { 0x91DD, 41286 },
+ { 0x9200, 11902 },
+ { 0x9201, 11906 },
+ { 0x9202, 11910 },
+ { 0x9203, 11914 },
+ { 0x9204, 11918 },
+ { 0x9205, 11922 },
+ { 0x9206, 11926 },
+ { 0x9207, 11930 },
+ { 0x9208, 11934 },
+ { 0x9209, 11938 },
+ { 0x920A, 11942 },
+ { 0x920B, 11946 },
+ { 0x920C, 11950 },
+ { 0x920D, 11954 },
+ { 0x920E, 11958 },
+ { 0x920F, 11962 },
+ { 0x9210, 11966 },
+ { 0x9211, 11970 },
+ { 0x9212, 11974 },
+ { 0x9213, 11978 },
+ { 0x9214, 11982 },
+ { 0x9215, 11986 },
+ { 0x9216, 11990 },
+ { 0x9217, 11994 },
+ { 0x9218, 11998 },
+ { 0x9219, 12002 },
+ { 0x921A, 12006 },
+ { 0x921B, 12010 },
+ { 0x921C, 12014 },
+ { 0x921D, 13374 },
+ { 0x921E, 13378 },
+ { 0x921F, 13382 },
+ { 0x9220, 13386 },
+ { 0x9221, 13390 },
+ { 0x9222, 13394 },
+ { 0x9223, 13398 },
+ { 0x9224, 13402 },
+ { 0x9225, 13406 },
+ { 0x9226, 13410 },
+ { 0x9227, 13414 },
+ { 0x9228, 13418 },
+ { 0x9229, 13422 },
+ { 0x922A, 13426 },
+ { 0x922B, 13430 },
+ { 0x922C, 13434 },
+ { 0x922D, 13438 },
+ { 0x922E, 13442 },
+ { 0x922F, 13446 },
+ { 0x9230, 13450 },
+ { 0x9231, 13454 },
+ { 0x9232, 13458 },
+ { 0x9233, 13462 },
+ { 0x9234, 13466 },
+ { 0x9235, 13470 },
+ { 0x9236, 13474 },
+ { 0x9237, 13478 },
+ { 0x9238, 13482 },
+ { 0x9239, 13486 },
+ { 0x923A, 13490 },
+ { 0x923B, 13494 },
+ { 0x923C, 13498 },
+ { 0x923D, 13502 },
+ { 0x923E, 13506 },
+ { 0x923F, 13510 },
+ { 0x9240, 13514 },
+ { 0x9241, 13518 },
+ { 0x9242, 57564 },
+ { 0x9243, 57572 },
+ { 0x9244, 57568 },
+ { 0x9245, 13031 },
+ { 0x9300, 54871 },
+ { 0x9301, 31216 },
+ { 0x9302, 31188 },
+ { 0x9303, 31204 },
+ { 0x9304, 31200 },
+ { 0x9305, 31185 },
+ { 0x9306, 66100 },
+ { 0x9307, 66067 },
+ { 0x9308, 66082 },
+ { 0x9309, 66128 },
+ { 0x930A, 66147 },
+ { 0x930B, 66272 },
+ { 0x930C, 66097 },
+ { 0x930D, 66263 },
+ { 0x930E, 66201 },
+ { 0x930F, 66299 },
+ { 0x9310, 66254 },
+ { 0x9311, 66296 },
+ { 0x9312, 66184 },
+ { 0x9313, 66281 },
+ { 0x9314, 66085 },
+ { 0x9315, 66134 },
+ { 0x9316, 66143 },
+ { 0x9317, 66172 },
+ { 0x9318, 66220 },
+ { 0x9319, 66125 },
+ { 0x931A, 66166 },
+ { 0x931B, 66266 },
+ { 0x931C, 66064 },
+ { 0x931D, 66052 },
+ { 0x931E, 66251 },
+ { 0x931F, 66217 },
+ { 0x9320, 66110 },
+ { 0x9321, 66103 },
+ { 0x9322, 66287 },
+ { 0x9323, 66060 },
+ { 0x9324, 66160 },
+ { 0x9325, 66116 },
+ { 0x9326, 66205 },
+ { 0x9327, 66151 },
+ { 0x9328, 66226 },
+ { 0x9329, 66193 },
+ { 0x932A, 66119 },
+ { 0x932B, 66178 },
+ { 0x932C, 66239 },
+ { 0x932D, 66055 },
+ { 0x932E, 66187 },
+ { 0x932F, 66074 },
+ { 0x9330, 66257 },
+ { 0x9331, 66088 },
+ { 0x9332, 66233 },
+ { 0x9333, 66275 },
+ { 0x9334, 66163 },
+ { 0x9335, 66122 },
+ { 0x9336, 66113 },
+ { 0x9337, 66196 },
+ { 0x9338, 66208 },
+ { 0x9339, 66157 },
+ { 0x933A, 66175 },
+ { 0x933B, 66091 },
+ { 0x933C, 66293 },
+ { 0x933D, 66106 },
+ { 0x933E, 66278 },
+ { 0x933F, 66229 },
+ { 0x9340, 66154 },
+ { 0x9341, 66284 },
+ { 0x9342, 66304 },
+ { 0x9343, 66071 },
+ { 0x9344, 66094 },
+ { 0x9345, 66169 },
+ { 0x9346, 66079 },
+ { 0x9347, 66214 },
+ { 0x9348, 66211 },
+ { 0x9349, 66137 },
+ { 0x934A, 66260 },
+ { 0x934B, 66242 },
+ { 0x934C, 66190 },
+ { 0x934D, 66181 },
+ { 0x934E, 66245 },
+ { 0x934F, 66131 },
+ { 0x9350, 66140 },
+ { 0x9351, 66269 },
+ { 0x9352, 66248 },
+ { 0x9353, 66047 },
+ { 0x9354, 66290 },
+ { 0x9355, 66236 },
+ { 0x9356, 66223 },
+ { 0x9360, 48474 },
+ { 0x9361, 48484 },
+ { 0x9362, 48514 },
+ { 0x9363, 48494 },
+ { 0x9364, 48489 },
+ { 0x9365, 48479 },
+ { 0x9366, 48509 },
+ { 0x9367, 48504 },
+ { 0x9368, 48499 },
+ { 0x9369, 48429 },
+ { 0x936A, 48439 },
+ { 0x936B, 48469 },
+ { 0x936C, 48449 },
+ { 0x936D, 48444 },
+ { 0x936E, 48434 },
+ { 0x936F, 48464 },
+ { 0x9370, 48459 },
+ { 0x9371, 48454 },
+ { 0x9400, 70678 },
+ { 0x9401, 70682 },
+ { 0x9402, 70686 },
+ { 0x9403, 70690 },
+ { 0x9404, 70694 },
+ { 0x9405, 70698 },
+ { 0x9406, 70702 },
+ { 0x9407, 70706 },
+ { 0x9408, 70710 },
+ { 0x9409, 70714 },
+ { 0x940A, 70718 },
+ { 0x940B, 70722 },
+ { 0x940C, 70726 },
+ { 0x940D, 70730 },
+ { 0x940E, 70734 },
+ { 0x940F, 70738 },
+ { 0x9410, 70742 },
+ { 0x9411, 70746 },
+ { 0x9412, 70750 },
+ { 0x9413, 70754 },
+ { 0x9414, 70758 },
+ { 0x9415, 70762 },
+ { 0x9416, 70766 },
+ { 0x9417, 70770 },
+ { 0x9418, 70774 },
+ { 0x9419, 70778 },
+ { 0x941A, 69654 },
+ { 0x941B, 69658 },
+ { 0x941C, 69662 },
+ { 0x941D, 69666 },
+ { 0x941E, 69670 },
+ { 0x941F, 69674 },
+ { 0x9420, 69678 },
+ { 0x9421, 69682 },
+ { 0x9422, 69686 },
+ { 0x9423, 69690 },
+ { 0x9424, 69694 },
+ { 0x9425, 69698 },
+ { 0x9426, 69702 },
+ { 0x9427, 69706 },
+ { 0x9428, 69710 },
+ { 0x9429, 69714 },
+ { 0x942A, 69718 },
+ { 0x942B, 69722 },
+ { 0x942C, 69726 },
+ { 0x942D, 69730 },
+ { 0x942E, 69734 },
+ { 0x942F, 69738 },
+ { 0x9430, 69742 },
+ { 0x9431, 69746 },
+ { 0x9432, 69750 },
+ { 0x9433, 69754 },
+ { 0x9434, 71437 },
+ { 0x9435, 71441 },
+ { 0x9436, 71445 },
+ { 0x9437, 71449 },
+ { 0x9438, 71453 },
+ { 0x9439, 71457 },
+ { 0x943A, 71461 },
+ { 0x943B, 71465 },
+ { 0x943C, 71469 },
+ { 0x943D, 71473 },
+ { 0x943E, 71477 },
+ { 0x943F, 71481 },
+ { 0x9440, 71485 },
+ { 0x9441, 71489 },
+ { 0x9442, 71493 },
+ { 0x9443, 71497 },
+ { 0x9444, 71501 },
+ { 0x9445, 71505 },
+ { 0x9446, 71509 },
+ { 0x9447, 71513 },
+ { 0x9448, 71517 },
+ { 0x9449, 71521 },
+ { 0x944A, 71525 },
+ { 0x944B, 71529 },
+ { 0x944C, 71533 },
+ { 0x944D, 71537 },
+ { 0x944E, 71222 },
+ { 0x944F, 71226 },
+ { 0x9450, 71230 },
+ { 0x9451, 71234 },
+ { 0x9452, 71238 },
+ { 0x9453, 71242 },
+ { 0x9454, 71246 },
+ { 0x9456, 71250 },
+ { 0x9457, 71254 },
+ { 0x9458, 71258 },
+ { 0x9459, 71262 },
+ { 0x945A, 71266 },
+ { 0x945B, 71270 },
+ { 0x945C, 71274 },
+ { 0x945D, 71278 },
+ { 0x945E, 71282 },
+ { 0x945F, 71286 },
+ { 0x9460, 71290 },
+ { 0x9461, 71294 },
+ { 0x9462, 71298 },
+ { 0x9463, 71302 },
+ { 0x9464, 71306 },
+ { 0x9465, 71310 },
+ { 0x9466, 71314 },
+ { 0x9467, 71318 },
+ { 0x9468, 70152 },
+ { 0x9469, 70157 },
+ { 0x946A, 70162 },
+ { 0x946B, 70167 },
+ { 0x946C, 70172 },
+ { 0x946D, 70177 },
+ { 0x946E, 70182 },
+ { 0x946F, 70187 },
+ { 0x9470, 70192 },
+ { 0x9471, 70197 },
+ { 0x9472, 70202 },
+ { 0x9473, 70207 },
+ { 0x9474, 70212 },
+ { 0x9475, 70217 },
+ { 0x9476, 70222 },
+ { 0x9477, 70227 },
+ { 0x9478, 70232 },
+ { 0x9479, 70237 },
+ { 0x947A, 70242 },
+ { 0x947B, 70247 },
+ { 0x947C, 70252 },
+ { 0x947D, 70257 },
+ { 0x947E, 70262 },
+ { 0x947F, 70267 },
+ { 0x9480, 70272 },
+ { 0x9481, 70277 },
+ { 0x9482, 69891 },
+ { 0x9483, 69896 },
+ { 0x9484, 69901 },
+ { 0x9485, 69906 },
+ { 0x9486, 69911 },
+ { 0x9487, 69916 },
+ { 0x9488, 69921 },
+ { 0x9489, 69926 },
+ { 0x948A, 69931 },
+ { 0x948B, 69936 },
+ { 0x948C, 69941 },
+ { 0x948D, 69946 },
+ { 0x948E, 69951 },
+ { 0x948F, 69956 },
+ { 0x9490, 69961 },
+ { 0x9491, 69966 },
+ { 0x9492, 69971 },
+ { 0x9493, 69976 },
+ { 0x9494, 69981 },
+ { 0x9495, 69986 },
+ { 0x9496, 69991 },
+ { 0x9497, 69996 },
+ { 0x9498, 70001 },
+ { 0x9499, 70006 },
+ { 0x949A, 70011 },
+ { 0x949B, 70016 },
+ { 0x949C, 71742 },
+ { 0x949E, 71746 },
+ { 0x949F, 71750 },
+ { 0x94A2, 71754 },
+ { 0x94A5, 71758 },
+ { 0x94A6, 71762 },
+ { 0x94A9, 71766 },
+ { 0x94AA, 71770 },
+ { 0x94AB, 71774 },
+ { 0x94AC, 71778 },
+ { 0x94AE, 71782 },
+ { 0x94AF, 71786 },
+ { 0x94B0, 71790 },
+ { 0x94B1, 71794 },
+ { 0x94B2, 71798 },
+ { 0x94B3, 71802 },
+ { 0x94B4, 71806 },
+ { 0x94B5, 71810 },
+ { 0x94B6, 71650 },
+ { 0x94B7, 71654 },
+ { 0x94B8, 71658 },
+ { 0x94B9, 71662 },
+ { 0x94BB, 71666 },
+ { 0x94BD, 71670 },
+ { 0x94BE, 71674 },
+ { 0x94BF, 71678 },
+ { 0x94C0, 71682 },
+ { 0x94C1, 71686 },
+ { 0x94C2, 71690 },
+ { 0x94C3, 71694 },
+ { 0x94C5, 71698 },
+ { 0x94C6, 71702 },
+ { 0x94C7, 71706 },
+ { 0x94C8, 71710 },
+ { 0x94C9, 71714 },
+ { 0x94CA, 71718 },
+ { 0x94CB, 71722 },
+ { 0x94CC, 71726 },
+ { 0x94CD, 71730 },
+ { 0x94CE, 71734 },
+ { 0x94CF, 71738 },
+ { 0x94D0, 70548 },
+ { 0x94D1, 70553 },
+ { 0x94D2, 70558 },
+ { 0x94D3, 70563 },
+ { 0x94D4, 70568 },
+ { 0x94D5, 70573 },
+ { 0x94D6, 70578 },
+ { 0x94D7, 70583 },
+ { 0x94D8, 70588 },
+ { 0x94D9, 70593 },
+ { 0x94DA, 70598 },
+ { 0x94DB, 70603 },
+ { 0x94DC, 70608 },
+ { 0x94DD, 70613 },
+ { 0x94DE, 70618 },
+ { 0x94DF, 70623 },
+ { 0x94E0, 70628 },
+ { 0x94E1, 70633 },
+ { 0x94E2, 70638 },
+ { 0x94E3, 70643 },
+ { 0x94E4, 70648 },
+ { 0x94E5, 70653 },
+ { 0x94E6, 70658 },
+ { 0x94E7, 70663 },
+ { 0x94E8, 70668 },
+ { 0x94E9, 70673 },
+ { 0x94EA, 70418 },
+ { 0x94EB, 70423 },
+ { 0x94EC, 70428 },
+ { 0x94ED, 70433 },
+ { 0x94EE, 70438 },
+ { 0x94EF, 70443 },
+ { 0x94F0, 70448 },
+ { 0x94F1, 70453 },
+ { 0x94F2, 70458 },
+ { 0x94F3, 70463 },
+ { 0x94F4, 70468 },
+ { 0x94F5, 70473 },
+ { 0x94F6, 70478 },
+ { 0x94F7, 70483 },
+ { 0x94F8, 70488 },
+ { 0x94F9, 70493 },
+ { 0x94FA, 70498 },
+ { 0x94FB, 70503 },
+ { 0x94FC, 70508 },
+ { 0x94FD, 70513 },
+ { 0x94FE, 70518 },
+ { 0x94FF, 70523 },
+ { 0x9500, 70528 },
+ { 0x9501, 70533 },
+ { 0x9502, 70538 },
+ { 0x9503, 70543 },
+ { 0x9504, 71918 },
+ { 0x9505, 71922 },
+ { 0x9507, 71926 },
+ { 0x9508, 71930 },
+ { 0x9509, 71934 },
+ { 0x950A, 71938 },
+ { 0x950D, 71942 },
+ { 0x950E, 71946 },
+ { 0x950F, 71950 },
+ { 0x9510, 71954 },
+ { 0x9511, 71958 },
+ { 0x9512, 71962 },
+ { 0x9513, 71966 },
+ { 0x9514, 71970 },
+ { 0x9516, 71974 },
+ { 0x9517, 71978 },
+ { 0x9518, 71982 },
+ { 0x9519, 71986 },
+ { 0x951A, 71990 },
+ { 0x951B, 71994 },
+ { 0x951C, 71998 },
+ { 0x951E, 71814 },
+ { 0x951F, 71818 },
+ { 0x9520, 71822 },
+ { 0x9521, 71826 },
+ { 0x9522, 71830 },
+ { 0x9523, 71834 },
+ { 0x9524, 71838 },
+ { 0x9525, 71842 },
+ { 0x9526, 71846 },
+ { 0x9527, 71850 },
+ { 0x9528, 71854 },
+ { 0x9529, 71858 },
+ { 0x952A, 71862 },
+ { 0x952B, 71866 },
+ { 0x952C, 71870 },
+ { 0x952D, 71874 },
+ { 0x952E, 71878 },
+ { 0x952F, 71882 },
+ { 0x9530, 71886 },
+ { 0x9531, 71890 },
+ { 0x9532, 71894 },
+ { 0x9533, 71898 },
+ { 0x9534, 71902 },
+ { 0x9535, 71906 },
+ { 0x9536, 71910 },
+ { 0x9537, 71914 },
+ { 0x9538, 74164 },
+ { 0x9539, 74168 },
+ { 0x953B, 74172 },
+ { 0x953C, 74176 },
+ { 0x953D, 74180 },
+ { 0x953E, 74184 },
+ { 0x9540, 74188 },
+ { 0x9541, 74192 },
+ { 0x9542, 74196 },
+ { 0x9543, 74200 },
+ { 0x9544, 74204 },
+ { 0x9546, 74208 },
+ { 0x954A, 74212 },
+ { 0x954B, 74216 },
+ { 0x954C, 74220 },
+ { 0x954D, 74224 },
+ { 0x954E, 74228 },
+ { 0x954F, 74232 },
+ { 0x9550, 74236 },
+ { 0x9552, 74060 },
+ { 0x9553, 74064 },
+ { 0x9554, 74068 },
+ { 0x9555, 74072 },
+ { 0x9556, 74076 },
+ { 0x9557, 74080 },
+ { 0x9558, 74084 },
+ { 0x9559, 74088 },
+ { 0x955A, 74092 },
+ { 0x955B, 74096 },
+ { 0x955C, 74100 },
+ { 0x955D, 74104 },
+ { 0x955E, 74108 },
+ { 0x955F, 74112 },
+ { 0x9560, 74116 },
+ { 0x9561, 74120 },
+ { 0x9562, 74124 },
+ { 0x9563, 74128 },
+ { 0x9564, 74132 },
+ { 0x9565, 74136 },
+ { 0x9566, 74140 },
+ { 0x9567, 74144 },
+ { 0x9568, 74148 },
+ { 0x9569, 74152 },
+ { 0x956A, 74156 },
+ { 0x956B, 74160 },
+ { 0x956C, 71021 },
+ { 0x956D, 71026 },
+ { 0x956E, 71031 },
+ { 0x956F, 71036 },
+ { 0x9570, 71041 },
+ { 0x9571, 71046 },
+ { 0x9572, 71051 },
+ { 0x9573, 71056 },
+ { 0x9574, 71061 },
+ { 0x9575, 71066 },
+ { 0x9576, 71071 },
+ { 0x9577, 71076 },
+ { 0x9578, 71081 },
+ { 0x9579, 71086 },
+ { 0x957A, 71091 },
+ { 0x957B, 71096 },
+ { 0x957C, 71101 },
+ { 0x957D, 71106 },
+ { 0x957E, 71111 },
+ { 0x957F, 71116 },
+ { 0x9580, 71121 },
+ { 0x9581, 71126 },
+ { 0x9582, 71131 },
+ { 0x9583, 71136 },
+ { 0x9584, 71141 },
+ { 0x9585, 71146 },
+ { 0x9586, 70891 },
+ { 0x9587, 70896 },
+ { 0x9588, 70901 },
+ { 0x9589, 70906 },
+ { 0x958A, 70911 },
+ { 0x958B, 70916 },
+ { 0x958C, 70921 },
+ { 0x958D, 70926 },
+ { 0x958E, 70931 },
+ { 0x958F, 70936 },
+ { 0x9590, 70941 },
+ { 0x9591, 70946 },
+ { 0x9592, 70951 },
+ { 0x9593, 70956 },
+ { 0x9594, 70961 },
+ { 0x9595, 70966 },
+ { 0x9596, 70971 },
+ { 0x9597, 70976 },
+ { 0x9598, 70981 },
+ { 0x9599, 70986 },
+ { 0x959A, 70991 },
+ { 0x959B, 70996 },
+ { 0x959C, 71001 },
+ { 0x959D, 71006 },
+ { 0x959E, 71011 },
+ { 0x959F, 71016 },
+ { 0x95A0, 73916 },
+ { 0x95A1, 73920 },
+ { 0x95A2, 73924 },
+ { 0x95A3, 73928 },
+ { 0x95A4, 73932 },
+ { 0x95A5, 73936 },
+ { 0x95A6, 73940 },
+ { 0x95A7, 73944 },
+ { 0x95A8, 73948 },
+ { 0x95A9, 73952 },
+ { 0x95AA, 73956 },
+ { 0x95AB, 73960 },
+ { 0x95AC, 73964 },
+ { 0x95AD, 73968 },
+ { 0x95AE, 73972 },
+ { 0x95AF, 73976 },
+ { 0x95B0, 73980 },
+ { 0x95B1, 73984 },
+ { 0x95B2, 73988 },
+ { 0x95B3, 73992 },
+ { 0x95B4, 73996 },
+ { 0x95B5, 74000 },
+ { 0x95B6, 74004 },
+ { 0x95B7, 74008 },
+ { 0x95B8, 74012 },
+ { 0x95B9, 74016 },
+ { 0x95BA, 73552 },
+ { 0x95BB, 73556 },
+ { 0x95BC, 73560 },
+ { 0x95BD, 73564 },
+ { 0x95BE, 73568 },
+ { 0x95BF, 73572 },
+ { 0x95C0, 73576 },
+ { 0x95C1, 73580 },
+ { 0x95C2, 73584 },
+ { 0x95C3, 73588 },
+ { 0x95C4, 73592 },
+ { 0x95C5, 73596 },
+ { 0x95C6, 73600 },
+ { 0x95C7, 73604 },
+ { 0x95C8, 73608 },
+ { 0x95C9, 73612 },
+ { 0x95CA, 73616 },
+ { 0x95CB, 73620 },
+ { 0x95CC, 73624 },
+ { 0x95CD, 73628 },
+ { 0x95CE, 73632 },
+ { 0x95CF, 73636 },
+ { 0x95D0, 73640 },
+ { 0x95D1, 73644 },
+ { 0x95D2, 73648 },
+ { 0x95D3, 73652 },
+ { 0x95D4, 73246 },
+ { 0x95D5, 73251 },
+ { 0x95D6, 73256 },
+ { 0x95D7, 73261 },
+ { 0x95D8, 73266 },
+ { 0x95D9, 73271 },
+ { 0x95DA, 73276 },
+ { 0x95DB, 73281 },
+ { 0x95DC, 73286 },
+ { 0x95DD, 73291 },
+ { 0x95DE, 73296 },
+ { 0x95DF, 73301 },
+ { 0x95E0, 73306 },
+ { 0x95E1, 73311 },
+ { 0x95E2, 73316 },
+ { 0x95E3, 73321 },
+ { 0x95E4, 73326 },
+ { 0x95E5, 73331 },
+ { 0x95E6, 73336 },
+ { 0x95E7, 73341 },
+ { 0x95E8, 73346 },
+ { 0x95E9, 73351 },
+ { 0x95EA, 73356 },
+ { 0x95EB, 73361 },
+ { 0x95EC, 73366 },
+ { 0x95ED, 73371 },
+ { 0x95EE, 72324 },
+ { 0x95EF, 72329 },
+ { 0x95F0, 72334 },
+ { 0x95F1, 72339 },
+ { 0x95F2, 72344 },
+ { 0x95F3, 72349 },
+ { 0x95F4, 72354 },
+ { 0x95F5, 72359 },
+ { 0x95F6, 72364 },
+ { 0x95F7, 72369 },
+ { 0x95F8, 72374 },
+ { 0x95F9, 72379 },
+ { 0x95FA, 72384 },
+ { 0x95FB, 72389 },
+ { 0x95FC, 72394 },
+ { 0x95FD, 72399 },
+ { 0x95FE, 72404 },
+ { 0x95FF, 72409 },
+ { 0x9600, 72414 },
+ { 0x9601, 72419 },
+ { 0x9602, 72424 },
+ { 0x9603, 72429 },
+ { 0x9604, 72434 },
+ { 0x9605, 72439 },
+ { 0x9606, 72444 },
+ { 0x9607, 72449 },
+ { 0x9608, 73786 },
+ { 0x9609, 73791 },
+ { 0x960A, 73796 },
+ { 0x960B, 73801 },
+ { 0x960C, 73806 },
+ { 0x960D, 73811 },
+ { 0x960E, 73816 },
+ { 0x960F, 73821 },
+ { 0x9610, 73826 },
+ { 0x9611, 73831 },
+ { 0x9612, 73836 },
+ { 0x9613, 73841 },
+ { 0x9614, 73846 },
+ { 0x9615, 73851 },
+ { 0x9616, 73856 },
+ { 0x9617, 73861 },
+ { 0x9618, 73866 },
+ { 0x9619, 73871 },
+ { 0x961A, 73876 },
+ { 0x961B, 73881 },
+ { 0x961C, 73886 },
+ { 0x961D, 73891 },
+ { 0x961E, 73896 },
+ { 0x961F, 73901 },
+ { 0x9620, 73906 },
+ { 0x9621, 73911 },
+ { 0x9622, 73656 },
+ { 0x9623, 73661 },
+ { 0x9624, 73666 },
+ { 0x9625, 73671 },
+ { 0x9626, 73676 },
+ { 0x9627, 73681 },
+ { 0x9628, 73686 },
+ { 0x9629, 73691 },
+ { 0x962A, 73696 },
+ { 0x962B, 73701 },
+ { 0x962C, 73706 },
+ { 0x962D, 73711 },
+ { 0x962E, 73716 },
+ { 0x962F, 73721 },
+ { 0x9630, 73726 },
+ { 0x9631, 73731 },
+ { 0x9632, 73736 },
+ { 0x9633, 73741 },
+ { 0x9634, 73746 },
+ { 0x9635, 73751 },
+ { 0x9636, 73756 },
+ { 0x9637, 73761 },
+ { 0x9638, 73766 },
+ { 0x9639, 73771 },
+ { 0x963A, 73776 },
+ { 0x963B, 73781 },
+ { 0x963C, 72927 },
+ { 0x963D, 72933 },
+ { 0x963E, 72939 },
+ { 0x963F, 72945 },
+ { 0x9640, 72951 },
+ { 0x9641, 72957 },
+ { 0x9642, 72963 },
+ { 0x9643, 72969 },
+ { 0x9644, 72975 },
+ { 0x9645, 72981 },
+ { 0x9646, 72987 },
+ { 0x9647, 72993 },
+ { 0x9648, 72999 },
+ { 0x9649, 73005 },
+ { 0x964A, 73011 },
+ { 0x964B, 73017 },
+ { 0x964C, 73023 },
+ { 0x964D, 73029 },
+ { 0x964E, 73035 },
+ { 0x964F, 73041 },
+ { 0x9650, 73047 },
+ { 0x9651, 73053 },
+ { 0x9652, 73059 },
+ { 0x9653, 73065 },
+ { 0x9654, 73071 },
+ { 0x9655, 73077 },
+ { 0x9656, 72614 },
+ { 0x9657, 72620 },
+ { 0x9658, 72626 },
+ { 0x9659, 72632 },
+ { 0x965A, 72638 },
+ { 0x965B, 72644 },
+ { 0x965C, 72650 },
+ { 0x965D, 72656 },
+ { 0x965E, 72662 },
+ { 0x965F, 72668 },
+ { 0x9660, 72674 },
+ { 0x9661, 72680 },
+ { 0x9662, 72686 },
+ { 0x9663, 72692 },
+ { 0x9664, 72698 },
+ { 0x9665, 72704 },
+ { 0x9666, 72710 },
+ { 0x9667, 72716 },
+ { 0x9668, 72722 },
+ { 0x9669, 72728 },
+ { 0x966A, 72734 },
+ { 0x966B, 72740 },
+ { 0x966C, 72746 },
+ { 0x966D, 72752 },
+ { 0x966E, 72758 },
+ { 0x966F, 72764 },
+ { 0x9670, 72146 },
+ { 0x9671, 72150 },
+ { 0x9672, 72154 },
+ { 0x9673, 72158 },
+ { 0x9674, 72162 },
+ { 0x9675, 72166 },
+ { 0x9676, 72170 },
+ { 0x9677, 72174 },
+ { 0x9678, 72178 },
+ { 0x9679, 72182 },
+ { 0x967A, 72186 },
+ { 0x967B, 72190 },
+ { 0x967C, 72194 },
+ { 0x967D, 72198 },
+ { 0x967E, 72202 },
+ { 0x967F, 72206 },
+ { 0x9680, 72210 },
+ { 0x9681, 72214 },
+ { 0x9682, 72218 },
+ { 0x9683, 72222 },
+ { 0x9684, 72226 },
+ { 0x9685, 72230 },
+ { 0x9686, 72234 },
+ { 0x9687, 72238 },
+ { 0x9688, 72242 },
+ { 0x9689, 72246 },
+ { 0x968A, 72042 },
+ { 0x968B, 72046 },
+ { 0x968C, 72050 },
+ { 0x968D, 72054 },
+ { 0x968E, 72058 },
+ { 0x968F, 72062 },
+ { 0x9690, 72066 },
+ { 0x9691, 72070 },
+ { 0x9692, 72074 },
+ { 0x9693, 72078 },
+ { 0x9694, 72082 },
+ { 0x9695, 72086 },
+ { 0x9696, 72090 },
+ { 0x9697, 72094 },
+ { 0x9698, 72098 },
+ { 0x9699, 72102 },
+ { 0x969A, 72106 },
+ { 0x969B, 72110 },
+ { 0x969C, 72114 },
+ { 0x969D, 72118 },
+ { 0x969E, 72122 },
+ { 0x969F, 72126 },
+ { 0x96A0, 72130 },
+ { 0x96A1, 72134 },
+ { 0x96A2, 72138 },
+ { 0x96A3, 72142 },
+ { 0x96A4, 71411 },
+ { 0x96A5, 71416 },
+ { 0x96A8, 70834 },
+ { 0x96A9, 70822 },
+ { 0x96AA, 70842 },
+ { 0x96AB, 70838 },
+ { 0x96AC, 70875 },
+ { 0x96AD, 70830 },
+ { 0x96AE, 70802 },
+ { 0x96AF, 70862 },
+ { 0x96B0, 70826 },
+ { 0x96B1, 70846 },
+ { 0x96B2, 70850 },
+ { 0x96B3, 70782 },
+ { 0x96B4, 70786 },
+ { 0x96B5, 70794 },
+ { 0x96B6, 70879 },
+ { 0x96B7, 70790 },
+ { 0x96B8, 70814 },
+ { 0x96B9, 70866 },
+ { 0x96BA, 70858 },
+ { 0x96BB, 70818 },
+ { 0x96BC, 70883 },
+ { 0x96BD, 70806 },
+ { 0x96BE, 70798 },
+ { 0x96BF, 70810 },
+ { 0x96C0, 70854 },
+ { 0x96C1, 69651 },
+ { 0x96C2, 69810 },
+ { 0x96C3, 69798 },
+ { 0x96C4, 69823 },
+ { 0x96C5, 69814 },
+ { 0x96C6, 69851 },
+ { 0x96C7, 69806 },
+ { 0x96C8, 69778 },
+ { 0x96C9, 69843 },
+ { 0x96CA, 69802 },
+ { 0x96CB, 69827 },
+ { 0x96CC, 69831 },
+ { 0x96CD, 69758 },
+ { 0x96CE, 69762 },
+ { 0x96CF, 69770 },
+ { 0x96D0, 69855 },
+ { 0x96D1, 69766 },
+ { 0x96D2, 69790 },
+ { 0x96D3, 69818 },
+ { 0x96D4, 69839 },
+ { 0x96D5, 69794 },
+ { 0x96D6, 69859 },
+ { 0x96D7, 69782 },
+ { 0x96D8, 69774 },
+ { 0x96D9, 69786 },
+ { 0x96DA, 69835 },
+ { 0x96DB, 71151 },
+ { 0x96DC, 70887 },
+ { 0x96DD, 69863 },
+ { 0x96DE, 69647 },
+ { 0x96DF, 69599 },
+ { 0x96E0, 69603 },
+ { 0x96E1, 69595 },
+ { 0x96E2, 71593 },
+ { 0x96E3, 71581 },
+ { 0x96E4, 71601 },
+ { 0x96E5, 71597 },
+ { 0x96E6, 71630 },
+ { 0x96E7, 71589 },
+ { 0x96E8, 71561 },
+ { 0x96E9, 71621 },
+ { 0x96EA, 71585 },
+ { 0x96EB, 71605 },
+ { 0x96EC, 71609 },
+ { 0x96ED, 71541 },
+ { 0x96EE, 71545 },
+ { 0x96EF, 71553 },
+ { 0x96F0, 71634 },
+ { 0x96F1, 71549 },
+ { 0x96F2, 71573 },
+ { 0x96F3, 71625 },
+ { 0x96F4, 71617 },
+ { 0x96F5, 71577 },
+ { 0x96F6, 71638 },
+ { 0x96F7, 71565 },
+ { 0x96F8, 71557 },
+ { 0x96F9, 71569 },
+ { 0x96FA, 71613 },
+ { 0x96FB, 71219 },
+ { 0x96FC, 71374 },
+ { 0x96FD, 71362 },
+ { 0x96FE, 71387 },
+ { 0x96FF, 71378 },
+ { 0x9700, 71421 },
+ { 0x9701, 71370 },
+ { 0x9702, 71342 },
+ { 0x9703, 71407 },
+ { 0x9704, 71366 },
+ { 0x9705, 71391 },
+ { 0x9706, 71395 },
+ { 0x9707, 71322 },
+ { 0x9708, 71326 },
+ { 0x9709, 71334 },
+ { 0x970A, 71425 },
+ { 0x970B, 71330 },
+ { 0x970C, 71354 },
+ { 0x970D, 71382 },
+ { 0x970E, 71403 },
+ { 0x970F, 71358 },
+ { 0x9710, 71429 },
+ { 0x9711, 71346 },
+ { 0x9712, 71338 },
+ { 0x9713, 71350 },
+ { 0x9714, 71399 },
+ { 0x9715, 71646 },
+ { 0x9716, 71642 },
+ { 0x9717, 71433 },
+ { 0x9718, 71215 },
+ { 0x9719, 71207 },
+ { 0x971A, 71211 },
+ { 0x971B, 71203 },
+ { 0x971C, 70347 },
+ { 0x971D, 70332 },
+ { 0x971E, 70357 },
+ { 0x971F, 70352 },
+ { 0x9720, 70393 },
+ { 0x9721, 70342 },
+ { 0x9722, 70307 },
+ { 0x9723, 70382 },
+ { 0x9724, 70337 },
+ { 0x9725, 70362 },
+ { 0x9726, 70367 },
+ { 0x9727, 70282 },
+ { 0x9728, 70287 },
+ { 0x9729, 70297 },
+ { 0x972A, 70398 },
+ { 0x972B, 70292 },
+ { 0x972C, 70322 },
+ { 0x972D, 70387 },
+ { 0x972E, 70377 },
+ { 0x972F, 70327 },
+ { 0x9730, 70403 },
+ { 0x9731, 70312 },
+ { 0x9732, 70302 },
+ { 0x9733, 70317 },
+ { 0x9734, 70372 },
+ { 0x9735, 69887 },
+ { 0x9736, 70086 },
+ { 0x9737, 70071 },
+ { 0x9738, 70102 },
+ { 0x9739, 70091 },
+ { 0x973A, 70132 },
+ { 0x973B, 70081 },
+ { 0x973C, 70046 },
+ { 0x973D, 70127 },
+ { 0x973E, 70076 },
+ { 0x973F, 70107 },
+ { 0x9740, 70112 },
+ { 0x9741, 70021 },
+ { 0x9742, 70026 },
+ { 0x9743, 70036 },
+ { 0x9744, 70137 },
+ { 0x9745, 70031 },
+ { 0x9746, 70061 },
+ { 0x9747, 70096 },
+ { 0x9748, 70122 },
+ { 0x9749, 70066 },
+ { 0x974A, 70142 },
+ { 0x974B, 70051 },
+ { 0x974C, 70041 },
+ { 0x974D, 70056 },
+ { 0x974E, 70117 },
+ { 0x974F, 70413 },
+ { 0x9750, 70408 },
+ { 0x9751, 70147 },
+ { 0x9752, 69882 },
+ { 0x9753, 69872 },
+ { 0x9754, 69877 },
+ { 0x9755, 69867 },
+ { 0x9756, 73441 },
+ { 0x9757, 73426 },
+ { 0x9758, 73451 },
+ { 0x9759, 73446 },
+ { 0x975A, 73487 },
+ { 0x975B, 73436 },
+ { 0x975C, 73401 },
+ { 0x975D, 73476 },
+ { 0x975E, 73431 },
+ { 0x975F, 73456 },
+ { 0x9760, 73461 },
+ { 0x9761, 73376 },
+ { 0x9762, 73381 },
+ { 0x9763, 73391 },
+ { 0x9764, 73492 },
+ { 0x9765, 73386 },
+ { 0x9766, 73416 },
+ { 0x9767, 73481 },
+ { 0x9768, 73471 },
+ { 0x9769, 73421 },
+ { 0x976A, 73497 },
+ { 0x976B, 73406 },
+ { 0x976C, 73396 },
+ { 0x976D, 73411 },
+ { 0x976E, 73466 },
+ { 0x976F, 72320 },
+ { 0x9770, 72519 },
+ { 0x9771, 72504 },
+ { 0x9772, 72535 },
+ { 0x9773, 72524 },
+ { 0x9774, 72565 },
+ { 0x9775, 72514 },
+ { 0x9776, 72479 },
+ { 0x9777, 72560 },
+ { 0x9778, 72509 },
+ { 0x9779, 72540 },
+ { 0x977A, 72545 },
+ { 0x977B, 72454 },
+ { 0x977C, 72459 },
+ { 0x977D, 72469 },
+ { 0x977E, 72570 },
+ { 0x977F, 72464 },
+ { 0x9780, 72494 },
+ { 0x9781, 72529 },
+ { 0x9782, 72555 },
+ { 0x9783, 72499 },
+ { 0x9784, 72575 },
+ { 0x9785, 72484 },
+ { 0x9786, 72474 },
+ { 0x9787, 72489 },
+ { 0x9788, 72550 },
+ { 0x9789, 73507 },
+ { 0x978A, 73502 },
+ { 0x978B, 72580 },
+ { 0x978C, 72315 },
+ { 0x978D, 72255 },
+ { 0x978E, 72260 },
+ { 0x978F, 72250 },
+ { 0x9790, 73161 },
+ { 0x9791, 73143 },
+ { 0x9792, 73173 },
+ { 0x9793, 73167 },
+ { 0x9794, 73216 },
+ { 0x9795, 73155 },
+ { 0x9796, 73113 },
+ { 0x9797, 73203 },
+ { 0x9798, 73149 },
+ { 0x9799, 73179 },
+ { 0x979A, 73185 },
+ { 0x979B, 73083 },
+ { 0x979C, 73089 },
+ { 0x979D, 73101 },
+ { 0x979E, 73222 },
+ { 0x979F, 73095 },
+ { 0x97A0, 73131 },
+ { 0x97A1, 73209 },
+ { 0x97A2, 73197 },
+ { 0x97A3, 73137 },
+ { 0x97A4, 73228 },
+ { 0x97A5, 73119 },
+ { 0x97A6, 73107 },
+ { 0x97A7, 73125 },
+ { 0x97A8, 73191 },
+ { 0x97A9, 72609 },
+ { 0x97AA, 72848 },
+ { 0x97AB, 72830 },
+ { 0x97AC, 72867 },
+ { 0x97AD, 72854 },
+ { 0x97AE, 72903 },
+ { 0x97AF, 72842 },
+ { 0x97B0, 72800 },
+ { 0x97B1, 72897 },
+ { 0x97B2, 72836 },
+ { 0x97B3, 72873 },
+ { 0x97B4, 72879 },
+ { 0x97B5, 72770 },
+ { 0x97B6, 72776 },
+ { 0x97B7, 72788 },
+ { 0x97B8, 72909 },
+ { 0x97B9, 72782 },
+ { 0x97BA, 72818 },
+ { 0x97BB, 72860 },
+ { 0x97BC, 72891 },
+ { 0x97BD, 72824 },
+ { 0x97BE, 72915 },
+ { 0x97BF, 72806 },
+ { 0x97C0, 72794 },
+ { 0x97C1, 72812 },
+ { 0x97C2, 72885 },
+ { 0x97C3, 73240 },
+ { 0x97C4, 73234 },
+ { 0x97C5, 72921 },
+ { 0x97C6, 72603 },
+ { 0x97C7, 72591 },
+ { 0x97C8, 72597 },
+ { 0x97C9, 72585 },
+ { 0x97CA, 70871 },
+ { 0x97CB, 69847 },
+ { 0x97CE, 69631 },
+ { 0x97CF, 69607 },
+ { 0x97D0, 69615 },
+ { 0x97D1, 69643 },
+ { 0x97D2, 69623 },
+ { 0x97D3, 69619 },
+ { 0x97D4, 69611 },
+ { 0x97D5, 69639 },
+ { 0x97D6, 69635 },
+ { 0x97D7, 69627 },
+ { 0x97D8, 74044 },
+ { 0x97D9, 74020 },
+ { 0x97DA, 74028 },
+ { 0x97DB, 74056 },
+ { 0x97DC, 74036 },
+ { 0x97DD, 74032 },
+ { 0x97DE, 74024 },
+ { 0x97DF, 74052 },
+ { 0x97E0, 74048 },
+ { 0x97E1, 74040 },
+ { 0x97E2, 73536 },
+ { 0x97E3, 73512 },
+ { 0x97E4, 73520 },
+ { 0x97E5, 73548 },
+ { 0x97E6, 73528 },
+ { 0x97E7, 73524 },
+ { 0x97E8, 73516 },
+ { 0x97E9, 73544 },
+ { 0x97EA, 73540 },
+ { 0x97EB, 73532 },
+ { 0x97EC, 72295 },
+ { 0x97ED, 72265 },
+ { 0x97EE, 72275 },
+ { 0x97EF, 72310 },
+ { 0x97F0, 72285 },
+ { 0x97F1, 72280 },
+ { 0x97F2, 72270 },
+ { 0x97F3, 72305 },
+ { 0x97F4, 72300 },
+ { 0x97F5, 72290 },
+ { 0x97F6, 72026 },
+ { 0x97F7, 72002 },
+ { 0x97F8, 72010 },
+ { 0x97F9, 72038 },
+ { 0x97FA, 72018 },
+ { 0x97FB, 72014 },
+ { 0x97FC, 72006 },
+ { 0x97FD, 72034 },
+ { 0x97FE, 72030 },
+ { 0x97FF, 72022 },
+ { 0xA000, 41048 },
+ { 0xA001, 41145 },
+ { 0xA002, 41100 },
+ { 0xA003, 41126 },
+ { 0xA004, 41011 },
+ { 0xA005, 41119 },
+ { 0xA006, 41164 },
+ { 0xA007, 41006 },
+ { 0xA008, 41040 },
+ { 0xA009, 41159 },
+ { 0xA00A, 41077 },
+ { 0xA00B, 41062 },
+ { 0xA00C, 41025 },
+ { 0xA00D, 41140 },
+ { 0xA00E, 41114 },
+ { 0xA00F, 41092 },
+ { 0xA010, 40996 },
+ { 0xA011, 41030 },
+ { 0xA012, 41149 },
+ { 0xA013, 41067 },
+ { 0xA014, 41052 },
+ { 0xA015, 41015 },
+ { 0xA016, 41130 },
+ { 0xA017, 41104 },
+ { 0xA018, 41082 },
+ { 0xA019, 41001 },
+ { 0xA01A, 41035 },
+ { 0xA01B, 41154 },
+ { 0xA01C, 41072 },
+ { 0xA01D, 41057 },
+ { 0xA01E, 41020 },
+ { 0xA01F, 41135 },
+ { 0xA020, 41109 },
+ { 0xA021, 41087 },
+ { 0xA022, 41097 },
+ { 0xA023, 41174 },
+ { 0xA024, 41171 },
+ { 0xA025, 41186 },
+ { 0xA026, 41177 },
+ { 0xA027, 41180 },
+ { 0xA028, 41168 },
+ { 0xA029, 41183 },
+ { 0xA02A, 41123 },
+ { 0xA02B, 41045 },
+ { 0xA030, 31231 },
+ { 0xA031, 31382 },
+ { 0xA032, 31385 },
+ { 0xA033, 31388 },
+ { 0xA034, 31391 },
+ { 0xA035, 31394 },
+ { 0xA036, 31397 },
+ { 0xA037, 31400 },
+ { 0xA038, 31403 },
+ { 0xA039, 31406 },
+ { 0xA03A, 31409 },
+ { 0xA03B, 31412 },
+ { 0xA03C, 31415 },
+ { 0xA03D, 31418 },
+ { 0xA03E, 31421 },
+ { 0xA03F, 31424 },
+ { 0xA040, 31427 },
+ { 0xA041, 31430 },
+ { 0xA042, 31433 },
+ { 0xA043, 31436 },
+ { 0xA044, 31439 },
+ { 0xA045, 31442 },
+ { 0xA046, 31445 },
+ { 0xA047, 31448 },
+ { 0xA048, 31451 },
+ { 0xA049, 31454 },
+ { 0xA04A, 31457 },
+ { 0xA04B, 31460 },
+ { 0xA04C, 31463 },
+ { 0xA04D, 31466 },
+ { 0xA04E, 31469 },
+ { 0xA04F, 31472 },
+ { 0xA050, 31475 },
+ { 0xA051, 31478 },
+ { 0xA052, 31481 },
+ { 0xA053, 31484 },
+ { 0xA054, 31487 },
+ { 0xA055, 31490 },
+ { 0xA056, 31493 },
+ { 0xA057, 31496 },
+ { 0xA058, 31499 },
+ { 0xA059, 31502 },
+ { 0xA05A, 31505 },
+ { 0xA05B, 31508 },
+ { 0xA05C, 31511 },
+ { 0xA05D, 31514 },
+ { 0xA05E, 31517 },
+ { 0xA05F, 31520 },
+ { 0xA060, 31523 },
+ { 0xA061, 31526 },
+ { 0xA062, 31227 },
+ { 0xA063, 31235 },
+ { 0xA064, 31238 },
+ { 0xA065, 31241 },
+ { 0xA066, 31244 },
+ { 0xA067, 31247 },
+ { 0xA068, 31250 },
+ { 0xA069, 31253 },
+ { 0xA06A, 31256 },
+ { 0xA06B, 31259 },
+ { 0xA06C, 31262 },
+ { 0xA06D, 31265 },
+ { 0xA06E, 31268 },
+ { 0xA06F, 31271 },
+ { 0xA070, 31274 },
+ { 0xA071, 31277 },
+ { 0xA072, 31280 },
+ { 0xA073, 31283 },
+ { 0xA074, 31286 },
+ { 0xA075, 31289 },
+ { 0xA076, 31292 },
+ { 0xA077, 31295 },
+ { 0xA078, 31298 },
+ { 0xA079, 31301 },
+ { 0xA07A, 31304 },
+ { 0xA07B, 31307 },
+ { 0xA07C, 31310 },
+ { 0xA07D, 31313 },
+ { 0xA07E, 31316 },
+ { 0xA07F, 31319 },
+ { 0xA080, 31322 },
+ { 0xA081, 31325 },
+ { 0xA082, 31328 },
+ { 0xA083, 31331 },
+ { 0xA084, 31334 },
+ { 0xA085, 31337 },
+ { 0xA086, 31340 },
+ { 0xA087, 31343 },
+ { 0xA088, 31346 },
+ { 0xA089, 31349 },
+ { 0xA08A, 31352 },
+ { 0xA08B, 31355 },
+ { 0xA08C, 31358 },
+ { 0xA08D, 31361 },
+ { 0xA08E, 31364 },
+ { 0xA08F, 31367 },
+ { 0xA090, 31370 },
+ { 0xA091, 31373 },
+ { 0xA092, 31376 },
+ { 0xA093, 31379 },
+ { 0xC001, 53726 },
+ { 0xC020, 7517 },
+ { 0xC021, 7564 },
+ { 0xC022, 7551 },
+ { 0xC023, 7527 },
+ { 0xC024, 7521 },
+ { 0xC025, 7530 },
+ { 0xC026, 7546 },
+ { 0xC027, 7556 },
+ { 0xC028, 7203 },
+ { 0xC029, 7514 },
+ { 0xC02A, 7538 },
+ { 0xC02B, 7206 },
+ { 0xC02C, 7211 },
+ { 0xC02D, 7570 },
+ { 0xC02E, 7192 },
+ { 0xC02F, 7536 },
+ { 0xC030, 7231 },
+ { 0xC031, 7213 },
+ { 0xC032, 7219 },
+ { 0xC033, 7240 },
+ { 0xC034, 7225 },
+ { 0xC035, 7222 },
+ { 0xC036, 7216 },
+ { 0xC037, 7237 },
+ { 0xC038, 7234 },
+ { 0xC039, 7228 },
+ { 0xC03A, 7209 },
+ { 0xC03B, 7554 },
+ { 0xC03C, 7548 },
+ { 0xC03D, 7524 },
+ { 0xC03E, 7567 },
+ { 0xC03F, 7540 },
+ { 0xC040, 7561 },
+ { 0xC041, 7376 },
+ { 0xC042, 7381 },
+ { 0xC043, 7386 },
+ { 0xC044, 7391 },
+ { 0xC045, 7396 },
+ { 0xC046, 7401 },
+ { 0xC047, 7406 },
+ { 0xC048, 7411 },
+ { 0xC049, 7416 },
+ { 0xC04A, 7421 },
+ { 0xC04B, 7426 },
+ { 0xC04C, 7431 },
+ { 0xC04D, 7436 },
+ { 0xC04E, 7441 },
+ { 0xC04F, 7446 },
+ { 0xC050, 7451 },
+ { 0xC051, 7456 },
+ { 0xC052, 7461 },
+ { 0xC053, 7466 },
+ { 0xC054, 7471 },
+ { 0xC055, 7476 },
+ { 0xC056, 7481 },
+ { 0xC057, 7486 },
+ { 0xC058, 7491 },
+ { 0xC059, 7496 },
+ { 0xC05A, 7501 },
+ { 0xC05B, 7199 },
+ { 0xC05C, 7533 },
+ { 0xC05D, 7510 },
+ { 0xC05E, 7558 },
+ { 0xC05F, 7189 },
+ { 0xC060, 7243 },
+ { 0xC061, 7246 },
+ { 0xC062, 7251 },
+ { 0xC063, 7256 },
+ { 0xC064, 7261 },
+ { 0xC065, 7266 },
+ { 0xC066, 7271 },
+ { 0xC067, 7276 },
+ { 0xC068, 7281 },
+ { 0xC069, 7286 },
+ { 0xC06A, 7291 },
+ { 0xC06B, 7296 },
+ { 0xC06C, 7301 },
+ { 0xC06D, 7306 },
+ { 0xC06E, 7311 },
+ { 0xC06F, 7316 },
+ { 0xC070, 7321 },
+ { 0xC071, 7326 },
+ { 0xC072, 7331 },
+ { 0xC073, 7336 },
+ { 0xC074, 7341 },
+ { 0xC075, 7346 },
+ { 0xC076, 7351 },
+ { 0xC077, 7356 },
+ { 0xC078, 7361 },
+ { 0xC079, 7366 },
+ { 0xC07A, 7371 },
+ { 0xC07B, 7195 },
+ { 0xC07C, 7543 },
+ { 0xC07D, 7506 },
+ { 0xC07E, 7519 },
+ { 0xC07F, 30315 },
+ { 0xC100, 66346 },
+ { 0xC101, 66348 },
+ { 0xC102, 66350 },
+ { 0xC103, 66352 },
+ { 0xC104, 66354 },
+ { 0xC105, 66356 },
+ { 0xC106, 66358 },
+ { 0xC107, 66360 },
+ { 0xC108, 66362 },
+ { 0xC109, 66364 },
+ { 0xC10A, 66366 },
+ { 0xC10B, 66368 },
+ { 0xC10C, 66370 },
+ { 0xC10D, 66372 },
+ { 0xC10E, 66374 },
+ { 0xC10F, 66376 },
+ { 0xC110, 66378 },
+ { 0xC111, 66380 },
+ { 0xC112, 66382 },
+ { 0xC113, 66384 },
+ { 0xC114, 66386 },
+ { 0xC115, 66388 },
+ { 0xC116, 66390 },
+ { 0xC117, 66392 },
+ { 0xC118, 66394 },
+ { 0xC119, 66396 },
+ { 0xC11A, 66398 },
+ { 0xC11B, 66400 },
+ { 0xC11C, 66402 },
+ { 0xC11D, 66404 },
+ { 0xC11E, 66406 },
+ { 0xC11F, 66408 },
+ { 0xC120, 66410 },
+ { 0xC121, 66412 },
+ { 0xC122, 66414 },
+ { 0xC123, 66416 },
+ { 0xC124, 66418 },
+ { 0xC125, 66420 },
+ { 0xC126, 66422 },
+ { 0xC127, 66424 },
+ { 0xC128, 66426 },
+ { 0xC129, 66428 },
+ { 0xC12A, 66430 },
+ { 0xC12B, 66432 },
+ { 0xC12C, 66434 },
+ { 0xC12D, 66436 },
+ { 0xC12E, 66438 },
+ { 0xC12F, 66440 },
+ { 0xC130, 66442 },
+ { 0xC131, 66444 },
+ { 0xC132, 66446 },
+ { 0xC133, 66448 },
+ { 0xC134, 66450 },
+ { 0xC135, 66452 },
+ { 0xC136, 66454 },
+ { 0xC137, 66456 },
+ { 0xC138, 66458 },
+ { 0xC139, 66460 },
+ { 0xC13A, 66462 },
+ { 0xC13B, 66464 },
+ { 0xC13C, 66466 },
+ { 0xC13D, 66468 },
+ { 0xC13E, 66470 },
+ { 0xC13F, 66472 },
+ { 0xC140, 66474 },
+ { 0xC141, 66476 },
+ { 0xC142, 66478 },
+ { 0xC143, 66480 },
+ { 0xC144, 66482 },
+ { 0xC145, 66484 },
+ { 0xC146, 66486 },
+ { 0xC147, 66488 },
+ { 0xC148, 66490 },
+ { 0xC149, 66492 },
+ { 0xC14A, 66494 },
+ { 0xC14B, 66496 },
+ { 0xC14C, 66498 },
+ { 0xC14D, 66500 },
+ { 0xC14E, 66502 },
+ { 0xC14F, 66504 },
+ { 0xC150, 66506 },
+ { 0xC151, 66508 },
+ { 0xC152, 66510 },
+ { 0xC153, 66512 },
+ { 0xC154, 66514 },
+ { 0xC155, 66516 },
+ { 0xC156, 66518 },
+ { 0xC157, 66520 },
+ { 0xC158, 66522 },
+ { 0xC159, 66524 },
+ { 0xC15A, 66526 },
+ { 0xC15B, 66528 },
+ { 0xC15C, 66530 },
+ { 0xC15D, 66532 },
+ { 0xC15E, 66534 },
+ { 0xC15F, 66536 },
+ { 0xC160, 66538 },
+ { 0xC161, 66540 },
+ { 0xC162, 66542 },
+ { 0xC163, 66544 },
+ { 0xC164, 66546 },
+ { 0xC165, 66548 },
+ { 0xC166, 66550 },
+ { 0xC167, 66552 },
+ { 0xC168, 66554 },
+ { 0xC169, 66556 },
+ { 0xC16A, 66558 },
+ { 0xC16B, 66560 },
+ { 0xC16C, 66562 },
+ { 0xC16D, 66564 },
+ { 0xC16E, 66566 },
+ { 0xC16F, 66568 },
+ { 0xC170, 66570 },
+ { 0xC171, 66572 },
+ { 0xC172, 66574 },
+ { 0xC173, 66576 },
+ { 0xC174, 66578 },
+ { 0xC175, 66580 },
+ { 0xC176, 66582 },
+ { 0xC177, 66584 },
+ { 0xC178, 66586 },
+ { 0xC179, 66588 },
+ { 0xC17A, 66590 },
+ { 0xC17B, 66592 },
+ { 0xC17C, 66594 },
+ { 0xC17D, 66596 },
+ { 0xC17E, 66598 },
+ { 0xC17F, 66600 },
+ { 0xC180, 66602 },
+ { 0xC181, 66604 },
+ { 0xC182, 66606 },
+ { 0xC183, 66608 },
+ { 0xC184, 66610 },
+ { 0xC185, 66612 },
+ { 0xC186, 66614 },
+ { 0xC187, 66616 },
+ { 0xC188, 66618 },
+ { 0xC189, 66620 },
+ { 0xC18A, 66622 },
+ { 0xC18B, 66624 },
+ { 0xC18C, 66626 },
+ { 0xC18D, 66628 },
+ { 0xC18E, 66630 },
+ { 0xC18F, 66632 },
+ { 0xC190, 66634 },
+ { 0xC191, 66636 },
+ { 0xC192, 66638 },
+ { 0xC193, 66640 },
+ { 0xC194, 66642 },
+ { 0xC195, 66644 },
+ { 0xC196, 66646 },
+ { 0xC197, 66648 },
+ { 0xC198, 66650 },
+ { 0xC199, 66652 },
+ { 0xC19A, 66654 },
+ { 0xC19B, 66656 },
+ { 0xC19C, 66658 },
+ { 0xC19D, 66660 },
+ { 0xC19E, 66662 },
+ { 0xC19F, 66664 },
+ { 0xC1A0, 66666 },
+ { 0xC1A1, 66668 },
+ { 0xC1A2, 66670 },
+ { 0xC1A3, 66672 },
+ { 0xC1A4, 66674 },
+ { 0xC1A5, 66676 },
+ { 0xC1A6, 66678 },
+ { 0xC1A7, 66680 },
+ { 0xC1A8, 66682 },
+ { 0xC1A9, 66684 },
+ { 0xC1AA, 66686 },
+ { 0xC1AB, 66688 },
+ { 0xC1AC, 66690 },
+ { 0xC1AD, 66692 },
+ { 0xC1AE, 66694 },
+ { 0xC1AF, 66696 },
+ { 0xC1B0, 66698 },
+ { 0xC1B1, 66700 },
+ { 0xC1B2, 66702 },
+ { 0xC1B3, 66704 },
+ { 0xC1B4, 66706 },
+ { 0xC1B5, 66708 },
+ { 0xC1B6, 66710 },
+ { 0xC1B7, 66712 },
+ { 0xC1B8, 66714 },
+ { 0xC1B9, 66716 },
+ { 0xC1BA, 66718 },
+ { 0xC1BB, 66720 },
+ { 0xC1BC, 66722 },
+ { 0xC1BD, 66724 },
+ { 0xC1BE, 66726 },
+ { 0xC1BF, 66728 },
+ { 0xC1C0, 66730 },
+ { 0xC1C1, 66732 },
+ { 0xC1C2, 66734 },
+ { 0xC1C3, 66736 },
+ { 0xC1C4, 66738 },
+ { 0xC1C5, 66740 },
+ { 0xC1C6, 66742 },
+ { 0xC1C7, 66744 },
+ { 0xC1C8, 66746 },
+ { 0xC1C9, 66748 },
+ { 0xC1CA, 66750 },
+ { 0xC1CB, 66752 },
+ { 0xC1CC, 66754 },
+ { 0xC1CD, 66756 },
+ { 0xC1CE, 66758 },
+ { 0xC1CF, 66760 },
+ { 0xC1D0, 66762 },
+ { 0xC1D1, 66764 },
+ { 0xC1D2, 66766 },
+ { 0xC1D3, 66768 },
+ { 0xC1D4, 66770 },
+ { 0xC1D5, 66772 },
+ { 0xC1D6, 66774 },
+ { 0xC1D7, 66776 },
+ { 0xC1D8, 66778 },
+ { 0xC1D9, 66780 },
+ { 0xC1DA, 66782 },
+ { 0xC1DB, 66784 },
+ { 0xC1DC, 66786 },
+ { 0xC1DD, 66788 },
+ { 0xC1DE, 66790 },
+ { 0xC1DF, 66792 },
+ { 0xC1E0, 66794 },
+ { 0xC1E1, 66796 },
+ { 0xC1E2, 66798 },
+ { 0xC1E3, 66800 },
+ { 0xC1E4, 66802 },
+ { 0xC1E5, 66804 },
+ { 0xC1E6, 66806 },
+ { 0xC1E7, 66808 },
+ { 0xC1E8, 66810 },
+ { 0xC1E9, 66812 },
+ { 0xC1EA, 66814 },
+ { 0xC1EB, 66816 },
+ { 0xC1EC, 66818 },
+ { 0xC1ED, 66820 },
+ { 0xC1EE, 66822 },
+ { 0xC1EF, 66824 },
+};
+#define UNICODE_CHARNAME_MAX_LENGTH 83
+#define UNICODE_CHARNAME_MAX_WORDS 13
diff --git a/lib/uninorm.h b/lib/uninorm.h
new file mode 100644
index 0000000..6850967
--- /dev/null
+++ b/lib/uninorm.h
@@ -0,0 +1,248 @@
+/* Normalization forms (composition and decomposition) of Unicode strings.
+ Copyright (C) 2001-2002, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+#ifndef _UNINORM_H
+#define _UNINORM_H
+
+/* Get LIBUNISTRING_DLL_VARIABLE. */
+#include <unistring/woe32dll.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Conventions:
+
+ All functions prefixed with u8_ operate on UTF-8 encoded strings.
+ Their unit is an uint8_t (1 byte).
+
+ All functions prefixed with u16_ operate on UTF-16 encoded strings.
+ Their unit is an uint16_t (a 2-byte word).
+
+ All functions prefixed with u32_ operate on UCS-4 encoded strings.
+ Their unit is an uint32_t (a 4-byte word).
+
+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+ n units.
+
+ Functions returning a string result take a (resultbuf, lengthp) argument
+ pair. If resultbuf is not NULL and the result fits into *lengthp units,
+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly
+ allocated string is returned. In both cases, *lengthp is set to the
+ length (number of units) of the returned string. In case of error,
+ NULL is returned and errno is set. */
+
+
+enum
+{
+ UC_DECOMP_CANONICAL,/* Canonical decomposition. */
+ UC_DECOMP_FONT, /* <font> A font variant (e.g. a blackletter form). */
+ UC_DECOMP_NOBREAK, /* <noBreak> A no-break version of a space or hyphen. */
+ UC_DECOMP_INITIAL, /* <initial> An initial presentation form (Arabic). */
+ UC_DECOMP_MEDIAL, /* <medial> A medial presentation form (Arabic). */
+ UC_DECOMP_FINAL, /* <final> A final presentation form (Arabic). */
+ UC_DECOMP_ISOLATED,/* <isolated> An isolated presentation form (Arabic). */
+ UC_DECOMP_CIRCLE, /* <circle> An encircled form. */
+ UC_DECOMP_SUPER, /* <super> A superscript form. */
+ UC_DECOMP_SUB, /* <sub> A subscript form. */
+ UC_DECOMP_VERTICAL,/* <vertical> A vertical layout presentation form. */
+ UC_DECOMP_WIDE, /* <wide> A wide (or zenkaku) compatibility character. */
+ UC_DECOMP_NARROW, /* <narrow> A narrow (or hankaku) compatibility character. */
+ UC_DECOMP_SMALL, /* <small> A small variant form (CNS compatibility). */
+ UC_DECOMP_SQUARE, /* <square> A CJK squared font variant. */
+ UC_DECOMP_FRACTION,/* <fraction> A vulgar fraction form. */
+ UC_DECOMP_COMPAT /* <compat> Otherwise unspecified compatibility character. */
+};
+
+/* Maximum size of decomposition of a single Unicode character. */
+#define UC_DECOMPOSITION_MAX_LENGTH 32
+
+/* Return the character decomposition mapping of a Unicode character.
+ DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH
+ ucs_t elements.
+ When a decomposition exists, DECOMPOSITION[0..N-1] and *DECOMP_TAG are
+ filled and N is returned. Otherwise -1 is returned. */
+extern int
+ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition);
+
+/* Return the canonical character decomposition mapping of a Unicode character.
+ DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH
+ ucs_t elements.
+ When a decomposition exists, DECOMPOSITION[0..N-1] is filled and N is
+ returned. Otherwise -1 is returned. */
+extern int
+ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition);
+
+
+/* Attempt to combine the Unicode characters uc1, uc2.
+ uc1 is known to have canonical combining class 0.
+ Return the combination of uc1 and uc2, if it exists.
+ Return 0 otherwise.
+ Not all decompositions can be recombined using this function. See the
+ Unicode file CompositionExclusions.txt for details. */
+extern ucs4_t
+ uc_composition (ucs4_t uc1, ucs4_t uc2);
+
+
+/* An object of type uninorm_t denotes a Unicode normalization form. */
+struct unicode_normalization_form;
+typedef const struct unicode_normalization_form *uninorm_t;
+
+/* UNINORM_NFD: Normalization form D: canonical decomposition. */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfd;
+#define UNINORM_NFD (&uninorm_nfd)
+
+/* UNINORM_NFC: Normalization form C: canonical decomposition, then
+ canonical composition. */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfc;
+#define UNINORM_NFC (&uninorm_nfc)
+
+/* UNINORM_NFKD: Normalization form KD: compatibility decomposition. */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfkd;
+#define UNINORM_NFKD (&uninorm_nfkd)
+
+/* UNINORM_NFKC: Normalization form KC: compatibility decomposition, then
+ canonical composition. */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfkc;
+#define UNINORM_NFKC (&uninorm_nfkc)
+
+/* Test whether a normalization form does compatibility decomposition. */
+#define uninorm_is_compat_decomposing(nf) \
+ ((* (const unsigned int *) (nf) >> 0) & 1)
+
+/* Test whether a normalization form includes canonical composition. */
+#define uninorm_is_composing(nf) \
+ ((* (const unsigned int *) (nf) >> 1) & 1)
+
+/* Return the decomposing variant of a normalization form.
+ This maps NFC,NFD -> NFD and NFKC,NFKD -> NFKD. */
+extern uninorm_t uninorm_decomposing_form (uninorm_t nf);
+
+
+/* Return the specified normalization form of a string. */
+extern uint8_t *
+ u8_normalize (uninorm_t nf, const uint8_t *s, size_t n,
+ uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+ u16_normalize (uninorm_t nf, const uint16_t *s, size_t n,
+ uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+ u32_normalize (uninorm_t nf, const uint32_t *s, size_t n,
+ uint32_t *resultbuf, size_t *lengthp);
+
+
+/* Compare S1 and S2, ignoring differences in normalization.
+ NF must be either UNINORM_NFD or UNINORM_NFKD.
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_normcmp (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u16_normcmp (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u32_normcmp (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+
+
+/* Converts the string S of length N to a NUL-terminated byte sequence, in such
+ a way that comparing uN_normxfrm (S1) and uN_normxfrm (S2) with uN_cmp2() is
+ equivalent to comparing S1 and S2 with uN_normcoll().
+ NF must be either UNINORM_NFC or UNINORM_NFKC. */
+extern char *
+ u8_normxfrm (const uint8_t *s, size_t n, uninorm_t nf,
+ char *resultbuf, size_t *lengthp);
+extern char *
+ u16_normxfrm (const uint16_t *s, size_t n, uninorm_t nf,
+ char *resultbuf, size_t *lengthp);
+extern char *
+ u32_normxfrm (const uint32_t *s, size_t n, uninorm_t nf,
+ char *resultbuf, size_t *lengthp);
+
+
+/* Compare S1 and S2, ignoring differences in normalization, using the
+ collation rules of the current locale.
+ NF must be either UNINORM_NFC or UNINORM_NFKC.
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_normcoll (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u16_normcoll (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u32_normcoll (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+
+
+/* Normalization of a stream of Unicode characters.
+
+ A "stream of Unicode characters" is essentially a function that accepts an
+ ucs4_t argument repeatedly, optionally combined with a function that
+ "flushes" the stream. */
+
+/* Data type of a stream of Unicode characters that normalizes its input
+ according to a given normalization form and passes the normalized character
+ sequence to the encapsulated stream of Unicode characters. */
+struct uninorm_filter;
+
+/* Create and return a normalization filter for Unicode characters.
+ The pair (stream_func, stream_data) is the encapsulated stream.
+ stream_func (stream_data, uc) receives the Unicode character uc
+ and returns 0 if successful, or -1 with errno set upon failure.
+ Return the new filter, or NULL with errno set upon failure. */
+extern struct uninorm_filter *
+ uninorm_filter_create (uninorm_t nf,
+ int (*stream_func) (void *stream_data, ucs4_t uc),
+ void *stream_data);
+
+/* Stuff a Unicode character into a normalizing filter.
+ Return 0 if successful, or -1 with errno set upon failure. */
+extern int
+ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc);
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+ stream.
+ Return 0 if successful, or -1 with errno set upon failure.
+ Note! If after calling this function, additional characters are written
+ into the filter, the resulting character sequence in the encapsulated stream
+ will not necessarily be normalized. */
+extern int
+ uninorm_filter_flush (struct uninorm_filter *filter);
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+ stream, then close and free the filter.
+ Return 0 if successful, or -1 with errno set upon failure. */
+extern int
+ uninorm_filter_free (struct uninorm_filter *filter);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNINORM_H */
diff --git a/lib/uninorm/canonical-decomposition.c b/lib/uninorm/canonical-decomposition.c
new file mode 100644
index 0000000..210b74b
--- /dev/null
+++ b/lib/uninorm/canonical-decomposition.c
@@ -0,0 +1,108 @@
+/* Canonical decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <stdlib.h>
+
+#include "decomposition-table.h"
+
+int
+uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
+{
+ if (uc >= 0xAC00 && uc < 0xD7A4)
+ {
+ /* Hangul syllable. See Unicode standard, chapter 3, section
+ "Hangul Syllable Decomposition", See also the clarification at
+ <http://www.unicode.org/versions/Unicode5.1.0/>, section
+ "Clarification of Hangul Jamo Handling". */
+ unsigned int t;
+
+ uc -= 0xAC00;
+ t = uc % 28;
+
+ if (t == 0)
+ {
+ unsigned int v, l;
+
+ uc = uc / 28;
+ v = uc % 21;
+ l = uc / 21;
+
+ decomposition[0] = 0x1100 + l;
+ decomposition[1] = 0x1161 + v;
+ return 2;
+ }
+ else
+ {
+#if 1 /* Return the pairwise decomposition, not the full decomposition. */
+ decomposition[0] = 0xAC00 + uc - t; /* = 0xAC00 + (l * 21 + v) * 28; */
+ decomposition[1] = 0x11A7 + t;
+ return 2;
+#else
+ unsigned int v, l;
+
+ uc = uc / 28;
+ v = uc % 21;
+ l = uc / 21;
+
+ decomposition[0] = 0x1100 + l;
+ decomposition[1] = 0x1161 + v;
+ decomposition[2] = 0x11A7 + t;
+ return 3;
+#endif
+ }
+ }
+ else if (uc < 0x110000)
+ {
+ unsigned short entry = decomp_index (uc);
+ /* An entry of (unsigned short)(-1) denotes an absent entry.
+ Otherwise, bit 15 of the entry tells whether the decomposition
+ is a canonical one. */
+ if (entry < 0x8000)
+ {
+ const unsigned char *p;
+ unsigned int element;
+ unsigned int length;
+
+ p = &gl_uninorm_decomp_chars_table[3 * entry];
+ element = (p[0] << 16) | (p[1] << 8) | p[2];
+ /* The first element has 5 bits for the decomposition type. */
+ if (((element >> 18) & 0x1f) != UC_DECOMP_CANONICAL)
+ abort ();
+ length = 1;
+ for (;;)
+ {
+ /* Every element has an 18 bits wide Unicode code point. */
+ *decomposition = element & 0x3ffff;
+ /* Bit 23 tells whether there are more elements, */
+ if ((element & (1 << 23)) == 0)
+ break;
+ p += 3;
+ element = (p[0] << 16) | (p[1] << 8) | p[2];
+ decomposition++;
+ length++;
+ }
+ return length;
+ }
+ }
+ return -1;
+}
+
diff --git a/lib/uninorm/compat-decomposition.c b/lib/uninorm/compat-decomposition.c
new file mode 100644
index 0000000..19ec87e
--- /dev/null
+++ b/lib/uninorm/compat-decomposition.c
@@ -0,0 +1,31 @@
+/* Compatibility decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "decompose-internal.h"
+
+#include "uninorm.h"
+
+int
+uc_compat_decomposition (ucs4_t uc, ucs4_t *decomposition)
+{
+ int tag;
+
+ return uc_decomposition (uc, &tag, decomposition);
+}
diff --git a/lib/uninorm/composition-table.gperf b/lib/uninorm/composition-table.gperf
new file mode 100644
index 0000000..f7f0feb
--- /dev/null
+++ b/lib/uninorm/composition-table.gperf
@@ -0,0 +1,958 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Canonical composition of Unicode characters. */
+/* Generated automatically by gen-uni-tables for Unicode 5.1.0. */
+
+/* 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/>. */
+
+struct composition_rule { char codes[4]; };
+%struct-type
+%language=ANSI-C
+%define slot-name codes
+%define hash-function-name gl_uninorm_compose_hash
+%define lookup-function-name gl_uninorm_compose_lookup
+%compare-lengths
+%compare-strncmp
+%readonly-tables
+%omit-struct-type
+%%
+"\x00\x41\x03\x00", 0x00c0
+"\x00\x41\x03\x01", 0x00c1
+"\x00\x41\x03\x02", 0x00c2
+"\x00\x41\x03\x03", 0x00c3
+"\x00\x41\x03\x08", 0x00c4
+"\x00\x41\x03\x0a", 0x00c5
+"\x00\x43\x03\x27", 0x00c7
+"\x00\x45\x03\x00", 0x00c8
+"\x00\x45\x03\x01", 0x00c9
+"\x00\x45\x03\x02", 0x00ca
+"\x00\x45\x03\x08", 0x00cb
+"\x00\x49\x03\x00", 0x00cc
+"\x00\x49\x03\x01", 0x00cd
+"\x00\x49\x03\x02", 0x00ce
+"\x00\x49\x03\x08", 0x00cf
+"\x00\x4e\x03\x03", 0x00d1
+"\x00\x4f\x03\x00", 0x00d2
+"\x00\x4f\x03\x01", 0x00d3
+"\x00\x4f\x03\x02", 0x00d4
+"\x00\x4f\x03\x03", 0x00d5
+"\x00\x4f\x03\x08", 0x00d6
+"\x00\x55\x03\x00", 0x00d9
+"\x00\x55\x03\x01", 0x00da
+"\x00\x55\x03\x02", 0x00db
+"\x00\x55\x03\x08", 0x00dc
+"\x00\x59\x03\x01", 0x00dd
+"\x00\x61\x03\x00", 0x00e0
+"\x00\x61\x03\x01", 0x00e1
+"\x00\x61\x03\x02", 0x00e2
+"\x00\x61\x03\x03", 0x00e3
+"\x00\x61\x03\x08", 0x00e4
+"\x00\x61\x03\x0a", 0x00e5
+"\x00\x63\x03\x27", 0x00e7
+"\x00\x65\x03\x00", 0x00e8
+"\x00\x65\x03\x01", 0x00e9
+"\x00\x65\x03\x02", 0x00ea
+"\x00\x65\x03\x08", 0x00eb
+"\x00\x69\x03\x00", 0x00ec
+"\x00\x69\x03\x01", 0x00ed
+"\x00\x69\x03\x02", 0x00ee
+"\x00\x69\x03\x08", 0x00ef
+"\x00\x6e\x03\x03", 0x00f1
+"\x00\x6f\x03\x00", 0x00f2
+"\x00\x6f\x03\x01", 0x00f3
+"\x00\x6f\x03\x02", 0x00f4
+"\x00\x6f\x03\x03", 0x00f5
+"\x00\x6f\x03\x08", 0x00f6
+"\x00\x75\x03\x00", 0x00f9
+"\x00\x75\x03\x01", 0x00fa
+"\x00\x75\x03\x02", 0x00fb
+"\x00\x75\x03\x08", 0x00fc
+"\x00\x79\x03\x01", 0x00fd
+"\x00\x79\x03\x08", 0x00ff
+"\x00\x41\x03\x04", 0x0100
+"\x00\x61\x03\x04", 0x0101
+"\x00\x41\x03\x06", 0x0102
+"\x00\x61\x03\x06", 0x0103
+"\x00\x41\x03\x28", 0x0104
+"\x00\x61\x03\x28", 0x0105
+"\x00\x43\x03\x01", 0x0106
+"\x00\x63\x03\x01", 0x0107
+"\x00\x43\x03\x02", 0x0108
+"\x00\x63\x03\x02", 0x0109
+"\x00\x43\x03\x07", 0x010a
+"\x00\x63\x03\x07", 0x010b
+"\x00\x43\x03\x0c", 0x010c
+"\x00\x63\x03\x0c", 0x010d
+"\x00\x44\x03\x0c", 0x010e
+"\x00\x64\x03\x0c", 0x010f
+"\x00\x45\x03\x04", 0x0112
+"\x00\x65\x03\x04", 0x0113
+"\x00\x45\x03\x06", 0x0114
+"\x00\x65\x03\x06", 0x0115
+"\x00\x45\x03\x07", 0x0116
+"\x00\x65\x03\x07", 0x0117
+"\x00\x45\x03\x28", 0x0118
+"\x00\x65\x03\x28", 0x0119
+"\x00\x45\x03\x0c", 0x011a
+"\x00\x65\x03\x0c", 0x011b
+"\x00\x47\x03\x02", 0x011c
+"\x00\x67\x03\x02", 0x011d
+"\x00\x47\x03\x06", 0x011e
+"\x00\x67\x03\x06", 0x011f
+"\x00\x47\x03\x07", 0x0120
+"\x00\x67\x03\x07", 0x0121
+"\x00\x47\x03\x27", 0x0122
+"\x00\x67\x03\x27", 0x0123
+"\x00\x48\x03\x02", 0x0124
+"\x00\x68\x03\x02", 0x0125
+"\x00\x49\x03\x03", 0x0128
+"\x00\x69\x03\x03", 0x0129
+"\x00\x49\x03\x04", 0x012a
+"\x00\x69\x03\x04", 0x012b
+"\x00\x49\x03\x06", 0x012c
+"\x00\x69\x03\x06", 0x012d
+"\x00\x49\x03\x28", 0x012e
+"\x00\x69\x03\x28", 0x012f
+"\x00\x49\x03\x07", 0x0130
+"\x00\x4a\x03\x02", 0x0134
+"\x00\x6a\x03\x02", 0x0135
+"\x00\x4b\x03\x27", 0x0136
+"\x00\x6b\x03\x27", 0x0137
+"\x00\x4c\x03\x01", 0x0139
+"\x00\x6c\x03\x01", 0x013a
+"\x00\x4c\x03\x27", 0x013b
+"\x00\x6c\x03\x27", 0x013c
+"\x00\x4c\x03\x0c", 0x013d
+"\x00\x6c\x03\x0c", 0x013e
+"\x00\x4e\x03\x01", 0x0143
+"\x00\x6e\x03\x01", 0x0144
+"\x00\x4e\x03\x27", 0x0145
+"\x00\x6e\x03\x27", 0x0146
+"\x00\x4e\x03\x0c", 0x0147
+"\x00\x6e\x03\x0c", 0x0148
+"\x00\x4f\x03\x04", 0x014c
+"\x00\x6f\x03\x04", 0x014d
+"\x00\x4f\x03\x06", 0x014e
+"\x00\x6f\x03\x06", 0x014f
+"\x00\x4f\x03\x0b", 0x0150
+"\x00\x6f\x03\x0b", 0x0151
+"\x00\x52\x03\x01", 0x0154
+"\x00\x72\x03\x01", 0x0155
+"\x00\x52\x03\x27", 0x0156
+"\x00\x72\x03\x27", 0x0157
+"\x00\x52\x03\x0c", 0x0158
+"\x00\x72\x03\x0c", 0x0159
+"\x00\x53\x03\x01", 0x015a
+"\x00\x73\x03\x01", 0x015b
+"\x00\x53\x03\x02", 0x015c
+"\x00\x73\x03\x02", 0x015d
+"\x00\x53\x03\x27", 0x015e
+"\x00\x73\x03\x27", 0x015f
+"\x00\x53\x03\x0c", 0x0160
+"\x00\x73\x03\x0c", 0x0161
+"\x00\x54\x03\x27", 0x0162
+"\x00\x74\x03\x27", 0x0163
+"\x00\x54\x03\x0c", 0x0164
+"\x00\x74\x03\x0c", 0x0165
+"\x00\x55\x03\x03", 0x0168
+"\x00\x75\x03\x03", 0x0169
+"\x00\x55\x03\x04", 0x016a
+"\x00\x75\x03\x04", 0x016b
+"\x00\x55\x03\x06", 0x016c
+"\x00\x75\x03\x06", 0x016d
+"\x00\x55\x03\x0a", 0x016e
+"\x00\x75\x03\x0a", 0x016f
+"\x00\x55\x03\x0b", 0x0170
+"\x00\x75\x03\x0b", 0x0171
+"\x00\x55\x03\x28", 0x0172
+"\x00\x75\x03\x28", 0x0173
+"\x00\x57\x03\x02", 0x0174
+"\x00\x77\x03\x02", 0x0175
+"\x00\x59\x03\x02", 0x0176
+"\x00\x79\x03\x02", 0x0177
+"\x00\x59\x03\x08", 0x0178
+"\x00\x5a\x03\x01", 0x0179
+"\x00\x7a\x03\x01", 0x017a
+"\x00\x5a\x03\x07", 0x017b
+"\x00\x7a\x03\x07", 0x017c
+"\x00\x5a\x03\x0c", 0x017d
+"\x00\x7a\x03\x0c", 0x017e
+"\x00\x4f\x03\x1b", 0x01a0
+"\x00\x6f\x03\x1b", 0x01a1
+"\x00\x55\x03\x1b", 0x01af
+"\x00\x75\x03\x1b", 0x01b0
+"\x00\x41\x03\x0c", 0x01cd
+"\x00\x61\x03\x0c", 0x01ce
+"\x00\x49\x03\x0c", 0x01cf
+"\x00\x69\x03\x0c", 0x01d0
+"\x00\x4f\x03\x0c", 0x01d1
+"\x00\x6f\x03\x0c", 0x01d2
+"\x00\x55\x03\x0c", 0x01d3
+"\x00\x75\x03\x0c", 0x01d4
+"\x00\xdc\x03\x04", 0x01d5
+"\x00\xfc\x03\x04", 0x01d6
+"\x00\xdc\x03\x01", 0x01d7
+"\x00\xfc\x03\x01", 0x01d8
+"\x00\xdc\x03\x0c", 0x01d9
+"\x00\xfc\x03\x0c", 0x01da
+"\x00\xdc\x03\x00", 0x01db
+"\x00\xfc\x03\x00", 0x01dc
+"\x00\xc4\x03\x04", 0x01de
+"\x00\xe4\x03\x04", 0x01df
+"\x02\x26\x03\x04", 0x01e0
+"\x02\x27\x03\x04", 0x01e1
+"\x00\xc6\x03\x04", 0x01e2
+"\x00\xe6\x03\x04", 0x01e3
+"\x00\x47\x03\x0c", 0x01e6
+"\x00\x67\x03\x0c", 0x01e7
+"\x00\x4b\x03\x0c", 0x01e8
+"\x00\x6b\x03\x0c", 0x01e9
+"\x00\x4f\x03\x28", 0x01ea
+"\x00\x6f\x03\x28", 0x01eb
+"\x01\xea\x03\x04", 0x01ec
+"\x01\xeb\x03\x04", 0x01ed
+"\x01\xb7\x03\x0c", 0x01ee
+"\x02\x92\x03\x0c", 0x01ef
+"\x00\x6a\x03\x0c", 0x01f0
+"\x00\x47\x03\x01", 0x01f4
+"\x00\x67\x03\x01", 0x01f5
+"\x00\x4e\x03\x00", 0x01f8
+"\x00\x6e\x03\x00", 0x01f9
+"\x00\xc5\x03\x01", 0x01fa
+"\x00\xe5\x03\x01", 0x01fb
+"\x00\xc6\x03\x01", 0x01fc
+"\x00\xe6\x03\x01", 0x01fd
+"\x00\xd8\x03\x01", 0x01fe
+"\x00\xf8\x03\x01", 0x01ff
+"\x00\x41\x03\x0f", 0x0200
+"\x00\x61\x03\x0f", 0x0201
+"\x00\x41\x03\x11", 0x0202
+"\x00\x61\x03\x11", 0x0203
+"\x00\x45\x03\x0f", 0x0204
+"\x00\x65\x03\x0f", 0x0205
+"\x00\x45\x03\x11", 0x0206
+"\x00\x65\x03\x11", 0x0207
+"\x00\x49\x03\x0f", 0x0208
+"\x00\x69\x03\x0f", 0x0209
+"\x00\x49\x03\x11", 0x020a
+"\x00\x69\x03\x11", 0x020b
+"\x00\x4f\x03\x0f", 0x020c
+"\x00\x6f\x03\x0f", 0x020d
+"\x00\x4f\x03\x11", 0x020e
+"\x00\x6f\x03\x11", 0x020f
+"\x00\x52\x03\x0f", 0x0210
+"\x00\x72\x03\x0f", 0x0211
+"\x00\x52\x03\x11", 0x0212
+"\x00\x72\x03\x11", 0x0213
+"\x00\x55\x03\x0f", 0x0214
+"\x00\x75\x03\x0f", 0x0215
+"\x00\x55\x03\x11", 0x0216
+"\x00\x75\x03\x11", 0x0217
+"\x00\x53\x03\x26", 0x0218
+"\x00\x73\x03\x26", 0x0219
+"\x00\x54\x03\x26", 0x021a
+"\x00\x74\x03\x26", 0x021b
+"\x00\x48\x03\x0c", 0x021e
+"\x00\x68\x03\x0c", 0x021f
+"\x00\x41\x03\x07", 0x0226
+"\x00\x61\x03\x07", 0x0227
+"\x00\x45\x03\x27", 0x0228
+"\x00\x65\x03\x27", 0x0229
+"\x00\xd6\x03\x04", 0x022a
+"\x00\xf6\x03\x04", 0x022b
+"\x00\xd5\x03\x04", 0x022c
+"\x00\xf5\x03\x04", 0x022d
+"\x00\x4f\x03\x07", 0x022e
+"\x00\x6f\x03\x07", 0x022f
+"\x02\x2e\x03\x04", 0x0230
+"\x02\x2f\x03\x04", 0x0231
+"\x00\x59\x03\x04", 0x0232
+"\x00\x79\x03\x04", 0x0233
+"\x00\xa8\x03\x01", 0x0385
+"\x03\x91\x03\x01", 0x0386
+"\x03\x95\x03\x01", 0x0388
+"\x03\x97\x03\x01", 0x0389
+"\x03\x99\x03\x01", 0x038a
+"\x03\x9f\x03\x01", 0x038c
+"\x03\xa5\x03\x01", 0x038e
+"\x03\xa9\x03\x01", 0x038f
+"\x03\xca\x03\x01", 0x0390
+"\x03\x99\x03\x08", 0x03aa
+"\x03\xa5\x03\x08", 0x03ab
+"\x03\xb1\x03\x01", 0x03ac
+"\x03\xb5\x03\x01", 0x03ad
+"\x03\xb7\x03\x01", 0x03ae
+"\x03\xb9\x03\x01", 0x03af
+"\x03\xcb\x03\x01", 0x03b0
+"\x03\xb9\x03\x08", 0x03ca
+"\x03\xc5\x03\x08", 0x03cb
+"\x03\xbf\x03\x01", 0x03cc
+"\x03\xc5\x03\x01", 0x03cd
+"\x03\xc9\x03\x01", 0x03ce
+"\x03\xd2\x03\x01", 0x03d3
+"\x03\xd2\x03\x08", 0x03d4
+"\x04\x15\x03\x00", 0x0400
+"\x04\x15\x03\x08", 0x0401
+"\x04\x13\x03\x01", 0x0403
+"\x04\x06\x03\x08", 0x0407
+"\x04\x1a\x03\x01", 0x040c
+"\x04\x18\x03\x00", 0x040d
+"\x04\x23\x03\x06", 0x040e
+"\x04\x18\x03\x06", 0x0419
+"\x04\x38\x03\x06", 0x0439
+"\x04\x35\x03\x00", 0x0450
+"\x04\x35\x03\x08", 0x0451
+"\x04\x33\x03\x01", 0x0453
+"\x04\x56\x03\x08", 0x0457
+"\x04\x3a\x03\x01", 0x045c
+"\x04\x38\x03\x00", 0x045d
+"\x04\x43\x03\x06", 0x045e
+"\x04\x74\x03\x0f", 0x0476
+"\x04\x75\x03\x0f", 0x0477
+"\x04\x16\x03\x06", 0x04c1
+"\x04\x36\x03\x06", 0x04c2
+"\x04\x10\x03\x06", 0x04d0
+"\x04\x30\x03\x06", 0x04d1
+"\x04\x10\x03\x08", 0x04d2
+"\x04\x30\x03\x08", 0x04d3
+"\x04\x15\x03\x06", 0x04d6
+"\x04\x35\x03\x06", 0x04d7
+"\x04\xd8\x03\x08", 0x04da
+"\x04\xd9\x03\x08", 0x04db
+"\x04\x16\x03\x08", 0x04dc
+"\x04\x36\x03\x08", 0x04dd
+"\x04\x17\x03\x08", 0x04de
+"\x04\x37\x03\x08", 0x04df
+"\x04\x18\x03\x04", 0x04e2
+"\x04\x38\x03\x04", 0x04e3
+"\x04\x18\x03\x08", 0x04e4
+"\x04\x38\x03\x08", 0x04e5
+"\x04\x1e\x03\x08", 0x04e6
+"\x04\x3e\x03\x08", 0x04e7
+"\x04\xe8\x03\x08", 0x04ea
+"\x04\xe9\x03\x08", 0x04eb
+"\x04\x2d\x03\x08", 0x04ec
+"\x04\x4d\x03\x08", 0x04ed
+"\x04\x23\x03\x04", 0x04ee
+"\x04\x43\x03\x04", 0x04ef
+"\x04\x23\x03\x08", 0x04f0
+"\x04\x43\x03\x08", 0x04f1
+"\x04\x23\x03\x0b", 0x04f2
+"\x04\x43\x03\x0b", 0x04f3
+"\x04\x27\x03\x08", 0x04f4
+"\x04\x47\x03\x08", 0x04f5
+"\x04\x2b\x03\x08", 0x04f8
+"\x04\x4b\x03\x08", 0x04f9
+"\x06\x27\x06\x53", 0x0622
+"\x06\x27\x06\x54", 0x0623
+"\x06\x48\x06\x54", 0x0624
+"\x06\x27\x06\x55", 0x0625
+"\x06\x4a\x06\x54", 0x0626
+"\x06\xd5\x06\x54", 0x06c0
+"\x06\xc1\x06\x54", 0x06c2
+"\x06\xd2\x06\x54", 0x06d3
+"\x09\x28\x09\x3c", 0x0929
+"\x09\x30\x09\x3c", 0x0931
+"\x09\x33\x09\x3c", 0x0934
+"\x09\xc7\x09\xbe", 0x09cb
+"\x09\xc7\x09\xd7", 0x09cc
+"\x0b\x47\x0b\x56", 0x0b48
+"\x0b\x47\x0b\x3e", 0x0b4b
+"\x0b\x47\x0b\x57", 0x0b4c
+"\x0b\x92\x0b\xd7", 0x0b94
+"\x0b\xc6\x0b\xbe", 0x0bca
+"\x0b\xc7\x0b\xbe", 0x0bcb
+"\x0b\xc6\x0b\xd7", 0x0bcc
+"\x0c\x46\x0c\x56", 0x0c48
+"\x0c\xbf\x0c\xd5", 0x0cc0
+"\x0c\xc6\x0c\xd5", 0x0cc7
+"\x0c\xc6\x0c\xd6", 0x0cc8
+"\x0c\xc6\x0c\xc2", 0x0cca
+"\x0c\xca\x0c\xd5", 0x0ccb
+"\x0d\x46\x0d\x3e", 0x0d4a
+"\x0d\x47\x0d\x3e", 0x0d4b
+"\x0d\x46\x0d\x57", 0x0d4c
+"\x0d\xd9\x0d\xca", 0x0dda
+"\x0d\xd9\x0d\xcf", 0x0ddc
+"\x0d\xdc\x0d\xca", 0x0ddd
+"\x0d\xd9\x0d\xdf", 0x0dde
+"\x10\x25\x10\x2e", 0x1026
+"\x1b\x05\x1b\x35", 0x1b06
+"\x1b\x07\x1b\x35", 0x1b08
+"\x1b\x09\x1b\x35", 0x1b0a
+"\x1b\x0b\x1b\x35", 0x1b0c
+"\x1b\x0d\x1b\x35", 0x1b0e
+"\x1b\x11\x1b\x35", 0x1b12
+"\x1b\x3a\x1b\x35", 0x1b3b
+"\x1b\x3c\x1b\x35", 0x1b3d
+"\x1b\x3e\x1b\x35", 0x1b40
+"\x1b\x3f\x1b\x35", 0x1b41
+"\x1b\x42\x1b\x35", 0x1b43
+"\x00\x41\x03\x25", 0x1e00
+"\x00\x61\x03\x25", 0x1e01
+"\x00\x42\x03\x07", 0x1e02
+"\x00\x62\x03\x07", 0x1e03
+"\x00\x42\x03\x23", 0x1e04
+"\x00\x62\x03\x23", 0x1e05
+"\x00\x42\x03\x31", 0x1e06
+"\x00\x62\x03\x31", 0x1e07
+"\x00\xc7\x03\x01", 0x1e08
+"\x00\xe7\x03\x01", 0x1e09
+"\x00\x44\x03\x07", 0x1e0a
+"\x00\x64\x03\x07", 0x1e0b
+"\x00\x44\x03\x23", 0x1e0c
+"\x00\x64\x03\x23", 0x1e0d
+"\x00\x44\x03\x31", 0x1e0e
+"\x00\x64\x03\x31", 0x1e0f
+"\x00\x44\x03\x27", 0x1e10
+"\x00\x64\x03\x27", 0x1e11
+"\x00\x44\x03\x2d", 0x1e12
+"\x00\x64\x03\x2d", 0x1e13
+"\x01\x12\x03\x00", 0x1e14
+"\x01\x13\x03\x00", 0x1e15
+"\x01\x12\x03\x01", 0x1e16
+"\x01\x13\x03\x01", 0x1e17
+"\x00\x45\x03\x2d", 0x1e18
+"\x00\x65\x03\x2d", 0x1e19
+"\x00\x45\x03\x30", 0x1e1a
+"\x00\x65\x03\x30", 0x1e1b
+"\x02\x28\x03\x06", 0x1e1c
+"\x02\x29\x03\x06", 0x1e1d
+"\x00\x46\x03\x07", 0x1e1e
+"\x00\x66\x03\x07", 0x1e1f
+"\x00\x47\x03\x04", 0x1e20
+"\x00\x67\x03\x04", 0x1e21
+"\x00\x48\x03\x07", 0x1e22
+"\x00\x68\x03\x07", 0x1e23
+"\x00\x48\x03\x23", 0x1e24
+"\x00\x68\x03\x23", 0x1e25
+"\x00\x48\x03\x08", 0x1e26
+"\x00\x68\x03\x08", 0x1e27
+"\x00\x48\x03\x27", 0x1e28
+"\x00\x68\x03\x27", 0x1e29
+"\x00\x48\x03\x2e", 0x1e2a
+"\x00\x68\x03\x2e", 0x1e2b
+"\x00\x49\x03\x30", 0x1e2c
+"\x00\x69\x03\x30", 0x1e2d
+"\x00\xcf\x03\x01", 0x1e2e
+"\x00\xef\x03\x01", 0x1e2f
+"\x00\x4b\x03\x01", 0x1e30
+"\x00\x6b\x03\x01", 0x1e31
+"\x00\x4b\x03\x23", 0x1e32
+"\x00\x6b\x03\x23", 0x1e33
+"\x00\x4b\x03\x31", 0x1e34
+"\x00\x6b\x03\x31", 0x1e35
+"\x00\x4c\x03\x23", 0x1e36
+"\x00\x6c\x03\x23", 0x1e37
+"\x1e\x36\x03\x04", 0x1e38
+"\x1e\x37\x03\x04", 0x1e39
+"\x00\x4c\x03\x31", 0x1e3a
+"\x00\x6c\x03\x31", 0x1e3b
+"\x00\x4c\x03\x2d", 0x1e3c
+"\x00\x6c\x03\x2d", 0x1e3d
+"\x00\x4d\x03\x01", 0x1e3e
+"\x00\x6d\x03\x01", 0x1e3f
+"\x00\x4d\x03\x07", 0x1e40
+"\x00\x6d\x03\x07", 0x1e41
+"\x00\x4d\x03\x23", 0x1e42
+"\x00\x6d\x03\x23", 0x1e43
+"\x00\x4e\x03\x07", 0x1e44
+"\x00\x6e\x03\x07", 0x1e45
+"\x00\x4e\x03\x23", 0x1e46
+"\x00\x6e\x03\x23", 0x1e47
+"\x00\x4e\x03\x31", 0x1e48
+"\x00\x6e\x03\x31", 0x1e49
+"\x00\x4e\x03\x2d", 0x1e4a
+"\x00\x6e\x03\x2d", 0x1e4b
+"\x00\xd5\x03\x01", 0x1e4c
+"\x00\xf5\x03\x01", 0x1e4d
+"\x00\xd5\x03\x08", 0x1e4e
+"\x00\xf5\x03\x08", 0x1e4f
+"\x01\x4c\x03\x00", 0x1e50
+"\x01\x4d\x03\x00", 0x1e51
+"\x01\x4c\x03\x01", 0x1e52
+"\x01\x4d\x03\x01", 0x1e53
+"\x00\x50\x03\x01", 0x1e54
+"\x00\x70\x03\x01", 0x1e55
+"\x00\x50\x03\x07", 0x1e56
+"\x00\x70\x03\x07", 0x1e57
+"\x00\x52\x03\x07", 0x1e58
+"\x00\x72\x03\x07", 0x1e59
+"\x00\x52\x03\x23", 0x1e5a
+"\x00\x72\x03\x23", 0x1e5b
+"\x1e\x5a\x03\x04", 0x1e5c
+"\x1e\x5b\x03\x04", 0x1e5d
+"\x00\x52\x03\x31", 0x1e5e
+"\x00\x72\x03\x31", 0x1e5f
+"\x00\x53\x03\x07", 0x1e60
+"\x00\x73\x03\x07", 0x1e61
+"\x00\x53\x03\x23", 0x1e62
+"\x00\x73\x03\x23", 0x1e63
+"\x01\x5a\x03\x07", 0x1e64
+"\x01\x5b\x03\x07", 0x1e65
+"\x01\x60\x03\x07", 0x1e66
+"\x01\x61\x03\x07", 0x1e67
+"\x1e\x62\x03\x07", 0x1e68
+"\x1e\x63\x03\x07", 0x1e69
+"\x00\x54\x03\x07", 0x1e6a
+"\x00\x74\x03\x07", 0x1e6b
+"\x00\x54\x03\x23", 0x1e6c
+"\x00\x74\x03\x23", 0x1e6d
+"\x00\x54\x03\x31", 0x1e6e
+"\x00\x74\x03\x31", 0x1e6f
+"\x00\x54\x03\x2d", 0x1e70
+"\x00\x74\x03\x2d", 0x1e71
+"\x00\x55\x03\x24", 0x1e72
+"\x00\x75\x03\x24", 0x1e73
+"\x00\x55\x03\x30", 0x1e74
+"\x00\x75\x03\x30", 0x1e75
+"\x00\x55\x03\x2d", 0x1e76
+"\x00\x75\x03\x2d", 0x1e77
+"\x01\x68\x03\x01", 0x1e78
+"\x01\x69\x03\x01", 0x1e79
+"\x01\x6a\x03\x08", 0x1e7a
+"\x01\x6b\x03\x08", 0x1e7b
+"\x00\x56\x03\x03", 0x1e7c
+"\x00\x76\x03\x03", 0x1e7d
+"\x00\x56\x03\x23", 0x1e7e
+"\x00\x76\x03\x23", 0x1e7f
+"\x00\x57\x03\x00", 0x1e80
+"\x00\x77\x03\x00", 0x1e81
+"\x00\x57\x03\x01", 0x1e82
+"\x00\x77\x03\x01", 0x1e83
+"\x00\x57\x03\x08", 0x1e84
+"\x00\x77\x03\x08", 0x1e85
+"\x00\x57\x03\x07", 0x1e86
+"\x00\x77\x03\x07", 0x1e87
+"\x00\x57\x03\x23", 0x1e88
+"\x00\x77\x03\x23", 0x1e89
+"\x00\x58\x03\x07", 0x1e8a
+"\x00\x78\x03\x07", 0x1e8b
+"\x00\x58\x03\x08", 0x1e8c
+"\x00\x78\x03\x08", 0x1e8d
+"\x00\x59\x03\x07", 0x1e8e
+"\x00\x79\x03\x07", 0x1e8f
+"\x00\x5a\x03\x02", 0x1e90
+"\x00\x7a\x03\x02", 0x1e91
+"\x00\x5a\x03\x23", 0x1e92
+"\x00\x7a\x03\x23", 0x1e93
+"\x00\x5a\x03\x31", 0x1e94
+"\x00\x7a\x03\x31", 0x1e95
+"\x00\x68\x03\x31", 0x1e96
+"\x00\x74\x03\x08", 0x1e97
+"\x00\x77\x03\x0a", 0x1e98
+"\x00\x79\x03\x0a", 0x1e99
+"\x01\x7f\x03\x07", 0x1e9b
+"\x00\x41\x03\x23", 0x1ea0
+"\x00\x61\x03\x23", 0x1ea1
+"\x00\x41\x03\x09", 0x1ea2
+"\x00\x61\x03\x09", 0x1ea3
+"\x00\xc2\x03\x01", 0x1ea4
+"\x00\xe2\x03\x01", 0x1ea5
+"\x00\xc2\x03\x00", 0x1ea6
+"\x00\xe2\x03\x00", 0x1ea7
+"\x00\xc2\x03\x09", 0x1ea8
+"\x00\xe2\x03\x09", 0x1ea9
+"\x00\xc2\x03\x03", 0x1eaa
+"\x00\xe2\x03\x03", 0x1eab
+"\x1e\xa0\x03\x02", 0x1eac
+"\x1e\xa1\x03\x02", 0x1ead
+"\x01\x02\x03\x01", 0x1eae
+"\x01\x03\x03\x01", 0x1eaf
+"\x01\x02\x03\x00", 0x1eb0
+"\x01\x03\x03\x00", 0x1eb1
+"\x01\x02\x03\x09", 0x1eb2
+"\x01\x03\x03\x09", 0x1eb3
+"\x01\x02\x03\x03", 0x1eb4
+"\x01\x03\x03\x03", 0x1eb5
+"\x1e\xa0\x03\x06", 0x1eb6
+"\x1e\xa1\x03\x06", 0x1eb7
+"\x00\x45\x03\x23", 0x1eb8
+"\x00\x65\x03\x23", 0x1eb9
+"\x00\x45\x03\x09", 0x1eba
+"\x00\x65\x03\x09", 0x1ebb
+"\x00\x45\x03\x03", 0x1ebc
+"\x00\x65\x03\x03", 0x1ebd
+"\x00\xca\x03\x01", 0x1ebe
+"\x00\xea\x03\x01", 0x1ebf
+"\x00\xca\x03\x00", 0x1ec0
+"\x00\xea\x03\x00", 0x1ec1
+"\x00\xca\x03\x09", 0x1ec2
+"\x00\xea\x03\x09", 0x1ec3
+"\x00\xca\x03\x03", 0x1ec4
+"\x00\xea\x03\x03", 0x1ec5
+"\x1e\xb8\x03\x02", 0x1ec6
+"\x1e\xb9\x03\x02", 0x1ec7
+"\x00\x49\x03\x09", 0x1ec8
+"\x00\x69\x03\x09", 0x1ec9
+"\x00\x49\x03\x23", 0x1eca
+"\x00\x69\x03\x23", 0x1ecb
+"\x00\x4f\x03\x23", 0x1ecc
+"\x00\x6f\x03\x23", 0x1ecd
+"\x00\x4f\x03\x09", 0x1ece
+"\x00\x6f\x03\x09", 0x1ecf
+"\x00\xd4\x03\x01", 0x1ed0
+"\x00\xf4\x03\x01", 0x1ed1
+"\x00\xd4\x03\x00", 0x1ed2
+"\x00\xf4\x03\x00", 0x1ed3
+"\x00\xd4\x03\x09", 0x1ed4
+"\x00\xf4\x03\x09", 0x1ed5
+"\x00\xd4\x03\x03", 0x1ed6
+"\x00\xf4\x03\x03", 0x1ed7
+"\x1e\xcc\x03\x02", 0x1ed8
+"\x1e\xcd\x03\x02", 0x1ed9
+"\x01\xa0\x03\x01", 0x1eda
+"\x01\xa1\x03\x01", 0x1edb
+"\x01\xa0\x03\x00", 0x1edc
+"\x01\xa1\x03\x00", 0x1edd
+"\x01\xa0\x03\x09", 0x1ede
+"\x01\xa1\x03\x09", 0x1edf
+"\x01\xa0\x03\x03", 0x1ee0
+"\x01\xa1\x03\x03", 0x1ee1
+"\x01\xa0\x03\x23", 0x1ee2
+"\x01\xa1\x03\x23", 0x1ee3
+"\x00\x55\x03\x23", 0x1ee4
+"\x00\x75\x03\x23", 0x1ee5
+"\x00\x55\x03\x09", 0x1ee6
+"\x00\x75\x03\x09", 0x1ee7
+"\x01\xaf\x03\x01", 0x1ee8
+"\x01\xb0\x03\x01", 0x1ee9
+"\x01\xaf\x03\x00", 0x1eea
+"\x01\xb0\x03\x00", 0x1eeb
+"\x01\xaf\x03\x09", 0x1eec
+"\x01\xb0\x03\x09", 0x1eed
+"\x01\xaf\x03\x03", 0x1eee
+"\x01\xb0\x03\x03", 0x1eef
+"\x01\xaf\x03\x23", 0x1ef0
+"\x01\xb0\x03\x23", 0x1ef1
+"\x00\x59\x03\x00", 0x1ef2
+"\x00\x79\x03\x00", 0x1ef3
+"\x00\x59\x03\x23", 0x1ef4
+"\x00\x79\x03\x23", 0x1ef5
+"\x00\x59\x03\x09", 0x1ef6
+"\x00\x79\x03\x09", 0x1ef7
+"\x00\x59\x03\x03", 0x1ef8
+"\x00\x79\x03\x03", 0x1ef9
+"\x03\xb1\x03\x13", 0x1f00
+"\x03\xb1\x03\x14", 0x1f01
+"\x1f\x00\x03\x00", 0x1f02
+"\x1f\x01\x03\x00", 0x1f03
+"\x1f\x00\x03\x01", 0x1f04
+"\x1f\x01\x03\x01", 0x1f05
+"\x1f\x00\x03\x42", 0x1f06
+"\x1f\x01\x03\x42", 0x1f07
+"\x03\x91\x03\x13", 0x1f08
+"\x03\x91\x03\x14", 0x1f09
+"\x1f\x08\x03\x00", 0x1f0a
+"\x1f\x09\x03\x00", 0x1f0b
+"\x1f\x08\x03\x01", 0x1f0c
+"\x1f\x09\x03\x01", 0x1f0d
+"\x1f\x08\x03\x42", 0x1f0e
+"\x1f\x09\x03\x42", 0x1f0f
+"\x03\xb5\x03\x13", 0x1f10
+"\x03\xb5\x03\x14", 0x1f11
+"\x1f\x10\x03\x00", 0x1f12
+"\x1f\x11\x03\x00", 0x1f13
+"\x1f\x10\x03\x01", 0x1f14
+"\x1f\x11\x03\x01", 0x1f15
+"\x03\x95\x03\x13", 0x1f18
+"\x03\x95\x03\x14", 0x1f19
+"\x1f\x18\x03\x00", 0x1f1a
+"\x1f\x19\x03\x00", 0x1f1b
+"\x1f\x18\x03\x01", 0x1f1c
+"\x1f\x19\x03\x01", 0x1f1d
+"\x03\xb7\x03\x13", 0x1f20
+"\x03\xb7\x03\x14", 0x1f21
+"\x1f\x20\x03\x00", 0x1f22
+"\x1f\x21\x03\x00", 0x1f23
+"\x1f\x20\x03\x01", 0x1f24
+"\x1f\x21\x03\x01", 0x1f25
+"\x1f\x20\x03\x42", 0x1f26
+"\x1f\x21\x03\x42", 0x1f27
+"\x03\x97\x03\x13", 0x1f28
+"\x03\x97\x03\x14", 0x1f29
+"\x1f\x28\x03\x00", 0x1f2a
+"\x1f\x29\x03\x00", 0x1f2b
+"\x1f\x28\x03\x01", 0x1f2c
+"\x1f\x29\x03\x01", 0x1f2d
+"\x1f\x28\x03\x42", 0x1f2e
+"\x1f\x29\x03\x42", 0x1f2f
+"\x03\xb9\x03\x13", 0x1f30
+"\x03\xb9\x03\x14", 0x1f31
+"\x1f\x30\x03\x00", 0x1f32
+"\x1f\x31\x03\x00", 0x1f33
+"\x1f\x30\x03\x01", 0x1f34
+"\x1f\x31\x03\x01", 0x1f35
+"\x1f\x30\x03\x42", 0x1f36
+"\x1f\x31\x03\x42", 0x1f37
+"\x03\x99\x03\x13", 0x1f38
+"\x03\x99\x03\x14", 0x1f39
+"\x1f\x38\x03\x00", 0x1f3a
+"\x1f\x39\x03\x00", 0x1f3b
+"\x1f\x38\x03\x01", 0x1f3c
+"\x1f\x39\x03\x01", 0x1f3d
+"\x1f\x38\x03\x42", 0x1f3e
+"\x1f\x39\x03\x42", 0x1f3f
+"\x03\xbf\x03\x13", 0x1f40
+"\x03\xbf\x03\x14", 0x1f41
+"\x1f\x40\x03\x00", 0x1f42
+"\x1f\x41\x03\x00", 0x1f43
+"\x1f\x40\x03\x01", 0x1f44
+"\x1f\x41\x03\x01", 0x1f45
+"\x03\x9f\x03\x13", 0x1f48
+"\x03\x9f\x03\x14", 0x1f49
+"\x1f\x48\x03\x00", 0x1f4a
+"\x1f\x49\x03\x00", 0x1f4b
+"\x1f\x48\x03\x01", 0x1f4c
+"\x1f\x49\x03\x01", 0x1f4d
+"\x03\xc5\x03\x13", 0x1f50
+"\x03\xc5\x03\x14", 0x1f51
+"\x1f\x50\x03\x00", 0x1f52
+"\x1f\x51\x03\x00", 0x1f53
+"\x1f\x50\x03\x01", 0x1f54
+"\x1f\x51\x03\x01", 0x1f55
+"\x1f\x50\x03\x42", 0x1f56
+"\x1f\x51\x03\x42", 0x1f57
+"\x03\xa5\x03\x14", 0x1f59
+"\x1f\x59\x03\x00", 0x1f5b
+"\x1f\x59\x03\x01", 0x1f5d
+"\x1f\x59\x03\x42", 0x1f5f
+"\x03\xc9\x03\x13", 0x1f60
+"\x03\xc9\x03\x14", 0x1f61
+"\x1f\x60\x03\x00", 0x1f62
+"\x1f\x61\x03\x00", 0x1f63
+"\x1f\x60\x03\x01", 0x1f64
+"\x1f\x61\x03\x01", 0x1f65
+"\x1f\x60\x03\x42", 0x1f66
+"\x1f\x61\x03\x42", 0x1f67
+"\x03\xa9\x03\x13", 0x1f68
+"\x03\xa9\x03\x14", 0x1f69
+"\x1f\x68\x03\x00", 0x1f6a
+"\x1f\x69\x03\x00", 0x1f6b
+"\x1f\x68\x03\x01", 0x1f6c
+"\x1f\x69\x03\x01", 0x1f6d
+"\x1f\x68\x03\x42", 0x1f6e
+"\x1f\x69\x03\x42", 0x1f6f
+"\x03\xb1\x03\x00", 0x1f70
+"\x03\xb5\x03\x00", 0x1f72
+"\x03\xb7\x03\x00", 0x1f74
+"\x03\xb9\x03\x00", 0x1f76
+"\x03\xbf\x03\x00", 0x1f78
+"\x03\xc5\x03\x00", 0x1f7a
+"\x03\xc9\x03\x00", 0x1f7c
+"\x1f\x00\x03\x45", 0x1f80
+"\x1f\x01\x03\x45", 0x1f81
+"\x1f\x02\x03\x45", 0x1f82
+"\x1f\x03\x03\x45", 0x1f83
+"\x1f\x04\x03\x45", 0x1f84
+"\x1f\x05\x03\x45", 0x1f85
+"\x1f\x06\x03\x45", 0x1f86
+"\x1f\x07\x03\x45", 0x1f87
+"\x1f\x08\x03\x45", 0x1f88
+"\x1f\x09\x03\x45", 0x1f89
+"\x1f\x0a\x03\x45", 0x1f8a
+"\x1f\x0b\x03\x45", 0x1f8b
+"\x1f\x0c\x03\x45", 0x1f8c
+"\x1f\x0d\x03\x45", 0x1f8d
+"\x1f\x0e\x03\x45", 0x1f8e
+"\x1f\x0f\x03\x45", 0x1f8f
+"\x1f\x20\x03\x45", 0x1f90
+"\x1f\x21\x03\x45", 0x1f91
+"\x1f\x22\x03\x45", 0x1f92
+"\x1f\x23\x03\x45", 0x1f93
+"\x1f\x24\x03\x45", 0x1f94
+"\x1f\x25\x03\x45", 0x1f95
+"\x1f\x26\x03\x45", 0x1f96
+"\x1f\x27\x03\x45", 0x1f97
+"\x1f\x28\x03\x45", 0x1f98
+"\x1f\x29\x03\x45", 0x1f99
+"\x1f\x2a\x03\x45", 0x1f9a
+"\x1f\x2b\x03\x45", 0x1f9b
+"\x1f\x2c\x03\x45", 0x1f9c
+"\x1f\x2d\x03\x45", 0x1f9d
+"\x1f\x2e\x03\x45", 0x1f9e
+"\x1f\x2f\x03\x45", 0x1f9f
+"\x1f\x60\x03\x45", 0x1fa0
+"\x1f\x61\x03\x45", 0x1fa1
+"\x1f\x62\x03\x45", 0x1fa2
+"\x1f\x63\x03\x45", 0x1fa3
+"\x1f\x64\x03\x45", 0x1fa4
+"\x1f\x65\x03\x45", 0x1fa5
+"\x1f\x66\x03\x45", 0x1fa6
+"\x1f\x67\x03\x45", 0x1fa7
+"\x1f\x68\x03\x45", 0x1fa8
+"\x1f\x69\x03\x45", 0x1fa9
+"\x1f\x6a\x03\x45", 0x1faa
+"\x1f\x6b\x03\x45", 0x1fab
+"\x1f\x6c\x03\x45", 0x1fac
+"\x1f\x6d\x03\x45", 0x1fad
+"\x1f\x6e\x03\x45", 0x1fae
+"\x1f\x6f\x03\x45", 0x1faf
+"\x03\xb1\x03\x06", 0x1fb0
+"\x03\xb1\x03\x04", 0x1fb1
+"\x1f\x70\x03\x45", 0x1fb2
+"\x03\xb1\x03\x45", 0x1fb3
+"\x03\xac\x03\x45", 0x1fb4
+"\x03\xb1\x03\x42", 0x1fb6
+"\x1f\xb6\x03\x45", 0x1fb7
+"\x03\x91\x03\x06", 0x1fb8
+"\x03\x91\x03\x04", 0x1fb9
+"\x03\x91\x03\x00", 0x1fba
+"\x03\x91\x03\x45", 0x1fbc
+"\x00\xa8\x03\x42", 0x1fc1
+"\x1f\x74\x03\x45", 0x1fc2
+"\x03\xb7\x03\x45", 0x1fc3
+"\x03\xae\x03\x45", 0x1fc4
+"\x03\xb7\x03\x42", 0x1fc6
+"\x1f\xc6\x03\x45", 0x1fc7
+"\x03\x95\x03\x00", 0x1fc8
+"\x03\x97\x03\x00", 0x1fca
+"\x03\x97\x03\x45", 0x1fcc
+"\x1f\xbf\x03\x00", 0x1fcd
+"\x1f\xbf\x03\x01", 0x1fce
+"\x1f\xbf\x03\x42", 0x1fcf
+"\x03\xb9\x03\x06", 0x1fd0
+"\x03\xb9\x03\x04", 0x1fd1
+"\x03\xca\x03\x00", 0x1fd2
+"\x03\xb9\x03\x42", 0x1fd6
+"\x03\xca\x03\x42", 0x1fd7
+"\x03\x99\x03\x06", 0x1fd8
+"\x03\x99\x03\x04", 0x1fd9
+"\x03\x99\x03\x00", 0x1fda
+"\x1f\xfe\x03\x00", 0x1fdd
+"\x1f\xfe\x03\x01", 0x1fde
+"\x1f\xfe\x03\x42", 0x1fdf
+"\x03\xc5\x03\x06", 0x1fe0
+"\x03\xc5\x03\x04", 0x1fe1
+"\x03\xcb\x03\x00", 0x1fe2
+"\x03\xc1\x03\x13", 0x1fe4
+"\x03\xc1\x03\x14", 0x1fe5
+"\x03\xc5\x03\x42", 0x1fe6
+"\x03\xcb\x03\x42", 0x1fe7
+"\x03\xa5\x03\x06", 0x1fe8
+"\x03\xa5\x03\x04", 0x1fe9
+"\x03\xa5\x03\x00", 0x1fea
+"\x03\xa1\x03\x14", 0x1fec
+"\x00\xa8\x03\x00", 0x1fed
+"\x1f\x7c\x03\x45", 0x1ff2
+"\x03\xc9\x03\x45", 0x1ff3
+"\x03\xce\x03\x45", 0x1ff4
+"\x03\xc9\x03\x42", 0x1ff6
+"\x1f\xf6\x03\x45", 0x1ff7
+"\x03\x9f\x03\x00", 0x1ff8
+"\x03\xa9\x03\x00", 0x1ffa
+"\x03\xa9\x03\x45", 0x1ffc
+"\x21\x90\x03\x38", 0x219a
+"\x21\x92\x03\x38", 0x219b
+"\x21\x94\x03\x38", 0x21ae
+"\x21\xd0\x03\x38", 0x21cd
+"\x21\xd4\x03\x38", 0x21ce
+"\x21\xd2\x03\x38", 0x21cf
+"\x22\x03\x03\x38", 0x2204
+"\x22\x08\x03\x38", 0x2209
+"\x22\x0b\x03\x38", 0x220c
+"\x22\x23\x03\x38", 0x2224
+"\x22\x25\x03\x38", 0x2226
+"\x22\x3c\x03\x38", 0x2241
+"\x22\x43\x03\x38", 0x2244
+"\x22\x45\x03\x38", 0x2247
+"\x22\x48\x03\x38", 0x2249
+"\x00\x3d\x03\x38", 0x2260
+"\x22\x61\x03\x38", 0x2262
+"\x22\x4d\x03\x38", 0x226d
+"\x00\x3c\x03\x38", 0x226e
+"\x00\x3e\x03\x38", 0x226f
+"\x22\x64\x03\x38", 0x2270
+"\x22\x65\x03\x38", 0x2271
+"\x22\x72\x03\x38", 0x2274
+"\x22\x73\x03\x38", 0x2275
+"\x22\x76\x03\x38", 0x2278
+"\x22\x77\x03\x38", 0x2279
+"\x22\x7a\x03\x38", 0x2280
+"\x22\x7b\x03\x38", 0x2281
+"\x22\x82\x03\x38", 0x2284
+"\x22\x83\x03\x38", 0x2285
+"\x22\x86\x03\x38", 0x2288
+"\x22\x87\x03\x38", 0x2289
+"\x22\xa2\x03\x38", 0x22ac
+"\x22\xa8\x03\x38", 0x22ad
+"\x22\xa9\x03\x38", 0x22ae
+"\x22\xab\x03\x38", 0x22af
+"\x22\x7c\x03\x38", 0x22e0
+"\x22\x7d\x03\x38", 0x22e1
+"\x22\x91\x03\x38", 0x22e2
+"\x22\x92\x03\x38", 0x22e3
+"\x22\xb2\x03\x38", 0x22ea
+"\x22\xb3\x03\x38", 0x22eb
+"\x22\xb4\x03\x38", 0x22ec
+"\x22\xb5\x03\x38", 0x22ed
+"\x30\x4b\x30\x99", 0x304c
+"\x30\x4d\x30\x99", 0x304e
+"\x30\x4f\x30\x99", 0x3050
+"\x30\x51\x30\x99", 0x3052
+"\x30\x53\x30\x99", 0x3054
+"\x30\x55\x30\x99", 0x3056
+"\x30\x57\x30\x99", 0x3058
+"\x30\x59\x30\x99", 0x305a
+"\x30\x5b\x30\x99", 0x305c
+"\x30\x5d\x30\x99", 0x305e
+"\x30\x5f\x30\x99", 0x3060
+"\x30\x61\x30\x99", 0x3062
+"\x30\x64\x30\x99", 0x3065
+"\x30\x66\x30\x99", 0x3067
+"\x30\x68\x30\x99", 0x3069
+"\x30\x6f\x30\x99", 0x3070
+"\x30\x6f\x30\x9a", 0x3071
+"\x30\x72\x30\x99", 0x3073
+"\x30\x72\x30\x9a", 0x3074
+"\x30\x75\x30\x99", 0x3076
+"\x30\x75\x30\x9a", 0x3077
+"\x30\x78\x30\x99", 0x3079
+"\x30\x78\x30\x9a", 0x307a
+"\x30\x7b\x30\x99", 0x307c
+"\x30\x7b\x30\x9a", 0x307d
+"\x30\x46\x30\x99", 0x3094
+"\x30\x9d\x30\x99", 0x309e
+"\x30\xab\x30\x99", 0x30ac
+"\x30\xad\x30\x99", 0x30ae
+"\x30\xaf\x30\x99", 0x30b0
+"\x30\xb1\x30\x99", 0x30b2
+"\x30\xb3\x30\x99", 0x30b4
+"\x30\xb5\x30\x99", 0x30b6
+"\x30\xb7\x30\x99", 0x30b8
+"\x30\xb9\x30\x99", 0x30ba
+"\x30\xbb\x30\x99", 0x30bc
+"\x30\xbd\x30\x99", 0x30be
+"\x30\xbf\x30\x99", 0x30c0
+"\x30\xc1\x30\x99", 0x30c2
+"\x30\xc4\x30\x99", 0x30c5
+"\x30\xc6\x30\x99", 0x30c7
+"\x30\xc8\x30\x99", 0x30c9
+"\x30\xcf\x30\x99", 0x30d0
+"\x30\xcf\x30\x9a", 0x30d1
+"\x30\xd2\x30\x99", 0x30d3
+"\x30\xd2\x30\x9a", 0x30d4
+"\x30\xd5\x30\x99", 0x30d6
+"\x30\xd5\x30\x9a", 0x30d7
+"\x30\xd8\x30\x99", 0x30d9
+"\x30\xd8\x30\x9a", 0x30da
+"\x30\xdb\x30\x99", 0x30dc
+"\x30\xdb\x30\x9a", 0x30dd
+"\x30\xa6\x30\x99", 0x30f4
+"\x30\xef\x30\x99", 0x30f7
+"\x30\xf0\x30\x99", 0x30f8
+"\x30\xf1\x30\x99", 0x30f9
+"\x30\xf2\x30\x99", 0x30fa
+"\x30\xfd\x30\x99", 0x30fe
diff --git a/lib/uninorm/composition-table.h b/lib/uninorm/composition-table.h
new file mode 100644
index 0000000..3e992a4
--- /dev/null
+++ b/lib/uninorm/composition-table.h
@@ -0,0 +1,2159 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 1 ./uninorm/composition-table.gperf */
+/* Computed positions: -k'1-2,4' */
+
+
+#define TOTAL_KEYWORDS 928
+#define MIN_WORD_LENGTH 4
+#define MAX_WORD_LENGTH 4
+#define MIN_HASH_VALUE 1
+#define MAX_HASH_VALUE 1527
+/* maximum key range = 1527, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+/*ARGSUSED*/
+static unsigned int
+gl_uninorm_compose_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned short asso_values[] =
+ {
+ 7, 1, 0, 3, 58, 132, 240, 62, 4, 33,
+ 117, 268, 485, 135, 601, 599, 103, 770, 249, 284,
+ 59, 337, 685, 524, 711, 106, 498, 569, 712, 1528,
+ 91, 13, 841, 752, 322, 487, 192, 604, 817, 13,
+ 337, 65, 137, 147, 45, 144, 255, 588, 133, 342,
+ 172, 15, 1528, 794, 60, 95, 606, 50, 18, 1528,
+ 239, 67, 198, 362, 75, 89, 324, 2, 531, 167,
+ 12, 375, 289, 61, 397, 314, 431, 452, 395, 180,
+ 821, 736, 362, 561, 456, 202, 536, 360, 645, 300,
+ 592, 700, 1528, 361, 1528, 358, 796, 26, 783, 653,
+ 270, 98, 253, 415, 323, 42, 747, 575, 542, 691,
+ 262, 124, 792, 1528, 251, 559, 236, 133, 12, 406,
+ 460, 219, 627, 9, 158, 168, 1528, 1, 1528, 1528,
+ 161, 153, 1528, 1528, 129, 123, 1528, 1528, 1528, 1528,
+ 1528, 1528, 1528, 1528, 23, 493, 109, 1528, 10, 676,
+ 1528, 725, 1528, 650, 59, 384, 1528, 291, 1528, 50,
+ 589, 518, 79, 1528, 1528, 672, 235, 1528, 466, 628,
+ 1528, 62, 27, 229, 20, 668, 778, 531, 37, 5,
+ 16, 416, 5, 560, 34, 482, 1528, 147, 1528, 138,
+ 1528, 476, 1528, 530, 839, 1, 329, 524, 675, 342,
+ 136, 684, 580, 211, 31, 19, 9, 87, 21, 1528,
+ 356, 1528, 725, 313, 14, 0, 555, 65, 1528, 256,
+ 37, 1528, 1528, 1528, 105, 1528, 833, 1528, 16, 4,
+ 0, 3, 19, 1, 755, 4, 1528, 1528, 1528, 54,
+ 100, 76, 27, 1528, 811, 20, 56, 1528, 1, 1528,
+ 1528, 1528, 706, 14, 71, 1528, 1528
+ };
+ return asso_values[(unsigned char)str[3]+1] + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
+}
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct composition_rule *
+gl_uninorm_compose_lookup (register const char *str, register unsigned int len)
+{
+ static const unsigned char lengthtable[] =
+ {
+ 0, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 0, 4, 4, 0, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4,
+ 4, 0, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 4, 4, 4, 4,
+ 4, 0, 4, 4, 4, 4, 0, 4, 4, 0, 4, 4, 0, 0,
+ 0, 0, 4, 4, 4, 0, 4, 4, 4, 0, 4, 0, 0, 0,
+ 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0, 0, 0,
+ 0, 4, 0, 4, 4, 0, 0, 0, 4, 4, 0, 4, 0, 4,
+ 0, 0, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
+ 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 4, 4, 0, 0,
+ 0, 0, 4, 0, 0, 4, 4, 0, 0, 4, 4, 4, 0, 0,
+ 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0,
+ 0, 0, 0, 4, 0, 4, 4, 0, 0, 4, 0, 4, 0, 0,
+ 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0,
+ 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
+ 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4
+ };
+ static const struct composition_rule wordlist[] =
+ {
+ {""},
+#line 572 "./uninorm/composition-table.gperf"
+ {"\001\002\003\001", 0x1eae},
+#line 574 "./uninorm/composition-table.gperf"
+ {"\001\002\003\000", 0x1eb0},
+ {""},
+#line 573 "./uninorm/composition-table.gperf"
+ {"\001\003\003\001", 0x1eaf},
+#line 575 "./uninorm/composition-table.gperf"
+ {"\001\003\003\000", 0x1eb1},
+#line 557 "./uninorm/composition-table.gperf"
+ {"\001\177\003\007", 0x1e9b},
+#line 236 "./uninorm/composition-table.gperf"
+ {"\000\346\003\001", 0x01fd},
+#line 238 "./uninorm/composition-table.gperf"
+ {"\000\370\003\001", 0x01ff},
+#line 90 "./uninorm/composition-table.gperf"
+ {"\000C\003\001", 0x0106},
+#line 412 "./uninorm/composition-table.gperf"
+ {"\000\347\003\001", 0x1e09},
+#line 234 "./uninorm/composition-table.gperf"
+ {"\000\345\003\001", 0x01fb},
+#line 92 "./uninorm/composition-table.gperf"
+ {"\000C\003\002", 0x0108},
+#line 94 "./uninorm/composition-table.gperf"
+ {"\000C\003\007", 0x010a},
+#line 653 "./uninorm/composition-table.gperf"
+ {"\037\001\003\001", 0x1f05},
+#line 651 "./uninorm/composition-table.gperf"
+ {"\037\001\003\000", 0x1f03},
+#line 655 "./uninorm/composition-table.gperf"
+ {"\037\001\003B", 0x1f07},
+#line 660 "./uninorm/composition-table.gperf"
+ {"\037\010\003\001", 0x1f0c},
+#line 658 "./uninorm/composition-table.gperf"
+ {"\037\010\003\000", 0x1f0a},
+#line 662 "./uninorm/composition-table.gperf"
+ {"\037\010\003B", 0x1f0e},
+#line 652 "./uninorm/composition-table.gperf"
+ {"\037\000\003\001", 0x1f04},
+#line 650 "./uninorm/composition-table.gperf"
+ {"\037\000\003\000", 0x1f02},
+#line 654 "./uninorm/composition-table.gperf"
+ {"\037\000\003B", 0x1f06},
+#line 433 "./uninorm/composition-table.gperf"
+ {"\000F\003\007", 0x1e1e},
+#line 851 "./uninorm/composition-table.gperf"
+ {"\003\316\003E", 0x1ff4},
+#line 757 "./uninorm/composition-table.gperf"
+ {"\037\002\003E", 0x1f82},
+#line 756 "./uninorm/composition-table.gperf"
+ {"\037\001\003E", 0x1f81},
+#line 480 "./uninorm/composition-table.gperf"
+ {"\000\365\003\001", 0x1e4d},
+#line 758 "./uninorm/composition-table.gperf"
+ {"\037\003\003E", 0x1f83},
+#line 763 "./uninorm/composition-table.gperf"
+ {"\037\010\003E", 0x1f88},
+#line 809 "./uninorm/composition-table.gperf"
+ {"\037\266\003E", 0x1fb7},
+#line 506 "./uninorm/composition-table.gperf"
+ {"\001a\003\007", 0x1e67},
+#line 755 "./uninorm/composition-table.gperf"
+ {"\037\000\003E", 0x1f80},
+#line 58 "./uninorm/composition-table.gperf"
+ {"\000a\003\001", 0x00e1},
+#line 57 "./uninorm/composition-table.gperf"
+ {"\000a\003\000", 0x00e0},
+#line 817 "./uninorm/composition-table.gperf"
+ {"\003\256\003E", 0x1fc4},
+#line 59 "./uninorm/composition-table.gperf"
+ {"\000a\003\002", 0x00e2},
+#line 270 "./uninorm/composition-table.gperf"
+ {"\000a\003\007", 0x0227},
+#line 778 "./uninorm/composition-table.gperf"
+ {"\037'\003E", 0x1f97},
+#line 737 "./uninorm/composition-table.gperf"
+ {"\037a\003\001", 0x1f65},
+#line 735 "./uninorm/composition-table.gperf"
+ {"\037a\003\000", 0x1f63},
+#line 739 "./uninorm/composition-table.gperf"
+ {"\037a\003B", 0x1f67},
+#line 807 "./uninorm/composition-table.gperf"
+ {"\003\254\003E", 0x1fb4},
+#line 524 "./uninorm/composition-table.gperf"
+ {"\001i\003\001", 0x1e79},
+#line 206 "./uninorm/composition-table.gperf"
+ {"\000\334\003\001", 0x01d7},
+#line 210 "./uninorm/composition-table.gperf"
+ {"\000\334\003\000", 0x01db},
+#line 661 "./uninorm/composition-table.gperf"
+ {"\037\011\003\001", 0x1f0d},
+#line 659 "./uninorm/composition-table.gperf"
+ {"\037\011\003\000", 0x1f0b},
+#line 663 "./uninorm/composition-table.gperf"
+ {"\037\011\003B", 0x1f0f},
+#line 69 "./uninorm/composition-table.gperf"
+ {"\000i\003\001", 0x00ed},
+#line 68 "./uninorm/composition-table.gperf"
+ {"\000i\003\000", 0x00ec},
+#line 788 "./uninorm/composition-table.gperf"
+ {"\037a\003E", 0x1fa1},
+#line 70 "./uninorm/composition-table.gperf"
+ {"\000i\003\002", 0x00ee},
+#line 288 "./uninorm/composition-table.gperf"
+ {"\003\237\003\001", 0x038c},
+#line 854 "./uninorm/composition-table.gperf"
+ {"\003\237\003\000", 0x1ff8},
+#line 745 "./uninorm/composition-table.gperf"
+ {"\037i\003\001", 0x1f6d},
+#line 743 "./uninorm/composition-table.gperf"
+ {"\037i\003\000", 0x1f6b},
+#line 747 "./uninorm/composition-table.gperf"
+ {"\037i\003B", 0x1f6f},
+#line 764 "./uninorm/composition-table.gperf"
+ {"\037\011\003E", 0x1f89},
+#line 578 "./uninorm/composition-table.gperf"
+ {"\001\002\003\003", 0x1eb4},
+#line 482 "./uninorm/composition-table.gperf"
+ {"\000\365\003\010", 0x1e4f},
+#line 450 "./uninorm/composition-table.gperf"
+ {"\000\357\003\001", 0x1e2f},
+#line 579 "./uninorm/composition-table.gperf"
+ {"\001\003\003\003", 0x1eb5},
+#line 705 "./uninorm/composition-table.gperf"
+ {"\0379\003\001", 0x1f3d},
+#line 703 "./uninorm/composition-table.gperf"
+ {"\0379\003\000", 0x1f3b},
+#line 707 "./uninorm/composition-table.gperf"
+ {"\0379\003B", 0x1f3f},
+#line 61 "./uninorm/composition-table.gperf"
+ {"\000a\003\010", 0x00e4},
+#line 796 "./uninorm/composition-table.gperf"
+ {"\037i\003E", 0x1fa9},
+#line 43 "./uninorm/composition-table.gperf"
+ {"\000I\003\001", 0x00cd},
+#line 42 "./uninorm/composition-table.gperf"
+ {"\000I\003\000", 0x00cc},
+#line 783 "./uninorm/composition-table.gperf"
+ {"\037,\003E", 0x1f9c},
+#line 44 "./uninorm/composition-table.gperf"
+ {"\000I\003\002", 0x00ce},
+#line 128 "./uninorm/composition-table.gperf"
+ {"\000I\003\007", 0x0130},
+#line 317 "./uninorm/composition-table.gperf"
+ {"\0043\003\001", 0x0453},
+#line 719 "./uninorm/composition-table.gperf"
+ {"\037I\003\001", 0x1f4d},
+#line 717 "./uninorm/composition-table.gperf"
+ {"\037I\003\000", 0x1f4b},
+#line 319 "./uninorm/composition-table.gperf"
+ {"\004:\003\001", 0x045c},
+#line 528 "./uninorm/composition-table.gperf"
+ {"\000v\003\003", 0x1e7d},
+#line 689 "./uninorm/composition-table.gperf"
+ {"\037)\003\001", 0x1f2d},
+#line 687 "./uninorm/composition-table.gperf"
+ {"\037)\003\000", 0x1f2b},
+#line 691 "./uninorm/composition-table.gperf"
+ {"\037)\003B", 0x1f2f},
+#line 853 "./uninorm/composition-table.gperf"
+ {"\037\366\003E", 0x1ff7},
+#line 71 "./uninorm/composition-table.gperf"
+ {"\000i\003\010", 0x00ef},
+#line 759 "./uninorm/composition-table.gperf"
+ {"\037\004\003E", 0x1f84},
+#line 835 "./uninorm/composition-table.gperf"
+ {"\037\376\003\001", 0x1fde},
+#line 834 "./uninorm/composition-table.gperf"
+ {"\037\376\003\000", 0x1fdd},
+#line 836 "./uninorm/composition-table.gperf"
+ {"\037\376\003B", 0x1fdf},
+#line 762 "./uninorm/composition-table.gperf"
+ {"\037\007\003E", 0x1f87},
+#line 712 "./uninorm/composition-table.gperf"
+ {"\037@\003\001", 0x1f44},
+#line 710 "./uninorm/composition-table.gperf"
+ {"\037@\003\000", 0x1f42},
+#line 780 "./uninorm/composition-table.gperf"
+ {"\037)\003E", 0x1f99},
+#line 60 "./uninorm/composition-table.gperf"
+ {"\000a\003\003", 0x00e3},
+#line 345 "./uninorm/composition-table.gperf"
+ {"\004\351\003\010", 0x04eb},
+#line 351 "./uninorm/composition-table.gperf"
+ {"\004C\003\010", 0x04f1},
+#line 449 "./uninorm/composition-table.gperf"
+ {"\000\317\003\001", 0x1e2e},
+#line 87 "./uninorm/composition-table.gperf"
+ {"\000a\003\006", 0x0103},
+#line 32 "./uninorm/composition-table.gperf"
+ {"\000A\003\001", 0x00c1},
+#line 31 "./uninorm/composition-table.gperf"
+ {"\000A\003\000", 0x00c0},
+#line 89 "./uninorm/composition-table.gperf"
+ {"\000a\003(", 0x0105},
+#line 33 "./uninorm/composition-table.gperf"
+ {"\000A\003\002", 0x00c2},
+#line 269 "./uninorm/composition-table.gperf"
+ {"\000A\003\007", 0x0226},
+#line 45 "./uninorm/composition-table.gperf"
+ {"\000I\003\010", 0x00cf},
+#line 713 "./uninorm/composition-table.gperf"
+ {"\037A\003\001", 0x1f45},
+#line 711 "./uninorm/composition-table.gperf"
+ {"\037A\003\000", 0x1f43},
+#line 354 "./uninorm/composition-table.gperf"
+ {"\004'\003\010", 0x04f4},
+#line 65 "./uninorm/composition-table.gperf"
+ {"\000e\003\001", 0x00e9},
+#line 64 "./uninorm/composition-table.gperf"
+ {"\000e\003\000", 0x00e8},
+#line 121 "./uninorm/composition-table.gperf"
+ {"\000i\003\003", 0x0129},
+#line 66 "./uninorm/composition-table.gperf"
+ {"\000e\003\002", 0x00ea},
+#line 105 "./uninorm/composition-table.gperf"
+ {"\000e\003\007", 0x0117},
+#line 344 "./uninorm/composition-table.gperf"
+ {"\004\350\003\010", 0x04ea},
+#line 125 "./uninorm/composition-table.gperf"
+ {"\000i\003\006", 0x012d},
+#line 714 "./uninorm/composition-table.gperf"
+ {"\003\237\003\023", 0x1f48},
+#line 615 "./uninorm/composition-table.gperf"
+ {"\036\315\003\002", 0x1ed9},
+#line 127 "./uninorm/composition-table.gperf"
+ {"\000i\003(", 0x012f},
+#line 368 "./uninorm/composition-table.gperf"
+ {"\0113\011<", 0x0934},
+#line 668 "./uninorm/composition-table.gperf"
+ {"\037\020\003\001", 0x1f14},
+#line 666 "./uninorm/composition-table.gperf"
+ {"\037\020\003\000", 0x1f12},
+#line 576 "./uninorm/composition-table.gperf"
+ {"\001\002\003\011", 0x1eb2},
+#line 675 "./uninorm/composition-table.gperf"
+ {"\037\031\003\001", 0x1f1d},
+#line 673 "./uninorm/composition-table.gperf"
+ {"\037\031\003\000", 0x1f1b},
+#line 577 "./uninorm/composition-table.gperf"
+ {"\001\003\003\011", 0x1eb3},
+#line 321 "./uninorm/composition-table.gperf"
+ {"\004C\003\006", 0x045e},
+#line 792 "./uninorm/composition-table.gperf"
+ {"\037e\003E", 0x1fa5},
+#line 872 "./uninorm/composition-table.gperf"
+ {"\000=\0038", 0x2260},
+#line 614 "./uninorm/composition-table.gperf"
+ {"\036\314\003\002", 0x1ed8},
+#line 120 "./uninorm/composition-table.gperf"
+ {"\000I\003\003", 0x0128},
+#line 432 "./uninorm/composition-table.gperf"
+ {"\002)\003\006", 0x1e1d},
+#line 596 "./uninorm/composition-table.gperf"
+ {"\036\270\003\002", 0x1ec6},
+#line 35 "./uninorm/composition-table.gperf"
+ {"\000A\003\010", 0x00c4},
+#line 124 "./uninorm/composition-table.gperf"
+ {"\000I\003\006", 0x012c},
+#line 74 "./uninorm/composition-table.gperf"
+ {"\000o\003\001", 0x00f3},
+#line 73 "./uninorm/composition-table.gperf"
+ {"\000o\003\000", 0x00f2},
+#line 126 "./uninorm/composition-table.gperf"
+ {"\000I\003(", 0x012e},
+#line 75 "./uninorm/composition-table.gperf"
+ {"\000o\003\002", 0x00f4},
+#line 278 "./uninorm/composition-table.gperf"
+ {"\000o\003\007", 0x022f},
+#line 240 "./uninorm/composition-table.gperf"
+ {"\000a\003\017", 0x0201},
+#line 225 "./uninorm/composition-table.gperf"
+ {"\001\353\003\004", 0x01ed},
+#line 67 "./uninorm/composition-table.gperf"
+ {"\000e\003\010", 0x00eb},
+#line 217 "./uninorm/composition-table.gperf"
+ {"\000\346\003\004", 0x01e3},
+#line 79 "./uninorm/composition-table.gperf"
+ {"\000u\003\001", 0x00fa},
+#line 78 "./uninorm/composition-table.gperf"
+ {"\000u\003\000", 0x00f9},
+#line 765 "./uninorm/composition-table.gperf"
+ {"\037\012\003E", 0x1f8a},
+#line 80 "./uninorm/composition-table.gperf"
+ {"\000u\003\002", 0x00fb},
+#line 96 "./uninorm/composition-table.gperf"
+ {"\000C\003\014", 0x010c},
+#line 215 "./uninorm/composition-table.gperf"
+ {"\002'\003\004", 0x01e1},
+#line 696 "./uninorm/composition-table.gperf"
+ {"\0370\003\001", 0x1f34},
+#line 694 "./uninorm/composition-table.gperf"
+ {"\0370\003\000", 0x1f32},
+#line 698 "./uninorm/composition-table.gperf"
+ {"\0370\003B", 0x1f36},
+#line 802 "./uninorm/composition-table.gperf"
+ {"\037o\003E", 0x1faf},
+#line 561 "./uninorm/composition-table.gperf"
+ {"\000a\003\011", 0x1ea3},
+#line 335 "./uninorm/composition-table.gperf"
+ {"\0046\003\010", 0x04dd},
+#line 248 "./uninorm/composition-table.gperf"
+ {"\000i\003\017", 0x0209},
+#line 273 "./uninorm/composition-table.gperf"
+ {"\000\326\003\004", 0x022a},
+#line 34 "./uninorm/composition-table.gperf"
+ {"\000A\003\003", 0x00c3},
+#line 213 "./uninorm/composition-table.gperf"
+ {"\000\344\003\004", 0x01df},
+#line 333 "./uninorm/composition-table.gperf"
+ {"\004\331\003\010", 0x04db},
+#line 760 "./uninorm/composition-table.gperf"
+ {"\037\005\003E", 0x1f85},
+#line 86 "./uninorm/composition-table.gperf"
+ {"\000A\003\006", 0x0102},
+#line 276 "./uninorm/composition-table.gperf"
+ {"\000\365\003\004", 0x022d},
+#line 768 "./uninorm/composition-table.gperf"
+ {"\037\015\003E", 0x1f8d},
+#line 88 "./uninorm/composition-table.gperf"
+ {"\000A\003(", 0x0104},
+#line 781 "./uninorm/composition-table.gperf"
+ {"\037*\003E", 0x1f9a},
+#line 587 "./uninorm/composition-table.gperf"
+ {"\000e\003\003", 0x1ebd},
+#line 77 "./uninorm/composition-table.gperf"
+ {"\000o\003\010", 0x00f6},
+#line 85 "./uninorm/composition-table.gperf"
+ {"\000a\003\004", 0x0101},
+#line 599 "./uninorm/composition-table.gperf"
+ {"\000i\003\011", 0x1ec9},
+#line 103 "./uninorm/composition-table.gperf"
+ {"\000e\003\006", 0x0115},
+#line 197 "./uninorm/composition-table.gperf"
+ {"\000a\003\014", 0x01ce},
+#line 784 "./uninorm/composition-table.gperf"
+ {"\037-\003E", 0x1f9d},
+#line 107 "./uninorm/composition-table.gperf"
+ {"\000e\003(", 0x0119},
+#line 247 "./uninorm/composition-table.gperf"
+ {"\000I\003\017", 0x0208},
+#line 782 "./uninorm/composition-table.gperf"
+ {"\037+\003E", 0x1f9b},
+#line 81 "./uninorm/composition-table.gperf"
+ {"\000u\003\010", 0x00fc},
+#line 39 "./uninorm/composition-table.gperf"
+ {"\000E\003\001", 0x00c9},
+#line 38 "./uninorm/composition-table.gperf"
+ {"\000E\003\000", 0x00c8},
+#line 204 "./uninorm/composition-table.gperf"
+ {"\000\334\003\004", 0x01d5},
+#line 40 "./uninorm/composition-table.gperf"
+ {"\000E\003\002", 0x00ca},
+#line 104 "./uninorm/composition-table.gperf"
+ {"\000E\003\007", 0x0116},
+#line 208 "./uninorm/composition-table.gperf"
+ {"\000\334\003\014", 0x01d9},
+#line 325 "./uninorm/composition-table.gperf"
+ {"\0046\003\006", 0x04c2},
+#line 123 "./uninorm/composition-table.gperf"
+ {"\000i\003\004", 0x012b},
+#line 342 "./uninorm/composition-table.gperf"
+ {"\004\036\003\010", 0x04e6},
+#line 849 "./uninorm/composition-table.gperf"
+ {"\037|\003E", 0x1ff2},
+#line 199 "./uninorm/composition-table.gperf"
+ {"\000i\003\014", 0x01d0},
+#line 598 "./uninorm/composition-table.gperf"
+ {"\000I\003\011", 0x1ec8},
+#line 337 "./uninorm/composition-table.gperf"
+ {"\0047\003\010", 0x04df},
+#line 48 "./uninorm/composition-table.gperf"
+ {"\000O\003\001", 0x00d3},
+#line 47 "./uninorm/composition-table.gperf"
+ {"\000O\003\000", 0x00d2},
+#line 76 "./uninorm/composition-table.gperf"
+ {"\000o\003\003", 0x00f5},
+#line 49 "./uninorm/composition-table.gperf"
+ {"\000O\003\002", 0x00d4},
+#line 277 "./uninorm/composition-table.gperf"
+ {"\000O\003\007", 0x022e},
+#line 349 "./uninorm/composition-table.gperf"
+ {"\004C\003\004", 0x04ef},
+#line 148 "./uninorm/composition-table.gperf"
+ {"\000o\003\006", 0x014f},
+#line 328 "./uninorm/composition-table.gperf"
+ {"\004\020\003\010", 0x04d2},
+#line 274 "./uninorm/composition-table.gperf"
+ {"\000\366\003\004", 0x022b},
+#line 223 "./uninorm/composition-table.gperf"
+ {"\000o\003(", 0x01eb},
+#line 932 "./uninorm/composition-table.gperf"
+ {"0\2630\231", 0x30b4},
+#line 170 "./uninorm/composition-table.gperf"
+ {"\000u\003\003", 0x0169},
+#line 239 "./uninorm/composition-table.gperf"
+ {"\000A\003\017", 0x0200},
+#line 122 "./uninorm/composition-table.gperf"
+ {"\000I\003\004", 0x012a},
+#line 924 "./uninorm/composition-table.gperf"
+ {"0{0\231", 0x307c},
+#line 174 "./uninorm/composition-table.gperf"
+ {"\000u\003\006", 0x016d},
+#line 198 "./uninorm/composition-table.gperf"
+ {"\000I\003\014", 0x01cf},
+#line 926 "./uninorm/composition-table.gperf"
+ {"0F0\231", 0x3094},
+#line 180 "./uninorm/composition-table.gperf"
+ {"\000u\003(", 0x0173},
+#line 958 "./uninorm/composition-table.gperf"
+ {"0\3750\231", 0x30fe},
+#line 41 "./uninorm/composition-table.gperf"
+ {"\000E\003\010", 0x00cb},
+#line 244 "./uninorm/composition-table.gperf"
+ {"\000e\003\017", 0x0205},
+#line 53 "./uninorm/composition-table.gperf"
+ {"\000U\003\001", 0x00da},
+#line 52 "./uninorm/composition-table.gperf"
+ {"\000U\003\000", 0x00d9},
+#line 530 "./uninorm/composition-table.gperf"
+ {"\000v\003#", 0x1e7f},
+#line 54 "./uninorm/composition-table.gperf"
+ {"\000U\003\002", 0x00db},
+#line 560 "./uninorm/composition-table.gperf"
+ {"\000A\003\011", 0x1ea2},
+#line 298 "./uninorm/composition-table.gperf"
+ {"\003\313\003\001", 0x03b0},
+#line 839 "./uninorm/composition-table.gperf"
+ {"\003\313\003\000", 0x1fe2},
+#line 843 "./uninorm/composition-table.gperf"
+ {"\003\313\003B", 0x1fe7},
+#line 775 "./uninorm/composition-table.gperf"
+ {"\037$\003E", 0x1f94},
+#line 912 "./uninorm/composition-table.gperf"
+ {"0a0\231", 0x3062},
+#line 957 "./uninorm/composition-table.gperf"
+ {"0\3620\231", 0x30fa},
+#line 51 "./uninorm/composition-table.gperf"
+ {"\000O\003\010", 0x00d6},
+#line 388 "./uninorm/composition-table.gperf"
+ {"\015\331\015\317", 0x0ddc},
+#line 585 "./uninorm/composition-table.gperf"
+ {"\000e\003\011", 0x1ebb},
+#line 326 "./uninorm/composition-table.gperf"
+ {"\004\020\003\006", 0x04d0},
+#line 329 "./uninorm/composition-table.gperf"
+ {"\0040\003\010", 0x04d3},
+#line 559 "./uninorm/composition-table.gperf"
+ {"\000a\003#", 0x1ea1},
+#line 82 "./uninorm/composition-table.gperf"
+ {"\000y\003\001", 0x00fd},
+#line 641 "./uninorm/composition-table.gperf"
+ {"\000y\003\000", 0x1ef3},
+#line 84 "./uninorm/composition-table.gperf"
+ {"\000A\003\004", 0x0100},
+#line 184 "./uninorm/composition-table.gperf"
+ {"\000y\003\002", 0x0177},
+#line 546 "./uninorm/composition-table.gperf"
+ {"\000y\003\007", 0x1e8f},
+#line 196 "./uninorm/composition-table.gperf"
+ {"\000A\003\014", 0x01cd},
+#line 586 "./uninorm/composition-table.gperf"
+ {"\000E\003\003", 0x1ebc},
+#line 367 "./uninorm/composition-table.gperf"
+ {"\0110\011<", 0x0931},
+#line 252 "./uninorm/composition-table.gperf"
+ {"\000o\003\017", 0x020d},
+#line 346 "./uninorm/composition-table.gperf"
+ {"\004-\003\010", 0x04ec},
+#line 102 "./uninorm/composition-table.gperf"
+ {"\000E\003\006", 0x0114},
+#line 101 "./uninorm/composition-table.gperf"
+ {"\000e\003\004", 0x0113},
+#line 356 "./uninorm/composition-table.gperf"
+ {"\004+\003\010", 0x04f8},
+#line 106 "./uninorm/composition-table.gperf"
+ {"\000E\003(", 0x0118},
+#line 109 "./uninorm/composition-table.gperf"
+ {"\000e\003\014", 0x011b},
+#line 601 "./uninorm/composition-table.gperf"
+ {"\000i\003#", 0x1ecb},
+#line 55 "./uninorm/composition-table.gperf"
+ {"\000U\003\010", 0x00dc},
+#line 260 "./uninorm/composition-table.gperf"
+ {"\000u\003\017", 0x0215},
+#line 227 "./uninorm/composition-table.gperf"
+ {"\002\222\003\014", 0x01ef},
+#line 50 "./uninorm/composition-table.gperf"
+ {"\000O\003\003", 0x00d5},
+#line 954 "./uninorm/composition-table.gperf"
+ {"0\3570\231", 0x30f7},
+#line 510 "./uninorm/composition-table.gperf"
+ {"\000t\003\007", 0x1e6b},
+#line 605 "./uninorm/composition-table.gperf"
+ {"\000o\003\011", 0x1ecf},
+#line 147 "./uninorm/composition-table.gperf"
+ {"\000O\003\006", 0x014e},
+#line 425 "./uninorm/composition-table.gperf"
+ {"\001\022\003\001", 0x1e16},
+#line 423 "./uninorm/composition-table.gperf"
+ {"\001\022\003\000", 0x1e14},
+#line 222 "./uninorm/composition-table.gperf"
+ {"\000O\003(", 0x01ea},
+#line 327 "./uninorm/composition-table.gperf"
+ {"\0040\003\006", 0x04d1},
+#line 928 "./uninorm/composition-table.gperf"
+ {"0\2530\231", 0x30ac},
+#line 876 "./uninorm/composition-table.gperf"
+ {"\000>\0038", 0x226f},
+#line 266 "./uninorm/composition-table.gperf"
+ {"\000t\003&", 0x021b},
+#line 629 "./uninorm/composition-table.gperf"
+ {"\000u\003\011", 0x1ee7},
+#line 152 "./uninorm/composition-table.gperf"
+ {"\000r\003\001", 0x0155},
+#line 83 "./uninorm/composition-table.gperf"
+ {"\000y\003\010", 0x00ff},
+#line 600 "./uninorm/composition-table.gperf"
+ {"\000I\003#", 0x1eca},
+#line 815 "./uninorm/composition-table.gperf"
+ {"\037t\003E", 0x1fc2},
+#line 492 "./uninorm/composition-table.gperf"
+ {"\000r\003\007", 0x1e59},
+#line 146 "./uninorm/composition-table.gperf"
+ {"\000o\003\004", 0x014d},
+#line 434 "./uninorm/composition-table.gperf"
+ {"\000f\003\007", 0x1e1f},
+#line 761 "./uninorm/composition-table.gperf"
+ {"\037\006\003E", 0x1f86},
+#line 201 "./uninorm/composition-table.gperf"
+ {"\000o\003\014", 0x01d2},
+#line 169 "./uninorm/composition-table.gperf"
+ {"\000U\003\003", 0x0168},
+#line 956 "./uninorm/composition-table.gperf"
+ {"0\3610\231", 0x30f9},
+#line 140 "./uninorm/composition-table.gperf"
+ {"\000n\003\001", 0x0144},
+#line 232 "./uninorm/composition-table.gperf"
+ {"\000n\003\000", 0x01f9},
+#line 173 "./uninorm/composition-table.gperf"
+ {"\000U\003\006", 0x016c},
+#line 172 "./uninorm/composition-table.gperf"
+ {"\000u\003\004", 0x016b},
+#line 472 "./uninorm/composition-table.gperf"
+ {"\000n\003\007", 0x1e45},
+#line 179 "./uninorm/composition-table.gperf"
+ {"\000U\003(", 0x0172},
+#line 203 "./uninorm/composition-table.gperf"
+ {"\000u\003\014", 0x01d4},
+#line 554 "./uninorm/composition-table.gperf"
+ {"\000t\003\010", 0x1e97},
+#line 243 "./uninorm/composition-table.gperf"
+ {"\000E\003\017", 0x0204},
+#line 793 "./uninorm/composition-table.gperf"
+ {"\037f\003E", 0x1fa6},
+#line 943 "./uninorm/composition-table.gperf"
+ {"0\3170\231", 0x30d0},
+#line 785 "./uninorm/composition-table.gperf"
+ {"\037.\003E", 0x1f9e},
+#line 414 "./uninorm/composition-table.gperf"
+ {"\000d\003\007", 0x1e0b},
+#line 242 "./uninorm/composition-table.gperf"
+ {"\000a\003\021", 0x0203},
+#line 459 "./uninorm/composition-table.gperf"
+ {"\0366\003\004", 0x1e38},
+#line 647 "./uninorm/composition-table.gperf"
+ {"\000y\003\003", 0x1ef9},
+#line 426 "./uninorm/composition-table.gperf"
+ {"\001\023\003\001", 0x1e17},
+#line 424 "./uninorm/composition-table.gperf"
+ {"\001\023\003\000", 0x1e15},
+#line 801 "./uninorm/composition-table.gperf"
+ {"\037n\003E", 0x1fae},
+#line 558 "./uninorm/composition-table.gperf"
+ {"\000A\003#", 0x1ea0},
+#line 343 "./uninorm/composition-table.gperf"
+ {"\004>\003\010", 0x04e7},
+#line 251 "./uninorm/composition-table.gperf"
+ {"\000O\003\017", 0x020c},
+#line 584 "./uninorm/composition-table.gperf"
+ {"\000E\003\011", 0x1eba},
+#line 955 "./uninorm/composition-table.gperf"
+ {"0\3600\231", 0x30f8},
+#line 766 "./uninorm/composition-table.gperf"
+ {"\037\013\003E", 0x1f8b},
+#line 323 "./uninorm/composition-table.gperf"
+ {"\004u\003\017", 0x0477},
+#line 791 "./uninorm/composition-table.gperf"
+ {"\037d\003E", 0x1fa4},
+#line 875 "./uninorm/composition-table.gperf"
+ {"\000<\0038", 0x226e},
+#line 583 "./uninorm/composition-table.gperf"
+ {"\000e\003#", 0x1eb9},
+#line 250 "./uninorm/composition-table.gperf"
+ {"\000i\003\021", 0x020b},
+#line 118 "./uninorm/composition-table.gperf"
+ {"\000H\003\002", 0x0124},
+#line 437 "./uninorm/composition-table.gperf"
+ {"\000H\003\007", 0x1e22},
+#line 62 "./uninorm/composition-table.gperf"
+ {"\000a\003\012", 0x00e5},
+#line 718 "./uninorm/composition-table.gperf"
+ {"\037H\003\001", 0x1f4c},
+#line 716 "./uninorm/composition-table.gperf"
+ {"\037H\003\000", 0x1f4a},
+#line 604 "./uninorm/composition-table.gperf"
+ {"\000O\003\011", 0x1ece},
+#line 390 "./uninorm/composition-table.gperf"
+ {"\015\331\015\337", 0x0dde},
+#line 100 "./uninorm/composition-table.gperf"
+ {"\000E\003\004", 0x0112},
+#line 56 "./uninorm/composition-table.gperf"
+ {"\000Y\003\001", 0x00dd},
+#line 640 "./uninorm/composition-table.gperf"
+ {"\000Y\003\000", 0x1ef2},
+#line 108 "./uninorm/composition-table.gperf"
+ {"\000E\003\014", 0x011a},
+#line 183 "./uninorm/composition-table.gperf"
+ {"\000Y\003\002", 0x0176},
+#line 545 "./uninorm/composition-table.gperf"
+ {"\000Y\003\007", 0x1e8e},
+#line 259 "./uninorm/composition-table.gperf"
+ {"\000U\003\017", 0x0214},
+#line 730 "./uninorm/composition-table.gperf"
+ {"\037Y\003\001", 0x1f5d},
+#line 729 "./uninorm/composition-table.gperf"
+ {"\037Y\003\000", 0x1f5b},
+#line 731 "./uninorm/composition-table.gperf"
+ {"\037Y\003B", 0x1f5f},
+#line 916 "./uninorm/composition-table.gperf"
+ {"0o0\231", 0x3070},
+#line 249 "./uninorm/composition-table.gperf"
+ {"\000I\003\021", 0x020a},
+#line 460 "./uninorm/composition-table.gperf"
+ {"\0367\003\004", 0x1e39},
+#line 145 "./uninorm/composition-table.gperf"
+ {"\000O\003\004", 0x014c},
+#line 479 "./uninorm/composition-table.gperf"
+ {"\000\325\003\001", 0x1e4c},
+#line 451 "./uninorm/composition-table.gperf"
+ {"\000K\003\001", 0x1e30},
+#line 200 "./uninorm/composition-table.gperf"
+ {"\000O\003\014", 0x01d1},
+#line 603 "./uninorm/composition-table.gperf"
+ {"\000o\003#", 0x1ecd},
+#line 523 "./uninorm/composition-table.gperf"
+ {"\001h\003\001", 0x1e78},
+#line 920 "./uninorm/composition-table.gperf"
+ {"0u0\231", 0x3076},
+#line 628 "./uninorm/composition-table.gperf"
+ {"\000U\003\011", 0x1ee6},
+#line 72 "./uninorm/composition-table.gperf"
+ {"\000n\003\003", 0x00f1},
+#line 942 "./uninorm/composition-table.gperf"
+ {"0\3100\231", 0x30c9},
+#line 441 "./uninorm/composition-table.gperf"
+ {"\000H\003\010", 0x1e26},
+#line 937 "./uninorm/composition-table.gperf"
+ {"0\2750\231", 0x30be},
+#line 309 "./uninorm/composition-table.gperf"
+ {"\004\006\003\010", 0x0407},
+#line 627 "./uninorm/composition-table.gperf"
+ {"\000u\003#", 0x1ee5},
+#line 119 "./uninorm/composition-table.gperf"
+ {"\000h\003\002", 0x0125},
+#line 438 "./uninorm/composition-table.gperf"
+ {"\000h\003\007", 0x1e23},
+#line 405 "./uninorm/composition-table.gperf"
+ {"\000B\003\007", 0x1e02},
+#line 744 "./uninorm/composition-table.gperf"
+ {"\037h\003\001", 0x1f6c},
+#line 742 "./uninorm/composition-table.gperf"
+ {"\037h\003\000", 0x1f6a},
+#line 746 "./uninorm/composition-table.gperf"
+ {"\037h\003B", 0x1f6e},
+#line 936 "./uninorm/composition-table.gperf"
+ {"0\2730\231", 0x30bc},
+#line 185 "./uninorm/composition-table.gperf"
+ {"\000Y\003\010", 0x0178},
+#line 171 "./uninorm/composition-table.gperf"
+ {"\000U\003\004", 0x016a},
+#line 308 "./uninorm/composition-table.gperf"
+ {"\004\023\003\001", 0x0403},
+#line 645 "./uninorm/composition-table.gperf"
+ {"\000y\003\011", 0x1ef7},
+#line 202 "./uninorm/composition-table.gperf"
+ {"\000U\003\014", 0x01d3},
+#line 241 "./uninorm/composition-table.gperf"
+ {"\000A\003\021", 0x0202},
+#line 37 "./uninorm/composition-table.gperf"
+ {"\000C\003'", 0x00c7},
+#line 773 "./uninorm/composition-table.gperf"
+ {"\037\"\003E", 0x1f92},
+#line 795 "./uninorm/composition-table.gperf"
+ {"\037h\003E", 0x1fa8},
+#line 411 "./uninorm/composition-table.gperf"
+ {"\000\307\003\001", 0x1e08},
+#line 688 "./uninorm/composition-table.gperf"
+ {"\037(\003\001", 0x1f2c},
+#line 686 "./uninorm/composition-table.gperf"
+ {"\037(\003\000", 0x1f2a},
+#line 690 "./uninorm/composition-table.gperf"
+ {"\037(\003B", 0x1f2e},
+#line 481 "./uninorm/composition-table.gperf"
+ {"\000\325\003\010", 0x1e4e},
+#line 246 "./uninorm/composition-table.gperf"
+ {"\000e\003\021", 0x0207},
+#line 697 "./uninorm/composition-table.gperf"
+ {"\0371\003\001", 0x1f35},
+#line 695 "./uninorm/composition-table.gperf"
+ {"\0371\003\000", 0x1f33},
+#line 699 "./uninorm/composition-table.gperf"
+ {"\0371\003B", 0x1f37},
+#line 282 "./uninorm/composition-table.gperf"
+ {"\000y\003\004", 0x0233},
+#line 304 "./uninorm/composition-table.gperf"
+ {"\003\322\003\001", 0x03d3},
+#line 428 "./uninorm/composition-table.gperf"
+ {"\000e\003-", 0x1e19},
+#line 256 "./uninorm/composition-table.gperf"
+ {"\000r\003\017", 0x0211},
+#line 779 "./uninorm/composition-table.gperf"
+ {"\037(\003E", 0x1f98},
+#line 442 "./uninorm/composition-table.gperf"
+ {"\000h\003\010", 0x1e27},
+#line 36 "./uninorm/composition-table.gperf"
+ {"\000A\003\012", 0x00c5},
+#line 646 "./uninorm/composition-table.gperf"
+ {"\000Y\003\003", 0x1ef8},
+#line 582 "./uninorm/composition-table.gperf"
+ {"\000E\003#", 0x1eb8},
+#line 533 "./uninorm/composition-table.gperf"
+ {"\000W\003\001", 0x1e82},
+#line 531 "./uninorm/composition-table.gperf"
+ {"\000W\003\000", 0x1e80},
+#line 151 "./uninorm/composition-table.gperf"
+ {"\000R\003\001", 0x0154},
+#line 181 "./uninorm/composition-table.gperf"
+ {"\000W\003\002", 0x0174},
+#line 537 "./uninorm/composition-table.gperf"
+ {"\000W\003\007", 0x1e86},
+#line 903 "./uninorm/composition-table.gperf"
+ {"0O0\231", 0x3050},
+#line 491 "./uninorm/composition-table.gperf"
+ {"\000R\003\007", 0x1e58},
+#line 869 "./uninorm/composition-table.gperf"
+ {"\"C\0038", 0x2244},
+#line 863 "./uninorm/composition-table.gperf"
+ {"\"\003\0038", 0x2204},
+#line 864 "./uninorm/composition-table.gperf"
+ {"\"\010\0038", 0x2209},
+#line 898 "./uninorm/composition-table.gperf"
+ {"\"\263\0038", 0x22eb},
+#line 168 "./uninorm/composition-table.gperf"
+ {"\000t\003\014", 0x0165},
+#line 602 "./uninorm/composition-table.gperf"
+ {"\000O\003#", 0x1ecc},
+#line 254 "./uninorm/composition-table.gperf"
+ {"\000o\003\021", 0x020f},
+#line 884 "./uninorm/composition-table.gperf"
+ {"\"{\0038", 0x2281},
+#line 229 "./uninorm/composition-table.gperf"
+ {"\000G\003\001", 0x01f4},
+#line 389 "./uninorm/composition-table.gperf"
+ {"\015\334\015\312", 0x0ddd},
+#line 881 "./uninorm/composition-table.gperf"
+ {"\"v\0038", 0x2278},
+#line 110 "./uninorm/composition-table.gperf"
+ {"\000G\003\002", 0x011c},
+#line 114 "./uninorm/composition-table.gperf"
+ {"\000G\003\007", 0x0120},
+#line 279 "./uninorm/composition-table.gperf"
+ {"\002.\003\004", 0x0230},
+#line 899 "./uninorm/composition-table.gperf"
+ {"\"\264\0038", 0x22ec},
+#line 262 "./uninorm/composition-table.gperf"
+ {"\000u\003\021", 0x0217},
+#line 715 "./uninorm/composition-table.gperf"
+ {"\003\237\003\024", 0x1f49},
+#line 448 "./uninorm/composition-table.gperf"
+ {"\000i\0030", 0x1e2d},
+#line 305 "./uninorm/composition-table.gperf"
+ {"\003\322\003\010", 0x03d4},
+#line 156 "./uninorm/composition-table.gperf"
+ {"\000r\003\014", 0x0159},
+#line 906 "./uninorm/composition-table.gperf"
+ {"0U0\231", 0x3056},
+#line 522 "./uninorm/composition-table.gperf"
+ {"\000u\003-", 0x1e77},
+#line 306 "./uninorm/composition-table.gperf"
+ {"\004\025\003\000", 0x0400},
+#line 322 "./uninorm/composition-table.gperf"
+ {"\004t\003\017", 0x0476},
+#line 873 "./uninorm/composition-table.gperf"
+ {"\"a\0038", 0x2262},
+#line 431 "./uninorm/composition-table.gperf"
+ {"\002(\003\006", 0x1e1c},
+#line 535 "./uninorm/composition-table.gperf"
+ {"\000W\003\010", 0x1e84},
+#line 626 "./uninorm/composition-table.gperf"
+ {"\000U\003#", 0x1ee4},
+#line 139 "./uninorm/composition-table.gperf"
+ {"\000N\003\001", 0x0143},
+#line 231 "./uninorm/composition-table.gperf"
+ {"\000N\003\000", 0x01f8},
+#line 144 "./uninorm/composition-table.gperf"
+ {"\000n\003\014", 0x0148},
+#line 357 "./uninorm/composition-table.gperf"
+ {"\004K\003\010", 0x04f9},
+#line 471 "./uninorm/composition-table.gperf"
+ {"\000N\003\007", 0x1e44},
+#line 129 "./uninorm/composition-table.gperf"
+ {"\000J\003\002", 0x0134},
+#line 176 "./uninorm/composition-table.gperf"
+ {"\000u\003\012", 0x016f},
+#line 897 "./uninorm/composition-table.gperf"
+ {"\"\262\0038", 0x22ea},
+#line 447 "./uninorm/composition-table.gperf"
+ {"\000I\0030", 0x1e2c},
+#line 387 "./uninorm/composition-table.gperf"
+ {"\015\331\015\312", 0x0dda},
+#line 99 "./uninorm/composition-table.gperf"
+ {"\000d\003\014", 0x010f},
+#line 534 "./uninorm/composition-table.gperf"
+ {"\000w\003\001", 0x1e83},
+#line 532 "./uninorm/composition-table.gperf"
+ {"\000w\003\000", 0x1e81},
+#line 514 "./uninorm/composition-table.gperf"
+ {"\000t\0031", 0x1e6f},
+#line 182 "./uninorm/composition-table.gperf"
+ {"\000w\003\002", 0x0175},
+#line 538 "./uninorm/composition-table.gperf"
+ {"\000w\003\007", 0x1e87},
+#line 643 "./uninorm/composition-table.gperf"
+ {"\000y\003#", 0x1ef5},
+#line 295 "./uninorm/composition-table.gperf"
+ {"\003\265\003\001", 0x03ad},
+#line 749 "./uninorm/composition-table.gperf"
+ {"\003\265\003\000", 0x1f72},
+#line 929 "./uninorm/composition-table.gperf"
+ {"0\2550\231", 0x30ae},
+#line 230 "./uninorm/composition-table.gperf"
+ {"\000g\003\001", 0x01f5},
+#line 245 "./uninorm/composition-table.gperf"
+ {"\000E\003\021", 0x0206},
+#line 644 "./uninorm/composition-table.gperf"
+ {"\000Y\003\011", 0x1ef6},
+#line 111 "./uninorm/composition-table.gperf"
+ {"\000g\003\002", 0x011d},
+#line 115 "./uninorm/composition-table.gperf"
+ {"\000g\003\007", 0x0121},
+#line 953 "./uninorm/composition-table.gperf"
+ {"0\2460\231", 0x30f4},
+#line 307 "./uninorm/composition-table.gperf"
+ {"\004\025\003\010", 0x0401},
+#line 427 "./uninorm/composition-table.gperf"
+ {"\000E\003-", 0x1e18},
+#line 498 "./uninorm/composition-table.gperf"
+ {"\000r\0031", 0x1e5f},
+#line 267 "./uninorm/composition-table.gperf"
+ {"\000H\003\014", 0x021e},
+#line 485 "./uninorm/composition-table.gperf"
+ {"\001L\003\001", 0x1e52},
+#line 483 "./uninorm/composition-table.gperf"
+ {"\001L\003\000", 0x1e50},
+#line 892 "./uninorm/composition-table.gperf"
+ {"\"\253\0038", 0x22af},
+#line 512 "./uninorm/composition-table.gperf"
+ {"\000t\003#", 0x1e6d},
+#line 253 "./uninorm/composition-table.gperf"
+ {"\000O\003\021", 0x020e},
+#line 366 "./uninorm/composition-table.gperf"
+ {"\011(\011<", 0x0929},
+#line 133 "./uninorm/composition-table.gperf"
+ {"\000L\003\001", 0x0139},
+#line 281 "./uninorm/composition-table.gperf"
+ {"\000Y\003\004", 0x0232},
+#line 794 "./uninorm/composition-table.gperf"
+ {"\037g\003E", 0x1fa7},
+#line 476 "./uninorm/composition-table.gperf"
+ {"\000n\0031", 0x1e49},
+#line 272 "./uninorm/composition-table.gperf"
+ {"\000e\003'", 0x0229},
+#line 918 "./uninorm/composition-table.gperf"
+ {"0r0\231", 0x3073},
+#line 112 "./uninorm/composition-table.gperf"
+ {"\000G\003\006", 0x011e},
+#line 914 "./uninorm/composition-table.gperf"
+ {"0f0\231", 0x3067},
+#line 536 "./uninorm/composition-table.gperf"
+ {"\000w\003\010", 0x1e85},
+#line 430 "./uninorm/composition-table.gperf"
+ {"\000e\0030", 0x1e1b},
+#line 951 "./uninorm/composition-table.gperf"
+ {"0\3330\231", 0x30dc},
+#line 418 "./uninorm/composition-table.gperf"
+ {"\000d\0031", 0x1e0f},
+#line 494 "./uninorm/composition-table.gperf"
+ {"\000r\003#", 0x1e5b},
+#line 889 "./uninorm/composition-table.gperf"
+ {"\"\242\0038", 0x22ac},
+#line 275 "./uninorm/composition-table.gperf"
+ {"\000\325\003\004", 0x022c},
+#line 486 "./uninorm/composition-table.gperf"
+ {"\001M\003\001", 0x1e53},
+#line 484 "./uninorm/composition-table.gperf"
+ {"\001M\003\000", 0x1e51},
+#line 359 "./uninorm/composition-table.gperf"
+ {"\006'\006T", 0x0623},
+#line 220 "./uninorm/composition-table.gperf"
+ {"\000K\003\014", 0x01e8},
+#line 330 "./uninorm/composition-table.gperf"
+ {"\004\025\003\006", 0x04d6},
+#line 261 "./uninorm/composition-table.gperf"
+ {"\000U\003\021", 0x0216},
+#line 465 "./uninorm/composition-table.gperf"
+ {"\000M\003\001", 0x1e3e},
+#line 46 "./uninorm/composition-table.gperf"
+ {"\000N\003\003", 0x00d1},
+#line 474 "./uninorm/composition-table.gperf"
+ {"\000n\003#", 0x1e47},
+#line 913 "./uninorm/composition-table.gperf"
+ {"0d0\231", 0x3065},
+#line 467 "./uninorm/composition-table.gperf"
+ {"\000M\003\007", 0x1e40},
+#line 521 "./uninorm/composition-table.gperf"
+ {"\000U\003-", 0x1e76},
+#line 268 "./uninorm/composition-table.gperf"
+ {"\000h\003\014", 0x021f},
+#line 355 "./uninorm/composition-table.gperf"
+ {"\004G\003\010", 0x04f5},
+#line 509 "./uninorm/composition-table.gperf"
+ {"\000T\003\007", 0x1e6a},
+#line 212 "./uninorm/composition-table.gperf"
+ {"\000\304\003\004", 0x01de},
+#line 416 "./uninorm/composition-table.gperf"
+ {"\000d\003#", 0x1e0d},
+#line 878 "./uninorm/composition-table.gperf"
+ {"\"e\0038", 0x2271},
+#line 542 "./uninorm/composition-table.gperf"
+ {"\000x\003\007", 0x1e8b},
+#line 255 "./uninorm/composition-table.gperf"
+ {"\000R\003\017", 0x0210},
+#line 283 "./uninorm/composition-table.gperf"
+ {"\000\250\003\001", 0x0385},
+#line 848 "./uninorm/composition-table.gperf"
+ {"\000\250\003\000", 0x1fed},
+#line 814 "./uninorm/composition-table.gperf"
+ {"\000\250\003B", 0x1fc1},
+#line 265 "./uninorm/composition-table.gperf"
+ {"\000T\003&", 0x021a},
+#line 175 "./uninorm/composition-table.gperf"
+ {"\000U\003\012", 0x016e},
+#line 664 "./uninorm/composition-table.gperf"
+ {"\003\265\003\023", 0x1f10},
+#line 301 "./uninorm/composition-table.gperf"
+ {"\003\277\003\001", 0x03cc},
+#line 752 "./uninorm/composition-table.gperf"
+ {"\003\277\003\000", 0x1f78},
+#line 896 "./uninorm/composition-table.gperf"
+ {"\"\222\0038", 0x22e3},
+#line 520 "./uninorm/composition-table.gperf"
+ {"\000u\0030", 0x1e75},
+#line 927 "./uninorm/composition-table.gperf"
+ {"0\2350\231", 0x309e},
+#line 113 "./uninorm/composition-table.gperf"
+ {"\000g\003\006", 0x011f},
+#line 297 "./uninorm/composition-table.gperf"
+ {"\003\271\003\001", 0x03af},
+#line 751 "./uninorm/composition-table.gperf"
+ {"\003\271\003\000", 0x1f76},
+#line 829 "./uninorm/composition-table.gperf"
+ {"\003\271\003B", 0x1fd6},
+#line 439 "./uninorm/composition-table.gperf"
+ {"\000H\003#", 0x1e24},
+#line 824 "./uninorm/composition-table.gperf"
+ {"\037\277\003\001", 0x1fce},
+#line 823 "./uninorm/composition-table.gperf"
+ {"\037\277\003\000", 0x1fcd},
+#line 825 "./uninorm/composition-table.gperf"
+ {"\037\277\003B", 0x1fcf},
+#line 908 "./uninorm/composition-table.gperf"
+ {"0Y0\231", 0x305a},
+#line 455 "./uninorm/composition-table.gperf"
+ {"\000K\0031", 0x1e34},
+#line 556 "./uninorm/composition-table.gperf"
+ {"\000y\003\012", 0x1e99},
+#line 888 "./uninorm/composition-table.gperf"
+ {"\"\207\0038", 0x2289},
+#line 284 "./uninorm/composition-table.gperf"
+ {"\003\221\003\001", 0x0386},
+#line 812 "./uninorm/composition-table.gperf"
+ {"\003\221\003\000", 0x1fba},
+#line 516 "./uninorm/composition-table.gperf"
+ {"\000t\003-", 0x1e71},
+#line 642 "./uninorm/composition-table.gperf"
+ {"\000Y\003#", 0x1ef4},
+#line 544 "./uninorm/composition-table.gperf"
+ {"\000x\003\010", 0x1e8d},
+#line 887 "./uninorm/composition-table.gperf"
+ {"\"\206\0038", 0x2288},
+#line 553 "./uninorm/composition-table.gperf"
+ {"\000h\0031", 0x1e96},
+#line 409 "./uninorm/composition-table.gperf"
+ {"\000B\0031", 0x1e06},
+#line 155 "./uninorm/composition-table.gperf"
+ {"\000R\003\014", 0x0158},
+#line 947 "./uninorm/composition-table.gperf"
+ {"0\3250\231", 0x30d6},
+#line 901 "./uninorm/composition-table.gperf"
+ {"0K0\231", 0x304c},
+#line 258 "./uninorm/composition-table.gperf"
+ {"\000r\003\021", 0x0213},
+#line 813 "./uninorm/composition-table.gperf"
+ {"\003\221\003E", 0x1fbc},
+#line 384 "./uninorm/composition-table.gperf"
+ {"\015F\015>", 0x0d4a},
+#line 767 "./uninorm/composition-table.gperf"
+ {"\037\014\003E", 0x1f8c},
+#line 271 "./uninorm/composition-table.gperf"
+ {"\000E\003'", 0x0228},
+#line 774 "./uninorm/composition-table.gperf"
+ {"\037#\003E", 0x1f93},
+#line 453 "./uninorm/composition-table.gperf"
+ {"\000K\003#", 0x1e32},
+#line 435 "./uninorm/composition-table.gperf"
+ {"\000G\003\004", 0x1e20},
+#line 915 "./uninorm/composition-table.gperf"
+ {"0h0\231", 0x3069},
+#line 429 "./uninorm/composition-table.gperf"
+ {"\000E\0030", 0x1e1a},
+#line 218 "./uninorm/composition-table.gperf"
+ {"\000G\003\014", 0x01e6},
+#line 299 "./uninorm/composition-table.gperf"
+ {"\003\271\003\010", 0x03ca},
+#line 617 "./uninorm/composition-table.gperf"
+ {"\001\241\003\001", 0x1edb},
+#line 619 "./uninorm/composition-table.gperf"
+ {"\001\241\003\000", 0x1edd},
+#line 940 "./uninorm/composition-table.gperf"
+ {"0\3040\231", 0x30c5},
+#line 440 "./uninorm/composition-table.gperf"
+ {"\000h\003#", 0x1e25},
+#line 407 "./uninorm/composition-table.gperf"
+ {"\000B\003#", 0x1e04},
+#line 478 "./uninorm/composition-table.gperf"
+ {"\000n\003-", 0x1e4b},
+#line 886 "./uninorm/composition-table.gperf"
+ {"\"\203\0038", 0x2285},
+#line 925 "./uninorm/composition-table.gperf"
+ {"0{0\232", 0x307d},
+#line 302 "./uninorm/composition-table.gperf"
+ {"\003\305\003\001", 0x03cd},
+#line 753 "./uninorm/composition-table.gperf"
+ {"\003\305\003\000", 0x1f7a},
+#line 842 "./uninorm/composition-table.gperf"
+ {"\003\305\003B", 0x1fe6},
+#line 893 "./uninorm/composition-table.gperf"
+ {"\"|\0038", 0x22e0},
+#line 233 "./uninorm/composition-table.gperf"
+ {"\000\305\003\001", 0x01fa},
+#line 422 "./uninorm/composition-table.gperf"
+ {"\000d\003-", 0x1e13},
+#line 885 "./uninorm/composition-table.gperf"
+ {"\"\202\0038", 0x2284},
+#line 294 "./uninorm/composition-table.gperf"
+ {"\003\261\003\001", 0x03ac},
+#line 748 "./uninorm/composition-table.gperf"
+ {"\003\261\003\000", 0x1f70},
+#line 808 "./uninorm/composition-table.gperf"
+ {"\003\261\003B", 0x1fb6},
+#line 143 "./uninorm/composition-table.gperf"
+ {"\000N\003\014", 0x0147},
+#line 708 "./uninorm/composition-table.gperf"
+ {"\003\277\003\023", 0x1f40},
+#line 870 "./uninorm/composition-table.gperf"
+ {"\"E\0038", 0x2247},
+#line 894 "./uninorm/composition-table.gperf"
+ {"\"}\0038", 0x22e1},
+#line 497 "./uninorm/composition-table.gperf"
+ {"\000R\0031", 0x1e5e},
+#line 413 "./uninorm/composition-table.gperf"
+ {"\000D\003\007", 0x1e0a},
+#line 347 "./uninorm/composition-table.gperf"
+ {"\004M\003\010", 0x04ed},
+#line 692 "./uninorm/composition-table.gperf"
+ {"\003\271\003\023", 0x1f30},
+#line 353 "./uninorm/composition-table.gperf"
+ {"\004C\003\013", 0x04f3},
+#line 806 "./uninorm/composition-table.gperf"
+ {"\003\261\003E", 0x1fb3},
+#line 826 "./uninorm/composition-table.gperf"
+ {"\003\271\003\006", 0x1fd0},
+#line 945 "./uninorm/composition-table.gperf"
+ {"0\3220\231", 0x30d3},
+#line 134 "./uninorm/composition-table.gperf"
+ {"\000l\003\001", 0x013a},
+#line 911 "./uninorm/composition-table.gperf"
+ {"0_0\231", 0x3060},
+#line 519 "./uninorm/composition-table.gperf"
+ {"\000U\0030", 0x1e74},
+#line 907 "./uninorm/composition-table.gperf"
+ {"0W0\231", 0x3058},
+#line 910 "./uninorm/composition-table.gperf"
+ {"0]0\231", 0x305e},
+#line 436 "./uninorm/composition-table.gperf"
+ {"\000g\003\004", 0x1e21},
+#line 656 "./uninorm/composition-table.gperf"
+ {"\003\221\003\023", 0x1f08},
+#line 310 "./uninorm/composition-table.gperf"
+ {"\004\032\003\001", 0x040c},
+#line 219 "./uninorm/composition-table.gperf"
+ {"\000g\003\014", 0x01e7},
+#line 810 "./uninorm/composition-table.gperf"
+ {"\003\221\003\006", 0x1fb8},
+#line 539 "./uninorm/composition-table.gperf"
+ {"\000W\003#", 0x1e88},
+#line 300 "./uninorm/composition-table.gperf"
+ {"\003\305\003\010", 0x03cb},
+#line 493 "./uninorm/composition-table.gperf"
+ {"\000R\003#", 0x1e5a},
+#line 237 "./uninorm/composition-table.gperf"
+ {"\000\330\003\001", 0x01fe},
+#line 296 "./uninorm/composition-table.gperf"
+ {"\003\267\003\001", 0x03ae},
+#line 750 "./uninorm/composition-table.gperf"
+ {"\003\267\003\000", 0x1f74},
+#line 818 "./uninorm/composition-table.gperf"
+ {"\003\267\003B", 0x1fc6},
+#line 158 "./uninorm/composition-table.gperf"
+ {"\000s\003\001", 0x015b},
+#line 799 "./uninorm/composition-table.gperf"
+ {"\037l\003E", 0x1fac},
+#line 157 "./uninorm/composition-table.gperf"
+ {"\000S\003\001", 0x015a},
+#line 160 "./uninorm/composition-table.gperf"
+ {"\000s\003\002", 0x015d},
+#line 500 "./uninorm/composition-table.gperf"
+ {"\000s\003\007", 0x1e61},
+#line 159 "./uninorm/composition-table.gperf"
+ {"\000S\003\002", 0x015c},
+#line 499 "./uninorm/composition-table.gperf"
+ {"\000S\003\007", 0x1e60},
+#line 137 "./uninorm/composition-table.gperf"
+ {"\000L\003\014", 0x013d},
+#line 475 "./uninorm/composition-table.gperf"
+ {"\000N\0031", 0x1e48},
+#line 816 "./uninorm/composition-table.gperf"
+ {"\003\267\003E", 0x1fc3},
+#line 597 "./uninorm/composition-table.gperf"
+ {"\036\271\003\002", 0x1ec7},
+#line 623 "./uninorm/composition-table.gperf"
+ {"\001\241\003\003", 0x1ee1},
+#line 350 "./uninorm/composition-table.gperf"
+ {"\004#\003\010", 0x04f0},
+#line 264 "./uninorm/composition-table.gperf"
+ {"\000s\003&", 0x0219},
+#line 166 "./uninorm/composition-table.gperf"
+ {"\000t\003'", 0x0163},
+#line 263 "./uninorm/composition-table.gperf"
+ {"\000S\003&", 0x0218},
+#line 452 "./uninorm/composition-table.gperf"
+ {"\000k\003\001", 0x1e31},
+#line 291 "./uninorm/composition-table.gperf"
+ {"\003\312\003\001", 0x0390},
+#line 828 "./uninorm/composition-table.gperf"
+ {"\003\312\003\000", 0x1fd2},
+#line 830 "./uninorm/composition-table.gperf"
+ {"\003\312\003B", 0x1fd7},
+#line 720 "./uninorm/composition-table.gperf"
+ {"\003\305\003\023", 0x1f50},
+#line 588 "./uninorm/composition-table.gperf"
+ {"\000\312\003\001", 0x1ebe},
+#line 590 "./uninorm/composition-table.gperf"
+ {"\000\312\003\000", 0x1ec0},
+#line 837 "./uninorm/composition-table.gperf"
+ {"\003\305\003\006", 0x1fe0},
+#line 616 "./uninorm/composition-table.gperf"
+ {"\001\240\003\001", 0x1eda},
+#line 618 "./uninorm/composition-table.gperf"
+ {"\001\240\003\000", 0x1edc},
+#line 840 "./uninorm/composition-table.gperf"
+ {"\003\301\003\023", 0x1fe4},
+#line 648 "./uninorm/composition-table.gperf"
+ {"\003\261\003\023", 0x1f00},
+#line 473 "./uninorm/composition-table.gperf"
+ {"\000N\003#", 0x1e46},
+#line 154 "./uninorm/composition-table.gperf"
+ {"\000r\003'", 0x0157},
+#line 803 "./uninorm/composition-table.gperf"
+ {"\003\261\003\006", 0x1fb0},
+#line 503 "./uninorm/composition-table.gperf"
+ {"\001Z\003\007", 0x1e64},
+#line 167 "./uninorm/composition-table.gperf"
+ {"\000T\003\014", 0x0164},
+#line 186 "./uninorm/composition-table.gperf"
+ {"\000Z\003\001", 0x0179},
+#line 798 "./uninorm/composition-table.gperf"
+ {"\037k\003E", 0x1fab},
+#line 527 "./uninorm/composition-table.gperf"
+ {"\000V\003\003", 0x1e7c},
+#line 547 "./uninorm/composition-table.gperf"
+ {"\000Z\003\002", 0x1e90},
+#line 188 "./uninorm/composition-table.gperf"
+ {"\000Z\003\007", 0x017b},
+#line 944 "./uninorm/composition-table.gperf"
+ {"0\3170\232", 0x30d1},
+#line 540 "./uninorm/composition-table.gperf"
+ {"\000w\003#", 0x1e89},
+#line 142 "./uninorm/composition-table.gperf"
+ {"\000n\003'", 0x0146},
+#line 312 "./uninorm/composition-table.gperf"
+ {"\004#\003\006", 0x040e},
+#line 933 "./uninorm/composition-table.gperf"
+ {"0\2650\231", 0x30b6},
+#line 526 "./uninorm/composition-table.gperf"
+ {"\001k\003\010", 0x1e7b},
+#line 461 "./uninorm/composition-table.gperf"
+ {"\000L\0031", 0x1e3a},
+#line 868 "./uninorm/composition-table.gperf"
+ {"\"<\0038", 0x2241},
+#line 571 "./uninorm/composition-table.gperf"
+ {"\036\241\003\002", 0x1ead},
+#line 786 "./uninorm/composition-table.gperf"
+ {"\037/\003E", 0x1f9f},
+#line 420 "./uninorm/composition-table.gperf"
+ {"\000d\003'", 0x1e11},
+#line 336 "./uninorm/composition-table.gperf"
+ {"\004\027\003\010", 0x04de},
+#line 150 "./uninorm/composition-table.gperf"
+ {"\000o\003\013", 0x0151},
+#line 827 "./uninorm/composition-table.gperf"
+ {"\003\271\003\004", 0x1fd1},
+#line 257 "./uninorm/composition-table.gperf"
+ {"\000R\003\021", 0x0212},
+#line 704 "./uninorm/composition-table.gperf"
+ {"\0378\003\001", 0x1f3c},
+#line 702 "./uninorm/composition-table.gperf"
+ {"\0378\003\000", 0x1f3a},
+#line 706 "./uninorm/composition-table.gperf"
+ {"\0378\003B", 0x1f3e},
+#line 676 "./uninorm/composition-table.gperf"
+ {"\003\267\003\023", 0x1f20},
+#line 879 "./uninorm/composition-table.gperf"
+ {"\"r\0038", 0x2274},
+#line 770 "./uninorm/composition-table.gperf"
+ {"\037\017\003E", 0x1f8f},
+#line 178 "./uninorm/composition-table.gperf"
+ {"\000u\003\013", 0x0171},
+#line 769 "./uninorm/composition-table.gperf"
+ {"\037\016\003E", 0x1f8e},
+#line 318 "./uninorm/composition-table.gperf"
+ {"\004V\003\010", 0x0457},
+#line 811 "./uninorm/composition-table.gperf"
+ {"\003\221\003\004", 0x1fb9},
+#line 776 "./uninorm/composition-table.gperf"
+ {"\037%\003E", 0x1f95},
+#line 457 "./uninorm/composition-table.gperf"
+ {"\000L\003#", 0x1e36},
+#line 290 "./uninorm/composition-table.gperf"
+ {"\003\251\003\001", 0x038f},
+#line 855 "./uninorm/composition-table.gperf"
+ {"\003\251\003\000", 0x1ffa},
+#line 443 "./uninorm/composition-table.gperf"
+ {"\000H\003'", 0x1e28},
+#line 187 "./uninorm/composition-table.gperf"
+ {"\000z\003\001", 0x017a},
+#line 513 "./uninorm/composition-table.gperf"
+ {"\000T\0031", 0x1e6e},
+#line 621 "./uninorm/composition-table.gperf"
+ {"\001\241\003\011", 0x1edf},
+#line 548 "./uninorm/composition-table.gperf"
+ {"\000z\003\002", 0x1e91},
+#line 189 "./uninorm/composition-table.gperf"
+ {"\000z\003\007", 0x017c},
+ {""},
+#line 865 "./uninorm/composition-table.gperf"
+ {"\"\013\0038", 0x220c},
+#line 917 "./uninorm/composition-table.gperf"
+ {"0o0\232", 0x3071},
+#line 877 "./uninorm/composition-table.gperf"
+ {"\"d\0038", 0x2270},
+#line 856 "./uninorm/composition-table.gperf"
+ {"\003\251\003E", 0x1ffc},
+#line 902 "./uninorm/composition-table.gperf"
+ {"0M0\231", 0x304e},
+#line 594 "./uninorm/composition-table.gperf"
+ {"\000\312\003\003", 0x1ec4},
+#line 332 "./uninorm/composition-table.gperf"
+ {"\004\330\003\010", 0x04da},
+#line 398 "./uninorm/composition-table.gperf"
+ {"\033:\0335", 0x1b3b},
+#line 622 "./uninorm/composition-table.gperf"
+ {"\001\240\003\003", 0x1ee0},
+ {""},
+#line 921 "./uninorm/composition-table.gperf"
+ {"0u0\232", 0x3077},
+#line 469 "./uninorm/composition-table.gperf"
+ {"\000M\003#", 0x1e42},
+#line 922 "./uninorm/composition-table.gperf"
+ {"0x0\231", 0x3079},
+#line 287 "./uninorm/composition-table.gperf"
+ {"\003\231\003\001", 0x038a},
+#line 833 "./uninorm/composition-table.gperf"
+ {"\003\231\003\000", 0x1fda},
+#line 511 "./uninorm/composition-table.gperf"
+ {"\000T\003#", 0x1e6c},
+#line 541 "./uninorm/composition-table.gperf"
+ {"\000X\003\007", 0x1e8a},
+#line 477 "./uninorm/composition-table.gperf"
+ {"\000N\003-", 0x1e4a},
+#line 131 "./uninorm/composition-table.gperf"
+ {"\000K\003'", 0x0136},
+#line 838 "./uninorm/composition-table.gperf"
+ {"\003\305\003\004", 0x1fe1},
+#line 91 "./uninorm/composition-table.gperf"
+ {"\000c\003\001", 0x0107},
+#line 871 "./uninorm/composition-table.gperf"
+ {"\"H\0038", 0x2249},
+#line 394 "./uninorm/composition-table.gperf"
+ {"\033\011\0335", 0x1b0a},
+#line 93 "./uninorm/composition-table.gperf"
+ {"\000c\003\002", 0x0109},
+#line 95 "./uninorm/composition-table.gperf"
+ {"\000c\003\007", 0x010b},
+#line 320 "./uninorm/composition-table.gperf"
+ {"\0048\003\000", 0x045d},
+#line 804 "./uninorm/composition-table.gperf"
+ {"\003\261\003\004", 0x1fb1},
+#line 444 "./uninorm/composition-table.gperf"
+ {"\000h\003'", 0x1e29},
+#line 938 "./uninorm/composition-table.gperf"
+ {"0\2770\231", 0x30c0},
+#line 630 "./uninorm/composition-table.gperf"
+ {"\001\257\003\001", 0x1ee8},
+#line 632 "./uninorm/composition-table.gperf"
+ {"\001\257\003\000", 0x1eea},
+#line 581 "./uninorm/composition-table.gperf"
+ {"\036\241\003\006", 0x1eb7},
+#line 149 "./uninorm/composition-table.gperf"
+ {"\000O\003\013", 0x0150},
+#line 98 "./uninorm/composition-table.gperf"
+ {"\000D\003\014", 0x010e},
+#line 935 "./uninorm/composition-table.gperf"
+ {"0\2710\231", 0x30ba},
+#line 289 "./uninorm/composition-table.gperf"
+ {"\003\245\003\001", 0x038e},
+#line 846 "./uninorm/composition-table.gperf"
+ {"\003\245\003\000", 0x1fea},
+#line 348 "./uninorm/composition-table.gperf"
+ {"\004#\003\004", 0x04ee},
+#line 790 "./uninorm/composition-table.gperf"
+ {"\037c\003E", 0x1fa3},
+#line 285 "./uninorm/composition-table.gperf"
+ {"\003\225\003\001", 0x0388},
+#line 820 "./uninorm/composition-table.gperf"
+ {"\003\225\003\000", 0x1fc8},
+#line 555 "./uninorm/composition-table.gperf"
+ {"\000w\003\012", 0x1e98},
+#line 235 "./uninorm/composition-table.gperf"
+ {"\000\306\003\001", 0x01fc},
+#line 570 "./uninorm/composition-table.gperf"
+ {"\036\240\003\002", 0x1eac},
+#line 138 "./uninorm/composition-table.gperf"
+ {"\000l\003\014", 0x013e},
+#line 543 "./uninorm/composition-table.gperf"
+ {"\000X\003\010", 0x1e8c},
+#line 292 "./uninorm/composition-table.gperf"
+ {"\003\231\003\010", 0x03aa},
+#line 303 "./uninorm/composition-table.gperf"
+ {"\003\311\003\001", 0x03ce},
+#line 754 "./uninorm/composition-table.gperf"
+ {"\003\311\003\000", 0x1f7c},
+#line 852 "./uninorm/composition-table.gperf"
+ {"\003\311\003B", 0x1ff6},
+#line 740 "./uninorm/composition-table.gperf"
+ {"\003\251\003\023", 0x1f68},
+#line 393 "./uninorm/composition-table.gperf"
+ {"\033\007\0335", 0x1b08},
+ {""},
+#line 463 "./uninorm/composition-table.gperf"
+ {"\000L\003-", 0x1e3c},
+#line 177 "./uninorm/composition-table.gperf"
+ {"\000U\003\013", 0x0170},
+ {""},
+#line 226 "./uninorm/composition-table.gperf"
+ {"\001\267\003\014", 0x01ee},
+#line 341 "./uninorm/composition-table.gperf"
+ {"\0048\003\010", 0x04e5},
+#line 466 "./uninorm/composition-table.gperf"
+ {"\000m\003\001", 0x1e3f},
+#line 850 "./uninorm/composition-table.gperf"
+ {"\003\311\003E", 0x1ff3},
+#line 819 "./uninorm/composition-table.gperf"
+ {"\037\306\003E", 0x1fc7},
+#line 164 "./uninorm/composition-table.gperf"
+ {"\000s\003\014", 0x0161},
+#line 468 "./uninorm/composition-table.gperf"
+ {"\000m\003\007", 0x1e41},
+#line 163 "./uninorm/composition-table.gperf"
+ {"\000S\003\014", 0x0160},
+#line 592 "./uninorm/composition-table.gperf"
+ {"\000\312\003\011", 0x1ec2},
+#line 504 "./uninorm/composition-table.gperf"
+ {"\001[\003\007", 0x1e65},
+#line 153 "./uninorm/composition-table.gperf"
+ {"\000R\003'", 0x0156},
+#line 620 "./uninorm/composition-table.gperf"
+ {"\001\240\003\011", 0x1ede},
+#line 293 "./uninorm/composition-table.gperf"
+ {"\003\245\003\010", 0x03ab},
+#line 358 "./uninorm/composition-table.gperf"
+ {"\006'\006S", 0x0622},
+#line 417 "./uninorm/composition-table.gperf"
+ {"\000D\0031", 0x1e0e},
+#line 625 "./uninorm/composition-table.gperf"
+ {"\001\241\003#", 0x1ee3},
+#line 700 "./uninorm/composition-table.gperf"
+ {"\003\231\003\023", 0x1f38},
+#line 207 "./uninorm/composition-table.gperf"
+ {"\000\374\003\001", 0x01d8},
+#line 211 "./uninorm/composition-table.gperf"
+ {"\000\374\003\000", 0x01dc},
+#line 831 "./uninorm/composition-table.gperf"
+ {"\003\231\003\006", 0x1fd8},
+#line 800 "./uninorm/composition-table.gperf"
+ {"\037m\003E", 0x1fad},
+#line 221 "./uninorm/composition-table.gperf"
+ {"\000k\003\014", 0x01e9},
+#line 515 "./uninorm/composition-table.gperf"
+ {"\000T\003-", 0x1e70},
+#line 116 "./uninorm/composition-table.gperf"
+ {"\000G\003'", 0x0122},
+#line 280 "./uninorm/composition-table.gperf"
+ {"\002/\003\004", 0x0231},
+#line 462 "./uninorm/composition-table.gperf"
+ {"\000l\0031", 0x1e3b},
+#line 939 "./uninorm/composition-table.gperf"
+ {"0\3010\231", 0x30c2},
+#line 931 "./uninorm/composition-table.gperf"
+ {"0\2610\231", 0x30b2},
+#line 674 "./uninorm/composition-table.gperf"
+ {"\037\030\003\001", 0x1f1c},
+#line 672 "./uninorm/composition-table.gperf"
+ {"\037\030\003\000", 0x1f1a},
+#line 314 "./uninorm/composition-table.gperf"
+ {"\0048\003\006", 0x0439},
+#line 636 "./uninorm/composition-table.gperf"
+ {"\001\257\003\003", 0x1eee},
+#line 286 "./uninorm/composition-table.gperf"
+ {"\003\227\003\001", 0x0389},
+#line 821 "./uninorm/composition-table.gperf"
+ {"\003\227\003\000", 0x1fca},
+#line 415 "./uninorm/composition-table.gperf"
+ {"\000D\003#", 0x1e0c},
+#line 360 "./uninorm/composition-table.gperf"
+ {"\006H\006T", 0x0624},
+#line 606 "./uninorm/composition-table.gperf"
+ {"\000\324\003\001", 0x1ed0},
+#line 608 "./uninorm/composition-table.gperf"
+ {"\000\324\003\000", 0x1ed2},
+#line 190 "./uninorm/composition-table.gperf"
+ {"\000Z\003\014", 0x017d},
+#line 529 "./uninorm/composition-table.gperf"
+ {"\000V\003#", 0x1e7e},
+ {""},
+#line 844 "./uninorm/composition-table.gperf"
+ {"\003\245\003\006", 0x1fe8},
+#line 670 "./uninorm/composition-table.gperf"
+ {"\003\225\003\023", 0x1f18},
+#line 141 "./uninorm/composition-table.gperf"
+ {"\000N\003'", 0x0145},
+#line 822 "./uninorm/composition-table.gperf"
+ {"\003\227\003E", 0x1fcc},
+#line 458 "./uninorm/composition-table.gperf"
+ {"\000l\003#", 0x1e37},
+#line 580 "./uninorm/composition-table.gperf"
+ {"\036\240\003\006", 0x1eb6},
+ {""},
+#line 518 "./uninorm/composition-table.gperf"
+ {"\000u\003$", 0x1e73},
+ {""},
+#line 732 "./uninorm/composition-table.gperf"
+ {"\003\311\003\023", 0x1f60},
+#line 949 "./uninorm/composition-table.gperf"
+ {"0\3300\231", 0x30d9},
+#line 508 "./uninorm/composition-table.gperf"
+ {"\036c\003\007", 0x1e69},
+#line 725 "./uninorm/composition-table.gperf"
+ {"\037Q\003\001", 0x1f55},
+#line 723 "./uninorm/composition-table.gperf"
+ {"\037Q\003\000", 0x1f53},
+#line 727 "./uninorm/composition-table.gperf"
+ {"\037Q\003B", 0x1f57},
+#line 934 "./uninorm/composition-table.gperf"
+ {"0\2670\231", 0x30b8},
+#line 905 "./uninorm/composition-table.gperf"
+ {"0S0\231", 0x3054},
+#line 456 "./uninorm/composition-table.gperf"
+ {"\000k\0031", 0x1e35},
+#line 363 "./uninorm/composition-table.gperf"
+ {"\006\325\006T", 0x06c0},
+#line 665 "./uninorm/composition-table.gperf"
+ {"\003\265\003\024", 0x1f11},
+#line 130 "./uninorm/composition-table.gperf"
+ {"\000j\003\002", 0x0135},
+#line 502 "./uninorm/composition-table.gperf"
+ {"\000s\003#", 0x1e63},
+#line 117 "./uninorm/composition-table.gperf"
+ {"\000g\003'", 0x0123},
+#line 501 "./uninorm/composition-table.gperf"
+ {"\000S\003#", 0x1e62},
+#line 392 "./uninorm/composition-table.gperf"
+ {"\033\005\0335", 0x1b06},
+#line 589 "./uninorm/composition-table.gperf"
+ {"\000\352\003\001", 0x1ebf},
+#line 591 "./uninorm/composition-table.gperf"
+ {"\000\352\003\000", 0x1ec1},
+#line 396 "./uninorm/composition-table.gperf"
+ {"\033\015\0335", 0x1b0e},
+#line 681 "./uninorm/composition-table.gperf"
+ {"\037!\003\001", 0x1f25},
+#line 679 "./uninorm/composition-table.gperf"
+ {"\037!\003\000", 0x1f23},
+#line 683 "./uninorm/composition-table.gperf"
+ {"\037!\003B", 0x1f27},
+#line 919 "./uninorm/composition-table.gperf"
+ {"0r0\232", 0x3074},
+#line 191 "./uninorm/composition-table.gperf"
+ {"\000z\003\014", 0x017e},
+#line 311 "./uninorm/composition-table.gperf"
+ {"\004\030\003\000", 0x040d},
+#line 551 "./uninorm/composition-table.gperf"
+ {"\000Z\0031", 0x1e94},
+#line 797 "./uninorm/composition-table.gperf"
+ {"\037j\003E", 0x1faa},
+#line 952 "./uninorm/composition-table.gperf"
+ {"0\3330\232", 0x30dd},
+#line 454 "./uninorm/composition-table.gperf"
+ {"\000k\003#", 0x1e33},
+#line 135 "./uninorm/composition-table.gperf"
+ {"\000L\003'", 0x013b},
+#line 334 "./uninorm/composition-table.gperf"
+ {"\004\026\003\010", 0x04dc},
+#line 772 "./uninorm/composition-table.gperf"
+ {"\037!\003E", 0x1f91},
+#line 882 "./uninorm/composition-table.gperf"
+ {"\"w\0038", 0x2279},
+#line 631 "./uninorm/composition-table.gperf"
+ {"\001\260\003\001", 0x1ee9},
+#line 633 "./uninorm/composition-table.gperf"
+ {"\001\260\003\000", 0x1eeb},
+#line 525 "./uninorm/composition-table.gperf"
+ {"\001j\003\010", 0x1e7a},
+#line 624 "./uninorm/composition-table.gperf"
+ {"\001\240\003#", 0x1ee2},
+#line 669 "./uninorm/composition-table.gperf"
+ {"\037\021\003\001", 0x1f15},
+#line 667 "./uninorm/composition-table.gperf"
+ {"\037\021\003\000", 0x1f13},
+#line 832 "./uninorm/composition-table.gperf"
+ {"\003\231\003\004", 0x1fd9},
+#line 634 "./uninorm/composition-table.gperf"
+ {"\001\257\003\011", 0x1eec},
+#line 684 "./uninorm/composition-table.gperf"
+ {"\003\227\003\023", 0x1f28},
+#line 900 "./uninorm/composition-table.gperf"
+ {"\"\265\0038", 0x22ed},
+#line 361 "./uninorm/composition-table.gperf"
+ {"\006'\006U", 0x0625},
+#line 612 "./uninorm/composition-table.gperf"
+ {"\000\324\003\003", 0x1ed6},
+#line 549 "./uninorm/composition-table.gperf"
+ {"\000Z\003#", 0x1e92},
+#line 386 "./uninorm/composition-table.gperf"
+ {"\015F\015W", 0x0d4c},
+#line 421 "./uninorm/composition-table.gperf"
+ {"\000D\003-", 0x1e12},
+#line 406 "./uninorm/composition-table.gperf"
+ {"\000b\003\007", 0x1e03},
+#line 97 "./uninorm/composition-table.gperf"
+ {"\000c\003\014", 0x010d},
+#line 339 "./uninorm/composition-table.gperf"
+ {"\0048\003\004", 0x04e3},
+ {""},
+#line 365 "./uninorm/composition-table.gperf"
+ {"\006\322\006T", 0x06d3},
+#line 488 "./uninorm/composition-table.gperf"
+ {"\000p\003\001", 0x1e55},
+#line 165 "./uninorm/composition-table.gperf"
+ {"\000T\003'", 0x0162},
+#line 505 "./uninorm/composition-table.gperf"
+ {"\001`\003\007", 0x1e66},
+#line 340 "./uninorm/composition-table.gperf"
+ {"\004\030\003\010", 0x04e4},
+#line 490 "./uninorm/composition-table.gperf"
+ {"\000p\003\007", 0x1e57},
+#line 464 "./uninorm/composition-table.gperf"
+ {"\000l\003-", 0x1e3d},
+#line 324 "./uninorm/composition-table.gperf"
+ {"\004\026\003\006", 0x04c1},
+#line 552 "./uninorm/composition-table.gperf"
+ {"\000z\0031", 0x1e95},
+#line 845 "./uninorm/composition-table.gperf"
+ {"\003\245\003\004", 0x1fe9},
+#line 789 "./uninorm/composition-table.gperf"
+ {"\037b\003E", 0x1fa2},
+#line 736 "./uninorm/composition-table.gperf"
+ {"\037`\003\001", 0x1f64},
+#line 734 "./uninorm/composition-table.gperf"
+ {"\037`\003\000", 0x1f62},
+#line 738 "./uninorm/composition-table.gperf"
+ {"\037`\003B", 0x1f66},
+#line 859 "./uninorm/composition-table.gperf"
+ {"!\224\0038", 0x21ae},
+#line 517 "./uninorm/composition-table.gperf"
+ {"\000U\003$", 0x1e72},
+#line 216 "./uninorm/composition-table.gperf"
+ {"\000\306\003\004", 0x01e2},
+#line 495 "./uninorm/composition-table.gperf"
+ {"\036Z\003\004", 0x1e5c},
+#line 709 "./uninorm/composition-table.gperf"
+ {"\003\277\003\024", 0x1f41},
+#line 805 "./uninorm/composition-table.gperf"
+ {"\037p\003E", 0x1fb2},
+#line 607 "./uninorm/composition-table.gperf"
+ {"\000\364\003\001", 0x1ed1},
+#line 609 "./uninorm/composition-table.gperf"
+ {"\000\364\003\000", 0x1ed3},
+#line 595 "./uninorm/composition-table.gperf"
+ {"\000\352\003\003", 0x1ec5},
+#line 787 "./uninorm/composition-table.gperf"
+ {"\037`\003E", 0x1fa0},
+#line 693 "./uninorm/composition-table.gperf"
+ {"\003\271\003\024", 0x1f31},
+#line 860 "./uninorm/composition-table.gperf"
+ {"!\320\0038", 0x21cd},
+#line 874 "./uninorm/composition-table.gperf"
+ {"\"M\0038", 0x226d},
+#line 857 "./uninorm/composition-table.gperf"
+ {"!\220\0038", 0x219a},
+#line 550 "./uninorm/composition-table.gperf"
+ {"\000z\003#", 0x1e93},
+#line 400 "./uninorm/composition-table.gperf"
+ {"\033>\0335", 0x1b40},
+#line 487 "./uninorm/composition-table.gperf"
+ {"\000P\003\001", 0x1e54},
+ {""},
+#line 948 "./uninorm/composition-table.gperf"
+ {"0\3250\232", 0x30d7},
+#line 313 "./uninorm/composition-table.gperf"
+ {"\004\030\003\006", 0x0419},
+#line 489 "./uninorm/composition-table.gperf"
+ {"\000P\003\007", 0x1e56},
+#line 657 "./uninorm/composition-table.gperf"
+ {"\003\221\003\024", 0x1f09},
+#line 724 "./uninorm/composition-table.gperf"
+ {"\037P\003\001", 0x1f54},
+#line 722 "./uninorm/composition-table.gperf"
+ {"\037P\003\000", 0x1f52},
+#line 726 "./uninorm/composition-table.gperf"
+ {"\037P\003B", 0x1f56},
+#line 637 "./uninorm/composition-table.gperf"
+ {"\001\260\003\003", 0x1eef},
+#line 890 "./uninorm/composition-table.gperf"
+ {"\"\250\0038", 0x22ad},
+#line 362 "./uninorm/composition-table.gperf"
+ {"\006J\006T", 0x0626},
+#line 563 "./uninorm/composition-table.gperf"
+ {"\000\342\003\001", 0x1ea5},
+#line 565 "./uninorm/composition-table.gperf"
+ {"\000\342\003\000", 0x1ea7},
+#line 777 "./uninorm/composition-table.gperf"
+ {"\037&\003E", 0x1f96},
+#line 193 "./uninorm/composition-table.gperf"
+ {"\000o\003\033", 0x01a1},
+ {""},
+#line 205 "./uninorm/composition-table.gperf"
+ {"\000\374\003\004", 0x01d6},
+#line 562 "./uninorm/composition-table.gperf"
+ {"\000\302\003\001", 0x1ea4},
+#line 564 "./uninorm/composition-table.gperf"
+ {"\000\302\003\000", 0x1ea6},
+#line 209 "./uninorm/composition-table.gperf"
+ {"\000\374\003\014", 0x01da},
+#line 610 "./uninorm/composition-table.gperf"
+ {"\000\324\003\011", 0x1ed4},
+#line 404 "./uninorm/composition-table.gperf"
+ {"\000a\003%", 0x1e01},
+#line 369 "./uninorm/composition-table.gperf"
+ {"\011\307\011\276", 0x09cb},
+#line 195 "./uninorm/composition-table.gperf"
+ {"\000u\003\033", 0x01b0},
+#line 315 "./uninorm/composition-table.gperf"
+ {"\0045\003\000", 0x0450},
+#line 680 "./uninorm/composition-table.gperf"
+ {"\037 \003\001", 0x1f24},
+#line 678 "./uninorm/composition-table.gperf"
+ {"\037 \003\000", 0x1f22},
+#line 682 "./uninorm/composition-table.gperf"
+ {"\037 \003B", 0x1f26},
+#line 378 "./uninorm/composition-table.gperf"
+ {"\014F\014V", 0x0c48},
+#line 847 "./uninorm/composition-table.gperf"
+ {"\003\241\003\024", 0x1fec},
+#line 866 "./uninorm/composition-table.gperf"
+ {"\"#\0038", 0x2224},
+#line 930 "./uninorm/composition-table.gperf"
+ {"0\2570\231", 0x30b0},
+#line 638 "./uninorm/composition-table.gperf"
+ {"\001\257\003#", 0x1ef0},
+ {""}, {""},
+#line 721 "./uninorm/composition-table.gperf"
+ {"\003\305\003\024", 0x1f51},
+#line 895 "./uninorm/composition-table.gperf"
+ {"\"\221\0038", 0x22e2},
+#line 771 "./uninorm/composition-table.gperf"
+ {"\037 \003E", 0x1f90},
+#line 941 "./uninorm/composition-table.gperf"
+ {"0\3060\231", 0x30c7},
+#line 399 "./uninorm/composition-table.gperf"
+ {"\033<\0335", 0x1b3d},
+ {""},
+#line 841 "./uninorm/composition-table.gperf"
+ {"\003\301\003\024", 0x1fe5},
+#line 649 "./uninorm/composition-table.gperf"
+ {"\003\261\003\024", 0x1f01},
+#line 385 "./uninorm/composition-table.gperf"
+ {"\015G\015>", 0x0d4b},
+#line 946 "./uninorm/composition-table.gperf"
+ {"0\3220\232", 0x30d4},
+ {""},
+#line 419 "./uninorm/composition-table.gperf"
+ {"\000D\003'", 0x1e10},
+#line 613 "./uninorm/composition-table.gperf"
+ {"\000\364\003\003", 0x1ed7},
+ {""},
+#line 507 "./uninorm/composition-table.gperf"
+ {"\036b\003\007", 0x1e68},
+#line 593 "./uninorm/composition-table.gperf"
+ {"\000\352\003\011", 0x1ec3},
+ {""}, {""}, {""}, {""},
+#line 445 "./uninorm/composition-table.gperf"
+ {"\000H\003.", 0x1e2a},
+#line 316 "./uninorm/composition-table.gperf"
+ {"\0045\003\010", 0x0451},
+#line 136 "./uninorm/composition-table.gperf"
+ {"\000l\003'", 0x013c},
+ {""},
+#line 224 "./uninorm/composition-table.gperf"
+ {"\001\352\003\004", 0x01ec},
+#line 228 "./uninorm/composition-table.gperf"
+ {"\000j\003\014", 0x01f0},
+#line 470 "./uninorm/composition-table.gperf"
+ {"\000m\003#", 0x1e43},
+ {""},
+#line 909 "./uninorm/composition-table.gperf"
+ {"0[0\231", 0x305c},
+ {""}, {""}, {""},
+#line 635 "./uninorm/composition-table.gperf"
+ {"\001\260\003\011", 0x1eed},
+#line 395 "./uninorm/composition-table.gperf"
+ {"\033\013\0335", 0x1b0c},
+#line 569 "./uninorm/composition-table.gperf"
+ {"\000\342\003\003", 0x1eab},
+#line 192 "./uninorm/composition-table.gperf"
+ {"\000O\003\033", 0x01a0},
+#line 677 "./uninorm/composition-table.gperf"
+ {"\003\267\003\024", 0x1f21},
+#line 338 "./uninorm/composition-table.gperf"
+ {"\004\030\003\004", 0x04e2},
+ {""},
+#line 162 "./uninorm/composition-table.gperf"
+ {"\000s\003'", 0x015f},
+#line 568 "./uninorm/composition-table.gperf"
+ {"\000\302\003\003", 0x1eaa},
+#line 161 "./uninorm/composition-table.gperf"
+ {"\000S\003'", 0x015e},
+ {""}, {""}, {""}, {""}, {""},
+#line 858 "./uninorm/composition-table.gperf"
+ {"!\222\0038", 0x219b},
+ {""},
+#line 403 "./uninorm/composition-table.gperf"
+ {"\000A\003%", 0x1e00},
+#line 331 "./uninorm/composition-table.gperf"
+ {"\0045\003\006", 0x04d7},
+ {""}, {""}, {""},
+#line 446 "./uninorm/composition-table.gperf"
+ {"\000h\003.", 0x1e2b},
+#line 132 "./uninorm/composition-table.gperf"
+ {"\000k\003'", 0x0137},
+ {""},
+#line 194 "./uninorm/composition-table.gperf"
+ {"\000U\003\033", 0x01af},
+ {""},
+#line 496 "./uninorm/composition-table.gperf"
+ {"\036[\003\004", 0x1e5d},
+ {""}, {""}, {""}, {""},
+#line 904 "./uninorm/composition-table.gperf"
+ {"0Q0\231", 0x3052},
+ {""},
+#line 370 "./uninorm/composition-table.gperf"
+ {"\011\307\011\327", 0x09cc},
+#line 880 "./uninorm/composition-table.gperf"
+ {"\"s\0038", 0x2275},
+#line 374 "./uninorm/composition-table.gperf"
+ {"\013\222\013\327", 0x0b94},
+ {""}, {""},
+#line 611 "./uninorm/composition-table.gperf"
+ {"\000\364\003\011", 0x1ed5},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+#line 214 "./uninorm/composition-table.gperf"
+ {"\002&\003\004", 0x01e0},
+ {""}, {""}, {""},
+#line 402 "./uninorm/composition-table.gperf"
+ {"\033B\0335", 0x1b43},
+ {""}, {""}, {""},
+#line 567 "./uninorm/composition-table.gperf"
+ {"\000\342\003\011", 0x1ea9},
+ {""}, {""}, {""}, {""},
+#line 410 "./uninorm/composition-table.gperf"
+ {"\000b\0031", 0x1e07},
+#line 566 "./uninorm/composition-table.gperf"
+ {"\000\302\003\011", 0x1ea8},
+ {""}, {""}, {""}, {""},
+#line 741 "./uninorm/composition-table.gperf"
+ {"\003\251\003\024", 0x1f69},
+ {""}, {""},
+#line 639 "./uninorm/composition-table.gperf"
+ {"\001\260\003#", 0x1ef1},
+#line 364 "./uninorm/composition-table.gperf"
+ {"\006\301\006T", 0x06c2},
+ {""}, {""},
+#line 379 "./uninorm/composition-table.gperf"
+ {"\014\277\014\325", 0x0cc0},
+#line 867 "./uninorm/composition-table.gperf"
+ {"\"%\0038", 0x2226},
+#line 923 "./uninorm/composition-table.gperf"
+ {"0x0\232", 0x307a},
+ {""}, {""}, {""}, {""},
+#line 408 "./uninorm/composition-table.gperf"
+ {"\000b\003#", 0x1e05},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 701 "./uninorm/composition-table.gperf"
+ {"\003\231\003\024", 0x1f39},
+#line 401 "./uninorm/composition-table.gperf"
+ {"\033?\0335", 0x1b41},
+ {""}, {""}, {""}, {""}, {""},
+#line 63 "./uninorm/composition-table.gperf"
+ {"\000c\003'", 0x00e7},
+ {""},
+#line 883 "./uninorm/composition-table.gperf"
+ {"\"z\0038", 0x2280},
+#line 891 "./uninorm/composition-table.gperf"
+ {"\"\251\0038", 0x22ae},
+ {""}, {""},
+#line 371 "./uninorm/composition-table.gperf"
+ {"\013G\013V", 0x0b48},
+ {""},
+#line 372 "./uninorm/composition-table.gperf"
+ {"\013G\013>", 0x0b4b},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 728 "./uninorm/composition-table.gperf"
+ {"\003\245\003\024", 0x1f59},
+ {""}, {""}, {""},
+#line 671 "./uninorm/composition-table.gperf"
+ {"\003\225\003\024", 0x1f19},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 733 "./uninorm/composition-table.gperf"
+ {"\003\311\003\024", 0x1f61},
+ {""}, {""}, {""}, {""}, {""},
+#line 352 "./uninorm/composition-table.gperf"
+ {"\004#\003\013", 0x04f2},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 685 "./uninorm/composition-table.gperf"
+ {"\003\227\003\024", 0x1f29},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 950 "./uninorm/composition-table.gperf"
+ {"0\3300\232", 0x30da},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 383 "./uninorm/composition-table.gperf"
+ {"\014\312\014\325", 0x0ccb},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 376 "./uninorm/composition-table.gperf"
+ {"\013\307\013\276", 0x0bcb},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 862 "./uninorm/composition-table.gperf"
+ {"!\322\0038", 0x21cf},
+ {""},
+#line 381 "./uninorm/composition-table.gperf"
+ {"\014\306\014\326", 0x0cc8},
+#line 382 "./uninorm/composition-table.gperf"
+ {"\014\306\014\302", 0x0cca},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""},
+#line 380 "./uninorm/composition-table.gperf"
+ {"\014\306\014\325", 0x0cc7},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+#line 373 "./uninorm/composition-table.gperf"
+ {"\013G\013W", 0x0b4c},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 391 "./uninorm/composition-table.gperf"
+ {"\020%\020.", 0x1026},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+#line 397 "./uninorm/composition-table.gperf"
+ {"\033\021\0335", 0x1b12},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+#line 375 "./uninorm/composition-table.gperf"
+ {"\013\306\013\276", 0x0bca},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+#line 377 "./uninorm/composition-table.gperf"
+ {"\013\306\013\327", 0x0bcc},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+#line 861 "./uninorm/composition-table.gperf"
+ {"!\324\0038", 0x21ce}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = gl_uninorm_compose_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ if (len == lengthtable[key])
+ {
+ register const char *s = wordlist[key].codes;
+
+ if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
diff --git a/lib/uninorm/composition.c b/lib/uninorm/composition.c
new file mode 100644
index 0000000..4caf9a0
--- /dev/null
+++ b/lib/uninorm/composition.c
@@ -0,0 +1,85 @@
+/* Canonical composition of Unicode characters.
+ Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <string.h>
+
+struct composition_rule { char codes[4]; unsigned short combined; };
+
+#include "composition-table.h"
+
+ucs4_t
+uc_composition (ucs4_t uc1, ucs4_t uc2)
+{
+ if (uc1 < 0x10000 && uc2 < 0x10000)
+ {
+ if (uc2 >= 0x1161 && uc2 < 0x1161 + 21
+ && uc1 >= 0x1100 && uc1 < 0x1100 + 19)
+ {
+ /* Hangul: Combine single letter L and single letter V to form
+ two-letter syllable LV. */
+ return 0xAC00 + ((uc1 - 0x1100) * 21 + (uc2 - 0x1161)) * 28;
+ }
+ else if (uc2 > 0x11A7 && uc2 < 0x11A7 + 28
+ && uc1 >= 0xAC00 && uc1 < 0xD7A4 && ((uc1 - 0xAC00) % 28) == 0)
+ {
+ /* Hangul: Combine two-letter syllable LV with single-letter T
+ to form three-letter syllable LVT. */
+ return uc1 + (uc2 - 0x11A7);
+ }
+ else
+ {
+#if 0
+ unsigned int uc = MUL1 * uc1 * MUL2 * uc2;
+ unsigned int index1 = uc >> composition_header_0;
+ if (index1 < composition_header_1)
+ {
+ int lookup1 = u_composition.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> composition_header_2) & composition_header_3;
+ int lookup2 = u_composition.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = (uc & composition_header_4);
+ unsigned int lookup3 = u_composition.level3[lookup2 + index3];
+ if ((lookup3 >> 16) == uc2)
+ return lookup3 & ((1U << 16) - 1);
+ }
+ }
+ }
+#else
+ char codes[4];
+ const struct composition_rule *rule;
+
+ codes[0] = (uc1 >> 8) & 0xff;
+ codes[1] = uc1 & 0xff;
+ codes[2] = (uc2 >> 8) & 0xff;
+ codes[3] = uc2 & 0xff;
+
+ rule = gl_uninorm_compose_lookup (codes, 4);
+ if (rule != NULL)
+ return rule->combined;
+#endif
+ }
+ }
+ return 0;
+}
diff --git a/lib/uninorm/decompose-internal.c b/lib/uninorm/decompose-internal.c
new file mode 100644
index 0000000..53b745d
--- /dev/null
+++ b/lib/uninorm/decompose-internal.c
@@ -0,0 +1,28 @@
+/* Decomposition of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "decompose-internal.h"
+
+#define ELEMENT struct ucs4_with_ccc
+#define COMPARE(a,b) ((a)->ccc - (b)->ccc)
+#define STATIC
+#define merge_sort_fromto gl_uninorm_decompose_merge_sort_fromto
+#define merge_sort_inplace gl_uninorm_decompose_merge_sort_inplace
+#include "array-mergesort.h"
diff --git a/lib/uninorm/decompose-internal.h b/lib/uninorm/decompose-internal.h
new file mode 100644
index 0000000..c1bf125
--- /dev/null
+++ b/lib/uninorm/decompose-internal.h
@@ -0,0 +1,36 @@
+/* Decomposition of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 <stddef.h>
+
+#include "unitypes.h"
+
+/* Variant of uc_decomposition that does not produce the 'tag'. */
+extern int
+ uc_compat_decomposition (ucs4_t uc, ucs4_t *decomposition);
+
+/* A Unicode character together with its canonical combining class. */
+struct ucs4_with_ccc
+{
+ ucs4_t code;
+ int ccc; /* range 0..255 */
+};
+
+/* Stable-sort an array of 'struct ucs4_with_ccc'. */
+extern void
+ gl_uninorm_decompose_merge_sort_inplace (struct ucs4_with_ccc *src, size_t n,
+ struct ucs4_with_ccc *tmp);
diff --git a/lib/uninorm/decomposing-form.c b/lib/uninorm/decomposing-form.c
new file mode 100644
index 0000000..3b49cb8
--- /dev/null
+++ b/lib/uninorm/decomposing-form.c
@@ -0,0 +1,29 @@
+/* Decomposing variant of a normalization form.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "normalize-internal.h"
+
+uninorm_t
+uninorm_decomposing_form (uninorm_t nf)
+{
+ return nf->decomposing_variant;
+}
diff --git a/lib/uninorm/decomposition-table.c b/lib/uninorm/decomposition-table.c
new file mode 100644
index 0000000..63f6442
--- /dev/null
+++ b/lib/uninorm/decomposition-table.c
@@ -0,0 +1,23 @@
+/* Decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm/decomposition-table.h"
+
+#include "uninorm/decomposition-table2.h"
diff --git a/lib/uninorm/decomposition-table.h b/lib/uninorm/decomposition-table.h
new file mode 100644
index 0000000..ad0e1a3
--- /dev/null
+++ b/lib/uninorm/decomposition-table.h
@@ -0,0 +1,48 @@
+/* Decomposition of Unicode characters.
+ Copyright (C) 2001-2003, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 "unitypes.h"
+
+/* The decomposition table is made of two parts:
+ - A table containing the actual arrays of decomposed equivalents.
+ (This table is separate because the maximum length of a decomposition
+ is 18, much larger than than the average length 1.497 of a decomposition).
+ - A 3-level table of indices into this array. */
+
+#include "decomposition-table1.h"
+
+static inline unsigned short
+decomp_index (ucs4_t uc)
+{
+ unsigned int index1 = uc >> decomp_header_0;
+ if (index1 < decomp_header_1)
+ {
+ int lookup1 = gl_uninorm_decomp_index_table.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> decomp_header_2) & decomp_header_3;
+ int lookup2 = gl_uninorm_decomp_index_table.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = uc & decomp_header_4;
+ return gl_uninorm_decomp_index_table.level3[lookup2 + index3];
+ }
+ }
+ }
+ return (unsigned short)(-1);
+}
diff --git a/lib/uninorm/decomposition-table1.h b/lib/uninorm/decomposition-table1.h
new file mode 100644
index 0000000..4ac70f4
--- /dev/null
+++ b/lib/uninorm/decomposition-table1.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Decomposition of Unicode characters. */
+/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0. */
+
+extern const unsigned char gl_uninorm_decomp_chars_table[];
+
+#define decomp_header_0 10
+#define decomp_header_1 191
+#define decomp_header_2 5
+#define decomp_header_3 31
+#define decomp_header_4 31
+
+typedef struct
+ {
+ int level1[191];
+ int level2[18 << 5];
+ unsigned short level3[254 << 5];
+ }
+decomp_index_table_t;
+extern const decomp_index_table_t gl_uninorm_decomp_index_table;
diff --git a/lib/uninorm/decomposition-table2.h b/lib/uninorm/decomposition-table2.h
new file mode 100644
index 0000000..f80f434
--- /dev/null
+++ b/lib/uninorm/decomposition-table2.h
@@ -0,0 +1,3152 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Decomposition of Unicode characters. */
+/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0. */
+
+const unsigned char gl_uninorm_decomp_chars_table[] =
+{
+ 0x08, 0x00, 0x20, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x08, 0x20, 0x00, 0x61,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x04, 0x20, 0x00, 0x32, 0x20, 0x00, 0x33,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01, 0x40, 0x03, 0xBC, 0xC0, 0x00, 0x20,
+ 0x00, 0x03, 0x27, 0x20, 0x00, 0x31, 0x20, 0x00, 0x6F, 0xBC, 0x00, 0x31,
+ 0x80, 0x20, 0x44, 0x00, 0x00, 0x34, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44,
+ 0x00, 0x00, 0x32, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x34,
+ 0x80, 0x00, 0x41, 0x00, 0x03, 0x00, 0x80, 0x00, 0x41, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x41, 0x00, 0x03, 0x02, 0x80, 0x00, 0x41, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x41, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x0A,
+ 0x80, 0x00, 0x43, 0x00, 0x03, 0x27, 0x80, 0x00, 0x45, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x45, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x45, 0x00, 0x03, 0x08, 0x80, 0x00, 0x49, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x49, 0x00, 0x03, 0x01, 0x80, 0x00, 0x49, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x49, 0x00, 0x03, 0x08, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x4F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x4F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x4F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x55, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x55, 0x00, 0x03, 0x01, 0x80, 0x00, 0x55, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x55, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x00, 0x80, 0x00, 0x61, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x02, 0x80, 0x00, 0x61, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x08, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0A,
+ 0x80, 0x00, 0x63, 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x01, 0x80, 0x00, 0x65, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x08, 0x80, 0x00, 0x69, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x01, 0x80, 0x00, 0x69, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x08, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x75, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x01, 0x80, 0x00, 0x75, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x08, 0x80, 0x00, 0x79, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x04, 0x80, 0x00, 0x41, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x06, 0x80, 0x00, 0x41, 0x00, 0x03, 0x28,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x28, 0x80, 0x00, 0x43, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x63, 0x00, 0x03, 0x01, 0x80, 0x00, 0x43, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x63, 0x00, 0x03, 0x02, 0x80, 0x00, 0x43, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x43, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x63, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x44, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x45, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x04, 0x80, 0x00, 0x45, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45, 0x00, 0x03, 0x28,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x28, 0x80, 0x00, 0x45, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x47, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x67, 0x00, 0x03, 0x02, 0x80, 0x00, 0x47, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x67, 0x00, 0x03, 0x06, 0x80, 0x00, 0x47, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x67, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x67, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x03, 0x80, 0x00, 0x49, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x04, 0x80, 0x00, 0x49, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x06, 0x80, 0x00, 0x49, 0x00, 0x03, 0x28,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x28, 0x80, 0x00, 0x49, 0x00, 0x03, 0x07,
+ 0xC0, 0x00, 0x49, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x6A,
+ 0x80, 0x00, 0x4A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6A, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x4B, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x4C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x4C, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x4C, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x0C,
+ 0xC0, 0x00, 0x4C, 0x00, 0x00, 0xB7, 0xC0, 0x00, 0x6C, 0x00, 0x00, 0xB7,
+ 0x80, 0x00, 0x4E, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x4E, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x4E, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x0C,
+ 0xC0, 0x02, 0xBC, 0x00, 0x00, 0x6E, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x06, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x0B,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x52, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x01, 0x80, 0x00, 0x52, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x27, 0x80, 0x00, 0x52, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x53, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x01, 0x80, 0x00, 0x53, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x02, 0x80, 0x00, 0x53, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x27, 0x80, 0x00, 0x53, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x54, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x27, 0x80, 0x00, 0x54, 0x00, 0x03, 0x0C,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x03, 0x80, 0x00, 0x55, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x04, 0x80, 0x00, 0x55, 0x00, 0x03, 0x06,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x06, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0A,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x0A, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0B,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x28,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x28, 0x80, 0x00, 0x57, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x08,
+ 0x80, 0x00, 0x5A, 0x00, 0x03, 0x01, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x5A, 0x00, 0x03, 0x07, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x5A, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x0C,
+ 0x40, 0x00, 0x73, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x6F,
+ 0x00, 0x03, 0x1B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x75,
+ 0x00, 0x03, 0x1B, 0xC0, 0x00, 0x44, 0x00, 0x01, 0x7D, 0xC0, 0x00, 0x44,
+ 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x64, 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x4C,
+ 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4C, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6C,
+ 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x4E, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4E,
+ 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6E, 0x00, 0x00, 0x6A, 0x80, 0x00, 0x41,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x49,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x04, 0x80, 0x00, 0xDC,
+ 0x00, 0x03, 0x01, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x01, 0x80, 0x00, 0xDC,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC,
+ 0x00, 0x03, 0x00, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC4,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0xE4, 0x00, 0x03, 0x04, 0x80, 0x02, 0x26,
+ 0x00, 0x03, 0x04, 0x80, 0x02, 0x27, 0x00, 0x03, 0x04, 0x80, 0x00, 0xC6,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x04, 0x80, 0x00, 0x47,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x67, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4B,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F,
+ 0x00, 0x03, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x28, 0x80, 0x01, 0xEA,
+ 0x00, 0x03, 0x04, 0x80, 0x01, 0xEB, 0x00, 0x03, 0x04, 0x80, 0x01, 0xB7,
+ 0x00, 0x03, 0x0C, 0x80, 0x02, 0x92, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6A,
+ 0x00, 0x03, 0x0C, 0xC0, 0x00, 0x44, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x44,
+ 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x64, 0x00, 0x00, 0x7A, 0x80, 0x00, 0x47,
+ 0x00, 0x03, 0x01, 0x80, 0x00, 0x67, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4E,
+ 0x00, 0x03, 0x00, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC5,
+ 0x00, 0x03, 0x01, 0x80, 0x00, 0xE5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC6,
+ 0x00, 0x03, 0x01, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD8,
+ 0x00, 0x03, 0x01, 0x80, 0x00, 0xF8, 0x00, 0x03, 0x01, 0x80, 0x00, 0x41,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x41,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x61, 0x00, 0x03, 0x11, 0x80, 0x00, 0x45,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x65, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x45,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x65, 0x00, 0x03, 0x11, 0x80, 0x00, 0x49,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x49,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x69, 0x00, 0x03, 0x11, 0x80, 0x00, 0x4F,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x4F,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x11, 0x80, 0x00, 0x52,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x72, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x52,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x72, 0x00, 0x03, 0x11, 0x80, 0x00, 0x55,
+ 0x00, 0x03, 0x0F, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x55,
+ 0x00, 0x03, 0x11, 0x80, 0x00, 0x75, 0x00, 0x03, 0x11, 0x80, 0x00, 0x53,
+ 0x00, 0x03, 0x26, 0x80, 0x00, 0x73, 0x00, 0x03, 0x26, 0x80, 0x00, 0x54,
+ 0x00, 0x03, 0x26, 0x80, 0x00, 0x74, 0x00, 0x03, 0x26, 0x80, 0x00, 0x48,
+ 0x00, 0x03, 0x0C, 0x80, 0x00, 0x68, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x41,
+ 0x00, 0x03, 0x07, 0x80, 0x00, 0x61, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45,
+ 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x27, 0x80, 0x00, 0xD6,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0xF6, 0x00, 0x03, 0x04, 0x80, 0x00, 0xD5,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0xF5, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F,
+ 0x00, 0x03, 0x07, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x07, 0x80, 0x02, 0x2E,
+ 0x00, 0x03, 0x04, 0x80, 0x02, 0x2F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x59,
+ 0x00, 0x03, 0x04, 0x80, 0x00, 0x79, 0x00, 0x03, 0x04, 0x20, 0x00, 0x68,
+ 0x20, 0x02, 0x66, 0x20, 0x00, 0x6A, 0x20, 0x00, 0x72, 0x20, 0x02, 0x79,
+ 0x20, 0x02, 0x7B, 0x20, 0x02, 0x81, 0x20, 0x00, 0x77, 0x20, 0x00, 0x79,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x06, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x07,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x28,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x03, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0B,
+ 0x20, 0x02, 0x63, 0x20, 0x00, 0x6C, 0x20, 0x00, 0x73, 0x20, 0x00, 0x78,
+ 0x20, 0x02, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x08, 0x00, 0x03, 0x01, 0x00, 0x02, 0xB9, 0xC0, 0x00, 0x20,
+ 0x00, 0x03, 0x45, 0x00, 0x00, 0x3B, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xA8, 0x00, 0x03, 0x01, 0x80, 0x03, 0x91, 0x00, 0x03, 0x01,
+ 0x00, 0x00, 0xB7, 0x80, 0x03, 0x95, 0x00, 0x03, 0x01, 0x80, 0x03, 0x97,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0x99, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xA9,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xCA, 0x00, 0x03, 0x01, 0x80, 0x03, 0x99,
+ 0x00, 0x03, 0x08, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x08, 0x80, 0x03, 0xB1,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x01, 0x80, 0x03, 0xCB,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x08, 0x80, 0x03, 0xC5,
+ 0x00, 0x03, 0x08, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5,
+ 0x00, 0x03, 0x01, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x01, 0x40, 0x03, 0xB2,
+ 0x40, 0x03, 0xB8, 0x40, 0x03, 0xA5, 0x80, 0x03, 0xD2, 0x00, 0x03, 0x01,
+ 0x80, 0x03, 0xD2, 0x00, 0x03, 0x08, 0x40, 0x03, 0xC6, 0x40, 0x03, 0xC0,
+ 0x40, 0x03, 0xBA, 0x40, 0x03, 0xC1, 0x40, 0x03, 0xC2, 0x40, 0x03, 0x98,
+ 0x40, 0x03, 0xB5, 0x40, 0x03, 0xA3, 0x80, 0x04, 0x15, 0x00, 0x03, 0x00,
+ 0x80, 0x04, 0x15, 0x00, 0x03, 0x08, 0x80, 0x04, 0x13, 0x00, 0x03, 0x01,
+ 0x80, 0x04, 0x06, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1A, 0x00, 0x03, 0x01,
+ 0x80, 0x04, 0x18, 0x00, 0x03, 0x00, 0x80, 0x04, 0x23, 0x00, 0x03, 0x06,
+ 0x80, 0x04, 0x18, 0x00, 0x03, 0x06, 0x80, 0x04, 0x38, 0x00, 0x03, 0x06,
+ 0x80, 0x04, 0x35, 0x00, 0x03, 0x00, 0x80, 0x04, 0x35, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x33, 0x00, 0x03, 0x01, 0x80, 0x04, 0x56, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x3A, 0x00, 0x03, 0x01, 0x80, 0x04, 0x38, 0x00, 0x03, 0x00,
+ 0x80, 0x04, 0x43, 0x00, 0x03, 0x06, 0x80, 0x04, 0x74, 0x00, 0x03, 0x0F,
+ 0x80, 0x04, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x04, 0x16, 0x00, 0x03, 0x06,
+ 0x80, 0x04, 0x36, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x06,
+ 0x80, 0x04, 0x30, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x30, 0x00, 0x03, 0x08, 0x80, 0x04, 0x15, 0x00, 0x03, 0x06,
+ 0x80, 0x04, 0x35, 0x00, 0x03, 0x06, 0x80, 0x04, 0xD8, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0xD9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x16, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x36, 0x00, 0x03, 0x08, 0x80, 0x04, 0x17, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x37, 0x00, 0x03, 0x08, 0x80, 0x04, 0x18, 0x00, 0x03, 0x04,
+ 0x80, 0x04, 0x38, 0x00, 0x03, 0x04, 0x80, 0x04, 0x18, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x38, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1E, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x3E, 0x00, 0x03, 0x08, 0x80, 0x04, 0xE8, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0xE9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2D, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x4D, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x04,
+ 0x80, 0x04, 0x43, 0x00, 0x03, 0x04, 0x80, 0x04, 0x23, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x43, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x0B,
+ 0x80, 0x04, 0x43, 0x00, 0x03, 0x0B, 0x80, 0x04, 0x27, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x47, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2B, 0x00, 0x03, 0x08,
+ 0x80, 0x04, 0x4B, 0x00, 0x03, 0x08, 0xC0, 0x05, 0x65, 0x00, 0x05, 0x82,
+ 0x80, 0x06, 0x27, 0x00, 0x06, 0x53, 0x80, 0x06, 0x27, 0x00, 0x06, 0x54,
+ 0x80, 0x06, 0x48, 0x00, 0x06, 0x54, 0x80, 0x06, 0x27, 0x00, 0x06, 0x55,
+ 0x80, 0x06, 0x4A, 0x00, 0x06, 0x54, 0xC0, 0x06, 0x27, 0x00, 0x06, 0x74,
+ 0xC0, 0x06, 0x48, 0x00, 0x06, 0x74, 0xC0, 0x06, 0xC7, 0x00, 0x06, 0x74,
+ 0xC0, 0x06, 0x4A, 0x00, 0x06, 0x74, 0x80, 0x06, 0xD5, 0x00, 0x06, 0x54,
+ 0x80, 0x06, 0xC1, 0x00, 0x06, 0x54, 0x80, 0x06, 0xD2, 0x00, 0x06, 0x54,
+ 0x80, 0x09, 0x28, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x30, 0x00, 0x09, 0x3C,
+ 0x80, 0x09, 0x33, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x15, 0x00, 0x09, 0x3C,
+ 0x80, 0x09, 0x16, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x17, 0x00, 0x09, 0x3C,
+ 0x80, 0x09, 0x1C, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x21, 0x00, 0x09, 0x3C,
+ 0x80, 0x09, 0x22, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x2B, 0x00, 0x09, 0x3C,
+ 0x80, 0x09, 0x2F, 0x00, 0x09, 0x3C, 0x80, 0x09, 0xC7, 0x00, 0x09, 0xBE,
+ 0x80, 0x09, 0xC7, 0x00, 0x09, 0xD7, 0x80, 0x09, 0xA1, 0x00, 0x09, 0xBC,
+ 0x80, 0x09, 0xA2, 0x00, 0x09, 0xBC, 0x80, 0x09, 0xAF, 0x00, 0x09, 0xBC,
+ 0x80, 0x0A, 0x32, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x38, 0x00, 0x0A, 0x3C,
+ 0x80, 0x0A, 0x16, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x17, 0x00, 0x0A, 0x3C,
+ 0x80, 0x0A, 0x1C, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x2B, 0x00, 0x0A, 0x3C,
+ 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x56, 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x3E,
+ 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x57, 0x80, 0x0B, 0x21, 0x00, 0x0B, 0x3C,
+ 0x80, 0x0B, 0x22, 0x00, 0x0B, 0x3C, 0x80, 0x0B, 0x92, 0x00, 0x0B, 0xD7,
+ 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xBE, 0x80, 0x0B, 0xC7, 0x00, 0x0B, 0xBE,
+ 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xD7, 0x80, 0x0C, 0x46, 0x00, 0x0C, 0x56,
+ 0x80, 0x0C, 0xBF, 0x00, 0x0C, 0xD5, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD5,
+ 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD6, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xC2,
+ 0x80, 0x0C, 0xCA, 0x00, 0x0C, 0xD5, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x3E,
+ 0x80, 0x0D, 0x47, 0x00, 0x0D, 0x3E, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x57,
+ 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCF,
+ 0x80, 0x0D, 0xDC, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xDF,
+ 0xC0, 0x0E, 0x4D, 0x00, 0x0E, 0x32, 0xC0, 0x0E, 0xCD, 0x00, 0x0E, 0xB2,
+ 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0x99, 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0xA1,
+ 0x08, 0x0F, 0x0B, 0x80, 0x0F, 0x42, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x4C,
+ 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x51, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x56,
+ 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x5B, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x40,
+ 0x00, 0x0F, 0xB5, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x72, 0x80, 0x0F, 0x71,
+ 0x00, 0x0F, 0x74, 0x80, 0x0F, 0xB2, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB2,
+ 0x00, 0x0F, 0x81, 0x80, 0x0F, 0xB3, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB3,
+ 0x00, 0x0F, 0x81, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x80, 0x80, 0x0F, 0x92,
+ 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x9C, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA1,
+ 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA6, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xAB,
+ 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x90, 0x00, 0x0F, 0xB5, 0x80, 0x10, 0x25,
+ 0x00, 0x10, 0x2E, 0x20, 0x10, 0xDC, 0x80, 0x1B, 0x05, 0x00, 0x1B, 0x35,
+ 0x80, 0x1B, 0x07, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x09, 0x00, 0x1B, 0x35,
+ 0x80, 0x1B, 0x0B, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x0D, 0x00, 0x1B, 0x35,
+ 0x80, 0x1B, 0x11, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3A, 0x00, 0x1B, 0x35,
+ 0x80, 0x1B, 0x3C, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3E, 0x00, 0x1B, 0x35,
+ 0x80, 0x1B, 0x3F, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x42, 0x00, 0x1B, 0x35,
+ 0x20, 0x00, 0x41, 0x20, 0x00, 0xC6, 0x20, 0x00, 0x42, 0x20, 0x00, 0x44,
+ 0x20, 0x00, 0x45, 0x20, 0x01, 0x8E, 0x20, 0x00, 0x47, 0x20, 0x00, 0x48,
+ 0x20, 0x00, 0x49, 0x20, 0x00, 0x4A, 0x20, 0x00, 0x4B, 0x20, 0x00, 0x4C,
+ 0x20, 0x00, 0x4D, 0x20, 0x00, 0x4E, 0x20, 0x00, 0x4F, 0x20, 0x02, 0x22,
+ 0x20, 0x00, 0x50, 0x20, 0x00, 0x52, 0x20, 0x00, 0x54, 0x20, 0x00, 0x55,
+ 0x20, 0x00, 0x57, 0x20, 0x00, 0x61, 0x20, 0x02, 0x50, 0x20, 0x02, 0x51,
+ 0x20, 0x1D, 0x02, 0x20, 0x00, 0x62, 0x20, 0x00, 0x64, 0x20, 0x00, 0x65,
+ 0x20, 0x02, 0x59, 0x20, 0x02, 0x5B, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x67,
+ 0x20, 0x00, 0x6B, 0x20, 0x00, 0x6D, 0x20, 0x01, 0x4B, 0x20, 0x00, 0x6F,
+ 0x20, 0x02, 0x54, 0x20, 0x1D, 0x16, 0x20, 0x1D, 0x17, 0x20, 0x00, 0x70,
+ 0x20, 0x00, 0x74, 0x20, 0x00, 0x75, 0x20, 0x1D, 0x1D, 0x20, 0x02, 0x6F,
+ 0x20, 0x00, 0x76, 0x20, 0x1D, 0x25, 0x20, 0x03, 0xB2, 0x20, 0x03, 0xB3,
+ 0x20, 0x03, 0xB4, 0x20, 0x03, 0xC6, 0x20, 0x03, 0xC7, 0x24, 0x00, 0x69,
+ 0x24, 0x00, 0x72, 0x24, 0x00, 0x75, 0x24, 0x00, 0x76, 0x24, 0x03, 0xB2,
+ 0x24, 0x03, 0xB3, 0x24, 0x03, 0xC1, 0x24, 0x03, 0xC6, 0x24, 0x03, 0xC7,
+ 0x20, 0x04, 0x3D, 0x20, 0x02, 0x52, 0x20, 0x00, 0x63, 0x20, 0x02, 0x55,
+ 0x20, 0x00, 0xF0, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x66, 0x20, 0x02, 0x5F,
+ 0x20, 0x02, 0x61, 0x20, 0x02, 0x65, 0x20, 0x02, 0x68, 0x20, 0x02, 0x69,
+ 0x20, 0x02, 0x6A, 0x20, 0x1D, 0x7B, 0x20, 0x02, 0x9D, 0x20, 0x02, 0x6D,
+ 0x20, 0x1D, 0x85, 0x20, 0x02, 0x9F, 0x20, 0x02, 0x71, 0x20, 0x02, 0x70,
+ 0x20, 0x02, 0x72, 0x20, 0x02, 0x73, 0x20, 0x02, 0x74, 0x20, 0x02, 0x75,
+ 0x20, 0x02, 0x78, 0x20, 0x02, 0x82, 0x20, 0x02, 0x83, 0x20, 0x01, 0xAB,
+ 0x20, 0x02, 0x89, 0x20, 0x02, 0x8A, 0x20, 0x1D, 0x1C, 0x20, 0x02, 0x8B,
+ 0x20, 0x02, 0x8C, 0x20, 0x00, 0x7A, 0x20, 0x02, 0x90, 0x20, 0x02, 0x91,
+ 0x20, 0x02, 0x92, 0x20, 0x03, 0xB8, 0x80, 0x00, 0x41, 0x00, 0x03, 0x25,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x25, 0x80, 0x00, 0x42, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x62, 0x00, 0x03, 0x07, 0x80, 0x00, 0x42, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x62, 0x00, 0x03, 0x23, 0x80, 0x00, 0x42, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x62, 0x00, 0x03, 0x31, 0x80, 0x00, 0xC7, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xE7, 0x00, 0x03, 0x01, 0x80, 0x00, 0x44, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x07, 0x80, 0x00, 0x44, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x23, 0x80, 0x00, 0x44, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x31, 0x80, 0x00, 0x44, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x27, 0x80, 0x00, 0x44, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x64, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x12, 0x00, 0x03, 0x00,
+ 0x80, 0x01, 0x13, 0x00, 0x03, 0x00, 0x80, 0x01, 0x12, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0x13, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x45, 0x00, 0x03, 0x30,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x30, 0x80, 0x02, 0x28, 0x00, 0x03, 0x06,
+ 0x80, 0x02, 0x29, 0x00, 0x03, 0x06, 0x80, 0x00, 0x46, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x66, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x04,
+ 0x80, 0x00, 0x67, 0x00, 0x03, 0x04, 0x80, 0x00, 0x48, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x07, 0x80, 0x00, 0x48, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x23, 0x80, 0x00, 0x48, 0x00, 0x03, 0x08,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x08, 0x80, 0x00, 0x48, 0x00, 0x03, 0x27,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x2E,
+ 0x80, 0x00, 0x68, 0x00, 0x03, 0x2E, 0x80, 0x00, 0x49, 0x00, 0x03, 0x30,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x30, 0x80, 0x00, 0xCF, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xEF, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x6B, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x6B, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x6B, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x6C, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x36, 0x00, 0x03, 0x04,
+ 0x80, 0x1E, 0x37, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x6C, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x6C, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x6D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x6D, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x6D, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x6E, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x6E, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x6E, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x6E, 0x00, 0x03, 0x2D, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xF5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x08,
+ 0x80, 0x00, 0xF5, 0x00, 0x03, 0x08, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x00,
+ 0x80, 0x01, 0x4D, 0x00, 0x03, 0x00, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0x4D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x70, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x70, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x5A, 0x00, 0x03, 0x04,
+ 0x80, 0x1E, 0x5B, 0x00, 0x03, 0x04, 0x80, 0x00, 0x52, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x72, 0x00, 0x03, 0x31, 0x80, 0x00, 0x53, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x07, 0x80, 0x00, 0x53, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x73, 0x00, 0x03, 0x23, 0x80, 0x01, 0x5A, 0x00, 0x03, 0x07,
+ 0x80, 0x01, 0x5B, 0x00, 0x03, 0x07, 0x80, 0x01, 0x60, 0x00, 0x03, 0x07,
+ 0x80, 0x01, 0x61, 0x00, 0x03, 0x07, 0x80, 0x1E, 0x62, 0x00, 0x03, 0x07,
+ 0x80, 0x1E, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x23, 0x80, 0x00, 0x54, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x31, 0x80, 0x00, 0x54, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x55, 0x00, 0x03, 0x24,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x24, 0x80, 0x00, 0x55, 0x00, 0x03, 0x30,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x30, 0x80, 0x00, 0x55, 0x00, 0x03, 0x2D,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x68, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0x69, 0x00, 0x03, 0x01, 0x80, 0x01, 0x6A, 0x00, 0x03, 0x08,
+ 0x80, 0x01, 0x6B, 0x00, 0x03, 0x08, 0x80, 0x00, 0x56, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x76, 0x00, 0x03, 0x03, 0x80, 0x00, 0x56, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x76, 0x00, 0x03, 0x23, 0x80, 0x00, 0x57, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x00, 0x80, 0x00, 0x57, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x01, 0x80, 0x00, 0x57, 0x00, 0x03, 0x08,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x08, 0x80, 0x00, 0x57, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x07, 0x80, 0x00, 0x57, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x77, 0x00, 0x03, 0x23, 0x80, 0x00, 0x58, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x78, 0x00, 0x03, 0x07, 0x80, 0x00, 0x58, 0x00, 0x03, 0x08,
+ 0x80, 0x00, 0x78, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x07,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x07, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x02,
+ 0x80, 0x00, 0x7A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x7A, 0x00, 0x03, 0x23, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x7A, 0x00, 0x03, 0x31, 0x80, 0x00, 0x68, 0x00, 0x03, 0x31,
+ 0x80, 0x00, 0x74, 0x00, 0x03, 0x08, 0x80, 0x00, 0x77, 0x00, 0x03, 0x0A,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x61, 0x00, 0x02, 0xBE,
+ 0x80, 0x01, 0x7F, 0x00, 0x03, 0x07, 0x80, 0x00, 0x41, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x23, 0x80, 0x00, 0x41, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x61, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xE2, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0xE2, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0xE2, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0xE2, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x02,
+ 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x02, 0x80, 0x01, 0x02, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0x03, 0x00, 0x03, 0x01, 0x80, 0x01, 0x02, 0x00, 0x03, 0x00,
+ 0x80, 0x01, 0x03, 0x00, 0x03, 0x00, 0x80, 0x01, 0x02, 0x00, 0x03, 0x09,
+ 0x80, 0x01, 0x03, 0x00, 0x03, 0x09, 0x80, 0x01, 0x02, 0x00, 0x03, 0x03,
+ 0x80, 0x01, 0x03, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x06,
+ 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x23, 0x80, 0x00, 0x45, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x09, 0x80, 0x00, 0x45, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x65, 0x00, 0x03, 0x03, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xEA, 0x00, 0x03, 0x01, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0xEA, 0x00, 0x03, 0x00, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0xEA, 0x00, 0x03, 0x09, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0xEA, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xB8, 0x00, 0x03, 0x02,
+ 0x80, 0x1E, 0xB9, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x09, 0x80, 0x00, 0x49, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x69, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x6F, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x01,
+ 0x80, 0x00, 0xF4, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0xF4, 0x00, 0x03, 0x00, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0xF4, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0xF4, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xCC, 0x00, 0x03, 0x02,
+ 0x80, 0x1E, 0xCD, 0x00, 0x03, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0xA1, 0x00, 0x03, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x00,
+ 0x80, 0x01, 0xA1, 0x00, 0x03, 0x00, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x09,
+ 0x80, 0x01, 0xA1, 0x00, 0x03, 0x09, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x03,
+ 0x80, 0x01, 0xA1, 0x00, 0x03, 0x03, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x23,
+ 0x80, 0x01, 0xA1, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x75, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x01,
+ 0x80, 0x01, 0xB0, 0x00, 0x03, 0x01, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x00,
+ 0x80, 0x01, 0xB0, 0x00, 0x03, 0x00, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x09,
+ 0x80, 0x01, 0xB0, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x03,
+ 0x80, 0x01, 0xB0, 0x00, 0x03, 0x03, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x23,
+ 0x80, 0x01, 0xB0, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x00,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x00, 0x80, 0x00, 0x59, 0x00, 0x03, 0x23,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x09,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x09, 0x80, 0x00, 0x59, 0x00, 0x03, 0x03,
+ 0x80, 0x00, 0x79, 0x00, 0x03, 0x03, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xB1, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x01, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x01, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x01, 0x00, 0x03, 0x42, 0x80, 0x03, 0x91, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x91, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x09, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x09, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x09, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xB5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x11, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x11, 0x00, 0x03, 0x01, 0x80, 0x03, 0x95, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x95, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x19, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x19, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xB7, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x21, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x21, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x21, 0x00, 0x03, 0x42, 0x80, 0x03, 0x97, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x97, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x29, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x29, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x29, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xB9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x31, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x31, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x31, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x99, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x39, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x39, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x39, 0x00, 0x03, 0x42, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xBF, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x41, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x41, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0x9F, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x49, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x49, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xC5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x51, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x51, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x51, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x14,
+ 0x80, 0x1F, 0x59, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x59, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x59, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xC9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x61, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x61, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x61, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA9, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xA9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x00,
+ 0x80, 0x1F, 0x69, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x01,
+ 0x80, 0x1F, 0x69, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x42,
+ 0x80, 0x1F, 0x69, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x00,
+ 0x00, 0x03, 0xAC, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAD,
+ 0x80, 0x03, 0xB7, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAE, 0x80, 0x03, 0xB9,
+ 0x00, 0x03, 0x00, 0x00, 0x03, 0xAF, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x00,
+ 0x00, 0x03, 0xCC, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCD,
+ 0x80, 0x03, 0xC9, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCE, 0x80, 0x1F, 0x00,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x01, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x02,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x03, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x04,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x05, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x06,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x07, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x08,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x09, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0A,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0C,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0E,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x20,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x21, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x22,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x23, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x24,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x25, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x26,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x27, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x28,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x29, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2A,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2C,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2E,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x60,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x61, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x62,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x63, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x64,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x65, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x66,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x67, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x68,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x69, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6A,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6C,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6E,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6F, 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1,
+ 0x00, 0x03, 0x06, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x04, 0x80, 0x1F, 0x70,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAC,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xB6,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0x91, 0x00, 0x03, 0x06, 0x80, 0x03, 0x91,
+ 0x00, 0x03, 0x04, 0x80, 0x03, 0x91, 0x00, 0x03, 0x00, 0x00, 0x03, 0x86,
+ 0x80, 0x03, 0x91, 0x00, 0x03, 0x45, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13,
+ 0x00, 0x03, 0xB9, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13, 0xC0, 0x00, 0x20,
+ 0x00, 0x03, 0x42, 0x80, 0x00, 0xA8, 0x00, 0x03, 0x42, 0x80, 0x1F, 0x74,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAE,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xC6,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x88,
+ 0x80, 0x03, 0x97, 0x00, 0x03, 0x00, 0x00, 0x03, 0x89, 0x80, 0x03, 0x97,
+ 0x00, 0x03, 0x45, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xBF,
+ 0x00, 0x03, 0x01, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9,
+ 0x00, 0x03, 0x06, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCA,
+ 0x00, 0x03, 0x00, 0x00, 0x03, 0x90, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x42,
+ 0x80, 0x03, 0xCA, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x06,
+ 0x80, 0x03, 0x99, 0x00, 0x03, 0x04, 0x80, 0x03, 0x99, 0x00, 0x03, 0x00,
+ 0x00, 0x03, 0x8A, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xFE,
+ 0x00, 0x03, 0x01, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC5,
+ 0x00, 0x03, 0x06, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCB,
+ 0x00, 0x03, 0x00, 0x00, 0x03, 0xB0, 0x80, 0x03, 0xC1, 0x00, 0x03, 0x13,
+ 0x80, 0x03, 0xC1, 0x00, 0x03, 0x14, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x42,
+ 0x80, 0x03, 0xCB, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x06,
+ 0x80, 0x03, 0xA5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x00,
+ 0x00, 0x03, 0x8E, 0x80, 0x03, 0xA1, 0x00, 0x03, 0x14, 0x80, 0x00, 0xA8,
+ 0x00, 0x03, 0x00, 0x00, 0x03, 0x85, 0x00, 0x00, 0x60, 0x80, 0x1F, 0x7C,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x45, 0x80, 0x03, 0xCE,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xF6,
+ 0x00, 0x03, 0x45, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8C,
+ 0x80, 0x03, 0xA9, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8F, 0x80, 0x03, 0xA9,
+ 0x00, 0x03, 0x45, 0x00, 0x00, 0xB4, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x14,
+ 0x00, 0x20, 0x02, 0x00, 0x20, 0x03, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20,
+ 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x00, 0x20,
+ 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x20, 0x10,
+ 0xC0, 0x00, 0x20, 0x00, 0x03, 0x33, 0x40, 0x00, 0x2E, 0xC0, 0x00, 0x2E,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x2E, 0x80, 0x00, 0x2E, 0x00, 0x00, 0x2E,
+ 0x08, 0x00, 0x20, 0xC0, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x32,
+ 0x80, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x35, 0x00, 0x20, 0x35,
+ 0xC0, 0x20, 0x35, 0x80, 0x20, 0x35, 0x00, 0x20, 0x35, 0xC0, 0x00, 0x21,
+ 0x00, 0x00, 0x21, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x05, 0xC0, 0x00, 0x3F,
+ 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x21, 0xC0, 0x00, 0x21,
+ 0x00, 0x00, 0x3F, 0xC0, 0x20, 0x32, 0x80, 0x20, 0x32, 0x80, 0x20, 0x32,
+ 0x00, 0x20, 0x32, 0x40, 0x00, 0x20, 0x20, 0x00, 0x30, 0x20, 0x00, 0x69,
+ 0x20, 0x00, 0x34, 0x20, 0x00, 0x35, 0x20, 0x00, 0x36, 0x20, 0x00, 0x37,
+ 0x20, 0x00, 0x38, 0x20, 0x00, 0x39, 0x20, 0x00, 0x2B, 0x20, 0x22, 0x12,
+ 0x20, 0x00, 0x3D, 0x20, 0x00, 0x28, 0x20, 0x00, 0x29, 0x20, 0x00, 0x6E,
+ 0x24, 0x00, 0x30, 0x24, 0x00, 0x31, 0x24, 0x00, 0x32, 0x24, 0x00, 0x33,
+ 0x24, 0x00, 0x34, 0x24, 0x00, 0x35, 0x24, 0x00, 0x36, 0x24, 0x00, 0x37,
+ 0x24, 0x00, 0x38, 0x24, 0x00, 0x39, 0x24, 0x00, 0x2B, 0x24, 0x22, 0x12,
+ 0x24, 0x00, 0x3D, 0x24, 0x00, 0x28, 0x24, 0x00, 0x29, 0x24, 0x00, 0x61,
+ 0x24, 0x00, 0x65, 0x24, 0x00, 0x6F, 0x24, 0x00, 0x78, 0x24, 0x02, 0x59,
+ 0xC0, 0x00, 0x52, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F,
+ 0x00, 0x00, 0x63, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, 0x00, 0x00, 0x73,
+ 0x04, 0x00, 0x43, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x43, 0xC0, 0x00, 0x63,
+ 0x80, 0x00, 0x2F, 0x00, 0x00, 0x6F, 0xC0, 0x00, 0x63, 0x80, 0x00, 0x2F,
+ 0x00, 0x00, 0x75, 0x40, 0x01, 0x90, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x46,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x68, 0x04, 0x01, 0x27, 0x04, 0x00, 0x49, 0x04, 0x00, 0x49,
+ 0x04, 0x00, 0x4C, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x4E, 0xC0, 0x00, 0x4E,
+ 0x00, 0x00, 0x6F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+ 0x04, 0x00, 0x52, 0x04, 0x00, 0x52, 0xA0, 0x00, 0x53, 0x00, 0x00, 0x4D,
+ 0xC0, 0x00, 0x54, 0x80, 0x00, 0x45, 0x00, 0x00, 0x4C, 0xA0, 0x00, 0x54,
+ 0x00, 0x00, 0x4D, 0x04, 0x00, 0x5A, 0x00, 0x03, 0xA9, 0x04, 0x00, 0x5A,
+ 0x00, 0x00, 0x4B, 0x00, 0x00, 0xC5, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43,
+ 0x04, 0x00, 0x65, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x4D,
+ 0x04, 0x00, 0x6F, 0x40, 0x05, 0xD0, 0x40, 0x05, 0xD1, 0x40, 0x05, 0xD2,
+ 0x40, 0x05, 0xD3, 0x04, 0x00, 0x69, 0xC0, 0x00, 0x46, 0x80, 0x00, 0x41,
+ 0x00, 0x00, 0x58, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xB3, 0x04, 0x03, 0x93,
+ 0x04, 0x03, 0xA0, 0x04, 0x22, 0x11, 0x04, 0x00, 0x44, 0x04, 0x00, 0x64,
+ 0x04, 0x00, 0x65, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0xBC, 0x00, 0x31,
+ 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44,
+ 0x00, 0x00, 0x33, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35,
+ 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x33,
+ 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x34, 0x80, 0x20, 0x44,
+ 0x00, 0x00, 0x35, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36,
+ 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36, 0xBC, 0x00, 0x31,
+ 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44,
+ 0x00, 0x00, 0x38, 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38,
+ 0xBC, 0x00, 0x37, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x31,
+ 0x00, 0x20, 0x44, 0x40, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x49,
+ 0xC0, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49,
+ 0x00, 0x00, 0x56, 0x40, 0x00, 0x56, 0xC0, 0x00, 0x56, 0x00, 0x00, 0x49,
+ 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56,
+ 0x80, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49,
+ 0x00, 0x00, 0x58, 0x40, 0x00, 0x58, 0xC0, 0x00, 0x58, 0x00, 0x00, 0x49,
+ 0xC0, 0x00, 0x58, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0x40, 0x00, 0x4C,
+ 0x40, 0x00, 0x43, 0x40, 0x00, 0x44, 0x40, 0x00, 0x4D, 0x40, 0x00, 0x69,
+ 0xC0, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x80, 0x00, 0x69,
+ 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x76, 0x40, 0x00, 0x76,
+ 0xC0, 0x00, 0x76, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69,
+ 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, 0x80, 0x00, 0x69,
+ 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x78, 0x40, 0x00, 0x78,
+ 0xC0, 0x00, 0x78, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x78, 0x80, 0x00, 0x69,
+ 0x00, 0x00, 0x69, 0x40, 0x00, 0x6C, 0x40, 0x00, 0x63, 0x40, 0x00, 0x64,
+ 0x40, 0x00, 0x6D, 0x80, 0x21, 0x90, 0x00, 0x03, 0x38, 0x80, 0x21, 0x92,
+ 0x00, 0x03, 0x38, 0x80, 0x21, 0x94, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD0,
+ 0x00, 0x03, 0x38, 0x80, 0x21, 0xD4, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD2,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x03, 0x00, 0x03, 0x38, 0x80, 0x22, 0x08,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x0B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x23,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x25, 0x00, 0x03, 0x38, 0xC0, 0x22, 0x2B,
+ 0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x00, 0x22, 0x2B,
+ 0xC0, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0xC0, 0x22, 0x2E, 0x80, 0x22, 0x2E,
+ 0x00, 0x22, 0x2E, 0x80, 0x22, 0x3C, 0x00, 0x03, 0x38, 0x80, 0x22, 0x43,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x45, 0x00, 0x03, 0x38, 0x80, 0x22, 0x48,
+ 0x00, 0x03, 0x38, 0x80, 0x00, 0x3D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x61,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x4D, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3C,
+ 0x00, 0x03, 0x38, 0x80, 0x00, 0x3E, 0x00, 0x03, 0x38, 0x80, 0x22, 0x64,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x65, 0x00, 0x03, 0x38, 0x80, 0x22, 0x72,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x73, 0x00, 0x03, 0x38, 0x80, 0x22, 0x76,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x77, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7A,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x7B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x82,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x83, 0x00, 0x03, 0x38, 0x80, 0x22, 0x86,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x87, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA2,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0xA8, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA9,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0xAB, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7C,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x7D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x91,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0x92, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB2,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0xB3, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB4,
+ 0x00, 0x03, 0x38, 0x80, 0x22, 0xB5, 0x00, 0x03, 0x38, 0x00, 0x30, 0x08,
+ 0x00, 0x30, 0x09, 0x1C, 0x00, 0x31, 0x1C, 0x00, 0x32, 0x1C, 0x00, 0x33,
+ 0x1C, 0x00, 0x34, 0x1C, 0x00, 0x35, 0x1C, 0x00, 0x36, 0x1C, 0x00, 0x37,
+ 0x1C, 0x00, 0x38, 0x1C, 0x00, 0x39, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x30,
+ 0x9C, 0x00, 0x31, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x32,
+ 0x9C, 0x00, 0x31, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x34,
+ 0x9C, 0x00, 0x31, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x36,
+ 0x9C, 0x00, 0x31, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x38,
+ 0x9C, 0x00, 0x31, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x30,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x33,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x37,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x31,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x33,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x35,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x37,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x38, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x39,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x2E,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37,
+ 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x2E,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32,
+ 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x62, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x63, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x64, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x65,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x66, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x67, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x68, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x69,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6A, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x6C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6E, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x70, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x71,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x72, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x73, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x74, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x75,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x76, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x00, 0x77, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x00, 0x78, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x79,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x7A, 0x00, 0x00, 0x29,
+ 0x1C, 0x00, 0x41, 0x1C, 0x00, 0x42, 0x1C, 0x00, 0x43, 0x1C, 0x00, 0x44,
+ 0x1C, 0x00, 0x45, 0x1C, 0x00, 0x46, 0x1C, 0x00, 0x47, 0x1C, 0x00, 0x48,
+ 0x1C, 0x00, 0x49, 0x1C, 0x00, 0x4A, 0x1C, 0x00, 0x4B, 0x1C, 0x00, 0x4C,
+ 0x1C, 0x00, 0x4D, 0x1C, 0x00, 0x4E, 0x1C, 0x00, 0x4F, 0x1C, 0x00, 0x50,
+ 0x1C, 0x00, 0x51, 0x1C, 0x00, 0x52, 0x1C, 0x00, 0x53, 0x1C, 0x00, 0x54,
+ 0x1C, 0x00, 0x55, 0x1C, 0x00, 0x56, 0x1C, 0x00, 0x57, 0x1C, 0x00, 0x58,
+ 0x1C, 0x00, 0x59, 0x1C, 0x00, 0x5A, 0x1C, 0x00, 0x61, 0x1C, 0x00, 0x62,
+ 0x1C, 0x00, 0x63, 0x1C, 0x00, 0x64, 0x1C, 0x00, 0x65, 0x1C, 0x00, 0x66,
+ 0x1C, 0x00, 0x67, 0x1C, 0x00, 0x68, 0x1C, 0x00, 0x69, 0x1C, 0x00, 0x6A,
+ 0x1C, 0x00, 0x6B, 0x1C, 0x00, 0x6C, 0x1C, 0x00, 0x6D, 0x1C, 0x00, 0x6E,
+ 0x1C, 0x00, 0x6F, 0x1C, 0x00, 0x70, 0x1C, 0x00, 0x71, 0x1C, 0x00, 0x72,
+ 0x1C, 0x00, 0x73, 0x1C, 0x00, 0x74, 0x1C, 0x00, 0x75, 0x1C, 0x00, 0x76,
+ 0x1C, 0x00, 0x77, 0x1C, 0x00, 0x78, 0x1C, 0x00, 0x79, 0x1C, 0x00, 0x7A,
+ 0x1C, 0x00, 0x30, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x80, 0x22, 0x2B,
+ 0x00, 0x22, 0x2B, 0xC0, 0x00, 0x3A, 0x80, 0x00, 0x3A, 0x00, 0x00, 0x3D,
+ 0xC0, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, 0x80, 0x00, 0x3D,
+ 0x00, 0x00, 0x3D, 0x80, 0x2A, 0xDD, 0x00, 0x03, 0x38, 0x24, 0x00, 0x6A,
+ 0x20, 0x00, 0x56, 0x20, 0x2D, 0x61, 0x40, 0x6B, 0xCD, 0x40, 0x9F, 0x9F,
+ 0x40, 0x4E, 0x00, 0x40, 0x4E, 0x28, 0x40, 0x4E, 0x36, 0x40, 0x4E, 0x3F,
+ 0x40, 0x4E, 0x59, 0x40, 0x4E, 0x85, 0x40, 0x4E, 0x8C, 0x40, 0x4E, 0xA0,
+ 0x40, 0x4E, 0xBA, 0x40, 0x51, 0x3F, 0x40, 0x51, 0x65, 0x40, 0x51, 0x6B,
+ 0x40, 0x51, 0x82, 0x40, 0x51, 0x96, 0x40, 0x51, 0xAB, 0x40, 0x51, 0xE0,
+ 0x40, 0x51, 0xF5, 0x40, 0x52, 0x00, 0x40, 0x52, 0x9B, 0x40, 0x52, 0xF9,
+ 0x40, 0x53, 0x15, 0x40, 0x53, 0x1A, 0x40, 0x53, 0x38, 0x40, 0x53, 0x41,
+ 0x40, 0x53, 0x5C, 0x40, 0x53, 0x69, 0x40, 0x53, 0x82, 0x40, 0x53, 0xB6,
+ 0x40, 0x53, 0xC8, 0x40, 0x53, 0xE3, 0x40, 0x56, 0xD7, 0x40, 0x57, 0x1F,
+ 0x40, 0x58, 0xEB, 0x40, 0x59, 0x02, 0x40, 0x59, 0x0A, 0x40, 0x59, 0x15,
+ 0x40, 0x59, 0x27, 0x40, 0x59, 0x73, 0x40, 0x5B, 0x50, 0x40, 0x5B, 0x80,
+ 0x40, 0x5B, 0xF8, 0x40, 0x5C, 0x0F, 0x40, 0x5C, 0x22, 0x40, 0x5C, 0x38,
+ 0x40, 0x5C, 0x6E, 0x40, 0x5C, 0x71, 0x40, 0x5D, 0xDB, 0x40, 0x5D, 0xE5,
+ 0x40, 0x5D, 0xF1, 0x40, 0x5D, 0xFE, 0x40, 0x5E, 0x72, 0x40, 0x5E, 0x7A,
+ 0x40, 0x5E, 0x7F, 0x40, 0x5E, 0xF4, 0x40, 0x5E, 0xFE, 0x40, 0x5F, 0x0B,
+ 0x40, 0x5F, 0x13, 0x40, 0x5F, 0x50, 0x40, 0x5F, 0x61, 0x40, 0x5F, 0x73,
+ 0x40, 0x5F, 0xC3, 0x40, 0x62, 0x08, 0x40, 0x62, 0x36, 0x40, 0x62, 0x4B,
+ 0x40, 0x65, 0x2F, 0x40, 0x65, 0x34, 0x40, 0x65, 0x87, 0x40, 0x65, 0x97,
+ 0x40, 0x65, 0xA4, 0x40, 0x65, 0xB9, 0x40, 0x65, 0xE0, 0x40, 0x65, 0xE5,
+ 0x40, 0x66, 0xF0, 0x40, 0x67, 0x08, 0x40, 0x67, 0x28, 0x40, 0x6B, 0x20,
+ 0x40, 0x6B, 0x62, 0x40, 0x6B, 0x79, 0x40, 0x6B, 0xB3, 0x40, 0x6B, 0xCB,
+ 0x40, 0x6B, 0xD4, 0x40, 0x6B, 0xDB, 0x40, 0x6C, 0x0F, 0x40, 0x6C, 0x14,
+ 0x40, 0x6C, 0x34, 0x40, 0x70, 0x6B, 0x40, 0x72, 0x2A, 0x40, 0x72, 0x36,
+ 0x40, 0x72, 0x3B, 0x40, 0x72, 0x3F, 0x40, 0x72, 0x47, 0x40, 0x72, 0x59,
+ 0x40, 0x72, 0x5B, 0x40, 0x72, 0xAC, 0x40, 0x73, 0x84, 0x40, 0x73, 0x89,
+ 0x40, 0x74, 0xDC, 0x40, 0x74, 0xE6, 0x40, 0x75, 0x18, 0x40, 0x75, 0x1F,
+ 0x40, 0x75, 0x28, 0x40, 0x75, 0x30, 0x40, 0x75, 0x8B, 0x40, 0x75, 0x92,
+ 0x40, 0x76, 0x76, 0x40, 0x76, 0x7D, 0x40, 0x76, 0xAE, 0x40, 0x76, 0xBF,
+ 0x40, 0x76, 0xEE, 0x40, 0x77, 0xDB, 0x40, 0x77, 0xE2, 0x40, 0x77, 0xF3,
+ 0x40, 0x79, 0x3A, 0x40, 0x79, 0xB8, 0x40, 0x79, 0xBE, 0x40, 0x7A, 0x74,
+ 0x40, 0x7A, 0xCB, 0x40, 0x7A, 0xF9, 0x40, 0x7C, 0x73, 0x40, 0x7C, 0xF8,
+ 0x40, 0x7F, 0x36, 0x40, 0x7F, 0x51, 0x40, 0x7F, 0x8A, 0x40, 0x7F, 0xBD,
+ 0x40, 0x80, 0x01, 0x40, 0x80, 0x0C, 0x40, 0x80, 0x12, 0x40, 0x80, 0x33,
+ 0x40, 0x80, 0x7F, 0x40, 0x80, 0x89, 0x40, 0x81, 0xE3, 0x40, 0x81, 0xEA,
+ 0x40, 0x81, 0xF3, 0x40, 0x81, 0xFC, 0x40, 0x82, 0x0C, 0x40, 0x82, 0x1B,
+ 0x40, 0x82, 0x1F, 0x40, 0x82, 0x6E, 0x40, 0x82, 0x72, 0x40, 0x82, 0x78,
+ 0x40, 0x86, 0x4D, 0x40, 0x86, 0x6B, 0x40, 0x88, 0x40, 0x40, 0x88, 0x4C,
+ 0x40, 0x88, 0x63, 0x40, 0x89, 0x7E, 0x40, 0x89, 0x8B, 0x40, 0x89, 0xD2,
+ 0x40, 0x8A, 0x00, 0x40, 0x8C, 0x37, 0x40, 0x8C, 0x46, 0x40, 0x8C, 0x55,
+ 0x40, 0x8C, 0x78, 0x40, 0x8C, 0x9D, 0x40, 0x8D, 0x64, 0x40, 0x8D, 0x70,
+ 0x40, 0x8D, 0xB3, 0x40, 0x8E, 0xAB, 0x40, 0x8E, 0xCA, 0x40, 0x8F, 0x9B,
+ 0x40, 0x8F, 0xB0, 0x40, 0x8F, 0xB5, 0x40, 0x90, 0x91, 0x40, 0x91, 0x49,
+ 0x40, 0x91, 0xC6, 0x40, 0x91, 0xCC, 0x40, 0x91, 0xD1, 0x40, 0x95, 0x77,
+ 0x40, 0x95, 0x80, 0x40, 0x96, 0x1C, 0x40, 0x96, 0xB6, 0x40, 0x96, 0xB9,
+ 0x40, 0x96, 0xE8, 0x40, 0x97, 0x51, 0x40, 0x97, 0x5E, 0x40, 0x97, 0x62,
+ 0x40, 0x97, 0x69, 0x40, 0x97, 0xCB, 0x40, 0x97, 0xED, 0x40, 0x97, 0xF3,
+ 0x40, 0x98, 0x01, 0x40, 0x98, 0xA8, 0x40, 0x98, 0xDB, 0x40, 0x98, 0xDF,
+ 0x40, 0x99, 0x96, 0x40, 0x99, 0x99, 0x40, 0x99, 0xAC, 0x40, 0x9A, 0xA8,
+ 0x40, 0x9A, 0xD8, 0x40, 0x9A, 0xDF, 0x40, 0x9B, 0x25, 0x40, 0x9B, 0x2F,
+ 0x40, 0x9B, 0x32, 0x40, 0x9B, 0x3C, 0x40, 0x9B, 0x5A, 0x40, 0x9C, 0xE5,
+ 0x40, 0x9E, 0x75, 0x40, 0x9E, 0x7F, 0x40, 0x9E, 0xA5, 0x40, 0x9E, 0xBB,
+ 0x40, 0x9E, 0xC3, 0x40, 0x9E, 0xCD, 0x40, 0x9E, 0xD1, 0x40, 0x9E, 0xF9,
+ 0x40, 0x9E, 0xFD, 0x40, 0x9F, 0x0E, 0x40, 0x9F, 0x13, 0x40, 0x9F, 0x20,
+ 0x40, 0x9F, 0x3B, 0x40, 0x9F, 0x4A, 0x40, 0x9F, 0x52, 0x40, 0x9F, 0x8D,
+ 0x40, 0x9F, 0x9C, 0x40, 0x9F, 0xA0, 0x2C, 0x00, 0x20, 0x40, 0x30, 0x12,
+ 0x40, 0x53, 0x41, 0x40, 0x53, 0x44, 0x40, 0x53, 0x45, 0x80, 0x30, 0x4B,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x4D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x4F,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x51, 0x00, 0x30, 0x99, 0x80, 0x30, 0x53,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x55, 0x00, 0x30, 0x99, 0x80, 0x30, 0x57,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x59, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5B,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x5D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5F,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x61, 0x00, 0x30, 0x99, 0x80, 0x30, 0x64,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x66, 0x00, 0x30, 0x99, 0x80, 0x30, 0x68,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0x72, 0x00, 0x30, 0x99, 0x80, 0x30, 0x72,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0x75, 0x00, 0x30, 0x99, 0x80, 0x30, 0x75,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0x78, 0x00, 0x30, 0x99, 0x80, 0x30, 0x78,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0x7B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x7B,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0x46, 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20,
+ 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x9D,
+ 0x00, 0x30, 0x99, 0xA8, 0x30, 0x88, 0x00, 0x30, 0x8A, 0x80, 0x30, 0xAB,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xAD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xAF,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xB1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB3,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xB5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB7,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xB9, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBB,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xBD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBF,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xC1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC4,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xC6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC8,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD2,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD5,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD8, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD8,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0xDB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xDB,
+ 0x00, 0x30, 0x9A, 0x80, 0x30, 0xA6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xEF,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xF0, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF1,
+ 0x00, 0x30, 0x99, 0x80, 0x30, 0xF2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xFD,
+ 0x00, 0x30, 0x99, 0xA8, 0x30, 0xB3, 0x00, 0x30, 0xC8, 0x40, 0x11, 0x00,
+ 0x40, 0x11, 0x01, 0x40, 0x11, 0xAA, 0x40, 0x11, 0x02, 0x40, 0x11, 0xAC,
+ 0x40, 0x11, 0xAD, 0x40, 0x11, 0x03, 0x40, 0x11, 0x04, 0x40, 0x11, 0x05,
+ 0x40, 0x11, 0xB0, 0x40, 0x11, 0xB1, 0x40, 0x11, 0xB2, 0x40, 0x11, 0xB3,
+ 0x40, 0x11, 0xB4, 0x40, 0x11, 0xB5, 0x40, 0x11, 0x1A, 0x40, 0x11, 0x06,
+ 0x40, 0x11, 0x07, 0x40, 0x11, 0x08, 0x40, 0x11, 0x21, 0x40, 0x11, 0x09,
+ 0x40, 0x11, 0x0A, 0x40, 0x11, 0x0B, 0x40, 0x11, 0x0C, 0x40, 0x11, 0x0D,
+ 0x40, 0x11, 0x0E, 0x40, 0x11, 0x0F, 0x40, 0x11, 0x10, 0x40, 0x11, 0x11,
+ 0x40, 0x11, 0x12, 0x40, 0x11, 0x61, 0x40, 0x11, 0x62, 0x40, 0x11, 0x63,
+ 0x40, 0x11, 0x64, 0x40, 0x11, 0x65, 0x40, 0x11, 0x66, 0x40, 0x11, 0x67,
+ 0x40, 0x11, 0x68, 0x40, 0x11, 0x69, 0x40, 0x11, 0x6A, 0x40, 0x11, 0x6B,
+ 0x40, 0x11, 0x6C, 0x40, 0x11, 0x6D, 0x40, 0x11, 0x6E, 0x40, 0x11, 0x6F,
+ 0x40, 0x11, 0x70, 0x40, 0x11, 0x71, 0x40, 0x11, 0x72, 0x40, 0x11, 0x73,
+ 0x40, 0x11, 0x74, 0x40, 0x11, 0x75, 0x40, 0x11, 0x60, 0x40, 0x11, 0x14,
+ 0x40, 0x11, 0x15, 0x40, 0x11, 0xC7, 0x40, 0x11, 0xC8, 0x40, 0x11, 0xCC,
+ 0x40, 0x11, 0xCE, 0x40, 0x11, 0xD3, 0x40, 0x11, 0xD7, 0x40, 0x11, 0xD9,
+ 0x40, 0x11, 0x1C, 0x40, 0x11, 0xDD, 0x40, 0x11, 0xDF, 0x40, 0x11, 0x1D,
+ 0x40, 0x11, 0x1E, 0x40, 0x11, 0x20, 0x40, 0x11, 0x22, 0x40, 0x11, 0x23,
+ 0x40, 0x11, 0x27, 0x40, 0x11, 0x29, 0x40, 0x11, 0x2B, 0x40, 0x11, 0x2C,
+ 0x40, 0x11, 0x2D, 0x40, 0x11, 0x2E, 0x40, 0x11, 0x2F, 0x40, 0x11, 0x32,
+ 0x40, 0x11, 0x36, 0x40, 0x11, 0x40, 0x40, 0x11, 0x47, 0x40, 0x11, 0x4C,
+ 0x40, 0x11, 0xF1, 0x40, 0x11, 0xF2, 0x40, 0x11, 0x57, 0x40, 0x11, 0x58,
+ 0x40, 0x11, 0x59, 0x40, 0x11, 0x84, 0x40, 0x11, 0x85, 0x40, 0x11, 0x88,
+ 0x40, 0x11, 0x91, 0x40, 0x11, 0x92, 0x40, 0x11, 0x94, 0x40, 0x11, 0x9E,
+ 0x40, 0x11, 0xA1, 0x20, 0x4E, 0x00, 0x20, 0x4E, 0x8C, 0x20, 0x4E, 0x09,
+ 0x20, 0x56, 0xDB, 0x20, 0x4E, 0x0A, 0x20, 0x4E, 0x2D, 0x20, 0x4E, 0x0B,
+ 0x20, 0x75, 0x32, 0x20, 0x4E, 0x59, 0x20, 0x4E, 0x19, 0x20, 0x4E, 0x01,
+ 0x20, 0x59, 0x29, 0x20, 0x57, 0x30, 0x20, 0x4E, 0xBA, 0xC0, 0x00, 0x28,
+ 0x80, 0x11, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x11, 0x06, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x11, 0x0C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x11, 0x11, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12, 0x80, 0x11, 0x61,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x6E,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69,
+ 0x80, 0x11, 0x0C, 0x80, 0x11, 0x65, 0x80, 0x11, 0xAB, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69, 0x80, 0x11, 0x12,
+ 0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x00,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x8C, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x56, 0xDB, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x94,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6D, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x03, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x51, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x5D,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x53, 0x41, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x67, 0x08, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x70, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x6C, 0x34,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x28, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x91, 0xD1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x57, 0x1F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x65, 0xE5,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x68, 0x2A, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x67, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x79, 0x3E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x54, 0x0D,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x72, 0x79, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xA1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x79, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x52, 0xB4,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0xE3, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x54, 0x7C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x5B, 0x66, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x76, 0xE3,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x01, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xC7, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x53, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x79, 0x6D,
+ 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x11, 0x00, 0x00, 0x29,
+ 0xC0, 0x00, 0x28, 0x80, 0x81, 0xEA, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+ 0x80, 0x81, 0xF3, 0x00, 0x00, 0x29, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x54,
+ 0x00, 0x00, 0x45, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x32,
+ 0x00, 0x00, 0x32, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x32,
+ 0x00, 0x00, 0x34, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x32,
+ 0x00, 0x00, 0x36, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x32,
+ 0x00, 0x00, 0x38, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x33,
+ 0x00, 0x00, 0x30, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x33,
+ 0x00, 0x00, 0x32, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x33,
+ 0x00, 0x00, 0x34, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x35, 0x1C, 0x11, 0x00,
+ 0x1C, 0x11, 0x02, 0x1C, 0x11, 0x03, 0x1C, 0x11, 0x05, 0x1C, 0x11, 0x06,
+ 0x1C, 0x11, 0x07, 0x1C, 0x11, 0x09, 0x1C, 0x11, 0x0B, 0x1C, 0x11, 0x0C,
+ 0x1C, 0x11, 0x0E, 0x1C, 0x11, 0x0F, 0x1C, 0x11, 0x10, 0x1C, 0x11, 0x11,
+ 0x1C, 0x11, 0x12, 0x9C, 0x11, 0x00, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x02,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x03, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x05,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x06, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x07,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x09, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0B,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0C, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0F, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x10,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x11, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x12,
+ 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, 0x80, 0x11, 0x61, 0x80, 0x11, 0xB7,
+ 0x80, 0x11, 0x00, 0x00, 0x11, 0x69, 0x9C, 0x11, 0x0C, 0x80, 0x11, 0x6E,
+ 0x80, 0x11, 0x0B, 0x00, 0x11, 0x74, 0x9C, 0x11, 0x0B, 0x00, 0x11, 0x6E,
+ 0x1C, 0x4E, 0x00, 0x1C, 0x4E, 0x8C, 0x1C, 0x4E, 0x09, 0x1C, 0x56, 0xDB,
+ 0x1C, 0x4E, 0x94, 0x1C, 0x51, 0x6D, 0x1C, 0x4E, 0x03, 0x1C, 0x51, 0x6B,
+ 0x1C, 0x4E, 0x5D, 0x1C, 0x53, 0x41, 0x1C, 0x67, 0x08, 0x1C, 0x70, 0x6B,
+ 0x1C, 0x6C, 0x34, 0x1C, 0x67, 0x28, 0x1C, 0x91, 0xD1, 0x1C, 0x57, 0x1F,
+ 0x1C, 0x65, 0xE5, 0x1C, 0x68, 0x2A, 0x1C, 0x67, 0x09, 0x1C, 0x79, 0x3E,
+ 0x1C, 0x54, 0x0D, 0x1C, 0x72, 0x79, 0x1C, 0x8C, 0xA1, 0x1C, 0x79, 0x5D,
+ 0x1C, 0x52, 0xB4, 0x1C, 0x79, 0xD8, 0x1C, 0x75, 0x37, 0x1C, 0x59, 0x73,
+ 0x1C, 0x90, 0x69, 0x1C, 0x51, 0x2A, 0x1C, 0x53, 0x70, 0x1C, 0x6C, 0xE8,
+ 0x1C, 0x98, 0x05, 0x1C, 0x4F, 0x11, 0x1C, 0x51, 0x99, 0x1C, 0x6B, 0x63,
+ 0x1C, 0x4E, 0x0A, 0x1C, 0x4E, 0x2D, 0x1C, 0x4E, 0x0B, 0x1C, 0x5D, 0xE6,
+ 0x1C, 0x53, 0xF3, 0x1C, 0x53, 0x3B, 0x1C, 0x5B, 0x97, 0x1C, 0x5B, 0x66,
+ 0x1C, 0x76, 0xE3, 0x1C, 0x4F, 0x01, 0x1C, 0x8C, 0xC7, 0x1C, 0x53, 0x54,
+ 0x1C, 0x59, 0x1C, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x33,
+ 0x00, 0x00, 0x37, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x33,
+ 0x00, 0x00, 0x39, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x30, 0x9C, 0x00, 0x34,
+ 0x00, 0x00, 0x31, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x34,
+ 0x00, 0x00, 0x33, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x34,
+ 0x00, 0x00, 0x35, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x34,
+ 0x00, 0x00, 0x37, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x34,
+ 0x00, 0x00, 0x39, 0x9C, 0x00, 0x35, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x31,
+ 0x00, 0x67, 0x08, 0xC0, 0x00, 0x32, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x33,
+ 0x00, 0x67, 0x08, 0xC0, 0x00, 0x34, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x35,
+ 0x00, 0x67, 0x08, 0xC0, 0x00, 0x36, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x37,
+ 0x00, 0x67, 0x08, 0xC0, 0x00, 0x38, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x39,
+ 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x67, 0x08,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x32, 0x00, 0x67, 0x08, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x67,
+ 0xB8, 0x00, 0x65, 0x80, 0x00, 0x72, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x65,
+ 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4C, 0x80, 0x00, 0x54, 0x00, 0x00, 0x44,
+ 0x1C, 0x30, 0xA2, 0x1C, 0x30, 0xA4, 0x1C, 0x30, 0xA6, 0x1C, 0x30, 0xA8,
+ 0x1C, 0x30, 0xAA, 0x1C, 0x30, 0xAB, 0x1C, 0x30, 0xAD, 0x1C, 0x30, 0xAF,
+ 0x1C, 0x30, 0xB1, 0x1C, 0x30, 0xB3, 0x1C, 0x30, 0xB5, 0x1C, 0x30, 0xB7,
+ 0x1C, 0x30, 0xB9, 0x1C, 0x30, 0xBB, 0x1C, 0x30, 0xBD, 0x1C, 0x30, 0xBF,
+ 0x1C, 0x30, 0xC1, 0x1C, 0x30, 0xC4, 0x1C, 0x30, 0xC6, 0x1C, 0x30, 0xC8,
+ 0x1C, 0x30, 0xCA, 0x1C, 0x30, 0xCB, 0x1C, 0x30, 0xCC, 0x1C, 0x30, 0xCD,
+ 0x1C, 0x30, 0xCE, 0x1C, 0x30, 0xCF, 0x1C, 0x30, 0xD2, 0x1C, 0x30, 0xD5,
+ 0x1C, 0x30, 0xD8, 0x1C, 0x30, 0xDB, 0x1C, 0x30, 0xDE, 0x1C, 0x30, 0xDF,
+ 0x1C, 0x30, 0xE0, 0x1C, 0x30, 0xE1, 0x1C, 0x30, 0xE2, 0x1C, 0x30, 0xE4,
+ 0x1C, 0x30, 0xE6, 0x1C, 0x30, 0xE8, 0x1C, 0x30, 0xE9, 0x1C, 0x30, 0xEA,
+ 0x1C, 0x30, 0xEB, 0x1C, 0x30, 0xEC, 0x1C, 0x30, 0xED, 0x1C, 0x30, 0xEF,
+ 0x1C, 0x30, 0xF0, 0x1C, 0x30, 0xF1, 0x1C, 0x30, 0xF2, 0xB8, 0x30, 0xA2,
+ 0x80, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xA2,
+ 0x80, 0x30, 0xEB, 0x80, 0x30, 0xD5, 0x00, 0x30, 0xA1, 0xB8, 0x30, 0xA2,
+ 0x80, 0x30, 0xF3, 0x80, 0x30, 0xDA, 0x00, 0x30, 0xA2, 0xB8, 0x30, 0xA2,
+ 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xCB,
+ 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xF3,
+ 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xA6, 0x80, 0x30, 0xA9, 0x00, 0x30, 0xF3,
+ 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xB9, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xFC,
+ 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xAB,
+ 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9,
+ 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAB,
+ 0x80, 0x30, 0xA4, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xE9,
+ 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xED,
+ 0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xED,
+ 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xDE,
+ 0xB8, 0x30, 0xAE, 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xCB,
+ 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xE5, 0x80, 0x30, 0xEA,
+ 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xC0,
+ 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xAD,
+ 0x80, 0x30, 0xED, 0x80, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0,
+ 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xE1, 0x80, 0x30, 0xFC,
+ 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED,
+ 0x80, 0x30, 0xEF, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xB0,
+ 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9,
+ 0x80, 0x30, 0xE0, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAF,
+ 0x80, 0x30, 0xEB, 0x80, 0x30, 0xBC, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xED,
+ 0xB8, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xCD,
+ 0xB8, 0x30, 0xB1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xB3,
+ 0x80, 0x30, 0xEB, 0x00, 0x30, 0xCA, 0xB8, 0x30, 0xB3, 0x80, 0x30, 0xFC,
+ 0x00, 0x30, 0xDD, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC1,
+ 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB7, 0x80, 0x30, 0xEA,
+ 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3,
+ 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8,
+ 0xB8, 0x30, 0xC0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xC7,
+ 0x00, 0x30, 0xB7, 0xB8, 0x30, 0xC9, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xC8,
+ 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xCA, 0x00, 0x30, 0xCE, 0xB8, 0x30, 0xCE,
+ 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xCF, 0x80, 0x30, 0xA4,
+ 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xBB,
+ 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC,
+ 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xEC,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xA2, 0x80, 0x30, 0xB9,
+ 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xAF,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x00, 0x30, 0xB3, 0xB8, 0x30, 0xD3,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA1, 0x80, 0x30, 0xE9,
+ 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA3,
+ 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD6, 0x80, 0x30, 0xC3,
+ 0x80, 0x30, 0xB7, 0x80, 0x30, 0xA7, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5,
+ 0x80, 0x30, 0xE9, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xAF,
+ 0x80, 0x30, 0xBF, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDA,
+ 0x00, 0x30, 0xBD, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xCB, 0x00, 0x30, 0xD2,
+ 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xDA,
+ 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xFC,
+ 0x00, 0x30, 0xB8, 0xB8, 0x30, 0xD9, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xBF,
+ 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8,
+ 0xB8, 0x30, 0xDC, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDB,
+ 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC9,
+ 0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDB,
+ 0x80, 0x30, 0xFC, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4,
+ 0x80, 0x30, 0xAF, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xCF,
+ 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xAF, 0xB8, 0x30, 0xDE,
+ 0x80, 0x30, 0xF3, 0x80, 0x30, 0xB7, 0x80, 0x30, 0xE7, 0x00, 0x30, 0xF3,
+ 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x00, 0x30, 0xF3,
+ 0xB8, 0x30, 0xDF, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xEA,
+ 0x80, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE1,
+ 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xAC, 0x80, 0x30, 0xC8,
+ 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8,
+ 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9,
+ 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE6,
+ 0x80, 0x30, 0xA2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEA, 0x80, 0x30, 0xC3,
+ 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEA, 0x00, 0x30, 0xE9,
+ 0xB8, 0x30, 0xEB, 0x80, 0x30, 0xD4, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xEB,
+ 0x80, 0x30, 0xFC, 0x80, 0x30, 0xD6, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEC,
+ 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xEC, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC8,
+ 0x80, 0x30, 0xB2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEF, 0x80, 0x30, 0xC3,
+ 0x00, 0x30, 0xC8, 0xC0, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x33,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x35,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x37,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x38, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x39,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x70, 0xB9,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32,
+ 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31,
+ 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9,
+ 0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32,
+ 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xB8, 0x00, 0x68, 0x80, 0x00, 0x50,
+ 0x00, 0x00, 0x61, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x41,
+ 0x00, 0x00, 0x55, 0xB8, 0x00, 0x62, 0x80, 0x00, 0x61, 0x00, 0x00, 0x72,
+ 0xB8, 0x00, 0x6F, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x63,
+ 0xB8, 0x00, 0x64, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3,
+ 0xB8, 0x00, 0x49, 0x00, 0x00, 0x55, 0xB8, 0x5E, 0x73, 0x00, 0x62, 0x10,
+ 0xB8, 0x66, 0x2D, 0x00, 0x54, 0x8C, 0xB8, 0x59, 0x27, 0x00, 0x6B, 0x63,
+ 0xB8, 0x66, 0x0E, 0x00, 0x6C, 0xBB, 0xB8, 0x68, 0x2A, 0x80, 0x5F, 0x0F,
+ 0x80, 0x4F, 0x1A, 0x00, 0x79, 0x3E, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x41,
+ 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x41, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x41,
+ 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x41,
+ 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x42,
+ 0xB8, 0x00, 0x47, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x61,
+ 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x63, 0x80, 0x00, 0x61,
+ 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x46, 0xB8, 0x00, 0x6E,
+ 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC,
+ 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6B,
+ 0x00, 0x00, 0x67, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x6B,
+ 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x48,
+ 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x47, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A,
+ 0xB8, 0x00, 0x54, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x03, 0xBC,
+ 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6D, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x64,
+ 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6B, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x66,
+ 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x6D, 0xB8, 0x03, 0xBC,
+ 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x63,
+ 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D,
+ 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6B,
+ 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3,
+ 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73,
+ 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, 0x00, 0x00, 0xB2,
+ 0xB8, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x50,
+ 0x00, 0x00, 0x61, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61,
+ 0xB8, 0x00, 0x47, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x72,
+ 0x80, 0x00, 0x61, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61,
+ 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x72,
+ 0x80, 0x00, 0x61, 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73,
+ 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6E,
+ 0x00, 0x00, 0x73, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D,
+ 0x00, 0x00, 0x73, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6E,
+ 0x00, 0x00, 0x56, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6D,
+ 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D,
+ 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6E,
+ 0x00, 0x00, 0x57, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6D,
+ 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x4D,
+ 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x4D,
+ 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x61, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x42, 0x00, 0x00, 0x71, 0xB8, 0x00, 0x63,
+ 0x00, 0x00, 0x63, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x43,
+ 0x80, 0x22, 0x15, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x43,
+ 0x80, 0x00, 0x6F, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x42,
+ 0xB8, 0x00, 0x47, 0x00, 0x00, 0x79, 0xB8, 0x00, 0x68, 0x00, 0x00, 0x61,
+ 0xB8, 0x00, 0x48, 0x00, 0x00, 0x50, 0xB8, 0x00, 0x69, 0x00, 0x00, 0x6E,
+ 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4B, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4D,
+ 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x74, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6D,
+ 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x6C, 0x80, 0x00, 0x6F,
+ 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x78, 0xB8, 0x00, 0x6D,
+ 0x00, 0x00, 0x62, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x69, 0x00, 0x00, 0x6C,
+ 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x50,
+ 0x00, 0x00, 0x48, 0xB8, 0x00, 0x70, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D,
+ 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x4D,
+ 0xB8, 0x00, 0x50, 0x00, 0x00, 0x52, 0xB8, 0x00, 0x73, 0x00, 0x00, 0x72,
+ 0xB8, 0x00, 0x53, 0x00, 0x00, 0x76, 0xB8, 0x00, 0x57, 0x00, 0x00, 0x62,
+ 0xB8, 0x00, 0x56, 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x41,
+ 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xC0, 0x00, 0x31, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x35, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x37, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x39, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32,
+ 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36,
+ 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
+ 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30,
+ 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
+ 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x34,
+ 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x32, 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
+ 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x38,
+ 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5,
+ 0xC0, 0x00, 0x33, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33,
+ 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xB8, 0x00, 0x67, 0x80, 0x00, 0x61,
+ 0x00, 0x00, 0x6C, 0x20, 0xA7, 0x6F, 0x00, 0x8C, 0x48, 0x00, 0x66, 0xF4,
+ 0x00, 0x8E, 0xCA, 0x00, 0x8C, 0xC8, 0x00, 0x6E, 0xD1, 0x00, 0x4E, 0x32,
+ 0x00, 0x53, 0xE5, 0x00, 0x9F, 0x9C, 0x00, 0x9F, 0x9C, 0x00, 0x59, 0x51,
+ 0x00, 0x91, 0xD1, 0x00, 0x55, 0x87, 0x00, 0x59, 0x48, 0x00, 0x61, 0xF6,
+ 0x00, 0x76, 0x69, 0x00, 0x7F, 0x85, 0x00, 0x86, 0x3F, 0x00, 0x87, 0xBA,
+ 0x00, 0x88, 0xF8, 0x00, 0x90, 0x8F, 0x00, 0x6A, 0x02, 0x00, 0x6D, 0x1B,
+ 0x00, 0x70, 0xD9, 0x00, 0x73, 0xDE, 0x00, 0x84, 0x3D, 0x00, 0x91, 0x6A,
+ 0x00, 0x99, 0xF1, 0x00, 0x4E, 0x82, 0x00, 0x53, 0x75, 0x00, 0x6B, 0x04,
+ 0x00, 0x72, 0x1B, 0x00, 0x86, 0x2D, 0x00, 0x9E, 0x1E, 0x00, 0x5D, 0x50,
+ 0x00, 0x6F, 0xEB, 0x00, 0x85, 0xCD, 0x00, 0x89, 0x64, 0x00, 0x62, 0xC9,
+ 0x00, 0x81, 0xD8, 0x00, 0x88, 0x1F, 0x00, 0x5E, 0xCA, 0x00, 0x67, 0x17,
+ 0x00, 0x6D, 0x6A, 0x00, 0x72, 0xFC, 0x00, 0x90, 0xCE, 0x00, 0x4F, 0x86,
+ 0x00, 0x51, 0xB7, 0x00, 0x52, 0xDE, 0x00, 0x64, 0xC4, 0x00, 0x6A, 0xD3,
+ 0x00, 0x72, 0x10, 0x00, 0x76, 0xE7, 0x00, 0x80, 0x01, 0x00, 0x86, 0x06,
+ 0x00, 0x86, 0x5C, 0x00, 0x8D, 0xEF, 0x00, 0x97, 0x32, 0x00, 0x9B, 0x6F,
+ 0x00, 0x9D, 0xFA, 0x00, 0x78, 0x8C, 0x00, 0x79, 0x7F, 0x00, 0x7D, 0xA0,
+ 0x00, 0x83, 0xC9, 0x00, 0x93, 0x04, 0x00, 0x9E, 0x7F, 0x00, 0x8A, 0xD6,
+ 0x00, 0x58, 0xDF, 0x00, 0x5F, 0x04, 0x00, 0x7C, 0x60, 0x00, 0x80, 0x7E,
+ 0x00, 0x72, 0x62, 0x00, 0x78, 0xCA, 0x00, 0x8C, 0xC2, 0x00, 0x96, 0xF7,
+ 0x00, 0x58, 0xD8, 0x00, 0x5C, 0x62, 0x00, 0x6A, 0x13, 0x00, 0x6D, 0xDA,
+ 0x00, 0x6F, 0x0F, 0x00, 0x7D, 0x2F, 0x00, 0x7E, 0x37, 0x00, 0x96, 0x4B,
+ 0x00, 0x52, 0xD2, 0x00, 0x80, 0x8B, 0x00, 0x51, 0xDC, 0x00, 0x51, 0xCC,
+ 0x00, 0x7A, 0x1C, 0x00, 0x7D, 0xBE, 0x00, 0x83, 0xF1, 0x00, 0x96, 0x75,
+ 0x00, 0x8B, 0x80, 0x00, 0x62, 0xCF, 0x00, 0x6A, 0x02, 0x00, 0x8A, 0xFE,
+ 0x00, 0x4E, 0x39, 0x00, 0x5B, 0xE7, 0x00, 0x60, 0x12, 0x00, 0x73, 0x87,
+ 0x00, 0x75, 0x70, 0x00, 0x53, 0x17, 0x00, 0x78, 0xFB, 0x00, 0x4F, 0xBF,
+ 0x00, 0x5F, 0xA9, 0x00, 0x4E, 0x0D, 0x00, 0x6C, 0xCC, 0x00, 0x65, 0x78,
+ 0x00, 0x7D, 0x22, 0x00, 0x53, 0xC3, 0x00, 0x58, 0x5E, 0x00, 0x77, 0x01,
+ 0x00, 0x84, 0x49, 0x00, 0x8A, 0xAA, 0x00, 0x6B, 0xBA, 0x00, 0x8F, 0xB0,
+ 0x00, 0x6C, 0x88, 0x00, 0x62, 0xFE, 0x00, 0x82, 0xE5, 0x00, 0x63, 0xA0,
+ 0x00, 0x75, 0x65, 0x00, 0x4E, 0xAE, 0x00, 0x51, 0x69, 0x00, 0x51, 0xC9,
+ 0x00, 0x68, 0x81, 0x00, 0x7C, 0xE7, 0x00, 0x82, 0x6F, 0x00, 0x8A, 0xD2,
+ 0x00, 0x91, 0xCF, 0x00, 0x52, 0xF5, 0x00, 0x54, 0x42, 0x00, 0x59, 0x73,
+ 0x00, 0x5E, 0xEC, 0x00, 0x65, 0xC5, 0x00, 0x6F, 0xFE, 0x00, 0x79, 0x2A,
+ 0x00, 0x95, 0xAD, 0x00, 0x9A, 0x6A, 0x00, 0x9E, 0x97, 0x00, 0x9E, 0xCE,
+ 0x00, 0x52, 0x9B, 0x00, 0x66, 0xC6, 0x00, 0x6B, 0x77, 0x00, 0x8F, 0x62,
+ 0x00, 0x5E, 0x74, 0x00, 0x61, 0x90, 0x00, 0x62, 0x00, 0x00, 0x64, 0x9A,
+ 0x00, 0x6F, 0x23, 0x00, 0x71, 0x49, 0x00, 0x74, 0x89, 0x00, 0x79, 0xCA,
+ 0x00, 0x7D, 0xF4, 0x00, 0x80, 0x6F, 0x00, 0x8F, 0x26, 0x00, 0x84, 0xEE,
+ 0x00, 0x90, 0x23, 0x00, 0x93, 0x4A, 0x00, 0x52, 0x17, 0x00, 0x52, 0xA3,
+ 0x00, 0x54, 0xBD, 0x00, 0x70, 0xC8, 0x00, 0x88, 0xC2, 0x00, 0x8A, 0xAA,
+ 0x00, 0x5E, 0xC9, 0x00, 0x5F, 0xF5, 0x00, 0x63, 0x7B, 0x00, 0x6B, 0xAE,
+ 0x00, 0x7C, 0x3E, 0x00, 0x73, 0x75, 0x00, 0x4E, 0xE4, 0x00, 0x56, 0xF9,
+ 0x00, 0x5B, 0xE7, 0x00, 0x5D, 0xBA, 0x00, 0x60, 0x1C, 0x00, 0x73, 0xB2,
+ 0x00, 0x74, 0x69, 0x00, 0x7F, 0x9A, 0x00, 0x80, 0x46, 0x00, 0x92, 0x34,
+ 0x00, 0x96, 0xF6, 0x00, 0x97, 0x48, 0x00, 0x98, 0x18, 0x00, 0x4F, 0x8B,
+ 0x00, 0x79, 0xAE, 0x00, 0x91, 0xB4, 0x00, 0x96, 0xB8, 0x00, 0x60, 0xE1,
+ 0x00, 0x4E, 0x86, 0x00, 0x50, 0xDA, 0x00, 0x5B, 0xEE, 0x00, 0x5C, 0x3F,
+ 0x00, 0x65, 0x99, 0x00, 0x6A, 0x02, 0x00, 0x71, 0xCE, 0x00, 0x76, 0x42,
+ 0x00, 0x84, 0xFC, 0x00, 0x90, 0x7C, 0x00, 0x9F, 0x8D, 0x00, 0x66, 0x88,
+ 0x00, 0x96, 0x2E, 0x00, 0x52, 0x89, 0x00, 0x67, 0x7B, 0x00, 0x67, 0xF3,
+ 0x00, 0x6D, 0x41, 0x00, 0x6E, 0x9C, 0x00, 0x74, 0x09, 0x00, 0x75, 0x59,
+ 0x00, 0x78, 0x6B, 0x00, 0x7D, 0x10, 0x00, 0x98, 0x5E, 0x00, 0x51, 0x6D,
+ 0x00, 0x62, 0x2E, 0x00, 0x96, 0x78, 0x00, 0x50, 0x2B, 0x00, 0x5D, 0x19,
+ 0x00, 0x6D, 0xEA, 0x00, 0x8F, 0x2A, 0x00, 0x5F, 0x8B, 0x00, 0x61, 0x44,
+ 0x00, 0x68, 0x17, 0x00, 0x73, 0x87, 0x00, 0x96, 0x86, 0x00, 0x52, 0x29,
+ 0x00, 0x54, 0x0F, 0x00, 0x5C, 0x65, 0x00, 0x66, 0x13, 0x00, 0x67, 0x4E,
+ 0x00, 0x68, 0xA8, 0x00, 0x6C, 0xE5, 0x00, 0x74, 0x06, 0x00, 0x75, 0xE2,
+ 0x00, 0x7F, 0x79, 0x00, 0x88, 0xCF, 0x00, 0x88, 0xE1, 0x00, 0x91, 0xCC,
+ 0x00, 0x96, 0xE2, 0x00, 0x53, 0x3F, 0x00, 0x6E, 0xBA, 0x00, 0x54, 0x1D,
+ 0x00, 0x71, 0xD0, 0x00, 0x74, 0x98, 0x00, 0x85, 0xFA, 0x00, 0x96, 0xA3,
+ 0x00, 0x9C, 0x57, 0x00, 0x9E, 0x9F, 0x00, 0x67, 0x97, 0x00, 0x6D, 0xCB,
+ 0x00, 0x81, 0xE8, 0x00, 0x7A, 0xCB, 0x00, 0x7B, 0x20, 0x00, 0x7C, 0x92,
+ 0x00, 0x72, 0xC0, 0x00, 0x70, 0x99, 0x00, 0x8B, 0x58, 0x00, 0x4E, 0xC0,
+ 0x00, 0x83, 0x36, 0x00, 0x52, 0x3A, 0x00, 0x52, 0x07, 0x00, 0x5E, 0xA6,
+ 0x00, 0x62, 0xD3, 0x00, 0x7C, 0xD6, 0x00, 0x5B, 0x85, 0x00, 0x6D, 0x1E,
+ 0x00, 0x66, 0xB4, 0x00, 0x8F, 0x3B, 0x00, 0x88, 0x4C, 0x00, 0x96, 0x4D,
+ 0x00, 0x89, 0x8B, 0x00, 0x5E, 0xD3, 0x00, 0x51, 0x40, 0x00, 0x55, 0xC0,
+ 0x00, 0x58, 0x5A, 0x00, 0x66, 0x74, 0x00, 0x51, 0xDE, 0x00, 0x73, 0x2A,
+ 0x00, 0x76, 0xCA, 0x00, 0x79, 0x3C, 0x00, 0x79, 0x5E, 0x00, 0x79, 0x65,
+ 0x00, 0x79, 0x8F, 0x00, 0x97, 0x56, 0x00, 0x7C, 0xBE, 0x00, 0x7F, 0xBD,
+ 0x00, 0x86, 0x12, 0x00, 0x8A, 0xF8, 0x00, 0x90, 0x38, 0x00, 0x90, 0xFD,
+ 0x00, 0x98, 0xEF, 0x00, 0x98, 0xFC, 0x00, 0x99, 0x28, 0x00, 0x9D, 0xB4,
+ 0x00, 0x4F, 0xAE, 0x00, 0x50, 0xE7, 0x00, 0x51, 0x4D, 0x00, 0x52, 0xC9,
+ 0x00, 0x52, 0xE4, 0x00, 0x53, 0x51, 0x00, 0x55, 0x9D, 0x00, 0x56, 0x06,
+ 0x00, 0x56, 0x68, 0x00, 0x58, 0x40, 0x00, 0x58, 0xA8, 0x00, 0x5C, 0x64,
+ 0x00, 0x5C, 0x6E, 0x00, 0x60, 0x94, 0x00, 0x61, 0x68, 0x00, 0x61, 0x8E,
+ 0x00, 0x61, 0xF2, 0x00, 0x65, 0x4F, 0x00, 0x65, 0xE2, 0x00, 0x66, 0x91,
+ 0x00, 0x68, 0x85, 0x00, 0x6D, 0x77, 0x00, 0x6E, 0x1A, 0x00, 0x6F, 0x22,
+ 0x00, 0x71, 0x6E, 0x00, 0x72, 0x2B, 0x00, 0x74, 0x22, 0x00, 0x78, 0x91,
+ 0x00, 0x79, 0x3E, 0x00, 0x79, 0x49, 0x00, 0x79, 0x48, 0x00, 0x79, 0x50,
+ 0x00, 0x79, 0x56, 0x00, 0x79, 0x5D, 0x00, 0x79, 0x8D, 0x00, 0x79, 0x8E,
+ 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x81, 0x00, 0x7B, 0xC0, 0x00, 0x7D, 0xF4,
+ 0x00, 0x7E, 0x09, 0x00, 0x7E, 0x41, 0x00, 0x7F, 0x72, 0x00, 0x80, 0x05,
+ 0x00, 0x81, 0xED, 0x00, 0x82, 0x79, 0x00, 0x82, 0x79, 0x00, 0x84, 0x57,
+ 0x00, 0x89, 0x10, 0x00, 0x89, 0x96, 0x00, 0x8B, 0x01, 0x00, 0x8B, 0x39,
+ 0x00, 0x8C, 0xD3, 0x00, 0x8D, 0x08, 0x00, 0x8F, 0xB6, 0x00, 0x90, 0x38,
+ 0x00, 0x96, 0xE3, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x3B, 0x00, 0x4E, 0x26,
+ 0x00, 0x51, 0xB5, 0x00, 0x51, 0x68, 0x00, 0x4F, 0x80, 0x00, 0x51, 0x45,
+ 0x00, 0x51, 0x80, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xFA, 0x00, 0x55, 0x9D,
+ 0x00, 0x55, 0x55, 0x00, 0x55, 0x99, 0x00, 0x55, 0xE2, 0x00, 0x58, 0x5A,
+ 0x00, 0x58, 0xB3, 0x00, 0x59, 0x44, 0x00, 0x59, 0x54, 0x00, 0x5A, 0x62,
+ 0x00, 0x5B, 0x28, 0x00, 0x5E, 0xD2, 0x00, 0x5E, 0xD9, 0x00, 0x5F, 0x69,
+ 0x00, 0x5F, 0xAD, 0x00, 0x60, 0xD8, 0x00, 0x61, 0x4E, 0x00, 0x61, 0x08,
+ 0x00, 0x61, 0x8E, 0x00, 0x61, 0x60, 0x00, 0x61, 0xF2, 0x00, 0x62, 0x34,
+ 0x00, 0x63, 0xC4, 0x00, 0x64, 0x1C, 0x00, 0x64, 0x52, 0x00, 0x65, 0x56,
+ 0x00, 0x66, 0x74, 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x56,
+ 0x00, 0x6B, 0x79, 0x00, 0x6B, 0xBA, 0x00, 0x6D, 0x41, 0x00, 0x6E, 0xDB,
+ 0x00, 0x6E, 0xCB, 0x00, 0x6F, 0x22, 0x00, 0x70, 0x1E, 0x00, 0x71, 0x6E,
+ 0x00, 0x77, 0xA7, 0x00, 0x72, 0x35, 0x00, 0x72, 0xAF, 0x00, 0x73, 0x2A,
+ 0x00, 0x74, 0x71, 0x00, 0x75, 0x06, 0x00, 0x75, 0x3B, 0x00, 0x76, 0x1D,
+ 0x00, 0x76, 0x1F, 0x00, 0x76, 0xCA, 0x00, 0x76, 0xDB, 0x00, 0x76, 0xF4,
+ 0x00, 0x77, 0x4A, 0x00, 0x77, 0x40, 0x00, 0x78, 0xCC, 0x00, 0x7A, 0xB1,
+ 0x00, 0x7B, 0xC0, 0x00, 0x7C, 0x7B, 0x00, 0x7D, 0x5B, 0x00, 0x7D, 0xF4,
+ 0x00, 0x7F, 0x3E, 0x00, 0x80, 0x05, 0x00, 0x83, 0x52, 0x00, 0x83, 0xEF,
+ 0x00, 0x87, 0x79, 0x00, 0x89, 0x41, 0x00, 0x89, 0x86, 0x00, 0x89, 0x96,
+ 0x00, 0x8A, 0xBF, 0x00, 0x8A, 0xF8, 0x00, 0x8A, 0xCB, 0x00, 0x8B, 0x01,
+ 0x00, 0x8A, 0xFE, 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x39, 0x00, 0x8B, 0x8A,
+ 0x00, 0x8D, 0x08, 0x00, 0x8F, 0x38, 0x00, 0x90, 0x72, 0x00, 0x91, 0x99,
+ 0x00, 0x92, 0x76, 0x00, 0x96, 0x7C, 0x00, 0x96, 0xE3, 0x00, 0x97, 0x56,
+ 0x00, 0x97, 0xDB, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x3B,
+ 0x00, 0x9B, 0x12, 0x00, 0x9F, 0x9C, 0x02, 0x28, 0x4A, 0x02, 0x28, 0x44,
+ 0x02, 0x33, 0xD5, 0x00, 0x3B, 0x9D, 0x00, 0x40, 0x18, 0x00, 0x40, 0x39,
+ 0x02, 0x52, 0x49, 0x02, 0x5C, 0xD0, 0x02, 0x7E, 0xD3, 0x00, 0x9F, 0x43,
+ 0x00, 0x9F, 0x8E, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x66,
+ 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x6C, 0xC0, 0x00, 0x66,
+ 0x80, 0x00, 0x66, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x80, 0x00, 0x66,
+ 0x00, 0x00, 0x6C, 0xC0, 0x01, 0x7F, 0x00, 0x00, 0x74, 0xC0, 0x00, 0x73,
+ 0x00, 0x00, 0x74, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74,
+ 0x00, 0x05, 0x65, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6B, 0xC0, 0x05, 0x7E,
+ 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6D, 0x80, 0x05, 0xD9,
+ 0x00, 0x05, 0xB4, 0x80, 0x05, 0xF2, 0x00, 0x05, 0xB7, 0x04, 0x05, 0xE2,
+ 0x04, 0x05, 0xD0, 0x04, 0x05, 0xD3, 0x04, 0x05, 0xD4, 0x04, 0x05, 0xDB,
+ 0x04, 0x05, 0xDC, 0x04, 0x05, 0xDD, 0x04, 0x05, 0xE8, 0x04, 0x05, 0xEA,
+ 0x04, 0x00, 0x2B, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xC1, 0x80, 0x05, 0xE9,
+ 0x00, 0x05, 0xC2, 0x80, 0xFB, 0x49, 0x00, 0x05, 0xC1, 0x80, 0xFB, 0x49,
+ 0x00, 0x05, 0xC2, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xB7, 0x80, 0x05, 0xD0,
+ 0x00, 0x05, 0xB8, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD1,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD2, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD3,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD6, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD8,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDA,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDC,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDE, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE0,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE1, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE3,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE6,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE7, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE8,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xEA,
+ 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5, 0x00, 0x05, 0xB9, 0x80, 0x05, 0xD1,
+ 0x00, 0x05, 0xBF, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBF, 0x80, 0x05, 0xE4,
+ 0x00, 0x05, 0xBF, 0xC0, 0x05, 0xD0, 0x00, 0x05, 0xDC, 0x18, 0x06, 0x71,
+ 0x14, 0x06, 0x71, 0x18, 0x06, 0x7B, 0x14, 0x06, 0x7B, 0x0C, 0x06, 0x7B,
+ 0x10, 0x06, 0x7B, 0x18, 0x06, 0x7E, 0x14, 0x06, 0x7E, 0x0C, 0x06, 0x7E,
+ 0x10, 0x06, 0x7E, 0x18, 0x06, 0x80, 0x14, 0x06, 0x80, 0x0C, 0x06, 0x80,
+ 0x10, 0x06, 0x80, 0x18, 0x06, 0x7A, 0x14, 0x06, 0x7A, 0x0C, 0x06, 0x7A,
+ 0x10, 0x06, 0x7A, 0x18, 0x06, 0x7F, 0x14, 0x06, 0x7F, 0x0C, 0x06, 0x7F,
+ 0x10, 0x06, 0x7F, 0x18, 0x06, 0x79, 0x14, 0x06, 0x79, 0x0C, 0x06, 0x79,
+ 0x10, 0x06, 0x79, 0x18, 0x06, 0xA4, 0x14, 0x06, 0xA4, 0x0C, 0x06, 0xA4,
+ 0x10, 0x06, 0xA4, 0x18, 0x06, 0xA6, 0x14, 0x06, 0xA6, 0x0C, 0x06, 0xA6,
+ 0x10, 0x06, 0xA6, 0x18, 0x06, 0x84, 0x14, 0x06, 0x84, 0x0C, 0x06, 0x84,
+ 0x10, 0x06, 0x84, 0x18, 0x06, 0x83, 0x14, 0x06, 0x83, 0x0C, 0x06, 0x83,
+ 0x10, 0x06, 0x83, 0x18, 0x06, 0x86, 0x14, 0x06, 0x86, 0x0C, 0x06, 0x86,
+ 0x10, 0x06, 0x86, 0x18, 0x06, 0x87, 0x14, 0x06, 0x87, 0x0C, 0x06, 0x87,
+ 0x10, 0x06, 0x87, 0x18, 0x06, 0x8D, 0x14, 0x06, 0x8D, 0x18, 0x06, 0x8C,
+ 0x14, 0x06, 0x8C, 0x18, 0x06, 0x8E, 0x14, 0x06, 0x8E, 0x18, 0x06, 0x88,
+ 0x14, 0x06, 0x88, 0x18, 0x06, 0x98, 0x14, 0x06, 0x98, 0x18, 0x06, 0x91,
+ 0x14, 0x06, 0x91, 0x18, 0x06, 0xA9, 0x14, 0x06, 0xA9, 0x0C, 0x06, 0xA9,
+ 0x10, 0x06, 0xA9, 0x18, 0x06, 0xAF, 0x14, 0x06, 0xAF, 0x0C, 0x06, 0xAF,
+ 0x10, 0x06, 0xAF, 0x18, 0x06, 0xB3, 0x14, 0x06, 0xB3, 0x0C, 0x06, 0xB3,
+ 0x10, 0x06, 0xB3, 0x18, 0x06, 0xB1, 0x14, 0x06, 0xB1, 0x0C, 0x06, 0xB1,
+ 0x10, 0x06, 0xB1, 0x18, 0x06, 0xBA, 0x14, 0x06, 0xBA, 0x18, 0x06, 0xBB,
+ 0x14, 0x06, 0xBB, 0x0C, 0x06, 0xBB, 0x10, 0x06, 0xBB, 0x18, 0x06, 0xC0,
+ 0x14, 0x06, 0xC0, 0x18, 0x06, 0xC1, 0x14, 0x06, 0xC1, 0x0C, 0x06, 0xC1,
+ 0x10, 0x06, 0xC1, 0x18, 0x06, 0xBE, 0x14, 0x06, 0xBE, 0x0C, 0x06, 0xBE,
+ 0x10, 0x06, 0xBE, 0x18, 0x06, 0xD2, 0x14, 0x06, 0xD2, 0x18, 0x06, 0xD3,
+ 0x14, 0x06, 0xD3, 0x18, 0x06, 0xAD, 0x14, 0x06, 0xAD, 0x0C, 0x06, 0xAD,
+ 0x10, 0x06, 0xAD, 0x18, 0x06, 0xC7, 0x14, 0x06, 0xC7, 0x18, 0x06, 0xC6,
+ 0x14, 0x06, 0xC6, 0x18, 0x06, 0xC8, 0x14, 0x06, 0xC8, 0x18, 0x06, 0x77,
+ 0x18, 0x06, 0xCB, 0x14, 0x06, 0xCB, 0x18, 0x06, 0xC5, 0x14, 0x06, 0xC5,
+ 0x18, 0x06, 0xC9, 0x14, 0x06, 0xC9, 0x18, 0x06, 0xD0, 0x14, 0x06, 0xD0,
+ 0x0C, 0x06, 0xD0, 0x10, 0x06, 0xD0, 0x0C, 0x06, 0x49, 0x10, 0x06, 0x49,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0x27, 0x94, 0x06, 0x26, 0x00, 0x06, 0x27,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0xD5, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD5,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0x48, 0x94, 0x06, 0x26, 0x00, 0x06, 0x48,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0xC7, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC7,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0xC6, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC6,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0xC8, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC8,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD0,
+ 0x8C, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x26, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x49,
+ 0x18, 0x06, 0xCC, 0x14, 0x06, 0xCC, 0x0C, 0x06, 0xCC, 0x10, 0x06, 0xCC,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x26, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0x45, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x28, 0x00, 0x06, 0x45, 0x98, 0x06, 0x28, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x45,
+ 0x98, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x33, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x33, 0x00, 0x06, 0x45,
+ 0x98, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x35, 0x00, 0x06, 0x45,
+ 0x98, 0x06, 0x36, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x36, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x36, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x36, 0x00, 0x06, 0x45,
+ 0x98, 0x06, 0x37, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x37, 0x00, 0x06, 0x45,
+ 0x98, 0x06, 0x38, 0x00, 0x06, 0x45, 0x98, 0x06, 0x39, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x39, 0x00, 0x06, 0x45, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x41, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x42, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x42, 0x00, 0x06, 0x45, 0x98, 0x06, 0x42, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x43, 0x00, 0x06, 0x27,
+ 0x98, 0x06, 0x43, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x43, 0x00, 0x06, 0x2D,
+ 0x98, 0x06, 0x43, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x43, 0x00, 0x06, 0x44,
+ 0x98, 0x06, 0x43, 0x00, 0x06, 0x45, 0x98, 0x06, 0x43, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x43, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x44, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x44, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x45, 0x00, 0x06, 0x45, 0x98, 0x06, 0x45, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x46, 0x00, 0x06, 0x45, 0x98, 0x06, 0x46, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x47, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x47, 0x00, 0x06, 0x45, 0x98, 0x06, 0x47, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x47, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2C,
+ 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2E,
+ 0x98, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x4A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x30, 0x00, 0x06, 0x70,
+ 0x98, 0x06, 0x31, 0x00, 0x06, 0x70, 0x98, 0x06, 0x49, 0x00, 0x06, 0x70,
+ 0x98, 0x00, 0x20, 0x80, 0x06, 0x4C, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20,
+ 0x80, 0x06, 0x4D, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4E,
+ 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51,
+ 0x98, 0x00, 0x20, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20,
+ 0x80, 0x06, 0x51, 0x00, 0x06, 0x70, 0x94, 0x06, 0x26, 0x00, 0x06, 0x31,
+ 0x94, 0x06, 0x26, 0x00, 0x06, 0x32, 0x94, 0x06, 0x26, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x26, 0x00, 0x06, 0x46, 0x94, 0x06, 0x26, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x00, 0x06, 0x31,
+ 0x94, 0x06, 0x28, 0x00, 0x06, 0x32, 0x94, 0x06, 0x28, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x28, 0x00, 0x06, 0x46, 0x94, 0x06, 0x28, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x31,
+ 0x94, 0x06, 0x2A, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x2A, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x31,
+ 0x94, 0x06, 0x2B, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x2B, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x43, 0x00, 0x06, 0x27,
+ 0x94, 0x06, 0x43, 0x00, 0x06, 0x44, 0x94, 0x06, 0x43, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x43, 0x00, 0x06, 0x49, 0x94, 0x06, 0x43, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x44, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x00, 0x06, 0x27,
+ 0x94, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x00, 0x06, 0x31,
+ 0x94, 0x06, 0x46, 0x00, 0x06, 0x32, 0x94, 0x06, 0x46, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x46, 0x00, 0x06, 0x46, 0x94, 0x06, 0x46, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x49, 0x00, 0x06, 0x70,
+ 0x94, 0x06, 0x4A, 0x00, 0x06, 0x31, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x32,
+ 0x94, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x46,
+ 0x94, 0x06, 0x4A, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x4A,
+ 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x26, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x28, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x47,
+ 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x2B, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x35, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x36, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x37, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x38, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x39, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x41, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x42, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x42, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x43, 0x00, 0x06, 0x44, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x44, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x46, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x47,
+ 0x8C, 0x06, 0x47, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x47, 0x00, 0x06, 0x70, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x26, 0x00, 0x06, 0x45, 0x90, 0x06, 0x26, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x28, 0x00, 0x06, 0x45, 0x90, 0x06, 0x28, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2A, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2B, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x33, 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x34, 0x00, 0x06, 0x45, 0x90, 0x06, 0x34, 0x00, 0x06, 0x47,
+ 0x90, 0x06, 0x43, 0x00, 0x06, 0x44, 0x90, 0x06, 0x43, 0x00, 0x06, 0x45,
+ 0x90, 0x06, 0x44, 0x00, 0x06, 0x45, 0x90, 0x06, 0x46, 0x00, 0x06, 0x45,
+ 0x90, 0x06, 0x46, 0x00, 0x06, 0x47, 0x90, 0x06, 0x4A, 0x00, 0x06, 0x45,
+ 0x90, 0x06, 0x4A, 0x00, 0x06, 0x47, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4E,
+ 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51,
+ 0x90, 0x06, 0x40, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x06, 0x37,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x39,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x3A,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x33,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2D,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2E,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x36,
+ 0x00, 0x06, 0x49, 0x98, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34,
+ 0x00, 0x06, 0x2C, 0x98, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x34,
+ 0x00, 0x06, 0x2E, 0x98, 0x06, 0x34, 0x00, 0x06, 0x45, 0x98, 0x06, 0x34,
+ 0x00, 0x06, 0x31, 0x98, 0x06, 0x33, 0x00, 0x06, 0x31, 0x98, 0x06, 0x35,
+ 0x00, 0x06, 0x31, 0x98, 0x06, 0x36, 0x00, 0x06, 0x31, 0x94, 0x06, 0x37,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x39,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x33,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2E,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x35,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x36,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34,
+ 0x00, 0x06, 0x2C, 0x94, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x34,
+ 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34,
+ 0x00, 0x06, 0x31, 0x94, 0x06, 0x33, 0x00, 0x06, 0x31, 0x94, 0x06, 0x35,
+ 0x00, 0x06, 0x31, 0x94, 0x06, 0x36, 0x00, 0x06, 0x31, 0x8C, 0x06, 0x34,
+ 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x34,
+ 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33,
+ 0x00, 0x06, 0x47, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x37,
+ 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x90, 0x06, 0x33,
+ 0x00, 0x06, 0x2D, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x90, 0x06, 0x34,
+ 0x00, 0x06, 0x2C, 0x90, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x90, 0x06, 0x34,
+ 0x00, 0x06, 0x2E, 0x90, 0x06, 0x37, 0x00, 0x06, 0x45, 0x90, 0x06, 0x38,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x27, 0x00, 0x06, 0x4B, 0x98, 0x06, 0x27,
+ 0x00, 0x06, 0x4B, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A,
+ 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x45, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x2E, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2D,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x49, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C,
+ 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x33,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x94, 0x06, 0x33,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x35,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x45, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x34, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x36,
+ 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x80, 0x06, 0x2E,
+ 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x39, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x39,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x3A,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45,
+ 0x8C, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x42,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44,
+ 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C,
+ 0x00, 0x06, 0x2C, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2C,
+ 0x94, 0x06, 0x44, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x44,
+ 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45,
+ 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D,
+ 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45,
+ 0x80, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2E,
+ 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2E,
+ 0x8C, 0x06, 0x47, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C,
+ 0x00, 0x06, 0x49, 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49,
+ 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33,
+ 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x36, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x42,
+ 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2D,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x46,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2E,
+ 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45,
+ 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C,
+ 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x2D, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A,
+ 0x8C, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39,
+ 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x35, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x45, 0x94, 0x06, 0x33, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A,
+ 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35,
+ 0x80, 0x06, 0x44, 0x00, 0x06, 0xD2, 0x98, 0x06, 0x42, 0x80, 0x06, 0x44,
+ 0x00, 0x06, 0xD2, 0x98, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44,
+ 0x00, 0x06, 0x47, 0x98, 0x06, 0x27, 0x80, 0x06, 0x43, 0x80, 0x06, 0x28,
+ 0x00, 0x06, 0x31, 0x98, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x80, 0x06, 0x45,
+ 0x00, 0x06, 0x2F, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x39,
+ 0x00, 0x06, 0x45, 0x98, 0x06, 0x31, 0x80, 0x06, 0x33, 0x80, 0x06, 0x48,
+ 0x00, 0x06, 0x44, 0x98, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A,
+ 0x00, 0x06, 0x47, 0x98, 0x06, 0x48, 0x80, 0x06, 0x33, 0x80, 0x06, 0x44,
+ 0x00, 0x06, 0x45, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x00, 0x06, 0x49,
+ 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x49, 0x80, 0x00, 0x20,
+ 0x80, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44, 0x80, 0x06, 0x47,
+ 0x80, 0x00, 0x20, 0x80, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A,
+ 0x80, 0x06, 0x47, 0x80, 0x00, 0x20, 0x80, 0x06, 0x48, 0x80, 0x06, 0x33,
+ 0x80, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2C, 0x80, 0x06, 0x44,
+ 0x80, 0x00, 0x20, 0x80, 0x06, 0x2C, 0x80, 0x06, 0x44, 0x80, 0x06, 0x27,
+ 0x80, 0x06, 0x44, 0x00, 0x06, 0x47, 0x98, 0x06, 0x31, 0x80, 0x06, 0xCC,
+ 0x80, 0x06, 0x27, 0x00, 0x06, 0x44, 0x28, 0x00, 0x2C, 0x28, 0x30, 0x01,
+ 0x28, 0x30, 0x02, 0x28, 0x00, 0x3A, 0x28, 0x00, 0x3B, 0x28, 0x00, 0x21,
+ 0x28, 0x00, 0x3F, 0x28, 0x30, 0x16, 0x28, 0x30, 0x17, 0x28, 0x20, 0x26,
+ 0x28, 0x20, 0x25, 0x28, 0x20, 0x14, 0x28, 0x20, 0x13, 0x28, 0x00, 0x5F,
+ 0x28, 0x00, 0x5F, 0x28, 0x00, 0x28, 0x28, 0x00, 0x29, 0x28, 0x00, 0x7B,
+ 0x28, 0x00, 0x7D, 0x28, 0x30, 0x14, 0x28, 0x30, 0x15, 0x28, 0x30, 0x10,
+ 0x28, 0x30, 0x11, 0x28, 0x30, 0x0A, 0x28, 0x30, 0x0B, 0x28, 0x30, 0x08,
+ 0x28, 0x30, 0x09, 0x28, 0x30, 0x0C, 0x28, 0x30, 0x0D, 0x28, 0x30, 0x0E,
+ 0x28, 0x30, 0x0F, 0x28, 0x00, 0x5B, 0x28, 0x00, 0x5D, 0x40, 0x20, 0x3E,
+ 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x00, 0x5F,
+ 0x40, 0x00, 0x5F, 0x40, 0x00, 0x5F, 0x34, 0x00, 0x2C, 0x34, 0x30, 0x01,
+ 0x34, 0x00, 0x2E, 0x34, 0x00, 0x3B, 0x34, 0x00, 0x3A, 0x34, 0x00, 0x3F,
+ 0x34, 0x00, 0x21, 0x34, 0x20, 0x14, 0x34, 0x00, 0x28, 0x34, 0x00, 0x29,
+ 0x34, 0x00, 0x7B, 0x34, 0x00, 0x7D, 0x34, 0x30, 0x14, 0x34, 0x30, 0x15,
+ 0x34, 0x00, 0x23, 0x34, 0x00, 0x26, 0x34, 0x00, 0x2A, 0x34, 0x00, 0x2B,
+ 0x34, 0x00, 0x2D, 0x34, 0x00, 0x3C, 0x34, 0x00, 0x3E, 0x34, 0x00, 0x3D,
+ 0x34, 0x00, 0x5C, 0x34, 0x00, 0x24, 0x34, 0x00, 0x25, 0x34, 0x00, 0x40,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x4B, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4B,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x4C, 0x98, 0x00, 0x20, 0x00, 0x06, 0x4D,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x4E, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4E,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x4F, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4F,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x50, 0x90, 0x06, 0x40, 0x00, 0x06, 0x50,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x00, 0x06, 0x51,
+ 0x98, 0x00, 0x20, 0x00, 0x06, 0x52, 0x90, 0x06, 0x40, 0x00, 0x06, 0x52,
+ 0x18, 0x06, 0x21, 0x18, 0x06, 0x22, 0x14, 0x06, 0x22, 0x18, 0x06, 0x23,
+ 0x14, 0x06, 0x23, 0x18, 0x06, 0x24, 0x14, 0x06, 0x24, 0x18, 0x06, 0x25,
+ 0x14, 0x06, 0x25, 0x18, 0x06, 0x26, 0x14, 0x06, 0x26, 0x0C, 0x06, 0x26,
+ 0x10, 0x06, 0x26, 0x18, 0x06, 0x27, 0x14, 0x06, 0x27, 0x18, 0x06, 0x28,
+ 0x14, 0x06, 0x28, 0x0C, 0x06, 0x28, 0x10, 0x06, 0x28, 0x18, 0x06, 0x29,
+ 0x14, 0x06, 0x29, 0x18, 0x06, 0x2A, 0x14, 0x06, 0x2A, 0x0C, 0x06, 0x2A,
+ 0x10, 0x06, 0x2A, 0x18, 0x06, 0x2B, 0x14, 0x06, 0x2B, 0x0C, 0x06, 0x2B,
+ 0x10, 0x06, 0x2B, 0x18, 0x06, 0x2C, 0x14, 0x06, 0x2C, 0x0C, 0x06, 0x2C,
+ 0x10, 0x06, 0x2C, 0x18, 0x06, 0x2D, 0x14, 0x06, 0x2D, 0x0C, 0x06, 0x2D,
+ 0x10, 0x06, 0x2D, 0x18, 0x06, 0x2E, 0x14, 0x06, 0x2E, 0x0C, 0x06, 0x2E,
+ 0x10, 0x06, 0x2E, 0x18, 0x06, 0x2F, 0x14, 0x06, 0x2F, 0x18, 0x06, 0x30,
+ 0x14, 0x06, 0x30, 0x18, 0x06, 0x31, 0x14, 0x06, 0x31, 0x18, 0x06, 0x32,
+ 0x14, 0x06, 0x32, 0x18, 0x06, 0x33, 0x14, 0x06, 0x33, 0x0C, 0x06, 0x33,
+ 0x10, 0x06, 0x33, 0x18, 0x06, 0x34, 0x14, 0x06, 0x34, 0x0C, 0x06, 0x34,
+ 0x10, 0x06, 0x34, 0x18, 0x06, 0x35, 0x14, 0x06, 0x35, 0x0C, 0x06, 0x35,
+ 0x10, 0x06, 0x35, 0x18, 0x06, 0x36, 0x14, 0x06, 0x36, 0x0C, 0x06, 0x36,
+ 0x10, 0x06, 0x36, 0x18, 0x06, 0x37, 0x14, 0x06, 0x37, 0x0C, 0x06, 0x37,
+ 0x10, 0x06, 0x37, 0x18, 0x06, 0x38, 0x14, 0x06, 0x38, 0x0C, 0x06, 0x38,
+ 0x10, 0x06, 0x38, 0x18, 0x06, 0x39, 0x14, 0x06, 0x39, 0x0C, 0x06, 0x39,
+ 0x10, 0x06, 0x39, 0x18, 0x06, 0x3A, 0x14, 0x06, 0x3A, 0x0C, 0x06, 0x3A,
+ 0x10, 0x06, 0x3A, 0x18, 0x06, 0x41, 0x14, 0x06, 0x41, 0x0C, 0x06, 0x41,
+ 0x10, 0x06, 0x41, 0x18, 0x06, 0x42, 0x14, 0x06, 0x42, 0x0C, 0x06, 0x42,
+ 0x10, 0x06, 0x42, 0x18, 0x06, 0x43, 0x14, 0x06, 0x43, 0x0C, 0x06, 0x43,
+ 0x10, 0x06, 0x43, 0x18, 0x06, 0x44, 0x14, 0x06, 0x44, 0x0C, 0x06, 0x44,
+ 0x10, 0x06, 0x44, 0x18, 0x06, 0x45, 0x14, 0x06, 0x45, 0x0C, 0x06, 0x45,
+ 0x10, 0x06, 0x45, 0x18, 0x06, 0x46, 0x14, 0x06, 0x46, 0x0C, 0x06, 0x46,
+ 0x10, 0x06, 0x46, 0x18, 0x06, 0x47, 0x14, 0x06, 0x47, 0x0C, 0x06, 0x47,
+ 0x10, 0x06, 0x47, 0x18, 0x06, 0x48, 0x14, 0x06, 0x48, 0x18, 0x06, 0x49,
+ 0x14, 0x06, 0x49, 0x18, 0x06, 0x4A, 0x14, 0x06, 0x4A, 0x0C, 0x06, 0x4A,
+ 0x10, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x22, 0x94, 0x06, 0x44,
+ 0x00, 0x06, 0x22, 0x98, 0x06, 0x44, 0x00, 0x06, 0x23, 0x94, 0x06, 0x44,
+ 0x00, 0x06, 0x23, 0x98, 0x06, 0x44, 0x00, 0x06, 0x25, 0x94, 0x06, 0x44,
+ 0x00, 0x06, 0x25, 0x98, 0x06, 0x44, 0x00, 0x06, 0x27, 0x94, 0x06, 0x44,
+ 0x00, 0x06, 0x27, 0x2C, 0x00, 0x21, 0x2C, 0x00, 0x22, 0x2C, 0x00, 0x23,
+ 0x2C, 0x00, 0x24, 0x2C, 0x00, 0x25, 0x2C, 0x00, 0x26, 0x2C, 0x00, 0x27,
+ 0x2C, 0x00, 0x28, 0x2C, 0x00, 0x29, 0x2C, 0x00, 0x2A, 0x2C, 0x00, 0x2B,
+ 0x2C, 0x00, 0x2C, 0x2C, 0x00, 0x2D, 0x2C, 0x00, 0x2E, 0x2C, 0x00, 0x2F,
+ 0x2C, 0x00, 0x30, 0x2C, 0x00, 0x31, 0x2C, 0x00, 0x32, 0x2C, 0x00, 0x33,
+ 0x2C, 0x00, 0x34, 0x2C, 0x00, 0x35, 0x2C, 0x00, 0x36, 0x2C, 0x00, 0x37,
+ 0x2C, 0x00, 0x38, 0x2C, 0x00, 0x39, 0x2C, 0x00, 0x3A, 0x2C, 0x00, 0x3B,
+ 0x2C, 0x00, 0x3C, 0x2C, 0x00, 0x3D, 0x2C, 0x00, 0x3E, 0x2C, 0x00, 0x3F,
+ 0x2C, 0x00, 0x40, 0x2C, 0x00, 0x41, 0x2C, 0x00, 0x42, 0x2C, 0x00, 0x43,
+ 0x2C, 0x00, 0x44, 0x2C, 0x00, 0x45, 0x2C, 0x00, 0x46, 0x2C, 0x00, 0x47,
+ 0x2C, 0x00, 0x48, 0x2C, 0x00, 0x49, 0x2C, 0x00, 0x4A, 0x2C, 0x00, 0x4B,
+ 0x2C, 0x00, 0x4C, 0x2C, 0x00, 0x4D, 0x2C, 0x00, 0x4E, 0x2C, 0x00, 0x4F,
+ 0x2C, 0x00, 0x50, 0x2C, 0x00, 0x51, 0x2C, 0x00, 0x52, 0x2C, 0x00, 0x53,
+ 0x2C, 0x00, 0x54, 0x2C, 0x00, 0x55, 0x2C, 0x00, 0x56, 0x2C, 0x00, 0x57,
+ 0x2C, 0x00, 0x58, 0x2C, 0x00, 0x59, 0x2C, 0x00, 0x5A, 0x2C, 0x00, 0x5B,
+ 0x2C, 0x00, 0x5C, 0x2C, 0x00, 0x5D, 0x2C, 0x00, 0x5E, 0x2C, 0x00, 0x5F,
+ 0x2C, 0x00, 0x60, 0x2C, 0x00, 0x61, 0x2C, 0x00, 0x62, 0x2C, 0x00, 0x63,
+ 0x2C, 0x00, 0x64, 0x2C, 0x00, 0x65, 0x2C, 0x00, 0x66, 0x2C, 0x00, 0x67,
+ 0x2C, 0x00, 0x68, 0x2C, 0x00, 0x69, 0x2C, 0x00, 0x6A, 0x2C, 0x00, 0x6B,
+ 0x2C, 0x00, 0x6C, 0x2C, 0x00, 0x6D, 0x2C, 0x00, 0x6E, 0x2C, 0x00, 0x6F,
+ 0x2C, 0x00, 0x70, 0x2C, 0x00, 0x71, 0x2C, 0x00, 0x72, 0x2C, 0x00, 0x73,
+ 0x2C, 0x00, 0x74, 0x2C, 0x00, 0x75, 0x2C, 0x00, 0x76, 0x2C, 0x00, 0x77,
+ 0x2C, 0x00, 0x78, 0x2C, 0x00, 0x79, 0x2C, 0x00, 0x7A, 0x2C, 0x00, 0x7B,
+ 0x2C, 0x00, 0x7C, 0x2C, 0x00, 0x7D, 0x2C, 0x00, 0x7E, 0x2C, 0x29, 0x85,
+ 0x2C, 0x29, 0x86, 0x30, 0x30, 0x02, 0x30, 0x30, 0x0C, 0x30, 0x30, 0x0D,
+ 0x30, 0x30, 0x01, 0x30, 0x30, 0xFB, 0x30, 0x30, 0xF2, 0x30, 0x30, 0xA1,
+ 0x30, 0x30, 0xA3, 0x30, 0x30, 0xA5, 0x30, 0x30, 0xA7, 0x30, 0x30, 0xA9,
+ 0x30, 0x30, 0xE3, 0x30, 0x30, 0xE5, 0x30, 0x30, 0xE7, 0x30, 0x30, 0xC3,
+ 0x30, 0x30, 0xFC, 0x30, 0x30, 0xA2, 0x30, 0x30, 0xA4, 0x30, 0x30, 0xA6,
+ 0x30, 0x30, 0xA8, 0x30, 0x30, 0xAA, 0x30, 0x30, 0xAB, 0x30, 0x30, 0xAD,
+ 0x30, 0x30, 0xAF, 0x30, 0x30, 0xB1, 0x30, 0x30, 0xB3, 0x30, 0x30, 0xB5,
+ 0x30, 0x30, 0xB7, 0x30, 0x30, 0xB9, 0x30, 0x30, 0xBB, 0x30, 0x30, 0xBD,
+ 0x30, 0x30, 0xBF, 0x30, 0x30, 0xC1, 0x30, 0x30, 0xC4, 0x30, 0x30, 0xC6,
+ 0x30, 0x30, 0xC8, 0x30, 0x30, 0xCA, 0x30, 0x30, 0xCB, 0x30, 0x30, 0xCC,
+ 0x30, 0x30, 0xCD, 0x30, 0x30, 0xCE, 0x30, 0x30, 0xCF, 0x30, 0x30, 0xD2,
+ 0x30, 0x30, 0xD5, 0x30, 0x30, 0xD8, 0x30, 0x30, 0xDB, 0x30, 0x30, 0xDE,
+ 0x30, 0x30, 0xDF, 0x30, 0x30, 0xE0, 0x30, 0x30, 0xE1, 0x30, 0x30, 0xE2,
+ 0x30, 0x30, 0xE4, 0x30, 0x30, 0xE6, 0x30, 0x30, 0xE8, 0x30, 0x30, 0xE9,
+ 0x30, 0x30, 0xEA, 0x30, 0x30, 0xEB, 0x30, 0x30, 0xEC, 0x30, 0x30, 0xED,
+ 0x30, 0x30, 0xEF, 0x30, 0x30, 0xF3, 0x30, 0x30, 0x99, 0x30, 0x30, 0x9A,
+ 0x30, 0x31, 0x64, 0x30, 0x31, 0x31, 0x30, 0x31, 0x32, 0x30, 0x31, 0x33,
+ 0x30, 0x31, 0x34, 0x30, 0x31, 0x35, 0x30, 0x31, 0x36, 0x30, 0x31, 0x37,
+ 0x30, 0x31, 0x38, 0x30, 0x31, 0x39, 0x30, 0x31, 0x3A, 0x30, 0x31, 0x3B,
+ 0x30, 0x31, 0x3C, 0x30, 0x31, 0x3D, 0x30, 0x31, 0x3E, 0x30, 0x31, 0x3F,
+ 0x30, 0x31, 0x40, 0x30, 0x31, 0x41, 0x30, 0x31, 0x42, 0x30, 0x31, 0x43,
+ 0x30, 0x31, 0x44, 0x30, 0x31, 0x45, 0x30, 0x31, 0x46, 0x30, 0x31, 0x47,
+ 0x30, 0x31, 0x48, 0x30, 0x31, 0x49, 0x30, 0x31, 0x4A, 0x30, 0x31, 0x4B,
+ 0x30, 0x31, 0x4C, 0x30, 0x31, 0x4D, 0x30, 0x31, 0x4E, 0x30, 0x31, 0x4F,
+ 0x30, 0x31, 0x50, 0x30, 0x31, 0x51, 0x30, 0x31, 0x52, 0x30, 0x31, 0x53,
+ 0x30, 0x31, 0x54, 0x30, 0x31, 0x55, 0x30, 0x31, 0x56, 0x30, 0x31, 0x57,
+ 0x30, 0x31, 0x58, 0x30, 0x31, 0x59, 0x30, 0x31, 0x5A, 0x30, 0x31, 0x5B,
+ 0x30, 0x31, 0x5C, 0x30, 0x31, 0x5D, 0x30, 0x31, 0x5E, 0x30, 0x31, 0x5F,
+ 0x30, 0x31, 0x60, 0x30, 0x31, 0x61, 0x30, 0x31, 0x62, 0x30, 0x31, 0x63,
+ 0x2C, 0x00, 0xA2, 0x2C, 0x00, 0xA3, 0x2C, 0x00, 0xAC, 0x2C, 0x00, 0xAF,
+ 0x2C, 0x00, 0xA6, 0x2C, 0x00, 0xA5, 0x2C, 0x20, 0xA9, 0x30, 0x25, 0x02,
+ 0x30, 0x21, 0x90, 0x30, 0x21, 0x91, 0x30, 0x21, 0x92, 0x30, 0x21, 0x93,
+ 0x30, 0x25, 0xA0, 0x30, 0x25, 0xCB, 0x81, 0xD1, 0x57, 0x01, 0xD1, 0x65,
+ 0x81, 0xD1, 0x58, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6E,
+ 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x70,
+ 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x71, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x72,
+ 0x81, 0xD1, 0xB9, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0xBA, 0x01, 0xD1, 0x65,
+ 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6E,
+ 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6F,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
+ 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
+ 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
+ 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
+ 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
+ 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45,
+ 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49,
+ 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D,
+ 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51,
+ 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55,
+ 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59,
+ 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
+ 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67,
+ 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
+ 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
+ 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
+ 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
+ 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
+ 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A,
+ 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55,
+ 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59,
+ 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
+ 0x04, 0x00, 0x64, 0x04, 0x00, 0x66, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69,
+ 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D,
+ 0x04, 0x00, 0x6E, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45,
+ 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B,
+ 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F,
+ 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
+ 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67,
+ 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
+ 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
+ 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
+ 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
+ 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
+ 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+ 0x04, 0x00, 0x47, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B,
+ 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x53,
+ 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57,
+ 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+ 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
+ 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
+ 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
+ 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
+ 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
+ 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
+ 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
+ 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
+ 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
+ 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
+ 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
+ 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
+ 0x04, 0x01, 0x31, 0x04, 0x02, 0x37, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92,
+ 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96,
+ 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A,
+ 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E,
+ 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4,
+ 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6,
+ 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07,
+ 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4,
+ 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8,
+ 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC,
+ 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0,
+ 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4,
+ 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8,
+ 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1,
+ 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6,
+ 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94,
+ 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98,
+ 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C,
+ 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0,
+ 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4,
+ 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8,
+ 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2,
+ 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6,
+ 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA,
+ 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE,
+ 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2,
+ 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6,
+ 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02,
+ 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5,
+ 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92,
+ 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96,
+ 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A,
+ 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E,
+ 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4,
+ 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6,
+ 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07,
+ 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4,
+ 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8,
+ 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC,
+ 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0,
+ 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4,
+ 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8,
+ 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1,
+ 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6,
+ 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94,
+ 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98,
+ 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C,
+ 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0,
+ 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4,
+ 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8,
+ 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2,
+ 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6,
+ 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA,
+ 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE,
+ 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2,
+ 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6,
+ 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02,
+ 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5,
+ 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92,
+ 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96,
+ 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A,
+ 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E,
+ 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4,
+ 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6,
+ 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07,
+ 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4,
+ 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8,
+ 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC,
+ 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0,
+ 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4,
+ 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8,
+ 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1,
+ 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6,
+ 0x04, 0x03, 0xDC, 0x04, 0x03, 0xDD, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
+ 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35,
+ 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39,
+ 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33,
+ 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37,
+ 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
+ 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35,
+ 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39,
+ 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33,
+ 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37,
+ 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
+ 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35,
+ 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39,
+ 0x00, 0x4E, 0x3D, 0x00, 0x4E, 0x38, 0x00, 0x4E, 0x41, 0x02, 0x01, 0x22,
+ 0x00, 0x4F, 0x60, 0x00, 0x4F, 0xAE, 0x00, 0x4F, 0xBB, 0x00, 0x50, 0x02,
+ 0x00, 0x50, 0x7A, 0x00, 0x50, 0x99, 0x00, 0x50, 0xE7, 0x00, 0x50, 0xCF,
+ 0x00, 0x34, 0x9E, 0x02, 0x06, 0x3A, 0x00, 0x51, 0x4D, 0x00, 0x51, 0x54,
+ 0x00, 0x51, 0x64, 0x00, 0x51, 0x77, 0x02, 0x05, 0x1C, 0x00, 0x34, 0xB9,
+ 0x00, 0x51, 0x67, 0x00, 0x51, 0x8D, 0x02, 0x05, 0x4B, 0x00, 0x51, 0x97,
+ 0x00, 0x51, 0xA4, 0x00, 0x4E, 0xCC, 0x00, 0x51, 0xAC, 0x00, 0x51, 0xB5,
+ 0x02, 0x91, 0xDF, 0x00, 0x51, 0xF5, 0x00, 0x52, 0x03, 0x00, 0x34, 0xDF,
+ 0x00, 0x52, 0x3B, 0x00, 0x52, 0x46, 0x00, 0x52, 0x72, 0x00, 0x52, 0x77,
+ 0x00, 0x35, 0x15, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xC9, 0x00, 0x52, 0xE4,
+ 0x00, 0x52, 0xFA, 0x00, 0x53, 0x05, 0x00, 0x53, 0x06, 0x00, 0x53, 0x17,
+ 0x00, 0x53, 0x49, 0x00, 0x53, 0x51, 0x00, 0x53, 0x5A, 0x00, 0x53, 0x73,
+ 0x00, 0x53, 0x7D, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F,
+ 0x02, 0x0A, 0x2C, 0x00, 0x70, 0x70, 0x00, 0x53, 0xCA, 0x00, 0x53, 0xDF,
+ 0x02, 0x0B, 0x63, 0x00, 0x53, 0xEB, 0x00, 0x53, 0xF1, 0x00, 0x54, 0x06,
+ 0x00, 0x54, 0x9E, 0x00, 0x54, 0x38, 0x00, 0x54, 0x48, 0x00, 0x54, 0x68,
+ 0x00, 0x54, 0xA2, 0x00, 0x54, 0xF6, 0x00, 0x55, 0x10, 0x00, 0x55, 0x53,
+ 0x00, 0x55, 0x63, 0x00, 0x55, 0x84, 0x00, 0x55, 0x84, 0x00, 0x55, 0x99,
+ 0x00, 0x55, 0xAB, 0x00, 0x55, 0xB3, 0x00, 0x55, 0xC2, 0x00, 0x57, 0x16,
+ 0x00, 0x56, 0x06, 0x00, 0x57, 0x17, 0x00, 0x56, 0x51, 0x00, 0x56, 0x74,
+ 0x00, 0x52, 0x07, 0x00, 0x58, 0xEE, 0x00, 0x57, 0xCE, 0x00, 0x57, 0xF4,
+ 0x00, 0x58, 0x0D, 0x00, 0x57, 0x8B, 0x00, 0x58, 0x32, 0x00, 0x58, 0x31,
+ 0x00, 0x58, 0xAC, 0x02, 0x14, 0xE4, 0x00, 0x58, 0xF2, 0x00, 0x58, 0xF7,
+ 0x00, 0x59, 0x06, 0x00, 0x59, 0x1A, 0x00, 0x59, 0x22, 0x00, 0x59, 0x62,
+ 0x02, 0x16, 0xA8, 0x02, 0x16, 0xEA, 0x00, 0x59, 0xEC, 0x00, 0x5A, 0x1B,
+ 0x00, 0x5A, 0x27, 0x00, 0x59, 0xD8, 0x00, 0x5A, 0x66, 0x00, 0x36, 0xEE,
+ 0x00, 0x36, 0xFC, 0x00, 0x5B, 0x08, 0x00, 0x5B, 0x3E, 0x00, 0x5B, 0x3E,
+ 0x02, 0x19, 0xC8, 0x00, 0x5B, 0xC3, 0x00, 0x5B, 0xD8, 0x00, 0x5B, 0xE7,
+ 0x00, 0x5B, 0xF3, 0x02, 0x1B, 0x18, 0x00, 0x5B, 0xFF, 0x00, 0x5C, 0x06,
+ 0x00, 0x5F, 0x53, 0x00, 0x5C, 0x22, 0x00, 0x37, 0x81, 0x00, 0x5C, 0x60,
+ 0x00, 0x5C, 0x6E, 0x00, 0x5C, 0xC0, 0x00, 0x5C, 0x8D, 0x02, 0x1D, 0xE4,
+ 0x00, 0x5D, 0x43, 0x02, 0x1D, 0xE6, 0x00, 0x5D, 0x6E, 0x00, 0x5D, 0x6B,
+ 0x00, 0x5D, 0x7C, 0x00, 0x5D, 0xE1, 0x00, 0x5D, 0xE2, 0x00, 0x38, 0x2F,
+ 0x00, 0x5D, 0xFD, 0x00, 0x5E, 0x28, 0x00, 0x5E, 0x3D, 0x00, 0x5E, 0x69,
+ 0x00, 0x38, 0x62, 0x02, 0x21, 0x83, 0x00, 0x38, 0x7C, 0x00, 0x5E, 0xB0,
+ 0x00, 0x5E, 0xB3, 0x00, 0x5E, 0xB6, 0x00, 0x5E, 0xCA, 0x02, 0xA3, 0x92,
+ 0x00, 0x5E, 0xFE, 0x02, 0x23, 0x31, 0x02, 0x23, 0x31, 0x00, 0x82, 0x01,
+ 0x00, 0x5F, 0x22, 0x00, 0x5F, 0x22, 0x00, 0x38, 0xC7, 0x02, 0x32, 0xB8,
+ 0x02, 0x61, 0xDA, 0x00, 0x5F, 0x62, 0x00, 0x5F, 0x6B, 0x00, 0x38, 0xE3,
+ 0x00, 0x5F, 0x9A, 0x00, 0x5F, 0xCD, 0x00, 0x5F, 0xD7, 0x00, 0x5F, 0xF9,
+ 0x00, 0x60, 0x81, 0x00, 0x39, 0x3A, 0x00, 0x39, 0x1C, 0x00, 0x60, 0x94,
+ 0x02, 0x26, 0xD4, 0x00, 0x60, 0xC7, 0x00, 0x61, 0x48, 0x00, 0x61, 0x4C,
+ 0x00, 0x61, 0x4E, 0x00, 0x61, 0x4C, 0x00, 0x61, 0x7A, 0x00, 0x61, 0x8E,
+ 0x00, 0x61, 0xB2, 0x00, 0x61, 0xA4, 0x00, 0x61, 0xAF, 0x00, 0x61, 0xDE,
+ 0x00, 0x61, 0xF2, 0x00, 0x61, 0xF6, 0x00, 0x62, 0x10, 0x00, 0x62, 0x1B,
+ 0x00, 0x62, 0x5D, 0x00, 0x62, 0xB1, 0x00, 0x62, 0xD4, 0x00, 0x63, 0x50,
+ 0x02, 0x2B, 0x0C, 0x00, 0x63, 0x3D, 0x00, 0x62, 0xFC, 0x00, 0x63, 0x68,
+ 0x00, 0x63, 0x83, 0x00, 0x63, 0xE4, 0x02, 0x2B, 0xF1, 0x00, 0x64, 0x22,
+ 0x00, 0x63, 0xC5, 0x00, 0x63, 0xA9, 0x00, 0x3A, 0x2E, 0x00, 0x64, 0x69,
+ 0x00, 0x64, 0x7E, 0x00, 0x64, 0x9D, 0x00, 0x64, 0x77, 0x00, 0x3A, 0x6C,
+ 0x00, 0x65, 0x4F, 0x00, 0x65, 0x6C, 0x02, 0x30, 0x0A, 0x00, 0x65, 0xE3,
+ 0x00, 0x66, 0xF8, 0x00, 0x66, 0x49, 0x00, 0x3B, 0x19, 0x00, 0x66, 0x91,
+ 0x00, 0x3B, 0x08, 0x00, 0x3A, 0xE4, 0x00, 0x51, 0x92, 0x00, 0x51, 0x95,
+ 0x00, 0x67, 0x00, 0x00, 0x66, 0x9C, 0x00, 0x80, 0xAD, 0x00, 0x43, 0xD9,
+ 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x21, 0x00, 0x67, 0x5E,
+ 0x00, 0x67, 0x53, 0x02, 0x33, 0xC3, 0x00, 0x3B, 0x49, 0x00, 0x67, 0xFA,
+ 0x00, 0x67, 0x85, 0x00, 0x68, 0x52, 0x00, 0x68, 0x85, 0x02, 0x34, 0x6D,
+ 0x00, 0x68, 0x8E, 0x00, 0x68, 0x1F, 0x00, 0x69, 0x14, 0x00, 0x3B, 0x9D,
+ 0x00, 0x69, 0x42, 0x00, 0x69, 0xA3, 0x00, 0x69, 0xEA, 0x00, 0x6A, 0xA8,
+ 0x02, 0x36, 0xA3, 0x00, 0x6A, 0xDB, 0x00, 0x3C, 0x18, 0x00, 0x6B, 0x21,
+ 0x02, 0x38, 0xA7, 0x00, 0x6B, 0x54, 0x00, 0x3C, 0x4E, 0x00, 0x6B, 0x72,
+ 0x00, 0x6B, 0x9F, 0x00, 0x6B, 0xBA, 0x00, 0x6B, 0xBB, 0x02, 0x3A, 0x8D,
+ 0x02, 0x1D, 0x0B, 0x02, 0x3A, 0xFA, 0x00, 0x6C, 0x4E, 0x02, 0x3C, 0xBC,
+ 0x00, 0x6C, 0xBF, 0x00, 0x6C, 0xCD, 0x00, 0x6C, 0x67, 0x00, 0x6D, 0x16,
+ 0x00, 0x6D, 0x3E, 0x00, 0x6D, 0x77, 0x00, 0x6D, 0x41, 0x00, 0x6D, 0x69,
+ 0x00, 0x6D, 0x78, 0x00, 0x6D, 0x85, 0x02, 0x3D, 0x1E, 0x00, 0x6D, 0x34,
+ 0x00, 0x6E, 0x2F, 0x00, 0x6E, 0x6E, 0x00, 0x3D, 0x33, 0x00, 0x6E, 0xCB,
+ 0x00, 0x6E, 0xC7, 0x02, 0x3E, 0xD1, 0x00, 0x6D, 0xF9, 0x00, 0x6F, 0x6E,
+ 0x02, 0x3F, 0x5E, 0x02, 0x3F, 0x8E, 0x00, 0x6F, 0xC6, 0x00, 0x70, 0x39,
+ 0x00, 0x70, 0x1E, 0x00, 0x70, 0x1B, 0x00, 0x3D, 0x96, 0x00, 0x70, 0x4A,
+ 0x00, 0x70, 0x7D, 0x00, 0x70, 0x77, 0x00, 0x70, 0xAD, 0x02, 0x05, 0x25,
+ 0x00, 0x71, 0x45, 0x02, 0x42, 0x63, 0x00, 0x71, 0x9C, 0x02, 0x43, 0xAB,
+ 0x00, 0x72, 0x28, 0x00, 0x72, 0x35, 0x00, 0x72, 0x50, 0x02, 0x46, 0x08,
+ 0x00, 0x72, 0x80, 0x00, 0x72, 0x95, 0x02, 0x47, 0x35, 0x02, 0x48, 0x14,
+ 0x00, 0x73, 0x7A, 0x00, 0x73, 0x8B, 0x00, 0x3E, 0xAC, 0x00, 0x73, 0xA5,
+ 0x00, 0x3E, 0xB8, 0x00, 0x3E, 0xB8, 0x00, 0x74, 0x47, 0x00, 0x74, 0x5C,
+ 0x00, 0x74, 0x71, 0x00, 0x74, 0x85, 0x00, 0x74, 0xCA, 0x00, 0x3F, 0x1B,
+ 0x00, 0x75, 0x24, 0x02, 0x4C, 0x36, 0x00, 0x75, 0x3E, 0x02, 0x4C, 0x92,
+ 0x00, 0x75, 0x70, 0x02, 0x21, 0x9F, 0x00, 0x76, 0x10, 0x02, 0x4F, 0xA1,
+ 0x02, 0x4F, 0xB8, 0x02, 0x50, 0x44, 0x00, 0x3F, 0xFC, 0x00, 0x40, 0x08,
+ 0x00, 0x76, 0xF4, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xF2, 0x02, 0x51, 0x19,
+ 0x02, 0x51, 0x33, 0x00, 0x77, 0x1E, 0x00, 0x77, 0x1F, 0x00, 0x77, 0x1F,
+ 0x00, 0x77, 0x4A, 0x00, 0x40, 0x39, 0x00, 0x77, 0x8B, 0x00, 0x40, 0x46,
+ 0x00, 0x40, 0x96, 0x02, 0x54, 0x1D, 0x00, 0x78, 0x4E, 0x00, 0x78, 0x8C,
+ 0x00, 0x78, 0xCC, 0x00, 0x40, 0xE3, 0x02, 0x56, 0x26, 0x00, 0x79, 0x56,
+ 0x02, 0x56, 0x9A, 0x02, 0x56, 0xC5, 0x00, 0x79, 0x8F, 0x00, 0x79, 0xEB,
+ 0x00, 0x41, 0x2F, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x4A, 0x00, 0x7A, 0x4F,
+ 0x02, 0x59, 0x7C, 0x02, 0x5A, 0xA7, 0x02, 0x5A, 0xA7, 0x00, 0x7A, 0xEE,
+ 0x00, 0x42, 0x02, 0x02, 0x5B, 0xAB, 0x00, 0x7B, 0xC6, 0x00, 0x7B, 0xC9,
+ 0x00, 0x42, 0x27, 0x02, 0x5C, 0x80, 0x00, 0x7C, 0xD2, 0x00, 0x42, 0xA0,
+ 0x00, 0x7C, 0xE8, 0x00, 0x7C, 0xE3, 0x00, 0x7D, 0x00, 0x02, 0x5F, 0x86,
+ 0x00, 0x7D, 0x63, 0x00, 0x43, 0x01, 0x00, 0x7D, 0xC7, 0x00, 0x7E, 0x02,
+ 0x00, 0x7E, 0x45, 0x00, 0x43, 0x34, 0x02, 0x62, 0x28, 0x02, 0x62, 0x47,
+ 0x00, 0x43, 0x59, 0x02, 0x62, 0xD9, 0x00, 0x7F, 0x7A, 0x02, 0x63, 0x3E,
+ 0x00, 0x7F, 0x95, 0x00, 0x7F, 0xFA, 0x00, 0x80, 0x05, 0x02, 0x64, 0xDA,
+ 0x02, 0x65, 0x23, 0x00, 0x80, 0x60, 0x02, 0x65, 0xA8, 0x00, 0x80, 0x70,
+ 0x02, 0x33, 0x5F, 0x00, 0x43, 0xD5, 0x00, 0x80, 0xB2, 0x00, 0x81, 0x03,
+ 0x00, 0x44, 0x0B, 0x00, 0x81, 0x3E, 0x00, 0x5A, 0xB5, 0x02, 0x67, 0xA7,
+ 0x02, 0x67, 0xB5, 0x02, 0x33, 0x93, 0x02, 0x33, 0x9C, 0x00, 0x82, 0x01,
+ 0x00, 0x82, 0x04, 0x00, 0x8F, 0x9E, 0x00, 0x44, 0x6B, 0x00, 0x82, 0x91,
+ 0x00, 0x82, 0x8B, 0x00, 0x82, 0x9D, 0x00, 0x52, 0xB3, 0x00, 0x82, 0xB1,
+ 0x00, 0x82, 0xB3, 0x00, 0x82, 0xBD, 0x00, 0x82, 0xE6, 0x02, 0x6B, 0x3C,
+ 0x00, 0x82, 0xE5, 0x00, 0x83, 0x1D, 0x00, 0x83, 0x63, 0x00, 0x83, 0xAD,
+ 0x00, 0x83, 0x23, 0x00, 0x83, 0xBD, 0x00, 0x83, 0xE7, 0x00, 0x84, 0x57,
+ 0x00, 0x83, 0x53, 0x00, 0x83, 0xCA, 0x00, 0x83, 0xCC, 0x00, 0x83, 0xDC,
+ 0x02, 0x6C, 0x36, 0x02, 0x6D, 0x6B, 0x02, 0x6C, 0xD5, 0x00, 0x45, 0x2B,
+ 0x00, 0x84, 0xF1, 0x00, 0x84, 0xF3, 0x00, 0x85, 0x16, 0x02, 0x73, 0xCA,
+ 0x00, 0x85, 0x64, 0x02, 0x6F, 0x2C, 0x00, 0x45, 0x5D, 0x00, 0x45, 0x61,
+ 0x02, 0x6F, 0xB1, 0x02, 0x70, 0xD2, 0x00, 0x45, 0x6B, 0x00, 0x86, 0x50,
+ 0x00, 0x86, 0x5C, 0x00, 0x86, 0x67, 0x00, 0x86, 0x69, 0x00, 0x86, 0xA9,
+ 0x00, 0x86, 0x88, 0x00, 0x87, 0x0E, 0x00, 0x86, 0xE2, 0x00, 0x87, 0x79,
+ 0x00, 0x87, 0x28, 0x00, 0x87, 0x6B, 0x00, 0x87, 0x86, 0x00, 0x45, 0xD7,
+ 0x00, 0x87, 0xE1, 0x00, 0x88, 0x01, 0x00, 0x45, 0xF9, 0x00, 0x88, 0x60,
+ 0x00, 0x88, 0x63, 0x02, 0x76, 0x67, 0x00, 0x88, 0xD7, 0x00, 0x88, 0xDE,
+ 0x00, 0x46, 0x35, 0x00, 0x88, 0xFA, 0x00, 0x34, 0xBB, 0x02, 0x78, 0xAE,
+ 0x02, 0x79, 0x66, 0x00, 0x46, 0xBE, 0x00, 0x46, 0xC7, 0x00, 0x8A, 0xA0,
+ 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x8A, 0x00, 0x8C, 0x55, 0x02, 0x7C, 0xA8,
+ 0x00, 0x8C, 0xAB, 0x00, 0x8C, 0xC1, 0x00, 0x8D, 0x1B, 0x00, 0x8D, 0x77,
+ 0x02, 0x7F, 0x2F, 0x02, 0x08, 0x04, 0x00, 0x8D, 0xCB, 0x00, 0x8D, 0xBC,
+ 0x00, 0x8D, 0xF0, 0x02, 0x08, 0xDE, 0x00, 0x8E, 0xD4, 0x00, 0x8F, 0x38,
+ 0x02, 0x85, 0xD2, 0x02, 0x85, 0xED, 0x00, 0x90, 0x94, 0x00, 0x90, 0xF1,
+ 0x00, 0x91, 0x11, 0x02, 0x87, 0x2E, 0x00, 0x91, 0x1B, 0x00, 0x92, 0x38,
+ 0x00, 0x92, 0xD7, 0x00, 0x92, 0xD8, 0x00, 0x92, 0x7C, 0x00, 0x93, 0xF9,
+ 0x00, 0x94, 0x15, 0x02, 0x8B, 0xFA, 0x00, 0x95, 0x8B, 0x00, 0x49, 0x95,
+ 0x00, 0x95, 0xB7, 0x02, 0x8D, 0x77, 0x00, 0x49, 0xE6, 0x00, 0x96, 0xC3,
+ 0x00, 0x5D, 0xB2, 0x00, 0x97, 0x23, 0x02, 0x91, 0x45, 0x02, 0x92, 0x1A,
+ 0x00, 0x4A, 0x6E, 0x00, 0x4A, 0x76, 0x00, 0x97, 0xE0, 0x02, 0x94, 0x0A,
+ 0x00, 0x4A, 0xB2, 0x02, 0x94, 0x96, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x0B,
+ 0x00, 0x98, 0x29, 0x02, 0x95, 0xB6, 0x00, 0x98, 0xE2, 0x00, 0x4B, 0x33,
+ 0x00, 0x99, 0x29, 0x00, 0x99, 0xA7, 0x00, 0x99, 0xC2, 0x00, 0x99, 0xFE,
+ 0x00, 0x4B, 0xCE, 0x02, 0x9B, 0x30, 0x00, 0x9B, 0x12, 0x00, 0x9C, 0x40,
+ 0x00, 0x9C, 0xFD, 0x00, 0x4C, 0xCE, 0x00, 0x4C, 0xED, 0x00, 0x9D, 0x67,
+ 0x02, 0xA0, 0xCE, 0x00, 0x4C, 0xF8, 0x02, 0xA1, 0x05, 0x02, 0xA2, 0x0E,
+ 0x02, 0xA2, 0x91, 0x00, 0x9E, 0xBB, 0x00, 0x4D, 0x56, 0x00, 0x9E, 0xF9,
+ 0x00, 0x9E, 0xFE, 0x00, 0x9F, 0x05, 0x00, 0x9F, 0x0F, 0x00, 0x9F, 0x16,
+ 0x00, 0x9F, 0x3B, 0x02, 0xA6, 0x00
+};
+
+const decomp_index_table_t gl_uninorm_decomp_index_table =
+{
+ {
+ 0, 32, 64, 96, 128, -1, 160, 192,
+ 224, 256, 288, 320, 352, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 384, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 416, 448,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 480, 512, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 544
+ },
+ {
+ -1, -1, -1, -1, -1, 0, 32, 64,
+ 96, 128, 160, 192, -1, 224, 256, 288,
+ 320, 352, -1, -1, -1, 384, 416, 448,
+ -1, -1, 480, 512, 544, 576, 608, 640,
+ 672, 704, 736, 768, -1, -1, 800, 832,
+ -1, -1, -1, -1, 864, -1, -1, -1,
+ -1, 896, -1, 928, -1, -1, 960, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 992, 1024, -1, -1, -1, 1056, -1,
+ -1, 1088, 1120, -1, -1, -1, -1, -1,
+ -1, -1, 1152, -1, 1184, -1, 1216, -1,
+ -1, -1, 1248, -1, -1, -1, 1280, -1,
+ -1, -1, 1312, -1, -1, -1, 1344, -1,
+ -1, 1376, -1, -1, -1, 1408, 1440, -1,
+ 1472, -1, 1504, 1536, 1568, 1600, -1, -1,
+ -1, 1632, -1, -1, -1, -1, -1, 1664,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 1696, 1728, 1760, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 1792, 1824, 1856, 1888, 1920, -1, -1,
+ 1952, 1984, 2016, 2048, 2080, 2112, 2144, 2176,
+ 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432,
+ 2464, 2496, 2528, 2560, 2592, 2624, -1, -1,
+ 2656, 2688, 2720, 2752, 2784, 2816, 2848, -1,
+ 2880, 2912, 2944, 2976, 3008, 3040, -1, 3072,
+ -1, 3104, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3136, 3168, 3200, 3232, 3264,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 3296, -1, -1, 3328, -1, -1, 3360, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 3392, -1, -1, -1, -1,
+ -1, -1, -1, 3424, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3456, -1, -1, 3488,
+ 3520, 3552, 3584, 3616, 3648, 3680, 3712, -1,
+ 3744, 3776, 3808, 3840, 3872, 3904, 3936, 3968,
+ -1, 4000, 4032, 4064, 4096, -1, -1, -1,
+ 4128, 4160, 4192, 4224, 4256, 4288, 4320, 4352,
+ 4384, 4416, 4448, 4480, 4512, 4544, 4576, 4608,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4640, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4672, 4704, 4736, 4768, 4800, 4832, 4864, 4896,
+ 4928, 4960, 4992, 5024, 5056, 5088, 5120, -1,
+ 5152, 5184, 5216, 5248, 5280, 5312, 5344, 5376,
+ 5408, 5440, 5472, 5504, 5536, 5568, 5600, 5632,
+ 5664, 5696, 5728, 5760, 5792, 5824, 5856, 5888,
+ 5920, 5952, 5984, 6016, 6048, 6080, 6112, 6144,
+ 6176, 6208, 6240, 6272, 6304, 6336, 6368, 6400,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 6432, 6464, -1, 6496, 6528, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 6560, 6592, 6624, 6656, 6688, 6720, 6752, 6784,
+ 6816, 6848, 6880, 6912, 6944, 6976, 7008, 7040,
+ 7072, 7104, 7136, 7168, 7200, 7232, 7264, 7296,
+ 7328, 7360, 7392, 7424, 7456, 7488, 7520, 7552,
+ 7584, 7616, 7648, 7680, 7712, 7744, 7776, 7808,
+ 7840, 7872, 7904, 7936, 7968, 8000, 8032, 8064,
+ 8096, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ 32768, -1, -1, -1, -1, -1, -1, -1,
+ 32769, -1, 32771, -1, -1, -1, -1, 32772,
+ -1, -1, 32774, 32775, 32776, 32778, -1, -1,
+ 32779, 32781, 32782, -1, 32783, 32786, 32789, -1,
+ 24, 26, 28, 30, 32, 34, -1, 36,
+ 38, 40, 42, 44, 46, 48, 50, 52,
+ -1, 54, 56, 58, 60, 62, 64, -1,
+ -1, 66, 68, 70, 72, 74, -1, -1,
+ 76, 78, 80, 82, 84, 86, -1, 88,
+ 90, 92, 94, 96, 98, 100, 102, 104,
+ -1, 106, 108, 110, 112, 114, 116, -1,
+ -1, 118, 120, 122, 124, 126, -1, 128,
+ 130, 132, 134, 136, 138, 140, 142, 144,
+ 146, 148, 150, 152, 154, 156, 158, 160,
+ -1, -1, 162, 164, 166, 168, 170, 172,
+ 174, 176, 178, 180, 182, 184, 186, 188,
+ 190, 192, 194, 196, 198, 200, -1, -1,
+ 202, 204, 206, 208, 210, 212, 214, 216,
+ 218, -1, 32988, 32990, 224, 226, 228, 230,
+ -1, 232, 234, 236, 238, 240, 242, 33012,
+ 33014, -1, -1, 248, 250, 252, 254, 256,
+ 258, 33028, -1, -1, 262, 264, 266, 268,
+ 270, 272, -1, -1, 274, 276, 278, 280,
+ 282, 284, 286, 288, 290, 292, 294, 296,
+ 298, 300, 302, 304, 306, 308, -1, -1,
+ 310, 312, 314, 316, 318, 320, 322, 324,
+ 326, 328, 330, 332, 334, 336, 338, 340,
+ 342, 344, 346, 348, 350, 352, 354, 33124,
+ 357, 359, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 361,
+ 363, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33133, 33135, 33137, 33139,
+ 33141, 33143, 33145, 33147, 33149, 383, 385, 387,
+ 389, 391, 393, 395, 397, 399, 401, 403,
+ 405, 407, 409, 411, 413, -1, 415, 417,
+ 419, 421, 423, 425, -1, -1, 427, 429,
+ 431, 433, 435, 437, 439, 441, 443, 445,
+ 447, 33217, 33219, 33221, 455, 457, -1, -1,
+ 459, 461, 463, 465, 467, 469, 471, 473,
+ 475, 477, 479, 481, 483, 485, 487, 489,
+ 491, 493, 495, 497, 499, 501, 503, 505,
+ 507, 509, 511, 513, 515, 517, 519, 521,
+ 523, 525, 527, 529, -1, -1, 531, 533,
+ -1, -1, -1, -1, -1, -1, 535, 537,
+ 539, 541, 543, 545, 547, 549, 551, 553,
+ 555, 557, 559, 561, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 33331, 33332, 33333, 33334, 33335, 33336, 33337, 33338,
+ 33339, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 33340, 33342, 33344, 33346, 33348, 33350, -1, -1,
+ 33352, 33353, 33354, 33355, 33356, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 589, 590, -1, 591, 592, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 594, -1, -1, -1,
+ -1, -1, 33363, -1, -1, -1, 597, -1,
+ -1, -1, -1, -1, 33366, 600, 602, 604,
+ 605, 607, 609, -1, 611, -1, 613, 615,
+ 617, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 619, 621, 623, 625, 627, 629,
+ 631, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 633, 635, 637, 639, 641, -1,
+ 33411, 33412, 33413, 646, 648, 33418, 33419, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 33420, 33421, 33422, -1, 33423, 33424, -1, -1,
+ -1, 33425, -1, -1, -1, -1, -1, -1,
+ 658, 660, -1, 662, -1, -1, -1, 664,
+ -1, -1, -1, -1, 666, 668, 670, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 672, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 674, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 676, 678, -1, 680, -1, -1, -1, 682,
+ -1, -1, -1, -1, 684, 686, 688, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 690, 692,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 694, 696, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 698, 700, 702, 704, -1, -1, 706, 708,
+ -1, -1, 710, 712, 714, 716, 718, 720,
+ -1, -1, 722, 724, 726, 728, 730, 732,
+ -1, -1, 734, 736, 738, 740, 742, 744,
+ 746, 748, 750, 752, 754, 756, -1, -1,
+ 758, 760, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 33530,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 764, 766, 768, 770, 772, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 33542, 33544, 33546,
+ 33548, -1, -1, -1, -1, -1, -1, -1,
+ 782, -1, 784, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 786, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 788, -1, -1, -1, -1, -1, -1,
+ -1, 790, -1, -1, 792, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 794, 796, 798, 800, 802, 804, 806, 808,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 810, 812, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 814, 816, -1, 818,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 820, -1, -1, 822, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 824, 826, 828, -1, -1, 830, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 832, -1, -1, 834, 836, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 838, 840, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 842, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 844, 846, 848, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 850, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 852, -1, -1, -1, -1, -1, -1, 854,
+ 856, -1, 858, 860, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 862, 864, 866, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 868, -1, 870, 872, 874, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 33644, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 33646, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33648, 33650, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33652, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 885, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 887, -1, -1,
+ -1, -1, 889, -1, -1, -1, -1, 891,
+ -1, -1, -1, -1, 893, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 895, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 897, -1, 899, 901, 33671,
+ 905, 33675, -1, -1, -1, -1, -1, -1,
+ -1, 909, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 911, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 913, -1, -1,
+ -1, -1, 915, -1, -1, -1, -1, 917,
+ -1, -1, -1, -1, 919, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 921, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 923, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33693, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 926, -1,
+ 928, -1, 930, -1, 932, -1, 934, -1,
+ -1, -1, 936, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 938, -1, 940, -1, -1,
+ 942, 944, -1, 946, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33716, 33717, 33718, -1,
+ 33719, 33720, 33721, 33722, 33723, 33724, 33725, 33726,
+ 33727, 33728, 33729, -1, 33730, 33731, 33732, 33733,
+ 33734, 33735, 33736, 33737, 33738, 33739, 33740, 33741,
+ 33742, 33743, 33744, 33745, 33746, 33747, -1, 33748,
+ 33749, 33750, 33751, 33752, 33753, 33754, 33755, 33756,
+ 33757, 33758, 33759, 33760, 33761, 33762, 33763, 33764,
+ 33765, 33766, 33767, 33768, 33769, 33770, 33771, 33772,
+ 33773, 33774, 33775, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 33776, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 33777, 33778, 33779, 33780, 33781,
+ 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789,
+ 33790, 33791, 33792, 33793, 33794, 33795, 33796, 33797,
+ 33798, 33799, 33800, 33801, 33802, 33803, 33804, 33805,
+ 33806, 33807, 33808, 33809, 33810, 33811, 33812, 33813,
+ 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060,
+ 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076,
+ 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092,
+ 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108,
+ 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124,
+ 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140,
+ 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156,
+ 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172,
+ 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188,
+ 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204,
+ 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220,
+ 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236,
+ 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252,
+ 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268,
+ 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284,
+ 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300,
+ 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316,
+ 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332,
+ 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1348,
+ 1350, 1352, 34122, 1356, -1, -1, -1, -1,
+ 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372,
+ 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388,
+ 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404,
+ 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420,
+ 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436,
+ 1438, 1440, 1442, 1444, 1446, 1448, 1450, 1452,
+ 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468,
+ 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484,
+ 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500,
+ 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516,
+ 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532,
+ 1534, 1536, -1, -1, -1, -1, -1, -1,
+ 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552,
+ 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568,
+ 1570, 1572, 1574, 1576, 1578, 1580, -1, -1,
+ 1582, 1584, 1586, 1588, 1590, 1592, -1, -1,
+ 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608,
+ 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
+ 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640,
+ 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656,
+ 1658, 1660, 1662, 1664, 1666, 1668, -1, -1,
+ 1670, 1672, 1674, 1676, 1678, 1680, -1, -1,
+ 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696,
+ -1, 1698, -1, 1700, -1, 1702, -1, 1704,
+ 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720,
+ 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736,
+ 1738, 1740, 1741, 1743, 1744, 1746, 1747, 1749,
+ 1750, 1752, 1753, 1755, 1756, 1758, -1, -1,
+ 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773,
+ 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789,
+ 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805,
+ 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821,
+ 1823, 1825, 1827, 1829, 1831, 1833, 1835, 1837,
+ 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853,
+ 1855, 1857, 1859, 1861, 1863, -1, 1865, 1867,
+ 1869, 1871, 1873, 1875, 1876, 34646, 1880, 34649,
+ 34651, 1885, 1887, 1889, 1891, -1, 1893, 1895,
+ 1897, 1899, 1900, 1902, 1903, 1905, 1907, 1909,
+ 1911, 1913, 1915, 1917, -1, -1, 1918, 1920,
+ 1922, 1924, 1926, 1928, -1, 1929, 1931, 1933,
+ 1935, 1937, 1939, 1941, 1942, 1944, 1946, 1948,
+ 1950, 1952, 1954, 1956, 1957, 1959, 1961, 1962,
+ -1, -1, 1963, 1965, 1967, -1, 1969, 1971,
+ 1973, 1975, 1976, 1978, 1979, 1981, 34750, -1,
+ 1984, 1985, 34754, 34755, 34756, 34757, 34758, 34759,
+ 34760, 34761, 34762, -1, -1, -1, -1, -1,
+ -1, 34763, -1, -1, -1, -1, -1, 34764,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 34766, 34767, 34769, -1,
+ -1, -1, -1, -1, -1, -1, -1, 34772,
+ -1, -1, -1, 34773, 34775, -1, 34778, 34780,
+ -1, -1, -1, -1, 34783, -1, 34785, -1,
+ -1, -1, -1, -1, -1, -1, -1, 34787,
+ 34789, 34791, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 34793,
+ -1, -1, -1, -1, -1, -1, -1, 34797,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 34798, 34799, -1, -1, 34800, 34801, 34802, 34803,
+ 34804, 34805, 34806, 34807, 34808, 34809, 34810, 34811,
+ 34812, 34813, 34814, 34815, 34816, 34817, 34818, 34819,
+ 34820, 34821, 34822, 34823, 34824, 34825, 34826, -1,
+ 34827, 34828, 34829, 34830, 34831, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 34832, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 34834, 34837, 34840, 34841, -1, 34843, 34846, 34849,
+ -1, 34850, 34852, 34853, 34854, 34855, 34856, 34857,
+ 34858, 34859, 34860, 34861, -1, 34862, 34863, -1,
+ -1, 34865, 34866, 34867, 34868, 34869, -1, -1,
+ 34870, 34872, 34875, -1, 34877, -1, 2110, -1,
+ 34879, -1, 2112, 2113, 34882, 34883, -1, 34884,
+ 34885, 34886, -1, 34887, 34888, 34889, 34890, 34891,
+ 34892, 34893, -1, 34894, 34897, 34898, 34899, 34900,
+ 34901, -1, -1, -1, -1, 34902, 34903, 34904,
+ 34905, 34906, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 34907, 34910, 34913, 34916, 34919,
+ 34922, 34925, 34928, 34931, 34934, 34937, 34940, 34943,
+ 34945, 34946, 34948, 34951, 34953, 34954, 34956, 34959,
+ 34963, 34965, 34966, 34968, 34971, 34972, 34973, 34974,
+ 34975, 34976, 34978, 34981, 34983, 34984, 34986, 34989,
+ 34993, 34995, 34996, 34998, 35001, 35002, 35003, 35004,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2237, 2239, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2241, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2243, 2245, 2247,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2249, -1, -1, -1,
+ -1, 2251, -1, -1, 2253, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2255, -1, 2257, -1,
+ -1, -1, -1, -1, 35027, 35029, -1, 35032,
+ 35034, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2269, -1, -1, 2271, -1, -1, 2273,
+ -1, 2275, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2277, -1, 2279, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 2281, 2283, 2285,
+ 2287, 2289, -1, -1, 2291, 2293, -1, -1,
+ 2295, 2297, -1, -1, -1, -1, -1, -1,
+ 2299, 2301, -1, -1, 2303, 2305, -1, -1,
+ 2307, 2309, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2311, 2313, 2315, 2317,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 2319, 2321, 2323, 2325, -1, -1, -1, -1,
+ -1, -1, 2327, 2329, 2331, 2333, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2335, 2336, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 35105, 35106, 35107, 35108, 35109, 35110, 35111, 35112,
+ 35113, 35114, 35116, 35118, 35120, 35122, 35124, 35126,
+ 35128, 35130, 35132, 35134, 35136, 35139, 35142, 35145,
+ 35148, 35151, 35154, 35157, 35160, 35163, 35167, 35171,
+ 35175, 35179, 35183, 35187, 35191, 35195, 35199, 35203,
+ 35207, 35209, 35211, 35213, 35215, 35217, 35219, 35221,
+ 35223, 35225, 35228, 35231, 35234, 35237, 35240, 35243,
+ 35246, 35249, 35252, 35255, 35258, 35261, 35264, 35267,
+ 35270, 35273, 35276, 35279, 35282, 35285, 35288, 35291,
+ 35294, 35297, 35300, 35303, 35306, 35309, 35312, 35315,
+ 35318, 35321, 35324, 35327, 35330, 35333, 35336, 35337,
+ 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345,
+ 35346, 35347, 35348, 35349, 35350, 35351, 35352, 35353,
+ 35354, 35355, 35356, 35357, 35358, 35359, 35360, 35361,
+ 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369,
+ 35370, 35371, 35372, 35373, 35374, 35375, 35376, 35377,
+ 35378, 35379, 35380, 35381, 35382, 35383, 35384, 35385,
+ 35386, 35387, 35388, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35389, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35393, 35396, 35398, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2633, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35403, 35404, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 35405,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 35406,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 35407, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415,
+ 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423,
+ 35424, 35425, 35426, 35427, 35428, 35429, 35430, 35431,
+ 35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439,
+ 35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447,
+ 35448, 35449, 35450, 35451, 35452, 35453, 35454, 35455,
+ 35456, 35457, 35458, 35459, 35460, 35461, 35462, 35463,
+ 35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471,
+ 35472, 35473, 35474, 35475, 35476, 35477, 35478, 35479,
+ 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487,
+ 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495,
+ 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503,
+ 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511,
+ 35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519,
+ 35520, 35521, 35522, 35523, 35524, 35525, 35526, 35527,
+ 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535,
+ 35536, 35537, 35538, 35539, 35540, 35541, 35542, 35543,
+ 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551,
+ 35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559,
+ 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567,
+ 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575,
+ 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583,
+ 35584, 35585, 35586, 35587, 35588, 35589, 35590, 35591,
+ 35592, 35593, 35594, 35595, 35596, 35597, 35598, 35599,
+ 35600, 35601, 35602, 35603, 35604, 35605, 35606, 35607,
+ 35608, 35609, 35610, 35611, 35612, 35613, 35614, 35615,
+ 35616, 35617, 35618, 35619, 35620, 35621, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 35622, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 35623, -1,
+ 35624, 35625, 35626, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2859, -1, 2861, -1,
+ 2863, -1, 2865, -1, 2867, -1, 2869, -1,
+ 2871, -1, 2873, -1, 2875, -1, 2877, -1,
+ 2879, -1, 2881, -1, -1, 2883, -1, 2885,
+ -1, 2887, -1, -1, -1, -1, -1, -1,
+ 2889, 2891, -1, 2893, 2895, -1, 2897, 2899,
+ -1, 2901, 2903, -1, 2905, 2907, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2909, -1, -1, -1,
+ -1, -1, -1, 35679, 35681, -1, 2915, 35685,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2919, -1, 2921, -1,
+ 2923, -1, 2925, -1, 2927, -1, 2929, -1,
+ 2931, -1, 2933, -1, 2935, -1, 2937, -1,
+ 2939, -1, 2941, -1, -1, 2943, -1, 2945,
+ -1, 2947, -1, -1, -1, -1, -1, -1,
+ 2949, 2951, -1, 2953, 2955, -1, 2957, 2959,
+ -1, 2961, 2963, -1, 2965, 2967, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2969, -1, -1, 2971,
+ 2973, 2975, 2977, -1, -1, -1, 2979, 35749,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 35751, 35752, 35753, 35754, 35755, 35756, 35757,
+ 35758, 35759, 35760, 35761, 35762, 35763, 35764, 35765,
+ 35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773,
+ 35774, 35775, 35776, 35777, 35778, 35779, 35780, 35781,
+ 35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789,
+ 35790, 35791, 35792, 35793, 35794, 35795, 35796, 35797,
+ 35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805,
+ 35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813,
+ 35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821,
+ 35822, 35823, 35824, 35825, 35826, 35827, 35828, 35829,
+ 35830, 35831, 35832, 35833, 35834, 35835, 35836, 35837,
+ 35838, 35839, 35840, 35841, 35842, 35843, 35844, -1,
+ -1, -1, 35845, 35846, 35847, 35848, 35849, 35850,
+ 35851, 35852, 35853, 35854, 35855, 35856, 35857, 35858,
+ 35859, 35862, 35865, 35868, 35871, 35874, 35877, 35880,
+ 35883, 35886, 35889, 35892, 35895, 35898, 35901, 35905,
+ 35909, 35913, 35917, 35921, 35925, 35929, 35933, 35937,
+ 35941, 35945, 35949, 35953, 35957, 35961, 35968, -1,
+ 35974, 35977, 35980, 35983, 35986, 35989, 35992, 35995,
+ 35998, 36001, 36004, 36007, 36010, 36013, 36016, 36019,
+ 36022, 36025, 36028, 36031, 36034, 36037, 36040, 36043,
+ 36046, 36049, 36052, 36055, 36058, 36061, 36064, 36067,
+ 36070, 36073, 36076, 36079, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 36082, 36085, 36087, 36089, 36091, 36093, 36095, 36097,
+ 36099, 36101, 36103, 36105, 36107, 36109, 36111, 36113,
+ 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122,
+ 36123, 36124, 36125, 36126, 36127, 36128, 36129, 36131,
+ 36133, 36135, 36137, 36139, 36141, 36143, 36145, 36147,
+ 36149, 36151, 36153, 36155, 36157, 36162, 36166, -1,
+ 36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175,
+ 36176, 36177, 36178, 36179, 36180, 36181, 36182, 36183,
+ 36184, 36185, 36186, 36187, 36188, 36189, 36190, 36191,
+ 36192, 36193, 36194, 36195, 36196, 36197, 36198, 36199,
+ 36200, 36201, 36202, 36203, 36204, 36205, 36206, 36207,
+ 36208, 36209, 36210, 36211, 36212, 36213, 36214, 36215,
+ 36216, 36217, 36219, 36221, 36223, 36225, 36227, 36229,
+ 36231, 36233, 36235, 36237, 36239, 36241, 36243, 36245,
+ 36247, 36249, 36251, 36253, 36255, 36257, 36259, 36261,
+ 36263, 36265, 36268, 36271, 36274, 36276, 36279, 36281,
+ 36284, 36285, 36286, 36287, 36288, 36289, 36290, 36291,
+ 36292, 36293, 36294, 36295, 36296, 36297, 36298, 36299,
+ 36300, 36301, 36302, 36303, 36304, 36305, 36306, 36307,
+ 36308, 36309, 36310, 36311, 36312, 36313, 36314, 36315,
+ 36316, 36317, 36318, 36319, 36320, 36321, 36322, 36323,
+ 36324, 36325, 36326, 36327, 36328, 36329, 36330, -1,
+ 36331, 36335, 36339, 36343, 36346, 36350, 36353, 36356,
+ 36361, 36365, 36368, 36371, 36374, 36378, 36382, 36385,
+ 36388, 36390, 36393, 36397, 36401, 36403, 36408, 36414,
+ 36419, 36422, 36427, 36432, 36436, 36439, 36442, 36445,
+ 36449, 36454, 36458, 36461, 36464, 36467, 36469, 36471,
+ 36473, 36475, 36478, 36481, 36486, 36489, 36493, 36498,
+ 36501, 36503, 36505, 36510, 36514, 36519, 36522, 36527,
+ 36529, 36532, 36535, 36538, 36541, 36544, 36548, 36551,
+ 36553, 36556, 36559, 36562, 36566, 36569, 36572, 36575,
+ 36580, 36584, 36586, 36591, 36593, 36597, 36601, 36604,
+ 36607, 36610, 36614, 36616, 36619, 36623, 36625, 36630,
+ 36633, 36635, 36637, 36639, 36641, 36643, 36645, 36647,
+ 36649, 36651, 36653, 36656, 36659, 36662, 36665, 36668,
+ 36671, 36674, 36677, 36680, 36683, 36686, 36689, 36692,
+ 36695, 36698, 36701, 36703, 36705, 36708, 36710, 36712,
+ 36714, 36717, 36720, 36722, 36724, 36726, 36728, 36730,
+ 36734, 36736, 36738, 36740, 36742, 36744, 36746, 36748,
+ 36750, 36753, 36757, 36759, 36761, 36763, 36765, 36767,
+ 36769, 36771, 36774, 36777, 36780, 36783, 36785, 36787,
+ 36789, 36791, 36793, 36795, 36797, 36799, 36801, 36803,
+ 36806, 36809, 36811, 36814, 36817, 36820, 36822, 36825,
+ 36828, 36832, 36834, 36837, 36840, 36843, 36846, 36851,
+ 36857, 36859, 36861, 36863, 36865, 36867, 36869, 36871,
+ 36873, 36875, 36877, 36879, 36881, 36883, 36885, 36887,
+ 36889, 36891, 36893, 36897, 36899, 36901, 36903, 36907,
+ 36910, 36912, 36914, 36916, 36918, 36920, 36922, 36924,
+ 36926, 36928, 36930, 36933, 36935, 36937, 36940, 36943,
+ 36945, 36949, 36952, 36954, 36956, 36958, 36960, 36963,
+ 36966, 36968, 36970, 36972, 36974, 36976, 36978, 36980,
+ 36982, 36984, 36987, 36990, 36993, 36996, 36999, 37002,
+ 37005, 37008, 37011, 37014, 37017, 37020, 37023, 37026,
+ 37029, 37032, 37035, 37038, 37041, 37044, 37047, 37050,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 37053, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293,
+ 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
+ 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309,
+ 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317,
+ 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325,
+ 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333,
+ 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341,
+ 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349,
+ 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357,
+ 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365,
+ 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373,
+ 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381,
+ 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389,
+ 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397,
+ 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405,
+ 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413,
+ 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421,
+ 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429,
+ 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437,
+ 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445,
+ 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453,
+ 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461,
+ 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469,
+ 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477,
+ 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485,
+ 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493,
+ 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501,
+ 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509,
+ 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517,
+ 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525,
+ 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533,
+ 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541,
+ 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549,
+ 4550, 4551, 4552, 4553, 4554, 4555, -1, -1,
+ 4556, -1, 4557, -1, -1, 4558, 4559, 4560,
+ 4561, 4562, 4563, 4564, 4565, 4566, 4567, -1,
+ 4568, -1, 4569, -1, -1, 4570, 4571, -1,
+ -1, -1, 4572, 4573, 4574, 4575, -1, -1,
+ 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583,
+ 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591,
+ 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599,
+ 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607,
+ 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615,
+ 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623,
+ 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631,
+ 4632, 4633, 4634, -1, -1, -1, -1, -1,
+ 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642,
+ 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650,
+ 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658,
+ 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666,
+ 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674,
+ 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682,
+ 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690,
+ 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698,
+ 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706,
+ 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714,
+ 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722,
+ 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730,
+ 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738,
+ 4739, 4740, -1, -1, -1, -1, -1, -1,
+ 37509, 37511, 37513, 37515, 37518, 37521, 37523, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 37525, 37527, 37529, 37531, 37533,
+ -1, -1, -1, -1, -1, 4767, -1, 4769,
+ 37539, 37540, 37541, 37542, 37543, 37544, 37545, 37546,
+ 37547, 37548, 4781, 4783, 4785, 4787, 4789, 4791,
+ 4793, 4795, 4797, 4799, 4801, 4803, 4805, -1,
+ 4807, 4809, 4811, 4813, 4815, -1, 4817, -1,
+ 4819, 4821, -1, 4823, 4825, -1, 4827, 4829,
+ 4831, 4833, 4835, 4837, 4839, 4841, 4843, 37613,
+ 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622,
+ 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630,
+ 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638,
+ 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646,
+ 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654,
+ 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662,
+ 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670,
+ 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678,
+ 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686,
+ 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37694,
+ 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702,
+ 37703, 37704, 37705, 37706, 37707, 37708, 37709, 37710,
+ 37711, 37712, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 37713, 37714, 37715, 37716, 37717,
+ 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725,
+ 37726, 37727, 37728, 37729, 37730, 37731, 37732, 37733,
+ 37734, 37735, 37736, 37738, 37740, 37742, 37744, 37746,
+ 37748, 37750, 37752, 37754, 37756, 37758, 37760, 37762,
+ 37764, 37766, 37768, 37770, 37772, 37773, 37774, 37775,
+ 37776, 37778, 37780, 37782, 37784, 37786, 37788, 37790,
+ 37792, 37794, 37796, 37798, 37800, 37802, 37804, 37806,
+ 37808, 37810, 37812, 37814, 37816, 37818, 37820, 37822,
+ 37824, 37826, 37828, 37830, 37832, 37834, 37836, 37838,
+ 37840, 37842, 37844, 37846, 37848, 37850, 37852, 37854,
+ 37856, 37858, 37860, 37862, 37864, 37866, 37868, 37870,
+ 37872, 37874, 37876, 37878, 37880, 37882, 37884, 37886,
+ 37888, 37890, 37892, 37894, 37896, 37898, 37900, 37902,
+ 37904, 37906, 37908, 37910, 37912, 37914, 37916, 37918,
+ 37920, 37922, 37924, 37926, 37928, 37930, 37932, 37934,
+ 37936, 37938, 37940, 37942, 37944, 37946, 37948, 37950,
+ 37952, 37954, 37956, 37958, 37960, 37962, 37964, 37967,
+ 37970, 37973, 37976, 37979, 37982, 37984, 37986, 37988,
+ 37990, 37992, 37994, 37996, 37998, 38000, 38002, 38004,
+ 38006, 38008, 38010, 38012, 38014, 38016, 38018, 38020,
+ 38022, 38024, 38026, 38028, 38030, 38032, 38034, 38036,
+ 38038, 38040, 38042, 38044, 38046, 38048, 38050, 38052,
+ 38054, 38056, 38058, 38060, 38062, 38064, 38066, 38068,
+ 38070, 38072, 38074, 38076, 38078, 38080, 38082, 38084,
+ 38086, 38088, 38090, 38092, 38094, 38096, 38098, 38100,
+ 38102, 38104, 38106, 38108, 38110, 38112, 38114, 38116,
+ 38118, 38120, 38122, 38124, 38126, 38128, 38130, 38132,
+ 38134, 38136, 38138, 38140, 38142, 38144, 38146, 38148,
+ 38150, 38152, 38154, 38156, 38158, 38160, 38162, 38164,
+ 38166, 38168, 38170, 38172, 38174, 38176, 38178, 38180,
+ 38182, 38184, 38186, 38188, 38190, 38192, 38194, 38196,
+ 38198, 38200, 38202, 38204, 38206, 38208, 38210, 38212,
+ 38214, 38216, 38218, 38220, 38222, 38224, 38226, 38228,
+ 38230, 38232, 38234, 38236, 38238, 38240, 38242, 38244,
+ 38246, 38248, 38250, 38252, 38254, 38256, 38258, 38260,
+ 38262, 38264, 38266, 38269, 38272, 38275, 38277, 38279,
+ 38281, 38283, 38285, 38287, 38289, 38291, 38293, 38295,
+ 38297, 38299, 38301, 38303, 38305, 38307, 38309, 38311,
+ 38313, 38315, 38317, 38319, 38321, 38323, 38325, 38327,
+ 38329, 38331, 38333, 38335, 38337, 38339, 38341, 38343,
+ 38345, 38347, 38349, 38351, 38353, 38355, 38357, 38359,
+ 38361, 38363, 38365, 38367, 38369, 38371, 38373, 38375,
+ 38377, 38379, 38381, 38383, 38385, 38387, 38389, 38391,
+ 38393, 38395, 38397, 38399, 38401, 38403, 38405, 38407,
+ 38409, 38411, 38413, 38415, 38417, 38419, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 38421, 38424, 38427, 38430, 38433, 38436, 38439, 38442,
+ 38445, 38448, 38451, 38454, 38457, 38460, 38463, 38466,
+ 38469, 38472, 38475, 38478, 38481, 38484, 38487, 38490,
+ 38493, 38496, 38499, 38502, 38505, 38508, 38511, 38514,
+ 38517, 38520, 38523, 38526, 38529, 38532, 38535, 38538,
+ 38541, 38544, 38547, 38550, 38553, 38556, 38559, 38562,
+ 38565, 38568, 38571, 38574, 38577, 38580, 38583, 38586,
+ 38589, 38592, 38595, 38598, 38601, 38604, 38607, 38610,
+ -1, -1, 38613, 38616, 38619, 38622, 38625, 38628,
+ 38631, 38634, 38637, 38640, 38643, 38646, 38649, 38652,
+ 38655, 38658, 38661, 38664, 38667, 38670, 38673, 38676,
+ 38679, 38682, 38685, 38688, 38691, 38694, 38697, 38700,
+ 38703, 38706, 38709, 38712, 38715, 38718, 38721, 38724,
+ 38727, 38730, 38733, 38736, 38739, 38742, 38745, 38748,
+ 38751, 38754, 38757, 38760, 38763, 38766, 38769, 38772,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 38775, 38778, 38781, 38785, 38789, 38793, 38797, 38801,
+ 38805, 38809, 38812, 38830, 38838, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849,
+ 38850, 38851, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859,
+ 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867,
+ 38868, 38869, 38870, 38871, 38872, -1, -1, 38873,
+ 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881,
+ 38882, 38883, 38884, -1, 38885, 38886, 38887, 38888,
+ 38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896,
+ 38897, 38898, 38899, 38900, 38901, 38902, 38903, -1,
+ 38904, 38905, 38906, 38907, -1, -1, -1, -1,
+ 38908, 38910, 38912, -1, 38914, -1, 38916, 38918,
+ 38920, 38922, 38924, 38926, 38928, 38930, 38932, 38934,
+ 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943,
+ 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951,
+ 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959,
+ 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967,
+ 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975,
+ 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983,
+ 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991,
+ 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999,
+ 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007,
+ 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015,
+ 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023,
+ 39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031,
+ 39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039,
+ 39040, 39041, 39042, 39043, 39044, 39045, 39046, 39047,
+ 39048, 39049, 39050, 39051, 39052, 39053, 39055, 39057,
+ 39059, 39061, 39063, 39065, 39067, -1, -1, -1,
+ -1, 39069, 39070, 39071, 39072, 39073, 39074, 39075,
+ 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083,
+ 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091,
+ 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099,
+ 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107,
+ 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115,
+ 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123,
+ 39124, 39125, 39126, 39127, 39128, 39129, 39130, 39131,
+ 39132, 39133, 39134, 39135, 39136, 39137, 39138, 39139,
+ 39140, 39141, 39142, 39143, 39144, 39145, 39146, 39147,
+ 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155,
+ 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163,
+ 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171,
+ 39172, 39173, 39174, 39175, 39176, 39177, 39178, 39179,
+ 39180, 39181, 39182, 39183, 39184, 39185, 39186, 39187,
+ 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195,
+ 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203,
+ 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211,
+ 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219,
+ 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227,
+ 39228, 39229, 39230, 39231, 39232, 39233, 39234, 39235,
+ 39236, 39237, 39238, 39239, 39240, 39241, 39242, 39243,
+ 39244, 39245, 39246, 39247, 39248, 39249, 39250, 39251,
+ 39252, 39253, 39254, 39255, 39256, 39257, 39258, -1,
+ -1, -1, 39259, 39260, 39261, 39262, 39263, 39264,
+ -1, -1, 39265, 39266, 39267, 39268, 39269, 39270,
+ -1, -1, 39271, 39272, 39273, 39274, 39275, 39276,
+ -1, -1, 39277, 39278, 39279, -1, -1, -1,
+ 39280, 39281, 39282, 39283, 39284, 39285, 39286, -1,
+ 39287, 39288, 39289, 39290, 39291, 39292, 39293, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 6526, 6528,
+ 6530, 6532, 6534, 6536, 6538, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 6540, 6542, 6544, 6546, 6548,
+ 6550, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327,
+ 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335,
+ 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343,
+ 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351,
+ 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359,
+ 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367,
+ 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375,
+ 39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383,
+ 39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391,
+ 39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399,
+ 39400, 39401, 39402, 39403, 39404, -1, 39405, 39406,
+ 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414,
+ 39415, 39416, 39417, 39418, 39419, 39420, 39421, 39422,
+ 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430,
+ 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438,
+ 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446,
+ 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454,
+ 39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462,
+ 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470,
+ 39471, 39472, 39473, 39474, 39475, -1, 39476, 39477,
+ -1, -1, 39478, -1, -1, 39479, 39480, -1,
+ -1, 39481, 39482, 39483, 39484, -1, 39485, 39486,
+ 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494,
+ 39495, 39496, -1, 39497, -1, 39498, 39499, 39500,
+ 39501, 39502, 39503, 39504, -1, 39505, 39506, 39507,
+ 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515,
+ 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523,
+ 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531,
+ 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539,
+ 39540, 39541, 39542, 39543, 39544, 39545, 39546, 39547,
+ 39548, 39549, 39550, 39551, 39552, 39553, 39554, 39555,
+ 39556, 39557, 39558, 39559, 39560, 39561, 39562, 39563,
+ 39564, 39565, 39566, 39567, 39568, 39569, -1, 39570,
+ 39571, 39572, 39573, -1, -1, 39574, 39575, 39576,
+ 39577, 39578, 39579, 39580, 39581, -1, 39582, 39583,
+ 39584, 39585, 39586, 39587, 39588, -1, 39589, 39590,
+ 39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598,
+ 39599, 39600, 39601, 39602, 39603, 39604, 39605, 39606,
+ 39607, 39608, 39609, 39610, 39611, 39612, 39613, 39614,
+ 39615, 39616, -1, 39617, 39618, 39619, 39620, -1,
+ 39621, 39622, 39623, 39624, 39625, -1, 39626, -1,
+ -1, -1, 39627, 39628, 39629, 39630, 39631, 39632,
+ 39633, -1, 39634, 39635, 39636, 39637, 39638, 39639,
+ 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647,
+ 39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655,
+ 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663,
+ 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671,
+ 39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679,
+ 39680, 39681, 39682, 39683, 39684, 39685, 39686, 39687,
+ 39688, 39689, 39690, 39691, 39692, 39693, 39694, 39695,
+ 39696, 39697, 39698, 39699, 39700, 39701, 39702, 39703,
+ 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39711,
+ 39712, 39713, 39714, 39715, 39716, 39717, 39718, 39719,
+ 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39727,
+ 39728, 39729, 39730, 39731, 39732, 39733, 39734, 39735,
+ 39736, 39737, 39738, 39739, 39740, 39741, 39742, 39743,
+ 39744, 39745, 39746, 39747, 39748, 39749, 39750, 39751,
+ 39752, 39753, 39754, 39755, 39756, 39757, 39758, 39759,
+ 39760, 39761, 39762, 39763, 39764, 39765, 39766, 39767,
+ 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775,
+ 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783,
+ 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791,
+ 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799,
+ 39800, 39801, 39802, 39803, 39804, 39805, 39806, 39807,
+ 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815,
+ 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823,
+ 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831,
+ 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839,
+ 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847,
+ 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855,
+ 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863,
+ 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871,
+ 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879,
+ 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887,
+ 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895,
+ 39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903,
+ 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911,
+ 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919,
+ 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927,
+ 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935,
+ 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943,
+ 39944, 39945, 39946, 39947, 39948, 39949, 39950, 39951,
+ 39952, 39953, 39954, 39955, 39956, 39957, 39958, 39959,
+ 39960, 39961, 39962, 39963, 39964, 39965, 39966, 39967,
+ 39968, 39969, 39970, 39971, 39972, 39973, -1, -1,
+ 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981,
+ 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989,
+ 39990, 39991, 39992, 39993, 39994, 39995, 39996, 39997,
+ 39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005,
+ 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013,
+ 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021,
+ 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029,
+ 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037,
+ 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045,
+ 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053,
+ 40054, 40055, 40056, 40057, 40058, 40059, 40060, 40061,
+ 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069,
+ 40070, 40071, 40072, 40073, 40074, 40075, 40076, 40077,
+ 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085,
+ 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093,
+ 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101,
+ 40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109,
+ 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117,
+ 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125,
+ 40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133,
+ 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141,
+ 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149,
+ 40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157,
+ 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165,
+ 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173,
+ 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181,
+ 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189,
+ 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197,
+ 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205,
+ 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213,
+ 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221,
+ 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229,
+ 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237,
+ 40238, 40239, 40240, 40241, 40242, 40243, 40244, 40245,
+ 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253,
+ 40254, 40255, 40256, 40257, 40258, 40259, 40260, 40261,
+ 40262, 40263, 40264, 40265, -1, -1, 40266, 40267,
+ 40268, 40269, 40270, 40271, 40272, 40273, 40274, 40275,
+ 40276, 40277, 40278, 40279, 40280, 40281, 40282, 40283,
+ 40284, 40285, 40286, 40287, 40288, 40289, 40290, 40291,
+ 40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299,
+ 40300, 40301, 40302, 40303, 40304, 40305, 40306, 40307,
+ 40308, 40309, 40310, 40311, 40312, 40313, 40314, 40315,
+ 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555,
+ 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563,
+ 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571,
+ 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579,
+ 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587,
+ 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595,
+ 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603,
+ 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611,
+ 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619,
+ 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627,
+ 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635,
+ 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643,
+ 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651,
+ 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659,
+ 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667,
+ 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675,
+ 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683,
+ 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691,
+ 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699,
+ 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707,
+ 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715,
+ 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723,
+ 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731,
+ 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739,
+ 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747,
+ 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755,
+ 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763,
+ 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771,
+ 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779,
+ 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787,
+ 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795,
+ 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803,
+ 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811,
+ 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819,
+ 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827,
+ 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835,
+ 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843,
+ 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851,
+ 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859,
+ 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867,
+ 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875,
+ 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883,
+ 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891,
+ 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899,
+ 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907,
+ 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915,
+ 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923,
+ 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931,
+ 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939,
+ 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947,
+ 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955,
+ 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963,
+ 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971,
+ 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979,
+ 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987,
+ 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995,
+ 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003,
+ 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011,
+ 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019,
+ 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027,
+ 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035,
+ 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043,
+ 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051,
+ 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059,
+ 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067,
+ 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075,
+ 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083,
+ 8084, 8085, 8086, 8087, 8088, 8089, -1, -1
+ }
+};
diff --git a/lib/uninorm/decomposition.c b/lib/uninorm/decomposition.c
new file mode 100644
index 0000000..af03018
--- /dev/null
+++ b/lib/uninorm/decomposition.c
@@ -0,0 +1,102 @@
+/* Decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "decomposition-table.h"
+
+int
+uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
+{
+ if (uc >= 0xAC00 && uc < 0xD7A4)
+ {
+ /* Hangul syllable. See Unicode standard, chapter 3, section
+ "Hangul Syllable Decomposition", See also the clarification at
+ <http://www.unicode.org/versions/Unicode5.1.0/>, section
+ "Clarification of Hangul Jamo Handling". */
+ unsigned int t;
+
+ uc -= 0xAC00;
+ t = uc % 28;
+
+ *decomp_tag = UC_DECOMP_CANONICAL;
+ if (t == 0)
+ {
+ unsigned int v, l;
+
+ uc = uc / 28;
+ v = uc % 21;
+ l = uc / 21;
+
+ decomposition[0] = 0x1100 + l;
+ decomposition[1] = 0x1161 + v;
+ return 2;
+ }
+ else
+ {
+#if 1 /* Return the pairwise decomposition, not the full decomposition. */
+ decomposition[0] = 0xAC00 + uc - t; /* = 0xAC00 + (l * 21 + v) * 28; */
+ decomposition[1] = 0x11A7 + t;
+ return 2;
+#else
+ unsigned int v, l;
+
+ uc = uc / 28;
+ v = uc % 21;
+ l = uc / 21;
+
+ decomposition[0] = 0x1100 + l;
+ decomposition[1] = 0x1161 + v;
+ decomposition[2] = 0x11A7 + t;
+ return 3;
+#endif
+ }
+ }
+ else if (uc < 0x110000)
+ {
+ unsigned short entry = decomp_index (uc);
+ if (entry != (unsigned short)(-1))
+ {
+ const unsigned char *p;
+ unsigned int element;
+ unsigned int length;
+
+ p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)];
+ element = (p[0] << 16) | (p[1] << 8) | p[2];
+ /* The first element has 5 bits for the decomposition type. */
+ *decomp_tag = (element >> 18) & 0x1f;
+ length = 1;
+ for (;;)
+ {
+ /* Every element has an 18 bits wide Unicode code point. */
+ *decomposition = element & 0x3ffff;
+ /* Bit 23 tells whether there are more elements, */
+ if ((element & (1 << 23)) == 0)
+ break;
+ p += 3;
+ element = (p[0] << 16) | (p[1] << 8) | p[2];
+ decomposition++;
+ length++;
+ }
+ return length;
+ }
+ }
+ return -1;
+}
diff --git a/lib/uninorm/nfc.c b/lib/uninorm/nfc.c
new file mode 100644
index 0000000..c205b16
--- /dev/null
+++ b/lib/uninorm/nfc.c
@@ -0,0 +1,31 @@
+/* Unicode Normalization Form C.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "normalize-internal.h"
+
+const struct unicode_normalization_form uninorm_nfc =
+ {
+ NF_IS_COMPOSING,
+ uc_canonical_decomposition,
+ uc_composition,
+ &uninorm_nfd
+ };
diff --git a/lib/uninorm/nfd.c b/lib/uninorm/nfd.c
new file mode 100644
index 0000000..54c98bc
--- /dev/null
+++ b/lib/uninorm/nfd.c
@@ -0,0 +1,31 @@
+/* Unicode Normalization Form D.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "normalize-internal.h"
+
+const struct unicode_normalization_form uninorm_nfd =
+ {
+ 0,
+ uc_canonical_decomposition,
+ NULL,
+ &uninorm_nfd
+ };
diff --git a/lib/uninorm/nfkc.c b/lib/uninorm/nfkc.c
new file mode 100644
index 0000000..1fb52f1
--- /dev/null
+++ b/lib/uninorm/nfkc.c
@@ -0,0 +1,32 @@
+/* Unicode Normalization Form KC.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+const struct unicode_normalization_form uninorm_nfkc =
+ {
+ NF_IS_COMPAT_DECOMPOSING | NF_IS_COMPOSING,
+ uc_compat_decomposition,
+ uc_composition,
+ &uninorm_nfkd
+ };
diff --git a/lib/uninorm/nfkd.c b/lib/uninorm/nfkd.c
new file mode 100644
index 0000000..871dd64
--- /dev/null
+++ b/lib/uninorm/nfkd.c
@@ -0,0 +1,32 @@
+/* Unicode Normalization Form KD.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+const struct unicode_normalization_form uninorm_nfkd =
+ {
+ NF_IS_COMPAT_DECOMPOSING,
+ uc_compat_decomposition,
+ NULL,
+ &uninorm_nfkd
+ };
diff --git a/lib/uninorm/normalize-internal.h b/lib/uninorm/normalize-internal.h
new file mode 100644
index 0000000..0b346c6
--- /dev/null
+++ b/lib/uninorm/normalize-internal.h
@@ -0,0 +1,37 @@
+/* Normalization of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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 <stddef.h>
+
+#include "unitypes.h"
+
+/* Complete definition of normalization form descriptor. */
+struct unicode_normalization_form
+{
+ /* Bit mask containing meta-information.
+ This must be the first field. */
+ unsigned int description;
+ #define NF_IS_COMPAT_DECOMPOSING (1 << 0)
+ #define NF_IS_COMPOSING (1 << 1)
+ /* Function that decomposes a Unicode character. */
+ int (*decomposer) (ucs4_t uc, ucs4_t *decomposition);
+ /* Function that combines two Unicode characters, a starter and another
+ character. */
+ ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2);
+ /* Decomposing variant. */
+ const struct unicode_normalization_form *decomposing_variant;
+};
diff --git a/lib/uninorm/u-normalize-internal.h b/lib/uninorm/u-normalize-internal.h
new file mode 100644
index 0000000..70c3255
--- /dev/null
+++ b/lib/uninorm/u-normalize-internal.h
@@ -0,0 +1,375 @@
+/* Decomposition and composition of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+UNIT *
+FUNC (uninorm_t nf, const UNIT *s, size_t n,
+ UNIT *resultbuf, size_t *lengthp)
+{
+ int (*decomposer) (ucs4_t uc, ucs4_t *decomposition) = nf->decomposer;
+ ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2) = nf->composer;
+
+ /* The result being accumulated. */
+ UNIT *result;
+ size_t length;
+ size_t allocated;
+ /* The buffer for sorting. */
+ #define SORTBUF_PREALLOCATED 64
+ struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
+ struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */
+ size_t sortbuf_allocated;
+ size_t sortbuf_count;
+
+ /* Initialize the accumulator. */
+ if (resultbuf == NULL)
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ else
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ length = 0;
+
+ /* Initialize the buffer for sorting. */
+ sortbuf = sortbuf_preallocated;
+ sortbuf_allocated = SORTBUF_PREALLOCATED;
+ sortbuf_count = 0;
+
+ {
+ const UNIT *s_end = s + n;
+
+ for (;;)
+ {
+ int count;
+ ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int decomposed_count;
+ int i;
+
+ if (s < s_end)
+ {
+ /* Fetch the next character. */
+ count = U_MBTOUC_UNSAFE (&decomposed[0], s, s_end - s);
+ decomposed_count = 1;
+
+ /* Decompose it, recursively.
+ It would be possible to precompute the recursive decomposition
+ and store it in a table. But this would significantly increase
+ the size of the decomposition tables, because for example for
+ U+1FC1 the recursive canonical decomposition and the recursive
+ compatibility decomposition are different. */
+ {
+ int curr;
+
+ for (curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count;
+
+ curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ int j;
+
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
+ }
+ }
+ else
+ {
+ count = 0;
+ decomposed_count = 0;
+ }
+
+ i = 0;
+ for (;;)
+ {
+ ucs4_t uc;
+ int ccc;
+
+ if (s < s_end)
+ {
+ /* Fetch the next character from the decomposition. */
+ if (i == decomposed_count)
+ break;
+ uc = decomposed[i];
+ ccc = uc_combining_class (uc);
+ }
+ else
+ {
+ /* End of string reached. */
+ uc = 0;
+ ccc = 0;
+ }
+
+ if (ccc == 0)
+ {
+ size_t j;
+
+ /* Apply the canonical ordering algorithm to the accumulated
+ sequence of characters. */
+ if (sortbuf_count > 1)
+ gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count,
+ sortbuf + sortbuf_count);
+
+ if (composer != NULL)
+ {
+ /* Attempt to combine decomposed characters, as specified
+ in the Unicode Standard Annex #15 "Unicode Normalization
+ Forms". We need to check
+ 1. whether the first accumulated character is a
+ "starter" (i.e. has ccc = 0). This is usually the
+ case. But when the string starts with a
+ non-starter, the sortbuf also starts with a
+ non-starter. Btw, this check could also be
+ omitted, because the composition table has only
+ entries (code1, code2) for which code1 is a
+ starter; if the first accumulated character is not
+ a starter, no lookup will succeed.
+ 2. If the sortbuf has more than one character, check
+ for each of these characters that are not "blocked"
+ from the starter (i.e. have a ccc that is higher
+ than the ccc of the previous character) whether it
+ can be combined with the first character.
+ 3. If only one character is left in sortbuf, check
+ whether it can be combined with the next character
+ (also a starter). */
+ if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
+ {
+ for (j = 1; j < sortbuf_count; )
+ {
+ if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
+ {
+ ucs4_t combined =
+ composer (sortbuf[0].code, sortbuf[j].code);
+ if (combined)
+ {
+ size_t k;
+
+ sortbuf[0].code = combined;
+ /* sortbuf[0].ccc = 0, still valid. */
+ for (k = j + 1; k < sortbuf_count; k++)
+ sortbuf[k - 1] = sortbuf[k];
+ sortbuf_count--;
+ continue;
+ }
+ }
+ j++;
+ }
+ if (s < s_end && sortbuf_count == 1)
+ {
+ ucs4_t combined =
+ composer (sortbuf[0].code, uc);
+ if (combined)
+ {
+ uc = combined;
+ ccc = 0;
+ /* uc could be further combined with subsequent
+ characters. So don't put it into sortbuf[0] in
+ this round, only in the next round. */
+ sortbuf_count = 0;
+ }
+ }
+ }
+ }
+
+ for (j = 0; j < sortbuf_count; j++)
+ {
+ ucs4_t muc = sortbuf[j].code;
+
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret =
+ U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
+ {
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result =
+ (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result =
+ (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
+ {
+ int ret =
+ U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
+ }
+ }
+ }
+ done_appending: ;
+ }
+
+ /* sortbuf is now empty. */
+ sortbuf_count = 0;
+ }
+
+ if (!(s < s_end))
+ /* End of string reached. */
+ break;
+
+ /* Append (uc, ccc) to sortbuf. */
+ if (sortbuf_count == sortbuf_allocated)
+ {
+ struct ucs4_with_ccc *new_sortbuf;
+
+ sortbuf_allocated = 2 * sortbuf_allocated;
+ if (sortbuf_allocated < sortbuf_count) /* integer overflow? */
+ abort ();
+ new_sortbuf =
+ (struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc));
+ memcpy (new_sortbuf, sortbuf,
+ sortbuf_count * sizeof (struct ucs4_with_ccc));
+ if (sortbuf != sortbuf_preallocated)
+ free (sortbuf);
+ sortbuf = new_sortbuf;
+ }
+ sortbuf[sortbuf_count].code = uc;
+ sortbuf[sortbuf_count].ccc = ccc;
+ sortbuf_count++;
+
+ i++;
+ }
+
+ if (!(s < s_end))
+ /* End of string reached. */
+ break;
+
+ s += count;
+ }
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ UNIT *memory;
+
+ memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ if (sortbuf_count > 0)
+ abort ();
+ if (sortbuf != sortbuf_preallocated)
+ free (sortbuf);
+
+ *lengthp = length;
+ return result;
+
+ fail:
+ {
+ int saved_errno = errno;
+ if (sortbuf != sortbuf_preallocated)
+ free (sortbuf);
+ if (result != resultbuf)
+ free (result);
+ errno = saved_errno;
+ }
+ return NULL;
+}
diff --git a/lib/uninorm/u-normcmp.h b/lib/uninorm/u-normcmp.h
new file mode 100644
index 0000000..6616440
--- /dev/null
+++ b/lib/uninorm/u-normcmp.h
@@ -0,0 +1,64 @@
+/* Normalization insensitive comparison of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
+ uninorm_t nf, int *resultp)
+{
+ UNIT buf1[2048 / sizeof (UNIT)];
+ UNIT buf2[2048 / sizeof (UNIT)];
+ UNIT *norms1;
+ size_t norms1_length;
+ UNIT *norms2;
+ size_t norms2_length;
+ int cmp;
+
+ /* Normalize S1. */
+ norms1_length = sizeof (buf1) / sizeof (UNIT);
+ norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
+ if (norms1 == NULL)
+ /* errno is set here. */
+ return -1;
+
+ /* Normalize S2. */
+ norms2_length = sizeof (buf2) / sizeof (UNIT);
+ norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
+ if (norms2 == NULL)
+ {
+ if (norms1 != buf1)
+ {
+ int saved_errno = errno;
+ free (norms1);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ /* Compare the normalized strings. */
+ cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ if (cmp > 0)
+ cmp = 1;
+ else if (cmp < 0)
+ cmp = -1;
+
+ if (norms2 != buf2)
+ free (norms2);
+ if (norms1 != buf1)
+ free (norms1);
+ *resultp = cmp;
+ return 0;
+}
diff --git a/lib/uninorm/u-normcoll.h b/lib/uninorm/u-normcoll.h
new file mode 100644
index 0000000..e30880b
--- /dev/null
+++ b/lib/uninorm/u-normcoll.h
@@ -0,0 +1,65 @@
+/* Locale dependent, normalization insensitive comparison of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
+ uninorm_t nf, int *resultp)
+{
+ char buf1[2048];
+ char buf2[2048];
+ char *transformed1;
+ size_t transformed1_length;
+ char *transformed2;
+ size_t transformed2_length;
+ int cmp;
+
+ /* Normalize and transform S1. */
+ transformed1_length = sizeof (buf1);
+ transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length);
+ if (transformed1 == NULL)
+ /* errno is set here. */
+ return -1;
+
+ /* Normalize and transform S2. */
+ transformed2_length = sizeof (buf2);
+ transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length);
+ if (transformed2 == NULL)
+ {
+ if (transformed1 != buf1)
+ {
+ int saved_errno = errno;
+ free (transformed1);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ /* Compare the transformed strings. */
+ cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
+ if (cmp < 0)
+ cmp = -1;
+ else if (cmp > 0)
+ cmp = 1;
+
+ if (transformed2 != buf2)
+ free (transformed2);
+ if (transformed1 != buf1)
+ free (transformed1);
+ *resultp = cmp;
+ return 0;
+}
diff --git a/lib/uninorm/u-normxfrm.h b/lib/uninorm/u-normxfrm.h
new file mode 100644
index 0000000..6ed1e3c
--- /dev/null
+++ b/lib/uninorm/u-normxfrm.h
@@ -0,0 +1,87 @@
+/* Locale dependent transformation for comparison of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+char *
+FUNC (const UNIT *s, size_t n, uninorm_t nf,
+ char *resultbuf, size_t *lengthp)
+{
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ UNIT *norms;
+ size_t norms_length;
+ char convsbuf[2048];
+ char *convs;
+ size_t convs_length;
+ char *result;
+
+ /* Normalize the Unicode string. */
+ norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length);
+ if (norms == NULL)
+ /* errno is set here. */
+ return NULL;
+
+ /* Convert it to locale encoding. */
+ convs_length = sizeof (convsbuf) - 1;
+ convs = U_CONV_TO_ENCODING (locale_charset (),
+ iconveh_error,
+ norms, norms_length,
+ NULL,
+ convsbuf, &convs_length);
+ if (convs == NULL)
+ {
+ if (norms != normsbuf)
+ {
+ int saved_errno = errno;
+ free (norms);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (norms != normsbuf)
+ free (norms);
+
+ /* Ensure one more byte is available. */
+ if (convs != convsbuf)
+ {
+ char *memory = (char *) realloc (convs, convs_length + 1);
+ if (memory == NULL)
+ {
+ free (convs);
+ errno = ENOMEM;
+ return NULL;
+ }
+ convs = memory;
+ }
+
+ /* Apply locale dependent transformations for comparison. */
+ result = memxfrm (convs, convs_length, resultbuf, lengthp);
+ if (result == NULL)
+ {
+ if (convs != convsbuf)
+ {
+ int saved_errno = errno;
+ free (convs);
+ errno = saved_errno;
+ }
+ return NULL;
+ }
+
+ if (convs != convsbuf)
+ free (convs);
+ return result;
+}
diff --git a/lib/uninorm/u16-normalize.c b/lib/uninorm/u16-normalize.c
new file mode 100644
index 0000000..86334d5
--- /dev/null
+++ b/lib/uninorm/u16-normalize.c
@@ -0,0 +1,38 @@
+/* Normalization of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+#define FUNC u16_normalize
+#define UNIT uint16_t
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#define U_UCTOMB u16_uctomb
+#define U_CPY u16_cpy
+#include "u-normalize-internal.h"
diff --git a/lib/uninorm/u16-normcmp.c b/lib/uninorm/u16-normcmp.c
new file mode 100644
index 0000000..c66cc1b
--- /dev/null
+++ b/lib/uninorm/u16-normcmp.c
@@ -0,0 +1,33 @@
+/* Normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "unistr.h"
+
+#define FUNC u16_normcmp
+#define UNIT uint16_t
+#define U_NORMALIZE u16_normalize
+#define U_CMP2 u16_cmp2
+#include "u-normcmp.h"
diff --git a/lib/uninorm/u16-normcoll.c b/lib/uninorm/u16-normcoll.c
new file mode 100644
index 0000000..a4f76c1
--- /dev/null
+++ b/lib/uninorm/u16-normcoll.c
@@ -0,0 +1,31 @@
+/* Locale dependent, normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u16_normcoll
+#define UNIT uint16_t
+#define U_NORMXFRM u16_normxfrm
+#include "u-normcoll.h"
diff --git a/lib/uninorm/u16-normxfrm.c b/lib/uninorm/u16-normxfrm.c
new file mode 100644
index 0000000..cc22d8e
--- /dev/null
+++ b/lib/uninorm/u16-normxfrm.c
@@ -0,0 +1,34 @@
+/* Locale dependent transformation for comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u16_normxfrm
+#define UNIT uint16_t
+#define U_NORMALIZE u16_normalize
+#define U_CONV_TO_ENCODING u16_conv_to_encoding
+#include "u-normxfrm.h"
diff --git a/lib/uninorm/u32-normalize.c b/lib/uninorm/u32-normalize.c
new file mode 100644
index 0000000..6549423
--- /dev/null
+++ b/lib/uninorm/u32-normalize.c
@@ -0,0 +1,38 @@
+/* Normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+#define FUNC u32_normalize
+#define UNIT uint32_t
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#define U_UCTOMB u32_uctomb
+#define U_CPY u32_cpy
+#include "u-normalize-internal.h"
diff --git a/lib/uninorm/u32-normcmp.c b/lib/uninorm/u32-normcmp.c
new file mode 100644
index 0000000..58f890d
--- /dev/null
+++ b/lib/uninorm/u32-normcmp.c
@@ -0,0 +1,33 @@
+/* Normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "unistr.h"
+
+#define FUNC u32_normcmp
+#define UNIT uint32_t
+#define U_NORMALIZE u32_normalize
+#define U_CMP2 u32_cmp2
+#include "u-normcmp.h"
diff --git a/lib/uninorm/u32-normcoll.c b/lib/uninorm/u32-normcoll.c
new file mode 100644
index 0000000..0343f76
--- /dev/null
+++ b/lib/uninorm/u32-normcoll.c
@@ -0,0 +1,31 @@
+/* Locale dependent, normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u32_normcoll
+#define UNIT uint32_t
+#define U_NORMXFRM u32_normxfrm
+#include "u-normcoll.h"
diff --git a/lib/uninorm/u32-normxfrm.c b/lib/uninorm/u32-normxfrm.c
new file mode 100644
index 0000000..4b4dbc0
--- /dev/null
+++ b/lib/uninorm/u32-normxfrm.c
@@ -0,0 +1,34 @@
+/* Locale dependent transformation for comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u32_normxfrm
+#define UNIT uint32_t
+#define U_NORMALIZE u32_normalize
+#define U_CONV_TO_ENCODING u32_conv_to_encoding
+#include "u-normxfrm.h"
diff --git a/lib/uninorm/u8-normalize.c b/lib/uninorm/u8-normalize.c
new file mode 100644
index 0000000..7e003ec
--- /dev/null
+++ b/lib/uninorm/u8-normalize.c
@@ -0,0 +1,38 @@
+/* Normalization of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "unictype.h"
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+#define FUNC u8_normalize
+#define UNIT uint8_t
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#define U_UCTOMB u8_uctomb
+#define U_CPY u8_cpy
+#include "u-normalize-internal.h"
diff --git a/lib/uninorm/u8-normcmp.c b/lib/uninorm/u8-normcmp.c
new file mode 100644
index 0000000..6994f6c
--- /dev/null
+++ b/lib/uninorm/u8-normcmp.c
@@ -0,0 +1,33 @@
+/* Normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "minmax.h"
+#include "unistr.h"
+
+#define FUNC u8_normcmp
+#define UNIT uint8_t
+#define U_NORMALIZE u8_normalize
+#define U_CMP2 u8_cmp2
+#include "u-normcmp.h"
diff --git a/lib/uninorm/u8-normcoll.c b/lib/uninorm/u8-normcoll.c
new file mode 100644
index 0000000..4d163d4
--- /dev/null
+++ b/lib/uninorm/u8-normcoll.c
@@ -0,0 +1,31 @@
+/* Locale dependent, normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "memcmp2.h"
+
+#define FUNC u8_normcoll
+#define UNIT uint8_t
+#define U_NORMXFRM u8_normxfrm
+#include "u-normcoll.h"
diff --git a/lib/uninorm/u8-normxfrm.c b/lib/uninorm/u8-normxfrm.c
new file mode 100644
index 0000000..31da05d
--- /dev/null
+++ b/lib/uninorm/u8-normxfrm.c
@@ -0,0 +1,34 @@
+/* Locale dependent transformation for comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "localcharset.h"
+#include "uniconv.h"
+#include "memxfrm.h"
+
+#define FUNC u8_normxfrm
+#define UNIT uint8_t
+#define U_NORMALIZE u8_normalize
+#define U_CONV_TO_ENCODING u8_conv_to_encoding
+#include "u-normxfrm.h"
diff --git a/lib/uninorm/uninorm-filter.c b/lib/uninorm/uninorm-filter.c
new file mode 100644
index 0000000..1d03cfa
--- /dev/null
+++ b/lib/uninorm/uninorm-filter.c
@@ -0,0 +1,367 @@
+/* Stream-based normalization of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uninorm.h"
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unictype.h"
+#include "normalize-internal.h"
+#include "decompose-internal.h"
+
+
+struct uninorm_filter
+{
+ /* Characteristics of the normalization form. */
+ int (*decomposer) (ucs4_t uc, ucs4_t *decomposition);
+ ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2);
+
+ /* The encapsulated stream. */
+ int (*stream_func) (void *stream_data, ucs4_t uc);
+ void *stream_data;
+
+ /* The buffer for sorting. */
+ #define SORTBUF_PREALLOCATED 64
+ struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
+ struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */
+ size_t sortbuf_allocated;
+ size_t sortbuf_count;
+};
+
+struct uninorm_filter *
+uninorm_filter_create (uninorm_t nf,
+ int (*stream_func) (void *stream_data, ucs4_t uc),
+ void *stream_data)
+{
+ struct uninorm_filter *filter =
+ (struct uninorm_filter *) malloc (sizeof (struct uninorm_filter));
+
+ if (filter == NULL)
+ /* errno is ENOMEM. */
+ return NULL;
+
+ filter->decomposer = nf->decomposer;
+ filter->composer = nf->composer;
+ filter->stream_func = stream_func;
+ filter->stream_data = stream_data;
+ filter->sortbuf = filter->sortbuf_preallocated;
+ filter->sortbuf_allocated = SORTBUF_PREALLOCATED;
+ filter->sortbuf_count = 0;
+
+ return filter;
+}
+
+int
+uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
+{
+ ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int decomposed_count;
+
+ /* Accept the next character. */
+ decomposed[0] = uc_arg;
+ decomposed_count = 1;
+
+ /* Decompose it, recursively.
+ It would be possible to precompute the recursive decomposition
+ and store it in a table. But this would significantly increase
+ the size of the decomposition tables, because for example for
+ U+1FC1 the recursive canonical decomposition and the recursive
+ compatibility decomposition are different. */
+ {
+ int curr;
+
+ for (curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count;
+
+ curr_decomposed_count =
+ filter->decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ int j;
+
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
+ }
+
+ {
+ /* Cache sortbuf and sortbuf_count in local register variables. */
+ struct ucs4_with_ccc * const sortbuf = filter->sortbuf;
+ size_t sortbuf_count = filter->sortbuf_count;
+ int i;
+
+ for (i = 0; i < decomposed_count; i++)
+ {
+ /* Fetch the next character from the decomposition. */
+ ucs4_t uc = decomposed[i];
+ int ccc = uc_combining_class (uc);
+
+ if (ccc == 0)
+ {
+ size_t j;
+
+ /* Apply the canonical ordering algorithm to the accumulated
+ sequence of characters. */
+ if (sortbuf_count > 1)
+ gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count,
+ sortbuf + sortbuf_count);
+
+ if (filter->composer != NULL)
+ {
+ /* Attempt to combine decomposed characters, as specified
+ in the Unicode Standard Annex #15 "Unicode Normalization
+ Forms". We need to check
+ 1. whether the first accumulated character is a
+ "starter" (i.e. has ccc = 0). This is usually the
+ case. But when the string starts with a
+ non-starter, the sortbuf also starts with a
+ non-starter. Btw, this check could also be
+ omitted, because the composition table has only
+ entries (code1, code2) for which code1 is a
+ starter; if the first accumulated character is not
+ a starter, no lookup will succeed.
+ 2. If the sortbuf has more than one character, check
+ for each of these characters that are not "blocked"
+ from the starter (i.e. have a ccc that is higher
+ than the ccc of the previous character) whether it
+ can be combined with the first character.
+ 3. If only one character is left in sortbuf, check
+ whether it can be combined with the next character
+ (also a starter). */
+ if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
+ {
+ for (j = 1; j < sortbuf_count; )
+ {
+ if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
+ {
+ ucs4_t combined =
+ filter->composer (sortbuf[0].code, sortbuf[j].code);
+ if (combined)
+ {
+ size_t k;
+
+ sortbuf[0].code = combined;
+ /* sortbuf[0].ccc = 0, still valid. */
+ for (k = j + 1; k < sortbuf_count; k++)
+ sortbuf[k - 1] = sortbuf[k];
+ sortbuf_count--;
+ continue;
+ }
+ }
+ j++;
+ }
+ if (sortbuf_count == 1)
+ {
+ ucs4_t combined =
+ filter->composer (sortbuf[0].code, uc);
+ if (combined)
+ {
+ uc = combined;
+ ccc = 0;
+ /* uc could be further combined with subsequent
+ characters. So don't put it into sortbuf[0] in
+ this round, only in the next round. */
+ sortbuf_count = 0;
+ }
+ }
+ }
+ }
+
+ for (j = 0; j < sortbuf_count; j++)
+ {
+ ucs4_t muc = sortbuf[j].code;
+
+ /* Output muc to the encapsulated stream. */
+ int ret = filter->stream_func (filter->stream_data, muc);
+ if (ret < 0)
+ {
+ /* errno is set here. */
+ filter->sortbuf_count = 0;
+ return -1;
+ }
+ }
+
+ /* sortbuf is now empty. */
+ sortbuf_count = 0;
+ }
+
+ /* Append (uc, ccc) to sortbuf. */
+ if (sortbuf_count == filter->sortbuf_allocated)
+ {
+ struct ucs4_with_ccc *new_sortbuf;
+
+ filter->sortbuf_allocated = 2 * filter->sortbuf_allocated;
+ if (filter->sortbuf_allocated < sortbuf_count) /* integer overflow? */
+ abort ();
+ new_sortbuf =
+ (struct ucs4_with_ccc *)
+ malloc (2 * filter->sortbuf_allocated * sizeof (struct ucs4_with_ccc));
+ memcpy (new_sortbuf, filter->sortbuf,
+ sortbuf_count * sizeof (struct ucs4_with_ccc));
+ if (filter->sortbuf != filter->sortbuf_preallocated)
+ free (filter->sortbuf);
+ filter->sortbuf = new_sortbuf;
+ }
+ filter->sortbuf[sortbuf_count].code = uc;
+ filter->sortbuf[sortbuf_count].ccc = ccc;
+ sortbuf_count++;
+ }
+
+ filter->sortbuf_count = sortbuf_count;
+ }
+
+ return 0;
+}
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+ stream.
+ Return 0 if successful, or -1 with errno set upon failure.
+ Note! If after calling this function, additional characters are written
+ into the filter, the resulting character sequence in the encapsulated stream
+ will not necessarily be normalized. */
+int
+uninorm_filter_flush (struct uninorm_filter *filter)
+{
+ /* Cache sortbuf and sortbuf_count in local register variables. */
+ struct ucs4_with_ccc * const sortbuf = filter->sortbuf;
+ size_t sortbuf_count = filter->sortbuf_count;
+ size_t j;
+
+ /* Apply the canonical ordering algorithm to the accumulated
+ sequence of characters. */
+ if (sortbuf_count > 1)
+ gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count,
+ sortbuf + sortbuf_count);
+
+ if (filter->composer != NULL)
+ {
+ /* Attempt to combine decomposed characters, as specified
+ in the Unicode Standard Annex #15 "Unicode Normalization
+ Forms". We need to check
+ 1. whether the first accumulated character is a
+ "starter" (i.e. has ccc = 0). This is usually the
+ case. But when the string starts with a
+ non-starter, the sortbuf also starts with a
+ non-starter. Btw, this check could also be
+ omitted, because the composition table has only
+ entries (code1, code2) for which code1 is a
+ starter; if the first accumulated character is not
+ a starter, no lookup will succeed.
+ 2. If the sortbuf has more than one character, check
+ for each of these characters that are not "blocked"
+ from the starter (i.e. have a ccc that is higher
+ than the ccc of the previous character) whether it
+ can be combined with the first character.
+ 3. If only one character is left in sortbuf, check
+ whether it can be combined with the next character
+ (also a starter). */
+ if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
+ {
+ for (j = 1; j < sortbuf_count; )
+ {
+ if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
+ {
+ ucs4_t combined =
+ filter->composer (sortbuf[0].code, sortbuf[j].code);
+ if (combined)
+ {
+ size_t k;
+
+ sortbuf[0].code = combined;
+ /* sortbuf[0].ccc = 0, still valid. */
+ for (k = j + 1; k < sortbuf_count; k++)
+ sortbuf[k - 1] = sortbuf[k];
+ sortbuf_count--;
+ continue;
+ }
+ }
+ j++;
+ }
+ }
+ }
+
+ for (j = 0; j < sortbuf_count; j++)
+ {
+ ucs4_t muc = sortbuf[j].code;
+
+ /* Output muc to the encapsulated stream. */
+ int ret = filter->stream_func (filter->stream_data, muc);
+ if (ret < 0)
+ {
+ /* errno is set here. */
+ filter->sortbuf_count = 0;
+ return -1;
+ }
+ }
+
+ /* sortbuf is now empty. */
+ filter->sortbuf_count = 0;
+
+ return 0;
+}
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+ stream, then close and free the filter.
+ Return 0 if successful, or -1 with errno set upon failure. */
+int
+uninorm_filter_free (struct uninorm_filter *filter)
+{
+ int ret = uninorm_filter_flush (filter);
+
+ if (ret < 0)
+ /* errno is set here. */
+ return -1;
+
+ if (filter->sortbuf_count > 0)
+ abort ();
+ if (filter->sortbuf != filter->sortbuf_preallocated)
+ free (filter->sortbuf);
+ free (filter);
+
+ return 0;
+}
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
new file mode 100644
index 0000000..2e42c0b
--- /dev/null
+++ b/lib/unistd.in.h
@@ -0,0 +1,578 @@
+/* Substitute for and wrapper around <unistd.h>.
+ Copyright (C) 2003-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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_UNISTD_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_UNISTD_H@
+# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+#endif
+
+#ifndef _GL_UNISTD_H
+#define _GL_UNISTD_H
+
+/* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */
+#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
+# include <stdio.h>
+#endif
+
+/* mingw fails to declare _exit in <unistd.h>. */
+/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+#include <stdlib.h>
+
+#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
+/* Get ssize_t. */
+# include <sys/types.h>
+#endif
+
+#if @GNULIB_GETHOSTNAME@
+/* Get all possible declarations of gethostname(). */
+# if @UNISTD_H_HAVE_WINSOCK2_H@
+# include <winsock2.h>
+# if !defined _GL_SYS_SOCKET_H
+# undef socket
+# define socket socket_used_without_including_sys_socket_h
+# undef connect
+# define connect connect_used_without_including_sys_socket_h
+# undef accept
+# define accept accept_used_without_including_sys_socket_h
+# undef bind
+# define bind bind_used_without_including_sys_socket_h
+# undef getpeername
+# define getpeername getpeername_used_without_including_sys_socket_h
+# undef getsockname
+# define getsockname getsockname_used_without_including_sys_socket_h
+# undef getsockopt
+# define getsockopt getsockopt_used_without_including_sys_socket_h
+# undef listen
+# define listen listen_used_without_including_sys_socket_h
+# undef recv
+# define recv recv_used_without_including_sys_socket_h
+# undef send
+# define send send_used_without_including_sys_socket_h
+# undef recvfrom
+# define recvfrom recvfrom_used_without_including_sys_socket_h
+# undef sendto
+# define sendto sendto_used_without_including_sys_socket_h
+# undef setsockopt
+# define setsockopt setsockopt_used_without_including_sys_socket_h
+# undef shutdown
+# define shutdown shutdown_used_without_including_sys_socket_h
+# endif
+# if !defined _GL_SYS_SELECT_H
+# undef select
+# define select select_used_without_including_sys_select_h
+# endif
+# endif
+#endif
+
+/* The definition of GL_LINK_WARNING is copied here. */
+
+
+/* OS/2 EMX lacks these macros. */
+#ifndef STDIN_FILENO
+# define STDIN_FILENO 0
+#endif
+#ifndef STDOUT_FILENO
+# define STDOUT_FILENO 1
+#endif
+#ifndef STDERR_FILENO
+# define STDERR_FILENO 2
+#endif
+
+/* Declare overridden functions. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_CHOWN@
+# if @REPLACE_CHOWN@
+# ifndef REPLACE_CHOWN
+# define REPLACE_CHOWN 1
+# endif
+# if REPLACE_CHOWN
+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+ to GID (if GID is not -1). Follow symbolic links.
+ Return 0 if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/chown.html>. */
+# define chown rpl_chown
+extern int chown (const char *file, uid_t uid, gid_t gid);
+# endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef chown
+# define chown(f,u,g) \
+ (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \
+ "doesn't treat a uid or gid of -1 on some systems - " \
+ "use gnulib module chown for portability"), \
+ chown (f, u, g))
+#endif
+
+
+#if @GNULIB_CLOSE@
+# if @REPLACE_CLOSE@
+/* Automatically included by modules that need a replacement for close. */
+# undef close
+# define close rpl_close
+extern int close (int);
+# endif
+#elif @UNISTD_H_HAVE_WINSOCK2_H@
+# undef close
+# define close close_used_without_requesting_gnulib_module_close
+#elif defined GNULIB_POSIXCHECK
+# undef close
+# define close(f) \
+ (GL_LINK_WARNING ("close does not portably work on sockets - " \
+ "use gnulib module close for portability"), \
+ close (f))
+#endif
+
+
+#if @GNULIB_DUP2@
+# if !@HAVE_DUP2@
+/* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if
+ NEWFD = OLDFD, otherwise close NEWFD first if it is open.
+ Return 0 if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/dup2.html>. */
+extern int dup2 (int oldfd, int newfd);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef dup2
+# define dup2(o,n) \
+ (GL_LINK_WARNING ("dup2 is unportable - " \
+ "use gnulib module dup2 for portability"), \
+ dup2 (o, n))
+#endif
+
+
+#if @GNULIB_ENVIRON@
+# if !@HAVE_DECL_ENVIRON@
+/* Set of environment variables and values. An array of strings of the form
+ "VARIABLE=VALUE", terminated with a NULL. */
+# if defined __APPLE__ && defined __MACH__
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron ())
+# else
+extern char **environ;
+# endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef environ
+# define environ \
+ (GL_LINK_WARNING ("environ is unportable - " \
+ "use gnulib module environ for portability"), \
+ environ)
+#endif
+
+
+#if @GNULIB_EUIDACCESS@
+# if !@HAVE_EUIDACCESS@
+/* Like access(), except that is uses the effective user id and group id of
+ the current process. */
+extern int euidaccess (const char *filename, int mode);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef euidaccess
+# define euidaccess(f,m) \
+ (GL_LINK_WARNING ("euidaccess is unportable - " \
+ "use gnulib module euidaccess for portability"), \
+ euidaccess (f, m))
+#endif
+
+
+#if @GNULIB_FCHDIR@
+# if @REPLACE_FCHDIR@
+
+/* Change the process' current working directory to the directory on which
+ the given file descriptor is open.
+ Return 0 if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/fchdir.html>. */
+extern int fchdir (int /*fd*/);
+
+# define dup rpl_dup
+extern int dup (int);
+# define dup2 rpl_dup2
+extern int dup2 (int, int);
+
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fchdir
+# define fchdir(f) \
+ (GL_LINK_WARNING ("fchdir is unportable - " \
+ "use gnulib module fchdir for portability"), \
+ fchdir (f))
+#endif
+
+
+#if @GNULIB_FSYNC@
+/* Synchronize changes to a file.
+ Return 0 if successful, otherwise -1 and errno set.
+ See POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/fsync.html>. */
+# if !@HAVE_FSYNC@
+extern int fsync (int fd);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fsync
+# define fsync(fd) \
+ (GL_LINK_WARNING ("fsync is unportable - " \
+ "use gnulib module fsync for portability"), \
+ fsync (fd))
+#endif
+
+
+#if @GNULIB_FTRUNCATE@
+# if !@HAVE_FTRUNCATE@
+/* Change the size of the file to which FD is opened to become equal to LENGTH.
+ Return 0 if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/ftruncate.html>. */
+extern int ftruncate (int fd, off_t length);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ftruncate
+# define ftruncate(f,l) \
+ (GL_LINK_WARNING ("ftruncate is unportable - " \
+ "use gnulib module ftruncate for portability"), \
+ ftruncate (f, l))
+#endif
+
+
+#if @GNULIB_GETCWD@
+/* Include the headers that might declare getcwd so that they will not
+ cause confusion if included after this file. */
+# include <stdlib.h>
+# if @REPLACE_GETCWD@
+/* Get the name of the current working directory, and put it in SIZE bytes
+ of BUF.
+ Return BUF if successful, or NULL if the directory couldn't be determined
+ or SIZE was too small.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/getcwd.html>.
+ Additionally, the gnulib module 'getcwd' guarantees the following GNU
+ extension: If BUF is NULL, an array is allocated with 'malloc'; the array
+ is SIZE bytes long, unless SIZE == 0, in which case it is as big as
+ necessary. */
+# define getcwd rpl_getcwd
+extern char * getcwd (char *buf, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getcwd
+# define getcwd(b,s) \
+ (GL_LINK_WARNING ("getcwd is unportable - " \
+ "use gnulib module getcwd for portability"), \
+ getcwd (b, s))
+#endif
+
+
+#if @GNULIB_GETDOMAINNAME@
+/* Return the NIS domain name of the machine.
+ WARNING! The NIS domain name is unrelated to the fully qualified host name
+ of the machine. It is also unrelated to email addresses.
+ WARNING! The NIS domain name is usually the empty string or "(none)" when
+ not using NIS.
+
+ Put up to LEN bytes of the NIS domain name into NAME.
+ Null terminate it if the name is shorter than LEN.
+ If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
+ Return 0 if successful, otherwise set errno and return -1. */
+# if !@HAVE_GETDOMAINNAME@
+extern int getdomainname(char *name, size_t len);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getdomainname
+# define getdomainname(n,l) \
+ (GL_LINK_WARNING ("getdomainname is unportable - " \
+ "use gnulib module getdomainname for portability"), \
+ getdomainname (n, l))
+#endif
+
+
+#if @GNULIB_GETDTABLESIZE@
+# if !@HAVE_GETDTABLESIZE@
+/* Return the maximum number of file descriptors in the current process. */
+extern int getdtablesize (void);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getdtablesize
+# define getdtablesize() \
+ (GL_LINK_WARNING ("getdtablesize is unportable - " \
+ "use gnulib module getdtablesize for portability"), \
+ getdtablesize ())
+#endif
+
+
+#if @GNULIB_GETHOSTNAME@
+/* Return the standard host name of the machine.
+ WARNING! The host name may or may not be fully qualified.
+
+ Put up to LEN bytes of the host name into NAME.
+ Null terminate it if the name is shorter than LEN.
+ If the host name is longer than LEN, set errno = EINVAL and return -1.
+ Return 0 if successful, otherwise set errno and return -1. */
+# if @UNISTD_H_HAVE_WINSOCK2_H@
+# undef gethostname
+# define gethostname rpl_gethostname
+# endif
+# if @UNISTD_H_HAVE_WINSOCK2_H@ || !@HAVE_GETHOSTNAME@
+extern int gethostname(char *name, size_t len);
+# endif
+#elif @UNISTD_H_HAVE_WINSOCK2_H@
+# undef gethostname
+# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
+#elif defined GNULIB_POSIXCHECK
+# undef gethostname
+# define gethostname(n,l) \
+ (GL_LINK_WARNING ("gethostname is unportable - " \
+ "use gnulib module gethostname for portability"), \
+ gethostname (n, l))
+#endif
+
+
+#if @GNULIB_GETLOGIN_R@
+/* Copies the user's login name to NAME.
+ The array pointed to by NAME has room for SIZE bytes.
+
+ Returns 0 if successful. Upon error, an error number is returned, or -1 in
+ the case that the login name cannot be found but no specific error is
+ provided (this case is hopefully rare but is left open by the POSIX spec).
+
+ See <http://www.opengroup.org/susv3xsh/getlogin.html>.
+ */
+# if !@HAVE_DECL_GETLOGIN_R@
+# include <stddef.h>
+extern int getlogin_r (char *name, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getlogin_r
+# define getlogin_r(n,s) \
+ (GL_LINK_WARNING ("getlogin_r is unportable - " \
+ "use gnulib module getlogin_r for portability"), \
+ getlogin_r (n, s))
+#endif
+
+
+#if @GNULIB_GETPAGESIZE@
+# if @REPLACE_GETPAGESIZE@
+# define getpagesize rpl_getpagesize
+extern int getpagesize (void);
+# elif !@HAVE_GETPAGESIZE@
+/* This is for POSIX systems. */
+# if !defined getpagesize && defined _SC_PAGESIZE
+# if ! (defined __VMS && __VMS_VER < 70000000)
+# define getpagesize() sysconf (_SC_PAGESIZE)
+# endif
+# endif
+/* This is for older VMS. */
+# if !defined getpagesize && defined __VMS
+# ifdef __ALPHA
+# define getpagesize() 8192
+# else
+# define getpagesize() 512
+# endif
+# endif
+/* This is for BeOS. */
+# if !defined getpagesize && @HAVE_OS_H@
+# include <OS.h>
+# if defined B_PAGE_SIZE
+# define getpagesize() B_PAGE_SIZE
+# endif
+# endif
+/* This is for AmigaOS4.0. */
+# if !defined getpagesize && defined __amigaos4__
+# define getpagesize() 2048
+# endif
+/* This is for older Unix systems. */
+# if !defined getpagesize && @HAVE_SYS_PARAM_H@
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else
+# ifdef NBPG
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif
+# define getpagesize() (NBPG * CLSIZE)
+# else
+# ifdef NBPC
+# define getpagesize() NBPC
+# endif
+# endif
+# endif
+# endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getpagesize
+# define getpagesize() \
+ (GL_LINK_WARNING ("getpagesize is unportable - " \
+ "use gnulib module getpagesize for portability"), \
+ getpagesize ())
+#endif
+
+
+#if @GNULIB_GETUSERSHELL@
+# if !@HAVE_GETUSERSHELL@
+/* Return the next valid login shell on the system, or NULL when the end of
+ the list has been reached. */
+extern char *getusershell (void);
+/* Rewind to pointer that is advanced at each getusershell() call. */
+extern void setusershell (void);
+/* Free the pointer that is advanced at each getusershell() call and
+ associated resources. */
+extern void endusershell (void);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getusershell
+# define getusershell() \
+ (GL_LINK_WARNING ("getusershell is unportable - " \
+ "use gnulib module getusershell for portability"), \
+ getusershell ())
+# undef setusershell
+# define setusershell() \
+ (GL_LINK_WARNING ("setusershell is unportable - " \
+ "use gnulib module getusershell for portability"), \
+ setusershell ())
+# undef endusershell
+# define endusershell() \
+ (GL_LINK_WARNING ("endusershell is unportable - " \
+ "use gnulib module getusershell for portability"), \
+ endusershell ())
+#endif
+
+
+#if @GNULIB_LCHOWN@
+# if @REPLACE_LCHOWN@
+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+ to GID (if GID is not -1). Do not follow symbolic links.
+ Return 0 if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/lchown.html>. */
+# define lchown rpl_lchown
+extern int lchown (char const *file, uid_t owner, gid_t group);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef lchown
+# define lchown(f,u,g) \
+ (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \
+ "systems - use gnulib module lchown for portability"), \
+ lchown (f, u, g))
+#endif
+
+
+#if @GNULIB_LINK@
+/* Create a new hard link for an existing file.
+ Return 0 if successful, otherwise -1 and errno set.
+ See POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/link.html>. */
+# if !@HAVE_LINK@
+extern int link (const char *path1, const char *path2);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef link
+# define link(path1,path2) \
+ (GL_LINK_WARNING ("link is unportable - " \
+ "use gnulib module link for portability"), \
+ link (path1, path2))
+#endif
+
+
+#if @GNULIB_LSEEK@
+# if @REPLACE_LSEEK@
+/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
+ Return the new offset if successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/lseek.html>. */
+# define lseek rpl_lseek
+ extern off_t lseek (int fd, off_t offset, int whence);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef lseek
+# define lseek(f,o,w) \
+ (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \
+ "systems - use gnulib module lseek for portability"), \
+ lseek (f, o, w))
+#endif
+
+
+#if @GNULIB_READLINK@
+/* Read the contents of the symbolic link FILE and place the first BUFSIZE
+ bytes of it into BUF. Return the number of bytes placed into BUF if
+ successful, otherwise -1 and errno set.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/readlink.html>. */
+# if !@HAVE_READLINK@
+# include <stddef.h>
+extern int readlink (const char *file, char *buf, size_t bufsize);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef readlink
+# define readlink(f,b,s) \
+ (GL_LINK_WARNING ("readlink is unportable - " \
+ "use gnulib module readlink for portability"), \
+ readlink (f, b, s))
+#endif
+
+
+#if @GNULIB_SLEEP@
+/* Pause the execution of the current thread for N seconds.
+ Returns the number of seconds left to sleep.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/sleep.html>. */
+# if !@HAVE_SLEEP@
+extern unsigned int sleep (unsigned int n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef sleep
+# define sleep(n) \
+ (GL_LINK_WARNING ("sleep is unportable - " \
+ "use gnulib module sleep for portability"), \
+ sleep (n))
+#endif
+
+
+#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
+/* Write up to COUNT bytes starting at BUF to file descriptor FD.
+ See the POSIX:2001 specification
+ <http://www.opengroup.org/susv3xsh/write.html>. */
+# undef write
+# define write rpl_write
+extern ssize_t write (int fd, const void *buf, size_t count);
+#endif
+
+
+#ifdef FCHDIR_REPLACEMENT
+/* gnulib internal function. */
+extern void _gl_unregister_fd (int fd);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _GL_UNISTD_H */
+#endif /* _GL_UNISTD_H */
diff --git a/lib/unistdio.h b/lib/unistdio.h
new file mode 100644
index 0000000..d9eca02
--- /dev/null
+++ b/lib/unistdio.h
@@ -0,0 +1,256 @@
+/* Elementary Unicode string functions.
+ Copyright (C) 2002, 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 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/>. */
+
+#ifndef _UNISTDIO_H
+#define _UNISTDIO_H
+
+#include "unitypes.h"
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get FILE. */
+#include <stdio.h>
+
+/* Get va_list. */
+#include <stdarg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These work like the printf function family.
+ In the format string:
+ The format directive 'U' takes an UTF-8 string (const uint8_t *).
+ The format directive 'lU' takes an UTF-16 string (const uint16_t *).
+ The format directive 'llU' takes an UTF-32 string (const uint32_t *).
+
+ The prefix (ulc_, u8_, u16_, u16_) indicates the type of the resulting
+ string. The prefix 'ulc' stands for "locale encoded".
+
+ An infix 'v' indicates that a va_list is passed instead of multiple
+ arguments.
+
+ The functions *sprintf have a 'buf' argument that is assumed to be large
+ enough. (DANGEROUS! Overflowing the buffer will crash the program.)
+ The functions *snprintf have a 'buf' argument that is assumed to be 'size'
+ units large. (DANGEROUS! The resulting string might be truncated in the
+ middle of a multibyte character.)
+ The functions *asprintf have a 'resultp' argument. The result will be
+ freshly allocated and stored in *resultp.
+ The functions *asnprintf have a (resultbuf, lengthp) argument pair. If
+ resultbuf is not NULL and the result fits into *lengthp units, it is put
+ in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated
+ string is returned. In both cases, *lengthp is set to the length (number
+ of units) of the returned string. In case of error, NULL is returned and
+ errno is set.
+ */
+
+/* ASCII format string, result in locale dependent encoded 'char *'. */
+extern int
+ ulc_sprintf (char *buf,
+ const char *format, ...);
+extern int
+ ulc_snprintf (char *buf, size_t size,
+ const char *format, ...);
+extern int
+ ulc_asprintf (char **resultp,
+ const char *format, ...);
+extern char *
+ ulc_asnprintf (char *resultbuf, size_t *lengthp,
+ const char *format, ...);
+extern int
+ ulc_vsprintf (char *buf,
+ const char *format, va_list ap);
+extern int
+ ulc_vsnprintf (char *buf, size_t size,
+ const char *format, va_list ap);
+extern int
+ ulc_vasprintf (char **resultp,
+ const char *format, va_list ap);
+extern char *
+ ulc_vasnprintf (char *resultbuf, size_t *lengthp,
+ const char *format, va_list ap);
+
+/* ASCII format string, result in UTF-8 format. */
+extern int
+ u8_sprintf (uint8_t *buf,
+ const char *format, ...);
+extern int
+ u8_snprintf (uint8_t *buf, size_t size,
+ const char *format, ...);
+extern int
+ u8_asprintf (uint8_t **resultp,
+ const char *format, ...);
+extern uint8_t *
+ u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
+ const char *format, ...);
+extern int
+ u8_vsprintf (uint8_t *buf,
+ const char *format, va_list ap);
+extern int
+ u8_vsnprintf (uint8_t *buf, size_t size,
+ const char *format, va_list ap);
+extern int
+ u8_vasprintf (uint8_t **resultp,
+ const char *format, va_list ap);
+extern uint8_t *
+ u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
+ const char *format, va_list ap);
+
+/* UTF-8 format string, result in UTF-8 format. */
+extern int
+ u8_u8_sprintf (uint8_t *buf,
+ const uint8_t *format, ...);
+extern int
+ u8_u8_snprintf (uint8_t *buf, size_t size,
+ const uint8_t *format, ...);
+extern int
+ u8_u8_asprintf (uint8_t **resultp,
+ const uint8_t *format, ...);
+extern uint8_t *
+ u8_u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
+ const uint8_t *format, ...);
+extern int
+ u8_u8_vsprintf (uint8_t *buf,
+ const uint8_t *format, va_list ap);
+extern int
+ u8_u8_vsnprintf (uint8_t *buf, size_t size,
+ const uint8_t *format, va_list ap);
+extern int
+ u8_u8_vasprintf (uint8_t **resultp,
+ const uint8_t *format, va_list ap);
+extern uint8_t *
+ u8_u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
+ const uint8_t *format, va_list ap);
+
+/* ASCII format string, result in UTF-16 format. */
+extern int
+ u16_sprintf (uint16_t *buf,
+ const char *format, ...);
+extern int
+ u16_snprintf (uint16_t *buf, size_t size,
+ const char *format, ...);
+extern int
+ u16_asprintf (uint16_t **resultp,
+ const char *format, ...);
+extern uint16_t *
+ u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
+ const char *format, ...);
+extern int
+ u16_vsprintf (uint16_t *buf,
+ const char *format, va_list ap);
+extern int
+ u16_vsnprintf (uint16_t *buf, size_t size,
+ const char *format, va_list ap);
+extern int
+ u16_vasprintf (uint16_t **resultp,
+ const char *format, va_list ap);
+extern uint16_t *
+ u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
+ const char *format, va_list ap);
+
+/* UTF-16 format string, result in UTF-16 format. */
+extern int
+ u16_u16_sprintf (uint16_t *buf,
+ const uint16_t *format, ...);
+extern int
+ u16_u16_snprintf (uint16_t *buf, size_t size,
+ const uint16_t *format, ...);
+extern int
+ u16_u16_asprintf (uint16_t **resultp,
+ const uint16_t *format, ...);
+extern uint16_t *
+ u16_u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
+ const uint16_t *format, ...);
+extern int
+ u16_u16_vsprintf (uint16_t *buf,
+ const uint16_t *format, va_list ap);
+extern int
+ u16_u16_vsnprintf (uint16_t *buf, size_t size,
+ const uint16_t *format, va_list ap);
+extern int
+ u16_u16_vasprintf (uint16_t **resultp,
+ const uint16_t *format, va_list ap);
+extern uint16_t *
+ u16_u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
+ const uint16_t *format, va_list ap);
+
+/* ASCII format string, result in UTF-32 format. */
+extern int
+ u32_sprintf (uint32_t *buf,
+ const char *format, ...);
+extern int
+ u32_snprintf (uint32_t *buf, size_t size,
+ const char *format, ...);
+extern int
+ u32_asprintf (uint32_t **resultp,
+ const char *format, ...);
+extern uint32_t *
+ u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
+ const char *format, ...);
+extern int
+ u32_vsprintf (uint32_t *buf,
+ const char *format, va_list ap);
+extern int
+ u32_vsnprintf (uint32_t *buf, size_t size,
+ const char *format, va_list ap);
+extern int
+ u32_vasprintf (uint32_t **resultp,
+ const char *format, va_list ap);
+extern uint32_t *
+ u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
+ const char *format, va_list ap);
+
+/* UTF-32 format string, result in UTF-32 format. */
+extern int
+ u32_u32_sprintf (uint32_t *buf,
+ const uint32_t *format, ...);
+extern int
+ u32_u32_snprintf (uint32_t *buf, size_t size,
+ const uint32_t *format, ...);
+extern int
+ u32_u32_asprintf (uint32_t **resultp,
+ const uint32_t *format, ...);
+extern uint32_t *
+ u32_u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
+ const uint32_t *format, ...);
+extern int
+ u32_u32_vsprintf (uint32_t *buf,
+ const uint32_t *format, va_list ap);
+extern int
+ u32_u32_vsnprintf (uint32_t *buf, size_t size,
+ const uint32_t *format, va_list ap);
+extern int
+ u32_u32_vasprintf (uint32_t **resultp,
+ const uint32_t *format, va_list ap);
+extern uint32_t *
+ u32_u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
+ const uint32_t *format, va_list ap);
+
+/* ASCII format string, output to FILE in locale dependent encoding. */
+extern int
+ ulc_fprintf (FILE *stream,
+ const char *format, ...);
+extern int
+ ulc_vfprintf (FILE *stream,
+ const char *format, va_list ap);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNISTDIO_H */
diff --git a/lib/unistdio/u-asnprintf.h b/lib/unistdio/u-asnprintf.h
new file mode 100644
index 0000000..8fd08d7
--- /dev/null
+++ b/lib/unistdio/u-asnprintf.h
@@ -0,0 +1,27 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+DCHAR_T *
+ASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, ...)
+{
+ va_list args;
+ DCHAR_T *result;
+
+ va_start (args, format);
+ result = VASNPRINTF (resultbuf, lengthp, format, args);
+ va_end (args);
+ return result;
+}
diff --git a/lib/unistdio/u-asprintf.h b/lib/unistdio/u-asprintf.h
new file mode 100644
index 0000000..ba82fab
--- /dev/null
+++ b/lib/unistdio/u-asprintf.h
@@ -0,0 +1,27 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+int
+ASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, ...)
+{
+ va_list args;
+ int result;
+
+ va_start (args, format);
+ result = VASPRINTF (resultp, format, args);
+ va_end (args);
+ return result;
+}
diff --git a/lib/unistdio/u-printf-args.c b/lib/unistdio/u-printf-args.c
new file mode 100644
index 0000000..22fbc08
--- /dev/null
+++ b/lib/unistdio/u-printf-args.c
@@ -0,0 +1,22 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio/u-printf-args.h"
+
+#include "printf-args.c"
diff --git a/lib/unistdio/u-printf-args.h b/lib/unistdio/u-printf-args.h
new file mode 100644
index 0000000..7b2255a
--- /dev/null
+++ b/lib/unistdio/u-printf-args.h
@@ -0,0 +1,27 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+#ifndef _U_PRINTF_ARGS_H
+#define _U_PRINTF_ARGS_H
+
+#include "unitypes.h"
+
+/* Parametrization of printf-args.h. */
+#define ENABLE_UNISTDIO 1
+#define PRINTF_FETCHARGS u_printf_fetchargs
+#include "printf-args.h"
+
+#endif /* _U_PRINTF_ARGS_H */
diff --git a/lib/unistdio/u-printf-parse.h b/lib/unistdio/u-printf-parse.h
new file mode 100644
index 0000000..11a953f
--- /dev/null
+++ b/lib/unistdio/u-printf-parse.h
@@ -0,0 +1,27 @@
+/* Parse printf format string.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+#ifndef _U_PRINTF_PARSE_H
+#define _U_PRINTF_PARSE_H
+
+#include "unistdio/u-printf-args.h"
+
+/* Parametrization of printf-parse.h. */
+#undef ENABLE_UNISTDIO
+#define ENABLE_UNISTDIO 1
+#include "printf-parse.h"
+
+#endif /* _U_PRINTF_PARSE_H */
diff --git a/lib/unistdio/u-snprintf.h b/lib/unistdio/u-snprintf.h
new file mode 100644
index 0000000..1665bc2
--- /dev/null
+++ b/lib/unistdio/u-snprintf.h
@@ -0,0 +1,27 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+int
+SNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, ...)
+{
+ va_list args;
+ int result;
+
+ va_start (args, format);
+ result = VSNPRINTF (buf, size, format, args);
+ va_end (args);
+ return result;
+}
diff --git a/lib/unistdio/u-sprintf.h b/lib/unistdio/u-sprintf.h
new file mode 100644
index 0000000..8a1b554
--- /dev/null
+++ b/lib/unistdio/u-sprintf.h
@@ -0,0 +1,27 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+int
+SPRINTF (DCHAR_T *buf, const FCHAR_T *format, ...)
+{
+ va_list args;
+ int result;
+
+ va_start (args, format);
+ result = VSPRINTF (buf, format, args);
+ va_end (args);
+ return result;
+}
diff --git a/lib/unistdio/u-vasprintf.h b/lib/unistdio/u-vasprintf.h
new file mode 100644
index 0000000..965bfbf
--- /dev/null
+++ b/lib/unistdio/u-vasprintf.h
@@ -0,0 +1,35 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+int
+VASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, va_list args)
+{
+ size_t length;
+ DCHAR_T *result = VASNPRINTF (NULL, &length, format, args);
+ if (result == NULL)
+ return -1;
+
+ if (length > INT_MAX)
+ {
+ free (result);
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ *resultp = result;
+ /* Return the number of resulting units, excluding the trailing NUL. */
+ return length;
+}
diff --git a/lib/unistdio/u-vsnprintf.h b/lib/unistdio/u-vsnprintf.h
new file mode 100644
index 0000000..481a22f
--- /dev/null
+++ b/lib/unistdio/u-vsnprintf.h
@@ -0,0 +1,52 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+int
+VSNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, va_list args)
+{
+ size_t length;
+ DCHAR_T *result;
+
+ if (size == 0)
+ buf = NULL;
+ else
+ length = size;
+ result = VASNPRINTF (buf, &length, format, args);
+ if (result == NULL)
+ return -1;
+
+ if (result != buf)
+ {
+ if (size != 0)
+ {
+ /* The result did not fit into the buffer. Copy the initial segment
+ into the buffer, truncating it if necessary. */
+ size_t n = (length < size ? length : size - 1);
+ DCHAR_CPY (buf, result, n);
+ buf[n] = '\0';
+ }
+ free (result);
+ }
+
+ if (length > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ /* Return the number of resulting units, excluding the trailing NUL. */
+ return length;
+}
diff --git a/lib/unistdio/u-vsprintf.h b/lib/unistdio/u-vsprintf.h
new file mode 100644
index 0000000..36ebd9f
--- /dev/null
+++ b/lib/unistdio/u-vsprintf.h
@@ -0,0 +1,58 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+int
+VSPRINTF (DCHAR_T *buf, const FCHAR_T *format, va_list args)
+{
+ /* Pass an infinite length. But note that *vasnprintf may fail if the buffer
+ argument is larger than INT_MAX (if that fits into a 'size_t' at all).
+ Also note that glibc's iconv fails with E2BIG when we pass a length that
+ is so large that buf + length wraps around, i.e.
+ (uintptr_t) (buf + length) < (uintptr_t) buf. */
+ size_t length;
+ DCHAR_T *result;
+
+ /* Set length = min (SIZE_MAX, INT_MAX, - (uintptr_t) buf - 1). */
+ length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX);
+ if (length > (~ (uintptr_t) buf) / sizeof (DCHAR_T))
+ length = (~ (uintptr_t) buf) / sizeof (DCHAR_T);
+
+ result = VASNPRINTF (buf, &length, format, args);
+ if (result == NULL)
+ return -1;
+
+ /* The infinite buffer size guarantees that the result is not malloc()ed. */
+ if (result != buf)
+ {
+ /* length is near SIZE_MAX. */
+ free (result);
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ if (length > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ /* Return the number of resulting units, excluding the trailing NUL. */
+ return length;
+}
diff --git a/lib/unistdio/u16-asnprintf.c b/lib/unistdio/u16-asnprintf.c
new file mode 100644
index 0000000..bbe4bac
--- /dev/null
+++ b/lib/unistdio/u16-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u16_asnprintf
+#define VASNPRINTF u16_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u16-asprintf.c b/lib/unistdio/u16-asprintf.c
new file mode 100644
index 0000000..79f3969
--- /dev/null
+++ b/lib/unistdio/u16-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u16_asprintf
+#define VASPRINTF u16_vasprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u16-printf-parse.c b/lib/unistdio/u16-printf-parse.c
new file mode 100644
index 0000000..3a8acd3
--- /dev/null
+++ b/lib/unistdio/u16-printf-parse.c
@@ -0,0 +1,26 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio/u-printf-parse.h"
+
+#define PRINTF_PARSE u16_printf_parse
+#define CHAR_T uint16_t
+#define DIRECTIVE u16_directive
+#define DIRECTIVES u16_directives
+#include "printf-parse.c"
diff --git a/lib/unistdio/u16-snprintf.c b/lib/unistdio/u16-snprintf.c
new file mode 100644
index 0000000..afed8a7
--- /dev/null
+++ b/lib/unistdio/u16-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u16_snprintf
+#define VSNPRINTF u16_vsnprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u16-sprintf.c b/lib/unistdio/u16-sprintf.c
new file mode 100644
index 0000000..4860365
--- /dev/null
+++ b/lib/unistdio/u16-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u16_sprintf
+#define VSPRINTF u16_vsprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u16-u16-asnprintf.c b/lib/unistdio/u16-u16-asnprintf.c
new file mode 100644
index 0000000..64c257c
--- /dev/null
+++ b/lib/unistdio/u16-u16-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u16_u16_asnprintf
+#define VASNPRINTF u16_u16_vasnprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u16-u16-asprintf.c b/lib/unistdio/u16-u16-asprintf.c
new file mode 100644
index 0000000..38469c6
--- /dev/null
+++ b/lib/unistdio/u16-u16-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u16_u16_asprintf
+#define VASPRINTF u16_u16_vasprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u16-u16-snprintf.c b/lib/unistdio/u16-u16-snprintf.c
new file mode 100644
index 0000000..7229add
--- /dev/null
+++ b/lib/unistdio/u16-u16-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u16_u16_snprintf
+#define VSNPRINTF u16_u16_vsnprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u16-u16-sprintf.c b/lib/unistdio/u16-u16-sprintf.c
new file mode 100644
index 0000000..1c517c3
--- /dev/null
+++ b/lib/unistdio/u16-u16-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u16_u16_sprintf
+#define VSPRINTF u16_u16_vsprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u16-u16-vasnprintf.c b/lib/unistdio/u16-u16-vasnprintf.c
new file mode 100644
index 0000000..e33851e
--- /dev/null
+++ b/lib/unistdio/u16-u16-vasnprintf.c
@@ -0,0 +1,49 @@
+/* Formatted output to UTF-16 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u16_u16_vasnprintf
+#define FCHAR_T uint16_t
+#define DIRECTIVE u16_directive
+#define DIRECTIVES u16_directives
+#define PRINTF_PARSE u16_printf_parse
+#define DCHAR_T uint16_t
+#define DCHAR_T_IS_UINT16_T 1
+#define DCHAR_CPY u16_cpy
+#define DCHAR_SET u16_set
+#define DCHAR_MBSNLEN u16_mbsnlen
+#define DCHAR_IS_UINT16_T 1
+#define U8_TO_DCHAR u8_to_u16
+#define U32_TO_DCHAR u32_to_u16
+#define DCHAR_CONV_FROM_ENCODING u16_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u16-u16-vasprintf.c b/lib/unistdio/u16-u16-vasprintf.c
new file mode 100644
index 0000000..3d8fc50
--- /dev/null
+++ b/lib/unistdio/u16-u16-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u16_u16_vasprintf
+#define VASNPRINTF u16_u16_vasnprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u16-u16-vsnprintf.c b/lib/unistdio/u16-u16-vsnprintf.c
new file mode 100644
index 0000000..6bbf825
--- /dev/null
+++ b/lib/unistdio/u16-u16-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u16_u16_vsnprintf
+#define VASNPRINTF u16_u16_vasnprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#define DCHAR_CPY u16_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u16-u16-vsprintf.c b/lib/unistdio/u16-u16-vsprintf.c
new file mode 100644
index 0000000..1a7e93c
--- /dev/null
+++ b/lib/unistdio/u16-u16-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u16_u16_vsprintf
+#define VASNPRINTF u16_u16_vasnprintf
+#define FCHAR_T uint16_t
+#define DCHAR_T uint16_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/u16-vasnprintf.c b/lib/unistdio/u16-vasnprintf.c
new file mode 100644
index 0000000..3ce19d4
--- /dev/null
+++ b/lib/unistdio/u16-vasnprintf.c
@@ -0,0 +1,50 @@
+/* Formatted output to UTF-16 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u16_vasnprintf
+#define FCHAR_T char
+#define DIRECTIVE char_directive
+#define DIRECTIVES char_directives
+#define ASCII_ONLY 1
+#define PRINTF_PARSE ulc_printf_parse
+#define DCHAR_T uint16_t
+#define DCHAR_T_IS_UINT16_T 1
+#define DCHAR_CPY u16_cpy
+#define DCHAR_SET u16_set
+#define DCHAR_MBSNLEN u16_mbsnlen
+#define DCHAR_IS_UINT16_T 1
+#define U8_TO_DCHAR u8_to_u16
+#define U32_TO_DCHAR u32_to_u16
+#define DCHAR_CONV_FROM_ENCODING u16_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u16-vasprintf.c b/lib/unistdio/u16-vasprintf.c
new file mode 100644
index 0000000..b63dd18
--- /dev/null
+++ b/lib/unistdio/u16-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u16_vasprintf
+#define VASNPRINTF u16_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u16-vsnprintf.c b/lib/unistdio/u16-vsnprintf.c
new file mode 100644
index 0000000..b06ca09
--- /dev/null
+++ b/lib/unistdio/u16-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u16_vsnprintf
+#define VASNPRINTF u16_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#define DCHAR_CPY u16_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u16-vsprintf.c b/lib/unistdio/u16-vsprintf.c
new file mode 100644
index 0000000..4811bc1
--- /dev/null
+++ b/lib/unistdio/u16-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u16_vsprintf
+#define VASNPRINTF u16_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint16_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/u32-asnprintf.c b/lib/unistdio/u32-asnprintf.c
new file mode 100644
index 0000000..dad1ae4
--- /dev/null
+++ b/lib/unistdio/u32-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u32_asnprintf
+#define VASNPRINTF u32_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u32-asprintf.c b/lib/unistdio/u32-asprintf.c
new file mode 100644
index 0000000..11e23f0
--- /dev/null
+++ b/lib/unistdio/u32-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u32_asprintf
+#define VASPRINTF u32_vasprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u32-printf-parse.c b/lib/unistdio/u32-printf-parse.c
new file mode 100644
index 0000000..a577256
--- /dev/null
+++ b/lib/unistdio/u32-printf-parse.c
@@ -0,0 +1,26 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio/u-printf-parse.h"
+
+#define PRINTF_PARSE u32_printf_parse
+#define CHAR_T uint32_t
+#define DIRECTIVE u32_directive
+#define DIRECTIVES u32_directives
+#include "printf-parse.c"
diff --git a/lib/unistdio/u32-snprintf.c b/lib/unistdio/u32-snprintf.c
new file mode 100644
index 0000000..7d67017
--- /dev/null
+++ b/lib/unistdio/u32-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u32_snprintf
+#define VSNPRINTF u32_vsnprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u32-sprintf.c b/lib/unistdio/u32-sprintf.c
new file mode 100644
index 0000000..6f930d0
--- /dev/null
+++ b/lib/unistdio/u32-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u32_sprintf
+#define VSPRINTF u32_vsprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u32-u32-asnprintf.c b/lib/unistdio/u32-u32-asnprintf.c
new file mode 100644
index 0000000..b3a0274
--- /dev/null
+++ b/lib/unistdio/u32-u32-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u32_u32_asnprintf
+#define VASNPRINTF u32_u32_vasnprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u32-u32-asprintf.c b/lib/unistdio/u32-u32-asprintf.c
new file mode 100644
index 0000000..91a96fc
--- /dev/null
+++ b/lib/unistdio/u32-u32-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u32_u32_asprintf
+#define VASPRINTF u32_u32_vasprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u32-u32-snprintf.c b/lib/unistdio/u32-u32-snprintf.c
new file mode 100644
index 0000000..cf88529
--- /dev/null
+++ b/lib/unistdio/u32-u32-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u32_u32_snprintf
+#define VSNPRINTF u32_u32_vsnprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u32-u32-sprintf.c b/lib/unistdio/u32-u32-sprintf.c
new file mode 100644
index 0000000..ccf6d02
--- /dev/null
+++ b/lib/unistdio/u32-u32-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u32_u32_sprintf
+#define VSPRINTF u32_u32_vsprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u32-u32-vasnprintf.c b/lib/unistdio/u32-u32-vasnprintf.c
new file mode 100644
index 0000000..b272af3
--- /dev/null
+++ b/lib/unistdio/u32-u32-vasnprintf.c
@@ -0,0 +1,49 @@
+/* Formatted output to UTF-32 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u32_u32_vasnprintf
+#define FCHAR_T uint32_t
+#define DIRECTIVE u32_directive
+#define DIRECTIVES u32_directives
+#define PRINTF_PARSE u32_printf_parse
+#define DCHAR_T uint32_t
+#define DCHAR_T_IS_UINT32_T 1
+#define DCHAR_CPY u32_cpy
+#define DCHAR_SET u32_set
+#define DCHAR_MBSNLEN u32_mbsnlen
+#define DCHAR_IS_UINT32_T 1
+#define U8_TO_DCHAR u8_to_u32
+#define U16_TO_DCHAR u16_to_u32
+#define DCHAR_CONV_FROM_ENCODING u32_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u32-u32-vasprintf.c b/lib/unistdio/u32-u32-vasprintf.c
new file mode 100644
index 0000000..bacc7c1
--- /dev/null
+++ b/lib/unistdio/u32-u32-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u32_u32_vasprintf
+#define VASNPRINTF u32_u32_vasnprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u32-u32-vsnprintf.c b/lib/unistdio/u32-u32-vsnprintf.c
new file mode 100644
index 0000000..7f43623
--- /dev/null
+++ b/lib/unistdio/u32-u32-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u32_u32_vsnprintf
+#define VASNPRINTF u32_u32_vasnprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#define DCHAR_CPY u32_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u32-u32-vsprintf.c b/lib/unistdio/u32-u32-vsprintf.c
new file mode 100644
index 0000000..46d299a
--- /dev/null
+++ b/lib/unistdio/u32-u32-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u32_u32_vsprintf
+#define VASNPRINTF u32_u32_vasnprintf
+#define FCHAR_T uint32_t
+#define DCHAR_T uint32_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/u32-vasnprintf.c b/lib/unistdio/u32-vasnprintf.c
new file mode 100644
index 0000000..6aac623
--- /dev/null
+++ b/lib/unistdio/u32-vasnprintf.c
@@ -0,0 +1,50 @@
+/* Formatted output to UTF-32 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u32_vasnprintf
+#define FCHAR_T char
+#define DIRECTIVE char_directive
+#define DIRECTIVES char_directives
+#define ASCII_ONLY 1
+#define PRINTF_PARSE ulc_printf_parse
+#define DCHAR_T uint32_t
+#define DCHAR_T_IS_UINT32_T 1
+#define DCHAR_CPY u32_cpy
+#define DCHAR_SET u32_set
+#define DCHAR_MBSNLEN u32_mbsnlen
+#define DCHAR_IS_UINT32_T 1
+#define U8_TO_DCHAR u8_to_u32
+#define U16_TO_DCHAR u16_to_u32
+#define DCHAR_CONV_FROM_ENCODING u32_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u32-vasprintf.c b/lib/unistdio/u32-vasprintf.c
new file mode 100644
index 0000000..e6883e3
--- /dev/null
+++ b/lib/unistdio/u32-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u32_vasprintf
+#define VASNPRINTF u32_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u32-vsnprintf.c b/lib/unistdio/u32-vsnprintf.c
new file mode 100644
index 0000000..a55e1c7
--- /dev/null
+++ b/lib/unistdio/u32-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u32_vsnprintf
+#define VASNPRINTF u32_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#define DCHAR_CPY u32_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u32-vsprintf.c b/lib/unistdio/u32-vsprintf.c
new file mode 100644
index 0000000..a850e45
--- /dev/null
+++ b/lib/unistdio/u32-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u32_vsprintf
+#define VASNPRINTF u32_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint32_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/u8-asnprintf.c b/lib/unistdio/u8-asnprintf.c
new file mode 100644
index 0000000..b8e7a27
--- /dev/null
+++ b/lib/unistdio/u8-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u8_asnprintf
+#define VASNPRINTF u8_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u8-asprintf.c b/lib/unistdio/u8-asprintf.c
new file mode 100644
index 0000000..22b0170
--- /dev/null
+++ b/lib/unistdio/u8-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u8_asprintf
+#define VASPRINTF u8_vasprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u8-printf-parse.c b/lib/unistdio/u8-printf-parse.c
new file mode 100644
index 0000000..a355548
--- /dev/null
+++ b/lib/unistdio/u8-printf-parse.c
@@ -0,0 +1,26 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio/u-printf-parse.h"
+
+#define PRINTF_PARSE u8_printf_parse
+#define CHAR_T uint8_t
+#define DIRECTIVE u8_directive
+#define DIRECTIVES u8_directives
+#include "printf-parse.c"
diff --git a/lib/unistdio/u8-snprintf.c b/lib/unistdio/u8-snprintf.c
new file mode 100644
index 0000000..8729054
--- /dev/null
+++ b/lib/unistdio/u8-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u8_snprintf
+#define VSNPRINTF u8_vsnprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u8-sprintf.c b/lib/unistdio/u8-sprintf.c
new file mode 100644
index 0000000..330feae
--- /dev/null
+++ b/lib/unistdio/u8-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u8_sprintf
+#define VSPRINTF u8_vsprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u8-u8-asnprintf.c b/lib/unistdio/u8-u8-asnprintf.c
new file mode 100644
index 0000000..9379c72
--- /dev/null
+++ b/lib/unistdio/u8-u8-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF u8_u8_asnprintf
+#define VASNPRINTF u8_u8_vasnprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/u8-u8-asprintf.c b/lib/unistdio/u8-u8-asprintf.c
new file mode 100644
index 0000000..5974527
--- /dev/null
+++ b/lib/unistdio/u8-u8-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF u8_u8_asprintf
+#define VASPRINTF u8_u8_vasprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-asprintf.h"
diff --git a/lib/unistdio/u8-u8-snprintf.c b/lib/unistdio/u8-u8-snprintf.c
new file mode 100644
index 0000000..26dfac0
--- /dev/null
+++ b/lib/unistdio/u8-u8-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF u8_u8_snprintf
+#define VSNPRINTF u8_u8_vsnprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-snprintf.h"
diff --git a/lib/unistdio/u8-u8-sprintf.c b/lib/unistdio/u8-u8-sprintf.c
new file mode 100644
index 0000000..53b3c96
--- /dev/null
+++ b/lib/unistdio/u8-u8-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF u8_u8_sprintf
+#define VSPRINTF u8_u8_vsprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-sprintf.h"
diff --git a/lib/unistdio/u8-u8-vasnprintf.c b/lib/unistdio/u8-u8-vasnprintf.c
new file mode 100644
index 0000000..7535d4c
--- /dev/null
+++ b/lib/unistdio/u8-u8-vasnprintf.c
@@ -0,0 +1,49 @@
+/* Formatted output to UTF-8 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u8_u8_vasnprintf
+#define FCHAR_T uint8_t
+#define DIRECTIVE u8_directive
+#define DIRECTIVES u8_directives
+#define PRINTF_PARSE u8_printf_parse
+#define DCHAR_T uint8_t
+#define DCHAR_T_IS_UINT8_T 1
+#define DCHAR_CPY u8_cpy
+#define DCHAR_SET u8_set
+#define DCHAR_MBSNLEN u8_mbsnlen
+#define DCHAR_IS_UINT8_T 1
+#define U16_TO_DCHAR u16_to_u8
+#define U32_TO_DCHAR u32_to_u8
+#define DCHAR_CONV_FROM_ENCODING u8_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u8-u8-vasprintf.c b/lib/unistdio/u8-u8-vasprintf.c
new file mode 100644
index 0000000..bb28dc5
--- /dev/null
+++ b/lib/unistdio/u8-u8-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u8_u8_vasprintf
+#define VASNPRINTF u8_u8_vasnprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u8-u8-vsnprintf.c b/lib/unistdio/u8-u8-vsnprintf.c
new file mode 100644
index 0000000..f9e9922
--- /dev/null
+++ b/lib/unistdio/u8-u8-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u8_u8_vsnprintf
+#define VASNPRINTF u8_u8_vasnprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#define DCHAR_CPY u8_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u8-u8-vsprintf.c b/lib/unistdio/u8-u8-vsprintf.c
new file mode 100644
index 0000000..9e66018
--- /dev/null
+++ b/lib/unistdio/u8-u8-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u8_u8_vsprintf
+#define VASNPRINTF u8_u8_vasnprintf
+#define FCHAR_T uint8_t
+#define DCHAR_T uint8_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/u8-vasnprintf.c b/lib/unistdio/u8-vasnprintf.c
new file mode 100644
index 0000000..0067e6c
--- /dev/null
+++ b/lib/unistdio/u8-vasnprintf.c
@@ -0,0 +1,50 @@
+/* Formatted output to UTF-8 strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF u8_vasnprintf
+#define FCHAR_T char
+#define DIRECTIVE char_directive
+#define DIRECTIVES char_directives
+#define ASCII_ONLY 1
+#define PRINTF_PARSE ulc_printf_parse
+#define DCHAR_T uint8_t
+#define DCHAR_T_IS_UINT8_T 1
+#define DCHAR_CPY u8_cpy
+#define DCHAR_SET u8_set
+#define DCHAR_MBSNLEN u8_mbsnlen
+#define DCHAR_IS_UINT8_T 1
+#define U16_TO_DCHAR u16_to_u8
+#define U32_TO_DCHAR u32_to_u8
+#define DCHAR_CONV_FROM_ENCODING u8_conv_from_encoding
+#define TCHAR_T char
+#include "vasnprintf.c"
diff --git a/lib/unistdio/u8-vasprintf.c b/lib/unistdio/u8-vasprintf.c
new file mode 100644
index 0000000..304d496
--- /dev/null
+++ b/lib/unistdio/u8-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF u8_vasprintf
+#define VASNPRINTF u8_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/u8-vsnprintf.c b/lib/unistdio/u8-vsnprintf.c
new file mode 100644
index 0000000..87388e2
--- /dev/null
+++ b/lib/unistdio/u8-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "unistr.h"
+
+#define VSNPRINTF u8_vsnprintf
+#define VASNPRINTF u8_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#define DCHAR_CPY u8_cpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/u8-vsprintf.c b/lib/unistdio/u8-vsprintf.c
new file mode 100644
index 0000000..aa0b52d
--- /dev/null
+++ b/lib/unistdio/u8-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF u8_vsprintf
+#define VASNPRINTF u8_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T uint8_t
+#include "u-vsprintf.h"
diff --git a/lib/unistdio/ulc-asnprintf.c b/lib/unistdio/ulc-asnprintf.c
new file mode 100644
index 0000000..31d3f22
--- /dev/null
+++ b/lib/unistdio/ulc-asnprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASNPRINTF ulc_asnprintf
+#define VASNPRINTF ulc_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-asnprintf.h"
diff --git a/lib/unistdio/ulc-asprintf.c b/lib/unistdio/ulc-asprintf.c
new file mode 100644
index 0000000..4f760e1
--- /dev/null
+++ b/lib/unistdio/ulc-asprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define ASPRINTF ulc_asprintf
+#define VASPRINTF ulc_vasprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-asprintf.h"
diff --git a/lib/unistdio/ulc-fprintf.c b/lib/unistdio/ulc-fprintf.c
new file mode 100644
index 0000000..ac8ab6f
--- /dev/null
+++ b/lib/unistdio/ulc-fprintf.c
@@ -0,0 +1,74 @@
+/* Formatted output to a stream.
+ Copyright (C) 2004, 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 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "fseterr.h"
+
+/* Print formatted output to the stream FP.
+ Return string length of formatted string. On error, return a negative
+ value. */
+int
+ulc_fprintf (FILE *fp, const char *format, ...)
+{
+ char buf[2000];
+ char *output;
+ size_t len;
+ size_t lenbuf = sizeof (buf);
+ va_list args;
+
+ va_start (args, format);
+ output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ len = lenbuf;
+ va_end (args);
+
+ if (!output)
+ {
+ fseterr (fp);
+ return -1;
+ }
+
+ if (fwrite (output, 1, len, fp) < len)
+ {
+ if (output != buf)
+ {
+ int saved_errno = errno;
+ free (output);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ if (len > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ fseterr (fp);
+ return -1;
+ }
+
+ return len;
+}
diff --git a/lib/unistdio/ulc-printf-parse.c b/lib/unistdio/ulc-printf-parse.c
new file mode 100644
index 0000000..81af369
--- /dev/null
+++ b/lib/unistdio/ulc-printf-parse.c
@@ -0,0 +1,27 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio/u-printf-parse.h"
+
+#define PRINTF_PARSE ulc_printf_parse
+#define CHAR_T char
+#define CHAR_T_ONLY_ASCII 1
+#define DIRECTIVE char_directive
+#define DIRECTIVES char_directives
+#include "printf-parse.c"
diff --git a/lib/unistdio/ulc-snprintf.c b/lib/unistdio/ulc-snprintf.c
new file mode 100644
index 0000000..f774ac0
--- /dev/null
+++ b/lib/unistdio/ulc-snprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SNPRINTF ulc_snprintf
+#define VSNPRINTF ulc_vsnprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-snprintf.h"
diff --git a/lib/unistdio/ulc-sprintf.c b/lib/unistdio/ulc-sprintf.c
new file mode 100644
index 0000000..466ffb4
--- /dev/null
+++ b/lib/unistdio/ulc-sprintf.c
@@ -0,0 +1,28 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <stdarg.h>
+
+#define SPRINTF ulc_sprintf
+#define VSPRINTF ulc_vsprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-sprintf.h"
diff --git a/lib/unistdio/ulc-vasnprintf.c b/lib/unistdio/ulc-vasnprintf.c
new file mode 100644
index 0000000..e89b7ff
--- /dev/null
+++ b/lib/unistdio/ulc-vasnprintf.c
@@ -0,0 +1,46 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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/>. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+#include <alloca.h>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include "uniconv.h"
+#include "unistr.h"
+#include "unistdio/u-printf-parse.h"
+
+#define VASNPRINTF ulc_vasnprintf
+#define FCHAR_T char
+#define DIRECTIVE char_directive
+#define DIRECTIVES char_directives
+#define FCHAR_T_ONLY_ASCII 1
+#define PRINTF_PARSE ulc_printf_parse
+#define DCHAR_T char
+#define DCHAR_CPY memcpy
+#define DCHAR_SET memset
+#define DCHAR_MBSNLEN mbsnlen
+#define TCHAR_T char
+#define DCHAR_IS_TCHAR 1
+#include "vasnprintf.c"
diff --git a/lib/unistdio/ulc-vasprintf.c b/lib/unistdio/ulc-vasprintf.c
new file mode 100644
index 0000000..8773ab4
--- /dev/null
+++ b/lib/unistdio/ulc-vasprintf.c
@@ -0,0 +1,30 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+#define VASPRINTF ulc_vasprintf
+#define VASNPRINTF ulc_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-vasprintf.h"
diff --git a/lib/unistdio/ulc-vfprintf.c b/lib/unistdio/ulc-vfprintf.c
new file mode 100644
index 0000000..586fe13
--- /dev/null
+++ b/lib/unistdio/ulc-vfprintf.c
@@ -0,0 +1,71 @@
+/* Formatted output to a stream.
+ Copyright (C) 2004, 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 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "fseterr.h"
+
+/* Print formatted output to the stream FP.
+ Return string length of formatted string. On error, return a negative
+ value. */
+int
+ulc_vfprintf (FILE *fp, const char *format, va_list args)
+{
+ char buf[2000];
+ char *output;
+ size_t len;
+ size_t lenbuf = sizeof (buf);
+
+ output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ len = lenbuf;
+
+ if (!output)
+ {
+ fseterr (fp);
+ return -1;
+ }
+
+ if (fwrite (output, 1, len, fp) < len)
+ {
+ if (output != buf)
+ {
+ int saved_errno = errno;
+ free (output);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+
+ if (len > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ fseterr (fp);
+ return -1;
+ }
+
+ return len;
+}
diff --git a/lib/unistdio/ulc-vsnprintf.c b/lib/unistdio/ulc-vsnprintf.c
new file mode 100644
index 0000000..c166535
--- /dev/null
+++ b/lib/unistdio/ulc-vsnprintf.c
@@ -0,0 +1,33 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define VSNPRINTF ulc_vsnprintf
+#define VASNPRINTF ulc_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#define DCHAR_CPY memcpy
+#include "u-vsnprintf.h"
diff --git a/lib/unistdio/ulc-vsprintf.c b/lib/unistdio/ulc-vsprintf.c
new file mode 100644
index 0000000..0cccc05
--- /dev/null
+++ b/lib/unistdio/ulc-vsprintf.c
@@ -0,0 +1,32 @@
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 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 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>
+
+/* Specification. */
+#include "unistdio.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#define VSPRINTF ulc_vsprintf
+#define VASNPRINTF ulc_vasnprintf
+#define FCHAR_T char
+#define DCHAR_T char
+#include "u-vsprintf.h"
diff --git a/lib/unistr.h b/lib/unistr.h
new file mode 100644
index 0000000..01ecc37
--- /dev/null
+++ b/lib/unistr.h
@@ -0,0 +1,684 @@
+/* Elementary Unicode string functions.
+ Copyright (C) 2001-2002, 2005-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/>. */
+
+#ifndef _UNISTR_H
+#define _UNISTR_H
+
+#include "unitypes.h"
+
+/* Get inline if available. */
+#include <unistring/inline.h>
+
+/* Get bool. */
+#include <unistring/stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Conventions:
+
+ All functions prefixed with u8_ operate on UTF-8 encoded strings.
+ Their unit is an uint8_t (1 byte).
+
+ All functions prefixed with u16_ operate on UTF-16 encoded strings.
+ Their unit is an uint16_t (a 2-byte word).
+
+ All functions prefixed with u32_ operate on UCS-4 encoded strings.
+ Their unit is an uint32_t (a 4-byte word).
+
+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+ n units.
+
+ All arguments starting with "str" and the arguments of functions starting
+ with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string
+ which terminates at the first NUL unit. This termination unit is
+ considered part of the string for all memory allocation purposes, but
+ is not considered part of the string for all other logical purposes.
+
+ Functions returning a string result take a (resultbuf, lengthp) argument
+ pair. If resultbuf is not NULL and the result fits into *lengthp units,
+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly
+ allocated string is returned. In both cases, *lengthp is set to the
+ length (number of units) of the returned string. In case of error,
+ NULL is returned and errno is set. */
+
+
+/* Elementary string checks. */
+
+/* Check whether an UTF-8 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint8_t *
+ u8_check (const uint8_t *s, size_t n);
+
+/* Check whether an UTF-16 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint16_t *
+ u16_check (const uint16_t *s, size_t n);
+
+/* Check whether an UCS-4 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint32_t *
+ u32_check (const uint32_t *s, size_t n);
+
+
+/* Elementary string conversions. */
+
+/* Convert an UTF-8 string to an UTF-16 string. */
+extern uint16_t *
+ u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-8 string to an UCS-4 string. */
+extern uint32_t *
+ u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-16 string to an UTF-8 string. */
+extern uint8_t *
+ u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-16 string to an UCS-4 string. */
+extern uint32_t *
+ u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-8 string. */
+extern uint8_t *
+ u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-16 string. */
+extern uint16_t *
+ u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf,
+ size_t *lengthp);
+
+
+/* Elementary string functions. */
+
+/* Return the length (number of units) of the first character in S, which is
+ no longer than N. Return 0 if it is the NUL character. Return -1 upon
+ failure. */
+/* Similar to mblen(), except that s must not be NULL. */
+extern int
+ u8_mblen (const uint8_t *s, size_t n);
+extern int
+ u16_mblen (const uint16_t *s, size_t n);
+extern int
+ u32_mblen (const uint32_t *s, size_t n);
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
+ and an appropriate number of units is returned.
+ The number of available units, N, must be > 0. */
+/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0,
+ and the NUL character is not treated specially. */
+/* The variants with _safe suffix are safe, even if the library is compiled
+ without --enable-safety. */
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u8_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+ u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u16_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n _UNUSED_PARAMETER_)
+{
+ uint32_t c = *s;
+
+# if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+# endif
+ *puc = c;
+# if CONFIG_UNICODE_SAFETY
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+# endif
+ return 1;
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u8_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+ u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u16_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _UNUSED_PARAMETER_)
+{
+ uint32_t c = *s;
+
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+ *puc = c;
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+# endif
+#endif
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
+ and -1 is returned for an invalid sequence of units, -2 is returned for an
+ incomplete sequence of units.
+ The number of available units, N, must be > 0. */
+/* Similar to u*_mbtouc(), except that the return value gives more details
+ about the failure, similar to mbrtowc(). */
+
+#if 1
+extern int
+ u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n);
+#endif
+
+#if 1
+extern int
+ u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n);
+#endif
+
+#if 1
+extern int
+ u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n);
+#endif
+
+/* Put the multibyte character represented by UC in S, returning its
+ length. Return -1 upon failure, -2 if the number of available units, N,
+ is too small. The latter case cannot occur if N >= 6/2/1, respectively. */
+/* Similar to wctomb(), except that s must not be NULL, and the argument n
+ must be specified. */
+
+#if 1
+/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */
+extern int
+ u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u8_uctomb (uint8_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u8_uctomb (uint8_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0x80 && n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ else
+ return u8_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#if 1
+/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */
+extern int
+ u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u16_uctomb (uint16_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u16_uctomb (uint16_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800 && n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ else
+ return u16_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+ u32_uctomb (uint32_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u32_uctomb (uint32_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
+ {
+ if (n > 0)
+ {
+ *s = uc;
+ return 1;
+ }
+ else
+ return -2;
+ }
+ else
+ return -1;
+}
+# endif
+#endif
+
+/* Copy N units from SRC to DEST. */
+/* Similar to memcpy(). */
+extern uint8_t *
+ u8_cpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_cpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_cpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy N units from SRC to DEST, guaranteeing correct behavior for
+ overlapping memory areas. */
+/* Similar to memmove(). */
+extern uint8_t *
+ u8_move (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_move (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_move (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Set the first N characters of S to UC. UC should be a character that
+ occupies only 1 unit. */
+/* Similar to memset(). */
+extern uint8_t *
+ u8_set (uint8_t *s, ucs4_t uc, size_t n);
+extern uint16_t *
+ u16_set (uint16_t *s, ucs4_t uc, size_t n);
+extern uint32_t *
+ u32_set (uint32_t *s, ucs4_t uc, size_t n);
+
+/* Compare S1 and S2, each of length N. */
+/* Similar to memcmp(). */
+extern int
+ u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+extern int
+ u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+extern int
+ u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+
+/* Compare S1 and S2. */
+/* Similar to the gnulib function memcmp2(). */
+extern int
+ u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2);
+extern int
+ u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2);
+extern int
+ u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2);
+
+/* Search the string at S for UC. */
+/* Similar to memchr(). */
+extern uint8_t *
+ u8_chr (const uint8_t *s, size_t n, ucs4_t uc);
+extern uint16_t *
+ u16_chr (const uint16_t *s, size_t n, ucs4_t uc);
+extern uint32_t *
+ u32_chr (const uint32_t *s, size_t n, ucs4_t uc);
+
+/* Count the number of Unicode characters in the N units from S. */
+/* Similar to mbsnlen(). */
+extern size_t
+ u8_mbsnlen (const uint8_t *s, size_t n);
+extern size_t
+ u16_mbsnlen (const uint16_t *s, size_t n);
+extern size_t
+ u32_mbsnlen (const uint32_t *s, size_t n);
+
+/* Elementary string functions with memory allocation. */
+
+/* Make a freshly allocated copy of S, of length N. */
+extern uint8_t *
+ u8_cpy_alloc (const uint8_t *s, size_t n);
+extern uint16_t *
+ u16_cpy_alloc (const uint16_t *s, size_t n);
+extern uint32_t *
+ u32_cpy_alloc (const uint32_t *s, size_t n);
+
+/* Elementary string functions on NUL terminated strings. */
+
+/* Return the length (number of units) of the first character in S.
+ Return 0 if it is the NUL character. Return -1 upon failure. */
+extern int
+ u8_strmblen (const uint8_t *s);
+extern int
+ u16_strmblen (const uint16_t *s);
+extern int
+ u32_strmblen (const uint32_t *s);
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL
+ character. Return -1 upon failure. */
+extern int
+ u8_strmbtouc (ucs4_t *puc, const uint8_t *s);
+extern int
+ u16_strmbtouc (ucs4_t *puc, const uint16_t *s);
+extern int
+ u32_strmbtouc (ucs4_t *puc, const uint32_t *s);
+
+/* Forward iteration step. Advances the pointer past the next character,
+ or returns NULL if the end of the string has been reached. Puts the
+ character's 'ucs4_t' representation in *PUC. */
+extern const uint8_t *
+ u8_next (ucs4_t *puc, const uint8_t *s);
+extern const uint16_t *
+ u16_next (ucs4_t *puc, const uint16_t *s);
+extern const uint32_t *
+ u32_next (ucs4_t *puc, const uint32_t *s);
+
+/* Backward iteration step. Advances the pointer to point to the previous
+ character, or returns NULL if the beginning of the string had been reached.
+ Puts the character's 'ucs4_t' representation in *PUC. */
+extern const uint8_t *
+ u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start);
+extern const uint16_t *
+ u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start);
+extern const uint32_t *
+ u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start);
+
+/* Return the number of units in S. */
+/* Similar to strlen(), wcslen(). */
+extern size_t
+ u8_strlen (const uint8_t *s);
+extern size_t
+ u16_strlen (const uint16_t *s);
+extern size_t
+ u32_strlen (const uint32_t *s);
+
+/* Return the number of units in S, but at most MAXLEN. */
+/* Similar to strnlen(), wcsnlen(). */
+extern size_t
+ u8_strnlen (const uint8_t *s, size_t maxlen);
+extern size_t
+ u16_strnlen (const uint16_t *s, size_t maxlen);
+extern size_t
+ u32_strnlen (const uint32_t *s, size_t maxlen);
+
+/* Copy SRC to DEST. */
+/* Similar to strcpy(), wcscpy(). */
+extern uint8_t *
+ u8_strcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_strcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_strcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */
+/* Similar to stpcpy(). */
+extern uint8_t *
+ u8_stpcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_stpcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_stpcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy no more than N units of SRC to DEST. */
+/* Similar to strncpy(), wcsncpy(). */
+extern uint8_t *
+ u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy no more than N units of SRC to DEST, returning the address of
+ the last unit written into DEST. */
+/* Similar to stpncpy(). */
+extern uint8_t *
+ u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Append SRC onto DEST. */
+/* Similar to strcat(), wcscat(). */
+extern uint8_t *
+ u8_strcat (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_strcat (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_strcat (uint32_t *dest, const uint32_t *src);
+
+/* Append no more than N units of SRC onto DEST. */
+/* Similar to strncat(), wcsncat(). */
+extern uint8_t *
+ u8_strncat (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_strncat (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_strncat (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Compare S1 and S2. */
+/* Similar to strcmp(), wcscmp(). */
+extern int
+ u8_strcmp (const uint8_t *s1, const uint8_t *s2);
+extern int
+ u16_strcmp (const uint16_t *s1, const uint16_t *s2);
+extern int
+ u32_strcmp (const uint32_t *s1, const uint32_t *s2);
+
+/* Compare S1 and S2 using the collation rules of the current locale.
+ Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.
+ Upon failure, set errno and return any value. */
+/* Similar to strcoll(), wcscoll(). */
+extern int
+ u8_strcoll (const uint8_t *s1, const uint8_t *s2);
+extern int
+ u16_strcoll (const uint16_t *s1, const uint16_t *s2);
+extern int
+ u32_strcoll (const uint32_t *s1, const uint32_t *s2);
+
+/* Compare no more than N units of S1 and S2. */
+/* Similar to strncmp(), wcsncmp(). */
+extern int
+ u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+extern int
+ u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+extern int
+ u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+
+/* Duplicate S, returning an identical malloc'd string. */
+/* Similar to strdup(), wcsdup(). */
+extern uint8_t *
+ u8_strdup (const uint8_t *s);
+extern uint16_t *
+ u16_strdup (const uint16_t *s);
+extern uint32_t *
+ u32_strdup (const uint32_t *s);
+
+/* Find the first occurrence of UC in STR. */
+/* Similar to strchr(), wcschr(). */
+extern uint8_t *
+ u8_strchr (const uint8_t *str, ucs4_t uc);
+extern uint16_t *
+ u16_strchr (const uint16_t *str, ucs4_t uc);
+extern uint32_t *
+ u32_strchr (const uint32_t *str, ucs4_t uc);
+
+/* Find the last occurrence of UC in STR. */
+/* Similar to strrchr(), wcsrchr(). */
+extern uint8_t *
+ u8_strrchr (const uint8_t *str, ucs4_t uc);
+extern uint16_t *
+ u16_strrchr (const uint16_t *str, ucs4_t uc);
+extern uint32_t *
+ u32_strrchr (const uint32_t *str, ucs4_t uc);
+
+/* Return the length of the initial segment of STR which consists entirely
+ of Unicode characters not in REJECT. */
+/* Similar to strcspn(), wcscspn(). */
+extern size_t
+ u8_strcspn (const uint8_t *str, const uint8_t *reject);
+extern size_t
+ u16_strcspn (const uint16_t *str, const uint16_t *reject);
+extern size_t
+ u32_strcspn (const uint32_t *str, const uint32_t *reject);
+
+/* Return the length of the initial segment of STR which consists entirely
+ of Unicode characters in ACCEPT. */
+/* Similar to strspn(), wcsspn(). */
+extern size_t
+ u8_strspn (const uint8_t *str, const uint8_t *accept);
+extern size_t
+ u16_strspn (const uint16_t *str, const uint16_t *accept);
+extern size_t
+ u32_strspn (const uint32_t *str, const uint32_t *accept);
+
+/* Find the first occurrence in STR of any character in ACCEPT. */
+/* Similar to strpbrk(), wcspbrk(). */
+extern uint8_t *
+ u8_strpbrk (const uint8_t *str, const uint8_t *accept);
+extern uint16_t *
+ u16_strpbrk (const uint16_t *str, const uint16_t *accept);
+extern uint32_t *
+ u32_strpbrk (const uint32_t *str, const uint32_t *accept);
+
+/* Find the first occurrence of NEEDLE in HAYSTACK. */
+/* Similar to strstr(), wcsstr(). */
+extern uint8_t *
+ u8_strstr (const uint8_t *haystack, const uint8_t *needle);
+extern uint16_t *
+ u16_strstr (const uint16_t *haystack, const uint16_t *needle);
+extern uint32_t *
+ u32_strstr (const uint32_t *haystack, const uint32_t *needle);
+
+/* Test whether STR starts with PREFIX. */
+extern bool
+ u8_startswith (const uint8_t *str, const uint8_t *prefix);
+extern bool
+ u16_startswith (const uint16_t *str, const uint16_t *prefix);
+extern bool
+ u32_startswith (const uint32_t *str, const uint32_t *prefix);
+
+/* Test whether STR ends with SUFFIX. */
+extern bool
+ u8_endswith (const uint8_t *str, const uint8_t *suffix);
+extern bool
+ u16_endswith (const uint16_t *str, const uint16_t *suffix);
+extern bool
+ u32_endswith (const uint32_t *str, const uint32_t *suffix);
+
+/* Divide STR into tokens separated by characters in DELIM.
+ This interface is actually more similar to wcstok than to strtok. */
+/* Similar to strtok_r(), wcstok(). */
+extern uint8_t *
+ u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr);
+extern uint16_t *
+ u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr);
+extern uint32_t *
+ u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNISTR_H */
diff --git a/lib/unistr/u-cmp2.h b/lib/unistr/u-cmp2.h
new file mode 100644
index 0000000..ae3750c
--- /dev/null
+++ b/lib/unistr/u-cmp2.h
@@ -0,0 +1,32 @@
+/* Compare pieces of UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2)
+{
+ int cmp = U_CMP (s1, s2, MIN (n1, n2));
+
+ if (cmp == 0)
+ {
+ if (n1 < n2)
+ cmp = -1;
+ else if (n1 > n2)
+ cmp = 1;
+ }
+
+ return cmp;
+}
diff --git a/lib/unistr/u-cpy-alloc.h b/lib/unistr/u-cpy-alloc.h
new file mode 100644
index 0000000..dace3e2
--- /dev/null
+++ b/lib/unistr/u-cpy-alloc.h
@@ -0,0 +1,39 @@
+/* Copy piece of UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 <stdlib.h>
+#include <string.h>
+
+UNIT *
+FUNC (const UNIT *s, size_t n)
+{
+ UNIT *dest;
+
+ dest = (UNIT *) malloc (n > 0 ? n * sizeof (UNIT) : 1);
+ if (dest != NULL)
+ {
+#if 0
+ UNIT *destptr = dest;
+
+ for (; n > 0; n--)
+ *destptr++ = *s++;
+#else
+ memcpy ((char *) dest, (const char *) s, n * sizeof (UNIT));
+#endif
+ }
+ return dest;
+}
diff --git a/lib/unistr/u-cpy.h b/lib/unistr/u-cpy.h
new file mode 100644
index 0000000..c660eae
--- /dev/null
+++ b/lib/unistr/u-cpy.h
@@ -0,0 +1,32 @@
+/* Copy piece of UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 <string.h>
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src, size_t n)
+{
+#if 0
+ UNIT *destptr = dest;
+
+ for (; n > 0; n--)
+ *destptr++ = *src++;
+#else
+ memcpy ((char *) dest, (const char *) src, n * sizeof (UNIT));
+#endif
+ return dest;
+}
diff --git a/lib/unistr/u-endswith.h b/lib/unistr/u-endswith.h
new file mode 100644
index 0000000..739bfbb
--- /dev/null
+++ b/lib/unistr/u-endswith.h
@@ -0,0 +1,28 @@
+/* Substring test for UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+bool
+FUNC (const UNIT *str, const UNIT *suffix)
+{
+ size_t len = U_STRLEN (str);
+ size_t suffixlen = U_STRLEN (suffix);
+
+ if (len >= suffixlen)
+ return (U_CMP (str + (len - suffixlen), suffix, suffixlen) == 0);
+ else
+ return false;
+}
diff --git a/lib/unistr/u-move.h b/lib/unistr/u-move.h
new file mode 100644
index 0000000..77b6788
--- /dev/null
+++ b/lib/unistr/u-move.h
@@ -0,0 +1,44 @@
+/* Copy piece of UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 <string.h>
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src, size_t n)
+{
+#if 0
+ if (dest < src)
+ {
+ UNIT *destptr = dest;
+ const UNIT *srcptr = src;
+
+ for (; n > 0; n--)
+ *destptr++ = *srcptr++;
+ }
+ else if (dest > src)
+ {
+ UNIT *destptr = dest + n - 1;
+ const UNIT *srcptr = src + n - 1;
+
+ for (; n > 0; n--)
+ *destptr-- = *srcptr--;
+ }
+#else
+ memmove ((char *) dest, (const char *) src, n * sizeof (UNIT));
+#endif
+ return dest;
+}
diff --git a/lib/unistr/u-set.h b/lib/unistr/u-set.h
new file mode 100644
index 0000000..a093e7f
--- /dev/null
+++ b/lib/unistr/u-set.h
@@ -0,0 +1,39 @@
+/* Fill UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 <errno.h>
+
+UNIT *
+FUNC (UNIT *s, ucs4_t uc, size_t n)
+{
+ if (n > 0)
+ {
+ if (IS_SINGLE_UNIT (uc))
+ {
+ UNIT *ptr = s;
+
+ for (; n > 0; n--)
+ *ptr++ = uc;
+ }
+ else
+ {
+ errno = EILSEQ;
+ return NULL;
+ }
+ }
+ return s;
+}
diff --git a/lib/unistr/u-startswith.h b/lib/unistr/u-startswith.h
new file mode 100644
index 0000000..0486ef8
--- /dev/null
+++ b/lib/unistr/u-startswith.h
@@ -0,0 +1,30 @@
+/* Substring test for UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+bool
+FUNC (const UNIT *str, const UNIT *prefix)
+{
+ for (;;)
+ {
+ UNIT uc1 = *str++;
+ UNIT uc2 = *prefix++;
+ if (uc2 == 0)
+ return true;
+ if (uc1 != uc2)
+ return false;
+ }
+}
diff --git a/lib/unistr/u-stpcpy.h b/lib/unistr/u-stpcpy.h
new file mode 100644
index 0000000..b13e816
--- /dev/null
+++ b/lib/unistr/u-stpcpy.h
@@ -0,0 +1,24 @@
+/* Copy UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src)
+{
+ for (; (*dest = *src) != 0; src++, dest++)
+ ;
+ return dest;
+}
diff --git a/lib/unistr/u-stpncpy.h b/lib/unistr/u-stpncpy.h
new file mode 100644
index 0000000..09bf434
--- /dev/null
+++ b/lib/unistr/u-stpncpy.h
@@ -0,0 +1,30 @@
+/* Copy UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src, size_t n)
+{
+ for (; n > 0 && (*dest = *src) != 0; src++, dest++, n--)
+ ;
+
+ /* This behavior is rarely useful, but it is here for consistency with
+ strncpy and wcsncpy. */
+ for (; n > 0; n--)
+ *dest++ = 0;
+
+ return dest - 1;
+}
diff --git a/lib/unistr/u-strcat.h b/lib/unistr/u-strcat.h
new file mode 100644
index 0000000..e86bbf9
--- /dev/null
+++ b/lib/unistr/u-strcat.h
@@ -0,0 +1,26 @@
+/* Concatenate UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src)
+{
+ UNIT *destptr = dest + U_STRLEN (dest);
+
+ for (; (*destptr = *src) != 0; src++, destptr++)
+ ;
+ return dest;
+}
diff --git a/lib/unistr/u-strcoll.h b/lib/unistr/u-strcoll.h
new file mode 100644
index 0000000..af404a0
--- /dev/null
+++ b/lib/unistr/u-strcoll.h
@@ -0,0 +1,81 @@
+/* Compare UTF-8/UTF-16/UTF-32 strings using the collation rules of the current
+ locale.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+int
+FUNC (const UNIT *s1, const UNIT *s2)
+{
+ /* When this function succeeds, it sets errno back to its original value.
+ When it fails, it sets errno, but also returns a meaningful return value,
+ for the sake of callers which ignore errno. */
+ int final_errno = errno;
+ char *sl1;
+ char *sl2;
+ int result;
+
+ sl1 = U_STRCONV_TO_LOCALE (s1);
+ if (sl1 != NULL)
+ {
+ sl2 = U_STRCONV_TO_LOCALE (s2);
+ if (sl2 != NULL)
+ {
+ /* Compare sl1 and sl2. */
+ errno = 0;
+ result = strcoll (sl1, sl2);
+ if (errno == 0)
+ {
+ /* strcoll succeeded. */
+ free (sl1);
+ free (sl2);
+ }
+ else
+ {
+ /* strcoll failed. */
+ final_errno = errno;
+ free (sl1);
+ free (sl2);
+ result = U_STRCMP (s1, s2);
+ }
+ }
+ else
+ {
+ /* s1 could be converted to locale encoding, s2 not. */
+ final_errno = errno;
+ free (sl1);
+ result = -1;
+ }
+ }
+ else
+ {
+ final_errno = errno;
+ sl2 = U_STRCONV_TO_LOCALE (s2);
+ if (sl2 != NULL)
+ {
+ /* s2 could be converted to locale encoding, s1 not. */
+ free (sl2);
+ result = 1;
+ }
+ else
+ {
+ /* Neither s1 nor s2 could be converted to locale encoding. */
+ result = U_STRCMP (s1, s2);
+ }
+ }
+
+ errno = final_errno;
+ return result;
+}
diff --git a/lib/unistr/u-strcpy.h b/lib/unistr/u-strcpy.h
new file mode 100644
index 0000000..153f60e
--- /dev/null
+++ b/lib/unistr/u-strcpy.h
@@ -0,0 +1,26 @@
+/* Copy UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src)
+{
+ UNIT *destptr = dest;
+
+ for (; (*destptr = *src) != 0; src++, destptr++)
+ ;
+ return dest;
+}
diff --git a/lib/unistr/u-strcspn.h b/lib/unistr/u-strcspn.h
new file mode 100644
index 0000000..de32656
--- /dev/null
+++ b/lib/unistr/u-strcspn.h
@@ -0,0 +1,54 @@
+/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+size_t
+FUNC (const UNIT *str, const UNIT *reject)
+{
+ /* Optimize two cases. */
+ if (reject[0] == 0)
+ return U_STRLEN (str);
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, reject);
+ if (count >= 0 && reject[count] == 0)
+ {
+ const UNIT *found = U_STRCHR (str, uc);
+ if (found != NULL)
+ return found - str;
+ else
+ return U_STRLEN (str);
+ }
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+
+ for (;;)
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, ptr);
+ if (count == 0)
+ return ptr - str;
+ if (count < 0)
+ break;
+ if (U_STRCHR (reject, uc))
+ return ptr - str;
+ ptr += count;
+ }
+ return U_STRLEN (str);
+ }
+}
diff --git a/lib/unistr/u-strdup.h b/lib/unistr/u-strdup.h
new file mode 100644
index 0000000..71e527a
--- /dev/null
+++ b/lib/unistr/u-strdup.h
@@ -0,0 +1,40 @@
+/* Copy UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 <stdlib.h>
+#include <string.h>
+
+UNIT *
+FUNC (const UNIT *s)
+{
+ size_t n = U_STRLEN (s) + 1;
+ UNIT *dest;
+
+ dest = (UNIT *) malloc (n * sizeof (UNIT));
+ if (dest != NULL)
+ {
+#if 0
+ UNIT *destptr = dest;
+
+ for (; n > 0; n--)
+ *destptr++ = *s++;
+#else
+ memcpy ((char *) dest, (const char *) s, n * sizeof (UNIT));
+#endif
+ }
+ return dest;
+}
diff --git a/lib/unistr/u-strlen.h b/lib/unistr/u-strlen.h
new file mode 100644
index 0000000..51dcae0
--- /dev/null
+++ b/lib/unistr/u-strlen.h
@@ -0,0 +1,26 @@
+/* Determine length of UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+size_t
+FUNC (const UNIT *s)
+{
+ const UNIT *ptr;
+
+ for (ptr = s; *ptr != 0; ptr++)
+ ;
+ return ptr - s;
+}
diff --git a/lib/unistr/u-strncat.h b/lib/unistr/u-strncat.h
new file mode 100644
index 0000000..40b442e
--- /dev/null
+++ b/lib/unistr/u-strncat.h
@@ -0,0 +1,28 @@
+/* Concatenate UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src, size_t n)
+{
+ UNIT *destptr = dest + U_STRLEN (dest);
+
+ for (; n > 0 && (*destptr = *src) != 0; src++, destptr++, n--)
+ ;
+ if (n == 0)
+ *destptr = 0;
+ return dest;
+}
diff --git a/lib/unistr/u-strncpy.h b/lib/unistr/u-strncpy.h
new file mode 100644
index 0000000..3d441b5
--- /dev/null
+++ b/lib/unistr/u-strncpy.h
@@ -0,0 +1,32 @@
+/* Copy UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *dest, const UNIT *src, size_t n)
+{
+ UNIT *destptr = dest;
+
+ for (; n > 0 && (*destptr = *src) != 0; src++, destptr++, n--)
+ ;
+
+ /* This behavior is rarely useful, but it is here for consistency with
+ strncpy and wcsncpy. */
+ for (; n > 0; n--)
+ *destptr++ = 0;
+
+ return dest;
+}
diff --git a/lib/unistr/u-strnlen.h b/lib/unistr/u-strnlen.h
new file mode 100644
index 0000000..6a1d2ad
--- /dev/null
+++ b/lib/unistr/u-strnlen.h
@@ -0,0 +1,26 @@
+/* Determine bounded length of UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+size_t
+FUNC (const UNIT *s, size_t maxlen)
+{
+ const UNIT *ptr;
+
+ for (ptr = s; maxlen > 0 && *ptr != 0; ptr++, maxlen--)
+ ;
+ return ptr - s;
+}
diff --git a/lib/unistr/u-strpbrk.h b/lib/unistr/u-strpbrk.h
new file mode 100644
index 0000000..2ff4618
--- /dev/null
+++ b/lib/unistr/u-strpbrk.h
@@ -0,0 +1,46 @@
+/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *str, const UNIT *accept)
+{
+ /* Optimize two cases. */
+ if (accept[0] == 0)
+ return NULL;
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, accept);
+ if (count >= 0 && accept[count] == 0)
+ return U_STRCHR (str, uc);
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+
+ for (;;)
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, ptr);
+ if (count <= 0)
+ break;
+ if (U_STRCHR (accept, uc))
+ return (UNIT *) ptr;
+ ptr += count;
+ }
+ return NULL;
+ }
+}
diff --git a/lib/unistr/u-strspn.h b/lib/unistr/u-strspn.h
new file mode 100644
index 0000000..6502ce4
--- /dev/null
+++ b/lib/unistr/u-strspn.h
@@ -0,0 +1,54 @@
+/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+size_t
+FUNC (const UNIT *str, const UNIT *accept)
+{
+ /* Optimize two cases. */
+ if (accept[0] == 0)
+ return 0;
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, accept);
+ if (count >= 0 && accept[count] == 0)
+ {
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr += count)
+ if (U_CMP (ptr, accept, count) != 0)
+ break;
+ return ptr - str;
+ }
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+
+ for (;;)
+ {
+ ucs4_t uc;
+ int count = U_STRMBTOUC (&uc, ptr);
+ if (count == 0)
+ return ptr - str;
+ if (count < 0)
+ break;
+ if (!U_STRCHR (accept, uc))
+ return ptr - str;
+ ptr += count;
+ }
+ return U_STRLEN (str);
+ }
+}
diff --git a/lib/unistr/u-strstr.h b/lib/unistr/u-strstr.h
new file mode 100644
index 0000000..55b5a31
--- /dev/null
+++ b/lib/unistr/u-strstr.h
@@ -0,0 +1,49 @@
+/* Substring test for UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (const UNIT *haystack, const UNIT *needle)
+{
+ UNIT first = needle[0];
+
+ /* Is needle empty? */
+ if (first == 0)
+ return (UNIT *) haystack;
+
+ /* Is needle nearly empty? */
+ if (needle[1] == 0)
+ return U_STRCHR (haystack, first);
+
+ /* Search for needle's first unit. */
+ for (; *haystack != 0; haystack++)
+ if (*haystack == first)
+ {
+ /* Compare with needle's remaining units. */
+ const UNIT *hptr = haystack + 1;
+ const UNIT *nptr = needle + 1;
+ for (;;)
+ {
+ if (*hptr != *nptr)
+ break;
+ hptr++; nptr++;
+ if (*nptr == 0)
+ return (UNIT *) haystack;
+ }
+ }
+
+ return NULL;
+}
diff --git a/lib/unistr/u-strtok.h b/lib/unistr/u-strtok.h
new file mode 100644
index 0000000..7ed57d6
--- /dev/null
+++ b/lib/unistr/u-strtok.h
@@ -0,0 +1,52 @@
+/* Tokenize UTF-8/UTF-16/UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+UNIT *
+FUNC (UNIT *str, const UNIT *delim, UNIT **ptr)
+{
+ if (str == NULL)
+ {
+ str = *ptr;
+ if (str == NULL)
+ return NULL; /* reminder that end of token sequence has been reached */
+ }
+
+ /* Skip leading delimiters. */
+ str += U_STRSPN (str, delim);
+
+ /* Found a token? */
+ if (*str == 0)
+ {
+ *ptr = NULL;
+ return NULL;
+ }
+
+ /* Move past the token. */
+ {
+ UNIT *token_end = U_STRPBRK (str, delim);
+ if (token_end)
+ {
+ /* NUL-terminate the token. */
+ *token_end = 0;
+ *ptr = token_end + 1;
+ }
+ else
+ *ptr = NULL;
+ }
+
+ return str;
+}
diff --git a/lib/unistr/u16-check.c b/lib/unistr/u16-check.c
new file mode 100644
index 0000000..380cec2
--- /dev/null
+++ b/lib/unistr/u16-check.c
@@ -0,0 +1,51 @@
+/* Check UTF-16 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint16_t *
+u16_check (const uint16_t *s, size_t n)
+{
+ const uint16_t *s_end = s + n;
+
+ while (s < s_end)
+ {
+ /* Keep in sync with unistr.h and utf16-ucs4.c. */
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ s++;
+ continue;
+ }
+ if (c < 0xdc00)
+ {
+ if (s + 2 <= s_end
+ && s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ s += 2;
+ continue;
+ }
+ }
+ /* invalid or incomplete multibyte character */
+ return s;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u16-chr.c b/lib/unistr/u16-chr.c
new file mode 100644
index 0000000..2d7d797
--- /dev/null
+++ b/lib/unistr/u16-chr.c
@@ -0,0 +1,56 @@
+/* Search character in piece of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint16_t *
+u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
+{
+ uint16_t c[2];
+
+ if (uc < 0x10000)
+ {
+ uint16_t c0 = uc;
+
+ for (; n > 0; s++, n--)
+ {
+ if (*s == c0)
+ return (uint16_t *) s;
+ }
+ }
+ else
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (n > 1)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
+
+ for (n--; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1)
+ return (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u16-cmp.c b/lib/unistr/u16-cmp.c
new file mode 100644
index 0000000..0130d27
--- /dev/null
+++ b/lib/unistr/u16-cmp.c
@@ -0,0 +1,54 @@
+/* Compare pieces of UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+{
+ /* Note that the UTF-16 encoding does NOT preserve lexicographic order.
+ Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
+ we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
+ for (; n > 0;)
+ {
+ uint16_t c1 = *s1++;
+ uint16_t c2 = *s2++;
+ if (c1 == c2)
+ {
+ n--;
+ continue;
+ }
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
+ }
+ return 0;
+}
diff --git a/lib/unistr/u16-cmp2.c b/lib/unistr/u16-cmp2.c
new file mode 100644
index 0000000..766dcd2
--- /dev/null
+++ b/lib/unistr/u16-cmp2.c
@@ -0,0 +1,28 @@
+/* Compare pieces of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include "minmax.h"
+
+#define FUNC u16_cmp2
+#define UNIT uint16_t
+#define U_CMP u16_cmp
+#include "u-cmp2.h"
diff --git a/lib/unistr/u16-cpy-alloc.c b/lib/unistr/u16-cpy-alloc.c
new file mode 100644
index 0000000..047977e
--- /dev/null
+++ b/lib/unistr/u16-cpy-alloc.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_cpy_alloc
+#define UNIT uint16_t
+#include "u-cpy-alloc.h"
diff --git a/lib/unistr/u16-cpy.c b/lib/unistr/u16-cpy.c
new file mode 100644
index 0000000..13e04b8
--- /dev/null
+++ b/lib/unistr/u16-cpy.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_cpy
+#define UNIT uint16_t
+#include "u-cpy.h"
diff --git a/lib/unistr/u16-endswith.c b/lib/unistr/u16-endswith.c
new file mode 100644
index 0000000..d9abf46
--- /dev/null
+++ b/lib/unistr/u16-endswith.c
@@ -0,0 +1,27 @@
+/* Substring test for UTF-16 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_endswith
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#define U_CMP u16_cmp
+#include "u-endswith.h"
diff --git a/lib/unistr/u16-mblen.c b/lib/unistr/u16-mblen.c
new file mode 100644
index 0000000..6bb35ac
--- /dev/null
+++ b/lib/unistr/u16-mblen.c
@@ -0,0 +1,49 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_mblen (const uint16_t *s, size_t n)
+{
+ if (n > 0)
+ {
+ /* Keep in sync with unistr.h and utf16-ucs4.c. */
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ return (c != 0 ? 1 : 0);
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+ {
+ if (n >= 2
+ && s[1] >= 0xdc00 && s[1] < 0xe000)
+ return 2;
+ }
+#else
+ {
+ if (n >= 2)
+ return 2;
+ }
+#endif
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u16-mbsnlen.c b/lib/unistr/u16-mbsnlen.c
new file mode 100644
index 0000000..881958e
--- /dev/null
+++ b/lib/unistr/u16-mbsnlen.c
@@ -0,0 +1,39 @@
+/* Count characters in UTF-16 string.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+size_t
+u16_mbsnlen (const uint16_t *s, size_t n)
+{
+ size_t characters;
+
+ characters = 0;
+ while (n > 0)
+ {
+ int count = u16_mblen (s, n);
+ if (count <= 0)
+ count = 1;
+ s += count;
+ n -= count;
+ characters++;
+ }
+ return characters;
+}
diff --git a/lib/unistr/u16-mbtouc-aux.c b/lib/unistr/u16-mbtouc-aux.c
new file mode 100644
index 0000000..5f35b86
--- /dev/null
+++ b/lib/unistr/u16-mbtouc-aux.c
@@ -0,0 +1,51 @@
+/* Conversion UTF-16 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#if defined IN_LIBUNISTRING || HAVE_INLINE
+
+int
+u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xdc00)
+ {
+ if (n >= 2)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u16-mbtouc-unsafe-aux.c b/lib/unistr/u16-mbtouc-unsafe-aux.c
new file mode 100644
index 0000000..9906e30
--- /dev/null
+++ b/lib/unistr/u16-mbtouc-unsafe-aux.c
@@ -0,0 +1,55 @@
+/* Conversion UTF-16 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#if defined IN_LIBUNISTRING || HAVE_INLINE
+
+int
+u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+#endif
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+#endif
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u16-mbtouc-unsafe.c b/lib/unistr/u16-mbtouc-unsafe.c
new file mode 100644
index 0000000..cc858d8
--- /dev/null
+++ b/lib/unistr/u16-mbtouc-unsafe.c
@@ -0,0 +1,66 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u16_mbtouc_unsafe as 'extern', not
+ 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+#endif
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+#endif
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u16-mbtouc.c b/lib/unistr/u16-mbtouc.c
new file mode 100644
index 0000000..2691db8
--- /dev/null
+++ b/lib/unistr/u16-mbtouc.c
@@ -0,0 +1,61 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u16_mbtouc as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ if (c < 0xdc00)
+ {
+ if (n >= 2)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u16-mbtoucr.c b/lib/unistr/u16-mbtoucr.c
new file mode 100644
index 0000000..a1bd8ee
--- /dev/null
+++ b/lib/unistr/u16-mbtoucr.c
@@ -0,0 +1,54 @@
+/* Look at first character in UTF-16 string, returning an error code.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ if (c < 0xdc00)
+ {
+ if (n >= 2)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return -1;
+}
diff --git a/lib/unistr/u16-move.c b/lib/unistr/u16-move.c
new file mode 100644
index 0000000..2bf8c61
--- /dev/null
+++ b/lib/unistr/u16-move.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_move
+#define UNIT uint16_t
+#include "u-move.h"
diff --git a/lib/unistr/u16-next.c b/lib/unistr/u16-next.c
new file mode 100644
index 0000000..7c49f72
--- /dev/null
+++ b/lib/unistr/u16-next.c
@@ -0,0 +1,37 @@
+/* Iterate over next character in UTF-16 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint16_t *
+u16_next (ucs4_t *puc, const uint16_t *s)
+{
+ int count;
+
+ count = u16_strmbtouc (puc, s);
+ if (count > 0)
+ return s + count;
+ else
+ {
+ if (count < 0)
+ *puc = 0xfffd;
+ return NULL;
+ }
+}
diff --git a/lib/unistr/u16-prev.c b/lib/unistr/u16-prev.c
new file mode 100644
index 0000000..3beecf0
--- /dev/null
+++ b/lib/unistr/u16-prev.c
@@ -0,0 +1,53 @@
+/* Iterate over previous character in UTF-16 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint16_t *
+u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start)
+{
+ /* Keep in sync with unistr.h and utf16-ucs4.c. */
+ if (s != start)
+ {
+ uint16_t c_1 = s[-1];
+
+ if (c_1 < 0xd800 || c_1 >= 0xe000)
+ {
+ *puc = c_1;
+ return s - 1;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if (c_1 >= 0xdc00)
+#endif
+ if (s - 1 != start)
+ {
+ uint16_t c_2 = s[-2];
+
+#if CONFIG_UNICODE_SAFETY
+ if (c_2 >= 0xd800 && c_2 < 0xdc00)
+#endif
+ {
+ *puc = 0x10000 + ((c_2 - 0xd800) << 10) + (c_1 - 0xdc00);
+ return s - 2;
+ }
+ }
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u16-set.c b/lib/unistr/u16-set.c
new file mode 100644
index 0000000..9ef307f
--- /dev/null
+++ b/lib/unistr/u16-set.c
@@ -0,0 +1,26 @@
+/* Fill UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_set
+#define UNIT uint16_t
+#define IS_SINGLE_UNIT(uc) (uc < 0xd800 || (uc < 0x10000 && uc >= 0xe000))
+#include "u-set.h"
diff --git a/lib/unistr/u16-startswith.c b/lib/unistr/u16-startswith.c
new file mode 100644
index 0000000..2f39d74
--- /dev/null
+++ b/lib/unistr/u16-startswith.c
@@ -0,0 +1,25 @@
+/* Substring test for UTF-16 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_startswith
+#define UNIT uint16_t
+#include "u-startswith.h"
diff --git a/lib/unistr/u16-stpcpy.c b/lib/unistr/u16-stpcpy.c
new file mode 100644
index 0000000..9207edc
--- /dev/null
+++ b/lib/unistr/u16-stpcpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-16 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_stpcpy
+#define UNIT uint16_t
+#include "u-stpcpy.h"
diff --git a/lib/unistr/u16-stpncpy.c b/lib/unistr/u16-stpncpy.c
new file mode 100644
index 0000000..30ef7e3
--- /dev/null
+++ b/lib/unistr/u16-stpncpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_stpncpy
+#define UNIT uint16_t
+#include "u-stpncpy.h"
diff --git a/lib/unistr/u16-strcat.c b/lib/unistr/u16-strcat.c
new file mode 100644
index 0000000..bb88f1b
--- /dev/null
+++ b/lib/unistr/u16-strcat.c
@@ -0,0 +1,26 @@
+/* Concatenate UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strcat
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#include "u-strcat.h"
diff --git a/lib/unistr/u16-strchr.c b/lib/unistr/u16-strchr.c
new file mode 100644
index 0000000..673152f
--- /dev/null
+++ b/lib/unistr/u16-strchr.c
@@ -0,0 +1,63 @@
+/* Search character in UTF-16 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint16_t *
+u16_strchr (const uint16_t *s, ucs4_t uc)
+{
+ uint16_t c[2];
+
+ if (uc < 0x10000)
+ {
+ uint16_t c0 = uc;
+
+ for (;; s++)
+ {
+ if (*s == c0)
+ break;
+ if (*s == 0)
+ goto notfound;
+ }
+ return (uint16_t *) s;
+ }
+ else
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (*s == 0)
+ goto notfound;
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
+
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1)
+ break;
+ }
+ return (uint16_t *) s;
+ }
+ }
+notfound:
+ return NULL;
+}
diff --git a/lib/unistr/u16-strcmp.c b/lib/unistr/u16-strcmp.c
new file mode 100644
index 0000000..c161c65
--- /dev/null
+++ b/lib/unistr/u16-strcmp.c
@@ -0,0 +1,50 @@
+/* Compare UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_strcmp (const uint16_t *s1, const uint16_t *s2)
+{
+ /* Note that the UTF-16 encoding does NOT preserve lexicographic order.
+ Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
+ we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
+ for (;;)
+ {
+ uint16_t c1 = *s1++;
+ uint16_t c2 = *s2++;
+ if (c1 != 0 && c1 == c2)
+ continue;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
+ }
+}
diff --git a/lib/unistr/u16-strcoll.c b/lib/unistr/u16-strcoll.c
new file mode 100644
index 0000000..280ba83
--- /dev/null
+++ b/lib/unistr/u16-strcoll.c
@@ -0,0 +1,33 @@
+/* Compare UTF-16 strings using the collation rules of the current locale.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "uniconv.h"
+
+#define FUNC u16_strcoll
+#define UNIT uint16_t
+#define U_STRCMP u16_strcmp
+#define U_STRCONV_TO_LOCALE u16_strconv_to_locale
+#include "u-strcoll.h"
diff --git a/lib/unistr/u16-strcpy.c b/lib/unistr/u16-strcpy.c
new file mode 100644
index 0000000..92c3e7e
--- /dev/null
+++ b/lib/unistr/u16-strcpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strcpy
+#define UNIT uint16_t
+#include "u-strcpy.h"
diff --git a/lib/unistr/u16-strcspn.c b/lib/unistr/u16-strcspn.c
new file mode 100644
index 0000000..2f5ba43
--- /dev/null
+++ b/lib/unistr/u16-strcspn.c
@@ -0,0 +1,28 @@
+/* Search for some characters in UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strcspn
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#define U_STRMBTOUC u16_strmbtouc
+#define U_STRCHR u16_strchr
+#include "u-strcspn.h"
diff --git a/lib/unistr/u16-strdup.c b/lib/unistr/u16-strdup.c
new file mode 100644
index 0000000..22242c2
--- /dev/null
+++ b/lib/unistr/u16-strdup.c
@@ -0,0 +1,26 @@
+/* Copy UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strdup
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#include "u-strdup.h"
diff --git a/lib/unistr/u16-strlen.c b/lib/unistr/u16-strlen.c
new file mode 100644
index 0000000..9c05541
--- /dev/null
+++ b/lib/unistr/u16-strlen.c
@@ -0,0 +1,25 @@
+/* Determine length of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strlen
+#define UNIT uint16_t
+#include "u-strlen.h"
diff --git a/lib/unistr/u16-strmblen.c b/lib/unistr/u16-strmblen.c
new file mode 100644
index 0000000..e7f3625
--- /dev/null
+++ b/lib/unistr/u16-strmblen.c
@@ -0,0 +1,43 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_strmblen (const uint16_t *s)
+{
+ /* Keep in sync with unistr.h and utf16-ucs4.c. */
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ return (c != 0 ? 1 : 0);
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ return 2;
+ }
+#else
+ if (s[1] != 0)
+ return 2;
+#endif
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u16-strmbtouc.c b/lib/unistr/u16-strmbtouc.c
new file mode 100644
index 0000000..78d482e
--- /dev/null
+++ b/lib/unistr/u16-strmbtouc.c
@@ -0,0 +1,50 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_strmbtouc (ucs4_t *puc, const uint16_t *s)
+{
+ /* Keep in sync with unistr.h and utf16-ucs4.c. */
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return (c != 0 ? 1 : 0);
+ }
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+#endif
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+#else
+ if (s[1] != 0)
+#endif
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u16-strncat.c b/lib/unistr/u16-strncat.c
new file mode 100644
index 0000000..9e14388
--- /dev/null
+++ b/lib/unistr/u16-strncat.c
@@ -0,0 +1,26 @@
+/* Concatenate UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strncat
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#include "u-strncat.h"
diff --git a/lib/unistr/u16-strncmp.c b/lib/unistr/u16-strncmp.c
new file mode 100644
index 0000000..7278b6f
--- /dev/null
+++ b/lib/unistr/u16-strncmp.c
@@ -0,0 +1,54 @@
+/* Compare UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+{
+ /* Note that the UTF-16 encoding does NOT preserve lexicographic order.
+ Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
+ we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
+ for (; n > 0;)
+ {
+ uint16_t c1 = *s1++;
+ uint16_t c2 = *s2++;
+ if (c1 != 0 && c1 == c2)
+ {
+ n--;
+ continue;
+ }
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2, = 0 if c1 and c2 are both 0. */
+ }
+ return 0;
+}
diff --git a/lib/unistr/u16-strncpy.c b/lib/unistr/u16-strncpy.c
new file mode 100644
index 0000000..65676aa
--- /dev/null
+++ b/lib/unistr/u16-strncpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strncpy
+#define UNIT uint16_t
+#include "u-strncpy.h"
diff --git a/lib/unistr/u16-strnlen.c b/lib/unistr/u16-strnlen.c
new file mode 100644
index 0000000..1cd80c4
--- /dev/null
+++ b/lib/unistr/u16-strnlen.c
@@ -0,0 +1,25 @@
+/* Determine bounded length of UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strnlen
+#define UNIT uint16_t
+#include "u-strnlen.h"
diff --git a/lib/unistr/u16-strpbrk.c b/lib/unistr/u16-strpbrk.c
new file mode 100644
index 0000000..6360581
--- /dev/null
+++ b/lib/unistr/u16-strpbrk.c
@@ -0,0 +1,27 @@
+/* Search for some characters in UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strpbrk
+#define UNIT uint16_t
+#define U_STRMBTOUC u16_strmbtouc
+#define U_STRCHR u16_strchr
+#include "u-strpbrk.h"
diff --git a/lib/unistr/u16-strrchr.c b/lib/unistr/u16-strrchr.c
new file mode 100644
index 0000000..b3c7ab0
--- /dev/null
+++ b/lib/unistr/u16-strrchr.c
@@ -0,0 +1,64 @@
+/* Search character in UTF-16 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint16_t *
+u16_strrchr (const uint16_t *s, ucs4_t uc)
+{
+ /* Calling u16_strlen and then searching from the other end would cause more
+ memory accesses. Avoid that, at the cost of a few more comparisons. */
+ uint16_t *result = NULL;
+ uint16_t c[2];
+
+ if (uc < 0x10000)
+ {
+ uint16_t c0 = uc;
+
+ for (;; s++)
+ {
+ if (*s == c0)
+ result = (uint16_t *) s;
+ if (*s == 0)
+ break;
+ }
+ }
+ else
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (*s)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
+
+ /* FIXME: Maybe walking the string via u16_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ return result;
+}
diff --git a/lib/unistr/u16-strspn.c b/lib/unistr/u16-strspn.c
new file mode 100644
index 0000000..04ba8e6
--- /dev/null
+++ b/lib/unistr/u16-strspn.c
@@ -0,0 +1,29 @@
+/* Search for some characters in UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strspn
+#define UNIT uint16_t
+#define U_STRLEN u16_strlen
+#define U_STRMBTOUC u16_strmbtouc
+#define U_CMP u16_cmp
+#define U_STRCHR u16_strchr
+#include "u-strspn.h"
diff --git a/lib/unistr/u16-strstr.c b/lib/unistr/u16-strstr.c
new file mode 100644
index 0000000..bc61233
--- /dev/null
+++ b/lib/unistr/u16-strstr.c
@@ -0,0 +1,28 @@
+/* Substring test for UTF-16 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+/* FIXME: Maybe walking the string via u16_mblen is a win? */
+
+#define FUNC u16_strstr
+#define UNIT uint16_t
+#define U_STRCHR u16_strchr
+#include "u-strstr.h"
diff --git a/lib/unistr/u16-strtok.c b/lib/unistr/u16-strtok.c
new file mode 100644
index 0000000..dd9b247
--- /dev/null
+++ b/lib/unistr/u16-strtok.c
@@ -0,0 +1,27 @@
+/* Tokenize UTF-16 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_strtok
+#define UNIT uint16_t
+#define U_STRSPN u16_strspn
+#define U_STRPBRK u16_strpbrk
+#include "u-strtok.h"
diff --git a/lib/unistr/u16-to-u32.c b/lib/unistr/u16-to-u32.c
new file mode 100644
index 0000000..2f39dcd
--- /dev/null
+++ b/lib/unistr/u16-to-u32.c
@@ -0,0 +1,125 @@
+/* Convert UTF-16 string to UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_to_u32
+#define SRC_UNIT uint16_t
+#define DST_UNIT uint32_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ count = u16_mbtouc (&uc, s, s_end - s);
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ s += count;
+
+ /* Store it in the output string. */
+ if (length + 1 > allocated)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 1 > allocated)
+ allocated = length + 1;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ }
+ result[length++] = uc;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u16-to-u8.c b/lib/unistr/u16-to-u8.c
new file mode 100644
index 0000000..38b27ec
--- /dev/null
+++ b/lib/unistr/u16-to-u8.c
@@ -0,0 +1,136 @@
+/* Convert UTF-16 string to UTF-8 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u16_to_u8
+#define SRC_UNIT uint16_t
+#define DST_UNIT uint8_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ count = u16_mbtouc (&uc, s, s_end - s);
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ s += count;
+
+ /* Store it in the output string. */
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count == -1)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (count == -2)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 6 > allocated)
+ allocated = length + 6;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count < 0)
+ abort ();
+ }
+ length += count;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u16-uctomb-aux.c b/lib/unistr/u16-uctomb-aux.c
new file mode 100644
index 0000000..384452b
--- /dev/null
+++ b/lib/unistr/u16-uctomb-aux.c
@@ -0,0 +1,58 @@
+/* Conversion UCS-4 to UTF-16.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800)
+ {
+ /* The case n >= 1 is already handled by the caller. */
+ }
+ else if (uc < 0x10000)
+ {
+ if (uc >= 0xe000)
+ {
+ if (n >= 1)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ }
+ else
+ return -1;
+ }
+ else
+ {
+ if (uc < 0x110000)
+ {
+ if (n >= 2)
+ {
+ s[0] = 0xd800 + ((uc - 0x10000) >> 10);
+ s[1] = 0xdc00 + ((uc - 0x10000) & 0x3ff);
+ return 2;
+ }
+ }
+ else
+ return -1;
+ }
+ return -2;
+}
diff --git a/lib/unistr/u16-uctomb.c b/lib/unistr/u16-uctomb.c
new file mode 100644
index 0000000..6ac5ada
--- /dev/null
+++ b/lib/unistr/u16-uctomb.c
@@ -0,0 +1,72 @@
+/* Store a character in UTF-16 string.
+ Copyright (C) 2002, 2005-2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u16_uctomb as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u16_uctomb (uint16_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800)
+ {
+ if (n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ /* else return -2, below. */
+ }
+ else if (uc < 0x10000)
+ {
+ if (uc >= 0xe000)
+ {
+ if (n >= 1)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ }
+ else
+ return -1;
+ }
+ else
+ {
+ if (uc < 0x110000)
+ {
+ if (n >= 2)
+ {
+ s[0] = 0xd800 + ((uc - 0x10000) >> 10);
+ s[1] = 0xdc00 + ((uc - 0x10000) & 0x3ff);
+ return 2;
+ }
+ }
+ else
+ return -1;
+ }
+ return -2;
+}
+
+#endif
diff --git a/lib/unistr/u32-check.c b/lib/unistr/u32-check.c
new file mode 100644
index 0000000..87e9127
--- /dev/null
+++ b/lib/unistr/u32-check.c
@@ -0,0 +1,39 @@
+/* Check UTF-32 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint32_t *
+u32_check (const uint32_t *s, size_t n)
+{
+ const uint32_t *s_end = s + n;
+
+ while (s < s_end)
+ {
+ uint32_t c = *s;
+
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+ s++;
+ else
+ /* invalid Unicode character */
+ return s;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u32-chr.c b/lib/unistr/u32-chr.c
new file mode 100644
index 0000000..5a594b2
--- /dev/null
+++ b/lib/unistr/u32-chr.c
@@ -0,0 +1,32 @@
+/* Search character in piece of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint32_t *
+u32_chr (const uint32_t *s, size_t n, ucs4_t uc)
+{
+ for (; n > 0; s++, n--)
+ {
+ if (*s == uc)
+ return (uint32_t *) s;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u32-cmp.c b/lib/unistr/u32-cmp.c
new file mode 100644
index 0000000..a273b10
--- /dev/null
+++ b/lib/unistr/u32-cmp.c
@@ -0,0 +1,40 @@
+/* Compare pieces of UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+{
+ for (; n > 0;)
+ {
+ uint32_t uc1 = *s1++;
+ uint32_t uc2 = *s2++;
+ if (uc1 == uc2)
+ {
+ n--;
+ continue;
+ }
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ }
+ return 0;
+}
diff --git a/lib/unistr/u32-cmp2.c b/lib/unistr/u32-cmp2.c
new file mode 100644
index 0000000..6924c48
--- /dev/null
+++ b/lib/unistr/u32-cmp2.c
@@ -0,0 +1,28 @@
+/* Compare pieces of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include "minmax.h"
+
+#define FUNC u32_cmp2
+#define UNIT uint32_t
+#define U_CMP u32_cmp
+#include "u-cmp2.h"
diff --git a/lib/unistr/u32-cpy-alloc.c b/lib/unistr/u32-cpy-alloc.c
new file mode 100644
index 0000000..f9c6960
--- /dev/null
+++ b/lib/unistr/u32-cpy-alloc.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_cpy_alloc
+#define UNIT uint32_t
+#include "u-cpy-alloc.h"
diff --git a/lib/unistr/u32-cpy.c b/lib/unistr/u32-cpy.c
new file mode 100644
index 0000000..2493b65
--- /dev/null
+++ b/lib/unistr/u32-cpy.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_cpy
+#define UNIT uint32_t
+#include "u-cpy.h"
diff --git a/lib/unistr/u32-endswith.c b/lib/unistr/u32-endswith.c
new file mode 100644
index 0000000..d77fa8c
--- /dev/null
+++ b/lib/unistr/u32-endswith.c
@@ -0,0 +1,27 @@
+/* Substring test for UTF-32 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_endswith
+#define UNIT uint32_t
+#define U_STRLEN u32_strlen
+#define U_CMP u32_cmp
+#include "u-endswith.h"
diff --git a/lib/unistr/u32-mblen.c b/lib/unistr/u32-mblen.c
new file mode 100644
index 0000000..a48c8b2
--- /dev/null
+++ b/lib/unistr/u32-mblen.c
@@ -0,0 +1,37 @@
+/* Look at first character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_mblen (const uint32_t *s, size_t n)
+{
+ if (n > 0)
+ {
+ uint32_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+#endif
+ return (c != 0 ? 1 : 0);
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u32-mbsnlen.c b/lib/unistr/u32-mbsnlen.c
new file mode 100644
index 0000000..b7a5d18
--- /dev/null
+++ b/lib/unistr/u32-mbsnlen.c
@@ -0,0 +1,27 @@
+/* Count characters in UTF-32 string.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+size_t
+u32_mbsnlen (const uint32_t *s, size_t n)
+{
+ return n;
+}
diff --git a/lib/unistr/u32-mbtouc-unsafe.c b/lib/unistr/u32-mbtouc-unsafe.c
new file mode 100644
index 0000000..4bd9e81
--- /dev/null
+++ b/lib/unistr/u32-mbtouc-unsafe.c
@@ -0,0 +1,48 @@
+/* Look at first character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u32_mbtouc_unsafe as 'extern', not
+ 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n)
+{
+ uint32_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+#endif
+ *puc = c;
+#if CONFIG_UNICODE_SAFETY
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+#endif
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u32-mbtouc.c b/lib/unistr/u32-mbtouc.c
new file mode 100644
index 0000000..4eeef58
--- /dev/null
+++ b/lib/unistr/u32-mbtouc.c
@@ -0,0 +1,43 @@
+/* Look at first character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u32_mbtouc as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n)
+{
+ uint32_t c = *s;
+
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+ *puc = c;
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u32-mbtoucr.c b/lib/unistr/u32-mbtoucr.c
new file mode 100644
index 0000000..7d7993c
--- /dev/null
+++ b/lib/unistr/u32-mbtoucr.c
@@ -0,0 +1,39 @@
+/* Look at first character in UTF-32 string, returning an error code.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n)
+{
+ uint32_t c = *s;
+
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ {
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return -1;
+ }
+}
diff --git a/lib/unistr/u32-move.c b/lib/unistr/u32-move.c
new file mode 100644
index 0000000..d6c08f4
--- /dev/null
+++ b/lib/unistr/u32-move.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_move
+#define UNIT uint32_t
+#include "u-move.h"
diff --git a/lib/unistr/u32-next.c b/lib/unistr/u32-next.c
new file mode 100644
index 0000000..c529295
--- /dev/null
+++ b/lib/unistr/u32-next.c
@@ -0,0 +1,39 @@
+/* Iterate over next character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint32_t *
+u32_next (ucs4_t *puc, const uint32_t *s)
+{
+ int count;
+
+ count = u32_strmbtouc (puc, s);
+ if (count > 0)
+ return s + count;
+ else
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (count < 0)
+ *puc = 0xfffd;
+#endif
+ return NULL;
+ }
+}
diff --git a/lib/unistr/u32-prev.c b/lib/unistr/u32-prev.c
new file mode 100644
index 0000000..bc20c93
--- /dev/null
+++ b/lib/unistr/u32-prev.c
@@ -0,0 +1,39 @@
+/* Iterate over previous character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint32_t *
+u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start)
+{
+ if (s != start)
+ {
+ uint32_t c_1 = s[-1];
+
+#if CONFIG_UNICODE_SAFETY
+ if (c_1 < 0xd800 || (c_1 >= 0xe000 && c_1 < 0x110000))
+#endif
+ {
+ *puc = c_1;
+ return s - 1;
+ }
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u32-set.c b/lib/unistr/u32-set.c
new file mode 100644
index 0000000..de10e09
--- /dev/null
+++ b/lib/unistr/u32-set.c
@@ -0,0 +1,26 @@
+/* Fill UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_set
+#define UNIT uint32_t
+#define IS_SINGLE_UNIT(uc) (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
+#include "u-set.h"
diff --git a/lib/unistr/u32-startswith.c b/lib/unistr/u32-startswith.c
new file mode 100644
index 0000000..0f9a185
--- /dev/null
+++ b/lib/unistr/u32-startswith.c
@@ -0,0 +1,25 @@
+/* Substring test for UTF-32 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_startswith
+#define UNIT uint32_t
+#include "u-startswith.h"
diff --git a/lib/unistr/u32-stpcpy.c b/lib/unistr/u32-stpcpy.c
new file mode 100644
index 0000000..5df8233
--- /dev/null
+++ b/lib/unistr/u32-stpcpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_stpcpy
+#define UNIT uint32_t
+#include "u-stpcpy.h"
diff --git a/lib/unistr/u32-stpncpy.c b/lib/unistr/u32-stpncpy.c
new file mode 100644
index 0000000..19a0894
--- /dev/null
+++ b/lib/unistr/u32-stpncpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_stpncpy
+#define UNIT uint32_t
+#include "u-stpncpy.h"
diff --git a/lib/unistr/u32-strcat.c b/lib/unistr/u32-strcat.c
new file mode 100644
index 0000000..cd4737f
--- /dev/null
+++ b/lib/unistr/u32-strcat.c
@@ -0,0 +1,26 @@
+/* Concatenate UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strcat
+#define UNIT uint32_t
+#define U_STRLEN u32_strlen
+#include "u-strcat.h"
diff --git a/lib/unistr/u32-strchr.c b/lib/unistr/u32-strchr.c
new file mode 100644
index 0000000..57a3a3c
--- /dev/null
+++ b/lib/unistr/u32-strchr.c
@@ -0,0 +1,36 @@
+/* Search character in UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint32_t *
+u32_strchr (const uint32_t *s, ucs4_t uc)
+{
+ for (;; s++)
+ {
+ if (*s == uc)
+ break;
+ if (*s == 0)
+ goto notfound;
+ }
+ return (uint32_t *) s;
+notfound:
+ return NULL;
+}
diff --git a/lib/unistr/u32-strcmp.c b/lib/unistr/u32-strcmp.c
new file mode 100644
index 0000000..b82d5ed
--- /dev/null
+++ b/lib/unistr/u32-strcmp.c
@@ -0,0 +1,36 @@
+/* Compare UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_strcmp (const uint32_t *s1, const uint32_t *s2)
+{
+ for (;;)
+ {
+ uint32_t uc1 = *s1++;
+ uint32_t uc2 = *s2++;
+ if (uc1 != 0 && uc1 == uc2)
+ continue;
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ }
+}
diff --git a/lib/unistr/u32-strcoll.c b/lib/unistr/u32-strcoll.c
new file mode 100644
index 0000000..d5e1482
--- /dev/null
+++ b/lib/unistr/u32-strcoll.c
@@ -0,0 +1,33 @@
+/* Compare UTF-32 strings using the collation rules of the current locale.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "uniconv.h"
+
+#define FUNC u32_strcoll
+#define UNIT uint32_t
+#define U_STRCMP u32_strcmp
+#define U_STRCONV_TO_LOCALE u32_strconv_to_locale
+#include "u-strcoll.h"
diff --git a/lib/unistr/u32-strcpy.c b/lib/unistr/u32-strcpy.c
new file mode 100644
index 0000000..e500100
--- /dev/null
+++ b/lib/unistr/u32-strcpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strcpy
+#define UNIT uint32_t
+#include "u-strcpy.h"
diff --git a/lib/unistr/u32-strcspn.c b/lib/unistr/u32-strcspn.c
new file mode 100644
index 0000000..f93ab2e
--- /dev/null
+++ b/lib/unistr/u32-strcspn.c
@@ -0,0 +1,51 @@
+/* Search for some characters in UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strcspn
+#define UNIT uint32_t
+#define U_STRLEN u32_strlen
+#define U_STRCHR u32_strchr
+
+size_t
+FUNC (const UNIT *str, const UNIT *reject)
+{
+ /* Optimize two cases. */
+ if (reject[0] == 0)
+ return U_STRLEN (str);
+ if (reject[1] == 0)
+ {
+ ucs4_t uc = reject[0];
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (*ptr == uc)
+ break;
+ return ptr - str;
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (U_STRCHR (reject, *ptr))
+ break;
+ return ptr - str;
+ }
+}
diff --git a/lib/unistr/u32-strdup.c b/lib/unistr/u32-strdup.c
new file mode 100644
index 0000000..66e9393
--- /dev/null
+++ b/lib/unistr/u32-strdup.c
@@ -0,0 +1,26 @@
+/* Copy UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strdup
+#define UNIT uint32_t
+#define U_STRLEN u32_strlen
+#include "u-strdup.h"
diff --git a/lib/unistr/u32-strlen.c b/lib/unistr/u32-strlen.c
new file mode 100644
index 0000000..eb64cc2
--- /dev/null
+++ b/lib/unistr/u32-strlen.c
@@ -0,0 +1,25 @@
+/* Determine length of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strlen
+#define UNIT uint32_t
+#include "u-strlen.h"
diff --git a/lib/unistr/u32-strmblen.c b/lib/unistr/u32-strmblen.c
new file mode 100644
index 0000000..4dde3ff
--- /dev/null
+++ b/lib/unistr/u32-strmblen.c
@@ -0,0 +1,36 @@
+/* Look at first character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_strmblen (const uint32_t *s)
+{
+ uint32_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+#endif
+ return (c != 0 ? 1 : 0);
+#if CONFIG_UNICODE_SAFETY
+ /* invalid multibyte character */
+ return -1;
+#endif
+}
diff --git a/lib/unistr/u32-strmbtouc.c b/lib/unistr/u32-strmbtouc.c
new file mode 100644
index 0000000..e94ac30
--- /dev/null
+++ b/lib/unistr/u32-strmbtouc.c
@@ -0,0 +1,39 @@
+/* Look at first character in UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_strmbtouc (ucs4_t *puc, const uint32_t *s)
+{
+ uint32_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+#endif
+ {
+ *puc = c;
+ return (c != 0 ? 1 : 0);
+ }
+#if CONFIG_UNICODE_SAFETY
+ /* invalid multibyte character */
+ return -1;
+#endif
+}
diff --git a/lib/unistr/u32-strncat.c b/lib/unistr/u32-strncat.c
new file mode 100644
index 0000000..86f895b
--- /dev/null
+++ b/lib/unistr/u32-strncat.c
@@ -0,0 +1,26 @@
+/* Concatenate UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strncat
+#define UNIT uint32_t
+#define U_STRLEN u32_strlen
+#include "u-strncat.h"
diff --git a/lib/unistr/u32-strncmp.c b/lib/unistr/u32-strncmp.c
new file mode 100644
index 0000000..026ce50
--- /dev/null
+++ b/lib/unistr/u32-strncmp.c
@@ -0,0 +1,40 @@
+/* Compare UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+{
+ for (; n > 0;)
+ {
+ uint32_t uc1 = *s1++;
+ uint32_t uc2 = *s2++;
+ if (uc1 != 0 && uc1 == uc2)
+ {
+ n--;
+ continue;
+ }
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2, = 0 if uc1 and uc2 are both 0. */
+ }
+ return 0;
+}
diff --git a/lib/unistr/u32-strncpy.c b/lib/unistr/u32-strncpy.c
new file mode 100644
index 0000000..c8f409b
--- /dev/null
+++ b/lib/unistr/u32-strncpy.c
@@ -0,0 +1,25 @@
+/* Copy UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strncpy
+#define UNIT uint32_t
+#include "u-strncpy.h"
diff --git a/lib/unistr/u32-strnlen.c b/lib/unistr/u32-strnlen.c
new file mode 100644
index 0000000..2ead8f2
--- /dev/null
+++ b/lib/unistr/u32-strnlen.c
@@ -0,0 +1,25 @@
+/* Determine bounded length of UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strnlen
+#define UNIT uint32_t
+#include "u-strnlen.h"
diff --git a/lib/unistr/u32-strpbrk.c b/lib/unistr/u32-strpbrk.c
new file mode 100644
index 0000000..9579a1b
--- /dev/null
+++ b/lib/unistr/u32-strpbrk.c
@@ -0,0 +1,50 @@
+/* Search for some characters in UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strpbrk
+#define UNIT uint32_t
+#define U_STRCHR u32_strchr
+
+UNIT *
+FUNC (const UNIT *str, const UNIT *accept)
+{
+ /* Optimize two cases. */
+ if (accept[0] == 0)
+ return NULL;
+ if (accept[1] == 0)
+ {
+ ucs4_t uc = accept[0];
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (*ptr == uc)
+ return (UNIT *) ptr;
+ return NULL;
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (U_STRCHR (accept, *ptr))
+ return (UNIT *) ptr;
+ return NULL;
+ }
+}
diff --git a/lib/unistr/u32-strrchr.c b/lib/unistr/u32-strrchr.c
new file mode 100644
index 0000000..b4641f3
--- /dev/null
+++ b/lib/unistr/u32-strrchr.c
@@ -0,0 +1,38 @@
+/* Search character in UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint32_t *
+u32_strrchr (const uint32_t *s, ucs4_t uc)
+{
+ /* Calling u32_strlen and then searching from the other end would cause more
+ memory accesses. Avoid that, at the cost of a few more comparisons. */
+ uint32_t *result = NULL;
+
+ for (;; s++)
+ {
+ if (*s == uc)
+ result = (uint32_t *) s;
+ if (*s == 0)
+ break;
+ }
+ return result;
+}
diff --git a/lib/unistr/u32-strspn.c b/lib/unistr/u32-strspn.c
new file mode 100644
index 0000000..6f80202
--- /dev/null
+++ b/lib/unistr/u32-strspn.c
@@ -0,0 +1,50 @@
+/* Search for some characters in UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strspn
+#define UNIT uint32_t
+#define U_STRCHR u32_strchr
+
+size_t
+FUNC (const UNIT *str, const UNIT *accept)
+{
+ /* Optimize two cases. */
+ if (accept[0] == 0)
+ return 0;
+ if (accept[1] == 0)
+ {
+ ucs4_t uc = accept[0];
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (*ptr != uc)
+ break;
+ return ptr - str;
+ }
+ /* General case. */
+ {
+ const UNIT *ptr = str;
+ for (; *ptr != 0; ptr++)
+ if (!U_STRCHR (accept, *ptr))
+ break;
+ return ptr - str;
+ }
+}
diff --git a/lib/unistr/u32-strstr.c b/lib/unistr/u32-strstr.c
new file mode 100644
index 0000000..285746d
--- /dev/null
+++ b/lib/unistr/u32-strstr.c
@@ -0,0 +1,26 @@
+/* Substring test for UTF-32 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strstr
+#define UNIT uint32_t
+#define U_STRCHR u32_strchr
+#include "u-strstr.h"
diff --git a/lib/unistr/u32-strtok.c b/lib/unistr/u32-strtok.c
new file mode 100644
index 0000000..3f21919
--- /dev/null
+++ b/lib/unistr/u32-strtok.c
@@ -0,0 +1,27 @@
+/* Tokenize UTF-32 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_strtok
+#define UNIT uint32_t
+#define U_STRSPN u32_strspn
+#define U_STRPBRK u32_strpbrk
+#include "u-strtok.h"
diff --git a/lib/unistr/u32-to-u16.c b/lib/unistr/u32-to-u16.c
new file mode 100644
index 0000000..3a32162
--- /dev/null
+++ b/lib/unistr/u32-to-u16.c
@@ -0,0 +1,130 @@
+/* Convert UTF-32 string to UTF-16 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_to_u16
+#define SRC_UNIT uint32_t
+#define DST_UNIT uint16_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ uc = *s++;
+ /* No need to call the safe variant u32_mbtouc, because
+ u16_uctomb will verify uc anyway. */
+
+ /* Store it in the output string. */
+ count = u16_uctomb (result + length, uc, allocated - length);
+ if (count == -1)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (count == -2)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 2 > allocated)
+ allocated = length + 2;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ count = u16_uctomb (result + length, uc, allocated - length);
+ if (count < 0)
+ abort ();
+ }
+ length += count;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u32-to-u8.c b/lib/unistr/u32-to-u8.c
new file mode 100644
index 0000000..4dce896
--- /dev/null
+++ b/lib/unistr/u32-to-u8.c
@@ -0,0 +1,130 @@
+/* Convert UTF-32 string to UTF-8 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u32_to_u8
+#define SRC_UNIT uint32_t
+#define DST_UNIT uint8_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ uc = *s++;
+ /* No need to call the safe variant u32_mbtouc, because
+ u8_uctomb will verify uc anyway. */
+
+ /* Store it in the output string. */
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count == -1)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (count == -2)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 6 > allocated)
+ allocated = length + 6;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ count = u8_uctomb (result + length, uc, allocated - length);
+ if (count < 0)
+ abort ();
+ }
+ length += count;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u32-uctomb.c b/lib/unistr/u32-uctomb.c
new file mode 100644
index 0000000..583b3b6
--- /dev/null
+++ b/lib/unistr/u32-uctomb.c
@@ -0,0 +1,47 @@
+/* Store a character in UTF-32 string.
+ Copyright (C) 2002, 2005-2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u32_uctomb as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u32_uctomb (uint32_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
+ {
+ if (n > 0)
+ {
+ *s = uc;
+ return 1;
+ }
+ else
+ return -2;
+ }
+ else
+ return -1;
+}
+
+#endif
diff --git a/lib/unistr/u8-check.c b/lib/unistr/u8-check.c
new file mode 100644
index 0000000..53897fc
--- /dev/null
+++ b/lib/unistr/u8-check.c
@@ -0,0 +1,105 @@
+/* Check UTF-8 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint8_t *
+u8_check (const uint8_t *s, size_t n)
+{
+ const uint8_t *s_end = s + n;
+
+ while (s < s_end)
+ {
+ /* Keep in sync with unistr.h and utf8-ucs4.c. */
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ s++;
+ continue;
+ }
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (s + 2 <= s_end
+ && (s[1] ^ 0x80) < 0x40)
+ {
+ s += 2;
+ continue;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (s + 3 <= s_end
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ s += 3;
+ continue;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (s + 4 <= s_end
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ s += 4;
+ continue;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (s + 5 <= s_end
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ s += 5;
+ continue;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (s + 6 <= s_end
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ s += 6;
+ continue;
+ }
+ }
+#endif
+ }
+ /* invalid or incomplete multibyte character */
+ return s;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u8-chr.c b/lib/unistr/u8-chr.c
new file mode 100644
index 0000000..2c4d768
--- /dev/null
+++ b/lib/unistr/u8-chr.c
@@ -0,0 +1,87 @@
+/* Search character in piece of UTF-8 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint8_t *
+u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
+{
+ uint8_t c[6];
+
+ if (uc < 0x80)
+ {
+ uint8_t c0 = uc;
+
+ for (; n > 0; s++, n--)
+ {
+ if (*s == c0)
+ return (uint8_t *) s;
+ }
+ }
+ else
+ switch (u8_uctomb_aux (c, uc, 6))
+ {
+ case 2:
+ if (n > 1)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+
+ for (n--; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1)
+ return (uint8_t *) s;
+ }
+ }
+ break;
+
+ case 3:
+ if (n > 2)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+
+ for (n -= 2; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1 && s[2] == c2)
+ return (uint8_t *) s;
+ }
+ }
+ break;
+
+ case 4:
+ if (n > 3)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
+
+ for (n -= 3; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
+ return (uint8_t *) s;
+ }
+ }
+ break;
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u8-cmp.c b/lib/unistr/u8-cmp.c
new file mode 100644
index 0000000..77b2402
--- /dev/null
+++ b/lib/unistr/u8-cmp.c
@@ -0,0 +1,30 @@
+/* Compare pieces of UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+int
+u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+{
+ /* Use the fact that the UTF-8 encoding preserves lexicographic order. */
+ return memcmp ((const char *) s1, (const char *) s2, n);
+}
diff --git a/lib/unistr/u8-cmp2.c b/lib/unistr/u8-cmp2.c
new file mode 100644
index 0000000..99cee9f
--- /dev/null
+++ b/lib/unistr/u8-cmp2.c
@@ -0,0 +1,28 @@
+/* Compare pieces of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include "minmax.h"
+
+#define FUNC u8_cmp2
+#define UNIT uint8_t
+#define U_CMP u8_cmp
+#include "u-cmp2.h"
diff --git a/lib/unistr/u8-cpy-alloc.c b/lib/unistr/u8-cpy-alloc.c
new file mode 100644
index 0000000..b2dcc5d
--- /dev/null
+++ b/lib/unistr/u8-cpy-alloc.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_cpy_alloc
+#define UNIT uint8_t
+#include "u-cpy-alloc.h"
diff --git a/lib/unistr/u8-cpy.c b/lib/unistr/u8-cpy.c
new file mode 100644
index 0000000..bf3a55b
--- /dev/null
+++ b/lib/unistr/u8-cpy.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_cpy
+#define UNIT uint8_t
+#include "u-cpy.h"
diff --git a/lib/unistr/u8-endswith.c b/lib/unistr/u8-endswith.c
new file mode 100644
index 0000000..e40613a
--- /dev/null
+++ b/lib/unistr/u8-endswith.c
@@ -0,0 +1,27 @@
+/* Substring test for UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_endswith
+#define UNIT uint8_t
+#define U_STRLEN u8_strlen
+#define U_CMP u8_cmp
+#include "u-endswith.h"
diff --git a/lib/unistr/u8-mblen.c b/lib/unistr/u8-mblen.c
new file mode 100644
index 0000000..1981bef
--- /dev/null
+++ b/lib/unistr/u8-mblen.c
@@ -0,0 +1,98 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_mblen (const uint8_t *s, size_t n)
+{
+ if (n > 0)
+ {
+ /* Keep in sync with unistr.h and utf8-ucs4.c. */
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ return (c != 0 ? 1 : 0);
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2
+#if CONFIG_UNICODE_SAFETY
+ && (s[1] ^ 0x80) < 0x40
+#endif
+ )
+ return 2;
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3
+#if CONFIG_UNICODE_SAFETY
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0)
+#endif
+ )
+ return 3;
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4
+#if CONFIG_UNICODE_SAFETY
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+#endif
+ )
+ return 4;
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5
+#if CONFIG_UNICODE_SAFETY
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88)
+#endif
+ )
+ return 5;
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6
+#if CONFIG_UNICODE_SAFETY
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84)
+#endif
+ )
+ return 6;
+ }
+#endif
+ }
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u8-mbsnlen.c b/lib/unistr/u8-mbsnlen.c
new file mode 100644
index 0000000..29af297
--- /dev/null
+++ b/lib/unistr/u8-mbsnlen.c
@@ -0,0 +1,39 @@
+/* Count characters in UTF-8 string.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+size_t
+u8_mbsnlen (const uint8_t *s, size_t n)
+{
+ size_t characters;
+
+ characters = 0;
+ while (n > 0)
+ {
+ int count = u8_mblen (s, n);
+ if (count <= 0)
+ count = 1;
+ s += count;
+ n -= count;
+ characters++;
+ }
+ return characters;
+}
diff --git a/lib/unistr/u8-mbtouc-aux.c b/lib/unistr/u8-mbtouc-aux.c
new file mode 100644
index 0000000..53d02bf
--- /dev/null
+++ b/lib/unistr/u8-mbtouc-aux.c
@@ -0,0 +1,158 @@
+/* Conversion UTF-8 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#if defined IN_LIBUNISTRING || HAVE_INLINE
+
+int
+u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u8-mbtouc-unsafe-aux.c b/lib/unistr/u8-mbtouc-unsafe-aux.c
new file mode 100644
index 0000000..43e4a36
--- /dev/null
+++ b/lib/unistr/u8-mbtouc-unsafe-aux.c
@@ -0,0 +1,168 @@
+/* Conversion UTF-8 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#if defined IN_LIBUNISTRING || HAVE_INLINE
+
+int
+u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u8-mbtouc-unsafe.c b/lib/unistr/u8-mbtouc-unsafe.c
new file mode 100644
index 0000000..4661569
--- /dev/null
+++ b/lib/unistr/u8-mbtouc-unsafe.c
@@ -0,0 +1,179 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u8_mbtouc_unsafe as 'extern', not
+ 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u8-mbtouc.c b/lib/unistr/u8-mbtouc.c
new file mode 100644
index 0000000..ff624f1
--- /dev/null
+++ b/lib/unistr/u8-mbtouc.c
@@ -0,0 +1,168 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2002, 2006-2007, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u8_mbtouc as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/lib/unistr/u8-mbtoucr.c b/lib/unistr/u8-mbtoucr.c
new file mode 100644
index 0000000..dd83352
--- /dev/null
+++ b/lib/unistr/u8-mbtoucr.c
@@ -0,0 +1,285 @@
+/* Look at first character in UTF-8 string, returning an error code.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ if (n >= 3)
+ {
+ if ((s[2] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ if (n >= 3)
+ {
+ if ((s[2] ^ 0x80) < 0x40)
+ {
+ if (n >= 4)
+ {
+ if ((s[3] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ if (n >= 3)
+ {
+ if ((s[2] ^ 0x80) < 0x40)
+ {
+ if (n >= 4)
+ {
+ if ((s[3] ^ 0x80) < 0x40)
+ {
+ if (n >= 5)
+ {
+ if ((s[4] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ if (n >= 3)
+ {
+ if ((s[2] ^ 0x80) < 0x40)
+ {
+ if (n >= 4)
+ {
+ if ((s[3] ^ 0x80) < 0x40)
+ {
+ if (n >= 5)
+ {
+ if ((s[4] ^ 0x80) < 0x40)
+ {
+ if (n >= 6)
+ {
+ if ((s[5] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return -2;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return -1;
+}
diff --git a/lib/unistr/u8-move.c b/lib/unistr/u8-move.c
new file mode 100644
index 0000000..5a30be8
--- /dev/null
+++ b/lib/unistr/u8-move.c
@@ -0,0 +1,25 @@
+/* Copy piece of UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_move
+#define UNIT uint8_t
+#include "u-move.h"
diff --git a/lib/unistr/u8-next.c b/lib/unistr/u8-next.c
new file mode 100644
index 0000000..ecf4f80
--- /dev/null
+++ b/lib/unistr/u8-next.c
@@ -0,0 +1,37 @@
+/* Iterate over next character in UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint8_t *
+u8_next (ucs4_t *puc, const uint8_t *s)
+{
+ int count;
+
+ count = u8_strmbtouc (puc, s);
+ if (count > 0)
+ return s + count;
+ else
+ {
+ if (count < 0)
+ *puc = 0xfffd;
+ return NULL;
+ }
+}
diff --git a/lib/unistr/u8-prev.c b/lib/unistr/u8-prev.c
new file mode 100644
index 0000000..245d22f
--- /dev/null
+++ b/lib/unistr/u8-prev.c
@@ -0,0 +1,93 @@
+/* Iterate over previous character in UTF-8 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+const uint8_t *
+u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start)
+{
+ /* Keep in sync with unistr.h and utf8-ucs4.c. */
+ if (s != start)
+ {
+ uint8_t c_1 = s[-1];
+
+ if (c_1 < 0x80)
+ {
+ *puc = c_1;
+ return s - 1;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if ((c_1 ^ 0x80) < 0x40)
+#endif
+ if (s - 1 != start)
+ {
+ uint8_t c_2 = s[-2];
+
+ if (c_2 >= 0xc2 && c_2 < 0xe0)
+ {
+ *puc = ((unsigned int) (c_2 & 0x1f) << 6)
+ | (unsigned int) (c_1 ^ 0x80);
+ return s - 2;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if ((c_2 ^ 0x80) < 0x40)
+#endif
+ if (s - 2 != start)
+ {
+ uint8_t c_3 = s[-3];
+
+ if (c_3 >= 0xe0 && c_3 < 0xf0
+#if CONFIG_UNICODE_SAFETY
+ && (c_3 >= 0xe1 || c_2 >= 0xa0)
+ && (c_3 != 0xed || c_2 < 0xa0)
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c_3 & 0x0f) << 12)
+ | ((unsigned int) (c_2 ^ 0x80) << 6)
+ | (unsigned int) (c_1 ^ 0x80);
+ return s - 3;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if ((c_3 ^ 0x80) < 0x40)
+#endif
+ if (s - 3 != start)
+ {
+ uint8_t c_4 = s[-4];
+
+ if (c_4 >= 0xf0 && c_4 < 0xf8
+#if CONFIG_UNICODE_SAFETY
+ && (c_4 >= 0xf1 || c_3 >= 0x90)
+ && (c_4 < 0xf4 || (c_4 == 0xf4 && c_3 < 0x90))
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c_4 & 0x07) << 18)
+ | ((unsigned int) (c_3 ^ 0x80) << 12)
+ | ((unsigned int) (c_2 ^ 0x80) << 6)
+ | (unsigned int) (c_1 ^ 0x80);
+ return s - 4;
+ }
+ }
+ }
+ }
+ }
+ return NULL;
+}
diff --git a/lib/unistr/u8-set.c b/lib/unistr/u8-set.c
new file mode 100644
index 0000000..5bb4fd7
--- /dev/null
+++ b/lib/unistr/u8-set.c
@@ -0,0 +1,44 @@
+/* Fill UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_set
+#define UNIT uint8_t
+#define IS_SINGLE_UNIT(uc) (uc < 0x80)
+
+#include <errno.h>
+#include <string.h>
+
+UNIT *
+FUNC (UNIT *s, ucs4_t uc, size_t n)
+{
+ if (n > 0)
+ {
+ if (IS_SINGLE_UNIT (uc))
+ memset ((char *) s, uc, n);
+ else
+ {
+ errno = EILSEQ;
+ return NULL;
+ }
+ }
+ return s;
+}
diff --git a/lib/unistr/u8-startswith.c b/lib/unistr/u8-startswith.c
new file mode 100644
index 0000000..671e3d9
--- /dev/null
+++ b/lib/unistr/u8-startswith.c
@@ -0,0 +1,25 @@
+/* Substring test for UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_startswith
+#define UNIT uint8_t
+#include "u-startswith.h"
diff --git a/lib/unistr/u8-stpcpy.c b/lib/unistr/u8-stpcpy.c
new file mode 100644
index 0000000..a5c15c5
--- /dev/null
+++ b/lib/unistr/u8-stpcpy.c
@@ -0,0 +1,44 @@
+/* Copy UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+/* Ensure stpcpy() gets declared. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_STPCPY
+
+# include <string.h>
+
+uint8_t *
+u8_stpcpy (uint8_t *dest, const uint8_t *src)
+{
+ return (uint8_t *) stpcpy ((char *) dest, (const char *) src);
+}
+
+#else
+
+# define FUNC u8_stpcpy
+# define UNIT uint8_t
+# include "u-stpcpy.h"
+
+#endif
diff --git a/lib/unistr/u8-stpncpy.c b/lib/unistr/u8-stpncpy.c
new file mode 100644
index 0000000..87f254d
--- /dev/null
+++ b/lib/unistr/u8-stpncpy.c
@@ -0,0 +1,44 @@
+/* Copy UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+/* Ensure stpncpy() gets declared. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if __GLIBC__ >= 2
+
+# include <string.h>
+
+uint8_t *
+u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n)
+{
+ return (uint8_t *) stpncpy ((char *) dest, (const char *) src, n);
+}
+
+#else
+
+# define FUNC u8_stpncpy
+# define UNIT uint8_t
+# include "u-stpncpy.h"
+
+#endif
diff --git a/lib/unistr/u8-strcat.c b/lib/unistr/u8-strcat.c
new file mode 100644
index 0000000..25ec5d3
--- /dev/null
+++ b/lib/unistr/u8-strcat.c
@@ -0,0 +1,29 @@
+/* Concatenate UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+uint8_t *
+u8_strcat (uint8_t *dest, const uint8_t *src)
+{
+ return (uint8_t *) strcat ((char *) dest, (const char *) src);
+}
diff --git a/lib/unistr/u8-strchr.c b/lib/unistr/u8-strchr.c
new file mode 100644
index 0000000..370a793
--- /dev/null
+++ b/lib/unistr/u8-strchr.c
@@ -0,0 +1,100 @@
+/* Search character in UTF-8 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint8_t *
+u8_strchr (const uint8_t *s, ucs4_t uc)
+{
+ uint8_t c[6];
+
+ if (uc < 0x80)
+ {
+ uint8_t c0 = uc;
+
+ for (;; s++)
+ {
+ if (*s == c0)
+ break;
+ if (*s == 0)
+ goto notfound;
+ }
+ return (uint8_t *) s;
+ }
+ else
+ switch (u8_uctomb_aux (c, uc, 6))
+ {
+ case 2:
+ if (*s == 0)
+ goto notfound;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1)
+ break;
+ }
+ return (uint8_t *) s;
+ }
+
+ case 3:
+ if (*s == 0 || s[1] == 0)
+ goto notfound;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+
+ for (;; s++)
+ {
+ if (s[2] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1 && s[2] == c2)
+ break;
+ }
+ return (uint8_t *) s;
+ }
+
+ case 4:
+ if (*s == 0 || s[1] == 0 || s[2] == 0)
+ goto notfound;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
+
+ for (;; s++)
+ {
+ if (s[3] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
+ break;
+ }
+ return (uint8_t *) s;
+ }
+ }
+notfound:
+ return NULL;
+}
diff --git a/lib/unistr/u8-strcmp.c b/lib/unistr/u8-strcmp.c
new file mode 100644
index 0000000..58b4b8c
--- /dev/null
+++ b/lib/unistr/u8-strcmp.c
@@ -0,0 +1,30 @@
+/* Compare UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+int
+u8_strcmp (const uint8_t *s1, const uint8_t *s2)
+{
+ /* Use the fact that the UTF-8 encoding preserves lexicographic order. */
+ return strcmp ((const char *) s1, (const char *) s2);
+}
diff --git a/lib/unistr/u8-strcoll.c b/lib/unistr/u8-strcoll.c
new file mode 100644
index 0000000..ca08609
--- /dev/null
+++ b/lib/unistr/u8-strcoll.c
@@ -0,0 +1,33 @@
+/* Compare UTF-8 strings using the collation rules of the current locale.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "uniconv.h"
+
+#define FUNC u8_strcoll
+#define UNIT uint8_t
+#define U_STRCMP u8_strcmp
+#define U_STRCONV_TO_LOCALE u8_strconv_to_locale
+#include "u-strcoll.h"
diff --git a/lib/unistr/u8-strcpy.c b/lib/unistr/u8-strcpy.c
new file mode 100644
index 0000000..b93c8cb
--- /dev/null
+++ b/lib/unistr/u8-strcpy.c
@@ -0,0 +1,29 @@
+/* Copy UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+uint8_t *
+u8_strcpy (uint8_t *dest, const uint8_t *src)
+{
+ return (uint8_t *) strcpy ((char *) dest, (const char *) src);
+}
diff --git a/lib/unistr/u8-strcspn.c b/lib/unistr/u8-strcspn.c
new file mode 100644
index 0000000..a43b53f
--- /dev/null
+++ b/lib/unistr/u8-strcspn.c
@@ -0,0 +1,28 @@
+/* Search for some characters in UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_strcspn
+#define UNIT uint8_t
+#define U_STRLEN u8_strlen
+#define U_STRMBTOUC u8_strmbtouc
+#define U_STRCHR u8_strchr
+#include "u-strcspn.h"
diff --git a/lib/unistr/u8-strdup.c b/lib/unistr/u8-strdup.c
new file mode 100644
index 0000000..feaa872
--- /dev/null
+++ b/lib/unistr/u8-strdup.c
@@ -0,0 +1,40 @@
+/* Copy UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_STRDUP
+
+# include <string.h>
+
+uint8_t *
+u8_strdup (const uint8_t *s)
+{
+ return (uint8_t *) strdup ((const char *) s);
+}
+
+#else
+
+# define FUNC u8_strdup
+# define UNIT uint8_t
+# define U_STRLEN u8_strlen
+# include "u-strdup.h"
+
+#endif
diff --git a/lib/unistr/u8-strlen.c b/lib/unistr/u8-strlen.c
new file mode 100644
index 0000000..cf5b9ce
--- /dev/null
+++ b/lib/unistr/u8-strlen.c
@@ -0,0 +1,29 @@
+/* Determine length of UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+size_t
+u8_strlen (const uint8_t *s)
+{
+ return strlen ((const char *) s);
+}
diff --git a/lib/unistr/u8-strmblen.c b/lib/unistr/u8-strmblen.c
new file mode 100644
index 0000000..52db99d
--- /dev/null
+++ b/lib/unistr/u8-strmblen.c
@@ -0,0 +1,96 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_strmblen (const uint8_t *s)
+{
+ /* Keep in sync with unistr.h and utf8-ucs4.c. */
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ return (c != 0 ? 1 : 0);
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#else
+ if (s[1] != 0)
+#endif
+ return 2;
+ }
+ else if (c < 0xf0)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#else
+ if (s[1] != 0 && s[2] != 0)
+#endif
+ return 3;
+ }
+ else if (c < 0xf8)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0)
+#endif
+ return 4;
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0)
+#endif
+ return 5;
+ }
+ else if (c < 0xfe)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0 && s[5] != 0)
+#endif
+ return 6;
+ }
+#endif
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u8-strmbtouc.c b/lib/unistr/u8-strmbtouc.c
new file mode 100644
index 0000000..bc2fdb0
--- /dev/null
+++ b/lib/unistr/u8-strmbtouc.c
@@ -0,0 +1,129 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2000, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_strmbtouc (ucs4_t *puc, const uint8_t *s)
+{
+ /* Keep in sync with unistr.h and utf8-ucs4.c. */
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return (c != 0 ? 1 : 0);
+ }
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#else
+ if (s[1] != 0)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ }
+ else if (c < 0xf0)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#else
+ if (s[1] != 0 && s[2] != 0)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ }
+ else if (c < 0xf8)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ }
+ else if (c < 0xfe)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#else
+ if (s[1] != 0 && s[2] != 0 && s[3] != 0 && s[4] != 0 && s[5] != 0)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ }
+#endif
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
diff --git a/lib/unistr/u8-strncat.c b/lib/unistr/u8-strncat.c
new file mode 100644
index 0000000..d965460
--- /dev/null
+++ b/lib/unistr/u8-strncat.c
@@ -0,0 +1,29 @@
+/* Concatenate UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+uint8_t *
+u8_strncat (uint8_t *dest, const uint8_t *src, size_t n)
+{
+ return (uint8_t *) strncat ((char *) dest, (const char *) src, n);
+}
diff --git a/lib/unistr/u8-strncmp.c b/lib/unistr/u8-strncmp.c
new file mode 100644
index 0000000..5aad7e7
--- /dev/null
+++ b/lib/unistr/u8-strncmp.c
@@ -0,0 +1,30 @@
+/* Compare UTF-8 strings.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+int
+u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+{
+ /* Use the fact that the UTF-8 encoding preserves lexicographic order. */
+ return strncmp ((const char *) s1, (const char *) s2, n);
+}
diff --git a/lib/unistr/u8-strncpy.c b/lib/unistr/u8-strncpy.c
new file mode 100644
index 0000000..f478fab
--- /dev/null
+++ b/lib/unistr/u8-strncpy.c
@@ -0,0 +1,29 @@
+/* Copy UTF-8 string.
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#include <string.h>
+
+uint8_t *
+u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n)
+{
+ return (uint8_t *) strncpy ((char *) dest, (const char *) src, n);
+}
diff --git a/lib/unistr/u8-strnlen.c b/lib/unistr/u8-strnlen.c
new file mode 100644
index 0000000..32ce7b8
--- /dev/null
+++ b/lib/unistr/u8-strnlen.c
@@ -0,0 +1,44 @@
+/* Determine bounded length of UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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/>. */
+
+/* Ensure strnlen() gets declared. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if __GLIBC__ >= 2
+
+# include <string.h>
+
+size_t
+u8_strnlen (const uint8_t *s, size_t maxlen)
+{
+ return strnlen ((const char *) s, maxlen);
+}
+
+#else
+
+# define FUNC u8_strnlen
+# define UNIT uint8_t
+# include "u-strnlen.h"
+
+#endif
diff --git a/lib/unistr/u8-strpbrk.c b/lib/unistr/u8-strpbrk.c
new file mode 100644
index 0000000..1538faa
--- /dev/null
+++ b/lib/unistr/u8-strpbrk.c
@@ -0,0 +1,27 @@
+/* Search for some characters in UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_strpbrk
+#define UNIT uint8_t
+#define U_STRMBTOUC u8_strmbtouc
+#define U_STRCHR u8_strchr
+#include "u-strpbrk.h"
diff --git a/lib/unistr/u8-strrchr.c b/lib/unistr/u8-strrchr.c
new file mode 100644
index 0000000..309f323
--- /dev/null
+++ b/lib/unistr/u8-strrchr.c
@@ -0,0 +1,101 @@
+/* Search character in UTF-8 string.
+ Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+uint8_t *
+u8_strrchr (const uint8_t *s, ucs4_t uc)
+{
+ /* Calling u8_strlen and then searching from the other end would cause more
+ memory accesses. Avoid that, at the cost of a few more comparisons. */
+ uint8_t *result = NULL;
+ uint8_t c[6];
+
+ if (uc < 0x80)
+ {
+ uint8_t c0 = uc;
+
+ for (;; s++)
+ {
+ if (*s == c0)
+ result = (uint8_t *) s;
+ if (*s == 0)
+ break;
+ }
+ }
+ else
+ switch (u8_uctomb_aux (c, uc, 6))
+ {
+ case 2:
+ if (*s)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
+
+ case 3:
+ if (*s && s[1])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[2] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
+
+ case 4:
+ if (*s && s[1] && s[2])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
+
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[3] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
+ }
+ return result;
+}
diff --git a/lib/unistr/u8-strspn.c b/lib/unistr/u8-strspn.c
new file mode 100644
index 0000000..582c825
--- /dev/null
+++ b/lib/unistr/u8-strspn.c
@@ -0,0 +1,29 @@
+/* Search for some characters in UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_strspn
+#define UNIT uint8_t
+#define U_STRLEN u8_strlen
+#define U_STRMBTOUC u8_strmbtouc
+#define U_CMP u8_cmp
+#define U_STRCHR u8_strchr
+#include "u-strspn.h"
diff --git a/lib/unistr/u8-strstr.c b/lib/unistr/u8-strstr.c
new file mode 100644
index 0000000..b5cbf24
--- /dev/null
+++ b/lib/unistr/u8-strstr.c
@@ -0,0 +1,28 @@
+/* Substring test for UTF-8 strings.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+/* FIXME: Maybe walking the string via u8_mblen is a win? */
+
+#define FUNC u8_strstr
+#define UNIT uint8_t
+#define U_STRCHR u8_strchr
+#include "u-strstr.h"
diff --git a/lib/unistr/u8-strtok.c b/lib/unistr/u8-strtok.c
new file mode 100644
index 0000000..a8d3821
--- /dev/null
+++ b/lib/unistr/u8-strtok.c
@@ -0,0 +1,27 @@
+/* Tokenize UTF-8 string.
+ Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_strtok
+#define UNIT uint8_t
+#define U_STRSPN u8_strspn
+#define U_STRPBRK u8_strpbrk
+#include "u-strtok.h"
diff --git a/lib/unistr/u8-to-u16.c b/lib/unistr/u8-to-u16.c
new file mode 100644
index 0000000..03c6600
--- /dev/null
+++ b/lib/unistr/u8-to-u16.c
@@ -0,0 +1,136 @@
+/* Convert UTF-8 string to UTF-16 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_to_u16
+#define SRC_UNIT uint8_t
+#define DST_UNIT uint16_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ count = u8_mbtouc (&uc, s, s_end - s);
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ s += count;
+
+ /* Store it in the output string. */
+ count = u16_uctomb (result + length, uc, allocated - length);
+ if (count == -1)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (count == -2)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 2 > allocated)
+ allocated = length + 2;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ count = u16_uctomb (result + length, uc, allocated - length);
+ if (count < 0)
+ abort ();
+ }
+ length += count;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u8-to-u32.c b/lib/unistr/u8-to-u32.c
new file mode 100644
index 0000000..2a0ad39
--- /dev/null
+++ b/lib/unistr/u8-to-u32.c
@@ -0,0 +1,125 @@
+/* Convert UTF-8 string to UTF-32 string.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+#define FUNC u8_to_u32
+#define SRC_UNIT uint8_t
+#define DST_UNIT uint32_t
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+DST_UNIT *
+FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
+{
+ const SRC_UNIT *s_end = s + n;
+ /* Output string accumulator. */
+ DST_UNIT *result;
+ size_t allocated;
+ size_t length;
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count;
+
+ /* Fetch a Unicode character from the input string. */
+ count = u8_mbtouc (&uc, s, s_end - s);
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = EILSEQ;
+ return NULL;
+ }
+ s += count;
+
+ /* Store it in the output string. */
+ if (length + 1 > allocated)
+ {
+ DST_UNIT *memory;
+
+ allocated = (allocated > 0 ? 2 * allocated : 12);
+ if (length + 1 > allocated)
+ allocated = length + 1;
+ if (result == resultbuf || result == NULL)
+ memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
+ else
+ memory =
+ (DST_UNIT *) realloc (result, allocated * sizeof (DST_UNIT));
+
+ if (memory == NULL)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ errno = ENOMEM;
+ return NULL;
+ }
+ if (result == resultbuf && length > 0)
+ memcpy ((char *) memory, (char *) result,
+ length * sizeof (DST_UNIT));
+ result = memory;
+ }
+ result[length++] = uc;
+ }
+
+ if (length == 0)
+ {
+ if (result == NULL)
+ {
+ /* Return a non-NULL value. NULL means error. */
+ result = (DST_UNIT *) malloc (1);
+ if (result == NULL)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ }
+ }
+ else if (result != resultbuf && length < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DST_UNIT *memory;
+
+ memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ *lengthp = length;
+ return result;
+}
diff --git a/lib/unistr/u8-uctomb-aux.c b/lib/unistr/u8-uctomb-aux.c
new file mode 100644
index 0000000..c42fa50
--- /dev/null
+++ b/lib/unistr/u8-uctomb-aux.c
@@ -0,0 +1,69 @@
+/* Conversion UCS-4 to UTF-8.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n)
+{
+ int count;
+
+ if (uc < 0x80)
+ /* The case n >= 1 is already handled by the caller. */
+ return -2;
+ else if (uc < 0x800)
+ count = 2;
+ else if (uc < 0x10000)
+ {
+ if (uc < 0xd800 || uc >= 0xe000)
+ count = 3;
+ else
+ return -1;
+ }
+#if 0
+ else if (uc < 0x200000)
+ count = 4;
+ else if (uc < 0x4000000)
+ count = 5;
+ else if (uc <= 0x7fffffff)
+ count = 6;
+#else
+ else if (uc < 0x110000)
+ count = 4;
+#endif
+ else
+ return -1;
+
+ if (n < count)
+ return -2;
+
+ switch (count) /* note: code falls through cases! */
+ {
+#if 0
+ case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
+ case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
+#endif
+ case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
+ case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
+ case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
+ /*case 1:*/ s[0] = uc;
+ }
+ return count;
+}
diff --git a/lib/unistr/u8-uctomb.c b/lib/unistr/u8-uctomb.c
new file mode 100644
index 0000000..3392166
--- /dev/null
+++ b/lib/unistr/u8-uctomb.c
@@ -0,0 +1,88 @@
+/* Store a character in UTF-8 string.
+ Copyright (C) 2002, 2005-2006, 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+#if defined IN_LIBUNISTRING
+/* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */
+# include "unistring-notinline.h"
+#endif
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_uctomb (uint8_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0x80)
+ {
+ if (n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ /* else return -2, below. */
+ }
+ else
+ {
+ int count;
+
+ if (uc < 0x800)
+ count = 2;
+ else if (uc < 0x10000)
+ {
+ if (uc < 0xd800 || uc >= 0xe000)
+ count = 3;
+ else
+ return -1;
+ }
+#if 0
+ else if (uc < 0x200000)
+ count = 4;
+ else if (uc < 0x4000000)
+ count = 5;
+ else if (uc <= 0x7fffffff)
+ count = 6;
+#else
+ else if (uc < 0x110000)
+ count = 4;
+#endif
+ else
+ return -1;
+
+ if (n >= count)
+ {
+ switch (count) /* note: code falls through cases! */
+ {
+#if 0
+ case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
+ case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
+#endif
+ case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
+ case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
+ case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
+ /*case 1:*/ s[0] = uc;
+ }
+ return count;
+ }
+ }
+ return -2;
+}
+
+#endif
diff --git a/lib/unistring-notinline.h b/lib/unistring-notinline.h
new file mode 100644
index 0000000..e7e5faa
--- /dev/null
+++ b/lib/unistring-notinline.h
@@ -0,0 +1,23 @@
+/* Override decision whether to use 'inline' or not.
+ 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include "unistring/inline.h"
+#undef UNISTRING_HAVE_INLINE
+#define UNISTRING_HAVE_INLINE 0
+#undef HAVE_INLINE
+#define HAVE_INLINE 0
diff --git a/lib/unistring/inline.h b/lib/unistring/inline.h
new file mode 100644
index 0000000..bdb0b22
--- /dev/null
+++ b/lib/unistring/inline.h
@@ -0,0 +1,68 @@
+/* Decision whether to use 'inline' or not.
+ Copyright (C) 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 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#ifndef _UNISTRING_INLINE_H
+#define _UNISTRING_INLINE_H
+
+/* This is like the gl_INLINE macro in gnulib/m4/inline.m4, but makes its
+ decision based on defined preprocessor symbols rather than through
+ autoconf tests.
+ See <http://lists.gnu.org/archive/html/bug-gnulib/2006-11/msg00055.html> */
+
+/* Test for the 'inline' keyword or equivalent. ISO C 99 semantics is not
+ required, only that 'static inline' works.
+ Define 'inline' to a supported equivalent, or to nothing if not supported,
+ like AC_C_INLINE does. Also, define UNISTRING_HAVE_INLINE if 'inline' or an
+ equivalent is effectively supported, i.e. if the compiler is likely to
+ drop unused 'static inline' functions. */
+
+#if defined __GNUC__
+/* GNU C or GNU C++. */
+# if defined __NO_INLINE__
+/* GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
+ specified. */
+# define UNISTRING_HAVE_INLINE 0
+# else
+/* Whether 'inline' has the old GCC semantics or the ISO C 99 semantics,
+ does not matter. */
+# define UNISTRING_HAVE_INLINE 1
+# ifndef inline
+# define inline __inline__
+# endif
+# endif
+#elif defined __cplusplus
+/* Any other C++ compiler. */
+# define UNISTRING_HAVE_INLINE 1
+#else
+/* Any other C compiler. */
+# if defined __osf__
+/* OSF/1 cc has inline. */
+# define UNISTRING_HAVE_INLINE 1
+# elif defined _AIX || defined __sgi
+/* AIX 4 xlc, IRIX 6.5 cc have __inline. */
+# define UNISTRING_HAVE_INLINE 1
+# ifndef inline
+# define inline __inline
+# endif
+# else
+/* Some older C compiler. */
+# define UNISTRING_HAVE_INLINE 0
+# endif
+#endif
+
+#endif /* _UNISTRING_INLINE_H */
diff --git a/lib/unistring/version.in.h b/lib/unistring/version.in.h
new file mode 100644
index 0000000..47b736a
--- /dev/null
+++ b/lib/unistring/version.in.h
@@ -0,0 +1,39 @@
+/* Meta information about GNU libunistring.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+#ifndef _UNISTRING_VERSION_H
+#define _UNISTRING_VERSION_H
+
+/* Get LIBUNISTRING_DLL_VARIABLE. */
+#include <unistring/woe32dll.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define _LIBUNISTRING_VERSION @HEXVERSION@ /* version number: (major<<8) + minor */
+extern LIBUNISTRING_DLL_VARIABLE const int _libunistring_version; /* Likewise */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNISTRING_VERSION_H */
diff --git a/lib/unistring/woe32dll.in.h b/lib/unistring/woe32dll.in.h
new file mode 100644
index 0000000..7764c86
--- /dev/null
+++ b/lib/unistring/woe32dll.in.h
@@ -0,0 +1,30 @@
+/* Support for variables in shared libraries on Windows platforms.
+ 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/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#ifndef _UNISTRING_WOE32DLL_H
+#define _UNISTRING_WOE32DLL_H
+
+#ifdef IN_LIBUNISTRING
+/* All code is collected in a single library, */
+# define LIBUNISTRING_DLL_VARIABLE
+#else
+/* References from outside of libunistring. */
+# define LIBUNISTRING_DLL_VARIABLE @DLL_VARIABLE@
+#endif
+
+#endif /* _UNISTRING_WOE32DLL_H */
diff --git a/lib/unitypes.h b/lib/unitypes.h
new file mode 100644
index 0000000..515f7ad
--- /dev/null
+++ b/lib/unitypes.h
@@ -0,0 +1,26 @@
+/* Elementary types for the GNU UniString library.
+ Copyright (C) 2002, 2005-2006 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/>. */
+
+#ifndef _UNITYPES_H
+#define _UNITYPES_H
+
+/* Get uint8_t, uint16_t, uint32_t. */
+#include <unistring/stdint.h>
+
+/* Type representing a Unicode character. */
+typedef uint32_t ucs4_t;
+
+#endif /* _UNITYPES_H */
diff --git a/lib/uniwbrk.h b/lib/uniwbrk.h
new file mode 100644
index 0000000..c6ad971
--- /dev/null
+++ b/lib/uniwbrk.h
@@ -0,0 +1,83 @@
+/* Word breaks in Unicode strings.
+ Copyright (C) 2001-2003, 2005-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+#ifndef _UNIWBRK_H
+#define _UNIWBRK_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Property defined in Unicode Standard Annex #29, section "Word Boundaries"
+ <http://www.unicode.org/reports/tr29/#Word_Boundaries> */
+
+/* Possible values of the Word_Break property.
+ This enumeration may be extended in the future. */
+enum
+{
+ WBP_OTHER = 0,
+ WBP_CR = 11,
+ WBP_LF = 12,
+ WBP_NEWLINE = 10,
+ WBP_EXTEND = 8,
+ WBP_FORMAT = 9,
+ WBP_KATAKANA = 1,
+ WBP_ALETTER = 2,
+ WBP_MIDNUMLET = 3,
+ WBP_MIDLETTER = 4,
+ WBP_MIDNUM = 5,
+ WBP_NUMERIC = 6,
+ WBP_EXTENDNUMLET = 7
+};
+
+/* Return the Word_Break property of a Unicode character. */
+extern int
+ uc_wordbreak_property (ucs4_t uc);
+
+/* ========================================================================= */
+
+/* Word breaks. */
+
+/* Determine the word break points in S, and store the result at p[0..n-1].
+ p[i] = 1 means that there is a word boundary between s[i-1] and s[i].
+ p[i] = 0 means that s[i-1] and s[i] must not be separated.
+ */
+extern void
+ u8_wordbreaks (const uint8_t *s, size_t n, char *p);
+extern void
+ u16_wordbreaks (const uint16_t *s, size_t n, char *p);
+extern void
+ u32_wordbreaks (const uint32_t *s, size_t n, char *p);
+extern void
+ ulc_wordbreaks (const char *s, size_t n, char *p);
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNIWBRK_H */
diff --git a/lib/uniwbrk/u-wordbreaks.h b/lib/uniwbrk/u-wordbreaks.h
new file mode 100644
index 0000000..5ef4e8c
--- /dev/null
+++ b/lib/uniwbrk/u-wordbreaks.h
@@ -0,0 +1,127 @@
+/* Word breaks in UTF-8/UTF-16/UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+void
+FUNC (const UNIT *s, size_t n, char *p)
+{
+ if (n > 0)
+ {
+ const UNIT *s_end = s + n;
+
+ /* Word break property of the last character.
+ -1 at the very beginning of the string. */
+ int last_char_prop = -1;
+
+ /* Format and Extend characters are ignored; this means, the mostly used
+ unit is the complex character (= character with subsequent ignored
+ characters).
+ Word break property of the last complex character.
+ -1 at the very beginning of the string. */
+ int last_compchar_prop = -1;
+ char *last_compchar_ptr = NULL;
+
+ /* For recognizing rules involving 3 complex characters:
+ Word break property of the second-to-last complex character.
+ -1 at the very beginning of the string. */
+ int secondlast_compchar_prop = -1;
+
+ /* Don't break inside multibyte characters. */
+ memset (p, 0, n);
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
+ int prop = uc_wordbreak_property (uc);
+
+ /* No break at the start of the string. */
+ if (last_char_prop >= 0)
+ {
+ /* No break between CR and LF. */
+ if (last_char_prop == WBP_CR && prop == WBP_LF)
+ /* *p = 0 */;
+ /* Break before and after newlines. */
+ else if (last_char_prop >= WBP_NEWLINE
+ /* same as:
+ last_char_prop == WBP_CR
+ || last_char_prop == WBP_LF
+ || last_char_prop == WBP_NEWLINE */
+ || prop >= WBP_NEWLINE
+ /* same as:
+ prop == WBP_CR
+ || prop == WBP_LF
+ || prop == WBP_NEWLINE */)
+ *p = 1;
+ /* Ignore Format and Extend characters. */
+ else if (!(prop == WBP_EXTEND || prop == WBP_FORMAT))
+ {
+ /* No break in these situations (see UAX #29):
+
+ secondlast last current
+
+ ALetter (MidLetter | MidNumLet) × ALetter (WB7)
+ ALetter × (MidLetter | MidNumLet) ALetter (WB6)
+ Numeric (MidNum | MidNumLet) × Numeric (WB11)
+ Numeric × (MidNum | MidNumLet) Numeric (WB12)
+ ALetter × ALetter (WB5)
+ ALetter × Numeric (WB9)
+ Numeric × ALetter (WB10)
+ Numeric × Numeric (WB8)
+ Katakana × Katakana (WB13)
+ (ALetter | Numeric | Katakana) × ExtendNumLet (WB13a)
+ ExtendNumLet × ExtendNumLet (WB13a)
+ ExtendNumLet × (ALetter | Numeric | Katakana) (WB13b)
+ */
+ /* No break across certain punctuation. Also, disable word
+ breaks that were recognized earlier (due to lookahead of
+ only one complex character). */
+ if ((prop == WBP_ALETTER
+ && (last_compchar_prop == WBP_MIDLETTER
+ || last_compchar_prop == WBP_MIDNUMLET)
+ && secondlast_compchar_prop == WBP_ALETTER)
+ || (prop == WBP_NUMERIC
+ && (last_compchar_prop == WBP_MIDNUM
+ || last_compchar_prop == WBP_MIDNUMLET)
+ && secondlast_compchar_prop == WBP_NUMERIC))
+ {
+ *last_compchar_ptr = 0;
+ /* *p = 0; */
+ }
+ else
+ {
+ /* Perform a single table lookup. */
+ if (uniwbrk_table[last_compchar_prop][prop])
+ *p = 1;
+ /* else *p = 0; */
+ }
+ }
+ }
+
+ last_char_prop = prop;
+ /* Ignore Format and Extend characters, except at the start of the string. */
+ if (last_compchar_prop < 0 || !(prop == WBP_EXTEND || prop == WBP_FORMAT))
+ {
+ secondlast_compchar_prop = last_compchar_prop;
+ last_compchar_prop = prop;
+ last_compchar_ptr = p;
+ }
+
+ s += count;
+ p += count;
+ }
+ }
+}
diff --git a/lib/uniwbrk/u16-wordbreaks.c b/lib/uniwbrk/u16-wordbreaks.c
new file mode 100644
index 0000000..3398fd3
--- /dev/null
+++ b/lib/uniwbrk/u16-wordbreaks.c
@@ -0,0 +1,31 @@
+/* Word breaks in UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uniwbrk.h"
+
+#include <string.h>
+
+#include "unistr.h"
+#include "uniwbrk/wbrktable.h"
+
+#define FUNC u16_wordbreaks
+#define UNIT uint16_t
+#define U_MBTOUC_UNSAFE u16_mbtouc_unsafe
+#include "u-wordbreaks.h"
diff --git a/lib/uniwbrk/u32-wordbreaks.c b/lib/uniwbrk/u32-wordbreaks.c
new file mode 100644
index 0000000..6763fb9
--- /dev/null
+++ b/lib/uniwbrk/u32-wordbreaks.c
@@ -0,0 +1,31 @@
+/* Word breaks in UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uniwbrk.h"
+
+#include <string.h>
+
+#include "unistr.h"
+#include "uniwbrk/wbrktable.h"
+
+#define FUNC u32_wordbreaks
+#define UNIT uint32_t
+#define U_MBTOUC_UNSAFE u32_mbtouc_unsafe
+#include "u-wordbreaks.h"
diff --git a/lib/uniwbrk/u8-wordbreaks.c b/lib/uniwbrk/u8-wordbreaks.c
new file mode 100644
index 0000000..59d2076
--- /dev/null
+++ b/lib/uniwbrk/u8-wordbreaks.c
@@ -0,0 +1,124 @@
+/* Word breaks in UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uniwbrk.h"
+
+#include <string.h>
+
+#include "unistr.h"
+#include "uniwbrk/wbrktable.h"
+
+#define FUNC u8_wordbreaks
+#define UNIT uint8_t
+#define U_MBTOUC_UNSAFE u8_mbtouc_unsafe
+#include "u-wordbreaks.h"
+
+
+#ifdef TEST
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ if (argc == 1)
+ {
+ /* Display all the word breaks in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ u8_wordbreaks ((uint8_t *) input, length, breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case 1:
+ /* U+2027 in UTF-8 encoding */
+ putc (0xe2, stdout); putc (0x80, stdout); putc (0xa7, stdout);
+ break;
+ case 0:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/uniwbrk/ulc-wordbreaks.c b/lib/uniwbrk/ulc-wordbreaks.c
new file mode 100644
index 0000000..cb6e131
--- /dev/null
+++ b/lib/uniwbrk/ulc-wordbreaks.c
@@ -0,0 +1,201 @@
+/* Word breaks in strings.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uniwbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-ctype.h"
+#include "localcharset.h"
+#include "uniconv.h"
+#include "unilbrk/ulc-common.h"
+
+/* Word breaks of a string in an arbitrary encoding.
+
+ We convert the input string to Unicode.
+
+ The standardized Unicode encodings are UTF-8, UCS-2, UCS-4, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-7. UCS-2 supports only characters up to
+ \U0000FFFF. UTF-16 and variants support only characters up to
+ \U0010FFFF. UTF-7 is way too complex and not supported by glibc-2.1.
+ UCS-4 specification leaves doubts about endianness and byte order mark.
+ glibc currently interprets it as big endian without byte order mark,
+ but this is not backed by an RFC. So we use UTF-8. It supports
+ characters up to \U7FFFFFFF and is unambiguously defined. */
+
+void
+ulc_wordbreaks (const char *s, size_t n, char *p)
+{
+ if (n > 0)
+ {
+ const char *encoding = locale_charset ();
+
+ if (is_utf8_encoding (encoding))
+ u8_wordbreaks ((const uint8_t *) s, n, p);
+ else
+ {
+ /* Convert the string to UTF-8 and build a translation table
+ from offsets into s to offsets into the translated string. */
+ size_t *offsets = (size_t *) malloc (n * sizeof (size_t));
+
+ if (offsets != NULL)
+ {
+ uint8_t *t;
+ size_t m;
+
+ t = u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
+ if (t != NULL)
+ {
+ char *q = (char *) (m > 0 ? malloc (m) : NULL);
+
+ if (m == 0 || q != NULL)
+ {
+ size_t i;
+
+ /* Determine the word breaks of the UTF-8 string. */
+ u8_wordbreaks (t, m, q);
+
+ /* Translate the result back to the original string. */
+ memset (p, 0, n);
+ for (i = 0; i < n; i++)
+ if (offsets[i] != (size_t)(-1))
+ p[i] = q[offsets[i]];
+
+ free (q);
+ free (t);
+ free (offsets);
+ return;
+ }
+ free (t);
+ }
+ free (offsets);
+ }
+
+ /* Impossible to convert. */
+#if C_CTYPE_ASCII
+ if (is_all_ascii (s, n))
+ {
+ /* ASCII is a subset of UTF-8. */
+ u8_wordbreaks ((const uint8_t *) s, n, p);
+ return;
+ }
+#endif
+ /* We have a non-ASCII string and cannot convert it.
+ Don't produce any word breaks. */
+ memset (p, 0, n);
+ }
+ }
+}
+
+
+#ifdef TEST
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_CTYPE, "");
+ if (argc == 1)
+ {
+ /* Display all the word breaks in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ ulc_wordbreaks (input, length, breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case 1:
+ putc ('|', stdout);
+ break;
+ case 0:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST */
diff --git a/lib/uniwbrk/wbrkprop.h b/lib/uniwbrk/wbrkprop.h
new file mode 100644
index 0000000..3b50e17
--- /dev/null
+++ b/lib/uniwbrk/wbrkprop.h
@@ -0,0 +1,3755 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Line breaking properties of Unicode characters. */
+/* Generated automatically by gen-uni-tables for Unicode 5.1.0. */
+
+/* Copyright (C) 2000-2002, 2004, 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 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/>. */
+
+#define wbrkprop_header_0 16
+#define wbrkprop_header_1 15
+#define wbrkprop_header_2 7
+#define wbrkprop_header_3 511
+#define wbrkprop_header_4 127
+
+typedef struct
+ {
+ int level1[15];
+ int level2[3 << 9];
+ unsigned char level3[110 << 7];
+ }
+wbrkprop_t;
+static const wbrkprop_t uniwbrkprop =
+{
+ {
+ 0, 512, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1024
+ },
+ {
+ 0, 128, 256, 256, 256, 384, 512, 640,
+ 256, 768, 896, 1024, 1152, 1280, 1408, 1536,
+ -1, -1, 1664, 1792, 1920, 2048, 2176, 2304,
+ 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328,
+ 3456, 3584, 3712, 3840, 3968, 4096, 4224, 4352,
+ 4480, 256, 256, 256, 4608, 4736, 4864, 4992,
+ 5120, 5248, 5376, 5504, 5632, -1, 5760, 5888,
+ 6016, -1, 256, 6144, 256, 256, 6272, 6400,
+ 6528, 6656, 6784, 6912, -1, -1, -1, -1,
+ -1, 7040, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 7168, 7296, 7424, 7552, 7680, -1, -1, -1,
+ 7808, 7936, 8064, 8192, -1, 8320, 8448, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 8576, 256, 256, 8704, 8832, 8960, 9088,
+ 9216, 9344, 9472, -1, 9600, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 9728,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 9856, 9984,
+ 256, 256, 10112, 10240, 10368, 10496, 10624, 10752,
+ 10880, 11008, 11136, 11264, -1, 11392, 11520, 11648,
+ 256, 11776, -1, -1, -1, -1, -1, -1,
+ 11904, -1, 12032, -1, 12160, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, 256, 256, 256, 256, 256, 12288, -1,
+ 12416, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12544, 12672, 12800, -1, -1, -1,
+ 12928, 13056, 13184, 256, 256, 13312, 13440, 13568,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 13696, -1, 13824, 13952, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_LF, WBP_NEWLINE,
+ WBP_NEWLINE, WBP_CR, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_MIDNUMLET,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_MIDLETTER, WBP_MIDNUM,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_NEWLINE, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_FORMAT, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_MIDLETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_MIDNUM, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_MIDLETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_MIDNUM, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_MIDLETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUM, WBP_MIDNUM, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_NUMERIC,
+ WBP_MIDNUM, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_FORMAT, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_FORMAT,
+ WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUM, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_FORMAT, WBP_FORMAT, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_FORMAT,
+ WBP_EXTEND, WBP_EXTEND, WBP_FORMAT, WBP_FORMAT,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUMLET, WBP_MIDNUMLET, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUMLET, WBP_OTHER, WBP_OTHER, WBP_MIDLETTER,
+ WBP_NEWLINE, WBP_NEWLINE, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET,
+ WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUM, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_MIDNUM, WBP_OTHER, WBP_OTHER, WBP_MIDLETTER,
+ WBP_MIDNUM, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET,
+ WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTENDNUMLET, WBP_EXTENDNUMLET, WBP_EXTENDNUMLET,
+ WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER,
+ WBP_MIDNUM, WBP_MIDLETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_FORMAT,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_MIDNUMLET,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_MIDLETTER, WBP_MIDNUM,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA,
+ WBP_KATAKANA, WBP_KATAKANA, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+ WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+ WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+ WBP_OTHER, WBP_FORMAT, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+ WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER
+ }
+};
diff --git a/lib/uniwbrk/wbrktable.c b/lib/uniwbrk/wbrktable.c
new file mode 100644
index 0000000..81a2323
--- /dev/null
+++ b/lib/uniwbrk/wbrktable.c
@@ -0,0 +1,52 @@
+/* Word break auxiliary table.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "wbrktable.h"
+
+/* This table contains the following rules (see UAX #29):
+
+ last current
+
+ ALetter × ALetter (WB5)
+ ALetter × Numeric (WB9)
+ Numeric × ALetter (WB10)
+ Numeric × Numeric (WB8)
+ Katakana × Katakana (WB13)
+ (ALetter | Numeric | Katakana) × ExtendNumLet (WB13a)
+ ExtendNumLet × ExtendNumLet (WB13a)
+ ExtendNumLet × (ALetter | Numeric | Katakana) (WB13b)
+ */
+
+const unsigned char uniwbrk_table[10][8] =
+{ /* current: OTHER MIDNUMLET NUMERIC */
+ /* KATAKANA MIDLETTER EXTENDNUMLET */
+ /* ALETTER MIDNUM */
+ /* last */
+ /* WBP_OTHER */ { 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* WBP_KATAKANA */ { 1, 0, 1, 1, 1, 1, 1, 0 },
+ /* WBP_ALETTER */ { 1, 1, 0, 1, 1, 1, 0, 0 },
+ /* WBP_MIDNUMLET */ { 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* WBP_MIDLETTER */ { 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* WBP_MIDNUM */ { 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* WBP_NUMERIC */ { 1, 1, 0, 1, 1, 1, 0, 0 },
+ /* WBP_EXTENDNUMLET */ { 1, 0, 0, 1, 1, 1, 0, 0 },
+ /* WBP_EXTEND */ { 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* WBP_FORMAT */ { 1, 1, 1, 1, 1, 1, 1, 1 }
+};
diff --git a/lib/uniwbrk/wbrktable.h b/lib/uniwbrk/wbrktable.h
new file mode 100644
index 0000000..14efee9
--- /dev/null
+++ b/lib/uniwbrk/wbrktable.h
@@ -0,0 +1,18 @@
+/* Word break auxiliary table.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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/>. */
+
+extern const unsigned char uniwbrk_table[10][8];
diff --git a/lib/uniwbrk/wordbreak-property.c b/lib/uniwbrk/wordbreak-property.c
new file mode 100644
index 0000000..4d0a212
--- /dev/null
+++ b/lib/uniwbrk/wordbreak-property.c
@@ -0,0 +1,44 @@
+/* Word break property.
+ Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "uniwbrk.h"
+
+#include "wbrkprop.h"
+
+int
+uc_wordbreak_property (ucs4_t uc)
+{
+ unsigned int index1 = uc >> wbrkprop_header_0;
+ if (index1 < wbrkprop_header_1)
+ {
+ int lookup1 = uniwbrkprop.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> wbrkprop_header_2) & wbrkprop_header_3;
+ int lookup2 = uniwbrkprop.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = uc & wbrkprop_header_4;
+ return uniwbrkprop.level3[lookup2 + index3];
+ }
+ }
+ }
+ return WBP_OTHER;
+}
diff --git a/lib/uniwidth.h b/lib/uniwidth.h
new file mode 100644
index 0000000..4f867b3
--- /dev/null
+++ b/lib/uniwidth.h
@@ -0,0 +1,64 @@
+/* Display width functions.
+ Copyright (C) 2001-2002, 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 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/>. */
+
+#ifndef _UNIWIDTH_H
+#define _UNIWIDTH_H
+
+#include "unitypes.h"
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get locale_charset() declaration. */
+#include <unistring/localcharset.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Display width. */
+
+/* These functions are locale dependent. The encoding argument identifies
+ the encoding (e.g. "ISO-8859-2" for Polish). */
+
+/* Determine number of column positions required for UC. */
+extern int
+ uc_width (ucs4_t uc, const char *encoding);
+
+/* Determine number of column positions required for first N units
+ (or fewer if S ends before this) in S. */
+extern int
+ u8_width (const uint8_t *s, size_t n, const char *encoding);
+extern int
+ u16_width (const uint16_t *s, size_t n, const char *encoding);
+extern int
+ u32_width (const uint32_t *s, size_t n, const char *encoding);
+
+/* Determine number of column positions required for S. */
+extern int
+ u8_strwidth (const uint8_t *s, const char *encoding);
+extern int
+ u16_strwidth (const uint16_t *s, const char *encoding);
+extern int
+ u32_strwidth (const uint32_t *s, const char *encoding);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNIWIDTH_H */
diff --git a/lib/uniwidth/cjk.h b/lib/uniwidth/cjk.h
new file mode 100644
index 0000000..6124e1a
--- /dev/null
+++ b/lib/uniwidth/cjk.h
@@ -0,0 +1,37 @@
+/* Test for CJK encoding.
+ Copyright (C) 2001-2002, 2005-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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 "streq.h"
+
+static int
+is_cjk_encoding (const char *encoding)
+{
+ if (0
+ /* Legacy Japanese encodings */
+ || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+ /* Legacy Chinese encodings */
+ || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+ || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+ /* Legacy Korean encodings */
+ || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+ || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+ return 1;
+ return 0;
+}
diff --git a/lib/uniwidth/u16-strwidth.c b/lib/uniwidth/u16-strwidth.c
new file mode 100644
index 0000000..e938bd2
--- /dev/null
+++ b/lib/uniwidth/u16-strwidth.c
@@ -0,0 +1,29 @@
+/* Determine display width of UTF-16 string.
+ Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "unistr.h"
+
+int
+u16_strwidth (const uint16_t *s, const char *encoding)
+{
+ return u16_width (s, u16_strlen (s), encoding);
+}
diff --git a/lib/uniwidth/u16-width.c b/lib/uniwidth/u16-width.c
new file mode 100644
index 0000000..b866b3c
--- /dev/null
+++ b/lib/uniwidth/u16-width.c
@@ -0,0 +1,47 @@
+/* Determine display width of UTF-16 string.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "unistr.h"
+
+int
+u16_width (const uint16_t *s, size_t n, const char *encoding)
+{
+ const uint16_t *s_end = s + n;
+ int width = 0;
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int w;
+
+ s += u16_mbtouc_unsafe (&uc, s, s_end - s);
+
+ if (uc == 0)
+ break; /* end of string reached */
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ width += w;
+ }
+
+ return width;
+}
diff --git a/lib/uniwidth/u32-strwidth.c b/lib/uniwidth/u32-strwidth.c
new file mode 100644
index 0000000..ee4eb4a
--- /dev/null
+++ b/lib/uniwidth/u32-strwidth.c
@@ -0,0 +1,29 @@
+/* Determine display width of UTF-32 string.
+ Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "unistr.h"
+
+int
+u32_strwidth (const uint32_t *s, const char *encoding)
+{
+ return u32_width (s, u32_strlen (s), encoding);
+}
diff --git a/lib/uniwidth/u32-width.c b/lib/uniwidth/u32-width.c
new file mode 100644
index 0000000..f928fa4
--- /dev/null
+++ b/lib/uniwidth/u32-width.c
@@ -0,0 +1,43 @@
+/* Determine display width of UTF-32 string.
+ Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+int
+u32_width (const uint32_t *s, size_t n, const char *encoding)
+{
+ const uint32_t *s_end = s + n;
+ int width = 0;
+
+ while (s < s_end)
+ {
+ ucs4_t uc = *s++;
+ int w;
+
+ if (uc == 0)
+ break; /* end of string reached */
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ width += w;
+ }
+
+ return width;
+}
diff --git a/lib/uniwidth/u8-strwidth.c b/lib/uniwidth/u8-strwidth.c
new file mode 100644
index 0000000..961f26b
--- /dev/null
+++ b/lib/uniwidth/u8-strwidth.c
@@ -0,0 +1,29 @@
+/* Determine display width of UTF-8 string.
+ Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "unistr.h"
+
+int
+u8_strwidth (const uint8_t *s, const char *encoding)
+{
+ return u8_width (s, u8_strlen (s), encoding);
+}
diff --git a/lib/uniwidth/u8-width.c b/lib/uniwidth/u8-width.c
new file mode 100644
index 0000000..ad0d49d
--- /dev/null
+++ b/lib/uniwidth/u8-width.c
@@ -0,0 +1,47 @@
+/* Determine display width of UTF-8 string.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "unistr.h"
+
+int
+u8_width (const uint8_t *s, size_t n, const char *encoding)
+{
+ const uint8_t *s_end = s + n;
+ int width = 0;
+
+ while (s < s_end)
+ {
+ ucs4_t uc;
+ int w;
+
+ s += u8_mbtouc_unsafe (&uc, s, s_end - s);
+
+ if (uc == 0)
+ break; /* end of string reached */
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ width += w;
+ }
+
+ return width;
+}
diff --git a/lib/uniwidth/width.c b/lib/uniwidth/width.c
new file mode 100644
index 0000000..25ff0c7
--- /dev/null
+++ b/lib/uniwidth/width.c
@@ -0,0 +1,359 @@
+/* Determine display width of Unicode character.
+ Copyright (C) 2001-2002, 2006-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2002.
+
+ 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>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "cjk.h"
+
+/*
+ * Non-spacing attribute table.
+ * Consists of:
+ * - Non-spacing characters; generated from PropList.txt or
+ * "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
+ * - Format control characters; generated from
+ * "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
+ * - Zero width characters; generated from
+ * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+ */
+static const unsigned char nonspacing_table_data[26*64] = {
+ /* 0x0000-0x01ff */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
+ /* 0x0200-0x03ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
+ /* 0x0400-0x05ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
+ 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
+ 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
+ 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
+ /* 0x0600-0x07ff */
+ 0x0f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+ 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
+ 0x00, 0x00, 0xc0, 0xff, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+ 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
+ 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
+ /* 0x0800-0x09ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0800-0x083f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0900-0x093f */
+ 0xfe, 0x21, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
+ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
+ /* 0x0a00-0x0bff */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
+ 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
+ 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
+ 0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
+ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
+ /* 0x0c00-0x0dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
+ 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+ 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
+ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
+ 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
+ /* 0x0e00-0x0fff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
+ 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
+ 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
+ 0xdf, 0x00, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
+ /* 0x1000-0x11ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
+ 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
+ 0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
+ /* 0x1200-0x13ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
+ /* 0x1600-0x17ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
+ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
+ 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
+ 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
+ /* 0x1800-0x19ff */
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
+ 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
+ /* 0x1a00-0x1bff */
+ 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a40-0x1a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
+ 0x03, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x00, 0x00, /* 0x1b80-0x1bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc0-0x1bff */
+ /* 0x1c00-0x1dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cc0-0x1cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
+ 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, /* 0x1dc0-0x1dff */
+ /* 0x2000-0x21ff */
+ 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
+ /* 0x2c00-0x2dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2cc0-0x2cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d40-0x2d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
+ /* 0x3000-0x31ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
+ /* 0xa600-0xa7ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x30, /* 0xa640-0xa67f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa6c0-0xa6ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */
+ /* 0xa800-0xa9ff */
+ 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8c0-0xa8ff */
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
+ 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa980-0xa9bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+ /* 0xaa00-0xabff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
+ 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa40-0xaa7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa80-0xaabf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xabc0-0xabff */
+ /* 0xfa00-0xfbff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
+ /* 0xfe00-0xffff */
+ 0xff, 0xff, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
+ /* 0x10000-0x101ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */
+ /* 0x10a00-0x10bff */
+ 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+ /* 0x1d000-0x1d1ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xf8, /* 0x1d140-0x1d17f */
+ 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
+ /* 0x1d200-0x1d3ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
+ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1d3c0-0x1d3ff */
+};
+static const signed char nonspacing_table_ind[240] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */
+ 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
+ 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */
+ 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
+ -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
+ -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
+ 22, -1, -1, -1, -1, 23, -1, -1, /* 0x10000-0x10fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
+ 24, 25, -1, -1, -1, -1, -1, -1 /* 0x1d000-0x1dfff */
+};
+
+/* Determine number of column positions required for UC. */
+int
+uc_width (ucs4_t uc, const char *encoding)
+{
+ /* Test for non-spacing or control character. */
+ if ((uc >> 9) < 240)
+ {
+ int ind = nonspacing_table_ind[uc >> 9];
+ if (ind >= 0)
+ if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1)
+ {
+ if (uc > 0 && uc < 0xa0)
+ return -1;
+ else
+ return 0;
+ }
+ }
+ else if ((uc >> 9) == (0xe0000 >> 9))
+ {
+ if (uc >= 0xe0100)
+ {
+ if (uc <= 0xe01ef)
+ return 0;
+ }
+ else
+ {
+ if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001)
+ return 0;
+ }
+ }
+ /* Test for double-width character.
+ * Generated from "grep '^....;[WF]' EastAsianWidth.txt"
+ * and "grep '^....;[^WF]' EastAsianWidth.txt"
+ */
+ if (uc >= 0x1100
+ && ((uc < 0x1160) /* Hangul Jamo */
+ || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */
+ || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */
+ && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00))
+ || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */
+ || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */
+ || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */
+ || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
+ || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
+ || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
+ || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */
+ || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */
+ ) )
+ return 2;
+ /* In ancient CJK encodings, Cyrillic and most other characters are
+ double-width as well. */
+ if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9
+ && is_cjk_encoding (encoding))
+ return 2;
+ return 1;
+}
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
new file mode 100644
index 0000000..c620b4c
--- /dev/null
+++ b/lib/vasnprintf.c
@@ -0,0 +1,5487 @@
+/* vsprintf with automatic memory allocation.
+ Copyright (C) 1999, 2002-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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* This file can be parametrized with the following macros:
+ VASNPRINTF The name of the function being defined.
+ FCHAR_T The element type of the format string.
+ DCHAR_T The element type of the destination (result) string.
+ FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
+ in the format string are ASCII. MUST be set if
+ FCHAR_T and DCHAR_T are not the same type.
+ DIRECTIVE Structure denoting a format directive.
+ Depends on FCHAR_T.
+ DIRECTIVES Structure denoting the set of format directives of a
+ format string. Depends on FCHAR_T.
+ PRINTF_PARSE Function that parses a format string.
+ Depends on FCHAR_T.
+ DCHAR_CPY memcpy like function for DCHAR_T[] arrays.
+ DCHAR_SET memset like function for DCHAR_T[] arrays.
+ DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays.
+ SNPRINTF The system's snprintf (or similar) function.
+ This may be either snprintf or swprintf.
+ TCHAR_T The element type of the argument and result string
+ of the said SNPRINTF function. This may be either
+ char or wchar_t. The code exploits that
+ sizeof (TCHAR_T) | sizeof (DCHAR_T) and
+ alignof (TCHAR_T) <= alignof (DCHAR_T).
+ DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type.
+ DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[].
+ DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t.
+ DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t.
+ DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifndef VASNPRINTF
+# include <config.h>
+#endif
+#ifndef IN_LIBINTL
+# include <alloca.h>
+#endif
+
+/* Specification. */
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# include "vasnwprintf.h"
+# else
+# include "vasnprintf.h"
+# endif
+#endif
+
+#include <locale.h> /* localeconv() */
+#include <stdio.h> /* snprintf(), sprintf() */
+#include <stdlib.h> /* abort(), malloc(), realloc(), free() */
+#include <string.h> /* memcpy(), strlen() */
+#include <errno.h> /* errno */
+#include <limits.h> /* CHAR_BIT */
+#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */
+#if HAVE_NL_LANGINFO
+# include <langinfo.h>
+#endif
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# include "wprintf-parse.h"
+# else
+# include "printf-parse.h"
+# endif
+#endif
+
+/* Checked size_t computations. */
+#include "xsize.h"
+
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "float+.h"
+#endif
+
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnand-nolibm.h"
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "fpucw.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnand-nolibm.h"
+# include "printf-frexp.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "printf-frexpl.h"
+# include "fpucw.h"
+#endif
+
+/* Default parameters. */
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# define VASNPRINTF vasnwprintf
+# define FCHAR_T wchar_t
+# define DCHAR_T wchar_t
+# define TCHAR_T wchar_t
+# define DCHAR_IS_TCHAR 1
+# define DIRECTIVE wchar_t_directive
+# define DIRECTIVES wchar_t_directives
+# define PRINTF_PARSE wprintf_parse
+# define DCHAR_CPY wmemcpy
+# define DCHAR_SET wmemset
+# else
+# define VASNPRINTF vasnprintf
+# define FCHAR_T char
+# define DCHAR_T char
+# define TCHAR_T char
+# define DCHAR_IS_TCHAR 1
+# define DIRECTIVE char_directive
+# define DIRECTIVES char_directives
+# define PRINTF_PARSE printf_parse
+# define DCHAR_CPY memcpy
+# define DCHAR_SET memset
+# endif
+#endif
+#if WIDE_CHAR_VERSION
+ /* TCHAR_T is wchar_t. */
+# define USE_SNPRINTF 1
+# if HAVE_DECL__SNWPRINTF
+ /* On Windows, the function swprintf() has a different signature than
+ on Unix; we use the _snwprintf() function instead. */
+# define SNPRINTF _snwprintf
+# else
+ /* Unix. */
+# define SNPRINTF swprintf
+# endif
+#else
+ /* TCHAR_T is char. */
+ /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'.
+ But don't use it on BeOS, since BeOS snprintf produces no output if the
+ size argument is >= 0x3000000.
+ Also don't use it on Linux libc5, since there snprintf with size = 1
+ writes any output without bounds, like sprintf. */
+# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1)
+# define USE_SNPRINTF 1
+# else
+# define USE_SNPRINTF 0
+# endif
+# if HAVE_DECL__SNPRINTF
+ /* Windows. */
+# define SNPRINTF _snprintf
+# else
+ /* Unix. */
+# define SNPRINTF snprintf
+ /* Here we need to call the native snprintf, not rpl_snprintf. */
+# undef snprintf
+# endif
+#endif
+/* Here we need to call the native sprintf, not rpl_sprintf. */
+#undef sprintf
+
+/* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized"
+ warnings in this file. Use -Dlint to suppress them. */
+#ifdef lint
+# define IF_LINT(Code) Code
+#else
+# define IF_LINT(Code) /* empty */
+#endif
+
+/* Avoid some warnings from "gcc -Wshadow".
+ This file doesn't use the exp() and remainder() functions. */
+#undef exp
+#define exp expo
+#undef remainder
+#define remainder rem
+
+#if !USE_SNPRINTF && !WIDE_CHAR_VERSION
+# if (HAVE_STRNLEN && !defined _AIX)
+# define local_strnlen strnlen
+# else
+# ifndef local_strnlen_defined
+# define local_strnlen_defined 1
+static size_t
+local_strnlen (const char *string, size_t maxlen)
+{
+ const char *end = memchr (string, '\0', maxlen);
+ return end ? (size_t) (end - string) : maxlen;
+}
+# endif
+# endif
+#endif
+
+#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T && (WIDE_CHAR_VERSION || DCHAR_IS_TCHAR)
+# if HAVE_WCSLEN
+# define local_wcslen wcslen
+# else
+ /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
+ a dependency towards this library, here is a local substitute.
+ Define this substitute only once, even if this file is included
+ twice in the same compilation unit. */
+# ifndef local_wcslen_defined
+# define local_wcslen_defined 1
+static size_t
+local_wcslen (const wchar_t *s)
+{
+ const wchar_t *ptr;
+
+ for (ptr = s; *ptr != (wchar_t) 0; ptr++)
+ ;
+ return ptr - s;
+}
+# endif
+# endif
+#endif
+
+#if !USE_SNPRINTF && HAVE_WCHAR_T && WIDE_CHAR_VERSION
+# if HAVE_WCSNLEN
+# define local_wcsnlen wcsnlen
+# else
+# ifndef local_wcsnlen_defined
+# define local_wcsnlen_defined 1
+static size_t
+local_wcsnlen (const wchar_t *s, size_t maxlen)
+{
+ const wchar_t *ptr;
+
+ for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--)
+ ;
+ return ptr - s;
+}
+# endif
+# endif
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+/* Determine the decimal-point character according to the current locale. */
+# ifndef decimal_point_char_defined
+# define decimal_point_char_defined 1
+static char
+decimal_point_char ()
+{
+ const char *point;
+ /* Determine it in a multithread-safe way. We know nl_langinfo is
+ multithread-safe on glibc systems, but is not required to be multithread-
+ safe by POSIX. sprintf(), however, is multithread-safe. localeconv()
+ is rarely multithread-safe. */
+# if HAVE_NL_LANGINFO && __GLIBC__
+ point = nl_langinfo (RADIXCHAR);
+# elif 1
+ char pointbuf[5];
+ sprintf (pointbuf, "%#.0f", 1.0);
+ point = &pointbuf[1];
+# else
+ point = localeconv () -> decimal_point;
+# endif
+ /* The decimal point is always a single byte: either '.' or ','. */
+ return (point[0] != '\0' ? point[0] : '.');
+}
+# endif
+#endif
+
+#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */
+static int
+is_infinite_or_zero (double x)
+{
+ return isnand (x) || x + x == x;
+}
+
+#endif
+
+#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */
+static int
+is_infinite_or_zerol (long double x)
+{
+ return isnanl (x) || x + x == x;
+}
+
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+
+/* Converting 'long double' to decimal without rare rounding bugs requires
+ real bignums. We use the naming conventions of GNU gmp, but vastly simpler
+ (and slower) algorithms. */
+
+typedef unsigned int mp_limb_t;
+# define GMP_LIMB_BITS 32
+typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1];
+
+typedef unsigned long long mp_twolimb_t;
+# define GMP_TWOLIMB_BITS 64
+typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1];
+
+/* Representation of a bignum >= 0. */
+typedef struct
+{
+ size_t nlimbs;
+ mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */
+} mpn_t;
+
+/* Compute the product of two bignums >= 0.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
+{
+ const mp_limb_t *p1;
+ const mp_limb_t *p2;
+ size_t len1;
+ size_t len2;
+
+ if (src1.nlimbs <= src2.nlimbs)
+ {
+ len1 = src1.nlimbs;
+ p1 = src1.limbs;
+ len2 = src2.nlimbs;
+ p2 = src2.limbs;
+ }
+ else
+ {
+ len1 = src2.nlimbs;
+ p1 = src2.limbs;
+ len2 = src1.nlimbs;
+ p2 = src1.limbs;
+ }
+ /* Now 0 <= len1 <= len2. */
+ if (len1 == 0)
+ {
+ /* src1 or src2 is zero. */
+ dest->nlimbs = 0;
+ dest->limbs = (mp_limb_t *) malloc (1);
+ }
+ else
+ {
+ /* Here 1 <= len1 <= len2. */
+ size_t dlen;
+ mp_limb_t *dp;
+ size_t k, i, j;
+
+ dlen = len1 + len2;
+ dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
+ if (dp == NULL)
+ return NULL;
+ for (k = len2; k > 0; )
+ dp[--k] = 0;
+ for (i = 0; i < len1; i++)
+ {
+ mp_limb_t digit1 = p1[i];
+ mp_twolimb_t carry = 0;
+ for (j = 0; j < len2; j++)
+ {
+ mp_limb_t digit2 = p2[j];
+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+ carry += dp[i + j];
+ dp[i + j] = (mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS;
+ }
+ dp[i + len2] = (mp_limb_t) carry;
+ }
+ /* Normalise. */
+ while (dlen > 0 && dp[dlen - 1] == 0)
+ dlen--;
+ dest->nlimbs = dlen;
+ dest->limbs = dp;
+ }
+ return dest->limbs;
+}
+
+/* Compute the quotient of a bignum a >= 0 and a bignum b > 0.
+ a is written as a = q * b + r with 0 <= r < b. q is the quotient, r
+ the remainder.
+ Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd,
+ q is incremented.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+divide (mpn_t a, mpn_t b, mpn_t *q)
+{
+ /* Algorithm:
+ First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]]
+ with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS).
+ If m<n, then q:=0 and r:=a.
+ If m>=n=1, perform a single-precision division:
+ r:=0, j:=m,
+ while j>0 do
+ {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j =
+ = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta}
+ j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j].
+ Normalise [q[m-1],...,q[0]], yields q.
+ If m>=n>1, perform a multiple-precision division:
+ We have a/b < beta^(m-n+1).
+ s:=intDsize-1-(highest bit in b[n-1]), 0<=s<intDsize.
+ Shift a and b left by s bits, copying them. r:=a.
+ r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2.
+ For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).}
+ Compute q* :
+ q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]).
+ In case of overflow (q* >= beta) set q* := beta-1.
+ Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2]
+ and c3 := b[n-2] * q*.
+ {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow
+ occurred. Furthermore 0 <= c3 < beta^2.
+ If there was overflow and
+ r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2,
+ the next test can be skipped.}
+ While c3 > c2, {Here 0 <= c2 < c3 < beta^2}
+ Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2].
+ If q* > 0:
+ Put r := r - b * q* * beta^j. In detail:
+ [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]].
+ hence: u:=0, for i:=0 to n-1 do
+ u := u + q* * b[i],
+ r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry),
+ u:=u div beta (+ 1, if carry in subtraction)
+ r[n+j]:=r[n+j]-u.
+ {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1
+ < q* + 1 <= beta,
+ the carry u does not overflow.}
+ If a negative carry occurs, put q* := q* - 1
+ and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]].
+ Set q[j] := q*.
+ Normalise [q[m-n],..,q[0]]; this yields the quotient q.
+ Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the
+ rest r.
+ The room for q[j] can be allocated at the memory location of r[n+j].
+ Finally, round-to-even:
+ Shift r left by 1 bit.
+ If r > b or if r = b and q[0] is odd, q := q+1.
+ */
+ const mp_limb_t *a_ptr = a.limbs;
+ size_t a_len = a.nlimbs;
+ const mp_limb_t *b_ptr = b.limbs;
+ size_t b_len = b.nlimbs;
+ mp_limb_t *roomptr;
+ mp_limb_t *tmp_roomptr = NULL;
+ mp_limb_t *q_ptr;
+ size_t q_len;
+ mp_limb_t *r_ptr;
+ size_t r_len;
+
+ /* Allocate room for a_len+2 digits.
+ (Need a_len+1 digits for the real division and 1 more digit for the
+ final rounding of q.) */
+ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
+ if (roomptr == NULL)
+ return NULL;
+
+ /* Normalise a. */
+ while (a_len > 0 && a_ptr[a_len - 1] == 0)
+ a_len--;
+
+ /* Normalise b. */
+ for (;;)
+ {
+ if (b_len == 0)
+ /* Division by zero. */
+ abort ();
+ if (b_ptr[b_len - 1] == 0)
+ b_len--;
+ else
+ break;
+ }
+
+ /* Here m = a_len >= 0 and n = b_len > 0. */
+
+ if (a_len < b_len)
+ {
+ /* m<n: trivial case. q=0, r := copy of a. */
+ r_ptr = roomptr;
+ r_len = a_len;
+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+ q_ptr = roomptr + a_len;
+ q_len = 0;
+ }
+ else if (b_len == 1)
+ {
+ /* n=1: single precision division.
+ beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */
+ r_ptr = roomptr;
+ q_ptr = roomptr + 1;
+ {
+ mp_limb_t den = b_ptr[0];
+ mp_limb_t remainder = 0;
+ const mp_limb_t *sourceptr = a_ptr + a_len;
+ mp_limb_t *destptr = q_ptr + a_len;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ mp_twolimb_t num =
+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
+ *--destptr = num / den;
+ remainder = num % den;
+ }
+ /* Normalise and store r. */
+ if (remainder > 0)
+ {
+ r_ptr[0] = remainder;
+ r_len = 1;
+ }
+ else
+ r_len = 0;
+ /* Normalise q. */
+ q_len = a_len;
+ if (q_ptr[q_len - 1] == 0)
+ q_len--;
+ }
+ }
+ else
+ {
+ /* n>1: multiple precision division.
+ beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==>
+ beta^(m-n-1) <= a/b < beta^(m-n+1). */
+ /* Determine s. */
+ size_t s;
+ {
+ mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
+ s = 31;
+ if (msd >= 0x10000)
+ {
+ msd = msd >> 16;
+ s -= 16;
+ }
+ if (msd >= 0x100)
+ {
+ msd = msd >> 8;
+ s -= 8;
+ }
+ if (msd >= 0x10)
+ {
+ msd = msd >> 4;
+ s -= 4;
+ }
+ if (msd >= 0x4)
+ {
+ msd = msd >> 2;
+ s -= 2;
+ }
+ if (msd >= 0x2)
+ {
+ msd = msd >> 1;
+ s -= 1;
+ }
+ }
+ /* 0 <= s < GMP_LIMB_BITS.
+ Copy b, shifting it left by s bits. */
+ if (s > 0)
+ {
+ tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t));
+ if (tmp_roomptr == NULL)
+ {
+ free (roomptr);
+ return NULL;
+ }
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = tmp_roomptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ /* accu must be zero, since that was how s was determined. */
+ if (accu != 0)
+ abort ();
+ }
+ b_ptr = tmp_roomptr;
+ }
+ /* Copy a, shifting it left by s bits, yields r.
+ Memory layout:
+ At the beginning: r = roomptr[0..a_len],
+ at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */
+ r_ptr = roomptr;
+ if (s == 0)
+ {
+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+ r_ptr[a_len] = 0;
+ }
+ else
+ {
+ const mp_limb_t *sourceptr = a_ptr;
+ mp_limb_t *destptr = r_ptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ *destptr++ = (mp_limb_t) accu;
+ }
+ q_ptr = roomptr + b_len;
+ q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */
+ {
+ size_t j = a_len - b_len; /* m-n */
+ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */
+ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */
+ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */
+ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd;
+ /* Division loop, traversed m-n+1 times.
+ j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */
+ for (;;)
+ {
+ mp_limb_t q_star;
+ mp_limb_t c1;
+ if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */
+ {
+ /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */
+ mp_twolimb_t num =
+ ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS)
+ | r_ptr[j + b_len - 1];
+ q_star = num / b_msd;
+ c1 = num % b_msd;
+ }
+ else
+ {
+ /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */
+ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */
+ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta
+ <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta
+ <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta)
+ {<= beta !}.
+ If yes, jump directly to the subtraction loop.
+ (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta
+ <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */
+ if (r_ptr[j + b_len] > b_msd
+ || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd)
+ /* r[j+n] >= b[n-1]+1 or
+ r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a
+ carry. */
+ goto subtract;
+ }
+ /* q_star = q*,
+ c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */
+ {
+ mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */
+ ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2];
+ mp_twolimb_t c3 = /* b[n-2] * q* */
+ (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star;
+ /* While c2 < c3, increase c2 and decrease c3.
+ Consider c3-c2. While it is > 0, decrease it by
+ b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2
+ this can happen only twice. */
+ if (c3 > c2)
+ {
+ q_star = q_star - 1; /* q* := q* - 1 */
+ if (c3 - c2 > b_msdd)
+ q_star = q_star - 1; /* q* := q* - 1 */
+ }
+ }
+ if (q_star > 0)
+ subtract:
+ {
+ /* Subtract r := r - b * q* * beta^j. */
+ mp_limb_t cr;
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = r_ptr + j;
+ mp_twolimb_t carry = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ /* Here 0 <= carry <= q*. */
+ carry =
+ carry
+ + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++
+ + (mp_limb_t) ~(*destptr);
+ /* Here 0 <= carry <= beta*q* + beta-1. */
+ *destptr++ = ~(mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS; /* <= q* */
+ }
+ cr = (mp_limb_t) carry;
+ }
+ /* Subtract cr from r_ptr[j + b_len], then forget about
+ r_ptr[j + b_len]. */
+ if (cr > r_ptr[j + b_len])
+ {
+ /* Subtraction gave a carry. */
+ q_star = q_star - 1; /* q* := q* - 1 */
+ /* Add b back. */
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = r_ptr + j;
+ mp_limb_t carry = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ mp_limb_t source1 = *sourceptr++;
+ mp_limb_t source2 = *destptr;
+ *destptr++ = source1 + source2 + carry;
+ carry =
+ (carry
+ ? source1 >= (mp_limb_t) ~source2
+ : source1 > (mp_limb_t) ~source2);
+ }
+ }
+ /* Forget about the carry and about r[j+n]. */
+ }
+ }
+ /* q* is determined. Store it as q[j]. */
+ q_ptr[j] = q_star;
+ if (j == 0)
+ break;
+ j--;
+ }
+ }
+ r_len = b_len;
+ /* Normalise q. */
+ if (q_ptr[q_len - 1] == 0)
+ q_len--;
+# if 0 /* Not needed here, since we need r only to compare it with b/2, and
+ b is shifted left by s bits. */
+ /* Shift r right by s bits. */
+ if (s > 0)
+ {
+ mp_limb_t ptr = r_ptr + r_len;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = r_len; count > 0; count--)
+ {
+ accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
+ accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
+ *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS);
+ }
+ }
+# endif
+ /* Normalise r. */
+ while (r_len > 0 && r_ptr[r_len - 1] == 0)
+ r_len--;
+ }
+ /* Compare r << 1 with b. */
+ if (r_len > b_len)
+ goto increment_q;
+ {
+ size_t i;
+ for (i = b_len;;)
+ {
+ mp_limb_t r_i =
+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+ | (i < r_len ? r_ptr[i] << 1 : 0);
+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+ if (r_i > b_i)
+ goto increment_q;
+ if (r_i < b_i)
+ goto keep_q;
+ if (i == 0)
+ break;
+ i--;
+ }
+ }
+ if (q_len > 0 && ((q_ptr[0] & 1) != 0))
+ /* q is odd. */
+ increment_q:
+ {
+ size_t i;
+ for (i = 0; i < q_len; i++)
+ if (++(q_ptr[i]) != 0)
+ goto keep_q;
+ q_ptr[q_len++] = 1;
+ }
+ keep_q:
+ if (tmp_roomptr != NULL)
+ free (tmp_roomptr);
+ q->limbs = q_ptr;
+ q->nlimbs = q_len;
+ return roomptr;
+}
+
+/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal
+ representation.
+ Destroys the contents of a.
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+convert_to_decimal (mpn_t a, size_t extra_zeroes)
+{
+ mp_limb_t *a_ptr = a.limbs;
+ size_t a_len = a.nlimbs;
+ /* 0.03345 is slightly larger than log(2)/(9*log(10)). */
+ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
+ char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
+ if (c_ptr != NULL)
+ {
+ char *d_ptr = c_ptr;
+ for (; extra_zeroes > 0; extra_zeroes--)
+ *d_ptr++ = '0';
+ while (a_len > 0)
+ {
+ /* Divide a by 10^9, in-place. */
+ mp_limb_t remainder = 0;
+ mp_limb_t *ptr = a_ptr + a_len;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ mp_twolimb_t num =
+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
+ *ptr = num / 1000000000;
+ remainder = num % 1000000000;
+ }
+ /* Store the remainder as 9 decimal digits. */
+ for (count = 9; count > 0; count--)
+ {
+ *d_ptr++ = '0' + (remainder % 10);
+ remainder = remainder / 10;
+ }
+ /* Normalize a. */
+ if (a_ptr[a_len - 1] == 0)
+ a_len--;
+ }
+ /* Remove leading zeroes. */
+ while (d_ptr > c_ptr && d_ptr[-1] == '0')
+ d_ptr--;
+ /* But keep at least one zero. */
+ if (d_ptr == c_ptr)
+ *d_ptr++ = '0';
+ /* Terminate the string. */
+ *d_ptr = '\0';
+ }
+ return c_ptr;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0:
+ write x as x = 2^e * m, where m is a bignum.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+decode_long_double (long double x, int *ep, mpn_t *mp)
+{
+ mpn_t m;
+ int exp;
+ long double y;
+ size_t i;
+
+ /* Allocate memory for result. */
+ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+ if (m.limbs == NULL)
+ return NULL;
+ /* Split into exponential part and mantissa. */
+ y = frexpl (x, &exp);
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
+ I'm not sure whether it's safe to cast a 'long double' value between
+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+ 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+ doesn't matter). */
+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0
+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+# else
+ {
+ mp_limb_t d;
+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS);
+ d = (int) y;
+ y -= d;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d;
+ }
+# endif
+# endif
+ for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
+ precision. */
+ if (!(y == 0.0L))
+ abort ();
+#endif
+ /* Normalise. */
+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+ m.nlimbs--;
+ *mp = m;
+ *ep = exp - LDBL_MANT_BIT;
+ return m.limbs;
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0:
+ write x as x = 2^e * m, where m is a bignum.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+decode_double (double x, int *ep, mpn_t *mp)
+{
+ mpn_t m;
+ int exp;
+ double y;
+ size_t i;
+
+ /* Allocate memory for result. */
+ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+ if (m.limbs == NULL)
+ return NULL;
+ /* Split into exponential part and mantissa. */
+ y = frexp (x, &exp);
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
+ I'm not sure whether it's safe to cast a 'double' value between
+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+ 'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+ doesn't matter). */
+# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0
+# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+# else
+ {
+ mp_limb_t d;
+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS);
+ d = (int) y;
+ y -= d;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d;
+ }
+# endif
+# endif
+ for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+ if (!(y == 0.0))
+ abort ();
+ /* Normalise. */
+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+ m.nlimbs--;
+ *mp = m;
+ *ep = exp - DBL_MANT_BIT;
+ return m.limbs;
+}
+
+# endif
+
+/* Assuming x = 2^e * m is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
+{
+ int s;
+ size_t extra_zeroes;
+ unsigned int abs_n;
+ unsigned int abs_s;
+ mp_limb_t *pow5_ptr;
+ size_t pow5_len;
+ unsigned int s_limbs;
+ unsigned int s_bits;
+ mpn_t pow5;
+ mpn_t z;
+ void *z_memory;
+ char *digits;
+
+ if (memory == NULL)
+ return NULL;
+ /* x = 2^e * m, hence
+ y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
+ = round (2^s * 5^n * m). */
+ s = e + n;
+ extra_zeroes = 0;
+ /* Factor out a common power of 10 if possible. */
+ if (s > 0 && n > 0)
+ {
+ extra_zeroes = (s < n ? s : n);
+ s -= extra_zeroes;
+ n -= extra_zeroes;
+ }
+ /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes.
+ Before converting to decimal, we need to compute
+ z = round (2^s * 5^n * m). */
+ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
+ sign. 2.322 is slightly larger than log(5)/log(2). */
+ abs_n = (n >= 0 ? n : -n);
+ abs_s = (s >= 0 ? s : -s);
+ pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
+ + abs_s / GMP_LIMB_BITS + 1)
+ * sizeof (mp_limb_t));
+ if (pow5_ptr == NULL)
+ {
+ free (memory);
+ return NULL;
+ }
+ /* Initialize with 1. */
+ pow5_ptr[0] = 1;
+ pow5_len = 1;
+ /* Multiply with 5^|n|. */
+ if (abs_n > 0)
+ {
+ static mp_limb_t const small_pow5[13 + 1] =
+ {
+ 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
+ 48828125, 244140625, 1220703125
+ };
+ unsigned int n13;
+ for (n13 = 0; n13 <= abs_n; n13 += 13)
+ {
+ mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
+ size_t j;
+ mp_twolimb_t carry = 0;
+ for (j = 0; j < pow5_len; j++)
+ {
+ mp_limb_t digit2 = pow5_ptr[j];
+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+ pow5_ptr[j] = (mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS;
+ }
+ if (carry > 0)
+ pow5_ptr[pow5_len++] = (mp_limb_t) carry;
+ }
+ }
+ s_limbs = abs_s / GMP_LIMB_BITS;
+ s_bits = abs_s % GMP_LIMB_BITS;
+ if (n >= 0 ? s >= 0 : s <= 0)
+ {
+ /* Multiply with 2^|s|. */
+ if (s_bits > 0)
+ {
+ mp_limb_t *ptr = pow5_ptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = pow5_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *ptr << s_bits;
+ *ptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ if (accu > 0)
+ {
+ *ptr = (mp_limb_t) accu;
+ pow5_len++;
+ }
+ }
+ if (s_limbs > 0)
+ {
+ size_t count;
+ for (count = pow5_len; count > 0;)
+ {
+ count--;
+ pow5_ptr[s_limbs + count] = pow5_ptr[count];
+ }
+ for (count = s_limbs; count > 0;)
+ {
+ count--;
+ pow5_ptr[count] = 0;
+ }
+ pow5_len += s_limbs;
+ }
+ pow5.limbs = pow5_ptr;
+ pow5.nlimbs = pow5_len;
+ if (n >= 0)
+ {
+ /* Multiply m with pow5. No division needed. */
+ z_memory = multiply (m, pow5, &z);
+ }
+ else
+ {
+ /* Divide m by pow5 and round. */
+ z_memory = divide (m, pow5, &z);
+ }
+ }
+ else
+ {
+ pow5.limbs = pow5_ptr;
+ pow5.nlimbs = pow5_len;
+ if (n >= 0)
+ {
+ /* n >= 0, s < 0.
+ Multiply m with pow5, then divide by 2^|s|. */
+ mpn_t numerator;
+ mpn_t denominator;
+ void *tmp_memory;
+ tmp_memory = multiply (m, pow5, &numerator);
+ if (tmp_memory == NULL)
+ {
+ free (pow5_ptr);
+ free (memory);
+ return NULL;
+ }
+ /* Construct 2^|s|. */
+ {
+ mp_limb_t *ptr = pow5_ptr + pow5_len;
+ size_t i;
+ for (i = 0; i < s_limbs; i++)
+ ptr[i] = 0;
+ ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
+ denominator.limbs = ptr;
+ denominator.nlimbs = s_limbs + 1;
+ }
+ z_memory = divide (numerator, denominator, &z);
+ free (tmp_memory);
+ }
+ else
+ {
+ /* n < 0, s > 0.
+ Multiply m with 2^s, then divide by pow5. */
+ mpn_t numerator;
+ mp_limb_t *num_ptr;
+ num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1)
+ * sizeof (mp_limb_t));
+ if (num_ptr == NULL)
+ {
+ free (pow5_ptr);
+ free (memory);
+ return NULL;
+ }
+ {
+ mp_limb_t *destptr = num_ptr;
+ {
+ size_t i;
+ for (i = 0; i < s_limbs; i++)
+ *destptr++ = 0;
+ }
+ if (s_bits > 0)
+ {
+ const mp_limb_t *sourceptr = m.limbs;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = m.nlimbs; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s_bits;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ if (accu > 0)
+ *destptr++ = (mp_limb_t) accu;
+ }
+ else
+ {
+ const mp_limb_t *sourceptr = m.limbs;
+ size_t count;
+ for (count = m.nlimbs; count > 0; count--)
+ *destptr++ = *sourceptr++;
+ }
+ numerator.limbs = num_ptr;
+ numerator.nlimbs = destptr - num_ptr;
+ }
+ z_memory = divide (numerator, pow5, &z);
+ free (num_ptr);
+ }
+ }
+ free (pow5_ptr);
+ free (memory);
+
+ /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */
+
+ if (z_memory == NULL)
+ return NULL;
+ digits = convert_to_decimal (z, extra_zeroes);
+ free (z_memory);
+ return digits;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_long_double (long double x, int n)
+{
+ int e IF_LINT(= 0);
+ mpn_t m;
+ void *memory = decode_long_double (x, &e, &m);
+ return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_double (double x, int n)
+{
+ int e IF_LINT(= 0);
+ mpn_t m;
+ void *memory = decode_double (x, &e, &m);
+ return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and > 0:
+ Return an approximation for n with 10^n <= x < 10^(n+1).
+ The approximation is usually the right n, but may be off by 1 sometimes. */
+static int
+floorlog10l (long double x)
+{
+ int exp;
+ long double y;
+ double z;
+ double l;
+
+ /* Split into exponential part and mantissa. */
+ y = frexpl (x, &exp);
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ if (y == 0.0L)
+ return INT_MIN;
+ if (y < 0.5L)
+ {
+ while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+ {
+ y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+ exp -= GMP_LIMB_BITS;
+ }
+ if (y < (1.0L / (1 << 16)))
+ {
+ y *= 1.0L * (1 << 16);
+ exp -= 16;
+ }
+ if (y < (1.0L / (1 << 8)))
+ {
+ y *= 1.0L * (1 << 8);
+ exp -= 8;
+ }
+ if (y < (1.0L / (1 << 4)))
+ {
+ y *= 1.0L * (1 << 4);
+ exp -= 4;
+ }
+ if (y < (1.0L / (1 << 2)))
+ {
+ y *= 1.0L * (1 << 2);
+ exp -= 2;
+ }
+ if (y < (1.0L / (1 << 1)))
+ {
+ y *= 1.0L * (1 << 1);
+ exp -= 1;
+ }
+ }
+ if (!(y >= 0.5L && y < 1.0L))
+ abort ();
+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
+ l = exp;
+ z = y;
+ if (z < 0.70710678118654752444)
+ {
+ z *= 1.4142135623730950488;
+ l -= 0.5;
+ }
+ if (z < 0.8408964152537145431)
+ {
+ z *= 1.1892071150027210667;
+ l -= 0.25;
+ }
+ if (z < 0.91700404320467123175)
+ {
+ z *= 1.0905077326652576592;
+ l -= 0.125;
+ }
+ if (z < 0.9576032806985736469)
+ {
+ z *= 1.0442737824274138403;
+ l -= 0.0625;
+ }
+ /* Now 0.95 <= z <= 1.01. */
+ z = 1 - z;
+ /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...)
+ Four terms are enough to get an approximation with error < 10^-7. */
+ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+ /* Finally multiply with log(2)/log(10), yields an approximation for
+ log10(x). */
+ l *= 0.30102999566398119523;
+ /* Round down to the next integer. */
+ return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and > 0:
+ Return an approximation for n with 10^n <= x < 10^(n+1).
+ The approximation is usually the right n, but may be off by 1 sometimes. */
+static int
+floorlog10 (double x)
+{
+ int exp;
+ double y;
+ double z;
+ double l;
+
+ /* Split into exponential part and mantissa. */
+ y = frexp (x, &exp);
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ if (y == 0.0)
+ return INT_MIN;
+ if (y < 0.5)
+ {
+ while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+ {
+ y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+ exp -= GMP_LIMB_BITS;
+ }
+ if (y < (1.0 / (1 << 16)))
+ {
+ y *= 1.0 * (1 << 16);
+ exp -= 16;
+ }
+ if (y < (1.0 / (1 << 8)))
+ {
+ y *= 1.0 * (1 << 8);
+ exp -= 8;
+ }
+ if (y < (1.0 / (1 << 4)))
+ {
+ y *= 1.0 * (1 << 4);
+ exp -= 4;
+ }
+ if (y < (1.0 / (1 << 2)))
+ {
+ y *= 1.0 * (1 << 2);
+ exp -= 2;
+ }
+ if (y < (1.0 / (1 << 1)))
+ {
+ y *= 1.0 * (1 << 1);
+ exp -= 1;
+ }
+ }
+ if (!(y >= 0.5 && y < 1.0))
+ abort ();
+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
+ l = exp;
+ z = y;
+ if (z < 0.70710678118654752444)
+ {
+ z *= 1.4142135623730950488;
+ l -= 0.5;
+ }
+ if (z < 0.8408964152537145431)
+ {
+ z *= 1.1892071150027210667;
+ l -= 0.25;
+ }
+ if (z < 0.91700404320467123175)
+ {
+ z *= 1.0905077326652576592;
+ l -= 0.125;
+ }
+ if (z < 0.9576032806985736469)
+ {
+ z *= 1.0442737824274138403;
+ l -= 0.0625;
+ }
+ /* Now 0.95 <= z <= 1.01. */
+ z = 1 - z;
+ /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...)
+ Four terms are enough to get an approximation with error < 10^-7. */
+ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+ /* Finally multiply with log(2)/log(10), yields an approximation for
+ log10(x). */
+ l *= 0.30102999566398119523;
+ /* Round down to the next integer. */
+ return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+/* Tests whether a string of digits consists of exactly PRECISION zeroes and
+ a single '1' digit. */
+static int
+is_borderline (const char *digits, size_t precision)
+{
+ for (; precision > 0; precision--, digits++)
+ if (*digits != '0')
+ return 0;
+ if (*digits != '1')
+ return 0;
+ digits++;
+ return *digits == '\0';
+}
+
+#endif
+
+DCHAR_T *
+VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+ const FCHAR_T *format, va_list args)
+{
+ DIRECTIVES d;
+ arguments a;
+
+ if (PRINTF_PARSE (format, &d, &a) < 0)
+ /* errno is already set. */
+ return NULL;
+
+#define CLEANUP() \
+ free (d.dir); \
+ if (a.arg) \
+ free (a.arg);
+
+ if (PRINTF_FETCHARGS (args, &a) < 0)
+ {
+ CLEANUP ();
+ errno = EINVAL;
+ return NULL;
+ }
+
+ {
+ size_t buf_neededlength;
+ TCHAR_T *buf;
+ TCHAR_T *buf_malloced;
+ const FCHAR_T *cp;
+ size_t i;
+ DIRECTIVE *dp;
+ /* Output string accumulator. */
+ DCHAR_T *result;
+ size_t allocated;
+ size_t length;
+
+ /* Allocate a small buffer that will hold a directive passed to
+ sprintf or snprintf. */
+ buf_neededlength =
+ xsum4 (7, d.max_width_length, d.max_precision_length, 6);
+#if HAVE_ALLOCA
+ if (buf_neededlength < 4000 / sizeof (TCHAR_T))
+ {
+ buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T));
+ buf_malloced = NULL;
+ }
+ else
+#endif
+ {
+ size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T));
+ if (size_overflow_p (buf_memsize))
+ goto out_of_memory_1;
+ buf = (TCHAR_T *) malloc (buf_memsize);
+ if (buf == NULL)
+ goto out_of_memory_1;
+ buf_malloced = buf;
+ }
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ /* Ensures that allocated >= needed. Aborts through a jump to
+ out_of_memory if needed is SIZE_MAX or otherwise too big. */
+#define ENSURE_ALLOCATION(needed) \
+ if ((needed) > allocated) \
+ { \
+ size_t memory_size; \
+ DCHAR_T *memory; \
+ \
+ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
+ if ((needed) > allocated) \
+ allocated = (needed); \
+ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
+ if (size_overflow_p (memory_size)) \
+ goto out_of_memory; \
+ if (result == resultbuf || result == NULL) \
+ memory = (DCHAR_T *) malloc (memory_size); \
+ else \
+ memory = (DCHAR_T *) realloc (result, memory_size); \
+ if (memory == NULL) \
+ goto out_of_memory; \
+ if (result == resultbuf && length > 0) \
+ DCHAR_CPY (memory, result, length); \
+ result = memory; \
+ }
+
+ for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
+ {
+ if (cp != dp->dir_start)
+ {
+ size_t n = dp->dir_start - cp;
+ size_t augmented_length = xsum (length, n);
+
+ ENSURE_ALLOCATION (augmented_length);
+ /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we
+ need that the format string contains only ASCII characters
+ if FCHAR_T and DCHAR_T are not the same type. */
+ if (sizeof (FCHAR_T) == sizeof (DCHAR_T))
+ {
+ DCHAR_CPY (result + length, (const DCHAR_T *) cp, n);
+ length = augmented_length;
+ }
+ else
+ {
+ do
+ result[length++] = (unsigned char) *cp++;
+ while (--n > 0);
+ }
+ }
+ if (i == d.count)
+ break;
+
+ /* Execute a single directive. */
+ if (dp->conversion == '%')
+ {
+ size_t augmented_length;
+
+ if (!(dp->arg_index == ARG_NONE))
+ abort ();
+ augmented_length = xsum (length, 1);
+ ENSURE_ALLOCATION (augmented_length);
+ result[length] = '%';
+ length = augmented_length;
+ }
+ else
+ {
+ if (!(dp->arg_index != ARG_NONE))
+ abort ();
+
+ if (dp->conversion == 'n')
+ {
+ switch (a.arg[dp->arg_index].type)
+ {
+ case TYPE_COUNT_SCHAR_POINTER:
+ *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
+ break;
+ case TYPE_COUNT_SHORT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_short_pointer = length;
+ break;
+ case TYPE_COUNT_INT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_int_pointer = length;
+ break;
+ case TYPE_COUNT_LONGINT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_COUNT_LONGLONGINT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
+ break;
+#endif
+ default:
+ abort ();
+ }
+ }
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ else if (dp->conversion == 'U')
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ switch (type)
+ {
+ case TYPE_U8_STRING:
+ {
+ const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string;
+ const uint8_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u8_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u8_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u8_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT8_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-8 to locale encoding. */
+ converted =
+ u8_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ converted, &converted_len);
+# else
+ /* Convert from UTF-8 to UTF-16/UTF-32. */
+ converted =
+ U8_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+# endif
+ if (converted == NULL)
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ case TYPE_U16_STRING:
+ {
+ const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string;
+ const uint16_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u16_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u16_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u16_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT16_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-16 to locale encoding. */
+ converted =
+ u16_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ converted, &converted_len);
+# else
+ /* Convert from UTF-16 to UTF-8/UTF-32. */
+ converted =
+ U16_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+# endif
+ if (converted == NULL)
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ case TYPE_U32_STRING:
+ {
+ const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string;
+ const uint32_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u32_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u32_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u32_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT32_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-32 to locale encoding. */
+ converted =
+ u32_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ converted, &converted_len);
+# else
+ /* Convert from UTF-32 to UTF-8/UTF-16. */
+ converted =
+ U32_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+# endif
+ if (converted == NULL)
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ default:
+ abort ();
+ }
+ }
+#endif
+#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T
+ else if (dp->conversion == 's'
+# if WIDE_CHAR_VERSION
+ && a.arg[dp->arg_index].type != TYPE_WIDE_STRING
+# else
+ && a.arg[dp->arg_index].type == TYPE_WIDE_STRING
+# endif
+ )
+ {
+ /* The normal handling of the 's' directive below requires
+ allocating a temporary buffer. The determination of its
+ length (tmp_length), in the case when a precision is
+ specified, below requires a conversion between a char[]
+ string and a wchar_t[] wide string. It could be done, but
+ we have no guarantee that the implementation of sprintf will
+ use the exactly same algorithm. Without this guarantee, it
+ is possible to have buffer overrun bugs. In order to avoid
+ such bugs, we implement the entire processing of the 's'
+ directive ourselves. */
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 6;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+# if WIDE_CHAR_VERSION
+ /* %s in vasnwprintf. See the specification of fwprintf. */
+ {
+ const char *arg = a.arg[dp->arg_index].a.a_string;
+ const char *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only as many bytes as needed to produce PRECISION
+ wide characters, from the left. */
+# if HAVE_MBRTOWC
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count;
+# if HAVE_MBRTOWC
+ count = mbrlen (arg_end, MB_CUR_MAX, &state);
+# else
+ count = mblen (arg_end, MB_CUR_MAX);
+# endif
+ if (count == 0)
+ /* Found the terminating NUL. */
+ break;
+ if (count < 0)
+ {
+ /* Invalid or incomplete multibyte character. */
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of wide
+ characters. */
+# if HAVE_MBRTOWC
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count;
+# if HAVE_MBRTOWC
+ count = mbrlen (arg_end, MB_CUR_MAX, &state);
+# else
+ count = mblen (arg_end, MB_CUR_MAX);
+# endif
+ if (count == 0)
+ /* Found the terminating NUL. */
+ break;
+ if (count < 0)
+ {
+ /* Invalid or incomplete multibyte character. */
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+ if (has_precision || has_width)
+ {
+ /* We know the number of wide characters in advance. */
+ size_t remaining;
+# if HAVE_MBRTOWC
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ ENSURE_ALLOCATION (xsum (length, characters));
+ for (remaining = characters; remaining > 0; remaining--)
+ {
+ wchar_t wc;
+ int count;
+# if HAVE_MBRTOWC
+ count = mbrtowc (&wc, arg, arg_end - arg, &state);
+# else
+ count = mbtowc (&wc, arg, arg_end - arg);
+# endif
+ if (count <= 0)
+ /* mbrtowc not consistent with mbrlen, or mbtowc
+ not consistent with mblen. */
+ abort ();
+ result[length++] = wc;
+ arg += count;
+ }
+ if (!(arg == arg_end))
+ abort ();
+ }
+ else
+ {
+# if HAVE_MBRTOWC
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ while (arg < arg_end)
+ {
+ wchar_t wc;
+ int count;
+# if HAVE_MBRTOWC
+ count = mbrtowc (&wc, arg, arg_end - arg, &state);
+# else
+ count = mbtowc (&wc, arg, arg_end - arg);
+# endif
+ if (count <= 0)
+ /* mbrtowc not consistent with mbrlen, or mbtowc
+ not consistent with mblen. */
+ abort ();
+ ENSURE_ALLOCATION (xsum (length, 1));
+ result[length++] = wc;
+ arg += count;
+ }
+ }
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+# else
+ /* %ls in vasnprintf. See the specification of fprintf. */
+ {
+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
+ const wchar_t *arg_end;
+ size_t characters;
+# if !DCHAR_IS_TCHAR
+ /* This code assumes that TCHAR_T is 'char'. */
+ typedef int TCHAR_T_verify[2 * (sizeof (TCHAR_T) == 1) - 1];
+ TCHAR_T *tmpsrc;
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
+# endif
+ size_t w;
+
+ if (has_precision)
+ {
+ /* Use only as many wide characters as needed to produce
+ at most PRECISION bytes, from the left. */
+# if HAVE_WCRTOMB
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ arg_end = arg;
+ characters = 0;
+ while (precision > 0)
+ {
+ char buf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count;
+
+ if (*arg_end == 0)
+ /* Found the terminating null wide character. */
+ break;
+# if HAVE_WCRTOMB
+ count = wcrtomb (buf, *arg_end, &state);
+# else
+ count = wctomb (buf, *arg_end);
+# endif
+ if (count < 0)
+ {
+ /* Cannot convert. */
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ if (precision < count)
+ break;
+ arg_end++;
+ characters += count;
+ precision -= count;
+ }
+ }
+# if DCHAR_IS_TCHAR
+ else if (has_width)
+# else
+ else
+# endif
+ {
+ /* Use the entire string, and count the number of
+ bytes. */
+# if HAVE_WCRTOMB
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ char buf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count;
+
+ if (*arg_end == 0)
+ /* Found the terminating null wide character. */
+ break;
+# if HAVE_WCRTOMB
+ count = wcrtomb (buf, *arg_end, &state);
+# else
+ count = wctomb (buf, *arg_end);
+# endif
+ if (count < 0)
+ {
+ /* Cannot convert. */
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end++;
+ characters += count;
+ }
+ }
+# if DCHAR_IS_TCHAR
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + local_wcslen (arg);
+ /* The number of bytes doesn't matter. */
+ characters = 0;
+ }
+# endif
+
+# if !DCHAR_IS_TCHAR
+ /* Convert the string into a piece of temporary memory. */
+ tmpsrc = (TCHAR_T *) malloc (characters * sizeof (TCHAR_T));
+ if (tmpsrc == NULL)
+ goto out_of_memory;
+ {
+ TCHAR_T *tmpptr = tmpsrc;
+ size_t remaining;
+# if HAVE_WCRTOMB
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ for (remaining = characters; remaining > 0; )
+ {
+ char buf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count;
+
+ if (*arg == 0)
+ abort ();
+# if HAVE_WCRTOMB
+ count = wcrtomb (buf, *arg, &state);
+# else
+ count = wctomb (buf, *arg);
+# endif
+ if (count <= 0)
+ /* Inconsistency. */
+ abort ();
+ memcpy (tmpptr, buf, count);
+ tmpptr += count;
+ arg++;
+ remaining -= count;
+ }
+ if (!(arg == arg_end))
+ abort ();
+ }
+
+ /* Convert from TCHAR_T[] to DCHAR_T[]. */
+ tmpdst =
+ DCHAR_CONV_FROM_ENCODING (locale_charset (),
+ iconveh_question_mark,
+ tmpsrc, characters,
+ NULL,
+ NULL, &tmpdst_len);
+ if (tmpdst == NULL)
+ {
+ int saved_errno = errno;
+ free (tmpsrc);
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ free (tmpsrc);
+# endif
+
+ if (has_width)
+ {
+# if ENABLE_UNISTDIO
+ /* Outside POSIX, it's preferrable to compare the width
+ against the number of _characters_ of the converted
+ value. */
+ w = DCHAR_MBSNLEN (result + length, characters);
+# else
+ /* The width is compared against the number of _bytes_
+ of the converted value, says POSIX. */
+ w = characters;
+# endif
+ }
+ else
+ /* w doesn't matter. */
+ w = 0;
+
+ if (has_width && width > w
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - w;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_TCHAR
+ if (has_precision || has_width)
+ {
+ /* We know the number of bytes in advance. */
+ size_t remaining;
+# if HAVE_WCRTOMB
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ ENSURE_ALLOCATION (xsum (length, characters));
+ for (remaining = characters; remaining > 0; )
+ {
+ char buf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count;
+
+ if (*arg == 0)
+ abort ();
+# if HAVE_WCRTOMB
+ count = wcrtomb (buf, *arg, &state);
+# else
+ count = wctomb (buf, *arg);
+# endif
+ if (count <= 0)
+ /* Inconsistency. */
+ abort ();
+ memcpy (result + length, buf, count);
+ length += count;
+ arg++;
+ remaining -= count;
+ }
+ if (!(arg == arg_end))
+ abort ();
+ }
+ else
+ {
+# if HAVE_WCRTOMB
+ mbstate_t state;
+ memset (&state, '\0', sizeof (mbstate_t));
+# endif
+ while (arg < arg_end)
+ {
+ char buf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count;
+
+ if (*arg == 0)
+ abort ();
+# if HAVE_WCRTOMB
+ count = wcrtomb (buf, *arg, &state);
+# else
+ count = wctomb (buf, *arg);
+# endif
+ if (count <= 0)
+ /* Inconsistency. */
+ abort ();
+ ENSURE_ALLOCATION (xsum (length, count));
+ memcpy (result + length, buf, count);
+ length += count;
+ arg++;
+ }
+ }
+# else
+ ENSURE_ALLOCATION (xsum (length, tmpdst_len));
+ DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+ free (tmpdst);
+ length += tmpdst_len;
+# endif
+
+ if (has_width && width > w
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - w;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ }
+# endif
+#endif
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+ else if ((dp->conversion == 'a' || dp->conversion == 'A')
+# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE))
+ && (0
+# if NEED_PRINTF_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
+# endif
+# if NEED_PRINTF_LONG_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+# endif
+ )
+# endif
+ )
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+ size_t tmp_length;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
+ DCHAR_T *pad_ptr;
+ DCHAR_T *p;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ /* Allocate a temporary buffer of sufficient size. */
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) ((LDBL_DIG + 1)
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) ((DBL_DIG + 1)
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+
+ if (tmp_length < width)
+ tmp_length = width;
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (DCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+
+ pad_ptr = NULL;
+ p = tmp;
+ if (type == TYPE_LONGDOUBLE)
+ {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+ if (isnanl (arg))
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ if (signbit (arg)) /* arg < 0.0L or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0L && arg + arg == arg)
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+ int exponent;
+ long double mantissa;
+
+ if (arg > 0.0L)
+ mantissa = printf_frexpl (arg, &exponent);
+ else
+ {
+ exponent = 0;
+ mantissa = 0.0L;
+ }
+
+ if (has_precision
+ && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1)
+ {
+ /* Round the mantissa. */
+ long double tail = mantissa;
+ size_t q;
+
+ for (q = precision; ; q--)
+ {
+ int digit = (int) tail;
+ tail -= digit;
+ if (q == 0)
+ {
+ if (digit & 1 ? tail >= 0.5L : tail > 0.5L)
+ tail = 1 - tail;
+ else
+ tail = - tail;
+ break;
+ }
+ tail *= 16.0L;
+ }
+ if (tail != 0.0L)
+ for (q = precision; q > 0; q--)
+ tail *= 0.0625L;
+ mantissa += tail;
+ }
+
+ *p++ = '0';
+ *p++ = dp->conversion - 'A' + 'X';
+ pad_ptr = p;
+ {
+ int digit;
+
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = '0' + digit;
+ if ((flags & FLAG_ALT)
+ || mantissa > 0.0L || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ /* This loop terminates because we assume
+ that FLT_RADIX is a power of 2. */
+ while (mantissa > 0.0L)
+ {
+ mantissa *= 16.0L;
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = digit
+ + (digit < 10
+ ? '0'
+ : dp->conversion - 10);
+ if (precision > 0)
+ precision--;
+ }
+ while (precision > 0)
+ {
+ *p++ = '0';
+ precision--;
+ }
+ }
+ }
+ *p++ = dp->conversion - 'A' + 'P';
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+
+ END_LONG_DOUBLE_ROUNDING ();
+ }
+# else
+ abort ();
+# endif
+ }
+ else
+ {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE
+ double arg = a.arg[dp->arg_index].a.a_double;
+
+ if (isnand (arg))
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+
+ if (signbit (arg)) /* arg < 0.0 or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0 && arg + arg == arg)
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+ int exponent;
+ double mantissa;
+
+ if (arg > 0.0)
+ mantissa = printf_frexp (arg, &exponent);
+ else
+ {
+ exponent = 0;
+ mantissa = 0.0;
+ }
+
+ if (has_precision
+ && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1)
+ {
+ /* Round the mantissa. */
+ double tail = mantissa;
+ size_t q;
+
+ for (q = precision; ; q--)
+ {
+ int digit = (int) tail;
+ tail -= digit;
+ if (q == 0)
+ {
+ if (digit & 1 ? tail >= 0.5 : tail > 0.5)
+ tail = 1 - tail;
+ else
+ tail = - tail;
+ break;
+ }
+ tail *= 16.0;
+ }
+ if (tail != 0.0)
+ for (q = precision; q > 0; q--)
+ tail *= 0.0625;
+ mantissa += tail;
+ }
+
+ *p++ = '0';
+ *p++ = dp->conversion - 'A' + 'X';
+ pad_ptr = p;
+ {
+ int digit;
+
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = '0' + digit;
+ if ((flags & FLAG_ALT)
+ || mantissa > 0.0 || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ /* This loop terminates because we assume
+ that FLT_RADIX is a power of 2. */
+ while (mantissa > 0.0)
+ {
+ mantissa *= 16.0;
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = digit
+ + (digit < 10
+ ? '0'
+ : dp->conversion - 10);
+ if (precision > 0)
+ precision--;
+ }
+ while (precision > 0)
+ {
+ *p++ = '0';
+ precision--;
+ }
+ }
+ }
+ *p++ = dp->conversion - 'A' + 'P';
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+ }
+# else
+ abort ();
+# endif
+ }
+ /* The generated string now extends from tmp to p, with the
+ zero padding insertion point being at pad_ptr. */
+ if (has_width && p - tmp < width)
+ {
+ size_t pad = width - (p - tmp);
+ DCHAR_T *end = p + pad;
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > tmp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+
+ p = end;
+ }
+
+ {
+ size_t count = p - tmp;
+
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+
+ /* Make room for the result. */
+ if (count >= allocated - length)
+ {
+ size_t n = xsum (length, count);
+
+ ENSURE_ALLOCATION (n);
+ }
+
+ /* Append the result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+ if (tmp != tmpbuf)
+ free (tmp);
+ length += count;
+ }
+ }
+#endif
+#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+ else if ((dp->conversion == 'f' || dp->conversion == 'F'
+ || dp->conversion == 'e' || dp->conversion == 'E'
+ || dp->conversion == 'g' || dp->conversion == 'G'
+ || dp->conversion == 'a' || dp->conversion == 'A')
+ && (0
+# if NEED_PRINTF_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
+# elif NEED_PRINTF_INFINITE_DOUBLE
+ || (a.arg[dp->arg_index].type == TYPE_DOUBLE
+ /* The systems (mingw) which produce wrong output
+ for Inf, -Inf, and NaN also do so for -0.0.
+ Therefore we treat this case here as well. */
+ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double))
+# endif
+# if NEED_PRINTF_LONG_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+# elif NEED_PRINTF_INFINITE_LONG_DOUBLE
+ || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+ /* Some systems produce wrong output for Inf,
+ -Inf, and NaN. Some systems in this category
+ (IRIX 5.3) also do so for -0.0. Therefore we
+ treat this case here as well. */
+ && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble))
+# endif
+ ))
+ {
+# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE)
+ arg_type type = a.arg[dp->arg_index].type;
+# endif
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+ size_t tmp_length;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
+ DCHAR_T *pad_ptr;
+ DCHAR_T *p;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ /* POSIX specifies the default precision to be 6 for %f, %F,
+ %e, %E, but not for %g, %G. Implementations appear to use
+ the same default precision also for %g, %G. But for %a, %A,
+ the default precision is 0. */
+ if (!has_precision)
+ if (!(dp->conversion == 'a' || dp->conversion == 'A'))
+ precision = 6;
+
+ /* Allocate a temporary buffer of sufficient size. */
+# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
+# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0);
+# elif NEED_PRINTF_LONG_DOUBLE
+ tmp_length = LDBL_DIG + 1;
+# elif NEED_PRINTF_DOUBLE
+ tmp_length = DBL_DIG + 1;
+# else
+ tmp_length = 0;
+# endif
+ if (tmp_length < precision)
+ tmp_length = precision;
+# if NEED_PRINTF_LONG_DOUBLE
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ if (type == TYPE_LONGDOUBLE)
+# endif
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+ if (!(isnanl (arg) || arg + arg == arg))
+ {
+ /* arg is finite and nonzero. */
+ int exponent = floorlog10l (arg < 0 ? -arg : arg);
+ if (exponent >= 0 && tmp_length < exponent + precision)
+ tmp_length = exponent + precision;
+ }
+ }
+# endif
+# if NEED_PRINTF_DOUBLE
+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+ if (type == TYPE_DOUBLE)
+# endif
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+ if (!(isnand (arg) || arg + arg == arg))
+ {
+ /* arg is finite and nonzero. */
+ int exponent = floorlog10 (arg < 0 ? -arg : arg);
+ if (exponent >= 0 && tmp_length < exponent + precision)
+ tmp_length = exponent + precision;
+ }
+ }
+# endif
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+
+ if (tmp_length < width)
+ tmp_length = width;
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (DCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+
+ pad_ptr = NULL;
+ p = tmp;
+
+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ if (type == TYPE_LONGDOUBLE)
+# endif
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+ if (isnanl (arg))
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ if (signbit (arg)) /* arg < 0.0L or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0L && arg + arg == arg)
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+# if NEED_PRINTF_LONG_DOUBLE
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ char *digits;
+ size_t ndigits;
+
+ digits =
+ scale10_round_decimal_long_double (arg, precision);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits > precision)
+ do
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ while (ndigits > precision);
+ else
+ *p++ = '0';
+ /* Here ndigits <= precision. */
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > ndigits; precision--)
+ *p++ = '0';
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ int exponent;
+
+ if (arg == 0.0L)
+ {
+ exponent = 0;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else
+ {
+ /* arg > 0.0L. */
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+
+ exponent = floorlog10l (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_long_double (arg,
+ (int)precision - exponent);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits == precision + 1)
+ break;
+ if (ndigits < precision
+ || ndigits > precision + 2)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits == precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision+1. */
+ if (is_borderline (digits, precision))
+ {
+ /* Maybe the exponent guess was too high
+ and a smaller exponent can be reached
+ by turning a 10...0 into 9...9x. */
+ char *digits2 =
+ scale10_round_decimal_long_double (arg,
+ (int)precision - exponent + 1);
+ if (digits2 == NULL)
+ {
+ free (digits);
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ if (strlen (digits2) == precision + 1)
+ {
+ free (digits);
+ digits = digits2;
+ exponent -= 1;
+ }
+ else
+ free (digits2);
+ }
+ /* Here ndigits = precision+1. */
+
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+
+ *p++ = dp->conversion; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', '.', '2', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+.2d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+.2d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ if (precision == 0)
+ precision = 1;
+ /* precision >= 1. */
+
+ if (arg == 0.0L)
+ /* The exponent is 0, >= -4, < precision.
+ Use fixed-point notation. */
+ {
+ size_t ndigits = precision;
+ /* Number of trailing zeroes that have to be
+ dropped. */
+ size_t nzeroes =
+ (flags & FLAG_ALT ? 0 : precision - 1);
+
+ --ndigits;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = '0';
+ }
+ }
+ }
+ else
+ {
+ /* arg > 0.0L. */
+ int exponent;
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+ size_t nzeroes;
+
+ exponent = floorlog10l (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_long_double (arg,
+ (int)(precision - 1) - exponent);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits == precision)
+ break;
+ if (ndigits < precision - 1
+ || ndigits > precision + 1)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits < precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision. */
+ if (is_borderline (digits, precision - 1))
+ {
+ /* Maybe the exponent guess was too high
+ and a smaller exponent can be reached
+ by turning a 10...0 into 9...9x. */
+ char *digits2 =
+ scale10_round_decimal_long_double (arg,
+ (int)(precision - 1) - exponent + 1);
+ if (digits2 == NULL)
+ {
+ free (digits);
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ if (strlen (digits2) == precision)
+ {
+ free (digits);
+ digits = digits2;
+ exponent -= 1;
+ }
+ else
+ free (digits2);
+ }
+ /* Here ndigits = precision. */
+
+ /* Determine the number of trailing zeroes
+ that have to be dropped. */
+ nzeroes = 0;
+ if ((flags & FLAG_ALT) == 0)
+ while (nzeroes < ndigits
+ && digits[nzeroes] == '0')
+ nzeroes++;
+
+ /* The exponent is now determined. */
+ if (exponent >= -4
+ && exponent < (long)precision)
+ {
+ /* Fixed-point notation:
+ max(exponent,0)+1 digits, then the
+ decimal point, then the remaining
+ digits without trailing zeroes. */
+ if (exponent >= 0)
+ {
+ size_t count = exponent + 1;
+ /* Note: count <= precision = ndigits. */
+ for (; count > 0; count--)
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ size_t count = -exponent - 1;
+ *p++ = '0';
+ *p++ = decimal_point_char ();
+ for (; count > 0; count--)
+ *p++ = '0';
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ /* Exponential notation. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', '.', '2', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+.2d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+.2d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+
+ free (digits);
+ }
+ }
+ else
+ abort ();
+# else
+ /* arg is finite. */
+ if (!(arg == 0.0L))
+ abort ();
+
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ *p++ = dp->conversion; /* 'e' or 'E' */
+ *p++ = '+';
+ *p++ = '0';
+ *p++ = '0';
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ *p++ = '0';
+ if (flags & FLAG_ALT)
+ {
+ size_t ndigits =
+ (precision > 0 ? precision - 1 : 0);
+ *p++ = decimal_point_char ();
+ for (; ndigits > 0; --ndigits)
+ *p++ = '0';
+ }
+ }
+ else if (dp->conversion == 'a' || dp->conversion == 'A')
+ {
+ *p++ = '0';
+ *p++ = dp->conversion - 'A' + 'X';
+ pad_ptr = p;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ *p++ = dp->conversion - 'A' + 'P';
+ *p++ = '+';
+ *p++ = '0';
+ }
+ else
+ abort ();
+# endif
+ }
+
+ END_LONG_DOUBLE_ROUNDING ();
+ }
+ }
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ else
+# endif
+# endif
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+
+ if (isnand (arg))
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+
+ if (signbit (arg)) /* arg < 0.0 or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0 && arg + arg == arg)
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+# if NEED_PRINTF_DOUBLE
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ char *digits;
+ size_t ndigits;
+
+ digits =
+ scale10_round_decimal_double (arg, precision);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits > precision)
+ do
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ while (ndigits > precision);
+ else
+ *p++ = '0';
+ /* Here ndigits <= precision. */
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > ndigits; precision--)
+ *p++ = '0';
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ int exponent;
+
+ if (arg == 0.0)
+ {
+ exponent = 0;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else
+ {
+ /* arg > 0.0. */
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+
+ exponent = floorlog10 (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_double (arg,
+ (int)precision - exponent);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits == precision + 1)
+ break;
+ if (ndigits < precision
+ || ndigits > precision + 2)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits == precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision+1. */
+ if (is_borderline (digits, precision))
+ {
+ /* Maybe the exponent guess was too high
+ and a smaller exponent can be reached
+ by turning a 10...0 into 9...9x. */
+ char *digits2 =
+ scale10_round_decimal_double (arg,
+ (int)precision - exponent + 1);
+ if (digits2 == NULL)
+ {
+ free (digits);
+ goto out_of_memory;
+ }
+ if (strlen (digits2) == precision + 1)
+ {
+ free (digits);
+ digits = digits2;
+ exponent -= 1;
+ }
+ else
+ free (digits2);
+ }
+ /* Here ndigits = precision+1. */
+
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+
+ *p++ = dp->conversion; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ { '%', '+', '.', '3', 'd', '\0' };
+# else
+ { '%', '+', '.', '2', 'd', '\0' };
+# endif
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ {
+ static const char decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ "%+.3d";
+# else
+ "%+.2d";
+# endif
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, decimal_format, exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, decimal_format, exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+ }
+# endif
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ if (precision == 0)
+ precision = 1;
+ /* precision >= 1. */
+
+ if (arg == 0.0)
+ /* The exponent is 0, >= -4, < precision.
+ Use fixed-point notation. */
+ {
+ size_t ndigits = precision;
+ /* Number of trailing zeroes that have to be
+ dropped. */
+ size_t nzeroes =
+ (flags & FLAG_ALT ? 0 : precision - 1);
+
+ --ndigits;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = '0';
+ }
+ }
+ }
+ else
+ {
+ /* arg > 0.0. */
+ int exponent;
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+ size_t nzeroes;
+
+ exponent = floorlog10 (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_double (arg,
+ (int)(precision - 1) - exponent);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits == precision)
+ break;
+ if (ndigits < precision - 1
+ || ndigits > precision + 1)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits < precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision. */
+ if (is_borderline (digits, precision - 1))
+ {
+ /* Maybe the exponent guess was too high
+ and a smaller exponent can be reached
+ by turning a 10...0 into 9...9x. */
+ char *digits2 =
+ scale10_round_decimal_double (arg,
+ (int)(precision - 1) - exponent + 1);
+ if (digits2 == NULL)
+ {
+ free (digits);
+ goto out_of_memory;
+ }
+ if (strlen (digits2) == precision)
+ {
+ free (digits);
+ digits = digits2;
+ exponent -= 1;
+ }
+ else
+ free (digits2);
+ }
+ /* Here ndigits = precision. */
+
+ /* Determine the number of trailing zeroes
+ that have to be dropped. */
+ nzeroes = 0;
+ if ((flags & FLAG_ALT) == 0)
+ while (nzeroes < ndigits
+ && digits[nzeroes] == '0')
+ nzeroes++;
+
+ /* The exponent is now determined. */
+ if (exponent >= -4
+ && exponent < (long)precision)
+ {
+ /* Fixed-point notation:
+ max(exponent,0)+1 digits, then the
+ decimal point, then the remaining
+ digits without trailing zeroes. */
+ if (exponent >= 0)
+ {
+ size_t count = exponent + 1;
+ /* Note: count <= precision = ndigits. */
+ for (; count > 0; count--)
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ size_t count = -exponent - 1;
+ *p++ = '0';
+ *p++ = decimal_point_char ();
+ for (; count > 0; count--)
+ *p++ = '0';
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ /* Exponential notation. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ { '%', '+', '.', '3', 'd', '\0' };
+# else
+ { '%', '+', '.', '2', 'd', '\0' };
+# endif
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ {
+ static const char decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ "%+.3d";
+# else
+ "%+.2d";
+# endif
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, decimal_format, exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, decimal_format, exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+ }
+# endif
+ }
+
+ free (digits);
+ }
+ }
+ else
+ abort ();
+# else
+ /* arg is finite. */
+ if (!(arg == 0.0))
+ abort ();
+
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ *p++ = dp->conversion; /* 'e' or 'E' */
+ *p++ = '+';
+ /* Produce the same number of exponent digits as
+ the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ *p++ = '0';
+# endif
+ *p++ = '0';
+ *p++ = '0';
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ *p++ = '0';
+ if (flags & FLAG_ALT)
+ {
+ size_t ndigits =
+ (precision > 0 ? precision - 1 : 0);
+ *p++ = decimal_point_char ();
+ for (; ndigits > 0; --ndigits)
+ *p++ = '0';
+ }
+ }
+ else
+ abort ();
+# endif
+ }
+ }
+ }
+# endif
+
+ /* The generated string now extends from tmp to p, with the
+ zero padding insertion point being at pad_ptr. */
+ if (has_width && p - tmp < width)
+ {
+ size_t pad = width - (p - tmp);
+ DCHAR_T *end = p + pad;
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > tmp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+
+ p = end;
+ }
+
+ {
+ size_t count = p - tmp;
+
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+
+ /* Make room for the result. */
+ if (count >= allocated - length)
+ {
+ size_t n = xsum (length, count);
+
+ ENSURE_ALLOCATION (n);
+ }
+
+ /* Append the result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+ if (tmp != tmpbuf)
+ free (tmp);
+ length += count;
+ }
+ }
+#endif
+ else
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ int has_width;
+ size_t width;
+#endif
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+ int has_precision;
+ size_t precision;
+#endif
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ int prec_ourselves;
+#else
+# define prec_ourselves 0
+#endif
+#if NEED_PRINTF_FLAG_LEFTADJUST
+# define pad_ourselves 1
+#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ int pad_ourselves;
+#else
+# define pad_ourselves 0
+#endif
+ TCHAR_T *fbp;
+ unsigned int prefix_count;
+ int prefixes[2] IF_LINT (= { 0 });
+#if !USE_SNPRINTF
+ size_t tmp_length;
+ TCHAR_T tmpbuf[700];
+ TCHAR_T *tmp;
+#endif
+
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+#endif
+
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+ has_precision = 0;
+ precision = 6;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+#endif
+
+ /* Decide whether to handle the precision ourselves. */
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ switch (dp->conversion)
+ {
+ case 'd': case 'i': case 'u':
+ case 'o':
+ case 'x': case 'X': case 'p':
+ prec_ourselves = has_precision && (precision > 0);
+ break;
+ default:
+ prec_ourselves = 0;
+ break;
+ }
+#endif
+
+ /* Decide whether to perform the padding ourselves. */
+#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION)
+ switch (dp->conversion)
+ {
+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
+ /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need
+ to perform the padding after this conversion. Functions
+ with unistdio extensions perform the padding based on
+ character count rather than element count. */
+ case 'c': case 's':
+# endif
+# if NEED_PRINTF_FLAG_ZERO
+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+ case 'a': case 'A':
+# endif
+ pad_ourselves = 1;
+ break;
+ default:
+ pad_ourselves = prec_ourselves;
+ break;
+ }
+#endif
+
+#if !USE_SNPRINTF
+ /* Allocate a temporary buffer of sufficient size for calling
+ sprintf. */
+ {
+ switch (dp->conversion)
+ {
+
+ case 'd': case 'i': case 'u':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Multiply by 2, as an estimate for FLAG_GROUP. */
+ tmp_length = xsum (tmp_length, tmp_length);
+ /* Add 1, to account for a leading sign. */
+ tmp_length = xsum (tmp_length, 1);
+ break;
+
+ case 'o':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Add 1, to account for a leading sign. */
+ tmp_length = xsum (tmp_length, 1);
+ break;
+
+ case 'x': case 'X':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Add 2, to account for a leading sign or alternate form. */
+ tmp_length = xsum (tmp_length, 2);
+ break;
+
+ case 'f': case 'F':
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) (LDBL_MAX_EXP
+ * 0.30103 /* binary -> decimal */
+ * 2 /* estimate for FLAG_GROUP */
+ )
+ + 1 /* turn floor into ceil */
+ + 10; /* sign, decimal point etc. */
+ else
+ tmp_length =
+ (unsigned int) (DBL_MAX_EXP
+ * 0.30103 /* binary -> decimal */
+ * 2 /* estimate for FLAG_GROUP */
+ )
+ + 1 /* turn floor into ceil */
+ + 10; /* sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, precision);
+ break;
+
+ case 'e': case 'E': case 'g': case 'G':
+ tmp_length =
+ 12; /* sign, decimal point, exponent etc. */
+ tmp_length = xsum (tmp_length, precision);
+ break;
+
+ case 'a': case 'A':
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) (LDBL_DIG
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (DBL_DIG
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+ break;
+
+ case 'c':
+# if HAVE_WINT_T && !WIDE_CHAR_VERSION
+ if (type == TYPE_WIDE_CHAR)
+ tmp_length = MB_CUR_MAX;
+ else
+# endif
+ tmp_length = 1;
+ break;
+
+ case 's':
+# if HAVE_WCHAR_T
+ if (type == TYPE_WIDE_STRING)
+ {
+# if WIDE_CHAR_VERSION
+ /* ISO C says about %ls in fwprintf:
+ "If the precision is not specified or is greater
+ than the size of the array, the array shall
+ contain a null wide character."
+ So if there is a precision, we must not use
+ wcslen. */
+ const wchar_t *arg =
+ a.arg[dp->arg_index].a.a_wide_string;
+
+ if (has_precision)
+ tmp_length = local_wcsnlen (arg, precision);
+ else
+ tmp_length = local_wcslen (arg);
+# else
+ /* ISO C says about %ls in fprintf:
+ "If a precision is specified, no more than that
+ many bytes are written (including shift
+ sequences, if any), and the array shall contain
+ a null wide character if, to equal the
+ multibyte character sequence length given by
+ the precision, the function would need to
+ access a wide character one past the end of the
+ array."
+ So if there is a precision, we must not use
+ wcslen. */
+ /* This case has already been handled above. */
+ abort ();
+# endif
+ }
+ else
+# endif
+ {
+# if WIDE_CHAR_VERSION
+ /* ISO C says about %s in fwprintf:
+ "If the precision is not specified or is greater
+ than the size of the converted array, the
+ converted array shall contain a null wide
+ character."
+ So if there is a precision, we must not use
+ strlen. */
+ /* This case has already been handled above. */
+ abort ();
+# else
+ /* ISO C says about %s in fprintf:
+ "If the precision is not specified or greater
+ than the size of the array, the array shall
+ contain a null character."
+ So if there is a precision, we must not use
+ strlen. */
+ const char *arg = a.arg[dp->arg_index].a.a_string;
+
+ if (has_precision)
+ tmp_length = local_strnlen (arg, precision);
+ else
+ tmp_length = strlen (arg);
+# endif
+ }
+ break;
+
+ case 'p':
+ tmp_length =
+ (unsigned int) (sizeof (void *) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1 /* turn floor into ceil */
+ + 2; /* account for leading 0x */
+ break;
+
+ default:
+ abort ();
+ }
+
+ if (!pad_ourselves)
+ {
+# if ENABLE_UNISTDIO
+ /* Padding considers the number of characters, therefore
+ the number of elements after padding may be
+ > max (tmp_length, width)
+ but is certainly
+ <= tmp_length + width. */
+ tmp_length = xsum (tmp_length, width);
+# else
+ /* Padding considers the number of elements,
+ says POSIX. */
+ if (tmp_length < width)
+ tmp_length = width;
+# endif
+ }
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ }
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (TCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+#endif
+
+ /* Construct the format string for calling snprintf or
+ sprintf. */
+ fbp = buf;
+ *fbp++ = '%';
+#if NEED_PRINTF_FLAG_GROUPING
+ /* The underlying implementation doesn't support the ' flag.
+ Produce no grouping characters in this case; this is
+ acceptable because the grouping is locale dependent. */
+#else
+ if (flags & FLAG_GROUP)
+ *fbp++ = '\'';
+#endif
+ if (flags & FLAG_LEFT)
+ *fbp++ = '-';
+ if (flags & FLAG_SHOWSIGN)
+ *fbp++ = '+';
+ if (flags & FLAG_SPACE)
+ *fbp++ = ' ';
+ if (flags & FLAG_ALT)
+ *fbp++ = '#';
+ if (!pad_ourselves)
+ {
+ if (flags & FLAG_ZERO)
+ *fbp++ = '0';
+ if (dp->width_start != dp->width_end)
+ {
+ size_t n = dp->width_end - dp->width_start;
+ /* The width specification is known to consist only
+ of standard ASCII characters. */
+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+ {
+ memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T));
+ fbp += n;
+ }
+ else
+ {
+ const FCHAR_T *mp = dp->width_start;
+ do
+ *fbp++ = (unsigned char) *mp++;
+ while (--n > 0);
+ }
+ }
+ }
+ if (!prec_ourselves)
+ {
+ if (dp->precision_start != dp->precision_end)
+ {
+ size_t n = dp->precision_end - dp->precision_start;
+ /* The precision specification is known to consist only
+ of standard ASCII characters. */
+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+ {
+ memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T));
+ fbp += n;
+ }
+ else
+ {
+ const FCHAR_T *mp = dp->precision_start;
+ do
+ *fbp++ = (unsigned char) *mp++;
+ while (--n > 0);
+ }
+ }
+ }
+
+ switch (type)
+ {
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ case TYPE_ULONGLONGINT:
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ *fbp++ = 'I';
+ *fbp++ = '6';
+ *fbp++ = '4';
+ break;
+# else
+ *fbp++ = 'l';
+ /*FALLTHROUGH*/
+# endif
+#endif
+ case TYPE_LONGINT:
+ case TYPE_ULONGINT:
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+#endif
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+#endif
+ *fbp++ = 'l';
+ break;
+ case TYPE_LONGDOUBLE:
+ *fbp++ = 'L';
+ break;
+ default:
+ break;
+ }
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ *fbp = 'f';
+ else
+#endif
+ *fbp = dp->conversion;
+#if USE_SNPRINTF
+# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+ fbp[1] = '%';
+ fbp[2] = 'n';
+ fbp[3] = '\0';
+# else
+ /* On glibc2 systems from glibc >= 2.3 - probably also older
+ ones - we know that snprintf's returns value conforms to
+ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
+ Therefore we can avoid using %n in this situation.
+ On glibc2 systems from 2004-10-18 or newer, the use of %n
+ in format strings in writable memory may crash the program
+ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
+ in this situation. */
+ /* On native Win32 systems (such as mingw), we can avoid using
+ %n because:
+ - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
+ snprintf does not write more than the specified number
+ of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes
+ '4', '5', '6' into buf, not '4', '5', '\0'.)
+ - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
+ allows us to recognize the case of an insufficient
+ buffer size: it returns -1 in this case.
+ On native Win32 systems (such as mingw) where the OS is
+ Windows Vista, the use of %n in format strings by default
+ crashes the program. See
+ <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
+ <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx>
+ So we should avoid %n in this situation. */
+ fbp[1] = '\0';
+# endif
+#else
+ fbp[1] = '\0';
+#endif
+
+ /* Construct the arguments for calling snprintf or sprintf. */
+ prefix_count = 0;
+ if (!pad_ourselves && dp->width_arg_index != ARG_NONE)
+ {
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
+ }
+ if (!prec_ourselves && dp->precision_arg_index != ARG_NONE)
+ {
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
+ }
+
+#if USE_SNPRINTF
+ /* The SNPRINTF result is appended after result[0..length].
+ The latter is an array of DCHAR_T; SNPRINTF appends an
+ array of TCHAR_T to it. This is possible because
+ sizeof (TCHAR_T) divides sizeof (DCHAR_T) and
+ alignof (TCHAR_T) <= alignof (DCHAR_T). */
+# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T))
+ /* Ensure that maxlen below will be >= 2. Needed on BeOS,
+ where an snprintf() with maxlen==1 acts like sprintf(). */
+ ENSURE_ALLOCATION (xsum (length,
+ (2 + TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR));
+ /* Prepare checking whether snprintf returns the count
+ via %n. */
+ *(TCHAR_T *) (result + length) = '\0';
+#endif
+
+ for (;;)
+ {
+ int count = -1;
+
+#if USE_SNPRINTF
+ int retcount = 0;
+ size_t maxlen = allocated - length;
+ /* SNPRINTF can fail if its second argument is
+ > INT_MAX. */
+ if (maxlen > INT_MAX / TCHARS_PER_DCHAR)
+ maxlen = INT_MAX / TCHARS_PER_DCHAR;
+ maxlen = maxlen * TCHARS_PER_DCHAR;
+# define SNPRINTF_BUF(arg) \
+ switch (prefix_count) \
+ { \
+ case 0: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ arg, &count); \
+ break; \
+ case 1: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ prefixes[0], arg, &count); \
+ break; \
+ case 2: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ prefixes[0], prefixes[1], arg, \
+ &count); \
+ break; \
+ default: \
+ abort (); \
+ }
+#else
+# define SNPRINTF_BUF(arg) \
+ switch (prefix_count) \
+ { \
+ case 0: \
+ count = sprintf (tmp, buf, arg); \
+ break; \
+ case 1: \
+ count = sprintf (tmp, buf, prefixes[0], arg); \
+ break; \
+ case 2: \
+ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
+ arg); \
+ break; \
+ default: \
+ abort (); \
+ }
+#endif
+
+ switch (type)
+ {
+ case TYPE_SCHAR:
+ {
+ int arg = a.arg[dp->arg_index].a.a_schar;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_UCHAR:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_SHORT:
+ {
+ int arg = a.arg[dp->arg_index].a.a_short;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_USHORT:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_INT:
+ {
+ int arg = a.arg[dp->arg_index].a.a_int;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_UINT:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_uint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_LONGINT:
+ {
+ long int arg = a.arg[dp->arg_index].a.a_longint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_ULONGINT:
+ {
+ unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ {
+ long long int arg = a.arg[dp->arg_index].a.a_longlongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_ULONGLONGINT:
+ {
+ unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_DOUBLE:
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_LONGDOUBLE:
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_CHAR:
+ {
+ int arg = a.arg[dp->arg_index].a.a_char;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+ {
+ wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_STRING:
+ {
+ const char *arg = a.arg[dp->arg_index].a.a_string;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+ {
+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_POINTER:
+ {
+ void *arg = a.arg[dp->arg_index].a.a_pointer;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ default:
+ abort ();
+ }
+
+#if USE_SNPRINTF
+ /* Portability: Not all implementations of snprintf()
+ are ISO C 99 compliant. Determine the number of
+ bytes that snprintf() has produced or would have
+ produced. */
+ if (count >= 0)
+ {
+ /* Verify that snprintf() has NUL-terminated its
+ result. */
+ if (count < maxlen
+ && ((TCHAR_T *) (result + length)) [count] != '\0')
+ abort ();
+ /* Portability hack. */
+ if (retcount > count)
+ count = retcount;
+ }
+ else
+ {
+ /* snprintf() doesn't understand the '%n'
+ directive. */
+ if (fbp[1] != '\0')
+ {
+ /* Don't use the '%n' directive; instead, look
+ at the snprintf() return value. */
+ fbp[1] = '\0';
+ continue;
+ }
+ else
+ {
+ /* Look at the snprintf() return value. */
+ if (retcount < 0)
+ {
+ /* HP-UX 10.20 snprintf() is doubly deficient:
+ It doesn't understand the '%n' directive,
+ *and* it returns -1 (rather than the length
+ that would have been required) when the
+ buffer is too small. */
+ size_t bigger_need =
+ xsum (xtimes (allocated, 2), 12);
+ ENSURE_ALLOCATION (bigger_need);
+ continue;
+ }
+ else
+ count = retcount;
+ }
+ }
+#endif
+
+ /* Attempt to handle failure. */
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EINVAL;
+ return NULL;
+ }
+
+#if USE_SNPRINTF
+ /* Handle overflow of the allocated buffer.
+ If such an overflow occurs, a C99 compliant snprintf()
+ returns a count >= maxlen. However, a non-compliant
+ snprintf() function returns only count = maxlen - 1. To
+ cover both cases, test whether count >= maxlen - 1. */
+ if ((unsigned int) count + 1 >= maxlen)
+ {
+ /* If maxlen already has attained its allowed maximum,
+ allocating more memory will not increase maxlen.
+ Instead of looping, bail out. */
+ if (maxlen == INT_MAX / TCHARS_PER_DCHAR)
+ goto overflow;
+ else
+ {
+ /* Need at least (count + 1) * sizeof (TCHAR_T)
+ bytes. (The +1 is for the trailing NUL.)
+ But ask for (count + 2) * sizeof (TCHAR_T)
+ bytes, so that in the next round, we likely get
+ maxlen > (unsigned int) count + 1
+ and so we don't get here again.
+ And allocate proportionally, to avoid looping
+ eternally if snprintf() reports a too small
+ count. */
+ size_t n =
+ xmax (xsum (length,
+ ((unsigned int) count + 2
+ + TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR),
+ xtimes (allocated, 2));
+
+ ENSURE_ALLOCATION (n);
+ continue;
+ }
+ }
+#endif
+
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ if (prec_ourselves)
+ {
+ /* Handle the precision. */
+ TCHAR_T *prec_ptr =
+# if USE_SNPRINTF
+ (TCHAR_T *) (result + length);
+# else
+ tmp;
+# endif
+ size_t prefix_count;
+ size_t move;
+
+ prefix_count = 0;
+ /* Put the additional zeroes after the sign. */
+ if (count >= 1
+ && (*prec_ptr == '-' || *prec_ptr == '+'
+ || *prec_ptr == ' '))
+ prefix_count = 1;
+ /* Put the additional zeroes after the 0x prefix if
+ (flags & FLAG_ALT) || (dp->conversion == 'p'). */
+ else if (count >= 2
+ && prec_ptr[0] == '0'
+ && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X'))
+ prefix_count = 2;
+
+ move = count - prefix_count;
+ if (precision > move)
+ {
+ /* Insert zeroes. */
+ size_t insert = precision - move;
+ TCHAR_T *prec_end;
+
+# if USE_SNPRINTF
+ size_t n =
+ xsum (length,
+ (count + insert + TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR);
+ length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+ ENSURE_ALLOCATION (n);
+ length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+ prec_ptr = (TCHAR_T *) (result + length);
+# endif
+
+ prec_end = prec_ptr + count;
+ prec_ptr += prefix_count;
+
+ while (prec_end > prec_ptr)
+ {
+ prec_end--;
+ prec_end[insert] = prec_end[0];
+ }
+
+ prec_end += insert;
+ do
+ *--prec_end = '0';
+ while (prec_end > prec_ptr);
+
+ count += insert;
+ }
+ }
+#endif
+
+#if !USE_SNPRINTF
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+#endif
+
+#if !DCHAR_IS_TCHAR
+ /* Convert from TCHAR_T[] to DCHAR_T[]. */
+ if (dp->conversion == 'c' || dp->conversion == 's')
+ {
+ /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING
+ TYPE_WIDE_STRING.
+ The result string is not certainly ASCII. */
+ const TCHAR_T *tmpsrc;
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
+ /* This code assumes that TCHAR_T is 'char'. */
+ typedef int TCHAR_T_verify
+ [2 * (sizeof (TCHAR_T) == 1) - 1];
+# if USE_SNPRINTF
+ tmpsrc = (TCHAR_T *) (result + length);
+# else
+ tmpsrc = tmp;
+# endif
+ tmpdst =
+ DCHAR_CONV_FROM_ENCODING (locale_charset (),
+ iconveh_question_mark,
+ tmpsrc, count,
+ NULL,
+ NULL, &tmpdst_len);
+ if (tmpdst == NULL)
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ ENSURE_ALLOCATION (xsum (length, tmpdst_len));
+ DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+ free (tmpdst);
+ count = tmpdst_len;
+ }
+ else
+ {
+ /* The result string is ASCII.
+ Simple 1:1 conversion. */
+# if USE_SNPRINTF
+ /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a
+ no-op conversion, in-place on the array starting
+ at (result + length). */
+ if (sizeof (DCHAR_T) != sizeof (TCHAR_T))
+# endif
+ {
+ const TCHAR_T *tmpsrc;
+ DCHAR_T *tmpdst;
+ size_t n;
+
+# if USE_SNPRINTF
+ if (result == resultbuf)
+ {
+ tmpsrc = (TCHAR_T *) (result + length);
+ /* ENSURE_ALLOCATION will not move tmpsrc
+ (because it's part of resultbuf). */
+ ENSURE_ALLOCATION (xsum (length, count));
+ }
+ else
+ {
+ /* ENSURE_ALLOCATION will move the array
+ (because it uses realloc(). */
+ ENSURE_ALLOCATION (xsum (length, count));
+ tmpsrc = (TCHAR_T *) (result + length);
+ }
+# else
+ tmpsrc = tmp;
+ ENSURE_ALLOCATION (xsum (length, count));
+# endif
+ tmpdst = result + length;
+ /* Copy backwards, because of overlapping. */
+ tmpsrc += count;
+ tmpdst += count;
+ for (n = count; n > 0; n--)
+ *--tmpdst = (unsigned char) *--tmpsrc;
+ }
+ }
+#endif
+
+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
+ /* Make room for the result. */
+ if (count > allocated - length)
+ {
+ /* Need at least count elements. But allocate
+ proportionally. */
+ size_t n =
+ xmax (xsum (length, count), xtimes (allocated, 2));
+
+ ENSURE_ALLOCATION (n);
+ }
+#endif
+
+ /* Here count <= allocated - length. */
+
+ /* Perform padding. */
+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ if (pad_ourselves && has_width)
+ {
+ size_t w;
+# if ENABLE_UNISTDIO
+ /* Outside POSIX, it's preferrable to compare the width
+ against the number of _characters_ of the converted
+ value. */
+ w = DCHAR_MBSNLEN (result + length, count);
+# else
+ /* The width is compared against the number of _bytes_
+ of the converted value, says POSIX. */
+ w = count;
+# endif
+ if (w < width)
+ {
+ size_t pad = width - w;
+
+ /* Make room for the result. */
+ if (xsum (count, pad) > allocated - length)
+ {
+ /* Need at least count + pad elements. But
+ allocate proportionally. */
+ size_t n =
+ xmax (xsum3 (length, count, pad),
+ xtimes (allocated, 2));
+
+# if USE_SNPRINTF
+ length += count;
+ ENSURE_ALLOCATION (n);
+ length -= count;
+# else
+ ENSURE_ALLOCATION (n);
+# endif
+ }
+ /* Here count + pad <= allocated - length. */
+
+ {
+# if !DCHAR_IS_TCHAR || USE_SNPRINTF
+ DCHAR_T * const rp = result + length;
+# else
+ DCHAR_T * const rp = tmp;
+# endif
+ DCHAR_T *p = rp + count;
+ DCHAR_T *end = p + pad;
+ DCHAR_T *pad_ptr;
+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
+ if (dp->conversion == 'c'
+ || dp->conversion == 's')
+ /* No zero-padding for string directives. */
+ pad_ptr = NULL;
+ else
+# endif
+ {
+ pad_ptr = (*rp == '-' ? rp + 1 : rp);
+ /* No zero-padding of "inf" and "nan". */
+ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z')
+ || (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
+ pad_ptr = NULL;
+ }
+ /* The generated string now extends from rp to p,
+ with the zero padding insertion point being at
+ pad_ptr. */
+
+ count = count + pad; /* = end - rp */
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > rp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ }
+ }
+ }
+#endif
+
+ /* Here still count <= allocated - length. */
+
+#if !DCHAR_IS_TCHAR || USE_SNPRINTF
+ /* The snprintf() result did fit. */
+#else
+ /* Append the sprintf() result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+#endif
+#if !USE_SNPRINTF
+ if (tmp != tmpbuf)
+ free (tmp);
+#endif
+
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ {
+ /* Convert the %f result to upper case for %F. */
+ DCHAR_T *rp = result + length;
+ size_t rc;
+ for (rc = count; rc > 0; rc--, rp++)
+ if (*rp >= 'a' && *rp <= 'z')
+ *rp = *rp - 'a' + 'A';
+ }
+#endif
+
+ length += count;
+ break;
+ }
+ }
+ }
+ }
+
+ /* Add the final NUL. */
+ ENSURE_ALLOCATION (xsum (length, 1));
+ result[length] = '\0';
+
+ if (result != resultbuf && length + 1 < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DCHAR_T *memory;
+
+ memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ *lengthp = length;
+ /* Note that we can produce a big string of a length > INT_MAX. POSIX
+ says that snprintf() fails with errno = EOVERFLOW in this case, but
+ that's only because snprintf() returns an 'int'. This function does
+ not have this limitation. */
+ return result;
+
+#if USE_SNPRINTF
+ overflow:
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EOVERFLOW;
+ return NULL;
+#endif
+
+ out_of_memory:
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ out_of_memory_1:
+ CLEANUP ();
+ errno = ENOMEM;
+ return NULL;
+ }
+}
+
+#undef TCHARS_PER_DCHAR
+#undef SNPRINTF
+#undef USE_SNPRINTF
+#undef DCHAR_CPY
+#undef PRINTF_PARSE
+#undef DIRECTIVES
+#undef DIRECTIVE
+#undef DCHAR_IS_TCHAR
+#undef TCHAR_T
+#undef DCHAR_T
+#undef FCHAR_T
+#undef VASNPRINTF
diff --git a/lib/verify.h b/lib/verify.h
new file mode 100644
index 0000000..e82fa02
--- /dev/null
+++ b/lib/verify.h
@@ -0,0 +1,140 @@
+/* Compile-time assert-like macros.
+
+ Copyright (C) 2005, 2006 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/>. */
+
+/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
+
+#ifndef VERIFY_H
+# define VERIFY_H 1
+
+/* Each of these macros verifies that its argument R is nonzero. To
+ be portable, R should be an integer constant expression. Unlike
+ assert (R), there is no run-time overhead.
+
+ There are two macros, since no single macro can be used in all
+ contexts in C. verify_true (R) is for scalar contexts, including
+ integer constant expression contexts. verify (R) is for declaration
+ contexts, e.g., the top level.
+
+ Symbols ending in "__" are private to this header.
+
+ The code below uses several ideas.
+
+ * The first step is ((R) ? 1 : -1). Given an expression R, of
+ integral or boolean or floating-point type, this yields an
+ expression of integral type, whose value is later verified to be
+ constant and nonnegative.
+
+ * Next this expression W is wrapped in a type
+ struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }.
+ If W is negative, this yields a compile-time error. No compiler can
+ deal with a bit-field of negative size.
+
+ One might think that an array size check would have the same
+ effect, that is, that the type struct { unsigned int dummy[W]; }
+ would work as well. However, inside a function, some compilers
+ (such as C++ compilers and GNU C) allow local parameters and
+ variables inside array size expressions. With these compilers,
+ an array size check would not properly diagnose this misuse of
+ the verify macro:
+
+ void function (int n) { verify (n < 0); }
+
+ * For the verify macro, the struct verify_type__ will need to
+ somehow be embedded into a declaration. To be portable, this
+ declaration must declare an object, a constant, a function, or a
+ typedef name. If the declared entity uses the type directly,
+ such as in
+
+ struct dummy {...};
+ typedef struct {...} dummy;
+ extern struct {...} *dummy;
+ extern void dummy (struct {...} *);
+ extern struct {...} *dummy (void);
+
+ two uses of the verify macro would yield colliding declarations
+ if the entity names are not disambiguated. A workaround is to
+ attach the current line number to the entity name:
+
+ #define GL_CONCAT0(x, y) x##y
+ #define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
+ extern struct {...} * GL_CONCAT(dummy,__LINE__);
+
+ But this has the problem that two invocations of verify from
+ within the same macro would collide, since the __LINE__ value
+ would be the same for both invocations.
+
+ A solution is to use the sizeof operator. It yields a number,
+ getting rid of the identity of the type. Declarations like
+
+ extern int dummy [sizeof (struct {...})];
+ extern void dummy (int [sizeof (struct {...})]);
+ extern int (*dummy (void)) [sizeof (struct {...})];
+
+ can be repeated.
+
+ * Should the implementation use a named struct or an unnamed struct?
+ Which of the following alternatives can be used?
+
+ extern int dummy [sizeof (struct {...})];
+ extern int dummy [sizeof (struct verify_type__ {...})];
+ extern void dummy (int [sizeof (struct {...})]);
+ extern void dummy (int [sizeof (struct verify_type__ {...})]);
+ extern int (*dummy (void)) [sizeof (struct {...})];
+ extern int (*dummy (void)) [sizeof (struct verify_type__ {...})];
+
+ In the second and sixth case, the struct type is exported to the
+ outer scope; two such declarations therefore collide. GCC warns
+ about the first, third, and fourth cases. So the only remaining
+ possibility is the fifth case:
+
+ extern int (*dummy (void)) [sizeof (struct {...})];
+
+ * This implementation exploits the fact that GCC does not warn about
+ the last declaration mentioned above. If a future version of GCC
+ introduces a warning for this, the problem could be worked around
+ by using code specialized to GCC, e.g.,:
+
+ #if 4 <= __GNUC__
+ # define verify(R) \
+ extern int (* verify_function__ (void)) \
+ [__builtin_constant_p (R) && (R) ? 1 : -1]
+ #endif
+
+ * In C++, any struct definition inside sizeof is invalid.
+ Use a template type to work around the problem. */
+
+
+/* Verify requirement R at compile-time, as an integer constant expression.
+ Return 1. */
+
+# ifdef __cplusplus
+template <int w>
+ struct verify_type__ { unsigned int verify_error_if_negative_size__: w; };
+# define verify_true(R) \
+ (!!sizeof (verify_type__<(R) ? 1 : -1>))
+# else
+# define verify_true(R) \
+ (!!sizeof \
+ (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; }))
+# endif
+
+/* Verify requirement R at compile-time, as a declaration without a
+ trailing ';'. */
+
+# define verify(R) extern int (* verify_function__ (void)) [verify_true (R)]
+
+#endif
diff --git a/lib/version.c b/lib/version.c
new file mode 100644
index 0000000..0b3bde1
--- /dev/null
+++ b/lib/version.c
@@ -0,0 +1,23 @@
+/* Version information about GNU libunistring.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ 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>
+
+/* Specification. */
+#include "unistring/version.h"
+
+const int _libunistring_version = _LIBUNISTRING_VERSION;
diff --git a/lib/wchar.in.h b/lib/wchar.in.h
new file mode 100644
index 0000000..1f1f130
--- /dev/null
+++ b/lib/wchar.in.h
@@ -0,0 +1,310 @@
+/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
+
+ 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* Written by Eric Blake. */
+
+/*
+ * ISO C 99 <wchar.h> for platforms that have issues.
+ * <http://www.opengroup.org/susv3xbd/wchar.h.html>
+ *
+ * For now, this just ensures proper prerequisite inclusion order and
+ * the declaration of wcwidth().
+ */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+#if defined __need_mbstate_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
+/* Special invocation convention:
+ - Inside uClibc header files.
+ - On HP-UX 11.00 we have a sequence of nested includes
+ <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>,
+ once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h>
+ and once directly. In both situations 'wint_t' is not yet defined,
+ therefore we cannot provide the function overrides; instead include only
+ the system's <wchar.h>.
+ - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and
+ the latter includes <wchar.h>. But here, we have no way to detect whether
+ <wctype.h> is completely included or is still being included. */
+
+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _GL_WCHAR_H
+
+#define _GL_ALREADY_INCLUDING_WCHAR_H
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+
+/* Include the original <wchar.h> if it exists.
+ Some builds of uClibc lack it. */
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_WCHAR_H@
+# @INCLUDE_NEXT@ @NEXT_WCHAR_H@
+#endif
+
+#undef _GL_ALREADY_INCLUDING_WCHAR_H
+
+#ifndef _GL_WCHAR_H
+#define _GL_WCHAR_H
+
+/* The definition of GL_LINK_WARNING is copied here. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Define wint_t. (Also done in wctype.in.h.) */
+#if !@HAVE_WINT_T@ && !defined wint_t
+# define wint_t int
+# ifndef WEOF
+# define WEOF -1
+# endif
+#endif
+
+
+/* Override mbstate_t if it is too small.
+ On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
+ implementing mbrtowc for encodings like UTF-8. */
+#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
+typedef int rpl_mbstate_t;
+# undef mbstate_t
+# define mbstate_t rpl_mbstate_t
+# define GNULIB_defined_mbstate_t 1
+#endif
+
+
+/* Convert a single-byte character to a wide character. */
+#if @GNULIB_BTOWC@
+# if @REPLACE_BTOWC@
+# undef btowc
+# define btowc rpl_btowc
+# endif
+# if !@HAVE_BTOWC@ || @REPLACE_BTOWC@
+extern wint_t btowc (int c);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef btowc
+# define btowc(c) \
+ (GL_LINK_WARNING ("btowc is unportable - " \
+ "use gnulib module btowc for portability"), \
+ btowc (c))
+#endif
+
+
+/* Convert a wide character to a single-byte character. */
+#if @GNULIB_WCTOB@
+# if @REPLACE_WCTOB@
+# undef wctob
+# define wctob rpl_wctob
+# endif
+# if (!defined wctob && !@HAVE_DECL_WCTOB@) || @REPLACE_WCTOB@
+/* wctob is provided by gnulib, or wctob exists but is not declared. */
+extern int wctob (wint_t wc);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wctob
+# define wctob(w) \
+ (GL_LINK_WARNING ("wctob is unportable - " \
+ "use gnulib module wctob for portability"), \
+ wctob (w))
+#endif
+
+
+/* Test whether *PS is in the initial state. */
+#if @GNULIB_MBSINIT@
+# if @REPLACE_MBSINIT@
+# undef mbsinit
+# define mbsinit rpl_mbsinit
+# endif
+# if !@HAVE_MBSINIT@ || @REPLACE_MBSINIT@
+extern int mbsinit (const mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsinit
+# define mbsinit(p) \
+ (GL_LINK_WARNING ("mbsinit is unportable - " \
+ "use gnulib module mbsinit for portability"), \
+ mbsinit (p))
+#endif
+
+
+/* Convert a multibyte character to a wide character. */
+#if @GNULIB_MBRTOWC@
+# if @REPLACE_MBRTOWC@
+# undef mbrtowc
+# define mbrtowc rpl_mbrtowc
+# endif
+# if !@HAVE_MBRTOWC@ || @REPLACE_MBRTOWC@
+extern size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbrtowc
+# define mbrtowc(w,s,n,p) \
+ (GL_LINK_WARNING ("mbrtowc is unportable - " \
+ "use gnulib module mbrtowc for portability"), \
+ mbrtowc (w, s, n, p))
+#endif
+
+
+/* Recognize a multibyte character. */
+#if @GNULIB_MBRLEN@
+# if @REPLACE_MBRLEN@
+# undef mbrlen
+# define mbrlen rpl_mbrlen
+# endif
+# if !@HAVE_MBRLEN@ || @REPLACE_MBRLEN@
+extern size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbrlen
+# define mbrlen(s,n,p) \
+ (GL_LINK_WARNING ("mbrlen is unportable - " \
+ "use gnulib module mbrlen for portability"), \
+ mbrlen (s, n, p))
+#endif
+
+
+/* Convert a string to a wide string. */
+#if @GNULIB_MBSRTOWCS@
+# if @REPLACE_MBSRTOWCS@
+# undef mbsrtowcs
+# define mbsrtowcs rpl_mbsrtowcs
+# endif
+# if !@HAVE_MBSRTOWCS@ || @REPLACE_MBSRTOWCS@
+extern size_t mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsrtowcs
+# define mbsrtowcs(d,s,l,p) \
+ (GL_LINK_WARNING ("mbsrtowcs is unportable - " \
+ "use gnulib module mbsrtowcs for portability"), \
+ mbsrtowcs (d, s, l, p))
+#endif
+
+
+/* Convert a string to a wide string. */
+#if @GNULIB_MBSNRTOWCS@
+# if @REPLACE_MBSNRTOWCS@
+# undef mbsnrtowcs
+# define mbsnrtowcs rpl_mbsnrtowcs
+# endif
+# if !@HAVE_MBSNRTOWCS@ || @REPLACE_MBSNRTOWCS@
+extern size_t mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsnrtowcs
+# define mbsnrtowcs(d,s,n,l,p) \
+ (GL_LINK_WARNING ("mbsnrtowcs is unportable - " \
+ "use gnulib module mbsnrtowcs for portability"), \
+ mbsnrtowcs (d, s, n, l, p))
+#endif
+
+
+/* Convert a wide character to a multibyte character. */
+#if @GNULIB_WCRTOMB@
+# if @REPLACE_WCRTOMB@
+# undef wcrtomb
+# define wcrtomb rpl_wcrtomb
+# endif
+# if !@HAVE_WCRTOMB@ || @REPLACE_WCRTOMB@
+extern size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcrtomb
+# define wcrtomb(s,w,p) \
+ (GL_LINK_WARNING ("wcrtomb is unportable - " \
+ "use gnulib module wcrtomb for portability"), \
+ wcrtomb (s, w, p))
+#endif
+
+
+/* Convert a wide string to a string. */
+#if @GNULIB_WCSRTOMBS@
+# if @REPLACE_WCSRTOMBS@
+# undef wcsrtombs
+# define wcsrtombs rpl_wcsrtombs
+# endif
+# if !@HAVE_WCSRTOMBS@ || @REPLACE_WCSRTOMBS@
+extern size_t wcsrtombs (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsrtombs
+# define wcsrtombs(d,s,l,p) \
+ (GL_LINK_WARNING ("wcsrtombs is unportable - " \
+ "use gnulib module wcsrtombs for portability"), \
+ wcsrtombs (d, s, l, p))
+#endif
+
+
+/* Convert a wide string to a string. */
+#if @GNULIB_WCSNRTOMBS@
+# if @REPLACE_WCSNRTOMBS@
+# undef wcsnrtombs
+# define wcsnrtombs rpl_wcsnrtombs
+# endif
+# if !@HAVE_WCSNRTOMBS@ || @REPLACE_WCSNRTOMBS@
+extern size_t wcsnrtombs (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsnrtombs
+# define wcsnrtombs(d,s,n,l,p) \
+ (GL_LINK_WARNING ("wcsnrtombs is unportable - " \
+ "use gnulib module wcsnrtombs for portability"), \
+ wcsnrtombs (d, s, n, l, p))
+#endif
+
+
+/* Return the number of screen columns needed for WC. */
+#if @GNULIB_WCWIDTH@
+# if @REPLACE_WCWIDTH@
+# undef wcwidth
+# define wcwidth rpl_wcwidth
+extern int wcwidth (wchar_t);
+# else
+# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
+/* wcwidth exists but is not declared. */
+extern int wcwidth (int /* actually wchar_t */);
+# endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcwidth
+# define wcwidth(w) \
+ (GL_LINK_WARNING ("wcwidth is unportable - " \
+ "use gnulib module wcwidth for portability"), \
+ wcwidth (w))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_WCHAR_H */
+#endif /* _GL_WCHAR_H */
+#endif
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
new file mode 100644
index 0000000..a583a04
--- /dev/null
+++ b/lib/wctype.in.h
@@ -0,0 +1,184 @@
+/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
+
+ 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 Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* Written by Bruno Haible and Paul Eggert. */
+
+/*
+ * ISO C 99 <wctype.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/wctype.h.html>
+ *
+ * iswctype, towctrans, towlower, towupper, wctrans, wctype,
+ * wctrans_t, and wctype_t are not yet implemented.
+ */
+
+#ifndef _GL_WCTYPE_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+#if @HAVE_WINT_T@
+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
+ Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+
+/* Include the original <wctype.h> if it exists.
+ BeOS 5 has the functions but no <wctype.h>. */
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_WCTYPE_H@
+# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
+#endif
+
+#ifndef _GL_WCTYPE_H
+#define _GL_WCTYPE_H
+
+/* Define wint_t. (Also done in wchar.in.h.) */
+#if !@HAVE_WINT_T@ && !defined wint_t
+# define wint_t int
+# ifndef WEOF
+# define WEOF -1
+# endif
+#endif
+
+/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
+ Linux libc5 has <wctype.h> and the functions but they are broken.
+ Assume all 12 functions are implemented the same way, or not at all. */
+#if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
+
+/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
+ undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
+ refer to system functions like _iswctype that are not in the
+ standard C library. Rather than try to get ancient buggy
+ implementations like this to work, just disable them. */
+# undef iswalnum
+# undef iswalpha
+# undef iswblank
+# undef iswcntrl
+# undef iswdigit
+# undef iswgraph
+# undef iswlower
+# undef iswprint
+# undef iswpunct
+# undef iswspace
+# undef iswupper
+# undef iswxdigit
+
+/* Linux libc5 has <wctype.h> and the functions but they are broken. */
+# if @REPLACE_ISWCNTRL@
+# define iswalnum rpl_iswalnum
+# define iswalpha rpl_iswalpha
+# define iswblank rpl_iswblank
+# define iswcntrl rpl_iswcntrl
+# define iswdigit rpl_iswdigit
+# define iswgraph rpl_iswgraph
+# define iswlower rpl_iswlower
+# define iswprint rpl_iswprint
+# define iswpunct rpl_iswpunct
+# define iswspace rpl_iswspace
+# define iswupper rpl_iswupper
+# define iswxdigit rpl_iswxdigit
+# endif
+
+static inline int
+iswalnum (wint_t wc)
+{
+ return ((wc >= '0' && wc <= '9')
+ || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
+}
+
+static inline int
+iswalpha (wint_t wc)
+{
+ return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
+}
+
+static inline int
+iswblank (wint_t wc)
+{
+ return wc == ' ' || wc == '\t';
+}
+
+static inline int
+iswcntrl (wint_t wc)
+{
+ return (wc & ~0x1f) == 0 || wc == 0x7f;
+}
+
+static inline int
+iswdigit (wint_t wc)
+{
+ return wc >= '0' && wc <= '9';
+}
+
+static inline int
+iswgraph (wint_t wc)
+{
+ return wc >= '!' && wc <= '~';
+}
+
+static inline int
+iswlower (wint_t wc)
+{
+ return wc >= 'a' && wc <= 'z';
+}
+
+static inline int
+iswprint (wint_t wc)
+{
+ return wc >= ' ' && wc <= '~';
+}
+
+static inline int
+iswpunct (wint_t wc)
+{
+ return (wc >= '!' && wc <= '~'
+ && !((wc >= '0' && wc <= '9')
+ || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
+}
+
+static inline int
+iswspace (wint_t wc)
+{
+ return (wc == ' ' || wc == '\t'
+ || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
+}
+
+static inline int
+iswupper (wint_t wc)
+{
+ return wc >= 'A' && wc <= 'Z';
+}
+
+static inline int
+iswxdigit (wint_t wc)
+{
+ return ((wc >= '0' && wc <= '9')
+ || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
+}
+
+# endif /* ! HAVE_ISWCNTRL */
+
+#endif /* _GL_WCTYPE_H */
+#endif /* _GL_WCTYPE_H */
diff --git a/lib/wcwidth.c b/lib/wcwidth.c
new file mode 100644
index 0000000..8dea611
--- /dev/null
+++ b/lib/wcwidth.c
@@ -0,0 +1,51 @@
+/* Determine the number of screen columns needed for a character.
+ Copyright (C) 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 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>
+
+/* Specification. */
+#include <wchar.h>
+
+/* Get iswprint. */
+#include <wctype.h>
+
+#include "localcharset.h"
+#include "streq.h"
+#include "uniwidth.h"
+
+#undef wcwidth
+
+int
+rpl_wcwidth (wchar_t wc)
+{
+ /* In UTF-8 locales, use a Unicode aware width function. */
+ const char *encoding = locale_charset ();
+ if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+ {
+ /* We assume that in a UTF-8 locale, a wide character is the same as a
+ Unicode character. */
+ return uc_width (wc, encoding);
+ }
+ else
+ {
+ /* Otherwise, fall back to the system's wcwidth function. */
+#if HAVE_WCWIDTH
+ return wcwidth (wc);
+#else
+ return wc == 0 ? 0 : iswprint (wc) ? 1 : -1;
+#endif
+ }
+}
diff --git a/lib/xsize.h b/lib/xsize.h
new file mode 100644
index 0000000..0b30045
--- /dev/null
+++ b/lib/xsize.h
@@ -0,0 +1,108 @@
+/* xsize.h -- Checked size_t computations.
+
+ Copyright (C) 2003, 2008 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 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU 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, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _XSIZE_H
+#define _XSIZE_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get SIZE_MAX. */
+#include <limits.h>
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+/* The size of memory objects is often computed through expressions of
+ type size_t. Example:
+ void* p = malloc (header_size + n * element_size).
+ These computations can lead to overflow. When this happens, malloc()
+ returns a piece of memory that is way too small, and the program then
+ crashes while attempting to fill the memory.
+ To avoid this, the functions and macros in this file check for overflow.
+ The convention is that SIZE_MAX represents overflow.
+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
+ implementation that uses mmap --, it's recommended to use size_overflow_p()
+ or size_in_bounds_p() before invoking malloc().
+ The example thus becomes:
+ size_t size = xsum (header_size, xtimes (n, element_size));
+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
+*/
+
+/* Convert an arbitrary value >= 0 to type size_t. */
+#define xcast_size_t(N) \
+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
+
+/* Sum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum (size_t size1, size_t size2)
+{
+ size_t sum = size1 + size2;
+ return (sum >= size1 ? sum : SIZE_MAX);
+}
+
+/* Sum of three sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum3 (size_t size1, size_t size2, size_t size3)
+{
+ return xsum (xsum (size1, size2), size3);
+}
+
+/* Sum of four sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
+{
+ return xsum (xsum (xsum (size1, size2), size3), size4);
+}
+
+/* Maximum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xmax (size_t size1, size_t size2)
+{
+ /* No explicit check is needed here, because for any n:
+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
+ return (size1 >= size2 ? size1 : size2);
+}
+
+/* Multiplication of a count with an element size, with overflow check.
+ The count must be >= 0 and the element size must be > 0.
+ This is a macro, not an inline function, so that it works correctly even
+ when N is of a wider type and N > SIZE_MAX. */
+#define xtimes(N, ELSIZE) \
+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
+
+/* Check for overflow. */
+#define size_overflow_p(SIZE) \
+ ((SIZE) == SIZE_MAX)
+/* Check against overflow. */
+#define size_in_bounds_p(SIZE) \
+ ((SIZE) != SIZE_MAX)
+
+#endif /* _XSIZE_H */