diff options
Diffstat (limited to 'src/fluent-bit/lib/onigmo/enc')
49 files changed, 66973 insertions, 0 deletions
diff --git a/src/fluent-bit/lib/onigmo/enc/ascii.c b/src/fluent-bit/lib/onigmo/enc/ascii.c new file mode 100644 index 000000000..233971e2b --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/ascii.c @@ -0,0 +1,108 @@ +/********************************************************************** + ascii.c - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2006 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#ifdef RUBY +# include "encindex.h" +#endif + +#ifndef ENCINDEX_ASCII +# define ENCINDEX_ASCII 0 +#endif + +OnigEncodingDefine(ascii, ASCII) = { + onigenc_single_byte_mbc_enc_len, + "ASCII-8BIT",/* name */ + 1, /* max byte length */ + 1, /* min byte length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + onigenc_ascii_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + ENCINDEX_ASCII, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("BINARY", "ASCII-8BIT") +ENC_REPLICATE("IBM437", "ASCII-8BIT") +ENC_ALIAS("CP437", "IBM437") +ENC_REPLICATE("IBM737", "ASCII-8BIT") +ENC_ALIAS("CP737", "IBM737") +ENC_REPLICATE("IBM775", "ASCII-8BIT") +ENC_ALIAS("CP775", "IBM775") +ENC_REPLICATE("CP850", "ASCII-8BIT") +ENC_ALIAS("IBM850", "CP850") +ENC_REPLICATE("IBM852", "ASCII-8BIT") +ENC_REPLICATE("CP852", "IBM852") +ENC_REPLICATE("IBM855", "ASCII-8BIT") +ENC_REPLICATE("CP855", "IBM855") +ENC_REPLICATE("IBM857", "ASCII-8BIT") +ENC_ALIAS("CP857", "IBM857") +ENC_REPLICATE("IBM860", "ASCII-8BIT") +ENC_ALIAS("CP860", "IBM860") +ENC_REPLICATE("IBM861", "ASCII-8BIT") +ENC_ALIAS("CP861", "IBM861") +ENC_REPLICATE("IBM862", "ASCII-8BIT") +ENC_ALIAS("CP862", "IBM862") +ENC_REPLICATE("IBM863", "ASCII-8BIT") +ENC_ALIAS("CP863", "IBM863") +ENC_REPLICATE("IBM864", "ASCII-8BIT") +ENC_ALIAS("CP864", "IBM864") +ENC_REPLICATE("IBM865", "ASCII-8BIT") +ENC_ALIAS("CP865", "IBM865") +ENC_REPLICATE("IBM866", "ASCII-8BIT") +ENC_ALIAS("CP866", "IBM866") +ENC_REPLICATE("IBM869", "ASCII-8BIT") +ENC_ALIAS("CP869", "IBM869") +ENC_REPLICATE("Windows-1258", "ASCII-8BIT") +ENC_ALIAS("CP1258", "Windows-1258") +ENC_REPLICATE("GB1988", "ASCII-8BIT") +ENC_REPLICATE("macCentEuro", "ASCII-8BIT") +ENC_REPLICATE("macCroatian", "ASCII-8BIT") +ENC_REPLICATE("macCyrillic", "ASCII-8BIT") +ENC_REPLICATE("macGreek", "ASCII-8BIT") +ENC_REPLICATE("macIceland", "ASCII-8BIT") +ENC_REPLICATE("macRoman", "ASCII-8BIT") +ENC_REPLICATE("macRomania", "ASCII-8BIT") +ENC_REPLICATE("macThai", "ASCII-8BIT") +ENC_REPLICATE("macTurkish", "ASCII-8BIT") +ENC_REPLICATE("macUkraine", "ASCII-8BIT") diff --git a/src/fluent-bit/lib/onigmo/enc/big5.c b/src/fluent-bit/lib/onigmo/enc/big5.c new file mode 100644 index 000000000..e141ebdbe --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/big5.c @@ -0,0 +1,388 @@ +/********************************************************************** + big5.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_BIG5[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; +static const int EncLen_BIG5_HKSCS[] = { + /* LEN 0 1 2 3 4 5 6 7 8 9 A B C D E F */ + /* 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, + /* 2 */ 1, 1, 1, 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, + /* 4 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 5 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 6 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 7 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 8 */ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* A */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* B */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* C */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* D */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* E */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* F */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, +}; + +static const int EncLen_BIG5_UAO[] = { + /* LEN 0 1 2 3 4 5 6 7 8 9 A B C D E F */ + /* 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, + /* 2 */ 1, 1, 1, 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, + /* 4 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 5 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 6 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 7 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 8 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* A */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* B */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* C */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* D */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* E */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* F */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + } +}; +#undef A +#undef F + +static int +big5_mbc_enc_len0(const UChar* p, const UChar* e, int tridx, const int tbl[]) +{ + int firstbyte = *p++; + state_t s = trans[tridx][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(tbl[firstbyte]-1); + s = trans[s][*p++]; + RETURN(2); +#undef RETURN +} + +static int +big5_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + return big5_mbc_enc_len0(p, e, 0, EncLen_BIG5); +} + +static int +big5_hkscs_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + return big5_mbc_enc_len0(p, e, 2, EncLen_BIG5_HKSCS); +} + +static int +big5_uao_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + return big5_mbc_enc_len0(p, e, 2, EncLen_BIG5_UAO); +} + +static OnigCodePoint +big5_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_mbc_to_code(enc, p, end); +} + +static int +big5_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb2_code_to_mbc(enc, code, buf); +} + +static int +big5_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +#if 0 +static int +big5_is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); +} +#endif + +static int +big5_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb2_is_code_ctype(enc, code, ctype); +} + +static const char BIG5_CAN_BE_TRAIL_TABLE[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 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, 0 +}; + +#define BIG5_HKSCS_P(enc) ((enc)->precise_mbc_enc_len == big5_hkscs_mbc_enc_len) +#define BIG5_UAO_P(enc) ((enc)->precise_mbc_enc_len == big5_uao_mbc_enc_len) + +#define BIG5_ISMB_FIRST(byte) ( \ + BIG5_HKSCS_P(enc) ? EncLen_BIG5_HKSCS[byte] > 1 : \ + EncLen_BIG5[byte] > 1 \ + ) +#define BIG5_ISMB_TRAIL(byte) BIG5_CAN_BE_TRAIL_TABLE[(byte)] + +static UChar* +big5_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + if (BIG5_ISMB_TRAIL(*p)) { + while (p > start) { + if (! BIG5_ISMB_FIRST(*--p)) { + p++; + break; + } + } + } + len = enclen(enc, p, end); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +big5_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + + return (BIG5_ISMB_TRAIL(c) ? FALSE : TRUE); +} + +/* + * Name: Big5 (preferred MIME name) + * MIBenum: 2026 + * Source: Chinese for Taiwan Multi-byte set. + * PCL Symbol Set Id: 18T + * Alias: csBig5 + */ +OnigEncodingDefine(big5, BIG5) = { + big5_mbc_enc_len, + "Big5", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + big5_mbc_to_code, + onigenc_mb2_code_to_mbclen, + big5_code_to_mbc, + big5_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + big5_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + big5_left_adjust_char_head, + big5_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; + +/* + * Name: CP950 + * Source: http://msdn.microsoft.com/en-us/goglobal/cc305155.aspx + */ +ENC_REPLICATE("CP950", "Big5") + +/* + * Name: Big5-HKSCS + * MIBenum: 2101 + * Source: http://www.iana.org/assignments/charset-reg/Big5-HKSCS + * Source: http://www.ogcio.gov.hk/ccli/eng/hkscs/mapping_table_2008.html + * Alias: None + */ +OnigEncodingDefine(big5_hkscs, BIG5_HKSCS) = { + big5_hkscs_mbc_enc_len, + "Big5-HKSCS", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + big5_mbc_to_code, + onigenc_mb2_code_to_mbclen, + big5_code_to_mbc, + big5_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + big5_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + big5_left_adjust_char_head, + big5_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("Big5-HKSCS:2008", "Big5-HKSCS") + +/* + * Name: CP951 + * Source: http://www.microsoft.com/hk/hkscs/default.aspx + * Source: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0e6f5ac8-7baa-4571-b8e8-78b3b776afd7&DisplayLang=en + * Source: http://blogs.msdn.com/b/shawnste/archive/2007/03/12/cp-951-hkscs.aspx + */ +ENC_REPLICATE("CP951", "Big5-HKSCS") + +/* + * Name: Big5-UAO [NOT registered by IANA!] + * Source: http://moztw.org/docs/big5/table/big5_2003-b2u.txt + */ +OnigEncodingDefine(big5_uao, BIG5_UAO) = { + big5_uao_mbc_enc_len, + "Big5-UAO", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + big5_mbc_to_code, + onigenc_mb2_code_to_mbclen, + big5_code_to_mbc, + big5_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + big5_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + big5_left_adjust_char_head, + big5_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; diff --git a/src/fluent-bit/lib/onigmo/enc/cp949.c b/src/fluent-bit/lib/onigmo/enc/cp949.c new file mode 100644 index 000000000..f9f52c0db --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/cp949.c @@ -0,0 +1,226 @@ +/********************************************************************** + cp949.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_CP949[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char CP949_CAN_BE_TRAIL_TABLE[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 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, 0 +}; + +#define CP949_ISMB_FIRST(byte) (EncLen_CP949[byte] > 1) +#define CP949_ISMB_TRAIL(byte) CP949_CAN_BE_TRAIL_TABLE[(byte)] + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ A, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, F, F, F, F, F, + /* 6 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, F, F, F, F, F, + /* 8 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + } +}; +#undef A +#undef F + +static int +cp949_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s = trans[0][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_CP949[firstbyte]-1); + s = trans[s][*p++]; + RETURN(2); +#undef RETURN +} + +static OnigCodePoint +cp949_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_mbc_to_code(enc, p, end); +} + +static int +cp949_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb2_code_to_mbc(enc, code, buf); +} + +static int +cp949_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +#if 0 +static int +cp949_is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); +} +#endif + +static int +cp949_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb2_is_code_ctype(enc, code, ctype); +} + +static UChar* +cp949_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + if (CP949_ISMB_TRAIL(*p)) { + while (p > start) { + if (! CP949_ISMB_FIRST(*--p)) { + p++; + break; + } + } + } + len = enclen(enc, p, end); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +cp949_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + return (CP949_ISMB_TRAIL(c) ? FALSE : TRUE); +} + +OnigEncodingDefine(cp949, CP949) = { + cp949_mbc_enc_len, + "CP949", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + cp949_mbc_to_code, + onigenc_mb2_code_to_mbclen, + cp949_code_to_mbc, + cp949_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + cp949_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + cp949_left_adjust_char_head, + cp949_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: CP949 + * Link: http://www.microsoft.com/globaldev/reference/dbcs/949.mspx + * Link: http://en.wikipedia.org/wiki/EUC-KR#EUC-KR + */ diff --git a/src/fluent-bit/lib/onigmo/enc/emacs_mule.c b/src/fluent-bit/lib/onigmo/enc/emacs_mule.c new file mode 100644 index 000000000..abd986a18 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/emacs_mule.c @@ -0,0 +1,346 @@ +/********************************************************************** + emacs_mule.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + + +#define emacsmule_islead(c) ((UChar )(c) < 0x9e) + +/* + CHARACTER := ASCII_CHAR | MULTIBYTE_CHAR + MULTIBYTE_CHAR := PRIMARY_CHAR_1 | PRIMARY_CHAR_2 + | SECONDARY_CHAR_1 | SECONDARY_CHAR_2 + PRIMARY_CHAR_1 := LEADING_CODE_PRI C1 + PRIMARY_CHAR_2 := LEADING_CODE_PRI C1 C2 + SECONDARY_CHAR_1 := LEADING_CODE_SEC LEADING_CODE_EXT C1 + SECONDARY_CHAR_2 := LEADING_CODE_SEC LEADING_CODE_EXT C1 C2 + ASCII_CHAR := 0 | 1 | ... | 127 + LEADING_CODE_PRI := 129 | 130 | ... | 153 + LEADING_CODE_SEC := 154 | 155 | 156 | 157 + C1, C2, LEADING_CODE_EXT := 160 | 161 | ... | 255 + */ + +static const int EncLen_EmacsMule[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3, S4, S5, S6 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 5, 6, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }, + { /* S3 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S4 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S5 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ 2, 2, 2, 2, 2, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S6 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, F + }, + +}; +#undef A +#undef F + +static int +mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s; + s = trans[0][firstbyte]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-1); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-2); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-3); + s = trans[s][*p++]; + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +} + +static OnigCodePoint +mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + int c, i, len; + OnigCodePoint n; + + len = enclen(enc, p, end); + n = (OnigCodePoint )*p++; + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; +} + +static int +code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) +{ + if (ONIGENC_IS_CODE_ASCII(code)) return 1; + else if (code > 0xffffffff) return 0; + else if ((code & 0xff000000) >= 0x80000000) return 4; + else if ((code & 0xff0000) >= 0x800000) return 3; + else if ((code & 0xff00) >= 0x8000) return 2; + else + return ONIGERR_INVALID_CODE_POINT_VALUE; +} + +static int +code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + UChar *p = buf; + + if ((code & 0xff000000) != 0) *p++ = (UChar )(((code >> 24) & 0xff)); + if ((code & 0xff0000) != 0) *p++ = (UChar )(((code >> 16) & 0xff)); + if ((code & 0xff00) != 0) *p++ = (UChar )(((code >> 8) & 0xff)); + *p++ = (UChar )(code & 0xff); + + if (enclen(enc, buf, p) != (p - buf)) + return ONIGERR_INVALID_CODE_POINT_VALUE; + return (int)(p - buf); +} + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* lower, + OnigEncoding enc) +{ + int len; + const UChar* p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { + *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; + } + else { + int i; + + len = mbc_enc_len(p, end, enc); + for (i = 0; i < len; i++) { + *lower++ = *p++; + } + (*pp) += len; + return len; /* return byte length of converted char to lower */ + } +} + +static UChar* +left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + + if (s <= start) return (UChar* )s; + p = s; + + while (!emacsmule_islead(*p) && p > start) p--; + return (UChar* )p; +} + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else + return (code_to_mbclen(code, enc) > 1 ? TRUE : FALSE); +} + +/* + * Name: Emacs-Mule + * Link: http://www.m17n.org/mule/pricai96/mule.en.html + */ +OnigEncodingDefine(emacs_mule, Emacs_Mule) = { + mbc_enc_len, + "Emacs-Mule", /* name */ + 4, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; + +ENC_REPLICATE("stateless-ISO-2022-JP", "Emacs-Mule") diff --git a/src/fluent-bit/lib/onigmo/enc/euc_jp.c b/src/fluent-bit/lib/onigmo/enc/euc_jp.c new file mode 100644 index 000000000..f3f87b3f5 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/euc_jp.c @@ -0,0 +1,620 @@ +/********************************************************************** + euc_jp.c - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define eucjp_islead(c) ((UChar )((c) - 0xa1) > 0xfe - 0xa1) + +static const int EncLen_EUCJP[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 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, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, 1, 2, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + +}; +#undef A +#undef F + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + /* Fullwidth Alphabet */ + { 0xa3c1, 0xa3e1 }, + { 0xa3c2, 0xa3e2 }, + { 0xa3c3, 0xa3e3 }, + { 0xa3c4, 0xa3e4 }, + { 0xa3c5, 0xa3e5 }, + { 0xa3c6, 0xa3e6 }, + { 0xa3c7, 0xa3e7 }, + { 0xa3c8, 0xa3e8 }, + { 0xa3c9, 0xa3e9 }, + { 0xa3ca, 0xa3ea }, + { 0xa3cb, 0xa3eb }, + { 0xa3cc, 0xa3ec }, + { 0xa3cd, 0xa3ed }, + { 0xa3ce, 0xa3ee }, + { 0xa3cf, 0xa3ef }, + { 0xa3d0, 0xa3f0 }, + { 0xa3d1, 0xa3f1 }, + { 0xa3d2, 0xa3f2 }, + { 0xa3d3, 0xa3f3 }, + { 0xa3d4, 0xa3f4 }, + { 0xa3d5, 0xa3f5 }, + { 0xa3d6, 0xa3f6 }, + { 0xa3d7, 0xa3f7 }, + { 0xa3d8, 0xa3f8 }, + { 0xa3d9, 0xa3f9 }, + { 0xa3da, 0xa3fa }, + + /* Greek */ + { 0xa6a1, 0xa6c1 }, + { 0xa6a2, 0xa6c2 }, + { 0xa6a3, 0xa6c3 }, + { 0xa6a4, 0xa6c4 }, + { 0xa6a5, 0xa6c5 }, + { 0xa6a6, 0xa6c6 }, + { 0xa6a7, 0xa6c7 }, + { 0xa6a8, 0xa6c8 }, + { 0xa6a9, 0xa6c9 }, + { 0xa6aa, 0xa6ca }, + { 0xa6ab, 0xa6cb }, + { 0xa6ac, 0xa6cc }, + { 0xa6ad, 0xa6cd }, + { 0xa6ae, 0xa6ce }, + { 0xa6af, 0xa6cf }, + { 0xa6b0, 0xa6d0 }, + { 0xa6b1, 0xa6d1 }, + { 0xa6b2, 0xa6d2 }, + { 0xa6b3, 0xa6d3 }, + { 0xa6b4, 0xa6d4 }, + { 0xa6b5, 0xa6d5 }, + { 0xa6b6, 0xa6d6 }, + { 0xa6b7, 0xa6d7 }, + { 0xa6b8, 0xa6d8 }, + + /* Cyrillic */ + { 0xa7a1, 0xa7d1 }, + { 0xa7a2, 0xa7d2 }, + { 0xa7a3, 0xa7d3 }, + { 0xa7a4, 0xa7d4 }, + { 0xa7a5, 0xa7d5 }, + { 0xa7a6, 0xa7d6 }, + { 0xa7a7, 0xa7d7 }, + { 0xa7a8, 0xa7d8 }, + { 0xa7a9, 0xa7d9 }, + { 0xa7aa, 0xa7da }, + { 0xa7ab, 0xa7db }, + { 0xa7ac, 0xa7dc }, + { 0xa7ad, 0xa7dd }, + { 0xa7ae, 0xa7de }, + { 0xa7af, 0xa7df }, + { 0xa7b0, 0xa7e0 }, + { 0xa7b1, 0xa7e1 }, + { 0xa7b2, 0xa7e2 }, + { 0xa7b3, 0xa7e3 }, + { 0xa7b4, 0xa7e4 }, + { 0xa7b5, 0xa7e5 }, + { 0xa7b6, 0xa7e6 }, + { 0xa7b7, 0xa7e7 }, + { 0xa7b8, 0xa7e8 }, + { 0xa7b9, 0xa7e9 }, + { 0xa7ba, 0xa7ea }, + { 0xa7bb, 0xa7eb }, + { 0xa7bc, 0xa7ec }, + { 0xa7bd, 0xa7ed }, + { 0xa7be, 0xa7ee }, + { 0xa7bf, 0xa7ef }, + { 0xa7c0, 0xa7f0 }, + { 0xa7c1, 0xa7f1 }, +}; + +static int +mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s; + s = trans[0][firstbyte]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCJP[firstbyte]-1); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCJP[firstbyte]-2); + s = trans[s][*p++]; + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +} + +static OnigCodePoint +mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + int c, i, len; + OnigCodePoint n; + + len = mbc_enc_len(p, end, enc); + n = (OnigCodePoint )*p++; + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; +} + +static int +code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) +{ + if (ONIGENC_IS_CODE_ASCII(code)) return 1; + else if (code > 0x00ffffff) + return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; + else if ((code & 0xff808080) == 0x00808080) return 3; + else if ((code & 0xffff8080) == 0x00008080) return 2; + else + return ONIGERR_INVALID_CODE_POINT_VALUE; +} + +#if 0 +static int +code_to_mbc_first(OnigCodePoint code) +{ + int first; + + if ((code & 0xff0000) != 0) { + first = (code >> 16) & 0xff; + } + else if ((code & 0xff00) != 0) { + first = (code >> 8) & 0xff; + } + else { + return (int )code; + } + return first; +} +#endif + +static int +code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + UChar *p = buf; + + if ((code & 0xff0000) != 0) *p++ = (UChar )(((code >> 16) & 0xff)); + if ((code & 0xff00) != 0) *p++ = (UChar )(((code >> 8) & 0xff)); + *p++ = (UChar )(code & 0xff); + +#if 1 + if (mbc_enc_len(buf, p, enc) != (p - buf)) + return ONIGERR_INVALID_CODE_POINT_VALUE; +#endif + return (int )(p - buf); +} + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static OnigCodePoint +get_lower_case(OnigCodePoint code) +{ + if (ONIGENC_IS_IN_RANGE(code, 0xa3c1, 0xa3da)) { + /* Fullwidth Alphabet */ + return (OnigCodePoint )(code + 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0xa6a1, 0xa6b8)) { + /* Greek */ + return (OnigCodePoint )(code + 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0xa7a1, 0xa7c1)) { + /* Cyrillic */ + return (OnigCodePoint )(code + 0x0030); + } + return code; +} + +static OnigCodePoint +get_upper_case(OnigCodePoint code) +{ + if (ONIGENC_IS_IN_RANGE(code, 0xa3e1, 0xa3fa)) { + /* Fullwidth Alphabet */ + return (OnigCodePoint )(code - 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0xa6c1, 0xa6d8)) { + /* Greek */ + return (OnigCodePoint )(code - 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0xa7d1, 0xa7f1)) { + /* Cyrillic */ + return (OnigCodePoint )(code - 0x0030); + } + return code; +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], OnigEncoding enc) +{ + int len; + OnigCodePoint code, code_lo, code_up; + + code = mbc_to_code(p, end, enc); + if (ONIGENC_IS_ASCII_CODE(code)) + return onigenc_ascii_get_case_fold_codes_by_str(flag, p, end, items, enc); + + len = mbc_enc_len(p, end, enc); + code_lo = get_lower_case(code); + code_up = get_upper_case(code); + + if (code != code_lo) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = code_lo; + return 1; + } + else if (code != code_up) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = code_up; + return 1; + } + + return 0; +} + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* lower, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { + *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; + } + else { + OnigCodePoint code; + int len; + + len = mbc_enc_len(p, end, enc); + code = get_lower_case(mbc_to_code(p, end, enc)); + len = code_to_mbc(code, lower, enc); + if (len == ONIGERR_INVALID_CODE_POINT_VALUE) len = 1; + (*pp) += len; + return len; /* return byte length of converted char to lower */ + } +} + +static UChar* +left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + /* In this encoding + mb-trail bytes doesn't mix with single bytes. + */ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + while (!eucjp_islead(*p) && p > start) p--; + len = mbc_enc_len(p, end, enc); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + if (c <= 0x7e || c == 0x8e || c == 0x8f) + return TRUE; + else + return FALSE; +} + + +static const OnigCodePoint CR_Hiragana[] = { + 1, +#ifdef ENC_EUC_JIS_2004 + 0xa4a1, 0xa4fb +#else + 0xa4a1, 0xa4f3 +#endif +}; /* CR_Hiragana */ + +#ifdef ENC_EUC_JIS_2004 +static const OnigCodePoint CR_Katakana[] = { + 5, + 0x8ea6, 0x8eaf, /* JIS X 0201 Katakana */ + 0x8eb1, 0x8edd, /* JIS X 0201 Katakana */ + 0xa5a1, 0xa5fe, + 0xa6ee, 0xa6fe, + 0xa7f2, 0xa7f5, +}; /* CR_Katakana */ +#else +static const OnigCodePoint CR_Katakana[] = { + 3, + 0x8ea6, 0x8eaf, /* JIS X 0201 Katakana */ + 0x8eb1, 0x8edd, /* JIS X 0201 Katakana */ + 0xa5a1, 0xa5f6, +}; /* CR_Katakana */ +#endif + +#ifdef ENC_EUC_JIS_2004 +static const OnigCodePoint CR_Han[] = { + /* EUC-JIS-2004 (JIS X 0213:2004) */ + 7, + /* plane 1 */ + 0xa1b8, 0xa1b8, + 0xaea1, 0xfefe, /* Kanji level 1, 2 and 3 */ + /* plane 2 */ + 0x8fa1a1, 0x8fa1fe, /* row 1 */ + 0x8fa3a1, 0x8fa5fe, /* row 3 .. 5 */ + 0x8fa8a1, 0x8fa8fe, /* row 8 */ + 0x8faca1, 0x8faffe, /* row 12 .. 15 */ + 0x8feea1, 0x8ffef6, /* row 78 .. 94 */ +}; /* CR_Han */ +#else +static const OnigCodePoint CR_Han[] = { + /* EUC-JP (JIS X 0208 based) */ + 4, + 0xa1b8, 0xa1b8, + 0xb0a1, 0xcfd3, /* Kanji level 1 */ + 0xd0a1, 0xf4a6, /* Kanji level 2 */ + 0x8fb0a1, 0x8fedf3 /* JIS X 0212 Supplemental Kanji (row 16 .. 77) */ +}; /* CR_Han */ +#endif + +static const OnigCodePoint CR_Latin[] = { + 4, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0xa3c1, 0xa3da, + 0xa3e1, 0xa3fa, + /* TODO: add raw 8 .. 11 to support EUC-JIS-2004 */ + /* TODO: add JIS X 0212 row 9 .. 11 */ +}; /* CR_Latin */ + +static const OnigCodePoint CR_Greek[] = { + 2, + 0xa6a1, 0xa6b8, +#ifdef ENC_EUC_JIS_2004 + 0xa6c1, 0xa6d9, +#else + 0xa6c1, 0xa6d8, + /* TODO: add JIS X 0212 row 6 */ +#endif +}; /* CR_Greek */ + +static const OnigCodePoint CR_Cyrillic[] = { + 2, + 0xa7a1, 0xa7c1, + 0xa7d1, 0xa7f1, + /* TODO: add JIS X 0212 row 7 */ +}; /* CR_Cyrillic */ + +#include "enc/jis/props.h" + +static int +property_name_to_ctype(OnigEncoding enc, const UChar* p, const UChar* end) +{ + const UChar *s = p, *e = end; + const struct enc_property *prop = + onig_jis_property((const char* )s, (unsigned int )(e - s)); + + if (!prop) { + return onigenc_minimum_property_name_to_ctype(enc, s, e); + } + + return (int )prop->ctype; +} + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (ctype <= ONIGENC_MAX_STD_CTYPE) { + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else { + if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { + return (code_to_mbclen(code, enc) > 1 ? TRUE : FALSE); + } + } + } + else { + ctype -= (ONIGENC_MAX_STD_CTYPE + 1); + if (ctype >= (unsigned int )PropertyListNum) + return ONIGERR_TYPE_BUG; + + return onig_is_in_code_range((UChar* )PropertyList[ctype], code); + } + + return FALSE; +} + +static int +get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, + const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED) +{ + if (ctype <= ONIGENC_MAX_STD_CTYPE) { + return ONIG_NO_SUPPORT_CONFIG; + } + else { + *sb_out = 0x80; + + ctype -= (ONIGENC_MAX_STD_CTYPE + 1); + if (ctype >= (OnigCtype )PropertyListNum) + return ONIGERR_TYPE_BUG; + + *ranges = PropertyList[ctype]; + return 0; + } +} + + +OnigEncodingDefine(euc_jp, EUC_JP) = { + mbc_enc_len, + "EUC-JP", /* name */ + 3, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + property_name_to_ctype, + is_code_ctype, + get_ctype_code_range, + left_adjust_char_head, + is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: EUC-JP + * MIBenum: 18 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html + * Link: http://home.m05.itscom.net/numa/uocjleE.pdf + */ +ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese Environment Version 1.1 */ + +/* + * Name: eucJP-ms + * Link: http://home.m05.itscom.net/numa/cde/ucs-conv/ucs-conv.html + * Link: http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/eucJP-ms.html + * Link: http://ja.wikipedia.org/wiki/EUC-JP + */ +ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */ +ENC_ALIAS("euc-jp-ms", "eucJP-ms") + +/* + * Name: CP51932 + * MIBenum: 2108 + * Link: http://www.iana.org/assignments/charset-reg/CP51932 + * Link: http://search.cpan.org/src/NARUSE/Encode-EUCJPMS-0.07/ucm/cp51932.ucm + * Link: http://legacy-encoding.sourceforge.jp/wiki/index.php?cp51932 + * Link: http://msyk.at.webry.info/200511/article_2.html + */ +ENC_REPLICATE("CP51932", "EUC-JP") + +/* + * Name: EUC-JIS-2004 + * Link: http://ja.wikipedia.org/wiki/EUC-JIS-2004 + */ +ENC_REPLICATE("EUC-JIS-2004", "EUC-JP") /* defined at JIS X 0213:2004 */ +ENC_ALIAS("EUC-JISX0213", "EUC-JIS-2004") /* defined at JIS X 0213:2000, and obsolete at JIS X 0213:2004 */ diff --git a/src/fluent-bit/lib/onigmo/enc/euc_kr.c b/src/fluent-bit/lib/onigmo/enc/euc_kr.c new file mode 100644 index 000000000..4079a0ece --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/euc_kr.c @@ -0,0 +1,228 @@ +/********************************************************************** + euc_kr.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_EUCKR[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + } +}; +#undef A +#undef F + +static int +euckr_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s = trans[0][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCKR[firstbyte]-1); + s = trans[s][*p++]; + RETURN(2); +#undef RETURN +} + +static OnigCodePoint +euckr_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_mbc_to_code(enc, p, end); +} + +static int +euckr_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb2_code_to_mbc(enc, code, buf); +} + +static int +euckr_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +#if 0 +static int +euckr_is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); +} +#endif + +static int +euckr_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb2_is_code_ctype(enc, code, ctype); +} + +#define euckr_islead(c) ((c) < 0xa1 || (c) == 0xff) + +static UChar* +euckr_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + /* Assumed in this encoding, + mb-trail bytes don't mix with single bytes. + */ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + while (!euckr_islead(*p) && p > start) p--; + len = enclen(enc, p, end); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +euckr_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + if (c <= 0x7e) return TRUE; + else return FALSE; +} + +OnigEncodingDefine(euc_kr, EUC_KR) = { + euckr_mbc_enc_len, + "EUC-KR", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + euckr_mbc_to_code, + onigenc_mb2_code_to_mbclen, + euckr_code_to_mbc, + euckr_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + euckr_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + euckr_left_adjust_char_head, + euckr_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("eucKR", "EUC-KR") + +#ifndef RUBY +/* Same with OnigEncodingEUC_KR except the name */ +OnigEncodingDefine(euc_cn, EUC_CN) = { + euckr_mbc_enc_len, + "EUC-CN", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + euckr_mbc_to_code, + onigenc_mb2_code_to_mbclen, + euckr_code_to_mbc, + euckr_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + euckr_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + euckr_left_adjust_char_head, + euckr_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +#endif /* RUBY */ diff --git a/src/fluent-bit/lib/onigmo/enc/euc_tw.c b/src/fluent-bit/lib/onigmo/enc/euc_tw.c new file mode 100644 index 000000000..722e29a9d --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/euc_tw.c @@ -0,0 +1,232 @@ +/********************************************************************** + euc_tw.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_EUCTW[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 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, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, 2, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* b */ 3, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S3 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + } +}; +#undef A +#undef F + +static int +euctw_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s = trans[0][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCTW[firstbyte]-1); + s = trans[s][*p++]; + if (s < 0) RETURN(2); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-2); + s = trans[s][*p++]; + if (s < 0) RETURN(3); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-3); + s = trans[s][*p++]; + RETURN(4); +#undef RETURN +} + +static OnigCodePoint +euctw_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_mbn_mbc_to_code(enc, p, end); +} + +static int +euctw_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb4_code_to_mbc(enc, code, buf); +} + +static int +euctw_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +static int +euctw_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb4_is_code_ctype(enc, code, ctype); +} + +#define euctw_islead(c) ((UChar )((c) - 0xa1) > 0xfe - 0xa1) + +static UChar* +euctw_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + /* Assumed in this encoding, + mb-trail bytes don't mix with single bytes. + */ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + while (!euctw_islead(*p) && p > start) p--; + len = enclen(enc, p, end); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +euctw_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + if (c <= 0x7e) return TRUE; + else return FALSE; +} + +OnigEncodingDefine(euc_tw, EUC_TW) = { + euctw_mbc_enc_len, + "EUC-TW", /* name */ + 4, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + euctw_mbc_to_code, + onigenc_mb4_code_to_mbclen, + euctw_code_to_mbc, + euctw_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + euctw_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + euctw_left_adjust_char_head, + euctw_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("eucTW", "EUC-TW") diff --git a/src/fluent-bit/lib/onigmo/enc/gb18030.c b/src/fluent-bit/lib/onigmo/enc/gb18030.c new file mode 100644 index 000000000..316737db1 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/gb18030.c @@ -0,0 +1,607 @@ +/********************************************************************** + gb18030.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2005-2007 KUBO Takehiro <kubo AT jiubao DOT org> + * K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#if 1 +#define DEBUG_GB18030(arg) +#else +#define DEBUG_GB18030(arg) printf arg +#endif + +enum { + C1, /* one-byte char */ + C2, /* one-byte or second of two-byte char */ + C4, /* one-byte or second or fourth of four-byte char */ + CM /* first of two- or four-byte char or second of two-byte char */ +}; + +static const char GB18030_MAP[] = { + C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, + C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, + C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, + C4, C4, C4, C4, C4, C4, C4, C4, C4, C4, C1, C1, C1, C1, C1, C1, + C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, + C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, + C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, + C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C1, + C2, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, + CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, C1 +}; + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, F, F, F, F, F, F, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F, + /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* 9 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* a */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* b */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* c */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* d */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* e */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* f */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, F + }, + { /* S3 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ A, A, A, A, A, A, A, A, A, A, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + } +}; +#undef A +#undef F + +static int +gb18030_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s = trans[0][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(2-1); + s = trans[s][*p++]; + if (s < 0) RETURN(2); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-2); + s = trans[s][*p++]; + if (s < 0) RETURN(3); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-3); + s = trans[s][*p++]; + RETURN(4); +#undef RETURN +} + +static OnigCodePoint +gb18030_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + int c, i, len; + OnigCodePoint n; + + len = enclen(enc, p, end); + n = (OnigCodePoint )(*p++); + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; +} + +static int +gb18030_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb4_code_to_mbc(enc, code, buf); +} + +static int +gb18030_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +#if 0 +static int +gb18030_is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); +} +#endif + +static int +gb18030_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb4_is_code_ctype(enc, code, ctype); +} + +enum state { + S_START, + S_one_C2, + S_one_C4, + S_one_CM, + + S_odd_CM_one_CX, + S_even_CM_one_CX, + + /* CMC4 : pair of "CM C4" */ + S_one_CMC4, + S_odd_CMC4, + S_one_C4_odd_CMC4, + S_even_CMC4, + S_one_C4_even_CMC4, + + S_odd_CM_odd_CMC4, + S_even_CM_odd_CMC4, + + S_odd_CM_even_CMC4, + S_even_CM_even_CMC4, + + /* C4CM : pair of "C4 CM" */ + S_odd_C4CM, + S_one_CM_odd_C4CM, + S_even_C4CM, + S_one_CM_even_C4CM, + + S_even_CM_odd_C4CM, + S_odd_CM_odd_C4CM, + S_even_CM_even_C4CM, + S_odd_CM_even_C4CM +}; + +static UChar* +gb18030_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + enum state state = S_START; + + DEBUG_GB18030(("----------------\n")); + for (p = s; p >= start; p--) { + DEBUG_GB18030(("state %d --(%02x)-->\n", state, *p)); + switch (state) { + case S_START: + switch (GB18030_MAP[*p]) { + case C1: + return (UChar *)s; + case C2: + state = S_one_C2; /* C2 */ + break; + case C4: + state = S_one_C4; /* C4 */ + break; + case CM: + state = S_one_CM; /* CM */ + break; + } + break; + case S_one_C2: /* C2 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)s; + case CM: + state = S_odd_CM_one_CX; /* CM C2 */ + break; + } + break; + case S_one_C4: /* C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)s; + case CM: + state = S_one_CMC4; + break; + } + break; + case S_one_CM: /* CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)s; + case C4: + state = S_odd_C4CM; + break; + case CM: + state = S_odd_CM_one_CX; /* CM CM */ + break; + } + break; + + case S_odd_CM_one_CX: /* CM C2 */ /* CM CM */ /* CM CM CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 1); + case CM: + state = S_even_CM_one_CX; + break; + } + break; + case S_even_CM_one_CX: /* CM CM C2 */ /* CM CM CM */ /* CM CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)s; + case CM: + state = S_odd_CM_one_CX; + break; + } + break; + + case S_one_CMC4: /* CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)(s - 1); + case C4: + state = S_one_C4_odd_CMC4; /* C4 CM C4 */ + break; + case CM: + state = S_even_CM_one_CX; /* CM CM C4 */ + break; + } + break; + case S_odd_CMC4: /* CM C4 CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)(s - 1); + case C4: + state = S_one_C4_odd_CMC4; + break; + case CM: + state = S_odd_CM_odd_CMC4; + break; + } + break; + case S_one_C4_odd_CMC4: /* C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 1); + case CM: + state = S_even_CMC4; /* CM C4 CM C4 */ + break; + } + break; + case S_even_CMC4: /* CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)(s - 3); + case C4: + state = S_one_C4_even_CMC4; + break; + case CM: + state = S_odd_CM_even_CMC4; + break; + } + break; + case S_one_C4_even_CMC4: /* C4 CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 3); + case CM: + state = S_odd_CMC4; + break; + } + break; + + case S_odd_CM_odd_CMC4: /* CM CM C4 CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 3); + case CM: + state = S_even_CM_odd_CMC4; + break; + } + break; + case S_even_CM_odd_CMC4: /* CM CM CM C4 CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 1); + case CM: + state = S_odd_CM_odd_CMC4; + break; + } + break; + + case S_odd_CM_even_CMC4: /* CM CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 1); + case CM: + state = S_even_CM_even_CMC4; + break; + } + break; + case S_even_CM_even_CMC4: /* CM CM CM C4 CM C4 */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 3); + case CM: + state = S_odd_CM_even_CMC4; + break; + } + break; + + case S_odd_C4CM: /* C4 CM */ /* C4 CM C4 CM C4 CM*/ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)s; + case CM: + state = S_one_CM_odd_C4CM; /* CM C4 CM */ + break; + } + break; + case S_one_CM_odd_C4CM: /* CM C4 CM */ /* CM C4 CM C4 CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)(s - 2); /* |CM C4 CM */ + case C4: + state = S_even_C4CM; + break; + case CM: + state = S_even_CM_odd_C4CM; + break; + } + break; + case S_even_C4CM: /* C4 CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 2); /* C4|CM C4 CM */ + case CM: + state = S_one_CM_even_C4CM; + break; + } + break; + case S_one_CM_even_C4CM: /* CM C4 CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + return (UChar *)(s - 0); /*|CM C4 CM C4|CM */ + case C4: + state = S_odd_C4CM; + break; + case CM: + state = S_even_CM_even_C4CM; + break; + } + break; + + case S_even_CM_odd_C4CM: /* CM CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 0); /* |CM CM|C4|CM */ + case CM: + state = S_odd_CM_odd_C4CM; + break; + } + break; + case S_odd_CM_odd_C4CM: /* CM CM CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 2); /* |CM CM|CM C4 CM */ + case CM: + state = S_even_CM_odd_C4CM; + break; + } + break; + + case S_even_CM_even_C4CM: /* CM CM C4 CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 2); /* |CM CM|C4|CM C4 CM */ + case CM: + state = S_odd_CM_even_C4CM; + break; + } + break; + case S_odd_CM_even_C4CM: /* CM CM CM C4 CM C4 CM */ + switch (GB18030_MAP[*p]) { + case C1: + case C2: + case C4: + return (UChar *)(s - 0); /* |CM CM|CM C4 CM C4|CM */ + case CM: + state = S_even_CM_even_C4CM; + break; + } + break; + } + } + + DEBUG_GB18030(("state %d\n", state)); + switch (state) { + case S_START: return (UChar *)(s - 0); + case S_one_C2: return (UChar *)(s - 0); + case S_one_C4: return (UChar *)(s - 0); + case S_one_CM: return (UChar *)(s - 0); + + case S_odd_CM_one_CX: return (UChar *)(s - 1); + case S_even_CM_one_CX: return (UChar *)(s - 0); + + case S_one_CMC4: return (UChar *)(s - 1); + case S_odd_CMC4: return (UChar *)(s - 1); + case S_one_C4_odd_CMC4: return (UChar *)(s - 1); + case S_even_CMC4: return (UChar *)(s - 3); + case S_one_C4_even_CMC4: return (UChar *)(s - 3); + + case S_odd_CM_odd_CMC4: return (UChar *)(s - 3); + case S_even_CM_odd_CMC4: return (UChar *)(s - 1); + + case S_odd_CM_even_CMC4: return (UChar *)(s - 1); + case S_even_CM_even_CMC4: return (UChar *)(s - 3); + + case S_odd_C4CM: return (UChar *)(s - 0); + case S_one_CM_odd_C4CM: return (UChar *)(s - 2); + case S_even_C4CM: return (UChar *)(s - 2); + case S_one_CM_even_C4CM: return (UChar *)(s - 0); + + case S_even_CM_odd_C4CM: return (UChar *)(s - 0); + case S_odd_CM_odd_C4CM: return (UChar *)(s - 2); + case S_even_CM_even_C4CM: return (UChar *)(s - 2); + case S_odd_CM_even_C4CM: return (UChar *)(s - 0); + } + + return (UChar* )s; /* never come here. (escape warning) */ +} + +static int +gb18030_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + return GB18030_MAP[*s] == C1 ? TRUE : FALSE; +} + +/* + * Name: GB18030 + * MIBenum: 114 + * Link: http://www.iana.org/assignments/charset-reg/GB18030 + */ +OnigEncodingDefine(gb18030, GB18030) = { + gb18030_mbc_enc_len, + "GB18030", /* name */ + 4, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + gb18030_mbc_to_code, + onigenc_mb4_code_to_mbclen, + gb18030_code_to_mbc, + gb18030_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + gb18030_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + gb18030_left_adjust_char_head, + gb18030_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; diff --git a/src/fluent-bit/lib/onigmo/enc/gb2312.c b/src/fluent-bit/lib/onigmo/enc/gb2312.c new file mode 100644 index 000000000..6fc15735f --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/gb2312.c @@ -0,0 +1,13 @@ +#include <ruby/ruby.h> +#include <ruby/encoding.h> +#include "regenc.h" + +void +Init_gb2312(void) +{ + rb_enc_register("GB2312", rb_enc_find("EUC-KR")); +} + +ENC_ALIAS("EUC-CN", "GB2312") +ENC_ALIAS("eucCN", "GB2312") +ENC_REPLICATE("GB12345", "GB2312") diff --git a/src/fluent-bit/lib/onigmo/enc/gbk.c b/src/fluent-bit/lib/onigmo/enc/gbk.c new file mode 100644 index 000000000..3df4e4b6d --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/gbk.c @@ -0,0 +1,229 @@ +/********************************************************************** + gbk.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_GBK[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 +}; + +static const char GBK_CAN_BE_TRAIL_TABLE[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 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, 0 +}; + +#define GBK_ISMB_FIRST(byte) (EncLen_GBK[byte] > 1) +#define GBK_ISMB_TRAIL(byte) GBK_CAN_BE_TRAIL_TABLE[(byte)] + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ A, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F, + /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F + } +}; +#undef A +#undef F + +static int +gbk_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s = trans[0][firstbyte]; +#define RETURN(n) \ + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \ + ONIGENC_CONSTRUCT_MBCLEN_INVALID() + if (s < 0) RETURN(1); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_GBK[firstbyte]-1); + s = trans[s][*p++]; + RETURN(2); +#undef RETURN +} + +static OnigCodePoint +gbk_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_mbc_to_code(enc, p, end); +} + +static int +gbk_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + return onigenc_mb2_code_to_mbc(enc, code, buf); +} + +static int +gbk_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end, + UChar* lower, OnigEncoding enc) +{ + return onigenc_mbn_mbc_case_fold(enc, flag, + pp, end, lower); +} + +#if 0 +static int +gbk_is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, OnigEncoding enc) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); +} +#endif + +static int +gbk_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + return onigenc_mb2_is_code_ctype(enc, code, ctype); +} + +static UChar* +gbk_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + if (GBK_ISMB_TRAIL(*p)) { + while (p > start) { + if (! GBK_ISMB_FIRST(*--p)) { + p++; + break; + } + } + } + len = enclen(enc, p, end); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +gbk_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + return (GBK_ISMB_TRAIL(c) ? FALSE : TRUE); +} + +OnigEncodingDefine(gbk, GBK) = { + gbk_mbc_enc_len, + "GBK", /* name */ + 2, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + gbk_mbc_to_code, + onigenc_mb2_code_to_mbclen, + gbk_code_to_mbc, + gbk_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + gbk_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + gbk_left_adjust_char_head, + gbk_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: GBK + * MIBenum: 113 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.iana.org/assignments/charset-reg/GBK + * Link: http://www.microsoft.com/globaldev/reference/dbcs/936.mspx + */ +ENC_ALIAS("CP936", "GBK") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859.h b/src/fluent-bit/lib/onigmo/enc/iso_8859.h new file mode 100644 index 000000000..0ec146866 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859.h @@ -0,0 +1 @@ +#define SHARP_s 0xdf diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_1.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_1.c new file mode 100644 index 000000000..78ea1fba6 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_1.c @@ -0,0 +1,328 @@ +/********************************************************************** + iso8859_1.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_IS_ISO_8859_1_CTYPE(code,ctype) \ + ((EncISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const unsigned short EncISO_8859_1_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + if (0x41 <= *p && *p <= 0x5a) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p + 0x20); + if (*p == 0x53 && end > p + 1 + && (*(p+1) == 0x53 || *(p+1) == 0x73)) { /* SS */ + items[1].byte_len = 2; + items[1].code_len = 1; + items[1].code[0] = (OnigCodePoint )SHARP_s; + return 2; + } + else + return 1; + } + else if (0x61 <= *p && *p <= 0x7a) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p - 0x20); + if (*p == 0x73 && end > p + 1 + && (*(p+1) == 0x73 || *(p+1) == 0x53)) { /* ss */ + items[1].byte_len = 2; + items[1].code_len = 1; + items[1].code[0] = (OnigCodePoint )SHARP_s; + return 2; + } + else + return 1; + } + else if (0xc0 <= *p && *p <= 0xcf) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p + 0x20); + return 1; + } + else if (0xd0 <= *p && *p <= 0xdf) { + if (*p == SHARP_s) { + items[0].byte_len = 1; + items[0].code_len = 2; + items[0].code[0] = (OnigCodePoint )'s'; + items[0].code[1] = (OnigCodePoint )'s'; + + items[1].byte_len = 1; + items[1].code_len = 2; + items[1].code[0] = (OnigCodePoint )'S'; + items[1].code[1] = (OnigCodePoint )'S'; + + items[2].byte_len = 1; + items[2].code_len = 2; + items[2].code[0] = (OnigCodePoint )'s'; + items[2].code[1] = (OnigCodePoint )'S'; + + items[3].byte_len = 1; + items[3].code_len = 2; + items[3].code[0] = (OnigCodePoint )'S'; + items[3].code[1] = (OnigCodePoint )'s'; + + return 4; + } + else if (*p != 0xd7) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p + 0x20); + return 1; + } + } + else if (0xe0 <= *p && *p <= 0xef) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p - 0x20); + return 1; + } + else if (0xf0 <= *p && *p <= 0xfe) { + if (*p != 0xf7) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p - 0x20); + return 1; + } + } + + return 0; +} + +static int +mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ONIGENC_ISO_8859_1_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_1_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf, 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (*p >= 0xaa && *p <= 0xba) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_1_CTYPE(code, ctype); + else + return FALSE; +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncISO_8859_1_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code += 0x20; + } + else if (code == 0xAA || code == 0xBA || code == 0xB5 || code == 0xFF) + ; + else if ((EncISO_8859_1_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_1, ISO_8859_1) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-1", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-1", "ISO-8859-1") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_10.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_10.c new file mode 100644 index 000000000..bf1c884cb --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_10.c @@ -0,0 +1,300 @@ +/********************************************************************** + iso8859_10.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_10_TO_LOWER_CASE(c) EncISO_8859_10_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_10_CTYPE(code,ctype) \ + ((EncISO_8859_10_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_10_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\261', '\262', '\263', '\264', '\265', '\266', '\247', + '\270', '\271', '\272', '\273', '\274', '\255', '\276', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_10_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2, + 0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_10_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_10_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_10_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xb1 }, + { 0xa2, 0xb2 }, + { 0xa3, 0xb3 }, + { 0xa4, 0xb4 }, + { 0xa5, 0xb5 }, + { 0xa6, 0xb6 }, + { 0xa8, 0xb8 }, + { 0xa9, 0xb9 }, + { 0xaa, 0xba }, + { 0xab, 0xbb }, + { 0xac, 0xbc }, + { 0xae, 0xbe }, + { 0xaf, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if (code == 0xBD || code == 0xFF) + ; + else if ((EncISO_8859_10_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_10_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_10_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code >= 0xA0 && code <= 0xBF) + code -= 0x10; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_10, ISO_8859_10) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-10", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-10", "ISO-8859-10") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_11.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_11.c new file mode 100644 index 000000000..b5d056828 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_11.c @@ -0,0 +1,118 @@ +/********************************************************************** + iso8859_11.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_IS_ISO_8859_11_CTYPE(code,ctype) \ + ((EncISO_8859_11_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const unsigned short EncISO_8859_11_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_11_CTYPE(code, ctype); + else + return FALSE; +} + +OnigEncodingDefine(iso_8859_11, ISO_8859_11) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-11", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-11", "ISO-8859-11") + +/* + * Name: TIS-620 + * MIBenum: 2259 + * Link: http://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533 + */ +ENC_REPLICATE("TIS-620", "ISO-8859-11") + +/* + * Name: Windows-874 + * Link: http://www.microsoft.com/globaldev/reference/sbcs/874.mspx + */ +ENC_REPLICATE("Windows-874", "ISO-8859-11") +ENC_ALIAS("CP874", "Windows-874") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_13.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_13.c new file mode 100644 index 000000000..8c6e758b8 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_13.c @@ -0,0 +1,295 @@ +/********************************************************************** + iso8859_13.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_13_TO_LOWER_CASE(c) EncISO_8859_13_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_13_CTYPE(code,ctype) \ + ((EncISO_8859_13_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_13_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\270', '\251', '\272', '\253', '\254', '\255', '\256', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_13_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x34a2, 0x00a0, 0x34a2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x34a2, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x00a0, 0x01a0, + 0x30e2, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_13_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_13_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf, 0xb5 are lower case letter, but can't convert. */ + if (*p == 0xb5) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_13_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa8, 0xb8 }, + { 0xaa, 0xba }, + { 0xaf, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncISO_8859_13_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_13_TO_LOWER_CASE(code); + } + else if (code == 0xB5) + ; + else if ((EncISO_8859_13_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xB8 || code == 0xBA || code == 0xBF) { + code -= 0x10; + } + else { + code -= 0x20; + } + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_13, ISO_8859_13) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-13", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-13", "ISO-8859-13") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_14.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_14.c new file mode 100644 index 000000000..21dffea76 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_14.c @@ -0,0 +1,311 @@ +/********************************************************************** + iso8859_14.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_14_TO_LOWER_CASE(c) EncISO_8859_14_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_14_CTYPE(code,ctype) \ + ((EncISO_8859_14_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_14_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\242', '\242', '\243', '\245', '\245', '\253', '\247', + '\270', '\251', '\272', '\253', '\274', '\255', '\256', '\377', + '\261', '\261', '\263', '\263', '\265', '\265', '\266', '\271', + '\270', '\271', '\272', '\277', '\274', '\276', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_14_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x30e2, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x00a0, + 0x34a2, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0, 0x00a0, 0x34a2, + 0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x00a0, 0x34a2, + 0x30e2, 0x30e2, 0x30e2, 0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_14_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_14_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_14_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xa2 }, + { 0xa4, 0xa5 }, + { 0xa6, 0xab }, + { 0xa8, 0xb8 }, + { 0xaa, 0xba }, + { 0xac, 0xbc }, + { 0xaf, 0xff }, + + { 0xb0, 0xb1 }, + { 0xb2, 0xb3 }, + { 0xb4, 0xb5 }, + { 0xb7, 0xb9 }, + { 0xbb, 0xbf }, + { 0xbd, 0xbe }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + /* else if (code == 0xAA || code == 0xBA) ; */ + else if ((EncISO_8859_14_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_14_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_14_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xA2 || code == 0xA5 || code == 0xB1 || code == 0xB3 || code == 0xB5 || code == 0xBE) + code -= 0x1; + else if (code == 0xAB) + code -= 0x5; + else if (code == 0xFF) + code -= 0x50; + else if (code == 0xB9) + code -= 0x2; + else if (code == 0xBF) + code -= 0x4; + else if (code == 0xB8 || code == 0xBA || code == 0xBC) + code -= 0x10; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_14, ISO_8859_14) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-14", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-14", "ISO-8859-14") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_15.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_15.c new file mode 100644 index 000000000..dd6c29a64 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_15.c @@ -0,0 +1,302 @@ +/********************************************************************** + iso8859_15.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_15_TO_LOWER_CASE(c) EncISO_8859_15_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_15_CTYPE(code,ctype) \ + ((EncISO_8859_15_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_15_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\250', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\270', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\275', '\275', '\377', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_15_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0, + 0x30e2, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x34a2, 0x30e2, 0x00a0, 0x01a0, + 0x30e2, 0x10a0, 0x30e2, 0x01a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_15_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_15_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf etc.. are lower case letter, but can't convert. */ + if (*p == 0xaa || *p == 0xb5 || *p == 0xba) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_15_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa6, 0xa8 }, + + { 0xb4, 0xb8 }, + { 0xbc, 0xbd }, + { 0xbe, 0xff }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if (code == 0xAA || code == 0xBA || code == 0xB5) + ; + else if ((EncISO_8859_15_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_15_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_15_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xA8) + code -= 2; + else if (code == 0xB8) + code -= 4; + else if (code == 0xBD) + code -= 1; + else if (code == 0xFF) + code -= 0x41; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_15, ISO_8859_15) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-15", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-15", "ISO-8859-15") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_16.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_16.c new file mode 100644 index 000000000..aa7ce99fb --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_16.c @@ -0,0 +1,306 @@ +/********************************************************************** + iso8859_16.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_16_TO_LOWER_CASE(c) EncISO_8859_16_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_16_CTYPE(code,ctype) \ + ((EncISO_8859_16_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_16_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\242', '\242', '\263', '\245', '\245', '\250', '\247', + '\250', '\251', '\272', '\253', '\256', '\255', '\256', '\277', + '\260', '\261', '\271', '\263', '\270', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\275', '\275', '\377', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_16_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x30e2, 0x34a2, 0x00a0, 0x01a0, 0x34a2, 0x00a0, + 0x30e2, 0x00a0, 0x34a2, 0x01a0, 0x34a2, 0x01a0, 0x30e2, 0x34a2, + 0x00a0, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0, 0x00a0, 0x01a0, + 0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x34a2, 0x30e2, 0x34a2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_16_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_16_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_16_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xa2 }, + { 0xa3, 0xb3 }, + { 0xa6, 0xa8 }, + { 0xaa, 0xba }, + { 0xac, 0xae }, + { 0xaf, 0xbf }, + + { 0xb2, 0xb9 }, + { 0xb4, 0xb8 }, + { 0xbc, 0xbd }, + { 0xbe, 0xff }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncISO_8859_16_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_16_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_16_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags&ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xA2 || code == 0xBD) + code--; + else if (code == 0xB3 || code == 0xBA || code == 0xBF) + code -= 0x10; + else if (code == 0xA8 || code == 0xAE) + code -= 0x02; + else if (code == 0xB9) + code -= 0x07; + else if (code == 0xB8) + code -= 0x04; + else if (code == 0xFF) + code -= 0x41; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_16, ISO_8859_16) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-16", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-16", "ISO-8859-16") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_2.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_2.c new file mode 100644 index 000000000..859073fd1 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_2.c @@ -0,0 +1,297 @@ +/********************************************************************** + iso8859_2.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_2_TO_LOWER_CASE(c) EncISO_8859_2_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_2_CTYPE(code,ctype) \ + ((EncISO_8859_2_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_2_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\261', '\242', '\263', '\244', '\265', '\266', '\247', + '\250', '\271', '\272', '\273', '\274', '\255', '\276', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_2_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x00a0, 0x34a2, 0x00a0, 0x34a2, 0x34a2, 0x00a0, + 0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2, + 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x30e2, 0x00a0, + 0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_2_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_2_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xb1 }, + { 0xa3, 0xb3 }, + { 0xa5, 0xb5 }, + { 0xa6, 0xb6 }, + { 0xa9, 0xb9 }, + { 0xaa, 0xba }, + { 0xab, 0xbb }, + { 0xac, 0xbc }, + { 0xae, 0xbe }, + { 0xaf, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_2_CTYPE(code, ctype); + else + return FALSE; +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncISO_8859_2_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_2_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_2_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + if (code >= 0xB1 && code <= 0xBF) { + flags |= ONIGENC_CASE_MODIFIED; + code -= 0x10; + } + else { + flags |= ONIGENC_CASE_MODIFIED; + code -= 0x20; + } + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_2, ISO_8859_2) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-2", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-2", "ISO-8859-2") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_3.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_3.c new file mode 100644 index 000000000..d8199d512 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_3.c @@ -0,0 +1,307 @@ +/********************************************************************** + iso8859_3.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_3_TO_LOWER_CASE(c) EncISO_8859_3_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_3_CTYPE(code,ctype) \ + ((EncISO_8859_3_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_3_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\261', '\242', '\243', '\244', '\245', '\266', '\247', + '\250', '\151', '\272', '\273', '\274', '\255', '\256', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\303', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\320', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_3_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x00a0, 0x00a0, 0x00a0, 0x0000, 0x34a2, 0x00a0, + 0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x0000, 0x34a2, + 0x00a0, 0x30e2, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x30e2, 0x01a0, + 0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x11a0, 0x0000, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x0000, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x0000, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_3_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_3_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (*p == 0xb5) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_3_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xb1 }, + { 0xa6, 0xb6 }, + /*{ 0xa9, 0xb9 }, exclude dotless i/I with dot; not a case pair */ + { 0xaa, 0xba }, + { 0xab, 0xbb }, + { 0xac, 0xbc }, + { 0xaf, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +#define DOTLESS_i (0xB9) +#define I_WITH_DOT_ABOVE (0xA9) +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if (code == 0xB5) + ; + else if ((EncISO_8859_3_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'I') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? DOTLESS_i : 'i'; + else + code = ENC_ISO_8859_3_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_3_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'i') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? I_WITH_DOT_ABOVE : 'I'; + else if (code == DOTLESS_i) + code = 'I'; + else if (code >= 0xB0 && code <= 0xBF) { + code -= 0x10; + } + else { + code -= 0x20; + } + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_3, ISO_8859_3) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-3", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-3", "ISO-8859-3") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_4.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_4.c new file mode 100644 index 000000000..5f01f0157 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_4.c @@ -0,0 +1,303 @@ +/********************************************************************** + iso8859_4.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_4_TO_LOWER_CASE(c) EncISO_8859_4_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_4_CTYPE(code,ctype) \ + ((EncISO_8859_4_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_4_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\261', '\242', '\263', '\244', '\265', '\266', '\247', + '\250', '\271', '\272', '\273', '\274', '\255', '\276', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\277', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_4_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x30e2, 0x34a2, 0x00a0, 0x34a2, 0x34a2, 0x00a0, + 0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x00a0, + 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x30e2, 0x00a0, + 0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x34a2, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_4_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_4_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + if (*p == 0xa2) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_4_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xb1 }, + { 0xa3, 0xb3 }, + { 0xa5, 0xb5 }, + { 0xa6, 0xb6 }, + { 0xa9, 0xb9 }, + { 0xaa, 0xba }, + { 0xab, 0xbb }, + { 0xac, 0xbc }, + { 0xae, 0xbe }, + { 0xbd, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncISO_8859_4_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_4_TO_LOWER_CASE(code); + } + else if (code == 0xA2) + ; + else if ((EncISO_8859_4_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code >= 0xA0 && code <= 0xBF) { + if (code == 0xBF) + code -= 0x02; + else + code -= 0x10; + } + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_4, ISO_8859_4) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-4", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-4", "ISO-8859-4") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_5.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_5.c new file mode 100644 index 000000000..8223fc0ec --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_5.c @@ -0,0 +1,271 @@ +/********************************************************************** + iso8859_5.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_ISO_8859_5_TO_LOWER_CASE(c) EncISO_8859_5_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_5_CTYPE(code,ctype) \ + ((EncISO_8859_5_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_5_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\255', '\376', '\377', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_5_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_ISO_8859_5_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + (*pp)++; + v = (EncISO_8859_5_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_5_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa1, 0xf1 }, + { 0xa2, 0xf2 }, + { 0xa3, 0xf3 }, + { 0xa4, 0xf4 }, + { 0xa5, 0xf5 }, + { 0xa6, 0xf6 }, + { 0xa7, 0xf7 }, + { 0xa8, 0xf8 }, + { 0xa9, 0xf9 }, + { 0xaa, 0xfa }, + { 0xab, 0xfb }, + { 0xac, 0xfc }, + { 0xae, 0xfe }, + { 0xaf, 0xff }, + + { 0xb0, 0xd0 }, + { 0xb1, 0xd1 }, + { 0xb2, 0xd2 }, + { 0xb3, 0xd3 }, + { 0xb4, 0xd4 }, + { 0xb5, 0xd5 }, + { 0xb6, 0xd6 }, + { 0xb7, 0xd7 }, + { 0xb8, 0xd8 }, + { 0xb9, 0xd9 }, + { 0xba, 0xda }, + { 0xbb, 0xdb }, + { 0xbc, 0xdc }, + { 0xbd, 0xdd }, + { 0xbe, 0xde }, + { 0xbf, 0xdf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if ((EncISO_8859_5_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_5_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_5_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (0xF1 <= code && code <= 0xFF) + code -= 0x50; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_5, ISO_8859_5) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-5", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-5", "ISO-8859-5") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_6.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_6.c new file mode 100644 index 000000000..10a1c357c --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_6.c @@ -0,0 +1,114 @@ +/********************************************************************** + iso8859_6.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_IS_ISO_8859_6_CTYPE(code,ctype) \ + ((EncISO_8859_6_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const unsigned short EncISO_8859_6_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x0000, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x01a0, 0x01a0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x01a0, 0x0000, 0x0000, 0x0000, 0x01a0, + 0x0000, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_6_CTYPE(code, ctype); + else + return FALSE; +} + +OnigEncodingDefine(iso_8859_6, ISO_8859_6) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-6", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-6", "ISO-8859-6") + +/* + * Name: windows-1256 + * MIBenum: 2256 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1256.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1256 + */ +ENC_REPLICATE("Windows-1256", "ISO-8859-6") +ENC_ALIAS("CP1256", "Windows-1256") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_7.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_7.c new file mode 100644 index 000000000..e84f5c346 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_7.c @@ -0,0 +1,290 @@ +/********************************************************************** + iso8859_7.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_ISO_8859_7_TO_LOWER_CASE(c) EncISO_8859_7_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_7_CTYPE(code,ctype) \ + ((EncISO_8859_7_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_7_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\334', '\267', + '\335', '\336', '\337', '\273', '\374', '\275', '\375', '\376', + '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\322', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_7_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x01a0, 0x00a0, 0x0000, 0x0000, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x0000, 0x01a0, 0x00a0, 0x01a0, 0x0000, 0x01a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x00a0, 0x34a2, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x10a0, 0x34a2, 0x34a2, + 0x30e2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x0000 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_ISO_8859_7_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + (*pp)++; + v = (EncISO_8859_7_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + if (*p == 0xc0 || *p == 0xe0) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_7_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xb6, 0xdc }, + { 0xb8, 0xdd }, + { 0xb9, 0xde }, + { 0xba, 0xdf }, + { 0xbc, 0xfc }, + { 0xbe, 0xfd }, + { 0xbf, 0xfe }, + + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == 0xF2) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xD3; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xF3; + } + } + else if ((EncISO_8859_7_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_ISO_8859_7_TO_LOWER_CASE(code); + } + else if (code == 0xC0 || code == 0xE0) + ; + else if ((EncISO_8859_7_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xDC) { + code -= 0x26; + } + else if (code >= 0xDD && code <= 0xDF) { + code -= 0x25; + } + else if (code == 0xFC) { + code -= 0x40; + } + else if (code == 0xFD || code == 0xFE) { + code -= 0x3F; + } + else { + code -= 0x20; + } + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_7, ISO_8859_7) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-7", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-7", "ISO-8859-7") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_8.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_8.c new file mode 100644 index 000000000..4cd6f31be --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_8.c @@ -0,0 +1,114 @@ +/********************************************************************** + iso8859_8.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_IS_ISO_8859_8_CTYPE(code,ctype) \ + ((EncISO_8859_8_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const unsigned short EncISO_8859_8_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x0000, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x00a0, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, + 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_8_CTYPE(code, ctype); + else + return FALSE; +} + +OnigEncodingDefine(iso_8859_8, ISO_8859_8) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-8", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-8", "ISO-8859-8") + +/* + * Name: windows-1255 + * MIBenum: 2255 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1255.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1255 + */ +ENC_REPLICATE("Windows-1255", "ISO-8859-8") +ENC_ALIAS("CP1255", "Windows-1255") diff --git a/src/fluent-bit/lib/onigmo/enc/iso_8859_9.c b/src/fluent-bit/lib/onigmo/enc/iso_8859_9.c new file mode 100644 index 000000000..f15953963 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/iso_8859_9.c @@ -0,0 +1,296 @@ +/********************************************************************** + iso8859_9.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_ISO_8859_9_TO_LOWER_CASE(c) EncISO_8859_9_ToLowerCaseTable[c] +#define ENC_IS_ISO_8859_9_CTYPE(code,ctype) \ + ((EncISO_8859_9_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncISO_8859_9_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\151', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncISO_8859_9_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_ISO_8859_9_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncISO_8859_9_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf etc.. are lower case letter, but can't convert. */ + if (*p >= 0xaa && *p <= 0xba) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_ISO_8859_9_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + /*{ 0xdd, 0xfd }, exclude dotless i/I with dot; not a case pair */ + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +#define DOTLESS_i (0xFD) +#define I_WITH_DOT_ABOVE (0xDD) +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if (code == 0xAA || code == 0xB5 || code == 0xBA || code == 0xFF) + ; + else if ((EncISO_8859_9_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'I') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? DOTLESS_i : 'i'; + else + code = ENC_ISO_8859_9_TO_LOWER_CASE(code); + } + else if ((EncISO_8859_9_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'i') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? I_WITH_DOT_ABOVE : 'I'; + else if (code == DOTLESS_i) + code = 'I'; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(iso_8859_9, ISO_8859_9) = { + onigenc_single_byte_mbc_enc_len, + "ISO-8859-9", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ISO8859-9", "ISO-8859-9") diff --git a/src/fluent-bit/lib/onigmo/enc/jis/props.h b/src/fluent-bit/lib/onigmo/enc/jis/props.h new file mode 100644 index 000000000..207443765 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/jis/props.h @@ -0,0 +1,216 @@ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -k1,3 -7 -c -j1 -i1 -t -C -P -t --ignore-case -H onig_jis_property_hash -Q onig_jis_property_pool -N onig_jis_property enc/jis/props.kwd */ + +#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-gperf@gnu.org>." +#endif + +#line 1 "enc/jis/props.kwd" +/* -*- c -*- */ +#define GPERF_DOWNCASE 1 +#define GPERF_CASE_STRNCMP 1 + +static inline int +gperf_case_strncmp(const char *s1, const char *s2, unsigned int n) +{ + const UChar *str = (const UChar *)s1; + const UChar *s = (const UChar *)s2; + return onigenc_with_ascii_strnicmp(ONIG_ENCODING_ASCII, str, str + n, s, n); +} + +enum onigenc_jis_ctype { + onigenc_jis_min = ONIGENC_MAX_STD_CTYPE, + onigenc_jis_hiragana, + onigenc_jis_katakana, + onigenc_jis_han, + onigenc_jis_latin, + onigenc_jis_greek, + onigenc_jis_cyrillic, + onigenc_jis_max +}; + +enum {PropertyListNum = onigenc_jis_max - onigenc_jis_min - 1}; + +static const OnigCodePoint* const PropertyList[PropertyListNum] = { + CR_Hiragana, + CR_Katakana, + CR_Han, + CR_Latin, + CR_Greek, + CR_Cyrillic, +}; + +struct enc_property { + signed char name; + unsigned char ctype; +}; + +static const struct enc_property *onig_jis_property(const char *str, size_t len); +#line 43 "enc/jis/props.kwd" +struct enc_property; + +#define TOTAL_KEYWORDS 6 +#define MIN_WORD_LENGTH 3 +#define MAX_WORD_LENGTH 8 +#define MIN_HASH_VALUE 5 +#define MAX_HASH_VALUE 12 +/* maximum key range = 8, duplicates = 0 */ + +#ifndef GPERF_DOWNCASE +#define GPERF_DOWNCASE 1 +static unsigned char gperf_downcase[256] = + { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255 + }; +#endif + +#ifndef GPERF_CASE_STRNCMP +#define GPERF_CASE_STRNCMP 1 +static int +gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n) +{ + for (; n > 0;) + { + unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; + unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; + if (c1 != 0 && c1 == c2) + { + n--; + continue; + } + return (int)c1 - (int)c2; + } + return 0; +} +#endif + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +onig_jis_property_hash (register const char *str, register size_t len) +{ + static const unsigned char asso_values[] = + { + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 3, 13, 2, + 13, 1, 1, 13, 13, 2, 1, 13, 1, 13, + 13, 13, 1, 13, 1, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 3, + 13, 2, 13, 1, 1, 13, 13, 2, 1, 13, + 1, 13, 13, 13, 1, 13, 1, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13 + }; + return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]]; +} + +struct onig_jis_property_pool_t + { + char onig_jis_property_pool_str5[sizeof("han")]; + char onig_jis_property_pool_str7[sizeof("latin")]; + char onig_jis_property_pool_str8[sizeof("greek")]; + char onig_jis_property_pool_str10[sizeof("hiragana")]; + char onig_jis_property_pool_str11[sizeof("katakana")]; + char onig_jis_property_pool_str12[sizeof("cyrillic")]; + }; +static const struct onig_jis_property_pool_t onig_jis_property_pool_contents = + { + "han", + "latin", + "greek", + "hiragana", + "katakana", + "cyrillic" + }; +#define onig_jis_property_pool ((const char *) &onig_jis_property_pool_contents) +const struct enc_property * +onig_jis_property (register const char *str, register size_t len) +{ + static const struct enc_property wordlist[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 48 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str5), onigenc_jis_han}, + {-1}, +#line 49 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str7), onigenc_jis_latin}, +#line 50 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str8), onigenc_jis_greek}, + {-1}, +#line 46 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str10), onigenc_jis_hiragana}, +#line 47 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str11), onigenc_jis_katakana}, +#line 51 "enc/jis/props.kwd" + {(char)offsetof(struct onig_jis_property_pool_t, onig_jis_property_pool_str12), onigenc_jis_cyrillic} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register unsigned int key = onig_jis_property_hash (str, len); + + if (key <= MAX_HASH_VALUE) + { + register int o = wordlist[key].name; + if (o >= 0) + { + register const char *s = o + onig_jis_property_pool; + + if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') + return &wordlist[key]; + } + } + } + return 0; +} +#line 52 "enc/jis/props.kwd" + diff --git a/src/fluent-bit/lib/onigmo/enc/jis/props.kwd b/src/fluent-bit/lib/onigmo/enc/jis/props.kwd new file mode 100644 index 000000000..f3235c010 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/jis/props.kwd @@ -0,0 +1,52 @@ +%{/* -*- c -*- */ +#define GPERF_DOWNCASE 1 +#define GPERF_CASE_STRNCMP 1 + +static inline int +gperf_case_strncmp(const char *s1, const char *s2, unsigned int n) +{ + const UChar *str = (const UChar *)s1; + const UChar *s = (const UChar *)s2; + return onigenc_with_ascii_strnicmp(ONIG_ENCODING_ASCII, str, str + n, s, n); +} + +enum onigenc_jis_ctype { + onigenc_jis_min = ONIGENC_MAX_STD_CTYPE, + onigenc_jis_hiragana, + onigenc_jis_katakana, + onigenc_jis_han, + onigenc_jis_latin, + onigenc_jis_greek, + onigenc_jis_cyrillic, + onigenc_jis_max +}; + +enum {PropertyListNum = onigenc_jis_max - onigenc_jis_min - 1}; + +static const OnigCodePoint* const PropertyList[PropertyListNum] = { + CR_Hiragana, + CR_Katakana, + CR_Han, + CR_Latin, + CR_Greek, + CR_Cyrillic, +}; + +struct enc_property { + signed char name; + unsigned char ctype; +}; + +static const struct enc_property *onig_jis_property(const char *str, unsigned int len); +%} + +struct enc_property; + +%% +hiragana, onigenc_jis_hiragana +katakana, onigenc_jis_katakana +han, onigenc_jis_han +latin, onigenc_jis_latin +greek, onigenc_jis_greek +cyrillic, onigenc_jis_cyrillic +%% diff --git a/src/fluent-bit/lib/onigmo/enc/koi8_r.c b/src/fluent-bit/lib/onigmo/enc/koi8_r.c new file mode 100644 index 000000000..39f248246 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/koi8_r.c @@ -0,0 +1,225 @@ +/********************************************************************** + koi8_r.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_KOI8_R_TO_LOWER_CASE(c) EncKOI8_R_ToLowerCaseTable[c] +#define ENC_IS_KOI8_R_CTYPE(code,ctype) \ + ((EncKOI8_R_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncKOI8_R_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\243', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337' +}; + +static const unsigned short EncKOI8_R_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x0284, 0x00a0, 0x00a0, 0x10a0, 0x01a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2 +}; + +static int +koi8_r_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_KOI8_R_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +koi8_r_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, + const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + int v; + const UChar* p = *pp; + + (*pp)++; + v = (EncKOI8_R_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +koi8_r_is_code_ctype(OnigCodePoint code, unsigned int ctype, + OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_KOI8_R_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa3, 0xb3 }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe }, + { 0xdf, 0xff } +}; + +static int +koi8_r_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, + void* arg, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +koi8_r_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +OnigEncodingDefine(koi8_r, KOI8_R) = { + onigenc_single_byte_mbc_enc_len, + "KOI8-R", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + koi8_r_mbc_case_fold, + koi8_r_apply_all_case_fold, + koi8_r_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + koi8_r_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("CP878", "KOI8-R") diff --git a/src/fluent-bit/lib/onigmo/enc/koi8_u.c b/src/fluent-bit/lib/onigmo/enc/koi8_u.c new file mode 100644 index 000000000..8cd890dd1 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/koi8_u.c @@ -0,0 +1,228 @@ +/********************************************************************** + koi8_u.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_KOI8_U_TO_LOWER_CASE(c) EncKOI8_U_ToLowerCaseTable[c] +#define ENC_IS_KOI8_U_CTYPE(code,ctype) \ + ((EncKOI8_U_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncKOI8_U_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\243', '\244', '\265', '\246', '\247', + '\270', '\271', '\272', '\273', '\274', '\255', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337' +}; + +static const unsigned short EncKOI8_U_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x0284, 0x00a0, 0x00a0, 0x10a0, 0x01a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x34a2, 0x00a0, 0x34a2, 0x34a2, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2 +}; + +static int +koi8_u_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_KOI8_U_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +koi8_u_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, + const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + int v; + const UChar* p = *pp; + + (*pp)++; + v = (EncKOI8_U_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +koi8_u_is_code_ctype(OnigCodePoint code, unsigned int ctype, + OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_KOI8_U_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa3, 0xb3 }, + { 0xa4, 0xb4 }, + { 0xa6, 0xb6 }, + { 0xa7, 0xb7 }, + { 0xad, 0xbd }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe }, + { 0xdf, 0xff } +}; + +static int +koi8_u_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, + void* arg, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +koi8_u_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +OnigEncodingDefine(koi8_u, KOI8_U) = { + onigenc_single_byte_mbc_enc_len, + "KOI8-U", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + koi8_u_mbc_case_fold, + koi8_u_apply_all_case_fold, + koi8_u_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + koi8_u_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; diff --git a/src/fluent-bit/lib/onigmo/enc/mktable.c b/src/fluent-bit/lib/onigmo/enc/mktable.c new file mode 100644 index 000000000..4edd5a0ff --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/mktable.c @@ -0,0 +1,1184 @@ +/********************************************************************** + mktable.c +**********************************************************************/ +/*- + * Copyright (c) 2002-2016 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <stdlib.h> +#include <stdio.h> +#include <locale.h> + +#ifndef __USE_ISOC99 +#define __USE_ISOC99 +#endif + +#include <ctype.h> + +#include "regenc.h" + +#define ASCII 0 +#define UNICODE_ISO_8859_1 1 +#define ISO_8859_1 2 +#define ISO_8859_2 3 +#define ISO_8859_3 4 +#define ISO_8859_4 5 +#define ISO_8859_5 6 +#define ISO_8859_6 7 +#define ISO_8859_7 8 +#define ISO_8859_8 9 +#define ISO_8859_9 10 +#define ISO_8859_10 11 +#define ISO_8859_11 12 +#define ISO_8859_13 13 +#define ISO_8859_14 14 +#define ISO_8859_15 15 +#define ISO_8859_16 16 +#define KOI8 17 +#define KOI8_R 18 + +typedef struct { + int num; + const char* name; +} ENC_INFO; + +static ENC_INFO Info[] = { + { ASCII, "ASCII" }, + { UNICODE_ISO_8859_1, "UNICODE_ISO_8859_1" }, + { ISO_8859_1, "ISO_8859_1" }, + { ISO_8859_2, "ISO_8859_2" }, + { ISO_8859_3, "ISO_8859_3" }, + { ISO_8859_4, "ISO_8859_4" }, + { ISO_8859_5, "ISO_8859_5" }, + { ISO_8859_6, "ISO_8859_6" }, + { ISO_8859_7, "ISO_8859_7" }, + { ISO_8859_8, "ISO_8859_8" }, + { ISO_8859_9, "ISO_8859_9" }, + { ISO_8859_10, "ISO_8859_10" }, + { ISO_8859_11, "ISO_8859_11" }, + { ISO_8859_13, "ISO_8859_13" }, + { ISO_8859_14, "ISO_8859_14" }, + { ISO_8859_15, "ISO_8859_15" }, + { ISO_8859_16, "ISO_8859_16" }, + { KOI8, "KOI8" }, + { KOI8_R, "KOI8_R" } +}; + + +static int IsAlpha(int enc, int c) +{ + if (enc == ASCII) + return isalpha(c); + + if (c >= 0x41 && c <= 0x5a) return 1; + if (c >= 0x61 && c <= 0x7a) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_9: + if (c == 0xaa) return 1; + if (c == 0xb5) return 1; + if (c == 0xba) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + break; + + case ISO_8859_2: + if (c == 0xa1 || c == 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c >= 0xae && c <= 0xaf) return 1; + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_3: + if (c == 0xa1) return 1; + if (c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xaf) return 1; + if (c == 0xb1) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c == 0xbf) return 1; + if (c >= 0xc0 && c <= 0xc2) return 1; + if (c >= 0xc4 && c <= 0xcf) return 1; + if (c >= 0xd1 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xe2) return 1; + if (c >= 0xe4 && c <= 0xef) return 1; + if (c >= 0xf1 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_4: + if (c >= 0xa1 && c <= 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xae) return 1; + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_5: + if (c >= 0xa1 && c <= 0xcf && c != 0xad) return 1; + if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd) return 1; + break; + + case ISO_8859_6: + if (c >= 0xc1 && c <= 0xda) return 1; + if (c >= 0xe0 && c <= 0xf2) return 1; + break; + + case ISO_8859_7: + if (c == 0xb6) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c == 0xc0) return 1; + if (c >= 0xc1 && c <= 0xdb && c != 0xd2) return 1; + if (c >= 0xdc && c <= 0xfe) return 1; + break; + + case ISO_8859_8: + if (c == 0xb5) return 1; + if (c >= 0xe0 && c <= 0xfa) return 1; + break; + + case ISO_8859_10: + if (c >= 0xa1 && c <= 0xa6) return 1; + if (c >= 0xa8 && c <= 0xac) return 1; + if (c == 0xae || c == 0xaf) return 1; + if (c >= 0xb1 && c <= 0xb6) return 1; + if (c >= 0xb8 && c <= 0xbc) return 1; + if (c >= 0xbe && c <= 0xff) return 1; + break; + + case ISO_8859_11: + if (c >= 0xa1 && c <= 0xda) return 1; + if (c >= 0xdf && c <= 0xfb) return 1; + break; + + case ISO_8859_13: + if (c == 0xa8) return 1; + if (c == 0xaa) return 1; + if (c == 0xaf) return 1; + if (c == 0xb5) return 1; + if (c == 0xb8) return 1; + if (c == 0xba) return 1; + if (c >= 0xbf && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_14: + if (c == 0xa1 || c == 0xa2) return 1; + if (c == 0xa4 || c == 0xa5) return 1; + if (c == 0xa6 || c == 0xa8) return 1; + if (c >= 0xaa && c <= 0xac) return 1; + if (c >= 0xaf && c <= 0xb5) return 1; + if (c >= 0xb7 && c <= 0xff) return 1; + break; + + case ISO_8859_15: + if (c == 0xaa) return 1; + if (c == 0xb5) return 1; + if (c == 0xba) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + if (c == 0xa6) return 1; + if (c == 0xa8) return 1; + if (c == 0xb4) return 1; + if (c == 0xb8) return 1; + if (c == 0xbc) return 1; + if (c == 0xbd) return 1; + if (c == 0xbe) return 1; + break; + + case ISO_8859_16: + if (c == 0xa1) return 1; + if (c == 0xa2) return 1; + if (c == 0xa3) return 1; + if (c == 0xa6) return 1; + if (c == 0xa8) return 1; + if (c == 0xaa) return 1; + if (c == 0xac) return 1; + if (c == 0xae) return 1; + if (c == 0xaf) return 1; + if (c == 0xb2) return 1; + if (c == 0xb3) return 1; + if (c == 0xb4) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbc) return 1; + if (c == 0xbd) return 1; + if (c == 0xbe) return 1; + if (c == 0xbf) return 1; + if (c >= 0xc0 && c <= 0xde) return 1; + if (c >= 0xdf && c <= 0xff) return 1; + break; + + case KOI8_R: + if (c == 0xa3 || c == 0xb3) return 1; + /* fall */ + case KOI8: + if (c >= 0xc0 && c <= 0xff) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsBlank(int enc, int c) +{ + if (enc == ASCII) + return isblank(c); + + if (c == 0x09 || c == 0x20) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_2: + case ISO_8859_3: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_6: + case ISO_8859_7: + case ISO_8859_8: + case ISO_8859_9: + case ISO_8859_10: + case ISO_8859_11: + case ISO_8859_13: + case ISO_8859_14: + case ISO_8859_15: + case ISO_8859_16: + case KOI8: + if (c == 0xa0) return 1; + break; + + case KOI8_R: + if (c == 0x9a) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsCntrl(int enc, int c) +{ + if (enc == ASCII) + return iscntrl(c); + + if (c >= 0x00 && c <= 0x1F) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + if (c == 0xad) return 1; + /* fall */ + case ISO_8859_1: + case ISO_8859_2: + case ISO_8859_3: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_6: + case ISO_8859_7: + case ISO_8859_8: + case ISO_8859_9: + case ISO_8859_10: + case ISO_8859_11: + case ISO_8859_13: + case ISO_8859_14: + case ISO_8859_15: + case ISO_8859_16: + case KOI8: + if (c >= 0x7f && c <= 0x9F) return 1; + break; + + + case KOI8_R: + if (c == 0x7f) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsDigit(int enc ARG_UNUSED, int c) +{ + if (c >= 0x30 && c <= 0x39) return 1; + return 0; +} + +static int IsGraph(int enc, int c) +{ + if (enc == ASCII) + return isgraph(c); + + if (c >= 0x21 && c <= 0x7e) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_2: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_9: + case ISO_8859_10: + case ISO_8859_13: + case ISO_8859_14: + case ISO_8859_15: + case ISO_8859_16: + if (c >= 0xa1 && c <= 0xff) return 1; + break; + + case ISO_8859_3: + if (c >= 0xa1) { + if (c == 0xa5 || c == 0xae || c == 0xbe || c == 0xc3 || c == 0xd0 || + c == 0xe3 || c == 0xf0) + return 0; + else + return 1; + } + break; + + case ISO_8859_6: + if (c == 0xa4 || c == 0xac || c == 0xad || c == 0xbb || c == 0xbf) + return 1; + if (c >= 0xc1 && c <= 0xda) return 1; + if (c >= 0xe0 && c <= 0xf2) return 1; + break; + + case ISO_8859_7: + if (c >= 0xa1 && c <= 0xfe && + c != 0xa4 && c != 0xa5 && c != 0xaa && + c != 0xae && c != 0xd2) return 1; + break; + + case ISO_8859_8: + if (c >= 0xa2 && c <= 0xfa) { + if (c >= 0xbf && c <= 0xde) return 0; + return 1; + } + break; + + case ISO_8859_11: + if (c >= 0xa1 && c <= 0xda) return 1; + if (c >= 0xdf && c <= 0xfb) return 1; + break; + + case KOI8: + if (c >= 0xc0 && c <= 0xff) return 1; + break; + + case KOI8_R: + if (c >= 0x80 && c <= 0xff && c != 0x9a) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsLower(int enc, int c) +{ + if (enc == ASCII) + return islower(c); + + if (c >= 0x61 && c <= 0x7a) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_9: + if (c == 0xaa) return 1; + if (c == 0xb5) return 1; + if (c == 0xba) return 1; + if (c >= 0xdf && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + break; + + case ISO_8859_2: + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c >= 0xdf && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_3: + if (c == 0xb1) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c == 0xbf) return 1; + if (c == 0xdf) return 1; + if (c >= 0xe0 && c <= 0xe2) return 1; + if (c >= 0xe4 && c <= 0xef) return 1; + if (c >= 0xf1 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_4: + if (c == 0xa2) return 1; + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c == 0xdf) return 1; + if (c >= 0xe0 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_5: + if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd) return 1; + break; + + case ISO_8859_6: + break; + + case ISO_8859_7: + if (c == 0xc0) return 1; + if (c >= 0xdc && c <= 0xfe) return 1; + break; + + case ISO_8859_8: + if (c == 0xb5) return 1; + break; + + case ISO_8859_10: + if (c >= 0xb1 && c <= 0xb6) return 1; + if (c >= 0xb8 && c <= 0xbc) return 1; + if (c == 0xbe || c == 0xbf) return 1; + if (c >= 0xdf && c <= 0xff) return 1; + break; + + case ISO_8859_11: + break; + + case ISO_8859_13: + if (c == 0xb5) return 1; + if (c == 0xb8) return 1; + if (c == 0xba) return 1; + if (c == 0xbf) return 1; + if (c >= 0xdf && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_14: + if (c == 0xa2) return 1; + if (c == 0xa5) return 1; + if (c == 0xab) return 1; + if (c == 0xb1 || c == 0xb3 || c == 0xb5) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbc) return 1; + if (c == 0xbe || c == 0xbf) return 1; + if (c >= 0xdf && c <= 0xff) return 1; + break; + + case ISO_8859_15: + if (c == 0xaa) return 1; + if (c == 0xb5) return 1; + if (c == 0xba) return 1; + if (c >= 0xdf && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + if (c == 0xa8) return 1; + if (c == 0xb8) return 1; + if (c == 0xbd) return 1; + break; + + case ISO_8859_16: + if (c == 0xa2) return 1; + if (c == 0xa8) return 1; + if (c == 0xae) return 1; + if (c == 0xb3) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbd) return 1; + if (c == 0xbf) return 1; + if (c >= 0xdf && c <= 0xff) return 1; + break; + + case KOI8_R: + if (c == 0xa3) return 1; + /* fall */ + case KOI8: + if (c >= 0xc0 && c <= 0xdf) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsPrint(int enc, int c) +{ + if (enc == ASCII) + return isprint(c); + + if (c >= 0x20 && c <= 0x7e) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + /* if (c >= 0x09 && c <= 0x0d) return 1; */ + if (c == 0x85) return 1; + /* fall */ + case ISO_8859_1: + case ISO_8859_2: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_9: + case ISO_8859_10: + case ISO_8859_13: + case ISO_8859_14: + case ISO_8859_15: + case ISO_8859_16: + if (c >= 0xa0 && c <= 0xff) return 1; + break; + + case ISO_8859_3: + if (c >= 0xa0) { + if (c == 0xa5 || c == 0xae || c == 0xbe || c == 0xc3 || c == 0xd0 || + c == 0xe3 || c == 0xf0) + return 0; + else + return 1; + } + break; + + case ISO_8859_6: + if (c == 0xa0) return 1; + if (c == 0xa4 || c == 0xac || c == 0xad || c == 0xbb || c == 0xbf) + return 1; + if (c >= 0xc1 && c <= 0xda) return 1; + if (c >= 0xe0 && c <= 0xf2) return 1; + break; + + case ISO_8859_7: + if (c >= 0xa0 && c <= 0xfe && + c != 0xa4 && c != 0xa5 && c != 0xaa && + c != 0xae && c != 0xd2) return 1; + break; + + case ISO_8859_8: + if (c >= 0xa0 && c <= 0xfa) { + if (c >= 0xbf && c <= 0xde) return 0; + if (c == 0xa1) return 0; + return 1; + } + break; + + case ISO_8859_11: + if (c >= 0xa0 && c <= 0xda) return 1; + if (c >= 0xdf && c <= 0xfb) return 1; + break; + + case KOI8: + if (c == 0xa0) return 1; + if (c >= 0xc0 && c <= 0xff) return 1; + break; + + case KOI8_R: + if (c >= 0x80 && c <= 0xff) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsPunct(int enc, int c) +{ + if (enc == ASCII) + return ispunct(c); + + if (enc == UNICODE_ISO_8859_1) { + if (c == 0x24 || c == 0x2b || c == 0x5e || c == 0x60 || + c == 0x7c || c == 0x7e) return 1; + if (c >= 0x3c && c <= 0x3e) return 1; + } + + if (c >= 0x21 && c <= 0x2f) return 1; + if (c >= 0x3a && c <= 0x40) return 1; + if (c >= 0x5b && c <= 0x60) return 1; + if (c >= 0x7b && c <= 0x7e) return 1; + + switch (enc) { + case ISO_8859_1: + case ISO_8859_9: + case ISO_8859_15: + if (c == 0xad) return 1; + /* fall */ + case UNICODE_ISO_8859_1: + if (c == 0xa1) return 1; + if (c == 0xab) return 1; + if (c == 0xb7) return 1; + if (c == 0xbb) return 1; + if (c == 0xbf) return 1; + break; + + case ISO_8859_2: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_14: + if (c == 0xad) return 1; + break; + + case ISO_8859_3: + case ISO_8859_10: + if (c == 0xad) return 1; + if (c == 0xb7) return 1; + if (c == 0xbd) return 1; + break; + + case ISO_8859_6: + if (c == 0xac) return 1; + if (c == 0xad) return 1; + if (c == 0xbb) return 1; + if (c == 0xbf) return 1; + break; + + case ISO_8859_7: + if (c == 0xa1 || c == 0xa2) return 1; + if (c == 0xab) return 1; + if (c == 0xaf) return 1; + if (c == 0xad) return 1; + if (c == 0xb7 || c == 0xbb) return 1; + break; + + case ISO_8859_8: + if (c == 0xab) return 1; + if (c == 0xad) return 1; + if (c == 0xb7) return 1; + if (c == 0xbb) return 1; + if (c == 0xdf) return 1; + break; + + case ISO_8859_13: + if (c == 0xa1 || c == 0xa5) return 1; + if (c == 0xab || c == 0xad) return 1; + if (c == 0xb4 || c == 0xb7) return 1; + if (c == 0xbb) return 1; + if (c == 0xff) return 1; + break; + + case ISO_8859_16: + if (c == 0xa5) return 1; + if (c == 0xab) return 1; + if (c == 0xad) return 1; + if (c == 0xb5) return 1; + if (c == 0xb7) return 1; + if (c == 0xbb) return 1; + break; + + case KOI8_R: + if (c == 0x9e) return 1; + break; + + case ISO_8859_11: + case KOI8: + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsSpace(int enc, int c) +{ + if (enc == ASCII) + return isspace(c); + + if (c >= 0x09 && c <= 0x0d) return 1; + if (c == 0x20) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + if (c == 0x85) return 1; + /* fall */ + case ISO_8859_1: + case ISO_8859_2: + case ISO_8859_3: + case ISO_8859_4: + case ISO_8859_5: + case ISO_8859_6: + case ISO_8859_7: + case ISO_8859_8: + case ISO_8859_9: + case ISO_8859_10: + case ISO_8859_11: + case ISO_8859_13: + case ISO_8859_14: + case ISO_8859_15: + case ISO_8859_16: + case KOI8: + if (c == 0xa0) return 1; + break; + + case KOI8_R: + if (c == 0x9a) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsUpper(int enc, int c) +{ + if (enc == ASCII) + return isupper(c); + + if (c >= 0x41 && c <= 0x5a) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_9: + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + break; + + case ISO_8859_2: + if (c == 0xa1 || c == 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c >= 0xae && c <= 0xaf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + break; + + case ISO_8859_3: + if (c == 0xa1) return 1; + if (c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xaf) return 1; + if (c >= 0xc0 && c <= 0xc2) return 1; + if (c >= 0xc4 && c <= 0xcf) return 1; + if (c >= 0xd1 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + break; + + case ISO_8859_4: + if (c == 0xa1 || c == 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xae) return 1; + if (c == 0xbd) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + break; + + case ISO_8859_5: + if (c >= 0xa1 && c <= 0xcf && c != 0xad) return 1; + break; + + case ISO_8859_6: + break; + + case ISO_8859_7: + if (c == 0xb6) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c >= 0xc1 && c <= 0xdb && c != 0xd2) return 1; + break; + + case ISO_8859_8: + case ISO_8859_11: + break; + + case ISO_8859_10: + if (c >= 0xa1 && c <= 0xa6) return 1; + if (c >= 0xa8 && c <= 0xac) return 1; + if (c == 0xae || c == 0xaf) return 1; + if (c >= 0xc0 && c <= 0xde) return 1; + break; + + case ISO_8859_13: + if (c == 0xa8) return 1; + if (c == 0xaa) return 1; + if (c == 0xaf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + break; + + case ISO_8859_14: + if (c == 0xa1) return 1; + if (c == 0xa4 || c == 0xa6) return 1; + if (c == 0xa8) return 1; + if (c == 0xaa || c == 0xac) return 1; + if (c == 0xaf || c == 0xb0) return 1; + if (c == 0xb2 || c == 0xb4 || c == 0xb7) return 1; + if (c == 0xbb || c == 0xbd) return 1; + if (c >= 0xc0 && c <= 0xde) return 1; + break; + + case ISO_8859_15: + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xde) return 1; + if (c == 0xa6) return 1; + if (c == 0xb4) return 1; + if (c == 0xbc) return 1; + if (c == 0xbe) return 1; + break; + + case ISO_8859_16: + if (c == 0xa1) return 1; + if (c == 0xa3) return 1; + if (c == 0xa6) return 1; + if (c == 0xaa) return 1; + if (c == 0xac) return 1; + if (c == 0xaf) return 1; + if (c == 0xb2) return 1; + if (c == 0xb4) return 1; + if (c == 0xbc) return 1; + if (c == 0xbe) return 1; + if (c >= 0xc0 && c <= 0xde) return 1; + break; + + case KOI8_R: + if (c == 0xb3) return 1; + /* fall */ + case KOI8: + if (c >= 0xe0 && c <= 0xff) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsXDigit(int enc, int c) +{ + if (enc == ASCII) + return isxdigit(c); + + if (c >= 0x30 && c <= 0x39) return 1; + if (c >= 0x41 && c <= 0x46) return 1; + if (c >= 0x61 && c <= 0x66) return 1; + return 0; +} + +static int IsWord(int enc, int c) +{ + if (enc == ASCII) { + return (isalpha(c) || isdigit(c) || c == 0x5f); + } + + if (c >= 0x30 && c <= 0x39) return 1; + if (c >= 0x41 && c <= 0x5a) return 1; + if (c == 0x5f) return 1; + if (c >= 0x61 && c <= 0x7a) return 1; + + switch (enc) { + case UNICODE_ISO_8859_1: + case ISO_8859_1: + case ISO_8859_9: + if (c == 0xaa) return 1; + if (c >= 0xb2 && c <= 0xb3) return 1; + if (c == 0xb5) return 1; + if (c >= 0xb9 && c <= 0xba) return 1; + if (c >= 0xbc && c <= 0xbe) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + break; + + case ISO_8859_2: + if (c == 0xa1 || c == 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c >= 0xae && c <= 0xaf) return 1; + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbc) return 1; + if (c >= 0xbe && c <= 0xbf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_3: + if (c == 0xa1) return 1; + if (c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xaf) return 1; + if (c >= 0xb1 && c <= 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbd) return 1; + if (c == 0xbf) return 1; + if (c >= 0xc0 && c <= 0xc2) return 1; + if (c >= 0xc4 && c <= 0xcf) return 1; + if (c >= 0xd1 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xe2) return 1; + if (c >= 0xe4 && c <= 0xef) return 1; + if (c >= 0xf1 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_4: + if (c >= 0xa1 && c <= 0xa3) return 1; + if (c == 0xa5 || c == 0xa6) return 1; + if (c >= 0xa9 && c <= 0xac) return 1; + if (c == 0xae) return 1; + if (c == 0xb1 || c == 0xb3) return 1; + if (c == 0xb5 || c == 0xb6) return 1; + if (c >= 0xb9 && c <= 0xbf) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_5: + if (c >= 0xa1 && c <= 0xcf && c != 0xad) return 1; + if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd) return 1; + break; + + case ISO_8859_6: + if (c >= 0xc1 && c <= 0xda) return 1; + if (c >= 0xe0 && c <= 0xea) return 1; + if (c >= 0xeb && c <= 0xf2) return 1; + break; + + case ISO_8859_7: + if (c == 0xb2 || c == 0xb3) return 1; + if (c == 0xb6) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c >= 0xbc && c <= 0xbf) return 1; + if (c == 0xc0) return 1; + if (c >= 0xc1 && c <= 0xdb && c != 0xd2) return 1; + if (c >= 0xdc && c <= 0xfe) return 1; + break; + + case ISO_8859_8: + if (c == 0xb2 || c == 0xb3 || c == 0xb5 || c == 0xb9) return 1; + if (c >= 0xbc && c <= 0xbe) return 1; + if (c >= 0xe0 && c <= 0xfa) return 1; + break; + + case ISO_8859_10: + if (c >= 0xa1 && c <= 0xff) { + if (c != 0xa7 && c != 0xad && c != 0xb0 && c != 0xb7 && c != 0xbd) + return 1; + } + break; + + case ISO_8859_11: + if (c >= 0xa1 && c <= 0xda) return 1; + if (c >= 0xdf && c <= 0xfb) return 1; + break; + + case ISO_8859_13: + if (c == 0xa8) return 1; + if (c == 0xaa) return 1; + if (c == 0xaf) return 1; + if (c == 0xb2 || c == 0xb3 || c == 0xb5 || c == 0xb9) return 1; + if (c >= 0xbc && c <= 0xbe) return 1; + if (c == 0xb8) return 1; + if (c == 0xba) return 1; + if (c >= 0xbf && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xfe) return 1; + break; + + case ISO_8859_14: + if (c >= 0xa1 && c <= 0xff) { + if (c == 0xa3 || c == 0xa7 || c == 0xa9 || c == 0xad || c == 0xae || + c == 0xb6) return 0; + return 1; + } + break; + + case ISO_8859_15: + if (c == 0xaa) return 1; + if (c >= 0xb2 && c <= 0xb3) return 1; + if (c == 0xb5) return 1; + if (c >= 0xb9 && c <= 0xba) return 1; + if (c >= 0xbc && c <= 0xbe) return 1; + if (c >= 0xc0 && c <= 0xd6) return 1; + if (c >= 0xd8 && c <= 0xf6) return 1; + if (c >= 0xf8 && c <= 0xff) return 1; + if (c == 0xa6) return 1; + if (c == 0xa8) return 1; + if (c == 0xb4) return 1; + if (c == 0xb8) return 1; + break; + + case ISO_8859_16: + if (c == 0xa1) return 1; + if (c == 0xa2) return 1; + if (c == 0xa3) return 1; + if (c == 0xa6) return 1; + if (c == 0xa8) return 1; + if (c == 0xaa) return 1; + if (c == 0xac) return 1; + if (c == 0xae) return 1; + if (c == 0xaf) return 1; + if (c == 0xb2) return 1; + if (c == 0xb3) return 1; + if (c == 0xb4) return 1; + if (c >= 0xb8 && c <= 0xba) return 1; + if (c == 0xbc) return 1; + if (c == 0xbd) return 1; + if (c == 0xbe) return 1; + if (c == 0xbf) return 1; + if (c >= 0xc0 && c <= 0xde) return 1; + if (c >= 0xdf && c <= 0xff) return 1; + break; + + case KOI8_R: + if (c == 0x9d) return 1; + if (c == 0xa3 || c == 0xb3) return 1; + /* fall */ + case KOI8: + if (c >= 0xc0 && c <= 0xff) return 1; + break; + + default: + exit(-1); + } + + return 0; +} + +static int IsAscii(int enc ARG_UNUSED, int c) +{ + if (c >= 0x00 && c <= 0x7f) return 1; + return 0; +} + +static int IsNewline(int enc ARG_UNUSED, int c) +{ + if (c == 0x0a) return 1; + return 0; +} + +static int exec(FILE* fp, ENC_INFO* einfo) +{ +#define NCOL 8 + + int c, val, enc; + int r; + + enc = einfo->num; + + r = fprintf(fp, "static const unsigned short Enc%s_CtypeTable[256] = {\n", + einfo->name); + if (r < 0) return -1; + + for (c = 0; c < 256; c++) { + val = 0; + if (IsNewline(enc, c)) val |= BIT_CTYPE_NEWLINE; + if (IsAlpha (enc, c)) val |= (BIT_CTYPE_ALPHA | BIT_CTYPE_ALNUM); + if (IsBlank (enc, c)) val |= BIT_CTYPE_BLANK; + if (IsCntrl (enc, c)) val |= BIT_CTYPE_CNTRL; + if (IsDigit (enc, c)) val |= (BIT_CTYPE_DIGIT | BIT_CTYPE_ALNUM); + if (IsGraph (enc, c)) val |= BIT_CTYPE_GRAPH; + if (IsLower (enc, c)) val |= BIT_CTYPE_LOWER; + if (IsPrint (enc, c)) val |= BIT_CTYPE_PRINT; + if (IsPunct (enc, c)) val |= BIT_CTYPE_PUNCT; + if (IsSpace (enc, c)) val |= BIT_CTYPE_SPACE; + if (IsUpper (enc, c)) val |= BIT_CTYPE_UPPER; + if (IsXDigit(enc, c)) val |= BIT_CTYPE_XDIGIT; + if (IsWord (enc, c)) val |= BIT_CTYPE_WORD; + if (IsAscii (enc, c)) val |= BIT_CTYPE_ASCII; + + if (c % NCOL == 0) { + r = fputs(" ", fp); + if (r < 0) return -1; + } + r = fprintf(fp, "0x%04x", val); + if (r < 0) return -1; + + if (c != 255) { + r = fputs(",", fp); + if (r < 0) return -1; + } + if (c != 0 && c % NCOL == (NCOL-1)) + r = fputs("\n", fp); + else + r = fputs(" ", fp); + + if (r < 0) return -1; + } + r = fprintf(fp, "};\n"); + if (r < 0) return -1; + + return 0; +} + +extern int main(int argc ARG_UNUSED, char* argv[] ARG_UNUSED) +{ + int r; + int i; + FILE* fp = stdout; + + setlocale(LC_ALL, "C"); + /* setlocale(LC_ALL, "POSIX"); */ + /* setlocale(LC_ALL, "en_GB.iso88591"); */ + /* setlocale(LC_ALL, "de_BE.iso88591"); */ + /* setlocale(LC_ALL, "fr_FR.iso88591"); */ + + for (i = 0; i < (int )(sizeof(Info)/sizeof(ENC_INFO)); i++) { + r = exec(fp, &Info[i]); + if (r < 0) { + fprintf(stderr, "FAIL exec(): %d\n", r); + return -1; + } + } + + return 0; +} diff --git a/src/fluent-bit/lib/onigmo/enc/shift_jis.c b/src/fluent-bit/lib/onigmo/enc/shift_jis.c new file mode 100644 index 000000000..5e4bbb9a3 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/shift_jis.c @@ -0,0 +1,71 @@ +/********************************************************************** + shift_jis.c - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2009 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2011-2017 K.Takata <kentkt AT csc DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "shift_jis.h" + +OnigEncodingDefine(shift_jis, Shift_JIS) = { + mbc_enc_len, + "Shift_JIS", /* name */ + 2, /* max byte length */ + 1, /* min byte length */ + onigenc_is_mbc_newline_0x0a, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + property_name_to_ctype, + is_code_ctype, + get_ctype_code_range, + left_adjust_char_head, + is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: Shift_JIS + * MIBenum: 17 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://ja.wikipedia.org/wiki/Shift_JIS + */ + +/* + * Name: MacJapanese + * Link: http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT + * Link: http://ja.wikipedia.org/wiki/MacJapanese + */ +ENC_REPLICATE("MacJapanese", "Shift_JIS") +ENC_ALIAS("MacJapan", "MacJapanese") diff --git a/src/fluent-bit/lib/onigmo/enc/shift_jis.h b/src/fluent-bit/lib/onigmo/enc/shift_jis.h new file mode 100644 index 000000000..d55240159 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/shift_jis.h @@ -0,0 +1,546 @@ +/********************************************************************** + shift_jis.h - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +static const int EncLen_SJIS[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 +}; + +static const char SJIS_CAN_BE_TRAIL_TABLE[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0 +}; + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + /* Fullwidth Alphabet */ + { 0x8260, 0x8281 }, + { 0x8261, 0x8282 }, + { 0x8262, 0x8283 }, + { 0x8263, 0x8284 }, + { 0x8264, 0x8285 }, + { 0x8265, 0x8286 }, + { 0x8266, 0x8287 }, + { 0x8267, 0x8288 }, + { 0x8268, 0x8289 }, + { 0x8269, 0x828a }, + { 0x826a, 0x828b }, + { 0x826b, 0x828c }, + { 0x826c, 0x828d }, + { 0x826d, 0x828e }, + { 0x826e, 0x828f }, + { 0x826f, 0x8290 }, + { 0x8270, 0x8291 }, + { 0x8271, 0x8292 }, + { 0x8272, 0x8293 }, + { 0x8273, 0x8294 }, + { 0x8274, 0x8295 }, + { 0x8275, 0x8296 }, + { 0x8276, 0x8297 }, + { 0x8277, 0x8298 }, + { 0x8278, 0x8299 }, + { 0x8279, 0x829a }, + + /* Greek */ + { 0x839f, 0x83bf }, + { 0x83a0, 0x83c0 }, + { 0x83a1, 0x83c1 }, + { 0x83a2, 0x83c2 }, + { 0x83a3, 0x83c3 }, + { 0x83a4, 0x83c4 }, + { 0x83a5, 0x83c5 }, + { 0x83a6, 0x83c6 }, + { 0x83a7, 0x83c7 }, + { 0x83a8, 0x83c8 }, + { 0x83a9, 0x83c9 }, + { 0x83aa, 0x83ca }, + { 0x83ab, 0x83cb }, + { 0x83ac, 0x83cc }, + { 0x83ad, 0x83cd }, + { 0x83ae, 0x83ce }, + { 0x83af, 0x83cf }, + { 0x83b0, 0x83d0 }, + { 0x83b1, 0x83d1 }, + { 0x83b2, 0x83d2 }, + { 0x83b3, 0x83d3 }, + { 0x83b4, 0x83d4 }, + { 0x83b5, 0x83d5 }, + { 0x83b6, 0x83d6 }, + + /* Cyrillic */ + { 0x8440, 0x8470 }, + { 0x8441, 0x8471 }, + { 0x8442, 0x8472 }, + { 0x8443, 0x8473 }, + { 0x8444, 0x8474 }, + { 0x8445, 0x8475 }, + { 0x8446, 0x8476 }, + { 0x8447, 0x8477 }, + { 0x8448, 0x8478 }, + { 0x8449, 0x8479 }, + { 0x844a, 0x847a }, + { 0x844b, 0x847b }, + { 0x844c, 0x847c }, + { 0x844d, 0x847d }, + { 0x844e, 0x847e }, + { 0x844f, 0x8480 }, + { 0x8450, 0x8481 }, + { 0x8451, 0x8482 }, + { 0x8452, 0x8483 }, + { 0x8453, 0x8484 }, + { 0x8454, 0x8485 }, + { 0x8455, 0x8486 }, + { 0x8456, 0x8487 }, + { 0x8457, 0x8488 }, + { 0x8458, 0x8489 }, + { 0x8459, 0x848a }, + { 0x845a, 0x848b }, + { 0x845b, 0x848c }, + { 0x845c, 0x848d }, + { 0x845d, 0x848e }, + { 0x845e, 0x848f }, + { 0x845f, 0x8490 }, + { 0x8460, 0x8491 }, +}; + +#define SJIS_ISMB_FIRST(byte) (EncLen_SJIS[byte] > 1) +#define SJIS_ISMB_TRAIL(byte) SJIS_CAN_BE_TRAIL_TABLE[(byte)] + +typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F, F, F + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F, + /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, F, F, F + } +}; +#undef A +#undef F + +static int +mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s; + s = trans[0][firstbyte]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_SJIS[firstbyte]-1); + s = trans[s][*p++]; + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +} + +static int +code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) { + if (EncLen_SJIS[(int )code] == 1) + return 1; + else + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + else if (code <= 0xffff) { + int low = code & 0xff; + if (! SJIS_ISMB_TRAIL(low)) + return ONIGERR_INVALID_CODE_POINT_VALUE; + return 2; + } + else + return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; +} + +static OnigCodePoint +mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + int c, i, len; + OnigCodePoint n; + + len = mbc_enc_len(p, end, enc); + c = *p++; + n = c; + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; +} + +static int +code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc) +{ + UChar *p = buf; + + if ((code & 0xff00) != 0) *p++ = (UChar )(((code >> 8) & 0xff)); + *p++ = (UChar )(code & 0xff); + +#if 0 + if (mbc_enc_len(buf, p, enc) != (p - buf)) + return REGERR_INVALID_CODE_POINT_VALUE; +#endif + return (int )(p - buf); +} + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static OnigCodePoint +get_lower_case(OnigCodePoint code) +{ + if (ONIGENC_IS_IN_RANGE(code, 0x8260, 0x8279)) { + /* Fullwidth Alphabet */ + return (OnigCodePoint )(code + 0x0021); + } + else if (ONIGENC_IS_IN_RANGE(code, 0x839f, 0x83b6)) { + /* Greek */ + return (OnigCodePoint )(code + 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0x8440, 0x8460)) { + /* Cyrillic */ + int d = (code >= 0x844f) ? 1 : 0; + return (OnigCodePoint )(code + (0x0030 + d)); + } + return code; +} + +static OnigCodePoint +get_upper_case(OnigCodePoint code) +{ + if (ONIGENC_IS_IN_RANGE(code, 0x8281, 0x829a)) { + /* Fullwidth Alphabet */ + return (OnigCodePoint )(code - 0x0021); + } + else if (ONIGENC_IS_IN_RANGE(code, 0x83bf, 0x83d6)) { + /* Greek */ + return (OnigCodePoint )(code - 0x0020); + } + else if (ONIGENC_IS_IN_RANGE(code, 0x8470, 0x847e) || + ONIGENC_IS_IN_RANGE(code, 0x8480, 0x8491)) { + /* Cyrillic */ + int d = (code >= 0x8480) ? 1 : 0; + return (OnigCodePoint )(code - (0x0030 - d)); + } + return code; +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], OnigEncoding enc) +{ + int len; + OnigCodePoint code, code_lo, code_up; + + code = mbc_to_code(p, end, enc); + if (ONIGENC_IS_ASCII_CODE(code)) + return onigenc_ascii_get_case_fold_codes_by_str(flag, p, end, items, enc); + + len = mbc_enc_len(p, end, enc); + code_lo = get_lower_case(code); + code_up = get_upper_case(code); + + if (code != code_lo) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = code_lo; + return 1; + } + else if (code != code_up) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = code_up; + return 1; + } + + return 0; +} + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* lower, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { + *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; + } + else { + OnigCodePoint code; + int len; + + code = get_lower_case(mbc_to_code(p, end, enc)); + len = code_to_mbc(code, lower, enc); + (*pp) += len; + return len; /* return byte length of converted char to lower */ + } +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end); + +} +#endif + +#if 0 +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype) +{ + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else { + if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { + return (code_to_mbclen(code) > 1 ? TRUE : FALSE); + } + } + + return FALSE; +} +#endif + +static UChar* +left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc) +{ + const UChar *p; + int len; + + if (s <= start) return (UChar* )s; + p = s; + + if (SJIS_ISMB_TRAIL(*p)) { + while (p > start) { + if (! SJIS_ISMB_FIRST(*--p)) { + p++; + break; + } + } + } + len = mbc_enc_len(p, end, enc); + if (p + len > s) return (UChar* )p; + p += len; + return (UChar* )(p + ((s - p) & ~1)); +} + +static int +is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + const UChar c = *s; + return (SJIS_ISMB_TRAIL(c) ? FALSE : TRUE); +} + + +static const OnigCodePoint CR_Hiragana[] = { + 1, + 0x829f, 0x82f1 +}; /* CR_Hiragana */ + +static const OnigCodePoint CR_Katakana[] = { + 4, + 0x00a6, 0x00af, + 0x00b1, 0x00dd, + 0x8340, 0x837e, + 0x8380, 0x8396, +}; /* CR_Katakana */ + +#ifdef ENC_CP932 +static const OnigCodePoint CR_Han[] = { + 6, + 0x8157, 0x8157, + 0x889f, 0x9872, /* Kanji level 1 */ + 0x989f, 0x9ffc, /* Kanji level 2 */ + 0xe040, 0xeaa4, /* Kanji level 2 */ + 0xed40, 0xeeec, /* NEC-selected IBM extended characters (without symbols) */ + 0xfa5c, 0xfc4b, /* IBM extended characters (without symbols) */ +}; /* CR_Han */ +#else +static const OnigCodePoint CR_Han[] = { + 4, + 0x8157, 0x8157, + 0x889f, 0x9872, /* Kanji level 1 */ + 0x989f, 0x9ffc, /* Kanji level 2 */ + 0xe040, 0xeaa4, /* Kanji level 2 */ +}; /* CR_Han */ +#endif + +static const OnigCodePoint CR_Latin[] = { + 4, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x8260, 0x8279, + 0x8281, 0x829a, +}; /* CR_Latin */ + +static const OnigCodePoint CR_Greek[] = { + 2, + 0x839f, 0x83b6, + 0x83bf, 0x83d6, +}; /* CR_Greek */ + +static const OnigCodePoint CR_Cyrillic[] = { + 3, + 0x8440, 0x8460, + 0x8470, 0x847f, + 0x8480, 0x8491, +}; /* CR_Cyrillic */ + +#include "enc/jis/props.h" + +static int +property_name_to_ctype(OnigEncoding enc, const UChar* p, const UChar* end) +{ + const UChar *s = p, *e = end; + const struct enc_property *prop = + onig_jis_property((const char* )s, (unsigned int )(e - s)); + + if (!prop) { + return onigenc_minimum_property_name_to_ctype(enc, s, e); + } + + return (int )prop->ctype; +} + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc) +{ + if (ctype <= ONIGENC_MAX_STD_CTYPE) { + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else { + if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { + return TRUE; + } + } + } + else { + ctype -= (ONIGENC_MAX_STD_CTYPE + 1); + if (ctype >= (unsigned int )PropertyListNum) + return ONIGERR_TYPE_BUG; + + return onig_is_in_code_range((UChar* )PropertyList[ctype], code); + } + + return FALSE; +} + +static int +get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, + const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED) +{ + if (ctype <= ONIGENC_MAX_STD_CTYPE) { + return ONIG_NO_SUPPORT_CONFIG; + } + else { + *sb_out = 0x80; + + ctype -= (ONIGENC_MAX_STD_CTYPE + 1); + if (ctype >= (OnigCtype )PropertyListNum) + return ONIGERR_TYPE_BUG; + + *ranges = PropertyList[ctype]; + return 0; + } +} diff --git a/src/fluent-bit/lib/onigmo/enc/unicode.c b/src/fluent-bit/lib/onigmo/enc/unicode.c new file mode 100644 index 000000000..c0fdca4e0 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/unicode.c @@ -0,0 +1,816 @@ +/********************************************************************** + unicode.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2013 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regint.h" + +#define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \ + ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) +#if 0 +#define ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(code,cbit) \ + ((EncUNICODE_ISO_8859_1_CtypeTable[code] & (cbit)) != 0) +#endif + +static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +typedef struct { + int n; + OnigCodePoint code[3]; +} CodePointList3; + +typedef struct { + OnigCodePoint from; + CodePointList3 to; +} CaseFold_11_Type; + +typedef struct { + OnigCodePoint from; + CodePointList3 to; +} CaseUnfold_11_Type; + +typedef struct { + int n; + OnigCodePoint code[2]; +} CodePointList2; + +typedef struct { + OnigCodePoint from[2]; + CodePointList2 to; +} CaseUnfold_12_Type; + +typedef struct { + OnigCodePoint from[3]; + CodePointList2 to; +} CaseUnfold_13_Type; + +static inline int +bits_of(const OnigCodePoint c, const int n) +{ + return (c >> (2 - n) * 7) & 127; +} + +static inline int +bits_at(const OnigCodePoint *c, const int n) +{ + return bits_of(c[n / 3], n % 3); +} + +static int +code1_equal(const OnigCodePoint x, const OnigCodePoint y) +{ + if (x != y) return 0; + return 1; +} + +static int +code2_equal(const OnigCodePoint *x, const OnigCodePoint *y) +{ + if (x[0] != y[0]) return 0; + if (x[1] != y[1]) return 0; + return 1; +} + +static int +code3_equal(const OnigCodePoint *x, const OnigCodePoint *y) +{ + if (x[0] != y[0]) return 0; + if (x[1] != y[1]) return 0; + if (x[2] != y[2]) return 0; + return 1; +} + +/* macros related to ONIGENC_CASE flags */ +/* defined here because not used in other files */ +#define ONIGENC_CASE_SPECIALS (ONIGENC_CASE_TITLECASE | ONIGENC_CASE_IS_TITLECASE | ONIGENC_CASE_UP_SPECIAL | ONIGENC_CASE_DOWN_SPECIAL) + +/* macros for length in CaseMappingSpecials array in enc/unicode/casefold.h */ +#define SpecialsLengthOffset 25 /* needs to be higher than the 22 bits used for Unicode codepoints */ +#define SpecialsLengthExtract(n) ((n) >> SpecialsLengthOffset) +#define SpecialsCodepointExtract(n) ((n) & ((1 << SpecialsLengthOffset) - 1)) +#define SpecialsLengthEncode(n) ((n) << SpecialsLengthOffset) + +#define OnigSpecialIndexMask (((1 << OnigSpecialIndexWidth) - 1) << OnigSpecialIndexShift) +#define OnigSpecialIndexEncode(n) ((n) << OnigSpecialIndexShift) +#define OnigSpecialIndexDecode(n) (((n) & OnigSpecialIndexMask) >> OnigSpecialIndexShift) + +/* macros to shorten "enc/unicode/casefold.h", undefined immediately after including the file */ +#define U ONIGENC_CASE_UPCASE +#define D ONIGENC_CASE_DOWNCASE +#define F ONIGENC_CASE_FOLD +#define ST ONIGENC_CASE_TITLECASE +#define SU ONIGENC_CASE_UP_SPECIAL +#define SL ONIGENC_CASE_DOWN_SPECIAL +#define IT ONIGENC_CASE_IS_TITLECASE +#define I(n) OnigSpecialIndexEncode(n) +#define L(n) SpecialsLengthEncode(n) + +#include "casefold.h" + +#undef U +#undef D +#undef F +#undef ST +#undef SU +#undef SL +#undef IT +#undef I +#undef L + +#include "name2ctype.h" + +#define CODE_RANGES_NUM numberof(CodeRanges) + +extern int +onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if ( +#ifdef USE_UNICODE_PROPERTIES + ctype <= ONIGENC_MAX_STD_CTYPE && +#endif + code < 256) { + return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype); + } + + if (ctype >= CODE_RANGES_NUM) { + return ONIGERR_TYPE_BUG; + } + + return onig_is_in_code_range((UChar* )CodeRanges[ctype], code); +} + + +extern int +onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[]) +{ + if (ctype >= CODE_RANGES_NUM) { + return ONIGERR_TYPE_BUG; + } + + *ranges = CodeRanges[ctype]; + + return 0; +} + +extern int +onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, + const OnigCodePoint* ranges[], + OnigEncoding enc ARG_UNUSED) +{ + *sb_out = 0x00; + return onigenc_unicode_ctype_code_range(ctype, ranges); +} + +#define PROPERTY_NAME_MAX_SIZE (MAX_WORD_LENGTH + 1) + +extern int +onigenc_unicode_property_name_to_ctype(OnigEncoding enc, const UChar* name, const UChar* end) +{ + int len; + int ctype; + UChar buf[PROPERTY_NAME_MAX_SIZE]; + const UChar *p; + OnigCodePoint code; + + len = 0; + for (p = name; p < end; p += enclen(enc, p, end)) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == ' ' || code == '-' || code == '_') + continue; + if (code >= 0x80) + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + + buf[len++] = ONIGENC_ASCII_CODE_TO_LOWER_CASE(code); + if (len >= PROPERTY_NAME_MAX_SIZE) + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + } + + buf[len] = 0; + + if ((ctype = uniname2ctype(buf, len)) < 0) { + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + } + + return ctype; +} + +#define onigenc_unicode_fold_lookup onigenc_unicode_CaseFold_11_lookup +#define onigenc_unicode_unfold1_lookup onigenc_unicode_CaseUnfold_11_lookup +#define onigenc_unicode_unfold2_lookup onigenc_unicode_CaseUnfold_12_lookup +#define onigenc_unicode_unfold3_lookup onigenc_unicode_CaseUnfold_13_lookup + +enum { + I_WITH_DOT_ABOVE = 0x0130, + DOTLESS_i = 0x0131, + DOT_ABOVE = 0x0307 +}; + +extern int +onigenc_unicode_mbc_case_fold(OnigEncoding enc, + OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end, + UChar* fold) +{ + const CodePointList3 *to; + OnigCodePoint code; + int i, len, rlen; + const UChar *p = *pp; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + len = enclen(enc, p, end); + *pp += len; + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (code == 'I') { + return ONIGENC_CODE_TO_MBC(enc, DOTLESS_i, fold); + } + else if (code == I_WITH_DOT_ABOVE) { + return ONIGENC_CODE_TO_MBC(enc, 'i', fold); + } + } +#endif + + if ((to = onigenc_unicode_fold_lookup(code)) != 0) { + if (OnigCodePointCount(to->n) == 1) { + return ONIGENC_CODE_TO_MBC(enc, to->code[0], fold); + } +#if 0 + /* NO NEEDS TO CHECK */ + else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) +#else + else +#endif + { + rlen = 0; + for (i = 0; i < OnigCodePointCount(to->n); i++) { + len = ONIGENC_CODE_TO_MBC(enc, to->code[i], fold); + fold += len; + rlen += len; + } + return rlen; + } + } + + for (i = 0; i < len; i++) { + *fold++ = *p++; + } + return len; +} + +extern int +onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + const CaseUnfold_11_Type* p11; + OnigCodePoint code; + int i, j, k, r; + + for (i = 0; i < numberof(CaseUnfold_11); i++) { + p11 = &CaseUnfold_11[i]; + for (j = 0; j < OnigCodePointCount(p11->to.n); j++) { + code = p11->from; + r = (*f)(p11->to.code[j], &code, 1, arg); + if (r != 0) return r; + + code = p11->to.code[j]; + r = (*f)(p11->from, &code, 1, arg); + if (r != 0) return r; + + for (k = 0; k < j; k++) { + r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), 1, arg); + if (r != 0) return r; + + r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), 1, arg); + if (r != 0) return r; + } + } + } + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + code = DOTLESS_i; + r = (*f)('I', &code, 1, arg); + if (r != 0) return r; + code = 'I'; + r = (*f)(DOTLESS_i, &code, 1, arg); + if (r != 0) return r; + + code = I_WITH_DOT_ABOVE; + r = (*f)('i', &code, 1, arg); + if (r != 0) return r; + code = 'i'; + r = (*f)(I_WITH_DOT_ABOVE, &code, 1, arg); + if (r != 0) return r; + } + else { +#endif + for (i = 0; i < numberof(CaseUnfold_11_Locale); i++) { + p11 = &CaseUnfold_11_Locale[i]; + for (j = 0; j < OnigCodePointCount(p11->to.n); j++) { + code = p11->from; + r = (*f)(p11->to.code[j], &code, 1, arg); + if (r != 0) return r; + + code = p11->to.code[j]; + r = (*f)(p11->from, &code, 1, arg); + if (r != 0) return r; + + for (k = 0; k < j; k++) { + r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), + 1, arg); + if (r != 0) return r; + + r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), + 1, arg); + if (r != 0) return r; + } + } + } +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + } +#endif + + if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + for (i = 0; i < numberof(CaseUnfold_12); i++) { + for (j = 0; j < OnigCodePointCount(CaseUnfold_12[i].to.n); j++) { + r = (*f)(CaseUnfold_12[i].to.code[j], + (OnigCodePoint* )CaseUnfold_12[i].from, 2, arg); + if (r != 0) return r; + + for (k = 0; k < OnigCodePointCount(CaseUnfold_12[i].to.n); k++) { + if (k == j) continue; + + r = (*f)(CaseUnfold_12[i].to.code[j], + (OnigCodePoint* )(&CaseUnfold_12[i].to.code[k]), 1, arg); + if (r != 0) return r; + } + } + } + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) { +#endif + for (i = 0; i < numberof(CaseUnfold_12_Locale); i++) { + for (j = 0; j < OnigCodePointCount(CaseUnfold_12_Locale[i].to.n); j++) { + r = (*f)(CaseUnfold_12_Locale[i].to.code[j], + (OnigCodePoint* )CaseUnfold_12_Locale[i].from, 2, arg); + if (r != 0) return r; + + for (k = 0; k < OnigCodePointCount(CaseUnfold_12_Locale[i].to.n); k++) { + if (k == j) continue; + + r = (*f)(CaseUnfold_12_Locale[i].to.code[j], + (OnigCodePoint* )(&CaseUnfold_12_Locale[i].to.code[k]), + 1, arg); + if (r != 0) return r; + } + } + } +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + } +#endif + + for (i = 0; i < numberof(CaseUnfold_13); i++) { + for (j = 0; j < OnigCodePointCount(CaseUnfold_13[i].to.n); j++) { + r = (*f)(CaseUnfold_13[i].to.code[j], + (OnigCodePoint* )CaseUnfold_13[i].from, 3, arg); + if (r != 0) return r; + + for (k = 0; k < OnigCodePointCount(CaseUnfold_13[i].to.n); k++) { + if (k == j) continue; + + r = (*f)(CaseUnfold_13[i].to.code[j], + (OnigCodePoint* )(&CaseUnfold_13[i].to.code[k]), 1, arg); + if (r != 0) return r; + } + } + } + } + + return 0; +} + +#define CodePointListValidP(x) (OnigCodePointCount((x)->n) <= numberof((x)->code)) + +extern int +onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, + OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[]) +{ + int n, i, j, k, len; + OnigCodePoint code, codes[3]; + const CodePointList3 *to, *z3; + const CodePointList2 *z2; + + n = 0; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + len = enclen(enc, p, end); + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + switch (code) { + case 'I': + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = DOTLESS_i; + return 1; + case I_WITH_DOT_ABOVE: + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 'i'; + return 1; + case DOTLESS_i: + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 'I'; + return 1; + case 'i': + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = I_WITH_DOT_ABOVE; + return 1; + } + } +#endif + + if ((to = onigenc_unicode_fold_lookup(code)) != 0) { + if (OnigCodePointCount(to->n) == 1) { + OnigCodePoint orig_code = code; + + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = to->code[0]; + n++; + + code = to->code[0]; + if ((to = onigenc_unicode_unfold1_lookup(code)) != 0 && + CodePointListValidP(to)) { + for (i = 0; i < OnigCodePointCount(to->n); i++) { + if (to->code[i] != orig_code) { + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = to->code[i]; + n++; + } + } + } + } + else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + OnigCodePoint cs[3][4]; + int fn, ncs[3]; + + for (fn = 0; fn < OnigCodePointCount(to->n); fn++) { + cs[fn][0] = to->code[fn]; + if ((z3 = onigenc_unicode_unfold1_lookup(cs[fn][0])) != 0) { + for (i = 0; i < OnigCodePointCount(z3->n); i++) { + cs[fn][i+1] = z3->code[i]; + } + ncs[fn] = OnigCodePointCount(z3->n) + 1; + } + else + ncs[fn] = 1; + } + + if (fn == 2) { + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + items[n].byte_len = len; + items[n].code_len = 2; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + n++; + } + } + + if ((z2 = onigenc_unicode_unfold2_lookup(to->code)) != 0 && + CodePointListValidP(z2)) { + for (i = 0; i < OnigCodePointCount(z2->n); i++) { + if (z2->code[i] == code) continue; + + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = z2->code[i]; + n++; + } + } + } + else { + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + for (k = 0; k < ncs[2]; k++) { + items[n].byte_len = len; + items[n].code_len = 3; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + items[n].code[2] = cs[2][k]; + n++; + } + } + } + + if ((z2 = onigenc_unicode_unfold3_lookup(to->code)) != 0 && + CodePointListValidP(z2)) { + for (i = 0; i < OnigCodePointCount(z2->n); i++) { + if (z2->code[i] == code) continue; + + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = z2->code[i]; + n++; + } + } + } + + /* multi char folded code is not head of another folded multi char */ + flag = 0; /* DISABLE_CASE_FOLD_MULTI_CHAR(flag); */ + } + } + else { + if ((to = onigenc_unicode_unfold1_lookup(code)) != 0 && + CodePointListValidP(to)) { + for (i = 0; i < OnigCodePointCount(to->n); i++) { + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = to->code[i]; + n++; + } + } + } + + + if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + p += len; + if (p < end) { + int clen; + + codes[0] = code; + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if ((to = onigenc_unicode_fold_lookup(code)) != 0 + && OnigCodePointCount(to->n) == 1) { + codes[1] = to->code[0]; + } + else + codes[1] = code; + + clen = enclen(enc, p, end); + len += clen; + if ((z2 = onigenc_unicode_unfold2_lookup(codes)) != 0 && + CodePointListValidP(z2)) { + for (i = 0; i < OnigCodePointCount(z2->n); i++) { + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = z2->code[i]; + n++; + } + } + + p += clen; + if (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if ((to = onigenc_unicode_fold_lookup(code)) != 0 + && OnigCodePointCount(to->n) == 1) { + codes[2] = to->code[0]; + } + else + codes[2] = code; + + clen = enclen(enc, p, end); + len += clen; + if ((z2 = onigenc_unicode_unfold3_lookup(codes)) != 0 && + CodePointListValidP(z2)) { + for (i = 0; i < OnigCodePointCount(z2->n); i++) { + items[n].byte_len = len; + items[n].code_len = 1; + items[n].code[0] = z2->code[i]; + n++; + } + } + } + } + } + + return n; +} + +#ifdef USE_CASE_MAP_API +/* length in bytes for three characters in UTF-32; e.g. needed for ffi (U+FB03) */ +#define CASE_MAPPING_SLACK 12 +#define MODIFIED (flags |= ONIGENC_CASE_MODIFIED) +extern int +onigenc_unicode_case_map(OnigCaseFoldType* flagP, + const OnigUChar** pp, const OnigUChar* end, + OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + int codepoint_length; + + to_end -= CASE_MAPPING_SLACK; + /* copy flags ONIGENC_CASE_UPCASE and ONIGENC_CASE_DOWNCASE over to + * ONIGENC_CASE_UP_SPECIAL and ONIGENC_CASE_DOWN_SPECIAL */ + flags |= (flags & (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE)) << ONIGENC_CASE_SPECIAL_OFFSET; + + while (*pp < end && to <= to_end) { + codepoint_length = ONIGENC_PRECISE_MBC_ENC_LEN(enc, *pp, end); + if (codepoint_length < 0) + return codepoint_length; /* encoding invalid */ + code = ONIGENC_MBC_TO_CODE(enc, *pp, end); + *pp += codepoint_length; + + if (code <= 'z') { /* ASCII comes first */ + if (code >= 'a' /*&& code <= 'z'*/) { + if (flags & ONIGENC_CASE_UPCASE) { + MODIFIED; + if (flags & ONIGENC_CASE_FOLD_TURKISH_AZERI && code == 'i') + code = I_WITH_DOT_ABOVE; + else + code -= 'a' - 'A'; + } + } + else if (code >= 'A' && code <= 'Z') { + if (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD)) { + MODIFIED; + if (flags & ONIGENC_CASE_FOLD_TURKISH_AZERI && code == 'I') + code = DOTLESS_i; + else + code += 'a' - 'A'; + } + } + } + else if (!(flags & ONIGENC_CASE_ASCII_ONLY) && code >= 0x00B5) { /* deal with non-ASCII; micron sign (U+00B5) is lowest affected */ + const CodePointList3 *folded; + + if (code == I_WITH_DOT_ABOVE) { + if (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD)) { + MODIFIED; + code = 'i'; + if (!(flags & ONIGENC_CASE_FOLD_TURKISH_AZERI)) { /* make dot above explicit */ + to += ONIGENC_CODE_TO_MBC(enc, code, to); + code = DOT_ABOVE; + } + } + } + else if (code == DOTLESS_i) { /* handle this manually, because it isn't involved in folding */ + if (flags & ONIGENC_CASE_UPCASE) { + MODIFIED; + code = 'I'; + } + } + else if ((folded = onigenc_unicode_fold_lookup(code)) != 0) { /* data about character found in CaseFold_11_Table */ + if ((flags & ONIGENC_CASE_TITLECASE) && code>=0x1C90 && code<=0x1CBF) { /* Georgian MTAVRULI */ + MODIFIED; + code += 0x10D0 - 0x1C90; + } + else if ((flags & ONIGENC_CASE_TITLECASE) /* Titlecase needed, */ + && (OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_IS_TITLECASE)) { /* but already Titlecase */ + /* already Titlecase, no changes needed */ + } + else if (flags & OnigCaseFoldFlags(folded->n)) { /* needs and data availability match */ + const OnigCodePoint *next; + int count; + + MODIFIED; + if (flags & OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_SPECIALS) { /* special */ + const OnigCodePoint *SpecialsStart = CaseMappingSpecials + OnigSpecialIndexDecode(folded->n); + + if (OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_IS_TITLECASE) { /* swapCASE available */ + if ((flags & (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE)) + == (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE)) /* swapCASE needed */ + goto SpecialsCopy; + else /* swapCASE not needed */ + SpecialsStart += SpecialsLengthExtract(*SpecialsStart); + } + if (OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_TITLECASE) { /* Titlecase available */ + if (flags & ONIGENC_CASE_TITLECASE) /* Titlecase needed, but not yet Titlecase */ + goto SpecialsCopy; + else /* Titlecase not needed */ + SpecialsStart += SpecialsLengthExtract(*SpecialsStart); + } + if (OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_DOWN_SPECIAL) { + if (!(flags & ONIGENC_CASE_DOWN_SPECIAL)) + SpecialsStart += SpecialsLengthExtract(*SpecialsStart); + } + /* here, we know we use ONIGENC_CASE_UP_SPECIAL, and the position is right */ +SpecialsCopy: + count = SpecialsLengthExtract(*SpecialsStart); + next = SpecialsStart; + code = SpecialsCodepointExtract(*next++); + } + else { /* no specials */ + count = OnigCodePointCount(folded->n); + next = folded->code; + code = *next++; + } + if (count == 1) + ; + else if (count == 2) { + to += ONIGENC_CODE_TO_MBC(enc, code, to); + code = *next; + } + else { /* count == 3 */ + to += ONIGENC_CODE_TO_MBC(enc, code, to); + to += ONIGENC_CODE_TO_MBC(enc, *next++, to); + code = *next; + } + } + } + else if ((folded = onigenc_unicode_unfold1_lookup(code)) != 0) { /* data about character found in CaseUnfold_11_Table */ + if ((flags & ONIGENC_CASE_TITLECASE) /* Titlecase needed, */ + && (OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_IS_TITLECASE)) { /* but already Titlecase */ + /* already Titlecase, no changes needed */ + } + else if (flags & OnigCaseFoldFlags(folded->n)) { /* needs and data availability match */ + MODIFIED; + code = folded->code[(flags & OnigCaseFoldFlags(folded->n) & ONIGENC_CASE_TITLECASE) ? 1 : 0]; + } + } + } + to += ONIGENC_CODE_TO_MBC(enc, code, to); + /* switch from titlecase to lowercase for capitalize */ + if (flags & ONIGENC_CASE_TITLECASE) + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE | + ONIGENC_CASE_UP_SPECIAL | ONIGENC_CASE_DOWN_SPECIAL); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +#if 0 +const char onigenc_unicode_version_string[] = +#ifdef ONIG_UNICODE_VERSION_STRING + ONIG_UNICODE_VERSION_STRING +#endif + ""; + +const int onigenc_unicode_version_number[3] = { +#ifdef ONIG_UNICODE_VERSION_MAJOR + ONIG_UNICODE_VERSION_MAJOR, + ONIG_UNICODE_VERSION_MINOR, + ONIG_UNICODE_VERSION_TEENY, +#else + 0 +#endif +}; +#endif diff --git a/src/fluent-bit/lib/onigmo/enc/unicode/casefold.h b/src/fluent-bit/lib/onigmo/enc/unicode/casefold.h new file mode 100644 index 000000000..cf2fd4a90 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/unicode/casefold.h @@ -0,0 +1,7629 @@ +/* DO NOT EDIT THIS FILE. */ +/* Generated by tool/case-folding.rb */ + +#if defined ONIG_UNICODE_VERSION_STRING && !( \ + ONIG_UNICODE_VERSION_MAJOR == 15 && \ + ONIG_UNICODE_VERSION_MINOR == 0 && \ + ONIG_UNICODE_VERSION_TEENY == 0 && \ + 1) +# error ONIG_UNICODE_VERSION_STRING mismatch +#endif +#define ONIG_UNICODE_VERSION_STRING "15.0.0" +#define ONIG_UNICODE_VERSION_MAJOR 15 +#define ONIG_UNICODE_VERSION_MINOR 0 +#define ONIG_UNICODE_VERSION_TEENY 0 + +static const CaseFold_11_Type CaseFold_11_Table[] = { +#define CaseFold (*(CaseFold_11_Type (*)[1528])(CaseFold_11_Table+0)) + {0x0041, {1|F|D, {0x0061}}}, + {0x0042, {1|F|D, {0x0062}}}, + {0x0043, {1|F|D, {0x0063}}}, + {0x0044, {1|F|D, {0x0064}}}, + {0x0045, {1|F|D, {0x0065}}}, + {0x0046, {1|F|D, {0x0066}}}, + {0x0047, {1|F|D, {0x0067}}}, + {0x0048, {1|F|D, {0x0068}}}, + {0x004a, {1|F|D, {0x006a}}}, + {0x004b, {1|F|D, {0x006b}}}, + {0x004c, {1|F|D, {0x006c}}}, + {0x004d, {1|F|D, {0x006d}}}, + {0x004e, {1|F|D, {0x006e}}}, + {0x004f, {1|F|D, {0x006f}}}, + {0x0050, {1|F|D, {0x0070}}}, + {0x0051, {1|F|D, {0x0071}}}, + {0x0052, {1|F|D, {0x0072}}}, + {0x0053, {1|F|D, {0x0073}}}, + {0x0054, {1|F|D, {0x0074}}}, + {0x0055, {1|F|D, {0x0075}}}, + {0x0056, {1|F|D, {0x0076}}}, + {0x0057, {1|F|D, {0x0077}}}, + {0x0058, {1|F|D, {0x0078}}}, + {0x0059, {1|F|D, {0x0079}}}, + {0x005a, {1|F|D, {0x007a}}}, + {0x00b5, {1|F|SU|I(0), {0x03bc}}}, + {0x00c0, {1|F|D, {0x00e0}}}, + {0x00c1, {1|F|D, {0x00e1}}}, + {0x00c2, {1|F|D, {0x00e2}}}, + {0x00c3, {1|F|D, {0x00e3}}}, + {0x00c4, {1|F|D, {0x00e4}}}, + {0x00c5, {1|F|D, {0x00e5}}}, + {0x00c6, {1|F|D, {0x00e6}}}, + {0x00c7, {1|F|D, {0x00e7}}}, + {0x00c8, {1|F|D, {0x00e8}}}, + {0x00c9, {1|F|D, {0x00e9}}}, + {0x00ca, {1|F|D, {0x00ea}}}, + {0x00cb, {1|F|D, {0x00eb}}}, + {0x00cc, {1|F|D, {0x00ec}}}, + {0x00cd, {1|F|D, {0x00ed}}}, + {0x00ce, {1|F|D, {0x00ee}}}, + {0x00cf, {1|F|D, {0x00ef}}}, + {0x00d0, {1|F|D, {0x00f0}}}, + {0x00d1, {1|F|D, {0x00f1}}}, + {0x00d2, {1|F|D, {0x00f2}}}, + {0x00d3, {1|F|D, {0x00f3}}}, + {0x00d4, {1|F|D, {0x00f4}}}, + {0x00d5, {1|F|D, {0x00f5}}}, + {0x00d6, {1|F|D, {0x00f6}}}, + {0x00d8, {1|F|D, {0x00f8}}}, + {0x00d9, {1|F|D, {0x00f9}}}, + {0x00da, {1|F|D, {0x00fa}}}, + {0x00db, {1|F|D, {0x00fb}}}, + {0x00dc, {1|F|D, {0x00fc}}}, + {0x00dd, {1|F|D, {0x00fd}}}, + {0x00de, {1|F|D, {0x00fe}}}, + {0x00df, {2|F|ST|SU|I(1), {0x0073, 0x0073}}}, + {0x0100, {1|F|D, {0x0101}}}, + {0x0102, {1|F|D, {0x0103}}}, + {0x0104, {1|F|D, {0x0105}}}, + {0x0106, {1|F|D, {0x0107}}}, + {0x0108, {1|F|D, {0x0109}}}, + {0x010a, {1|F|D, {0x010b}}}, + {0x010c, {1|F|D, {0x010d}}}, + {0x010e, {1|F|D, {0x010f}}}, + {0x0110, {1|F|D, {0x0111}}}, + {0x0112, {1|F|D, {0x0113}}}, + {0x0114, {1|F|D, {0x0115}}}, + {0x0116, {1|F|D, {0x0117}}}, + {0x0118, {1|F|D, {0x0119}}}, + {0x011a, {1|F|D, {0x011b}}}, + {0x011c, {1|F|D, {0x011d}}}, + {0x011e, {1|F|D, {0x011f}}}, + {0x0120, {1|F|D, {0x0121}}}, + {0x0122, {1|F|D, {0x0123}}}, + {0x0124, {1|F|D, {0x0125}}}, + {0x0126, {1|F|D, {0x0127}}}, + {0x0128, {1|F|D, {0x0129}}}, + {0x012a, {1|F|D, {0x012b}}}, + {0x012c, {1|F|D, {0x012d}}}, + {0x012e, {1|F|D, {0x012f}}}, + {0x0132, {1|F|D, {0x0133}}}, + {0x0134, {1|F|D, {0x0135}}}, + {0x0136, {1|F|D, {0x0137}}}, + {0x0139, {1|F|D, {0x013a}}}, + {0x013b, {1|F|D, {0x013c}}}, + {0x013d, {1|F|D, {0x013e}}}, + {0x013f, {1|F|D, {0x0140}}}, + {0x0141, {1|F|D, {0x0142}}}, + {0x0143, {1|F|D, {0x0144}}}, + {0x0145, {1|F|D, {0x0146}}}, + {0x0147, {1|F|D, {0x0148}}}, + {0x0149, {2|F|SU|I(5), {0x02bc, 0x006e}}}, + {0x014a, {1|F|D, {0x014b}}}, + {0x014c, {1|F|D, {0x014d}}}, + {0x014e, {1|F|D, {0x014f}}}, + {0x0150, {1|F|D, {0x0151}}}, + {0x0152, {1|F|D, {0x0153}}}, + {0x0154, {1|F|D, {0x0155}}}, + {0x0156, {1|F|D, {0x0157}}}, + {0x0158, {1|F|D, {0x0159}}}, + {0x015a, {1|F|D, {0x015b}}}, + {0x015c, {1|F|D, {0x015d}}}, + {0x015e, {1|F|D, {0x015f}}}, + {0x0160, {1|F|D, {0x0161}}}, + {0x0162, {1|F|D, {0x0163}}}, + {0x0164, {1|F|D, {0x0165}}}, + {0x0166, {1|F|D, {0x0167}}}, + {0x0168, {1|F|D, {0x0169}}}, + {0x016a, {1|F|D, {0x016b}}}, + {0x016c, {1|F|D, {0x016d}}}, + {0x016e, {1|F|D, {0x016f}}}, + {0x0170, {1|F|D, {0x0171}}}, + {0x0172, {1|F|D, {0x0173}}}, + {0x0174, {1|F|D, {0x0175}}}, + {0x0176, {1|F|D, {0x0177}}}, + {0x0178, {1|F|D, {0x00ff}}}, + {0x0179, {1|F|D, {0x017a}}}, + {0x017b, {1|F|D, {0x017c}}}, + {0x017d, {1|F|D, {0x017e}}}, + {0x017f, {1|F|SU|I(7), {0x0073}}}, + {0x0181, {1|F|D, {0x0253}}}, + {0x0182, {1|F|D, {0x0183}}}, + {0x0184, {1|F|D, {0x0185}}}, + {0x0186, {1|F|D, {0x0254}}}, + {0x0187, {1|F|D, {0x0188}}}, + {0x0189, {1|F|D, {0x0256}}}, + {0x018a, {1|F|D, {0x0257}}}, + {0x018b, {1|F|D, {0x018c}}}, + {0x018e, {1|F|D, {0x01dd}}}, + {0x018f, {1|F|D, {0x0259}}}, + {0x0190, {1|F|D, {0x025b}}}, + {0x0191, {1|F|D, {0x0192}}}, + {0x0193, {1|F|D, {0x0260}}}, + {0x0194, {1|F|D, {0x0263}}}, + {0x0196, {1|F|D, {0x0269}}}, + {0x0197, {1|F|D, {0x0268}}}, + {0x0198, {1|F|D, {0x0199}}}, + {0x019c, {1|F|D, {0x026f}}}, + {0x019d, {1|F|D, {0x0272}}}, + {0x019f, {1|F|D, {0x0275}}}, + {0x01a0, {1|F|D, {0x01a1}}}, + {0x01a2, {1|F|D, {0x01a3}}}, + {0x01a4, {1|F|D, {0x01a5}}}, + {0x01a6, {1|F|D, {0x0280}}}, + {0x01a7, {1|F|D, {0x01a8}}}, + {0x01a9, {1|F|D, {0x0283}}}, + {0x01ac, {1|F|D, {0x01ad}}}, + {0x01ae, {1|F|D, {0x0288}}}, + {0x01af, {1|F|D, {0x01b0}}}, + {0x01b1, {1|F|D, {0x028a}}}, + {0x01b2, {1|F|D, {0x028b}}}, + {0x01b3, {1|F|D, {0x01b4}}}, + {0x01b5, {1|F|D, {0x01b6}}}, + {0x01b7, {1|F|D, {0x0292}}}, + {0x01b8, {1|F|D, {0x01b9}}}, + {0x01bc, {1|F|D, {0x01bd}}}, + {0x01c4, {1|F|D|ST|I(8), {0x01c6}}}, + {0x01c5, {1|F|D|IT|SU|I(9), {0x01c6}}}, + {0x01c7, {1|F|D|ST|I(12), {0x01c9}}}, + {0x01c8, {1|F|D|IT|SU|I(13), {0x01c9}}}, + {0x01ca, {1|F|D|ST|I(16), {0x01cc}}}, + {0x01cb, {1|F|D|IT|SU|I(17), {0x01cc}}}, + {0x01cd, {1|F|D, {0x01ce}}}, + {0x01cf, {1|F|D, {0x01d0}}}, + {0x01d1, {1|F|D, {0x01d2}}}, + {0x01d3, {1|F|D, {0x01d4}}}, + {0x01d5, {1|F|D, {0x01d6}}}, + {0x01d7, {1|F|D, {0x01d8}}}, + {0x01d9, {1|F|D, {0x01da}}}, + {0x01db, {1|F|D, {0x01dc}}}, + {0x01de, {1|F|D, {0x01df}}}, + {0x01e0, {1|F|D, {0x01e1}}}, + {0x01e2, {1|F|D, {0x01e3}}}, + {0x01e4, {1|F|D, {0x01e5}}}, + {0x01e6, {1|F|D, {0x01e7}}}, + {0x01e8, {1|F|D, {0x01e9}}}, + {0x01ea, {1|F|D, {0x01eb}}}, + {0x01ec, {1|F|D, {0x01ed}}}, + {0x01ee, {1|F|D, {0x01ef}}}, + {0x01f0, {2|F|SU|I(20), {0x006a, 0x030c}}}, + {0x01f1, {1|F|D|ST|I(22), {0x01f3}}}, + {0x01f2, {1|F|D|IT|SU|I(23), {0x01f3}}}, + {0x01f4, {1|F|D, {0x01f5}}}, + {0x01f6, {1|F|D, {0x0195}}}, + {0x01f7, {1|F|D, {0x01bf}}}, + {0x01f8, {1|F|D, {0x01f9}}}, + {0x01fa, {1|F|D, {0x01fb}}}, + {0x01fc, {1|F|D, {0x01fd}}}, + {0x01fe, {1|F|D, {0x01ff}}}, + {0x0200, {1|F|D, {0x0201}}}, + {0x0202, {1|F|D, {0x0203}}}, + {0x0204, {1|F|D, {0x0205}}}, + {0x0206, {1|F|D, {0x0207}}}, + {0x0208, {1|F|D, {0x0209}}}, + {0x020a, {1|F|D, {0x020b}}}, + {0x020c, {1|F|D, {0x020d}}}, + {0x020e, {1|F|D, {0x020f}}}, + {0x0210, {1|F|D, {0x0211}}}, + {0x0212, {1|F|D, {0x0213}}}, + {0x0214, {1|F|D, {0x0215}}}, + {0x0216, {1|F|D, {0x0217}}}, + {0x0218, {1|F|D, {0x0219}}}, + {0x021a, {1|F|D, {0x021b}}}, + {0x021c, {1|F|D, {0x021d}}}, + {0x021e, {1|F|D, {0x021f}}}, + {0x0220, {1|F|D, {0x019e}}}, + {0x0222, {1|F|D, {0x0223}}}, + {0x0224, {1|F|D, {0x0225}}}, + {0x0226, {1|F|D, {0x0227}}}, + {0x0228, {1|F|D, {0x0229}}}, + {0x022a, {1|F|D, {0x022b}}}, + {0x022c, {1|F|D, {0x022d}}}, + {0x022e, {1|F|D, {0x022f}}}, + {0x0230, {1|F|D, {0x0231}}}, + {0x0232, {1|F|D, {0x0233}}}, + {0x023a, {1|F|D, {0x2c65}}}, + {0x023b, {1|F|D, {0x023c}}}, + {0x023d, {1|F|D, {0x019a}}}, + {0x023e, {1|F|D, {0x2c66}}}, + {0x0241, {1|F|D, {0x0242}}}, + {0x0243, {1|F|D, {0x0180}}}, + {0x0244, {1|F|D, {0x0289}}}, + {0x0245, {1|F|D, {0x028c}}}, + {0x0246, {1|F|D, {0x0247}}}, + {0x0248, {1|F|D, {0x0249}}}, + {0x024a, {1|F|D, {0x024b}}}, + {0x024c, {1|F|D, {0x024d}}}, + {0x024e, {1|F|D, {0x024f}}}, + {0x0345, {1|F|SU|I(26), {0x03b9}}}, + {0x0370, {1|F|D, {0x0371}}}, + {0x0372, {1|F|D, {0x0373}}}, + {0x0376, {1|F|D, {0x0377}}}, + {0x037f, {1|F|D, {0x03f3}}}, + {0x0386, {1|F|D, {0x03ac}}}, + {0x0388, {1|F|D, {0x03ad}}}, + {0x0389, {1|F|D, {0x03ae}}}, + {0x038a, {1|F|D, {0x03af}}}, + {0x038c, {1|F|D, {0x03cc}}}, + {0x038e, {1|F|D, {0x03cd}}}, + {0x038f, {1|F|D, {0x03ce}}}, + {0x0390, {3|F|SU|I(27), {0x03b9, 0x0308, 0x0301}}}, + {0x0391, {1|F|D, {0x03b1}}}, + {0x0392, {1|F|D, {0x03b2}}}, + {0x0393, {1|F|D, {0x03b3}}}, + {0x0394, {1|F|D, {0x03b4}}}, + {0x0395, {1|F|D, {0x03b5}}}, + {0x0396, {1|F|D, {0x03b6}}}, + {0x0397, {1|F|D, {0x03b7}}}, + {0x0398, {1|F|D, {0x03b8}}}, + {0x0399, {1|F|D, {0x03b9}}}, + {0x039a, {1|F|D, {0x03ba}}}, + {0x039b, {1|F|D, {0x03bb}}}, + {0x039c, {1|F|D, {0x03bc}}}, + {0x039d, {1|F|D, {0x03bd}}}, + {0x039e, {1|F|D, {0x03be}}}, + {0x039f, {1|F|D, {0x03bf}}}, + {0x03a0, {1|F|D, {0x03c0}}}, + {0x03a1, {1|F|D, {0x03c1}}}, + {0x03a3, {1|F|D, {0x03c3}}}, + {0x03a4, {1|F|D, {0x03c4}}}, + {0x03a5, {1|F|D, {0x03c5}}}, + {0x03a6, {1|F|D, {0x03c6}}}, + {0x03a7, {1|F|D, {0x03c7}}}, + {0x03a8, {1|F|D, {0x03c8}}}, + {0x03a9, {1|F|D, {0x03c9}}}, + {0x03aa, {1|F|D, {0x03ca}}}, + {0x03ab, {1|F|D, {0x03cb}}}, + {0x03b0, {3|F|SU|I(30), {0x03c5, 0x0308, 0x0301}}}, + {0x03c2, {1|F|SU|I(33), {0x03c3}}}, + {0x03cf, {1|F|D, {0x03d7}}}, + {0x03d0, {1|F|SU|I(34), {0x03b2}}}, + {0x03d1, {1|F|SU|I(35), {0x03b8}}}, + {0x03d5, {1|F|SU|I(36), {0x03c6}}}, + {0x03d6, {1|F|SU|I(37), {0x03c0}}}, + {0x03d8, {1|F|D, {0x03d9}}}, + {0x03da, {1|F|D, {0x03db}}}, + {0x03dc, {1|F|D, {0x03dd}}}, + {0x03de, {1|F|D, {0x03df}}}, + {0x03e0, {1|F|D, {0x03e1}}}, + {0x03e2, {1|F|D, {0x03e3}}}, + {0x03e4, {1|F|D, {0x03e5}}}, + {0x03e6, {1|F|D, {0x03e7}}}, + {0x03e8, {1|F|D, {0x03e9}}}, + {0x03ea, {1|F|D, {0x03eb}}}, + {0x03ec, {1|F|D, {0x03ed}}}, + {0x03ee, {1|F|D, {0x03ef}}}, + {0x03f0, {1|F|SU|I(38), {0x03ba}}}, + {0x03f1, {1|F|SU|I(39), {0x03c1}}}, + {0x03f4, {1|F|D, {0x03b8}}}, + {0x03f5, {1|F|SU|I(40), {0x03b5}}}, + {0x03f7, {1|F|D, {0x03f8}}}, + {0x03f9, {1|F|D, {0x03f2}}}, + {0x03fa, {1|F|D, {0x03fb}}}, + {0x03fd, {1|F|D, {0x037b}}}, + {0x03fe, {1|F|D, {0x037c}}}, + {0x03ff, {1|F|D, {0x037d}}}, + {0x0400, {1|F|D, {0x0450}}}, + {0x0401, {1|F|D, {0x0451}}}, + {0x0402, {1|F|D, {0x0452}}}, + {0x0403, {1|F|D, {0x0453}}}, + {0x0404, {1|F|D, {0x0454}}}, + {0x0405, {1|F|D, {0x0455}}}, + {0x0406, {1|F|D, {0x0456}}}, + {0x0407, {1|F|D, {0x0457}}}, + {0x0408, {1|F|D, {0x0458}}}, + {0x0409, {1|F|D, {0x0459}}}, + {0x040a, {1|F|D, {0x045a}}}, + {0x040b, {1|F|D, {0x045b}}}, + {0x040c, {1|F|D, {0x045c}}}, + {0x040d, {1|F|D, {0x045d}}}, + {0x040e, {1|F|D, {0x045e}}}, + {0x040f, {1|F|D, {0x045f}}}, + {0x0410, {1|F|D, {0x0430}}}, + {0x0411, {1|F|D, {0x0431}}}, + {0x0412, {1|F|D, {0x0432}}}, + {0x0413, {1|F|D, {0x0433}}}, + {0x0414, {1|F|D, {0x0434}}}, + {0x0415, {1|F|D, {0x0435}}}, + {0x0416, {1|F|D, {0x0436}}}, + {0x0417, {1|F|D, {0x0437}}}, + {0x0418, {1|F|D, {0x0438}}}, + {0x0419, {1|F|D, {0x0439}}}, + {0x041a, {1|F|D, {0x043a}}}, + {0x041b, {1|F|D, {0x043b}}}, + {0x041c, {1|F|D, {0x043c}}}, + {0x041d, {1|F|D, {0x043d}}}, + {0x041e, {1|F|D, {0x043e}}}, + {0x041f, {1|F|D, {0x043f}}}, + {0x0420, {1|F|D, {0x0440}}}, + {0x0421, {1|F|D, {0x0441}}}, + {0x0422, {1|F|D, {0x0442}}}, + {0x0423, {1|F|D, {0x0443}}}, + {0x0424, {1|F|D, {0x0444}}}, + {0x0425, {1|F|D, {0x0445}}}, + {0x0426, {1|F|D, {0x0446}}}, + {0x0427, {1|F|D, {0x0447}}}, + {0x0428, {1|F|D, {0x0448}}}, + {0x0429, {1|F|D, {0x0449}}}, + {0x042a, {1|F|D, {0x044a}}}, + {0x042b, {1|F|D, {0x044b}}}, + {0x042c, {1|F|D, {0x044c}}}, + {0x042d, {1|F|D, {0x044d}}}, + {0x042e, {1|F|D, {0x044e}}}, + {0x042f, {1|F|D, {0x044f}}}, + {0x0460, {1|F|D, {0x0461}}}, + {0x0462, {1|F|D, {0x0463}}}, + {0x0464, {1|F|D, {0x0465}}}, + {0x0466, {1|F|D, {0x0467}}}, + {0x0468, {1|F|D, {0x0469}}}, + {0x046a, {1|F|D, {0x046b}}}, + {0x046c, {1|F|D, {0x046d}}}, + {0x046e, {1|F|D, {0x046f}}}, + {0x0470, {1|F|D, {0x0471}}}, + {0x0472, {1|F|D, {0x0473}}}, + {0x0474, {1|F|D, {0x0475}}}, + {0x0476, {1|F|D, {0x0477}}}, + {0x0478, {1|F|D, {0x0479}}}, + {0x047a, {1|F|D, {0x047b}}}, + {0x047c, {1|F|D, {0x047d}}}, + {0x047e, {1|F|D, {0x047f}}}, + {0x0480, {1|F|D, {0x0481}}}, + {0x048a, {1|F|D, {0x048b}}}, + {0x048c, {1|F|D, {0x048d}}}, + {0x048e, {1|F|D, {0x048f}}}, + {0x0490, {1|F|D, {0x0491}}}, + {0x0492, {1|F|D, {0x0493}}}, + {0x0494, {1|F|D, {0x0495}}}, + {0x0496, {1|F|D, {0x0497}}}, + {0x0498, {1|F|D, {0x0499}}}, + {0x049a, {1|F|D, {0x049b}}}, + {0x049c, {1|F|D, {0x049d}}}, + {0x049e, {1|F|D, {0x049f}}}, + {0x04a0, {1|F|D, {0x04a1}}}, + {0x04a2, {1|F|D, {0x04a3}}}, + {0x04a4, {1|F|D, {0x04a5}}}, + {0x04a6, {1|F|D, {0x04a7}}}, + {0x04a8, {1|F|D, {0x04a9}}}, + {0x04aa, {1|F|D, {0x04ab}}}, + {0x04ac, {1|F|D, {0x04ad}}}, + {0x04ae, {1|F|D, {0x04af}}}, + {0x04b0, {1|F|D, {0x04b1}}}, + {0x04b2, {1|F|D, {0x04b3}}}, + {0x04b4, {1|F|D, {0x04b5}}}, + {0x04b6, {1|F|D, {0x04b7}}}, + {0x04b8, {1|F|D, {0x04b9}}}, + {0x04ba, {1|F|D, {0x04bb}}}, + {0x04bc, {1|F|D, {0x04bd}}}, + {0x04be, {1|F|D, {0x04bf}}}, + {0x04c0, {1|F|D, {0x04cf}}}, + {0x04c1, {1|F|D, {0x04c2}}}, + {0x04c3, {1|F|D, {0x04c4}}}, + {0x04c5, {1|F|D, {0x04c6}}}, + {0x04c7, {1|F|D, {0x04c8}}}, + {0x04c9, {1|F|D, {0x04ca}}}, + {0x04cb, {1|F|D, {0x04cc}}}, + {0x04cd, {1|F|D, {0x04ce}}}, + {0x04d0, {1|F|D, {0x04d1}}}, + {0x04d2, {1|F|D, {0x04d3}}}, + {0x04d4, {1|F|D, {0x04d5}}}, + {0x04d6, {1|F|D, {0x04d7}}}, + {0x04d8, {1|F|D, {0x04d9}}}, + {0x04da, {1|F|D, {0x04db}}}, + {0x04dc, {1|F|D, {0x04dd}}}, + {0x04de, {1|F|D, {0x04df}}}, + {0x04e0, {1|F|D, {0x04e1}}}, + {0x04e2, {1|F|D, {0x04e3}}}, + {0x04e4, {1|F|D, {0x04e5}}}, + {0x04e6, {1|F|D, {0x04e7}}}, + {0x04e8, {1|F|D, {0x04e9}}}, + {0x04ea, {1|F|D, {0x04eb}}}, + {0x04ec, {1|F|D, {0x04ed}}}, + {0x04ee, {1|F|D, {0x04ef}}}, + {0x04f0, {1|F|D, {0x04f1}}}, + {0x04f2, {1|F|D, {0x04f3}}}, + {0x04f4, {1|F|D, {0x04f5}}}, + {0x04f6, {1|F|D, {0x04f7}}}, + {0x04f8, {1|F|D, {0x04f9}}}, + {0x04fa, {1|F|D, {0x04fb}}}, + {0x04fc, {1|F|D, {0x04fd}}}, + {0x04fe, {1|F|D, {0x04ff}}}, + {0x0500, {1|F|D, {0x0501}}}, + {0x0502, {1|F|D, {0x0503}}}, + {0x0504, {1|F|D, {0x0505}}}, + {0x0506, {1|F|D, {0x0507}}}, + {0x0508, {1|F|D, {0x0509}}}, + {0x050a, {1|F|D, {0x050b}}}, + {0x050c, {1|F|D, {0x050d}}}, + {0x050e, {1|F|D, {0x050f}}}, + {0x0510, {1|F|D, {0x0511}}}, + {0x0512, {1|F|D, {0x0513}}}, + {0x0514, {1|F|D, {0x0515}}}, + {0x0516, {1|F|D, {0x0517}}}, + {0x0518, {1|F|D, {0x0519}}}, + {0x051a, {1|F|D, {0x051b}}}, + {0x051c, {1|F|D, {0x051d}}}, + {0x051e, {1|F|D, {0x051f}}}, + {0x0520, {1|F|D, {0x0521}}}, + {0x0522, {1|F|D, {0x0523}}}, + {0x0524, {1|F|D, {0x0525}}}, + {0x0526, {1|F|D, {0x0527}}}, + {0x0528, {1|F|D, {0x0529}}}, + {0x052a, {1|F|D, {0x052b}}}, + {0x052c, {1|F|D, {0x052d}}}, + {0x052e, {1|F|D, {0x052f}}}, + {0x0531, {1|F|D, {0x0561}}}, + {0x0532, {1|F|D, {0x0562}}}, + {0x0533, {1|F|D, {0x0563}}}, + {0x0534, {1|F|D, {0x0564}}}, + {0x0535, {1|F|D, {0x0565}}}, + {0x0536, {1|F|D, {0x0566}}}, + {0x0537, {1|F|D, {0x0567}}}, + {0x0538, {1|F|D, {0x0568}}}, + {0x0539, {1|F|D, {0x0569}}}, + {0x053a, {1|F|D, {0x056a}}}, + {0x053b, {1|F|D, {0x056b}}}, + {0x053c, {1|F|D, {0x056c}}}, + {0x053d, {1|F|D, {0x056d}}}, + {0x053e, {1|F|D, {0x056e}}}, + {0x053f, {1|F|D, {0x056f}}}, + {0x0540, {1|F|D, {0x0570}}}, + {0x0541, {1|F|D, {0x0571}}}, + {0x0542, {1|F|D, {0x0572}}}, + {0x0543, {1|F|D, {0x0573}}}, + {0x0544, {1|F|D, {0x0574}}}, + {0x0545, {1|F|D, {0x0575}}}, + {0x0546, {1|F|D, {0x0576}}}, + {0x0547, {1|F|D, {0x0577}}}, + {0x0548, {1|F|D, {0x0578}}}, + {0x0549, {1|F|D, {0x0579}}}, + {0x054a, {1|F|D, {0x057a}}}, + {0x054b, {1|F|D, {0x057b}}}, + {0x054c, {1|F|D, {0x057c}}}, + {0x054d, {1|F|D, {0x057d}}}, + {0x054e, {1|F|D, {0x057e}}}, + {0x054f, {1|F|D, {0x057f}}}, + {0x0550, {1|F|D, {0x0580}}}, + {0x0551, {1|F|D, {0x0581}}}, + {0x0552, {1|F|D, {0x0582}}}, + {0x0553, {1|F|D, {0x0583}}}, + {0x0554, {1|F|D, {0x0584}}}, + {0x0555, {1|F|D, {0x0585}}}, + {0x0556, {1|F|D, {0x0586}}}, + {0x0587, {2|F|ST|SU|I(41), {0x0565, 0x0582}}}, + {0x10a0, {1|F|D, {0x2d00}}}, + {0x10a1, {1|F|D, {0x2d01}}}, + {0x10a2, {1|F|D, {0x2d02}}}, + {0x10a3, {1|F|D, {0x2d03}}}, + {0x10a4, {1|F|D, {0x2d04}}}, + {0x10a5, {1|F|D, {0x2d05}}}, + {0x10a6, {1|F|D, {0x2d06}}}, + {0x10a7, {1|F|D, {0x2d07}}}, + {0x10a8, {1|F|D, {0x2d08}}}, + {0x10a9, {1|F|D, {0x2d09}}}, + {0x10aa, {1|F|D, {0x2d0a}}}, + {0x10ab, {1|F|D, {0x2d0b}}}, + {0x10ac, {1|F|D, {0x2d0c}}}, + {0x10ad, {1|F|D, {0x2d0d}}}, + {0x10ae, {1|F|D, {0x2d0e}}}, + {0x10af, {1|F|D, {0x2d0f}}}, + {0x10b0, {1|F|D, {0x2d10}}}, + {0x10b1, {1|F|D, {0x2d11}}}, + {0x10b2, {1|F|D, {0x2d12}}}, + {0x10b3, {1|F|D, {0x2d13}}}, + {0x10b4, {1|F|D, {0x2d14}}}, + {0x10b5, {1|F|D, {0x2d15}}}, + {0x10b6, {1|F|D, {0x2d16}}}, + {0x10b7, {1|F|D, {0x2d17}}}, + {0x10b8, {1|F|D, {0x2d18}}}, + {0x10b9, {1|F|D, {0x2d19}}}, + {0x10ba, {1|F|D, {0x2d1a}}}, + {0x10bb, {1|F|D, {0x2d1b}}}, + {0x10bc, {1|F|D, {0x2d1c}}}, + {0x10bd, {1|F|D, {0x2d1d}}}, + {0x10be, {1|F|D, {0x2d1e}}}, + {0x10bf, {1|F|D, {0x2d1f}}}, + {0x10c0, {1|F|D, {0x2d20}}}, + {0x10c1, {1|F|D, {0x2d21}}}, + {0x10c2, {1|F|D, {0x2d22}}}, + {0x10c3, {1|F|D, {0x2d23}}}, + {0x10c4, {1|F|D, {0x2d24}}}, + {0x10c5, {1|F|D, {0x2d25}}}, + {0x10c7, {1|F|D, {0x2d27}}}, + {0x10cd, {1|F|D, {0x2d2d}}}, + {0x13f8, {1|F|U, {0x13f0}}}, + {0x13f9, {1|F|U, {0x13f1}}}, + {0x13fa, {1|F|U, {0x13f2}}}, + {0x13fb, {1|F|U, {0x13f3}}}, + {0x13fc, {1|F|U, {0x13f4}}}, + {0x13fd, {1|F|U, {0x13f5}}}, + {0x1c80, {1|F|SU|I(45), {0x0432}}}, + {0x1c81, {1|F|SU|I(46), {0x0434}}}, + {0x1c82, {1|F|SU|I(47), {0x043e}}}, + {0x1c83, {1|F|SU|I(48), {0x0441}}}, + {0x1c84, {1|F|SU|I(49), {0x0442}}}, + {0x1c85, {1|F|SU|I(50), {0x0442}}}, + {0x1c86, {1|F|SU|I(51), {0x044a}}}, + {0x1c87, {1|F|SU|I(52), {0x0463}}}, + {0x1c88, {1|F|SU|I(53), {0xa64b}}}, + {0x1c90, {1|F|D, {0x10d0}}}, + {0x1c91, {1|F|D, {0x10d1}}}, + {0x1c92, {1|F|D, {0x10d2}}}, + {0x1c93, {1|F|D, {0x10d3}}}, + {0x1c94, {1|F|D, {0x10d4}}}, + {0x1c95, {1|F|D, {0x10d5}}}, + {0x1c96, {1|F|D, {0x10d6}}}, + {0x1c97, {1|F|D, {0x10d7}}}, + {0x1c98, {1|F|D, {0x10d8}}}, + {0x1c99, {1|F|D, {0x10d9}}}, + {0x1c9a, {1|F|D, {0x10da}}}, + {0x1c9b, {1|F|D, {0x10db}}}, + {0x1c9c, {1|F|D, {0x10dc}}}, + {0x1c9d, {1|F|D, {0x10dd}}}, + {0x1c9e, {1|F|D, {0x10de}}}, + {0x1c9f, {1|F|D, {0x10df}}}, + {0x1ca0, {1|F|D, {0x10e0}}}, + {0x1ca1, {1|F|D, {0x10e1}}}, + {0x1ca2, {1|F|D, {0x10e2}}}, + {0x1ca3, {1|F|D, {0x10e3}}}, + {0x1ca4, {1|F|D, {0x10e4}}}, + {0x1ca5, {1|F|D, {0x10e5}}}, + {0x1ca6, {1|F|D, {0x10e6}}}, + {0x1ca7, {1|F|D, {0x10e7}}}, + {0x1ca8, {1|F|D, {0x10e8}}}, + {0x1ca9, {1|F|D, {0x10e9}}}, + {0x1caa, {1|F|D, {0x10ea}}}, + {0x1cab, {1|F|D, {0x10eb}}}, + {0x1cac, {1|F|D, {0x10ec}}}, + {0x1cad, {1|F|D, {0x10ed}}}, + {0x1cae, {1|F|D, {0x10ee}}}, + {0x1caf, {1|F|D, {0x10ef}}}, + {0x1cb0, {1|F|D, {0x10f0}}}, + {0x1cb1, {1|F|D, {0x10f1}}}, + {0x1cb2, {1|F|D, {0x10f2}}}, + {0x1cb3, {1|F|D, {0x10f3}}}, + {0x1cb4, {1|F|D, {0x10f4}}}, + {0x1cb5, {1|F|D, {0x10f5}}}, + {0x1cb6, {1|F|D, {0x10f6}}}, + {0x1cb7, {1|F|D, {0x10f7}}}, + {0x1cb8, {1|F|D, {0x10f8}}}, + {0x1cb9, {1|F|D, {0x10f9}}}, + {0x1cba, {1|F|D, {0x10fa}}}, + {0x1cbd, {1|F|D, {0x10fd}}}, + {0x1cbe, {1|F|D, {0x10fe}}}, + {0x1cbf, {1|F|D, {0x10ff}}}, + {0x1e00, {1|F|D, {0x1e01}}}, + {0x1e02, {1|F|D, {0x1e03}}}, + {0x1e04, {1|F|D, {0x1e05}}}, + {0x1e06, {1|F|D, {0x1e07}}}, + {0x1e08, {1|F|D, {0x1e09}}}, + {0x1e0a, {1|F|D, {0x1e0b}}}, + {0x1e0c, {1|F|D, {0x1e0d}}}, + {0x1e0e, {1|F|D, {0x1e0f}}}, + {0x1e10, {1|F|D, {0x1e11}}}, + {0x1e12, {1|F|D, {0x1e13}}}, + {0x1e14, {1|F|D, {0x1e15}}}, + {0x1e16, {1|F|D, {0x1e17}}}, + {0x1e18, {1|F|D, {0x1e19}}}, + {0x1e1a, {1|F|D, {0x1e1b}}}, + {0x1e1c, {1|F|D, {0x1e1d}}}, + {0x1e1e, {1|F|D, {0x1e1f}}}, + {0x1e20, {1|F|D, {0x1e21}}}, + {0x1e22, {1|F|D, {0x1e23}}}, + {0x1e24, {1|F|D, {0x1e25}}}, + {0x1e26, {1|F|D, {0x1e27}}}, + {0x1e28, {1|F|D, {0x1e29}}}, + {0x1e2a, {1|F|D, {0x1e2b}}}, + {0x1e2c, {1|F|D, {0x1e2d}}}, + {0x1e2e, {1|F|D, {0x1e2f}}}, + {0x1e30, {1|F|D, {0x1e31}}}, + {0x1e32, {1|F|D, {0x1e33}}}, + {0x1e34, {1|F|D, {0x1e35}}}, + {0x1e36, {1|F|D, {0x1e37}}}, + {0x1e38, {1|F|D, {0x1e39}}}, + {0x1e3a, {1|F|D, {0x1e3b}}}, + {0x1e3c, {1|F|D, {0x1e3d}}}, + {0x1e3e, {1|F|D, {0x1e3f}}}, + {0x1e40, {1|F|D, {0x1e41}}}, + {0x1e42, {1|F|D, {0x1e43}}}, + {0x1e44, {1|F|D, {0x1e45}}}, + {0x1e46, {1|F|D, {0x1e47}}}, + {0x1e48, {1|F|D, {0x1e49}}}, + {0x1e4a, {1|F|D, {0x1e4b}}}, + {0x1e4c, {1|F|D, {0x1e4d}}}, + {0x1e4e, {1|F|D, {0x1e4f}}}, + {0x1e50, {1|F|D, {0x1e51}}}, + {0x1e52, {1|F|D, {0x1e53}}}, + {0x1e54, {1|F|D, {0x1e55}}}, + {0x1e56, {1|F|D, {0x1e57}}}, + {0x1e58, {1|F|D, {0x1e59}}}, + {0x1e5a, {1|F|D, {0x1e5b}}}, + {0x1e5c, {1|F|D, {0x1e5d}}}, + {0x1e5e, {1|F|D, {0x1e5f}}}, + {0x1e60, {1|F|D, {0x1e61}}}, + {0x1e62, {1|F|D, {0x1e63}}}, + {0x1e64, {1|F|D, {0x1e65}}}, + {0x1e66, {1|F|D, {0x1e67}}}, + {0x1e68, {1|F|D, {0x1e69}}}, + {0x1e6a, {1|F|D, {0x1e6b}}}, + {0x1e6c, {1|F|D, {0x1e6d}}}, + {0x1e6e, {1|F|D, {0x1e6f}}}, + {0x1e70, {1|F|D, {0x1e71}}}, + {0x1e72, {1|F|D, {0x1e73}}}, + {0x1e74, {1|F|D, {0x1e75}}}, + {0x1e76, {1|F|D, {0x1e77}}}, + {0x1e78, {1|F|D, {0x1e79}}}, + {0x1e7a, {1|F|D, {0x1e7b}}}, + {0x1e7c, {1|F|D, {0x1e7d}}}, + {0x1e7e, {1|F|D, {0x1e7f}}}, + {0x1e80, {1|F|D, {0x1e81}}}, + {0x1e82, {1|F|D, {0x1e83}}}, + {0x1e84, {1|F|D, {0x1e85}}}, + {0x1e86, {1|F|D, {0x1e87}}}, + {0x1e88, {1|F|D, {0x1e89}}}, + {0x1e8a, {1|F|D, {0x1e8b}}}, + {0x1e8c, {1|F|D, {0x1e8d}}}, + {0x1e8e, {1|F|D, {0x1e8f}}}, + {0x1e90, {1|F|D, {0x1e91}}}, + {0x1e92, {1|F|D, {0x1e93}}}, + {0x1e94, {1|F|D, {0x1e95}}}, + {0x1e96, {2|F|SU|I(54), {0x0068, 0x0331}}}, + {0x1e97, {2|F|SU|I(56), {0x0074, 0x0308}}}, + {0x1e98, {2|F|SU|I(58), {0x0077, 0x030a}}}, + {0x1e99, {2|F|SU|I(60), {0x0079, 0x030a}}}, + {0x1e9a, {2|F|SU|I(62), {0x0061, 0x02be}}}, + {0x1e9b, {1|F|SU|I(64), {0x1e61}}}, + {0x1e9e, {2|F|SL|I(65), {0x0073, 0x0073}}}, + {0x1ea0, {1|F|D, {0x1ea1}}}, + {0x1ea2, {1|F|D, {0x1ea3}}}, + {0x1ea4, {1|F|D, {0x1ea5}}}, + {0x1ea6, {1|F|D, {0x1ea7}}}, + {0x1ea8, {1|F|D, {0x1ea9}}}, + {0x1eaa, {1|F|D, {0x1eab}}}, + {0x1eac, {1|F|D, {0x1ead}}}, + {0x1eae, {1|F|D, {0x1eaf}}}, + {0x1eb0, {1|F|D, {0x1eb1}}}, + {0x1eb2, {1|F|D, {0x1eb3}}}, + {0x1eb4, {1|F|D, {0x1eb5}}}, + {0x1eb6, {1|F|D, {0x1eb7}}}, + {0x1eb8, {1|F|D, {0x1eb9}}}, + {0x1eba, {1|F|D, {0x1ebb}}}, + {0x1ebc, {1|F|D, {0x1ebd}}}, + {0x1ebe, {1|F|D, {0x1ebf}}}, + {0x1ec0, {1|F|D, {0x1ec1}}}, + {0x1ec2, {1|F|D, {0x1ec3}}}, + {0x1ec4, {1|F|D, {0x1ec5}}}, + {0x1ec6, {1|F|D, {0x1ec7}}}, + {0x1ec8, {1|F|D, {0x1ec9}}}, + {0x1eca, {1|F|D, {0x1ecb}}}, + {0x1ecc, {1|F|D, {0x1ecd}}}, + {0x1ece, {1|F|D, {0x1ecf}}}, + {0x1ed0, {1|F|D, {0x1ed1}}}, + {0x1ed2, {1|F|D, {0x1ed3}}}, + {0x1ed4, {1|F|D, {0x1ed5}}}, + {0x1ed6, {1|F|D, {0x1ed7}}}, + {0x1ed8, {1|F|D, {0x1ed9}}}, + {0x1eda, {1|F|D, {0x1edb}}}, + {0x1edc, {1|F|D, {0x1edd}}}, + {0x1ede, {1|F|D, {0x1edf}}}, + {0x1ee0, {1|F|D, {0x1ee1}}}, + {0x1ee2, {1|F|D, {0x1ee3}}}, + {0x1ee4, {1|F|D, {0x1ee5}}}, + {0x1ee6, {1|F|D, {0x1ee7}}}, + {0x1ee8, {1|F|D, {0x1ee9}}}, + {0x1eea, {1|F|D, {0x1eeb}}}, + {0x1eec, {1|F|D, {0x1eed}}}, + {0x1eee, {1|F|D, {0x1eef}}}, + {0x1ef0, {1|F|D, {0x1ef1}}}, + {0x1ef2, {1|F|D, {0x1ef3}}}, + {0x1ef4, {1|F|D, {0x1ef5}}}, + {0x1ef6, {1|F|D, {0x1ef7}}}, + {0x1ef8, {1|F|D, {0x1ef9}}}, + {0x1efa, {1|F|D, {0x1efb}}}, + {0x1efc, {1|F|D, {0x1efd}}}, + {0x1efe, {1|F|D, {0x1eff}}}, + {0x1f08, {1|F|D, {0x1f00}}}, + {0x1f09, {1|F|D, {0x1f01}}}, + {0x1f0a, {1|F|D, {0x1f02}}}, + {0x1f0b, {1|F|D, {0x1f03}}}, + {0x1f0c, {1|F|D, {0x1f04}}}, + {0x1f0d, {1|F|D, {0x1f05}}}, + {0x1f0e, {1|F|D, {0x1f06}}}, + {0x1f0f, {1|F|D, {0x1f07}}}, + {0x1f18, {1|F|D, {0x1f10}}}, + {0x1f19, {1|F|D, {0x1f11}}}, + {0x1f1a, {1|F|D, {0x1f12}}}, + {0x1f1b, {1|F|D, {0x1f13}}}, + {0x1f1c, {1|F|D, {0x1f14}}}, + {0x1f1d, {1|F|D, {0x1f15}}}, + {0x1f28, {1|F|D, {0x1f20}}}, + {0x1f29, {1|F|D, {0x1f21}}}, + {0x1f2a, {1|F|D, {0x1f22}}}, + {0x1f2b, {1|F|D, {0x1f23}}}, + {0x1f2c, {1|F|D, {0x1f24}}}, + {0x1f2d, {1|F|D, {0x1f25}}}, + {0x1f2e, {1|F|D, {0x1f26}}}, + {0x1f2f, {1|F|D, {0x1f27}}}, + {0x1f38, {1|F|D, {0x1f30}}}, + {0x1f39, {1|F|D, {0x1f31}}}, + {0x1f3a, {1|F|D, {0x1f32}}}, + {0x1f3b, {1|F|D, {0x1f33}}}, + {0x1f3c, {1|F|D, {0x1f34}}}, + {0x1f3d, {1|F|D, {0x1f35}}}, + {0x1f3e, {1|F|D, {0x1f36}}}, + {0x1f3f, {1|F|D, {0x1f37}}}, + {0x1f48, {1|F|D, {0x1f40}}}, + {0x1f49, {1|F|D, {0x1f41}}}, + {0x1f4a, {1|F|D, {0x1f42}}}, + {0x1f4b, {1|F|D, {0x1f43}}}, + {0x1f4c, {1|F|D, {0x1f44}}}, + {0x1f4d, {1|F|D, {0x1f45}}}, + {0x1f50, {2|F|SU|I(66), {0x03c5, 0x0313}}}, + {0x1f52, {3|F|SU|I(68), {0x03c5, 0x0313, 0x0300}}}, + {0x1f54, {3|F|SU|I(71), {0x03c5, 0x0313, 0x0301}}}, + {0x1f56, {3|F|SU|I(74), {0x03c5, 0x0313, 0x0342}}}, + {0x1f59, {1|F|D, {0x1f51}}}, + {0x1f5b, {1|F|D, {0x1f53}}}, + {0x1f5d, {1|F|D, {0x1f55}}}, + {0x1f5f, {1|F|D, {0x1f57}}}, + {0x1f68, {1|F|D, {0x1f60}}}, + {0x1f69, {1|F|D, {0x1f61}}}, + {0x1f6a, {1|F|D, {0x1f62}}}, + {0x1f6b, {1|F|D, {0x1f63}}}, + {0x1f6c, {1|F|D, {0x1f64}}}, + {0x1f6d, {1|F|D, {0x1f65}}}, + {0x1f6e, {1|F|D, {0x1f66}}}, + {0x1f6f, {1|F|D, {0x1f67}}}, + {0x1f80, {2|F|ST|SU|I(77), {0x1f00, 0x03b9}}}, + {0x1f81, {2|F|ST|SU|I(80), {0x1f01, 0x03b9}}}, + {0x1f82, {2|F|ST|SU|I(83), {0x1f02, 0x03b9}}}, + {0x1f83, {2|F|ST|SU|I(86), {0x1f03, 0x03b9}}}, + {0x1f84, {2|F|ST|SU|I(89), {0x1f04, 0x03b9}}}, + {0x1f85, {2|F|ST|SU|I(92), {0x1f05, 0x03b9}}}, + {0x1f86, {2|F|ST|SU|I(95), {0x1f06, 0x03b9}}}, + {0x1f87, {2|F|ST|SU|I(98), {0x1f07, 0x03b9}}}, + {0x1f88, {2|F|IT|SL|SU|I(101), {0x1f00, 0x03b9}}}, + {0x1f89, {2|F|IT|SL|SU|I(106), {0x1f01, 0x03b9}}}, + {0x1f8a, {2|F|IT|SL|SU|I(111), {0x1f02, 0x03b9}}}, + {0x1f8b, {2|F|IT|SL|SU|I(116), {0x1f03, 0x03b9}}}, + {0x1f8c, {2|F|IT|SL|SU|I(121), {0x1f04, 0x03b9}}}, + {0x1f8d, {2|F|IT|SL|SU|I(126), {0x1f05, 0x03b9}}}, + {0x1f8e, {2|F|IT|SL|SU|I(131), {0x1f06, 0x03b9}}}, + {0x1f8f, {2|F|IT|SL|SU|I(136), {0x1f07, 0x03b9}}}, + {0x1f90, {2|F|ST|SU|I(141), {0x1f20, 0x03b9}}}, + {0x1f91, {2|F|ST|SU|I(144), {0x1f21, 0x03b9}}}, + {0x1f92, {2|F|ST|SU|I(147), {0x1f22, 0x03b9}}}, + {0x1f93, {2|F|ST|SU|I(150), {0x1f23, 0x03b9}}}, + {0x1f94, {2|F|ST|SU|I(153), {0x1f24, 0x03b9}}}, + {0x1f95, {2|F|ST|SU|I(156), {0x1f25, 0x03b9}}}, + {0x1f96, {2|F|ST|SU|I(159), {0x1f26, 0x03b9}}}, + {0x1f97, {2|F|ST|SU|I(162), {0x1f27, 0x03b9}}}, + {0x1f98, {2|F|IT|SL|SU|I(165), {0x1f20, 0x03b9}}}, + {0x1f99, {2|F|IT|SL|SU|I(170), {0x1f21, 0x03b9}}}, + {0x1f9a, {2|F|IT|SL|SU|I(175), {0x1f22, 0x03b9}}}, + {0x1f9b, {2|F|IT|SL|SU|I(180), {0x1f23, 0x03b9}}}, + {0x1f9c, {2|F|IT|SL|SU|I(185), {0x1f24, 0x03b9}}}, + {0x1f9d, {2|F|IT|SL|SU|I(190), {0x1f25, 0x03b9}}}, + {0x1f9e, {2|F|IT|SL|SU|I(195), {0x1f26, 0x03b9}}}, + {0x1f9f, {2|F|IT|SL|SU|I(200), {0x1f27, 0x03b9}}}, + {0x1fa0, {2|F|ST|SU|I(205), {0x1f60, 0x03b9}}}, + {0x1fa1, {2|F|ST|SU|I(208), {0x1f61, 0x03b9}}}, + {0x1fa2, {2|F|ST|SU|I(211), {0x1f62, 0x03b9}}}, + {0x1fa3, {2|F|ST|SU|I(214), {0x1f63, 0x03b9}}}, + {0x1fa4, {2|F|ST|SU|I(217), {0x1f64, 0x03b9}}}, + {0x1fa5, {2|F|ST|SU|I(220), {0x1f65, 0x03b9}}}, + {0x1fa6, {2|F|ST|SU|I(223), {0x1f66, 0x03b9}}}, + {0x1fa7, {2|F|ST|SU|I(226), {0x1f67, 0x03b9}}}, + {0x1fa8, {2|F|IT|SL|SU|I(229), {0x1f60, 0x03b9}}}, + {0x1fa9, {2|F|IT|SL|SU|I(234), {0x1f61, 0x03b9}}}, + {0x1faa, {2|F|IT|SL|SU|I(239), {0x1f62, 0x03b9}}}, + {0x1fab, {2|F|IT|SL|SU|I(244), {0x1f63, 0x03b9}}}, + {0x1fac, {2|F|IT|SL|SU|I(249), {0x1f64, 0x03b9}}}, + {0x1fad, {2|F|IT|SL|SU|I(254), {0x1f65, 0x03b9}}}, + {0x1fae, {2|F|IT|SL|SU|I(259), {0x1f66, 0x03b9}}}, + {0x1faf, {2|F|IT|SL|SU|I(264), {0x1f67, 0x03b9}}}, + {0x1fb2, {2|F|ST|SU|I(269), {0x1f70, 0x03b9}}}, + {0x1fb3, {2|F|ST|SU|I(273), {0x03b1, 0x03b9}}}, + {0x1fb4, {2|F|ST|SU|I(276), {0x03ac, 0x03b9}}}, + {0x1fb6, {2|F|SU|I(280), {0x03b1, 0x0342}}}, + {0x1fb7, {3|F|ST|SU|I(282), {0x03b1, 0x0342, 0x03b9}}}, + {0x1fb8, {1|F|D, {0x1fb0}}}, + {0x1fb9, {1|F|D, {0x1fb1}}}, + {0x1fba, {1|F|D, {0x1f70}}}, + {0x1fbb, {1|F|D, {0x1f71}}}, + {0x1fbc, {2|F|IT|SL|SU|I(288), {0x03b1, 0x03b9}}}, + {0x1fbe, {1|F|SU|I(293), {0x03b9}}}, + {0x1fc2, {2|F|ST|SU|I(294), {0x1f74, 0x03b9}}}, + {0x1fc3, {2|F|ST|SU|I(298), {0x03b7, 0x03b9}}}, + {0x1fc4, {2|F|ST|SU|I(301), {0x03ae, 0x03b9}}}, + {0x1fc6, {2|F|SU|I(305), {0x03b7, 0x0342}}}, + {0x1fc7, {3|F|ST|SU|I(307), {0x03b7, 0x0342, 0x03b9}}}, + {0x1fc8, {1|F|D, {0x1f72}}}, + {0x1fc9, {1|F|D, {0x1f73}}}, + {0x1fca, {1|F|D, {0x1f74}}}, + {0x1fcb, {1|F|D, {0x1f75}}}, + {0x1fcc, {2|F|IT|SL|SU|I(313), {0x03b7, 0x03b9}}}, + {0x1fd2, {3|F|SU|I(318), {0x03b9, 0x0308, 0x0300}}}, + {0x1fd3, {3|F|SU|I(321), {0x03b9, 0x0308, 0x0301}}}, + {0x1fd6, {2|F|SU|I(324), {0x03b9, 0x0342}}}, + {0x1fd7, {3|F|SU|I(326), {0x03b9, 0x0308, 0x0342}}}, + {0x1fd8, {1|F|D, {0x1fd0}}}, + {0x1fd9, {1|F|D, {0x1fd1}}}, + {0x1fda, {1|F|D, {0x1f76}}}, + {0x1fdb, {1|F|D, {0x1f77}}}, + {0x1fe2, {3|F|SU|I(329), {0x03c5, 0x0308, 0x0300}}}, + {0x1fe3, {3|F|SU|I(332), {0x03c5, 0x0308, 0x0301}}}, + {0x1fe4, {2|F|SU|I(335), {0x03c1, 0x0313}}}, + {0x1fe6, {2|F|SU|I(337), {0x03c5, 0x0342}}}, + {0x1fe7, {3|F|SU|I(339), {0x03c5, 0x0308, 0x0342}}}, + {0x1fe8, {1|F|D, {0x1fe0}}}, + {0x1fe9, {1|F|D, {0x1fe1}}}, + {0x1fea, {1|F|D, {0x1f7a}}}, + {0x1feb, {1|F|D, {0x1f7b}}}, + {0x1fec, {1|F|D, {0x1fe5}}}, + {0x1ff2, {2|F|ST|SU|I(342), {0x1f7c, 0x03b9}}}, + {0x1ff3, {2|F|ST|SU|I(346), {0x03c9, 0x03b9}}}, + {0x1ff4, {2|F|ST|SU|I(349), {0x03ce, 0x03b9}}}, + {0x1ff6, {2|F|SU|I(353), {0x03c9, 0x0342}}}, + {0x1ff7, {3|F|ST|SU|I(355), {0x03c9, 0x0342, 0x03b9}}}, + {0x1ff8, {1|F|D, {0x1f78}}}, + {0x1ff9, {1|F|D, {0x1f79}}}, + {0x1ffa, {1|F|D, {0x1f7c}}}, + {0x1ffb, {1|F|D, {0x1f7d}}}, + {0x1ffc, {2|F|IT|SL|SU|I(361), {0x03c9, 0x03b9}}}, + {0x2126, {1|F|D, {0x03c9}}}, + {0x212a, {1|F|D, {0x006b}}}, + {0x212b, {1|F|D, {0x00e5}}}, + {0x2132, {1|F|D, {0x214e}}}, + {0x2160, {1|F|D, {0x2170}}}, + {0x2161, {1|F|D, {0x2171}}}, + {0x2162, {1|F|D, {0x2172}}}, + {0x2163, {1|F|D, {0x2173}}}, + {0x2164, {1|F|D, {0x2174}}}, + {0x2165, {1|F|D, {0x2175}}}, + {0x2166, {1|F|D, {0x2176}}}, + {0x2167, {1|F|D, {0x2177}}}, + {0x2168, {1|F|D, {0x2178}}}, + {0x2169, {1|F|D, {0x2179}}}, + {0x216a, {1|F|D, {0x217a}}}, + {0x216b, {1|F|D, {0x217b}}}, + {0x216c, {1|F|D, {0x217c}}}, + {0x216d, {1|F|D, {0x217d}}}, + {0x216e, {1|F|D, {0x217e}}}, + {0x216f, {1|F|D, {0x217f}}}, + {0x2183, {1|F|D, {0x2184}}}, + {0x24b6, {1|F|D, {0x24d0}}}, + {0x24b7, {1|F|D, {0x24d1}}}, + {0x24b8, {1|F|D, {0x24d2}}}, + {0x24b9, {1|F|D, {0x24d3}}}, + {0x24ba, {1|F|D, {0x24d4}}}, + {0x24bb, {1|F|D, {0x24d5}}}, + {0x24bc, {1|F|D, {0x24d6}}}, + {0x24bd, {1|F|D, {0x24d7}}}, + {0x24be, {1|F|D, {0x24d8}}}, + {0x24bf, {1|F|D, {0x24d9}}}, + {0x24c0, {1|F|D, {0x24da}}}, + {0x24c1, {1|F|D, {0x24db}}}, + {0x24c2, {1|F|D, {0x24dc}}}, + {0x24c3, {1|F|D, {0x24dd}}}, + {0x24c4, {1|F|D, {0x24de}}}, + {0x24c5, {1|F|D, {0x24df}}}, + {0x24c6, {1|F|D, {0x24e0}}}, + {0x24c7, {1|F|D, {0x24e1}}}, + {0x24c8, {1|F|D, {0x24e2}}}, + {0x24c9, {1|F|D, {0x24e3}}}, + {0x24ca, {1|F|D, {0x24e4}}}, + {0x24cb, {1|F|D, {0x24e5}}}, + {0x24cc, {1|F|D, {0x24e6}}}, + {0x24cd, {1|F|D, {0x24e7}}}, + {0x24ce, {1|F|D, {0x24e8}}}, + {0x24cf, {1|F|D, {0x24e9}}}, + {0x2c00, {1|F|D, {0x2c30}}}, + {0x2c01, {1|F|D, {0x2c31}}}, + {0x2c02, {1|F|D, {0x2c32}}}, + {0x2c03, {1|F|D, {0x2c33}}}, + {0x2c04, {1|F|D, {0x2c34}}}, + {0x2c05, {1|F|D, {0x2c35}}}, + {0x2c06, {1|F|D, {0x2c36}}}, + {0x2c07, {1|F|D, {0x2c37}}}, + {0x2c08, {1|F|D, {0x2c38}}}, + {0x2c09, {1|F|D, {0x2c39}}}, + {0x2c0a, {1|F|D, {0x2c3a}}}, + {0x2c0b, {1|F|D, {0x2c3b}}}, + {0x2c0c, {1|F|D, {0x2c3c}}}, + {0x2c0d, {1|F|D, {0x2c3d}}}, + {0x2c0e, {1|F|D, {0x2c3e}}}, + {0x2c0f, {1|F|D, {0x2c3f}}}, + {0x2c10, {1|F|D, {0x2c40}}}, + {0x2c11, {1|F|D, {0x2c41}}}, + {0x2c12, {1|F|D, {0x2c42}}}, + {0x2c13, {1|F|D, {0x2c43}}}, + {0x2c14, {1|F|D, {0x2c44}}}, + {0x2c15, {1|F|D, {0x2c45}}}, + {0x2c16, {1|F|D, {0x2c46}}}, + {0x2c17, {1|F|D, {0x2c47}}}, + {0x2c18, {1|F|D, {0x2c48}}}, + {0x2c19, {1|F|D, {0x2c49}}}, + {0x2c1a, {1|F|D, {0x2c4a}}}, + {0x2c1b, {1|F|D, {0x2c4b}}}, + {0x2c1c, {1|F|D, {0x2c4c}}}, + {0x2c1d, {1|F|D, {0x2c4d}}}, + {0x2c1e, {1|F|D, {0x2c4e}}}, + {0x2c1f, {1|F|D, {0x2c4f}}}, + {0x2c20, {1|F|D, {0x2c50}}}, + {0x2c21, {1|F|D, {0x2c51}}}, + {0x2c22, {1|F|D, {0x2c52}}}, + {0x2c23, {1|F|D, {0x2c53}}}, + {0x2c24, {1|F|D, {0x2c54}}}, + {0x2c25, {1|F|D, {0x2c55}}}, + {0x2c26, {1|F|D, {0x2c56}}}, + {0x2c27, {1|F|D, {0x2c57}}}, + {0x2c28, {1|F|D, {0x2c58}}}, + {0x2c29, {1|F|D, {0x2c59}}}, + {0x2c2a, {1|F|D, {0x2c5a}}}, + {0x2c2b, {1|F|D, {0x2c5b}}}, + {0x2c2c, {1|F|D, {0x2c5c}}}, + {0x2c2d, {1|F|D, {0x2c5d}}}, + {0x2c2e, {1|F|D, {0x2c5e}}}, + {0x2c2f, {1|F|D, {0x2c5f}}}, + {0x2c60, {1|F|D, {0x2c61}}}, + {0x2c62, {1|F|D, {0x026b}}}, + {0x2c63, {1|F|D, {0x1d7d}}}, + {0x2c64, {1|F|D, {0x027d}}}, + {0x2c67, {1|F|D, {0x2c68}}}, + {0x2c69, {1|F|D, {0x2c6a}}}, + {0x2c6b, {1|F|D, {0x2c6c}}}, + {0x2c6d, {1|F|D, {0x0251}}}, + {0x2c6e, {1|F|D, {0x0271}}}, + {0x2c6f, {1|F|D, {0x0250}}}, + {0x2c70, {1|F|D, {0x0252}}}, + {0x2c72, {1|F|D, {0x2c73}}}, + {0x2c75, {1|F|D, {0x2c76}}}, + {0x2c7e, {1|F|D, {0x023f}}}, + {0x2c7f, {1|F|D, {0x0240}}}, + {0x2c80, {1|F|D, {0x2c81}}}, + {0x2c82, {1|F|D, {0x2c83}}}, + {0x2c84, {1|F|D, {0x2c85}}}, + {0x2c86, {1|F|D, {0x2c87}}}, + {0x2c88, {1|F|D, {0x2c89}}}, + {0x2c8a, {1|F|D, {0x2c8b}}}, + {0x2c8c, {1|F|D, {0x2c8d}}}, + {0x2c8e, {1|F|D, {0x2c8f}}}, + {0x2c90, {1|F|D, {0x2c91}}}, + {0x2c92, {1|F|D, {0x2c93}}}, + {0x2c94, {1|F|D, {0x2c95}}}, + {0x2c96, {1|F|D, {0x2c97}}}, + {0x2c98, {1|F|D, {0x2c99}}}, + {0x2c9a, {1|F|D, {0x2c9b}}}, + {0x2c9c, {1|F|D, {0x2c9d}}}, + {0x2c9e, {1|F|D, {0x2c9f}}}, + {0x2ca0, {1|F|D, {0x2ca1}}}, + {0x2ca2, {1|F|D, {0x2ca3}}}, + {0x2ca4, {1|F|D, {0x2ca5}}}, + {0x2ca6, {1|F|D, {0x2ca7}}}, + {0x2ca8, {1|F|D, {0x2ca9}}}, + {0x2caa, {1|F|D, {0x2cab}}}, + {0x2cac, {1|F|D, {0x2cad}}}, + {0x2cae, {1|F|D, {0x2caf}}}, + {0x2cb0, {1|F|D, {0x2cb1}}}, + {0x2cb2, {1|F|D, {0x2cb3}}}, + {0x2cb4, {1|F|D, {0x2cb5}}}, + {0x2cb6, {1|F|D, {0x2cb7}}}, + {0x2cb8, {1|F|D, {0x2cb9}}}, + {0x2cba, {1|F|D, {0x2cbb}}}, + {0x2cbc, {1|F|D, {0x2cbd}}}, + {0x2cbe, {1|F|D, {0x2cbf}}}, + {0x2cc0, {1|F|D, {0x2cc1}}}, + {0x2cc2, {1|F|D, {0x2cc3}}}, + {0x2cc4, {1|F|D, {0x2cc5}}}, + {0x2cc6, {1|F|D, {0x2cc7}}}, + {0x2cc8, {1|F|D, {0x2cc9}}}, + {0x2cca, {1|F|D, {0x2ccb}}}, + {0x2ccc, {1|F|D, {0x2ccd}}}, + {0x2cce, {1|F|D, {0x2ccf}}}, + {0x2cd0, {1|F|D, {0x2cd1}}}, + {0x2cd2, {1|F|D, {0x2cd3}}}, + {0x2cd4, {1|F|D, {0x2cd5}}}, + {0x2cd6, {1|F|D, {0x2cd7}}}, + {0x2cd8, {1|F|D, {0x2cd9}}}, + {0x2cda, {1|F|D, {0x2cdb}}}, + {0x2cdc, {1|F|D, {0x2cdd}}}, + {0x2cde, {1|F|D, {0x2cdf}}}, + {0x2ce0, {1|F|D, {0x2ce1}}}, + {0x2ce2, {1|F|D, {0x2ce3}}}, + {0x2ceb, {1|F|D, {0x2cec}}}, + {0x2ced, {1|F|D, {0x2cee}}}, + {0x2cf2, {1|F|D, {0x2cf3}}}, + {0xa640, {1|F|D, {0xa641}}}, + {0xa642, {1|F|D, {0xa643}}}, + {0xa644, {1|F|D, {0xa645}}}, + {0xa646, {1|F|D, {0xa647}}}, + {0xa648, {1|F|D, {0xa649}}}, + {0xa64a, {1|F|D, {0xa64b}}}, + {0xa64c, {1|F|D, {0xa64d}}}, + {0xa64e, {1|F|D, {0xa64f}}}, + {0xa650, {1|F|D, {0xa651}}}, + {0xa652, {1|F|D, {0xa653}}}, + {0xa654, {1|F|D, {0xa655}}}, + {0xa656, {1|F|D, {0xa657}}}, + {0xa658, {1|F|D, {0xa659}}}, + {0xa65a, {1|F|D, {0xa65b}}}, + {0xa65c, {1|F|D, {0xa65d}}}, + {0xa65e, {1|F|D, {0xa65f}}}, + {0xa660, {1|F|D, {0xa661}}}, + {0xa662, {1|F|D, {0xa663}}}, + {0xa664, {1|F|D, {0xa665}}}, + {0xa666, {1|F|D, {0xa667}}}, + {0xa668, {1|F|D, {0xa669}}}, + {0xa66a, {1|F|D, {0xa66b}}}, + {0xa66c, {1|F|D, {0xa66d}}}, + {0xa680, {1|F|D, {0xa681}}}, + {0xa682, {1|F|D, {0xa683}}}, + {0xa684, {1|F|D, {0xa685}}}, + {0xa686, {1|F|D, {0xa687}}}, + {0xa688, {1|F|D, {0xa689}}}, + {0xa68a, {1|F|D, {0xa68b}}}, + {0xa68c, {1|F|D, {0xa68d}}}, + {0xa68e, {1|F|D, {0xa68f}}}, + {0xa690, {1|F|D, {0xa691}}}, + {0xa692, {1|F|D, {0xa693}}}, + {0xa694, {1|F|D, {0xa695}}}, + {0xa696, {1|F|D, {0xa697}}}, + {0xa698, {1|F|D, {0xa699}}}, + {0xa69a, {1|F|D, {0xa69b}}}, + {0xa722, {1|F|D, {0xa723}}}, + {0xa724, {1|F|D, {0xa725}}}, + {0xa726, {1|F|D, {0xa727}}}, + {0xa728, {1|F|D, {0xa729}}}, + {0xa72a, {1|F|D, {0xa72b}}}, + {0xa72c, {1|F|D, {0xa72d}}}, + {0xa72e, {1|F|D, {0xa72f}}}, + {0xa732, {1|F|D, {0xa733}}}, + {0xa734, {1|F|D, {0xa735}}}, + {0xa736, {1|F|D, {0xa737}}}, + {0xa738, {1|F|D, {0xa739}}}, + {0xa73a, {1|F|D, {0xa73b}}}, + {0xa73c, {1|F|D, {0xa73d}}}, + {0xa73e, {1|F|D, {0xa73f}}}, + {0xa740, {1|F|D, {0xa741}}}, + {0xa742, {1|F|D, {0xa743}}}, + {0xa744, {1|F|D, {0xa745}}}, + {0xa746, {1|F|D, {0xa747}}}, + {0xa748, {1|F|D, {0xa749}}}, + {0xa74a, {1|F|D, {0xa74b}}}, + {0xa74c, {1|F|D, {0xa74d}}}, + {0xa74e, {1|F|D, {0xa74f}}}, + {0xa750, {1|F|D, {0xa751}}}, + {0xa752, {1|F|D, {0xa753}}}, + {0xa754, {1|F|D, {0xa755}}}, + {0xa756, {1|F|D, {0xa757}}}, + {0xa758, {1|F|D, {0xa759}}}, + {0xa75a, {1|F|D, {0xa75b}}}, + {0xa75c, {1|F|D, {0xa75d}}}, + {0xa75e, {1|F|D, {0xa75f}}}, + {0xa760, {1|F|D, {0xa761}}}, + {0xa762, {1|F|D, {0xa763}}}, + {0xa764, {1|F|D, {0xa765}}}, + {0xa766, {1|F|D, {0xa767}}}, + {0xa768, {1|F|D, {0xa769}}}, + {0xa76a, {1|F|D, {0xa76b}}}, + {0xa76c, {1|F|D, {0xa76d}}}, + {0xa76e, {1|F|D, {0xa76f}}}, + {0xa779, {1|F|D, {0xa77a}}}, + {0xa77b, {1|F|D, {0xa77c}}}, + {0xa77d, {1|F|D, {0x1d79}}}, + {0xa77e, {1|F|D, {0xa77f}}}, + {0xa780, {1|F|D, {0xa781}}}, + {0xa782, {1|F|D, {0xa783}}}, + {0xa784, {1|F|D, {0xa785}}}, + {0xa786, {1|F|D, {0xa787}}}, + {0xa78b, {1|F|D, {0xa78c}}}, + {0xa78d, {1|F|D, {0x0265}}}, + {0xa790, {1|F|D, {0xa791}}}, + {0xa792, {1|F|D, {0xa793}}}, + {0xa796, {1|F|D, {0xa797}}}, + {0xa798, {1|F|D, {0xa799}}}, + {0xa79a, {1|F|D, {0xa79b}}}, + {0xa79c, {1|F|D, {0xa79d}}}, + {0xa79e, {1|F|D, {0xa79f}}}, + {0xa7a0, {1|F|D, {0xa7a1}}}, + {0xa7a2, {1|F|D, {0xa7a3}}}, + {0xa7a4, {1|F|D, {0xa7a5}}}, + {0xa7a6, {1|F|D, {0xa7a7}}}, + {0xa7a8, {1|F|D, {0xa7a9}}}, + {0xa7aa, {1|F|D, {0x0266}}}, + {0xa7ab, {1|F|D, {0x025c}}}, + {0xa7ac, {1|F|D, {0x0261}}}, + {0xa7ad, {1|F|D, {0x026c}}}, + {0xa7ae, {1|F|D, {0x026a}}}, + {0xa7b0, {1|F|D, {0x029e}}}, + {0xa7b1, {1|F|D, {0x0287}}}, + {0xa7b2, {1|F|D, {0x029d}}}, + {0xa7b3, {1|F|D, {0xab53}}}, + {0xa7b4, {1|F|D, {0xa7b5}}}, + {0xa7b6, {1|F|D, {0xa7b7}}}, + {0xa7b8, {1|F|D, {0xa7b9}}}, + {0xa7ba, {1|F|D, {0xa7bb}}}, + {0xa7bc, {1|F|D, {0xa7bd}}}, + {0xa7be, {1|F|D, {0xa7bf}}}, + {0xa7c0, {1|F|D, {0xa7c1}}}, + {0xa7c2, {1|F|D, {0xa7c3}}}, + {0xa7c4, {1|F|D, {0xa794}}}, + {0xa7c5, {1|F|D, {0x0282}}}, + {0xa7c6, {1|F|D, {0x1d8e}}}, + {0xa7c7, {1|F|D, {0xa7c8}}}, + {0xa7c9, {1|F|D, {0xa7ca}}}, + {0xa7d0, {1|F|D, {0xa7d1}}}, + {0xa7d6, {1|F|D, {0xa7d7}}}, + {0xa7d8, {1|F|D, {0xa7d9}}}, + {0xa7f5, {1|F|D, {0xa7f6}}}, + {0xab70, {1|F|U, {0x13a0}}}, + {0xab71, {1|F|U, {0x13a1}}}, + {0xab72, {1|F|U, {0x13a2}}}, + {0xab73, {1|F|U, {0x13a3}}}, + {0xab74, {1|F|U, {0x13a4}}}, + {0xab75, {1|F|U, {0x13a5}}}, + {0xab76, {1|F|U, {0x13a6}}}, + {0xab77, {1|F|U, {0x13a7}}}, + {0xab78, {1|F|U, {0x13a8}}}, + {0xab79, {1|F|U, {0x13a9}}}, + {0xab7a, {1|F|U, {0x13aa}}}, + {0xab7b, {1|F|U, {0x13ab}}}, + {0xab7c, {1|F|U, {0x13ac}}}, + {0xab7d, {1|F|U, {0x13ad}}}, + {0xab7e, {1|F|U, {0x13ae}}}, + {0xab7f, {1|F|U, {0x13af}}}, + {0xab80, {1|F|U, {0x13b0}}}, + {0xab81, {1|F|U, {0x13b1}}}, + {0xab82, {1|F|U, {0x13b2}}}, + {0xab83, {1|F|U, {0x13b3}}}, + {0xab84, {1|F|U, {0x13b4}}}, + {0xab85, {1|F|U, {0x13b5}}}, + {0xab86, {1|F|U, {0x13b6}}}, + {0xab87, {1|F|U, {0x13b7}}}, + {0xab88, {1|F|U, {0x13b8}}}, + {0xab89, {1|F|U, {0x13b9}}}, + {0xab8a, {1|F|U, {0x13ba}}}, + {0xab8b, {1|F|U, {0x13bb}}}, + {0xab8c, {1|F|U, {0x13bc}}}, + {0xab8d, {1|F|U, {0x13bd}}}, + {0xab8e, {1|F|U, {0x13be}}}, + {0xab8f, {1|F|U, {0x13bf}}}, + {0xab90, {1|F|U, {0x13c0}}}, + {0xab91, {1|F|U, {0x13c1}}}, + {0xab92, {1|F|U, {0x13c2}}}, + {0xab93, {1|F|U, {0x13c3}}}, + {0xab94, {1|F|U, {0x13c4}}}, + {0xab95, {1|F|U, {0x13c5}}}, + {0xab96, {1|F|U, {0x13c6}}}, + {0xab97, {1|F|U, {0x13c7}}}, + {0xab98, {1|F|U, {0x13c8}}}, + {0xab99, {1|F|U, {0x13c9}}}, + {0xab9a, {1|F|U, {0x13ca}}}, + {0xab9b, {1|F|U, {0x13cb}}}, + {0xab9c, {1|F|U, {0x13cc}}}, + {0xab9d, {1|F|U, {0x13cd}}}, + {0xab9e, {1|F|U, {0x13ce}}}, + {0xab9f, {1|F|U, {0x13cf}}}, + {0xaba0, {1|F|U, {0x13d0}}}, + {0xaba1, {1|F|U, {0x13d1}}}, + {0xaba2, {1|F|U, {0x13d2}}}, + {0xaba3, {1|F|U, {0x13d3}}}, + {0xaba4, {1|F|U, {0x13d4}}}, + {0xaba5, {1|F|U, {0x13d5}}}, + {0xaba6, {1|F|U, {0x13d6}}}, + {0xaba7, {1|F|U, {0x13d7}}}, + {0xaba8, {1|F|U, {0x13d8}}}, + {0xaba9, {1|F|U, {0x13d9}}}, + {0xabaa, {1|F|U, {0x13da}}}, + {0xabab, {1|F|U, {0x13db}}}, + {0xabac, {1|F|U, {0x13dc}}}, + {0xabad, {1|F|U, {0x13dd}}}, + {0xabae, {1|F|U, {0x13de}}}, + {0xabaf, {1|F|U, {0x13df}}}, + {0xabb0, {1|F|U, {0x13e0}}}, + {0xabb1, {1|F|U, {0x13e1}}}, + {0xabb2, {1|F|U, {0x13e2}}}, + {0xabb3, {1|F|U, {0x13e3}}}, + {0xabb4, {1|F|U, {0x13e4}}}, + {0xabb5, {1|F|U, {0x13e5}}}, + {0xabb6, {1|F|U, {0x13e6}}}, + {0xabb7, {1|F|U, {0x13e7}}}, + {0xabb8, {1|F|U, {0x13e8}}}, + {0xabb9, {1|F|U, {0x13e9}}}, + {0xabba, {1|F|U, {0x13ea}}}, + {0xabbb, {1|F|U, {0x13eb}}}, + {0xabbc, {1|F|U, {0x13ec}}}, + {0xabbd, {1|F|U, {0x13ed}}}, + {0xabbe, {1|F|U, {0x13ee}}}, + {0xabbf, {1|F|U, {0x13ef}}}, + {0xfb00, {2|F|ST|SU|I(366), {0x0066, 0x0066}}}, + {0xfb01, {2|F|ST|SU|I(370), {0x0066, 0x0069}}}, + {0xfb02, {2|F|ST|SU|I(374), {0x0066, 0x006c}}}, + {0xfb03, {3|F|ST|SU|I(378), {0x0066, 0x0066, 0x0069}}}, + {0xfb04, {3|F|ST|SU|I(384), {0x0066, 0x0066, 0x006c}}}, + {0xfb05, {2|F|ST|SU|I(390), {0x0073, 0x0074}}}, + {0xfb06, {2|F|ST|SU|I(394), {0x0073, 0x0074}}}, + {0xfb13, {2|F|ST|SU|I(398), {0x0574, 0x0576}}}, + {0xfb14, {2|F|ST|SU|I(402), {0x0574, 0x0565}}}, + {0xfb15, {2|F|ST|SU|I(406), {0x0574, 0x056b}}}, + {0xfb16, {2|F|ST|SU|I(410), {0x057e, 0x0576}}}, + {0xfb17, {2|F|ST|SU|I(414), {0x0574, 0x056d}}}, + {0xff21, {1|F|D, {0xff41}}}, + {0xff22, {1|F|D, {0xff42}}}, + {0xff23, {1|F|D, {0xff43}}}, + {0xff24, {1|F|D, {0xff44}}}, + {0xff25, {1|F|D, {0xff45}}}, + {0xff26, {1|F|D, {0xff46}}}, + {0xff27, {1|F|D, {0xff47}}}, + {0xff28, {1|F|D, {0xff48}}}, + {0xff29, {1|F|D, {0xff49}}}, + {0xff2a, {1|F|D, {0xff4a}}}, + {0xff2b, {1|F|D, {0xff4b}}}, + {0xff2c, {1|F|D, {0xff4c}}}, + {0xff2d, {1|F|D, {0xff4d}}}, + {0xff2e, {1|F|D, {0xff4e}}}, + {0xff2f, {1|F|D, {0xff4f}}}, + {0xff30, {1|F|D, {0xff50}}}, + {0xff31, {1|F|D, {0xff51}}}, + {0xff32, {1|F|D, {0xff52}}}, + {0xff33, {1|F|D, {0xff53}}}, + {0xff34, {1|F|D, {0xff54}}}, + {0xff35, {1|F|D, {0xff55}}}, + {0xff36, {1|F|D, {0xff56}}}, + {0xff37, {1|F|D, {0xff57}}}, + {0xff38, {1|F|D, {0xff58}}}, + {0xff39, {1|F|D, {0xff59}}}, + {0xff3a, {1|F|D, {0xff5a}}}, + {0x10400, {1|F|D, {0x10428}}}, + {0x10401, {1|F|D, {0x10429}}}, + {0x10402, {1|F|D, {0x1042a}}}, + {0x10403, {1|F|D, {0x1042b}}}, + {0x10404, {1|F|D, {0x1042c}}}, + {0x10405, {1|F|D, {0x1042d}}}, + {0x10406, {1|F|D, {0x1042e}}}, + {0x10407, {1|F|D, {0x1042f}}}, + {0x10408, {1|F|D, {0x10430}}}, + {0x10409, {1|F|D, {0x10431}}}, + {0x1040a, {1|F|D, {0x10432}}}, + {0x1040b, {1|F|D, {0x10433}}}, + {0x1040c, {1|F|D, {0x10434}}}, + {0x1040d, {1|F|D, {0x10435}}}, + {0x1040e, {1|F|D, {0x10436}}}, + {0x1040f, {1|F|D, {0x10437}}}, + {0x10410, {1|F|D, {0x10438}}}, + {0x10411, {1|F|D, {0x10439}}}, + {0x10412, {1|F|D, {0x1043a}}}, + {0x10413, {1|F|D, {0x1043b}}}, + {0x10414, {1|F|D, {0x1043c}}}, + {0x10415, {1|F|D, {0x1043d}}}, + {0x10416, {1|F|D, {0x1043e}}}, + {0x10417, {1|F|D, {0x1043f}}}, + {0x10418, {1|F|D, {0x10440}}}, + {0x10419, {1|F|D, {0x10441}}}, + {0x1041a, {1|F|D, {0x10442}}}, + {0x1041b, {1|F|D, {0x10443}}}, + {0x1041c, {1|F|D, {0x10444}}}, + {0x1041d, {1|F|D, {0x10445}}}, + {0x1041e, {1|F|D, {0x10446}}}, + {0x1041f, {1|F|D, {0x10447}}}, + {0x10420, {1|F|D, {0x10448}}}, + {0x10421, {1|F|D, {0x10449}}}, + {0x10422, {1|F|D, {0x1044a}}}, + {0x10423, {1|F|D, {0x1044b}}}, + {0x10424, {1|F|D, {0x1044c}}}, + {0x10425, {1|F|D, {0x1044d}}}, + {0x10426, {1|F|D, {0x1044e}}}, + {0x10427, {1|F|D, {0x1044f}}}, + {0x104b0, {1|F|D, {0x104d8}}}, + {0x104b1, {1|F|D, {0x104d9}}}, + {0x104b2, {1|F|D, {0x104da}}}, + {0x104b3, {1|F|D, {0x104db}}}, + {0x104b4, {1|F|D, {0x104dc}}}, + {0x104b5, {1|F|D, {0x104dd}}}, + {0x104b6, {1|F|D, {0x104de}}}, + {0x104b7, {1|F|D, {0x104df}}}, + {0x104b8, {1|F|D, {0x104e0}}}, + {0x104b9, {1|F|D, {0x104e1}}}, + {0x104ba, {1|F|D, {0x104e2}}}, + {0x104bb, {1|F|D, {0x104e3}}}, + {0x104bc, {1|F|D, {0x104e4}}}, + {0x104bd, {1|F|D, {0x104e5}}}, + {0x104be, {1|F|D, {0x104e6}}}, + {0x104bf, {1|F|D, {0x104e7}}}, + {0x104c0, {1|F|D, {0x104e8}}}, + {0x104c1, {1|F|D, {0x104e9}}}, + {0x104c2, {1|F|D, {0x104ea}}}, + {0x104c3, {1|F|D, {0x104eb}}}, + {0x104c4, {1|F|D, {0x104ec}}}, + {0x104c5, {1|F|D, {0x104ed}}}, + {0x104c6, {1|F|D, {0x104ee}}}, + {0x104c7, {1|F|D, {0x104ef}}}, + {0x104c8, {1|F|D, {0x104f0}}}, + {0x104c9, {1|F|D, {0x104f1}}}, + {0x104ca, {1|F|D, {0x104f2}}}, + {0x104cb, {1|F|D, {0x104f3}}}, + {0x104cc, {1|F|D, {0x104f4}}}, + {0x104cd, {1|F|D, {0x104f5}}}, + {0x104ce, {1|F|D, {0x104f6}}}, + {0x104cf, {1|F|D, {0x104f7}}}, + {0x104d0, {1|F|D, {0x104f8}}}, + {0x104d1, {1|F|D, {0x104f9}}}, + {0x104d2, {1|F|D, {0x104fa}}}, + {0x104d3, {1|F|D, {0x104fb}}}, + {0x10570, {1|F|D, {0x10597}}}, + {0x10571, {1|F|D, {0x10598}}}, + {0x10572, {1|F|D, {0x10599}}}, + {0x10573, {1|F|D, {0x1059a}}}, + {0x10574, {1|F|D, {0x1059b}}}, + {0x10575, {1|F|D, {0x1059c}}}, + {0x10576, {1|F|D, {0x1059d}}}, + {0x10577, {1|F|D, {0x1059e}}}, + {0x10578, {1|F|D, {0x1059f}}}, + {0x10579, {1|F|D, {0x105a0}}}, + {0x1057a, {1|F|D, {0x105a1}}}, + {0x1057c, {1|F|D, {0x105a3}}}, + {0x1057d, {1|F|D, {0x105a4}}}, + {0x1057e, {1|F|D, {0x105a5}}}, + {0x1057f, {1|F|D, {0x105a6}}}, + {0x10580, {1|F|D, {0x105a7}}}, + {0x10581, {1|F|D, {0x105a8}}}, + {0x10582, {1|F|D, {0x105a9}}}, + {0x10583, {1|F|D, {0x105aa}}}, + {0x10584, {1|F|D, {0x105ab}}}, + {0x10585, {1|F|D, {0x105ac}}}, + {0x10586, {1|F|D, {0x105ad}}}, + {0x10587, {1|F|D, {0x105ae}}}, + {0x10588, {1|F|D, {0x105af}}}, + {0x10589, {1|F|D, {0x105b0}}}, + {0x1058a, {1|F|D, {0x105b1}}}, + {0x1058c, {1|F|D, {0x105b3}}}, + {0x1058d, {1|F|D, {0x105b4}}}, + {0x1058e, {1|F|D, {0x105b5}}}, + {0x1058f, {1|F|D, {0x105b6}}}, + {0x10590, {1|F|D, {0x105b7}}}, + {0x10591, {1|F|D, {0x105b8}}}, + {0x10592, {1|F|D, {0x105b9}}}, + {0x10594, {1|F|D, {0x105bb}}}, + {0x10595, {1|F|D, {0x105bc}}}, + {0x10c80, {1|F|D, {0x10cc0}}}, + {0x10c81, {1|F|D, {0x10cc1}}}, + {0x10c82, {1|F|D, {0x10cc2}}}, + {0x10c83, {1|F|D, {0x10cc3}}}, + {0x10c84, {1|F|D, {0x10cc4}}}, + {0x10c85, {1|F|D, {0x10cc5}}}, + {0x10c86, {1|F|D, {0x10cc6}}}, + {0x10c87, {1|F|D, {0x10cc7}}}, + {0x10c88, {1|F|D, {0x10cc8}}}, + {0x10c89, {1|F|D, {0x10cc9}}}, + {0x10c8a, {1|F|D, {0x10cca}}}, + {0x10c8b, {1|F|D, {0x10ccb}}}, + {0x10c8c, {1|F|D, {0x10ccc}}}, + {0x10c8d, {1|F|D, {0x10ccd}}}, + {0x10c8e, {1|F|D, {0x10cce}}}, + {0x10c8f, {1|F|D, {0x10ccf}}}, + {0x10c90, {1|F|D, {0x10cd0}}}, + {0x10c91, {1|F|D, {0x10cd1}}}, + {0x10c92, {1|F|D, {0x10cd2}}}, + {0x10c93, {1|F|D, {0x10cd3}}}, + {0x10c94, {1|F|D, {0x10cd4}}}, + {0x10c95, {1|F|D, {0x10cd5}}}, + {0x10c96, {1|F|D, {0x10cd6}}}, + {0x10c97, {1|F|D, {0x10cd7}}}, + {0x10c98, {1|F|D, {0x10cd8}}}, + {0x10c99, {1|F|D, {0x10cd9}}}, + {0x10c9a, {1|F|D, {0x10cda}}}, + {0x10c9b, {1|F|D, {0x10cdb}}}, + {0x10c9c, {1|F|D, {0x10cdc}}}, + {0x10c9d, {1|F|D, {0x10cdd}}}, + {0x10c9e, {1|F|D, {0x10cde}}}, + {0x10c9f, {1|F|D, {0x10cdf}}}, + {0x10ca0, {1|F|D, {0x10ce0}}}, + {0x10ca1, {1|F|D, {0x10ce1}}}, + {0x10ca2, {1|F|D, {0x10ce2}}}, + {0x10ca3, {1|F|D, {0x10ce3}}}, + {0x10ca4, {1|F|D, {0x10ce4}}}, + {0x10ca5, {1|F|D, {0x10ce5}}}, + {0x10ca6, {1|F|D, {0x10ce6}}}, + {0x10ca7, {1|F|D, {0x10ce7}}}, + {0x10ca8, {1|F|D, {0x10ce8}}}, + {0x10ca9, {1|F|D, {0x10ce9}}}, + {0x10caa, {1|F|D, {0x10cea}}}, + {0x10cab, {1|F|D, {0x10ceb}}}, + {0x10cac, {1|F|D, {0x10cec}}}, + {0x10cad, {1|F|D, {0x10ced}}}, + {0x10cae, {1|F|D, {0x10cee}}}, + {0x10caf, {1|F|D, {0x10cef}}}, + {0x10cb0, {1|F|D, {0x10cf0}}}, + {0x10cb1, {1|F|D, {0x10cf1}}}, + {0x10cb2, {1|F|D, {0x10cf2}}}, + {0x118a0, {1|F|D, {0x118c0}}}, + {0x118a1, {1|F|D, {0x118c1}}}, + {0x118a2, {1|F|D, {0x118c2}}}, + {0x118a3, {1|F|D, {0x118c3}}}, + {0x118a4, {1|F|D, {0x118c4}}}, + {0x118a5, {1|F|D, {0x118c5}}}, + {0x118a6, {1|F|D, {0x118c6}}}, + {0x118a7, {1|F|D, {0x118c7}}}, + {0x118a8, {1|F|D, {0x118c8}}}, + {0x118a9, {1|F|D, {0x118c9}}}, + {0x118aa, {1|F|D, {0x118ca}}}, + {0x118ab, {1|F|D, {0x118cb}}}, + {0x118ac, {1|F|D, {0x118cc}}}, + {0x118ad, {1|F|D, {0x118cd}}}, + {0x118ae, {1|F|D, {0x118ce}}}, + {0x118af, {1|F|D, {0x118cf}}}, + {0x118b0, {1|F|D, {0x118d0}}}, + {0x118b1, {1|F|D, {0x118d1}}}, + {0x118b2, {1|F|D, {0x118d2}}}, + {0x118b3, {1|F|D, {0x118d3}}}, + {0x118b4, {1|F|D, {0x118d4}}}, + {0x118b5, {1|F|D, {0x118d5}}}, + {0x118b6, {1|F|D, {0x118d6}}}, + {0x118b7, {1|F|D, {0x118d7}}}, + {0x118b8, {1|F|D, {0x118d8}}}, + {0x118b9, {1|F|D, {0x118d9}}}, + {0x118ba, {1|F|D, {0x118da}}}, + {0x118bb, {1|F|D, {0x118db}}}, + {0x118bc, {1|F|D, {0x118dc}}}, + {0x118bd, {1|F|D, {0x118dd}}}, + {0x118be, {1|F|D, {0x118de}}}, + {0x118bf, {1|F|D, {0x118df}}}, + {0x16e40, {1|F|D, {0x16e60}}}, + {0x16e41, {1|F|D, {0x16e61}}}, + {0x16e42, {1|F|D, {0x16e62}}}, + {0x16e43, {1|F|D, {0x16e63}}}, + {0x16e44, {1|F|D, {0x16e64}}}, + {0x16e45, {1|F|D, {0x16e65}}}, + {0x16e46, {1|F|D, {0x16e66}}}, + {0x16e47, {1|F|D, {0x16e67}}}, + {0x16e48, {1|F|D, {0x16e68}}}, + {0x16e49, {1|F|D, {0x16e69}}}, + {0x16e4a, {1|F|D, {0x16e6a}}}, + {0x16e4b, {1|F|D, {0x16e6b}}}, + {0x16e4c, {1|F|D, {0x16e6c}}}, + {0x16e4d, {1|F|D, {0x16e6d}}}, + {0x16e4e, {1|F|D, {0x16e6e}}}, + {0x16e4f, {1|F|D, {0x16e6f}}}, + {0x16e50, {1|F|D, {0x16e70}}}, + {0x16e51, {1|F|D, {0x16e71}}}, + {0x16e52, {1|F|D, {0x16e72}}}, + {0x16e53, {1|F|D, {0x16e73}}}, + {0x16e54, {1|F|D, {0x16e74}}}, + {0x16e55, {1|F|D, {0x16e75}}}, + {0x16e56, {1|F|D, {0x16e76}}}, + {0x16e57, {1|F|D, {0x16e77}}}, + {0x16e58, {1|F|D, {0x16e78}}}, + {0x16e59, {1|F|D, {0x16e79}}}, + {0x16e5a, {1|F|D, {0x16e7a}}}, + {0x16e5b, {1|F|D, {0x16e7b}}}, + {0x16e5c, {1|F|D, {0x16e7c}}}, + {0x16e5d, {1|F|D, {0x16e7d}}}, + {0x16e5e, {1|F|D, {0x16e7e}}}, + {0x16e5f, {1|F|D, {0x16e7f}}}, + {0x1e900, {1|F|D, {0x1e922}}}, + {0x1e901, {1|F|D, {0x1e923}}}, + {0x1e902, {1|F|D, {0x1e924}}}, + {0x1e903, {1|F|D, {0x1e925}}}, + {0x1e904, {1|F|D, {0x1e926}}}, + {0x1e905, {1|F|D, {0x1e927}}}, + {0x1e906, {1|F|D, {0x1e928}}}, + {0x1e907, {1|F|D, {0x1e929}}}, + {0x1e908, {1|F|D, {0x1e92a}}}, + {0x1e909, {1|F|D, {0x1e92b}}}, + {0x1e90a, {1|F|D, {0x1e92c}}}, + {0x1e90b, {1|F|D, {0x1e92d}}}, + {0x1e90c, {1|F|D, {0x1e92e}}}, + {0x1e90d, {1|F|D, {0x1e92f}}}, + {0x1e90e, {1|F|D, {0x1e930}}}, + {0x1e90f, {1|F|D, {0x1e931}}}, + {0x1e910, {1|F|D, {0x1e932}}}, + {0x1e911, {1|F|D, {0x1e933}}}, + {0x1e912, {1|F|D, {0x1e934}}}, + {0x1e913, {1|F|D, {0x1e935}}}, + {0x1e914, {1|F|D, {0x1e936}}}, + {0x1e915, {1|F|D, {0x1e937}}}, + {0x1e916, {1|F|D, {0x1e938}}}, + {0x1e917, {1|F|D, {0x1e939}}}, + {0x1e918, {1|F|D, {0x1e93a}}}, + {0x1e919, {1|F|D, {0x1e93b}}}, + {0x1e91a, {1|F|D, {0x1e93c}}}, + {0x1e91b, {1|F|D, {0x1e93d}}}, + {0x1e91c, {1|F|D, {0x1e93e}}}, + {0x1e91d, {1|F|D, {0x1e93f}}}, + {0x1e91e, {1|F|D, {0x1e940}}}, + {0x1e91f, {1|F|D, {0x1e941}}}, + {0x1e920, {1|F|D, {0x1e942}}}, + {0x1e921, {1|F|D, {0x1e943}}}, +#define CaseFold_Locale (*(CaseFold_11_Type (*)[2])(CaseFold_11_Table+1528)) + {0x0049, {1|F|D, {0x0069}}}, + {0x0130, {2|F|D, {0x0069, 0x0307}}}, +}; + +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseFold_11_hash -N onigenc_unicode_CaseFold_11_lookup -n */ + +/* maximum key range = 3080, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +onigenc_unicode_CaseFold_11_hash(const OnigCodePoint code) +{ + static const unsigned short asso_values[] = + { + 1, 3085, 2, 20, 3, 307, 200, 8, 31, 159, + 2, 253, 33, 967, 3085, 3085, 3085, 3085, 3085, 3085, + 3085, 3085, 3085, 3085, 3085, 3085, 3085, 30, 3085, 3085, + 3085, 3085, 3085, 3085, 3085, 352, 3085, 3085, 3085, 3085, + 3085, 93, 3085, 3085, 3085, 3085, 3085, 3085, 3085, 3085, + 3085, 407, 3085, 3085, 3085, 3085, 3085, 3085, 3085, 201, + 3085, 3085, 14, 13, 373, 1, 3085, 3085, 503, 19, + 3085, 3085, 3085, 3085, 3085, 325, 3085, 3085, 290, 1064, + 484, 28, 1906, 447, 272, 414, 2002, 79, 905, 5, + 11, 22, 2024, 623, 761, 617, 1893, 45, 1874, 113, + 1856, 255, 1823, 96, 1463, 62, 1841, 130, 1798, 331, + 1771, 238, 1977, 147, 1387, 464, 1691, 187, 1639, 181, + 366, 580, 1331, 508, 1287, 547, 1583, 541, 400, 783, + 1944, 657, 1850, 932, 1785, 858, 1645, 681, 1412, 722, + 1622, 972, 1306, 807, 1942, 1282, 283, 1218, 1557, 1055, + 1406, 1258, 1401, 1168, 1327, 864, 893, 1123, 1714, 1195, + 1885, 1083, 2016, 1232, 823, 678, 1420, 1017, 155, 1261, + 86, 1351, 794, 1929, 51, 1525, 50, 221, 4, 1383, + 196, 325, 1, 1562, 102, 1441, 3, 1356, 226, 1304, + 271, 1516, 68, 1752, 37, 1469, 51, 1920, 143, 2059, + 198, 2095, 370, 2069, 137, 718, 407, 1926, 136 + }; + return asso_values[bits_of(code, 2)+81] + asso_values[bits_of(code, 1)+2] + asso_values[bits_of(code, 0)]; +} + +static const CodePointList3 * +onigenc_unicode_CaseFold_11_lookup(const OnigCodePoint code) +{ + enum + { + MIN_CODE_VALUE = 0x41, + MAX_CODE_VALUE = 0x1e921, + TOTAL_KEYWORDS = 1530, + MIN_WORD_LENGTH = 3, + MAX_WORD_LENGTH = 3, + MIN_HASH_VALUE = 5, + MAX_HASH_VALUE = 3084 + }; + + static const short wordlist[] = + { + -1, -1, -1, -1, -1, + /*0x1fe9*/ 850, + -1, + /*0x1f88*/ 775, + /*0x0408*/ 305, + /*0x0108*/ 61, + /*0x10408*/ 1276, + -1, + /*0xab88*/ 1174, + /*0x1f89*/ 776, + /*0x0409*/ 306, + /*0x2c69*/ 964, + /*0x10409*/ 1277, + /*0x2c08*/ 919, + /*0xab89*/ 1175, + /*0x1e88*/ 653, + /*0x1e08*/ 589, + -1, -1, + /*0x2c09*/ 920, + /*0x1f8a*/ 777, + /*0x040a*/ 307, + /*0x010a*/ 62, + /*0x1040a*/ 1278, + /*0x2c88*/ 978, + /*0xab8a*/ 1176, + /*0x1f80*/ 767, + /*0x0400*/ 297, + /*0x0100*/ 57, + /*0x10400*/ 1268, + /*0x2c0a*/ 921, + /*0xab80*/ 1166, + /*0x1e8a*/ 654, + /*0x1e0a*/ 590, + /*0x10c88*/ 1387, + /*0x0508*/ 425, + /*0x2c00*/ 911, + -1, + /*0x1e80*/ 649, + /*0x1e00*/ 585, + /*0x10c89*/ 1388, + /*0x2c8a*/ 979, + -1, + /*0x1f90*/ 783, + /*0x0410*/ 313, + /*0x0110*/ 65, + /*0x10410*/ 1284, + /*0x2c80*/ 974, + /*0xab90*/ 1182, + /*0x1ff3*/ 855, + -1, + /*0x10c8a*/ 1389, + /*0x050a*/ 426, + /*0x2c10*/ 927, + /*0xa780*/ 1106, + /*0x1e90*/ 657, + /*0x1e10*/ 593, + /*0x10c80*/ 1379, + /*0x0500*/ 421, + -1, + /*0x1f98*/ 791, + /*0x0418*/ 321, + /*0x0118*/ 69, + /*0x10418*/ 1292, + /*0x2c90*/ 982, + /*0xab98*/ 1190, + -1, + /*0x00df*/ 56, + /*0x00dd*/ 54, + /*0x10571*/ 1345, + /*0x2c18*/ 935, + /*0xa790*/ 1112, + /*0x1e98*/ 662, + /*0x1e18*/ 597, + /*0x10c90*/ 1395, + /*0x0510*/ 429, + /*0x2c6f*/ 968, + /*0x1f86*/ 773, + /*0x0406*/ 303, + /*0x0106*/ 60, + /*0x10406*/ 1274, + /*0x2c98*/ 986, + /*0xab86*/ 1172, + /*0x10573*/ 1347, + /*0x1fd9*/ 841, + /*0x0059*/ 23, + -1, + /*0x2c06*/ 917, + /*0xa798*/ 1115, + /*0x1e86*/ 652, + /*0x1e06*/ 588, + /*0x10c98*/ 1403, + /*0x0518*/ 433, + -1, + /*0x1f96*/ 789, + /*0x0416*/ 319, + /*0x0116*/ 68, + /*0x10416*/ 1290, + /*0x2c86*/ 977, + /*0xab96*/ 1188, + /*0x1fe7*/ 848, + -1, -1, + /*0x00d9*/ 50, + /*0x2c16*/ 933, + /*0xa786*/ 1109, + /*0x1e96*/ 660, + /*0x1e16*/ 596, + /*0x10c86*/ 1385, + /*0x0506*/ 424, + /*0x2c67*/ 963, + /*0x1f92*/ 785, + /*0x0412*/ 315, + /*0x0112*/ 66, + /*0x10412*/ 1286, + /*0x2c96*/ 985, + /*0xab92*/ 1184, + -1, -1, -1, -1, + /*0x2c12*/ 929, + /*0xa796*/ 1114, + /*0x1e92*/ 658, + /*0x1e12*/ 594, + /*0x10c96*/ 1401, + /*0x0516*/ 432, + -1, + /*0x1f9a*/ 793, + /*0x041a*/ 323, + /*0x011a*/ 70, + /*0x1041a*/ 1294, + /*0x2c92*/ 983, + /*0xab9a*/ 1192, + -1, + /*0x1ffb*/ 862, + /*0x017f*/ 120, + /*0x017b*/ 118, + /*0x2c1a*/ 937, + /*0xa792*/ 1113, + /*0x1e9a*/ 664, + /*0x1e1a*/ 598, + /*0x10c92*/ 1397, + /*0x0512*/ 430, + /*0x2c7f*/ 973, + /*0x1fa0*/ 799, + /*0x0420*/ 329, + /*0x0120*/ 73, + /*0x10420*/ 1300, + /*0x2c9a*/ 987, + /*0xaba0*/ 1198, + /*0x2c75*/ 971, + -1, + /*0x1fd7*/ 839, + /*0x0057*/ 21, + /*0x2c20*/ 943, + /*0xa79a*/ 1116, + /*0x1ea0*/ 667, + /*0x1e20*/ 601, + /*0x10c9a*/ 1405, + /*0x051a*/ 434, + /*0x0388*/ 235, + -1, -1, + /*0x037f*/ 233, + -1, + /*0x2ca0*/ 990, + /*0x0389*/ 236, + /*0x1057f*/ 1358, + /*0xa7f5*/ 1149, + -1, -1, -1, + /*0xa7a0*/ 1119, + -1, + /*0x10575*/ 1349, + /*0x10ca0*/ 1411, + /*0x0520*/ 437, + /*0x038a*/ 237, + /*0x1fa6*/ 805, + /*0x0426*/ 335, + /*0x0126*/ 76, + /*0x10426*/ 1306, + -1, + /*0xaba6*/ 1204, + /*0x1fa4*/ 803, + /*0x0424*/ 333, + /*0x0124*/ 75, + /*0x10424*/ 1304, + /*0x2c26*/ 949, + /*0xaba4*/ 1202, + /*0x1ea6*/ 670, + /*0x1e26*/ 604, + /*0x03f1*/ 288, + /*0x1fe3*/ 845, + /*0x2c24*/ 947, + /*0x1ff7*/ 858, + /*0x1ea4*/ 669, + /*0x1e24*/ 603, + -1, + /*0x2ca6*/ 993, + /*0x0390*/ 241, + /*0x0208*/ 194, + /*0x1c88*/ 538, + /*0x2c63*/ 961, + -1, + /*0x2ca4*/ 992, + /*0xa7a6*/ 1122, + -1, -1, + /*0x10ca6*/ 1417, + /*0x0526*/ 440, + -1, + /*0xa7a4*/ 1121, + -1, -1, + /*0x10ca4*/ 1415, + /*0x0524*/ 439, + /*0x0398*/ 249, + /*0x020a*/ 195, + /*0x0460*/ 345, + /*0x0160*/ 104, + -1, -1, + /*0x1feb*/ 852, + /*0x0200*/ 190, + /*0x1c80*/ 530, + /*0x13fb*/ 527, + -1, + /*0x2c60*/ 959, + /*0x10577*/ 1351, + /*0x1ee0*/ 699, + /*0x1e60*/ 633, + -1, + /*0x2c6b*/ 965, + /*0x0386*/ 234, + /*0x1f9e*/ 797, + /*0x041e*/ 327, + /*0x011e*/ 72, + /*0x1041e*/ 1298, + /*0x2ce0*/ 1022, + /*0xab9e*/ 1196, + /*0x0210*/ 198, + /*0x1c90*/ 539, + -1, + /*0x2ceb*/ 1024, + /*0x2c1e*/ 941, + -1, + /*0x1e9e*/ 666, + /*0x1e1e*/ 600, + -1, -1, + /*0x0396*/ 247, + /*0x1f94*/ 787, + /*0x0414*/ 317, + /*0x0114*/ 67, + /*0x10414*/ 1288, + /*0x2c9e*/ 989, + /*0xab94*/ 1186, + /*0x0218*/ 202, + /*0x1c98*/ 547, + -1, -1, + /*0x2c14*/ 931, + /*0xa79e*/ 1118, + /*0x1e94*/ 659, + /*0x1e14*/ 595, + /*0x10c9e*/ 1409, + /*0x051e*/ 436, + /*0x0392*/ 243, + /*0x1f83*/ 770, + /*0x0403*/ 300, + /*0x048a*/ 362, + /*0x10403*/ 1271, + /*0x2c94*/ 984, + /*0xab83*/ 1169, + /*0x0206*/ 193, + /*0x1c86*/ 536, + /*0x0480*/ 361, + /*0x2c6d*/ 966, + /*0x2c03*/ 914, + /*0x1e908*/ 1502, + /*0x0041*/ 0, + /*0x0141*/ 88, + /*0x10c94*/ 1399, + /*0x0514*/ 431, + /*0x039a*/ 251, + /*0x1e909*/ 1503, + /*0x2183*/ 884, + -1, + /*0x2ced*/ 1025, + -1, + /*0x03ff*/ 296, + /*0x0216*/ 201, + /*0x1c96*/ 545, + /*0x0490*/ 365, + -1, -1, + /*0x1e90a*/ 1504, + /*0x03f5*/ 290, + /*0x00c1*/ 27, + /*0x10c83*/ 1382, + -1, + /*0x03a0*/ 257, + /*0x1e900*/ 1494, + -1, -1, -1, -1, -1, + /*0x0212*/ 199, + /*0x1c92*/ 541, + /*0x0498*/ 369, + /*0x0541*/ 461, + -1, + /*0x0189*/ 126, + -1, -1, -1, -1, -1, + /*0x1e910*/ 1510, + -1, + /*0x1fe4*/ 846, + /*0x0464*/ 347, + /*0x0164*/ 106, + /*0x018a*/ 127, + /*0x021a*/ 203, + /*0x1c9a*/ 549, + /*0x1f9c*/ 795, + /*0x041c*/ 325, + /*0x011c*/ 71, + /*0x1041c*/ 1296, + /*0x2c64*/ 962, + /*0xab9c*/ 1194, + /*0x1ee4*/ 701, + /*0x1e64*/ 635, + /*0x03a6*/ 262, + /*0x1e918*/ 1518, + /*0x2c1c*/ 939, + -1, + /*0x01f1*/ 181, + /*0x1e1c*/ 599, + /*0x03a4*/ 260, + /*0x0220*/ 206, + /*0x1ca0*/ 555, + /*0x0496*/ 368, + -1, -1, + /*0x0190*/ 131, + /*0x2c9c*/ 988, + -1, -1, -1, + /*0x03f7*/ 291, + /*0x1e906*/ 1500, + -1, + /*0xa79c*/ 1117, + -1, -1, + /*0x10c9c*/ 1407, + /*0x051c*/ 435, + -1, + /*0x0492*/ 366, + /*0x1fa7*/ 806, + /*0x0427*/ 336, + /*0x0198*/ 137, + /*0x10427*/ 1307, + /*0x1ff9*/ 860, + /*0xaba7*/ 1205, + /*0x0179*/ 117, + -1, + /*0x1e916*/ 1516, + /*0x1f69*/ 760, + /*0x2c27*/ 950, + /*0x1f08*/ 715, + -1, + /*0x03e0*/ 279, + /*0x0226*/ 209, + /*0x1ca6*/ 561, + /*0x049a*/ 370, + /*0x1f09*/ 716, + -1, + /*0x0186*/ 124, + /*0x0224*/ 208, + /*0x1ca4*/ 559, + -1, -1, -1, + /*0x1e912*/ 1512, + /*0x01d9*/ 169, + -1, + /*0x1f0a*/ 717, + -1, + /*0x039e*/ 255, + /*0x10ca7*/ 1418, + -1, + /*0x04a0*/ 373, + /*0x1faf*/ 814, + /*0x042f*/ 344, + /*0x0196*/ 135, + -1, + /*0x10579*/ 1353, + /*0xabaf*/ 1213, + -1, -1, + /*0x1e91a*/ 1520, + /*0x017d*/ 119, + /*0x2c2f*/ 958, + -1, + /*0xfb00*/ 1230, + /*0x0394*/ 245, + /*0x1f84*/ 771, + /*0x0404*/ 301, + /*0x0104*/ 59, + /*0x10404*/ 1272, + -1, + /*0xab84*/ 1170, + -1, -1, + /*0x1f5f*/ 758, + /*0x1f5d*/ 757, + /*0x2c04*/ 915, + /*0x1e920*/ 1526, + /*0x1e84*/ 651, + /*0x1e04*/ 587, + -1, -1, -1, + /*0x10caf*/ 1426, + -1, + /*0x04a6*/ 376, + /*0x1f18*/ 723, + /*0x2c84*/ 976, + -1, + /*0x021e*/ 205, + /*0x1c9e*/ 553, + /*0x04a4*/ 375, + /*0x1f6f*/ 766, + /*0x1057d*/ 1356, + /*0xa784*/ 1108, + -1, -1, + /*0x10c84*/ 1383, + /*0x0504*/ 423, + /*0x1f82*/ 769, + /*0x0402*/ 299, + /*0x0102*/ 58, + /*0x10402*/ 1270, + -1, + /*0xab82*/ 1168, + /*0x01a0*/ 141, + /*0x0214*/ 200, + /*0x1c94*/ 543, + -1, + /*0x2c02*/ 913, + /*0x1f59*/ 755, + /*0x1e82*/ 650, + /*0x1e02*/ 586, + /*0x01d7*/ 168, + /*0x13f9*/ 525, + /*0xfb06*/ 1236, + /*0x1fa2*/ 801, + /*0x0422*/ 331, + /*0x0122*/ 74, + /*0x10422*/ 1302, + /*0x2c82*/ 975, + /*0xaba2*/ 1200, + -1, -1, + /*0x1c83*/ 533, + /*0x04e0*/ 405, + /*0x2c22*/ 945, + /*0xa782*/ 1107, + /*0x1ea2*/ 668, + /*0x1e22*/ 602, + /*0x10c82*/ 1381, + /*0x0502*/ 422, + /*0xfb16*/ 1240, + -1, + /*0x0241*/ 220, + /*0x03e4*/ 281, + -1, + /*0x2ca2*/ 991, + -1, + /*0x01a6*/ 144, + -1, + /*0x039c*/ 253, + /*0x049e*/ 372, + -1, + /*0xa7a2*/ 1120, + /*0x01a4*/ 143, + -1, + /*0x10ca2*/ 1413, + /*0x0522*/ 438, + -1, + /*0x10a0*/ 484, + /*0x13fd*/ 529, + -1, -1, + /*0x1f1a*/ 725, + /*0x2165*/ 873, + /*0x01f7*/ 185, + /*0x2169*/ 877, + /*0x2161*/ 869, + /*0x0494*/ 367, + /*0x1faa*/ 809, + /*0x042a*/ 339, + /*0x012a*/ 78, + /*0xa660*/ 1043, + -1, + /*0xabaa*/ 1208, + -1, -1, + /*0x1e91e*/ 1524, + -1, + /*0x2c2a*/ 953, + -1, + /*0x1eaa*/ 672, + /*0x1e2a*/ 606, + -1, -1, + /*0x03a7*/ 263, + -1, -1, + /*0x01e0*/ 172, + /*0x03f9*/ 292, + /*0x2caa*/ 995, + /*0x021c*/ 204, + /*0x1c9c*/ 551, + /*0x10a6*/ 490, + /*0x1e914*/ 1514, + -1, + /*0x04c1*/ 390, + /*0xa7aa*/ 1124, + /*0x104c1*/ 1325, + /*0x10a4*/ 488, + /*0x10caa*/ 1421, + /*0x052a*/ 442, + /*0x1fae*/ 813, + /*0x042e*/ 343, + /*0x012e*/ 80, + -1, -1, + /*0xabae*/ 1212, + /*0x1fac*/ 811, + /*0x042c*/ 341, + /*0x012c*/ 79, + /*0x1e903*/ 1497, + /*0x2c2e*/ 957, + /*0xabac*/ 1210, + /*0x1eae*/ 674, + /*0x1e2e*/ 608, + /*0x118a0*/ 1430, + -1, + /*0x2c2c*/ 955, + -1, + /*0x1eac*/ 673, + /*0x1e2c*/ 607, + /*0x0194*/ 134, + /*0x2cae*/ 997, + -1, -1, + /*0x03fd*/ 294, + /*0x1ca7*/ 562, + -1, + /*0x2cac*/ 996, + /*0xa7ae*/ 1128, + /*0x216f*/ 883, + -1, + /*0x10cae*/ 1425, + /*0x052e*/ 444, + -1, + /*0xa7ac*/ 1126, + -1, + /*0x04e4*/ 407, + /*0x10cac*/ 1423, + /*0x052c*/ 443, + /*0x1fa8*/ 807, + /*0x0428*/ 337, + /*0x0128*/ 77, + /*0x049c*/ 371, + -1, + /*0xaba8*/ 1206, + -1, -1, -1, + /*0x118a6*/ 1436, + /*0x2c28*/ 951, + -1, + /*0x1ea8*/ 671, + /*0x1e28*/ 605, + -1, + /*0x118a4*/ 1434, + -1, -1, + /*0x1f6b*/ 762, + /*0xff26*/ 1247, + /*0x1caf*/ 570, + /*0x2ca8*/ 994, + -1, -1, + /*0x2167*/ 875, + /*0xff24*/ 1245, + -1, + /*0x24c1*/ 896, + /*0xa7a8*/ 1123, + /*0x1e91c*/ 1522, + -1, + /*0x10ca8*/ 1419, + /*0x0528*/ 441, + /*0x0204*/ 192, + /*0x1c84*/ 534, + /*0xa664*/ 1045, + -1, + /*0x1f8e*/ 781, + /*0x040e*/ 311, + /*0x010e*/ 64, + /*0x1040e*/ 1282, + /*0xa77b*/ 1103, + /*0xab8e*/ 1180, + /*0x1f8c*/ 779, + /*0x040c*/ 309, + /*0x010c*/ 63, + /*0x1040c*/ 1280, + /*0x2c0e*/ 925, + /*0xab8c*/ 1178, + /*0x1e8e*/ 656, + /*0x1e0e*/ 592, + /*0x01e4*/ 174, + -1, + /*0x2c0c*/ 923, + /*0x10c1*/ 517, + /*0x1e8c*/ 655, + /*0x1e0c*/ 591, + /*0x019c*/ 138, + /*0x2c8e*/ 981, + /*0xfb14*/ 1238, + -1, -1, -1, + /*0x1f6d*/ 764, + /*0x2c8c*/ 980, + -1, + /*0x0202*/ 191, + /*0x1c82*/ 532, + /*0x10c8e*/ 1393, + /*0x050e*/ 428, + -1, -1, -1, -1, + /*0x10c8c*/ 1391, + /*0x050c*/ 427, + /*0xfb03*/ 1233, + /*0x1fb2*/ 815, + -1, + /*0x0132*/ 81, + -1, -1, + /*0xabb2*/ 1216, + /*0x0222*/ 207, + /*0x1ca2*/ 557, + /*0xa726*/ 1066, + /*0x03aa*/ 266, + -1, -1, + /*0x1eb2*/ 676, + /*0x1e32*/ 610, + /*0xa724*/ 1065, + /*0x01a7*/ 145, + -1, -1, -1, -1, -1, + /*0x2cb2*/ 999, + /*0x0054*/ 18, + /*0x0154*/ 98, + /*0x1fb8*/ 820, + -1, + /*0x2126*/ 864, + -1, + /*0xa7b2*/ 1131, + /*0xabb8*/ 1222, + -1, + /*0x10cb2*/ 1429, + /*0x0532*/ 446, + /*0x1ed4*/ 693, + /*0x1e54*/ 627, + /*0x1e904*/ 1498, + /*0x1eb8*/ 679, + /*0x1e38*/ 613, + -1, -1, + /*0x00d4*/ 46, + /*0x2163*/ 871, + /*0x2cd4*/ 1016, + -1, -1, + /*0x2cb8*/ 1002, + /*0x1f1c*/ 727, + -1, + /*0xa760*/ 1094, + /*0x01af*/ 149, + /*0x022a*/ 211, + /*0x1caa*/ 565, + /*0xa7b8*/ 1135, + /*0x0554*/ 480, + -1, -1, + /*0x0538*/ 452, + -1, -1, + /*0x04a2*/ 374, + /*0x10a7*/ 491, + /*0x1ffc*/ 863, + /*0x047c*/ 359, + /*0x0184*/ 123, + -1, + /*0x1fba*/ 822, + /*0x2160*/ 868, + -1, + /*0x1e902*/ 1496, + -1, + /*0xabba*/ 1224, + /*0x216b*/ 879, + -1, + /*0x1efc*/ 713, + /*0x1e7c*/ 647, + -1, -1, + /*0x1eba*/ 680, + /*0x1e3a*/ 614, + -1, -1, + /*0x03a8*/ 264, + -1, + /*0x022e*/ 213, + /*0x1cae*/ 569, + -1, + /*0x2cba*/ 1003, + -1, -1, + /*0x022c*/ 212, + /*0x1cac*/ 567, + -1, -1, + /*0xa7ba*/ 1136, + /*0x10af*/ 499, + /*0x1057c*/ 1355, + /*0x0182*/ 122, + /*0x053a*/ 454, + -1, -1, -1, -1, -1, + /*0x04aa*/ 378, + /*0x1f8d*/ 780, + /*0x040d*/ 310, + -1, + /*0x1040d*/ 1281, + -1, + /*0xab8d*/ 1179, + -1, -1, -1, + /*0x01a2*/ 142, + /*0x2c0d*/ 924, + /*0x1f2f*/ 736, + /*0x216d*/ 881, + /*0x118a7*/ 1437, + /*0x038e*/ 239, + -1, -1, -1, + /*0x0228*/ 210, + /*0x1ca8*/ 563, + /*0x038c*/ 238, + -1, -1, + /*0xff27*/ 1248, + /*0x0130*/ 1529, + -1, -1, + /*0xabb0*/ 1214, + /*0xa78d*/ 1111, + -1, -1, + /*0x10c8d*/ 1392, + /*0x04ae*/ 380, + /*0x1fdb*/ 843, + /*0x1eb0*/ 675, + /*0x1e30*/ 609, + -1, + /*0xfb04*/ 1234, + /*0x04ac*/ 379, + -1, -1, -1, -1, + /*0x2cb0*/ 998, + -1, -1, + /*0x1fbe*/ 825, + /*0x118af*/ 1445, + /*0xa764*/ 1096, + /*0x13fc*/ 528, + /*0xa7b0*/ 1129, + /*0xabbe*/ 1228, + /*0x00db*/ 52, + /*0x10cb0*/ 1427, + /*0x10a2*/ 486, + /*0x020e*/ 197, + -1, + /*0xff2f*/ 1256, + /*0x1ebe*/ 682, + /*0x1e3e*/ 616, + -1, + /*0x020c*/ 196, + /*0x1fd3*/ 837, + /*0x0053*/ 17, + -1, -1, + /*0x2164*/ 872, + /*0x2cbe*/ 1005, + -1, -1, + /*0xfb02*/ 1232, + /*0x04a8*/ 377, + -1, -1, + /*0xa7be*/ 1138, + -1, -1, -1, + /*0x053e*/ 458, + -1, -1, + /*0x00d3*/ 45, + -1, -1, -1, -1, + /*0x01ae*/ 148, + -1, -1, -1, -1, -1, + /*0x01ac*/ 147, + /*0xa779*/ 1102, + /*0x0553*/ 479, + /*0x0232*/ 215, + /*0x1cb2*/ 573, + /*0x1fb6*/ 818, + /*0x10aa*/ 494, + /*0x0136*/ 83, + -1, -1, + /*0xabb6*/ 1220, + /*0x1fca*/ 833, + /*0x004a*/ 8, + /*0x014a*/ 93, + -1, -1, + /*0x048e*/ 364, + /*0x1eb6*/ 678, + /*0x1e36*/ 612, + /*0x118a2*/ 1432, + -1, -1, + /*0x048c*/ 363, + /*0x1eca*/ 688, + /*0x1e4a*/ 622, + -1, + /*0x2cb6*/ 1001, + /*0x1f2a*/ 731, + /*0x1cb8*/ 579, + /*0xff22*/ 1243, + /*0x00ca*/ 36, + -1, + /*0x2cca*/ 1011, + /*0xa7b6*/ 1134, + -1, -1, -1, + /*0x0536*/ 450, + /*0xa77d*/ 1104, + /*0x10ae*/ 498, + /*0x1fcb*/ 834, + /*0x004b*/ 9, + /*0x1e90e*/ 1508, + /*0x054a*/ 470, + -1, + /*0x10ac*/ 496, + -1, -1, + /*0x1e90c*/ 1506, + -1, -1, -1, + /*0x1f87*/ 774, + /*0x0407*/ 304, + -1, + /*0x10407*/ 1275, + /*0x04b2*/ 382, + /*0xab87*/ 1173, + /*0x104b2*/ 1310, + /*0x00cb*/ 37, + /*0x1f2e*/ 735, + -1, + /*0x2c07*/ 918, + /*0x118aa*/ 1440, + -1, -1, + /*0x1f2c*/ 733, + -1, + /*0x023a*/ 216, + /*0x1cba*/ 581, + /*0x018e*/ 129, + -1, + /*0x054b*/ 471, + /*0xff2a*/ 1251, + -1, -1, -1, + /*0x04d4*/ 399, + /*0x10a8*/ 492, + /*0x1fb4*/ 817, + /*0x04b8*/ 385, + /*0x0134*/ 82, + /*0x104b8*/ 1316, + /*0x10c87*/ 1386, + /*0xabb4*/ 1218, + -1, -1, -1, + /*0x03b0*/ 268, + /*0xab71*/ 1151, + -1, + /*0x1eb4*/ 677, + /*0x1e34*/ 611, + -1, -1, + /*0xa722*/ 1064, + /*0x118ae*/ 1444, + -1, -1, + /*0x1f28*/ 729, + /*0x2cb4*/ 1000, + -1, + /*0x118ac*/ 1442, + /*0xab73*/ 1153, + -1, -1, + /*0xff2e*/ 1255, + /*0xa7b4*/ 1133, + -1, -1, + /*0x01b2*/ 151, + /*0x0534*/ 448, + /*0xff2c*/ 1253, + -1, -1, + /*0xa654*/ 1037, + -1, + /*0x04fc*/ 419, + -1, + /*0x1fbc*/ 824, + /*0x10588*/ 1367, + /*0x04ba*/ 386, + -1, + /*0x104ba*/ 1318, + /*0xabbc*/ 1226, + -1, + /*0x10589*/ 1368, + -1, -1, + /*0x0230*/ 214, + /*0x1cb0*/ 571, + /*0x1ebc*/ 681, + /*0x1e3c*/ 615, + -1, + /*0x01b8*/ 155, + /*0x118a8*/ 1438, + /*0x1f0e*/ 721, + /*0x1058a*/ 1369, + -1, + /*0xa72a*/ 1068, + /*0x2cbc*/ 1004, + -1, + /*0x1f0c*/ 719, + /*0x10580*/ 1359, + -1, + /*0xff28*/ 1249, + -1, + /*0xa7bc*/ 1137, + -1, -1, -1, + /*0x053c*/ 456, + /*0x24b8*/ 887, + /*0x023e*/ 219, + /*0x1cbe*/ 583, + /*0x10b2*/ 502, + -1, + /*0x212a*/ 865, + -1, -1, + /*0x10590*/ 1374, + -1, -1, -1, + /*0x1fd6*/ 838, + /*0x0056*/ 20, + /*0x0156*/ 99, + -1, -1, -1, -1, + /*0x01fc*/ 188, + /*0xa72e*/ 1070, + -1, -1, -1, + /*0x1ed6*/ 694, + /*0x1e56*/ 628, + /*0xa72c*/ 1069, + /*0x10b8*/ 508, + -1, -1, + /*0x04b0*/ 381, + /*0x00d6*/ 48, + /*0x104b0*/ 1308, + /*0x2cd6*/ 1017, + /*0x1e90d*/ 1507, + -1, + /*0xab7f*/ 1165, + /*0xab7b*/ 1161, + -1, -1, + /*0xa7d6*/ 1147, + /*0x24ba*/ 889, + /*0x10586*/ 1365, + /*0xab75*/ 1155, + /*0x0556*/ 482, + /*0x1f54*/ 753, + -1, -1, + /*0x1f38*/ 737, + -1, + /*0x1fc4*/ 828, + /*0x0044*/ 3, + -1, + /*0x1cb6*/ 577, + /*0x04be*/ 388, + -1, + /*0x104be*/ 1322, + -1, + /*0x024a*/ 226, + /*0xa728*/ 1067, + /*0x118b2*/ 1448, + -1, + /*0x1ec4*/ 685, + /*0x1e44*/ 619, + /*0xa688*/ 1054, + -1, -1, -1, + /*0x10ba*/ 510, + /*0x00c4*/ 30, + /*0xff32*/ 1259, + /*0x2cc4*/ 1008, + /*0x104d3*/ 1343, + -1, -1, -1, + /*0x10592*/ 1376, + -1, + /*0xa7c4*/ 1141, + /*0x0050*/ 14, + /*0x0150*/ 96, + /*0xa68a*/ 1055, + /*0x0544*/ 464, + -1, + /*0x118b8*/ 1454, + -1, -1, + /*0xa680*/ 1050, + -1, + /*0x1f3a*/ 739, + /*0x1ed0*/ 691, + /*0x1e50*/ 625, + -1, -1, + /*0xff38*/ 1265, + /*0x01db*/ 170, + -1, + /*0x00d0*/ 42, + /*0xab77*/ 1157, + /*0x2cd0*/ 1014, + /*0x1c87*/ 537, + -1, -1, -1, + /*0xa690*/ 1058, + /*0x04b6*/ 384, + /*0xa7d0*/ 1146, + /*0x104b6*/ 1314, + -1, -1, + /*0x0550*/ 476, + /*0x16e5f*/ 1493, + /*0x16e5d*/ 1491, + /*0x104ca*/ 1334, + -1, -1, -1, -1, + /*0x1fcc*/ 835, + /*0x004c*/ 10, + /*0x014c*/ 94, + /*0xa698*/ 1062, + -1, -1, + /*0x01d3*/ 166, + /*0x118ba*/ 1456, + /*0x24be*/ 893, + /*0x1cb4*/ 575, + /*0x1f0d*/ 720, + /*0x10b0*/ 500, + /*0x1ecc*/ 689, + /*0x1e4c*/ 623, + -1, -1, -1, + /*0xff3a*/ 1267, + /*0xa732*/ 1071, + /*0x00cc*/ 38, + /*0xa686*/ 1053, + /*0x2ccc*/ 1012, + /*0x04cb*/ 395, + -1, + /*0x104cb*/ 1335, + -1, -1, -1, -1, + /*0x16e59*/ 1487, + -1, + /*0xa64a*/ 1032, + /*0x054c*/ 472, + -1, -1, + /*0x10be*/ 514, + /*0x2132*/ 867, + /*0xa696*/ 1061, + -1, + /*0xa754*/ 1088, + -1, -1, + /*0xa738*/ 1074, + /*0x1f5b*/ 756, + -1, + /*0x1fc8*/ 831, + /*0x0048*/ 7, + /*0x01ca*/ 161, + -1, -1, -1, -1, + /*0x03d6*/ 274, + -1, + /*0xa692*/ 1059, + -1, + /*0x1f3e*/ 743, + /*0x1ec8*/ 687, + /*0x1e48*/ 621, + /*0x24b6*/ 885, + /*0x1e907*/ 1501, + /*0x04b4*/ 383, + -1, + /*0x104b4*/ 1312, + /*0x00c8*/ 34, + /*0x24ca*/ 905, + /*0x2cc8*/ 1010, + -1, + /*0x118b0*/ 1446, + -1, -1, + /*0xa69a*/ 1063, + -1, + /*0x004e*/ 12, + /*0x014e*/ 95, + -1, + /*0x01cb*/ 162, + /*0x0548*/ 468, + /*0xff30*/ 1257, + -1, -1, -1, -1, + /*0xa73a*/ 1075, + /*0x1ece*/ 690, + /*0x1e4e*/ 624, + /*0x10b6*/ 506, + -1, + /*0x0187*/ 125, + -1, -1, + /*0x00ce*/ 40, + /*0x118be*/ 1460, + /*0x2cce*/ 1013, + /*0x24cb*/ 906, + /*0x1fc2*/ 826, + /*0x0042*/ 1, + -1, + /*0x16e57*/ 1485, + -1, + /*0x10594*/ 1377, + /*0x04bc*/ 387, + -1, + /*0x104bc*/ 1320, + /*0x054e*/ 474, + -1, -1, + /*0x1ec2*/ 684, + /*0x1e42*/ 618, + /*0x1fd2*/ 836, + /*0x0052*/ 16, + /*0x0152*/ 97, + -1, + /*0x1f4a*/ 747, + /*0x00c2*/ 28, + -1, + /*0x2cc2*/ 1007, + /*0x10583*/ 1362, + /*0x03d0*/ 271, + -1, -1, + /*0x1ed2*/ 692, + /*0x1e52*/ 626, + /*0xa7c2*/ 1140, + -1, -1, -1, + /*0x0542*/ 462, + /*0x00d2*/ 44, + -1, + /*0x2cd2*/ 1015, + /*0x0244*/ 222, + -1, -1, -1, + /*0x1fc6*/ 829, + /*0x0046*/ 5, + -1, + /*0x1fd8*/ 840, + /*0x0058*/ 22, + /*0x0158*/ 100, + /*0x0552*/ 478, + /*0x1f4b*/ 748, + /*0x118b6*/ 1452, + -1, -1, + /*0x04d6*/ 400, + /*0x1ec6*/ 686, + /*0x1e46*/ 620, + -1, + /*0x1ed8*/ 695, + /*0x1e58*/ 629, + /*0xab79*/ 1159, + /*0xff36*/ 1263, + /*0x00c6*/ 32, + /*0x01bc*/ 156, + /*0x2cc6*/ 1009, + /*0x00d8*/ 49, + -1, + /*0x2cd8*/ 1018, + /*0x10b4*/ 504, + -1, -1, + /*0xa7c6*/ 1143, + /*0x1fab*/ 810, + /*0x042b*/ 340, + /*0xa7d8*/ 1148, + /*0x0546*/ 466, + /*0xa73e*/ 1077, + /*0xabab*/ 1209, + -1, + /*0x1ec0*/ 683, + /*0x1e40*/ 617, + /*0x24bc*/ 891, + /*0x2c2b*/ 954, + -1, -1, -1, + /*0x00c0*/ 26, + -1, + /*0x2cc0*/ 1006, + /*0x1fec*/ 853, + /*0x046c*/ 351, + /*0x016c*/ 110, + /*0xa656*/ 1038, + /*0x013d*/ 86, + /*0x104c4*/ 1328, + /*0xa7c0*/ 1139, + /*0xabbd*/ 1227, + /*0xab7d*/ 1163, + -1, + /*0x0540*/ 460, + /*0xa7ab*/ 1125, + /*0x1eec*/ 705, + /*0x1e6c*/ 639, + /*0x10cab*/ 1422, + /*0xa694*/ 1060, + -1, -1, + /*0x024c*/ 227, + /*0x10bc*/ 512, + -1, -1, -1, + /*0x1fc9*/ 832, + /*0x0049*/ 1528, + /*0x0149*/ 92, + -1, + /*0x1fa9*/ 808, + /*0x0429*/ 338, + -1, -1, + /*0x04d0*/ 397, + /*0xaba9*/ 1207, + /*0x104d0*/ 1340, + /*0x053d*/ 457, + -1, + /*0x118b4*/ 1450, + /*0x2c29*/ 952, + /*0xa736*/ 1073, + -1, + /*0x1f3c*/ 741, + /*0xa644*/ 1029, + /*0x00c9*/ 35, + -1, + /*0xa74a*/ 1083, + /*0x16e41*/ 1463, + /*0xff34*/ 1261, + /*0x1fda*/ 842, + /*0x005a*/ 24, + /*0x015a*/ 101, + -1, + /*0xa7c9*/ 1145, + /*0x1fea*/ 851, + /*0x046a*/ 350, + /*0x016a*/ 109, + /*0x0549*/ 469, + -1, + /*0x01c4*/ 157, + /*0x10ca9*/ 1420, + /*0x1eda*/ 696, + /*0x1e5a*/ 630, + -1, -1, + /*0x0248*/ 225, + /*0x1eea*/ 704, + /*0x1e6a*/ 638, + /*0x00da*/ 51, + -1, + /*0x2cda*/ 1019, + /*0xa650*/ 1035, + -1, -1, + /*0x03c2*/ 269, + /*0x104cc*/ 1336, + -1, + /*0x24c4*/ 899, + /*0x118bc*/ 1458, + -1, + /*0x10584*/ 1363, + /*0x1fe2*/ 844, + /*0x0462*/ 346, + /*0x0162*/ 105, + -1, + /*0x1fa1*/ 800, + /*0x0421*/ 330, + /*0x1f56*/ 754, + /*0x10421*/ 1301, + -1, + /*0xaba1*/ 1199, + /*0x2c62*/ 960, + /*0x024e*/ 228, + /*0x1ee2*/ 700, + /*0x1e62*/ 634, + /*0x2c21*/ 944, + -1, -1, -1, + /*0x1fc7*/ 830, + /*0x0047*/ 6, + /*0x0147*/ 91, + /*0x2ce2*/ 1023, + -1, + /*0x10c4*/ 520, + /*0x0045*/ 4, + /*0x0145*/ 90, + -1, -1, -1, + /*0x1fb9*/ 821, + /*0xa64c*/ 1033, + /*0x0139*/ 84, + /*0x10582*/ 1361, + /*0xa734*/ 1072, + /*0xabb9*/ 1223, + /*0x10ca1*/ 1412, + /*0x03d8*/ 275, + /*0x00c7*/ 33, + /*0x0055*/ 19, + /*0x104c8*/ 1332, + -1, -1, + /*0x00c5*/ 31, + -1, -1, -1, + /*0xa7c7*/ 1144, + -1, -1, -1, + /*0x0547*/ 467, + /*0xa7c5*/ 1142, + -1, + /*0x0345*/ 229, + -1, + /*0x0545*/ 465, + /*0x00d5*/ 47, + -1, + /*0x1fe8*/ 849, + /*0x0468*/ 349, + /*0x0168*/ 108, + /*0x0539*/ 453, + /*0x03ab*/ 267, + -1, + /*0x24cc*/ 907, + -1, + /*0x104ce*/ 1338, + -1, -1, + /*0x0555*/ 481, + /*0x1ee8*/ 703, + /*0x1e68*/ 637, + /*0x1f50*/ 751, + /*0xa73c*/ 1076, + /*0x0246*/ 224, + /*0xa648*/ 1031, + -1, -1, -1, + /*0x03ec*/ 285, + /*0x1f97*/ 790, + /*0x0417*/ 320, + -1, + /*0x10417*/ 1291, + -1, + /*0xab97*/ 1189, + /*0x1ff2*/ 854, + /*0x0472*/ 354, + /*0x0172*/ 113, + /*0x104c2*/ 1326, + /*0x2c17*/ 934, + /*0x01c8*/ 160, + /*0x1e97*/ 661, + -1, -1, + /*0xa684*/ 1052, + /*0x2c72*/ 970, + -1, + /*0x1ef2*/ 708, + /*0x1e72*/ 642, + -1, + /*0x04d2*/ 398, + /*0xa64e*/ 1034, + /*0x104d2*/ 1342, + /*0x1cab*/ 566, + -1, + /*0x03a9*/ 265, + /*0x2cf2*/ 1026, + -1, + /*0x24c8*/ 903, + -1, + /*0x10c97*/ 1402, + /*0x1f4c*/ 749, + -1, -1, -1, + /*0x0372*/ 231, + -1, + /*0xa756*/ 1089, + -1, + /*0x10572*/ 1346, + -1, + /*0x023d*/ 218, + /*0x1cbd*/ 582, + -1, + /*0xa642*/ 1028, + /*0x03da*/ 276, + -1, + /*0xa682*/ 1051, + /*0x104c6*/ 1330, + /*0x04d8*/ 401, + /*0x03ea*/ 284, + -1, -1, + /*0x046e*/ 352, + /*0x016e*/ 111, + /*0x24ce*/ 909, + -1, -1, + /*0xa652*/ 1036, + -1, -1, -1, + /*0x2c6e*/ 967, + /*0x015e*/ 103, + /*0x1eee*/ 706, + /*0x1e6e*/ 640, + -1, + /*0x1ca9*/ 564, + -1, -1, + /*0x04c0*/ 389, + -1, + /*0x104c0*/ 1324, + /*0x1ede*/ 698, + /*0x1e5e*/ 632, + /*0xa744*/ 1080, + /*0x1f48*/ 745, + /*0x03e2*/ 280, + /*0x24c2*/ 897, + -1, + /*0x00de*/ 55, + /*0x03a1*/ 258, + /*0x2cde*/ 1021, + -1, + /*0xa646*/ 1030, + -1, -1, + /*0xa658*/ 1039, + -1, -1, -1, -1, + /*0x04ec*/ 411, + /*0x1fc3*/ 827, + /*0x0043*/ 2, + /*0x0143*/ 89, + /*0x104bd*/ 1321, + -1, + /*0x1fe6*/ 847, + /*0x0466*/ 348, + /*0x0166*/ 107, + -1, -1, + /*0xa750*/ 1086, + -1, + /*0x10c2*/ 518, + -1, -1, + /*0xa640*/ 1027, + -1, + /*0x1ee6*/ 702, + /*0x1e66*/ 636, + /*0x00c3*/ 29, + -1, + /*0x03d5*/ 273, + /*0x04c9*/ 394, + -1, + /*0x104c9*/ 1333, + /*0x24c6*/ 901, + /*0x1fad*/ 812, + /*0x042d*/ 342, + /*0x1058e*/ 1372, + -1, + /*0x1ca1*/ 556, + /*0xabad*/ 1211, + /*0x0543*/ 463, + -1, + /*0x1058c*/ 1370, + -1, + /*0x2c2d*/ 956, + /*0xa66c*/ 1049, + -1, -1, -1, -1, + /*0x03e8*/ 283, + -1, -1, -1, + /*0x04da*/ 402, + /*0x1f52*/ 752, + /*0x0245*/ 223, + /*0x24c0*/ 895, + /*0xa74c*/ 1084, + /*0x04ea*/ 410, + -1, + /*0x01ec*/ 178, + /*0xa7ad*/ 1127, + /*0x1cb9*/ 580, + -1, + /*0x10cad*/ 1424, + -1, -1, -1, -1, -1, -1, + /*0x0397*/ 248, + /*0x1fbb*/ 823, + /*0xab7c*/ 1162, + /*0x013b*/ 85, + -1, -1, + /*0xabbb*/ 1225, + -1, -1, + /*0x24bd*/ 892, + -1, -1, + /*0x10c0*/ 516, + -1, + /*0x04e2*/ 406, + -1, + /*0x01a9*/ 146, + /*0x10ab*/ 495, + /*0x1fa5*/ 804, + /*0x0425*/ 334, + /*0xa65a*/ 1040, + /*0x10425*/ 1305, + -1, + /*0xaba5*/ 1203, + /*0x1fb7*/ 819, + /*0xa66a*/ 1048, + -1, -1, + /*0x2c25*/ 948, + /*0xabb7*/ 1221, + /*0x24c9*/ 904, + /*0xa748*/ 1082, + /*0x04c7*/ 393, + /*0x053b*/ 455, + /*0x104c7*/ 1331, + -1, + /*0x10bd*/ 513, + /*0x04c5*/ 392, + /*0x1f2b*/ 732, + /*0x104c5*/ 1329, + -1, + /*0x01ea*/ 177, + /*0x1c97*/ 546, + -1, + /*0x1e921*/ 1527, + /*0x104b9*/ 1317, + -1, -1, -1, + /*0x10ca5*/ 1416, + -1, -1, + /*0xa662*/ 1044, + /*0x03ee*/ 286, + -1, + /*0x1f6c*/ 763, + /*0x0537*/ 451, + /*0x1f3d*/ 742, + /*0xa74e*/ 1085, + -1, + /*0xa68e*/ 1057, + /*0x10a9*/ 493, + /*0x03de*/ 278, + -1, -1, -1, + /*0xa68c*/ 1056, + -1, + /*0x01e2*/ 173, + -1, + /*0x1fa3*/ 802, + /*0x0423*/ 332, + /*0x04e8*/ 409, + /*0x10423*/ 1303, + /*0x118ab*/ 1441, + /*0xaba3*/ 1201, + -1, -1, + /*0x1f49*/ 746, + -1, + /*0x2c23*/ 946, + /*0xa742*/ 1079, + /*0x1f29*/ 730, + -1, + /*0xff2b*/ 1252, + -1, + /*0x01c7*/ 159, + -1, -1, -1, -1, + /*0x01c5*/ 158, + -1, + /*0x118bd*/ 1459, + /*0x004d*/ 11, + /*0xa752*/ 1087, + -1, -1, -1, + /*0x03e6*/ 282, + /*0x04f2*/ 414, + /*0x10ca3*/ 1414, + -1, -1, + /*0x24c7*/ 902, + /*0x01d5*/ 167, + -1, + /*0x1f6a*/ 761, + /*0x1058d*/ 1371, + /*0x24c5*/ 900, + /*0xa668*/ 1047, + -1, + /*0x00cd*/ 39, + -1, -1, + /*0x24b9*/ 888, + -1, + /*0x10a1*/ 485, + /*0x118a9*/ 1439, + -1, + /*0x1e917*/ 1517, + /*0xa746*/ 1081, + -1, + /*0x16e54*/ 1482, + /*0xa758*/ 1090, + /*0x054d*/ 473, + /*0x01e8*/ 176, + -1, + /*0xff29*/ 1250, + -1, -1, + /*0x10c7*/ 522, + /*0x0470*/ 353, + /*0x0170*/ 112, + -1, + /*0x0243*/ 221, + /*0x10c5*/ 521, + -1, -1, -1, -1, + /*0x2c70*/ 969, + /*0x10b9*/ 509, + /*0x1ef0*/ 707, + /*0x1e70*/ 641, + /*0xa740*/ 1078, + -1, + /*0x04ee*/ 412, + /*0x0197*/ 136, + -1, + /*0x1f9d*/ 796, + /*0x041d*/ 326, + -1, + /*0x1041d*/ 1297, + /*0x01f2*/ 182, + /*0xab9d*/ 1195, + /*0x04de*/ 404, + -1, -1, -1, + /*0x2c1d*/ 940, + /*0x0370*/ 230, + /*0x1cad*/ 568, + /*0x1f39*/ 738, + -1, + /*0x10570*/ 1344, + -1, + /*0xa76c*/ 1100, + /*0x212b*/ 866, + /*0xabb5*/ 1219, + -1, -1, -1, -1, + /*0x118a1*/ 1431, + -1, + /*0x03a5*/ 261, + /*0x1f9b*/ 794, + /*0x041b*/ 324, + -1, + /*0x1041b*/ 1295, + /*0x10c9d*/ 1408, + /*0xab9b*/ 1193, + /*0x00b5*/ 25, + /*0xff21*/ 1242, + /*0x216c*/ 880, + -1, + /*0x2c1b*/ 938, + /*0x04c3*/ 391, + /*0x1e9b*/ 665, + /*0x104c3*/ 1327, + -1, + /*0x1f68*/ 759, + /*0x04e6*/ 408, + /*0xa65e*/ 1042, + -1, + /*0x0535*/ 449, + -1, -1, + /*0x118b9*/ 1455, + /*0x023b*/ 217, + /*0x01ee*/ 179, + /*0x1f95*/ 788, + /*0x0415*/ 318, + -1, + /*0x10415*/ 1289, + -1, + /*0xab95*/ 1187, + /*0x10c9b*/ 1406, + /*0xff39*/ 1266, + /*0x01de*/ 171, + -1, + /*0x2c15*/ 932, + -1, + /*0xa75a*/ 1091, + -1, -1, -1, + /*0x1ca5*/ 560, + /*0xa76a*/ 1099, + /*0x1f99*/ 792, + /*0x0419*/ 322, + -1, + /*0x10419*/ 1293, + /*0x1cb7*/ 578, + /*0xab99*/ 1191, + /*0xfb17*/ 1241, + -1, + /*0x03a3*/ 259, + /*0x1fb3*/ 816, + /*0x2c19*/ 936, + /*0xa666*/ 1046, + /*0x1e99*/ 663, + /*0x10c95*/ 1400, + /*0xabb3*/ 1217, + /*0x1f93*/ 786, + /*0x0413*/ 316, + /*0x216a*/ 878, + /*0x10413*/ 1287, + /*0x16e5b*/ 1489, + /*0xab93*/ 1185, + -1, -1, -1, -1, + /*0x2c13*/ 930, + /*0xa762*/ 1095, + /*0x01e6*/ 175, + -1, -1, + /*0x0587*/ 483, + /*0x10c99*/ 1404, + /*0x10587*/ 1366, + /*0x1f91*/ 784, + /*0x0411*/ 314, + /*0x104bb*/ 1319, + /*0x10411*/ 1285, + /*0xa7b3*/ 1132, + /*0xab91*/ 1183, + -1, + /*0x24c3*/ 898, + /*0x0533*/ 447, + -1, + /*0x2c11*/ 928, + /*0x2162*/ 870, + /*0x004f*/ 13, + /*0x10c93*/ 1398, + /*0x1f6e*/ 765, + /*0x16e53*/ 1481, + -1, + /*0x1ca3*/ 558, + -1, + /*0x1f8f*/ 782, + /*0x040f*/ 312, + -1, + /*0x1040f*/ 1283, + -1, + /*0xab8f*/ 1181, + /*0x104b7*/ 1315, + -1, -1, -1, + /*0x2c0f*/ 926, + /*0x00cf*/ 41, + /*0x10c91*/ 1396, + /*0x1f81*/ 768, + /*0x0401*/ 298, + /*0x10c3*/ 519, + /*0x10401*/ 1269, + /*0x03f0*/ 287, + /*0xab81*/ 1167, + -1, -1, -1, -1, + /*0x2c01*/ 912, + /*0x054f*/ 475, + -1, -1, + /*0x1ff4*/ 856, + /*0x0474*/ 355, + /*0x0174*/ 114, + -1, + /*0x10c8f*/ 1394, + /*0xa768*/ 1098, + -1, + /*0x047e*/ 360, + -1, + /*0x039d*/ 254, + /*0x16e4a*/ 1472, + /*0x015c*/ 102, + /*0x1ef4*/ 709, + /*0x1e74*/ 643, + /*0x10ad*/ 497, + -1, + /*0x2c7e*/ 972, + /*0x10c81*/ 1380, + /*0x1efe*/ 714, + /*0x1e7e*/ 648, + -1, + /*0x1edc*/ 697, + /*0x1e5c*/ 631, + /*0x2168*/ 876, + /*0x013f*/ 87, + -1, + /*0x24bb*/ 890, + /*0xabbf*/ 1229, + /*0x00dc*/ 53, + /*0xabb1*/ 1215, + /*0x2cdc*/ 1020, + /*0x01b7*/ 154, + -1, -1, + /*0x10574*/ 1348, + /*0x1f2d*/ 734, + /*0x039b*/ 252, + -1, -1, + /*0x16e4b*/ 1473, + /*0x1057e*/ 1357, + -1, -1, -1, -1, -1, + /*0x04cd*/ 396, + -1, + /*0x104cd*/ 1337, + /*0x24b7*/ 886, + -1, + /*0x1c9d*/ 552, + /*0xa7b1*/ 1130, + /*0x10bb*/ 511, + /*0x053f*/ 459, + /*0x10cb1*/ 1428, + /*0x0531*/ 445, + /*0x1f9f*/ 798, + /*0x041f*/ 328, + -1, + /*0x1041f*/ 1299, + /*0x0395*/ 246, + /*0xab9f*/ 1197, + -1, -1, + /*0x1cb5*/ 576, + -1, + /*0x2c1f*/ 942, + -1, -1, + /*0x10a5*/ 489, + /*0x118ad*/ 1443, + -1, -1, + /*0x1f3b*/ 740, + -1, + /*0x10b7*/ 507, + -1, + /*0x1c9b*/ 550, + /*0x0399*/ 250, + /*0xa76e*/ 1101, + /*0xff2d*/ 1254, + /*0x1f85*/ 772, + /*0x0405*/ 302, + /*0x04f0*/ 413, + /*0x10405*/ 1273, + -1, + /*0xab85*/ 1171, + /*0x10c9f*/ 1410, + /*0xa75e*/ 1093, + -1, -1, + /*0x2c05*/ 916, + -1, + /*0x0393*/ 244, + -1, -1, + /*0x0051*/ 15, + /*0x216e*/ 882, + -1, + /*0x01cd*/ 163, + -1, -1, + /*0x1c95*/ 544, + /*0x1f8b*/ 778, + /*0x040b*/ 308, + -1, + /*0x1040b*/ 1279, + -1, + /*0xab8b*/ 1177, + /*0x118bb*/ 1457, + -1, + /*0x0391*/ 242, + /*0x10c85*/ 1384, + /*0x2c0b*/ 922, + /*0x00d1*/ 43, + -1, -1, + /*0x24cd*/ 908, + /*0x104b5*/ 1313, + -1, + /*0x1c99*/ 548, + /*0x10a3*/ 487, + /*0x03cf*/ 270, + -1, -1, + /*0xa766*/ 1097, + /*0x118a5*/ 1435, + /*0x0551*/ 477, + /*0x1e91d*/ 1523, + /*0x1cb3*/ 574, + /*0x038f*/ 240, + /*0xa78b*/ 1110, + /*0x118b7*/ 1453, + -1, + /*0x10c8b*/ 1390, + /*0x1c93*/ 542, + /*0xff25*/ 1246, + /*0x01f0*/ 180, + /*0x1ff6*/ 857, + /*0x0476*/ 356, + /*0x0176*/ 115, + -1, + /*0xff37*/ 1264, + /*0x2166*/ 874, + /*0x10cd*/ 523, + -1, -1, -1, + /*0x1ffa*/ 861, + /*0x047a*/ 358, + /*0x1ef6*/ 710, + /*0x1e76*/ 644, + -1, + /*0x1c91*/ 540, + -1, + /*0x1e91b*/ 1521, + /*0x019d*/ 139, + /*0x03f4*/ 289, + -1, -1, + /*0x1efa*/ 712, + /*0x1e7a*/ 646, + /*0x16e56*/ 1484, + /*0x03fe*/ 295, + -1, + /*0x1f4d*/ 750, + /*0x03dc*/ 277, + -1, + /*0x0376*/ 232, + -1, + /*0x01b5*/ 153, + -1, + /*0x10576*/ 1350, + -1, + /*0x1ff8*/ 859, + /*0x0478*/ 357, + /*0x0178*/ 116, + -1, + /*0x118a3*/ 1433, + -1, + /*0x1e915*/ 1515, + -1, + /*0x1057a*/ 1354, + /*0x104b3*/ 1311, + -1, + /*0x1c81*/ 531, + /*0x1ef8*/ 711, + /*0x1e78*/ 645, + /*0xff23*/ 1244, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x1e919*/ 1519, + -1, + /*0x16e44*/ 1466, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10578*/ 1352, + -1, -1, -1, -1, + /*0x1e913*/ 1513, + /*0x039f*/ 256, + /*0x10b5*/ 505, + -1, -1, + /*0x104cf*/ 1339, + -1, -1, + /*0x1cbf*/ 584, + /*0x1f1d*/ 728, + /*0x1cb1*/ 572, + -1, -1, -1, -1, + /*0x16e50*/ 1478, + -1, -1, + /*0x1e911*/ 1511, + -1, -1, -1, + /*0x01b3*/ 152, + -1, -1, -1, -1, + /*0x13fa*/ 526, + /*0x0193*/ 133, + -1, -1, -1, -1, -1, -1, + -1, + /*0x1f1b*/ 726, + /*0x1e90f*/ 1509, + /*0x04f4*/ 415, + -1, + /*0x03d1*/ 272, + -1, -1, + /*0x1c9f*/ 554, + /*0x04fe*/ 420, + -1, + /*0x0191*/ 132, + /*0x04dc*/ 403, + -1, -1, + /*0x1e901*/ 1495, + -1, -1, + /*0x13f8*/ 524, + -1, + /*0x16e4c*/ 1474, + -1, + /*0x01cf*/ 164, + -1, + /*0x118b5*/ 1451, + -1, -1, + /*0x104bf*/ 1323, + -1, + /*0x104b1*/ 1309, + /*0x018f*/ 130, + -1, + /*0x10b3*/ 503, + /*0x1c85*/ 535, + /*0xff35*/ 1262, + -1, -1, -1, + /*0xfb15*/ 1239, + -1, + /*0x24cf*/ 910, + -1, -1, + /*0x0181*/ 121, + /*0x1f19*/ 724, + -1, -1, -1, -1, -1, + /*0xa65c*/ 1041, + -1, -1, -1, -1, -1, -1, + /*0x01f4*/ 183, + /*0x03fa*/ 293, + -1, -1, -1, -1, + /*0x01fe*/ 189, + -1, + /*0x16e48*/ 1470, + -1, -1, -1, -1, -1, + /*0xfb13*/ 1237, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x01b1*/ 150, + -1, -1, -1, -1, + /*0x1e91f*/ 1525, + -1, -1, + /*0x118b3*/ 1449, + -1, -1, + /*0x16e4e*/ 1476, + -1, -1, -1, + /*0x1f0f*/ 722, + /*0x24bf*/ 894, + -1, + /*0xff33*/ 1260, + -1, + /*0x104d1*/ 1341, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x1e905*/ 1499, + -1, -1, + /*0x019f*/ 140, + /*0x16e42*/ 1464, + -1, -1, -1, -1, -1, + /*0xfb01*/ 1231, + -1, -1, + /*0x10bf*/ 515, + -1, + /*0x10b1*/ 501, + -1, -1, + /*0x16e52*/ 1480, + -1, -1, -1, + /*0x1e90b*/ 1505, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x04f6*/ 416, + -1, -1, + /*0x1f3f*/ 744, + -1, -1, -1, -1, -1, -1, + /*0x04fa*/ 418, + /*0x01d1*/ 165, + -1, + /*0x16e46*/ 1468, + -1, -1, + /*0x16e58*/ 1486, + -1, -1, + /*0x018b*/ 128, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x04f8*/ 417, + /*0x16e40*/ 1462, + -1, + /*0x118bf*/ 1461, + -1, + /*0x118b1*/ 1447, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xff31*/ 1258, + -1, -1, + /*0x01f6*/ 184, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xab72*/ 1152, + /*0x01fa*/ 187, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0xfb05*/ 1235, + -1, -1, -1, -1, -1, -1, + /*0x16e49*/ 1471, + -1, -1, + /*0x1f0b*/ 718, + -1, -1, -1, -1, + /*0x01f8*/ 186, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xa77e*/ 1105, + -1, -1, + /*0xa75c*/ 1092, + -1, -1, -1, + /*0x16e5a*/ 1488, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x16e47*/ 1469, + -1, -1, -1, -1, + /*0x16e45*/ 1467, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x16e55*/ 1483, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x16e5e*/ 1492, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x16e43*/ 1465, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xab70*/ 1150, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x16e4d*/ 1475, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x10595*/ 1378, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xab74*/ 1154, + -1, -1, -1, -1, -1, + /*0xab7e*/ 1164, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x10591*/ 1375, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x1058f*/ 1373, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x10581*/ 1360, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x16e4f*/ 1477, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xab76*/ 1156, + -1, -1, -1, -1, -1, + /*0x10585*/ 1364, + -1, -1, -1, + /*0xab7a*/ 1160, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x16e5c*/ 1490, + -1, -1, -1, -1, + /*0xab78*/ 1158, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x16e51*/ 1479 + }; + + if (code <= MAX_CODE_VALUE && code >= MIN_CODE_VALUE) + { + register unsigned int key = onigenc_unicode_CaseFold_11_hash(code); + + if (key <= MAX_HASH_VALUE) + { + register short s = wordlist[key]; + + if (s >= 0 && code1_equal(code, CaseFold_11_Table[s].from)) + return &CaseFold_11_Table[s].to; + } + } + return 0; +} + +static const CaseUnfold_11_Type CaseUnfold_11_Table[] = { +#define CaseUnfold_11 (*(CaseUnfold_11_Type (*)[1395])(CaseUnfold_11_Table+0)) + {0x0061, {1|U, {0x0041}}}, + {0x0062, {1|U, {0x0042}}}, + {0x0063, {1|U, {0x0043}}}, + {0x0064, {1|U, {0x0044}}}, + {0x0065, {1|U, {0x0045}}}, + {0x0066, {1|U, {0x0046}}}, + {0x0067, {1|U, {0x0047}}}, + {0x0068, {1|U, {0x0048}}}, + {0x006a, {1|U, {0x004a}}}, + {0x006b, {2|U, {0x004b, 0x212a}}}, + {0x006c, {1|U, {0x004c}}}, + {0x006d, {1|U, {0x004d}}}, + {0x006e, {1|U, {0x004e}}}, + {0x006f, {1|U, {0x004f}}}, + {0x0070, {1|U, {0x0050}}}, + {0x0071, {1|U, {0x0051}}}, + {0x0072, {1|U, {0x0052}}}, + {0x0073, {2|U, {0x0053, 0x017f}}}, + {0x0074, {1|U, {0x0054}}}, + {0x0075, {1|U, {0x0055}}}, + {0x0076, {1|U, {0x0056}}}, + {0x0077, {1|U, {0x0057}}}, + {0x0078, {1|U, {0x0058}}}, + {0x0079, {1|U, {0x0059}}}, + {0x007a, {1|U, {0x005a}}}, + {0x00e0, {1|U, {0x00c0}}}, + {0x00e1, {1|U, {0x00c1}}}, + {0x00e2, {1|U, {0x00c2}}}, + {0x00e3, {1|U, {0x00c3}}}, + {0x00e4, {1|U, {0x00c4}}}, + {0x00e5, {2|U, {0x00c5, 0x212b}}}, + {0x00e6, {1|U, {0x00c6}}}, + {0x00e7, {1|U, {0x00c7}}}, + {0x00e8, {1|U, {0x00c8}}}, + {0x00e9, {1|U, {0x00c9}}}, + {0x00ea, {1|U, {0x00ca}}}, + {0x00eb, {1|U, {0x00cb}}}, + {0x00ec, {1|U, {0x00cc}}}, + {0x00ed, {1|U, {0x00cd}}}, + {0x00ee, {1|U, {0x00ce}}}, + {0x00ef, {1|U, {0x00cf}}}, + {0x00f0, {1|U, {0x00d0}}}, + {0x00f1, {1|U, {0x00d1}}}, + {0x00f2, {1|U, {0x00d2}}}, + {0x00f3, {1|U, {0x00d3}}}, + {0x00f4, {1|U, {0x00d4}}}, + {0x00f5, {1|U, {0x00d5}}}, + {0x00f6, {1|U, {0x00d6}}}, + {0x00f8, {1|U, {0x00d8}}}, + {0x00f9, {1|U, {0x00d9}}}, + {0x00fa, {1|U, {0x00da}}}, + {0x00fb, {1|U, {0x00db}}}, + {0x00fc, {1|U, {0x00dc}}}, + {0x00fd, {1|U, {0x00dd}}}, + {0x00fe, {1|U, {0x00de}}}, + {0x00ff, {1|U, {0x0178}}}, + {0x0101, {1|U, {0x0100}}}, + {0x0103, {1|U, {0x0102}}}, + {0x0105, {1|U, {0x0104}}}, + {0x0107, {1|U, {0x0106}}}, + {0x0109, {1|U, {0x0108}}}, + {0x010b, {1|U, {0x010a}}}, + {0x010d, {1|U, {0x010c}}}, + {0x010f, {1|U, {0x010e}}}, + {0x0111, {1|U, {0x0110}}}, + {0x0113, {1|U, {0x0112}}}, + {0x0115, {1|U, {0x0114}}}, + {0x0117, {1|U, {0x0116}}}, + {0x0119, {1|U, {0x0118}}}, + {0x011b, {1|U, {0x011a}}}, + {0x011d, {1|U, {0x011c}}}, + {0x011f, {1|U, {0x011e}}}, + {0x0121, {1|U, {0x0120}}}, + {0x0123, {1|U, {0x0122}}}, + {0x0125, {1|U, {0x0124}}}, + {0x0127, {1|U, {0x0126}}}, + {0x0129, {1|U, {0x0128}}}, + {0x012b, {1|U, {0x012a}}}, + {0x012d, {1|U, {0x012c}}}, + {0x012f, {1|U, {0x012e}}}, + {0x0133, {1|U, {0x0132}}}, + {0x0135, {1|U, {0x0134}}}, + {0x0137, {1|U, {0x0136}}}, + {0x013a, {1|U, {0x0139}}}, + {0x013c, {1|U, {0x013b}}}, + {0x013e, {1|U, {0x013d}}}, + {0x0140, {1|U, {0x013f}}}, + {0x0142, {1|U, {0x0141}}}, + {0x0144, {1|U, {0x0143}}}, + {0x0146, {1|U, {0x0145}}}, + {0x0148, {1|U, {0x0147}}}, + {0x014b, {1|U, {0x014a}}}, + {0x014d, {1|U, {0x014c}}}, + {0x014f, {1|U, {0x014e}}}, + {0x0151, {1|U, {0x0150}}}, + {0x0153, {1|U, {0x0152}}}, + {0x0155, {1|U, {0x0154}}}, + {0x0157, {1|U, {0x0156}}}, + {0x0159, {1|U, {0x0158}}}, + {0x015b, {1|U, {0x015a}}}, + {0x015d, {1|U, {0x015c}}}, + {0x015f, {1|U, {0x015e}}}, + {0x0161, {1|U, {0x0160}}}, + {0x0163, {1|U, {0x0162}}}, + {0x0165, {1|U, {0x0164}}}, + {0x0167, {1|U, {0x0166}}}, + {0x0169, {1|U, {0x0168}}}, + {0x016b, {1|U, {0x016a}}}, + {0x016d, {1|U, {0x016c}}}, + {0x016f, {1|U, {0x016e}}}, + {0x0171, {1|U, {0x0170}}}, + {0x0173, {1|U, {0x0172}}}, + {0x0175, {1|U, {0x0174}}}, + {0x0177, {1|U, {0x0176}}}, + {0x017a, {1|U, {0x0179}}}, + {0x017c, {1|U, {0x017b}}}, + {0x017e, {1|U, {0x017d}}}, + {0x0180, {1|U, {0x0243}}}, + {0x0183, {1|U, {0x0182}}}, + {0x0185, {1|U, {0x0184}}}, + {0x0188, {1|U, {0x0187}}}, + {0x018c, {1|U, {0x018b}}}, + {0x0192, {1|U, {0x0191}}}, + {0x0195, {1|U, {0x01f6}}}, + {0x0199, {1|U, {0x0198}}}, + {0x019a, {1|U, {0x023d}}}, + {0x019e, {1|U, {0x0220}}}, + {0x01a1, {1|U, {0x01a0}}}, + {0x01a3, {1|U, {0x01a2}}}, + {0x01a5, {1|U, {0x01a4}}}, + {0x01a8, {1|U, {0x01a7}}}, + {0x01ad, {1|U, {0x01ac}}}, + {0x01b0, {1|U, {0x01af}}}, + {0x01b4, {1|U, {0x01b3}}}, + {0x01b6, {1|U, {0x01b5}}}, + {0x01b9, {1|U, {0x01b8}}}, + {0x01bd, {1|U, {0x01bc}}}, + {0x01bf, {1|U, {0x01f7}}}, + {0x01c6, {2|U|ST, {0x01c4, 0x01c5}}}, + {0x01c9, {2|U|ST, {0x01c7, 0x01c8}}}, + {0x01cc, {2|U|ST, {0x01ca, 0x01cb}}}, + {0x01ce, {1|U, {0x01cd}}}, + {0x01d0, {1|U, {0x01cf}}}, + {0x01d2, {1|U, {0x01d1}}}, + {0x01d4, {1|U, {0x01d3}}}, + {0x01d6, {1|U, {0x01d5}}}, + {0x01d8, {1|U, {0x01d7}}}, + {0x01da, {1|U, {0x01d9}}}, + {0x01dc, {1|U, {0x01db}}}, + {0x01dd, {1|U, {0x018e}}}, + {0x01df, {1|U, {0x01de}}}, + {0x01e1, {1|U, {0x01e0}}}, + {0x01e3, {1|U, {0x01e2}}}, + {0x01e5, {1|U, {0x01e4}}}, + {0x01e7, {1|U, {0x01e6}}}, + {0x01e9, {1|U, {0x01e8}}}, + {0x01eb, {1|U, {0x01ea}}}, + {0x01ed, {1|U, {0x01ec}}}, + {0x01ef, {1|U, {0x01ee}}}, + {0x01f3, {2|U|ST, {0x01f1, 0x01f2}}}, + {0x01f5, {1|U, {0x01f4}}}, + {0x01f9, {1|U, {0x01f8}}}, + {0x01fb, {1|U, {0x01fa}}}, + {0x01fd, {1|U, {0x01fc}}}, + {0x01ff, {1|U, {0x01fe}}}, + {0x0201, {1|U, {0x0200}}}, + {0x0203, {1|U, {0x0202}}}, + {0x0205, {1|U, {0x0204}}}, + {0x0207, {1|U, {0x0206}}}, + {0x0209, {1|U, {0x0208}}}, + {0x020b, {1|U, {0x020a}}}, + {0x020d, {1|U, {0x020c}}}, + {0x020f, {1|U, {0x020e}}}, + {0x0211, {1|U, {0x0210}}}, + {0x0213, {1|U, {0x0212}}}, + {0x0215, {1|U, {0x0214}}}, + {0x0217, {1|U, {0x0216}}}, + {0x0219, {1|U, {0x0218}}}, + {0x021b, {1|U, {0x021a}}}, + {0x021d, {1|U, {0x021c}}}, + {0x021f, {1|U, {0x021e}}}, + {0x0223, {1|U, {0x0222}}}, + {0x0225, {1|U, {0x0224}}}, + {0x0227, {1|U, {0x0226}}}, + {0x0229, {1|U, {0x0228}}}, + {0x022b, {1|U, {0x022a}}}, + {0x022d, {1|U, {0x022c}}}, + {0x022f, {1|U, {0x022e}}}, + {0x0231, {1|U, {0x0230}}}, + {0x0233, {1|U, {0x0232}}}, + {0x023c, {1|U, {0x023b}}}, + {0x023f, {1|U, {0x2c7e}}}, + {0x0240, {1|U, {0x2c7f}}}, + {0x0242, {1|U, {0x0241}}}, + {0x0247, {1|U, {0x0246}}}, + {0x0249, {1|U, {0x0248}}}, + {0x024b, {1|U, {0x024a}}}, + {0x024d, {1|U, {0x024c}}}, + {0x024f, {1|U, {0x024e}}}, + {0x0250, {1|U, {0x2c6f}}}, + {0x0251, {1|U, {0x2c6d}}}, + {0x0252, {1|U, {0x2c70}}}, + {0x0253, {1|U, {0x0181}}}, + {0x0254, {1|U, {0x0186}}}, + {0x0256, {1|U, {0x0189}}}, + {0x0257, {1|U, {0x018a}}}, + {0x0259, {1|U, {0x018f}}}, + {0x025b, {1|U, {0x0190}}}, + {0x025c, {1|U, {0xa7ab}}}, + {0x0260, {1|U, {0x0193}}}, + {0x0261, {1|U, {0xa7ac}}}, + {0x0263, {1|U, {0x0194}}}, + {0x0265, {1|U, {0xa78d}}}, + {0x0266, {1|U, {0xa7aa}}}, + {0x0268, {1|U, {0x0197}}}, + {0x0269, {1|U, {0x0196}}}, + {0x026a, {1|U, {0xa7ae}}}, + {0x026b, {1|U, {0x2c62}}}, + {0x026c, {1|U, {0xa7ad}}}, + {0x026f, {1|U, {0x019c}}}, + {0x0271, {1|U, {0x2c6e}}}, + {0x0272, {1|U, {0x019d}}}, + {0x0275, {1|U, {0x019f}}}, + {0x027d, {1|U, {0x2c64}}}, + {0x0280, {1|U, {0x01a6}}}, + {0x0282, {1|U, {0xa7c5}}}, + {0x0283, {1|U, {0x01a9}}}, + {0x0287, {1|U, {0xa7b1}}}, + {0x0288, {1|U, {0x01ae}}}, + {0x0289, {1|U, {0x0244}}}, + {0x028a, {1|U, {0x01b1}}}, + {0x028b, {1|U, {0x01b2}}}, + {0x028c, {1|U, {0x0245}}}, + {0x0292, {1|U, {0x01b7}}}, + {0x029d, {1|U, {0xa7b2}}}, + {0x029e, {1|U, {0xa7b0}}}, + {0x0371, {1|U, {0x0370}}}, + {0x0373, {1|U, {0x0372}}}, + {0x0377, {1|U, {0x0376}}}, + {0x037b, {1|U, {0x03fd}}}, + {0x037c, {1|U, {0x03fe}}}, + {0x037d, {1|U, {0x03ff}}}, + {0x03ac, {1|U, {0x0386}}}, + {0x03ad, {1|U, {0x0388}}}, + {0x03ae, {1|U, {0x0389}}}, + {0x03af, {1|U, {0x038a}}}, + {0x03b1, {1|U, {0x0391}}}, + {0x03b2, {2|U, {0x0392, 0x03d0}}}, + {0x03b3, {1|U, {0x0393}}}, + {0x03b4, {1|U, {0x0394}}}, + {0x03b5, {2|U, {0x0395, 0x03f5}}}, + {0x03b6, {1|U, {0x0396}}}, + {0x03b7, {1|U, {0x0397}}}, + {0x03b8, {3|U, {0x0398, 0x03d1, 0x03f4}}}, + {0x03b9, {3|U, {0x0399, 0x0345, 0x1fbe}}}, + {0x03ba, {2|U, {0x039a, 0x03f0}}}, + {0x03bb, {1|U, {0x039b}}}, + {0x03bc, {2|U, {0x039c, 0x00b5}}}, + {0x03bd, {1|U, {0x039d}}}, + {0x03be, {1|U, {0x039e}}}, + {0x03bf, {1|U, {0x039f}}}, + {0x03c0, {2|U, {0x03a0, 0x03d6}}}, + {0x03c1, {2|U, {0x03a1, 0x03f1}}}, + {0x03c3, {2|U, {0x03a3, 0x03c2}}}, + {0x03c4, {1|U, {0x03a4}}}, + {0x03c5, {1|U, {0x03a5}}}, + {0x03c6, {2|U, {0x03a6, 0x03d5}}}, + {0x03c7, {1|U, {0x03a7}}}, + {0x03c8, {1|U, {0x03a8}}}, + {0x03c9, {2|U, {0x03a9, 0x2126}}}, + {0x03ca, {1|U, {0x03aa}}}, + {0x03cb, {1|U, {0x03ab}}}, + {0x03cc, {1|U, {0x038c}}}, + {0x03cd, {1|U, {0x038e}}}, + {0x03ce, {1|U, {0x038f}}}, + {0x03d7, {1|U, {0x03cf}}}, + {0x03d9, {1|U, {0x03d8}}}, + {0x03db, {1|U, {0x03da}}}, + {0x03dd, {1|U, {0x03dc}}}, + {0x03df, {1|U, {0x03de}}}, + {0x03e1, {1|U, {0x03e0}}}, + {0x03e3, {1|U, {0x03e2}}}, + {0x03e5, {1|U, {0x03e4}}}, + {0x03e7, {1|U, {0x03e6}}}, + {0x03e9, {1|U, {0x03e8}}}, + {0x03eb, {1|U, {0x03ea}}}, + {0x03ed, {1|U, {0x03ec}}}, + {0x03ef, {1|U, {0x03ee}}}, + {0x03f2, {1|U, {0x03f9}}}, + {0x03f3, {1|U, {0x037f}}}, + {0x03f8, {1|U, {0x03f7}}}, + {0x03fb, {1|U, {0x03fa}}}, + {0x0430, {1|U, {0x0410}}}, + {0x0431, {1|U, {0x0411}}}, + {0x0432, {2|U, {0x0412, 0x1c80}}}, + {0x0433, {1|U, {0x0413}}}, + {0x0434, {2|U, {0x0414, 0x1c81}}}, + {0x0435, {1|U, {0x0415}}}, + {0x0436, {1|U, {0x0416}}}, + {0x0437, {1|U, {0x0417}}}, + {0x0438, {1|U, {0x0418}}}, + {0x0439, {1|U, {0x0419}}}, + {0x043a, {1|U, {0x041a}}}, + {0x043b, {1|U, {0x041b}}}, + {0x043c, {1|U, {0x041c}}}, + {0x043d, {1|U, {0x041d}}}, + {0x043e, {2|U, {0x041e, 0x1c82}}}, + {0x043f, {1|U, {0x041f}}}, + {0x0440, {1|U, {0x0420}}}, + {0x0441, {2|U, {0x0421, 0x1c83}}}, + {0x0442, {3|U, {0x0422, 0x1c84, 0x1c85}}}, + {0x0443, {1|U, {0x0423}}}, + {0x0444, {1|U, {0x0424}}}, + {0x0445, {1|U, {0x0425}}}, + {0x0446, {1|U, {0x0426}}}, + {0x0447, {1|U, {0x0427}}}, + {0x0448, {1|U, {0x0428}}}, + {0x0449, {1|U, {0x0429}}}, + {0x044a, {2|U, {0x042a, 0x1c86}}}, + {0x044b, {1|U, {0x042b}}}, + {0x044c, {1|U, {0x042c}}}, + {0x044d, {1|U, {0x042d}}}, + {0x044e, {1|U, {0x042e}}}, + {0x044f, {1|U, {0x042f}}}, + {0x0450, {1|U, {0x0400}}}, + {0x0451, {1|U, {0x0401}}}, + {0x0452, {1|U, {0x0402}}}, + {0x0453, {1|U, {0x0403}}}, + {0x0454, {1|U, {0x0404}}}, + {0x0455, {1|U, {0x0405}}}, + {0x0456, {1|U, {0x0406}}}, + {0x0457, {1|U, {0x0407}}}, + {0x0458, {1|U, {0x0408}}}, + {0x0459, {1|U, {0x0409}}}, + {0x045a, {1|U, {0x040a}}}, + {0x045b, {1|U, {0x040b}}}, + {0x045c, {1|U, {0x040c}}}, + {0x045d, {1|U, {0x040d}}}, + {0x045e, {1|U, {0x040e}}}, + {0x045f, {1|U, {0x040f}}}, + {0x0461, {1|U, {0x0460}}}, + {0x0463, {2|U, {0x0462, 0x1c87}}}, + {0x0465, {1|U, {0x0464}}}, + {0x0467, {1|U, {0x0466}}}, + {0x0469, {1|U, {0x0468}}}, + {0x046b, {1|U, {0x046a}}}, + {0x046d, {1|U, {0x046c}}}, + {0x046f, {1|U, {0x046e}}}, + {0x0471, {1|U, {0x0470}}}, + {0x0473, {1|U, {0x0472}}}, + {0x0475, {1|U, {0x0474}}}, + {0x0477, {1|U, {0x0476}}}, + {0x0479, {1|U, {0x0478}}}, + {0x047b, {1|U, {0x047a}}}, + {0x047d, {1|U, {0x047c}}}, + {0x047f, {1|U, {0x047e}}}, + {0x0481, {1|U, {0x0480}}}, + {0x048b, {1|U, {0x048a}}}, + {0x048d, {1|U, {0x048c}}}, + {0x048f, {1|U, {0x048e}}}, + {0x0491, {1|U, {0x0490}}}, + {0x0493, {1|U, {0x0492}}}, + {0x0495, {1|U, {0x0494}}}, + {0x0497, {1|U, {0x0496}}}, + {0x0499, {1|U, {0x0498}}}, + {0x049b, {1|U, {0x049a}}}, + {0x049d, {1|U, {0x049c}}}, + {0x049f, {1|U, {0x049e}}}, + {0x04a1, {1|U, {0x04a0}}}, + {0x04a3, {1|U, {0x04a2}}}, + {0x04a5, {1|U, {0x04a4}}}, + {0x04a7, {1|U, {0x04a6}}}, + {0x04a9, {1|U, {0x04a8}}}, + {0x04ab, {1|U, {0x04aa}}}, + {0x04ad, {1|U, {0x04ac}}}, + {0x04af, {1|U, {0x04ae}}}, + {0x04b1, {1|U, {0x04b0}}}, + {0x04b3, {1|U, {0x04b2}}}, + {0x04b5, {1|U, {0x04b4}}}, + {0x04b7, {1|U, {0x04b6}}}, + {0x04b9, {1|U, {0x04b8}}}, + {0x04bb, {1|U, {0x04ba}}}, + {0x04bd, {1|U, {0x04bc}}}, + {0x04bf, {1|U, {0x04be}}}, + {0x04c2, {1|U, {0x04c1}}}, + {0x04c4, {1|U, {0x04c3}}}, + {0x04c6, {1|U, {0x04c5}}}, + {0x04c8, {1|U, {0x04c7}}}, + {0x04ca, {1|U, {0x04c9}}}, + {0x04cc, {1|U, {0x04cb}}}, + {0x04ce, {1|U, {0x04cd}}}, + {0x04cf, {1|U, {0x04c0}}}, + {0x04d1, {1|U, {0x04d0}}}, + {0x04d3, {1|U, {0x04d2}}}, + {0x04d5, {1|U, {0x04d4}}}, + {0x04d7, {1|U, {0x04d6}}}, + {0x04d9, {1|U, {0x04d8}}}, + {0x04db, {1|U, {0x04da}}}, + {0x04dd, {1|U, {0x04dc}}}, + {0x04df, {1|U, {0x04de}}}, + {0x04e1, {1|U, {0x04e0}}}, + {0x04e3, {1|U, {0x04e2}}}, + {0x04e5, {1|U, {0x04e4}}}, + {0x04e7, {1|U, {0x04e6}}}, + {0x04e9, {1|U, {0x04e8}}}, + {0x04eb, {1|U, {0x04ea}}}, + {0x04ed, {1|U, {0x04ec}}}, + {0x04ef, {1|U, {0x04ee}}}, + {0x04f1, {1|U, {0x04f0}}}, + {0x04f3, {1|U, {0x04f2}}}, + {0x04f5, {1|U, {0x04f4}}}, + {0x04f7, {1|U, {0x04f6}}}, + {0x04f9, {1|U, {0x04f8}}}, + {0x04fb, {1|U, {0x04fa}}}, + {0x04fd, {1|U, {0x04fc}}}, + {0x04ff, {1|U, {0x04fe}}}, + {0x0501, {1|U, {0x0500}}}, + {0x0503, {1|U, {0x0502}}}, + {0x0505, {1|U, {0x0504}}}, + {0x0507, {1|U, {0x0506}}}, + {0x0509, {1|U, {0x0508}}}, + {0x050b, {1|U, {0x050a}}}, + {0x050d, {1|U, {0x050c}}}, + {0x050f, {1|U, {0x050e}}}, + {0x0511, {1|U, {0x0510}}}, + {0x0513, {1|U, {0x0512}}}, + {0x0515, {1|U, {0x0514}}}, + {0x0517, {1|U, {0x0516}}}, + {0x0519, {1|U, {0x0518}}}, + {0x051b, {1|U, {0x051a}}}, + {0x051d, {1|U, {0x051c}}}, + {0x051f, {1|U, {0x051e}}}, + {0x0521, {1|U, {0x0520}}}, + {0x0523, {1|U, {0x0522}}}, + {0x0525, {1|U, {0x0524}}}, + {0x0527, {1|U, {0x0526}}}, + {0x0529, {1|U, {0x0528}}}, + {0x052b, {1|U, {0x052a}}}, + {0x052d, {1|U, {0x052c}}}, + {0x052f, {1|U, {0x052e}}}, + {0x0561, {1|U, {0x0531}}}, + {0x0562, {1|U, {0x0532}}}, + {0x0563, {1|U, {0x0533}}}, + {0x0564, {1|U, {0x0534}}}, + {0x0565, {1|U, {0x0535}}}, + {0x0566, {1|U, {0x0536}}}, + {0x0567, {1|U, {0x0537}}}, + {0x0568, {1|U, {0x0538}}}, + {0x0569, {1|U, {0x0539}}}, + {0x056a, {1|U, {0x053a}}}, + {0x056b, {1|U, {0x053b}}}, + {0x056c, {1|U, {0x053c}}}, + {0x056d, {1|U, {0x053d}}}, + {0x056e, {1|U, {0x053e}}}, + {0x056f, {1|U, {0x053f}}}, + {0x0570, {1|U, {0x0540}}}, + {0x0571, {1|U, {0x0541}}}, + {0x0572, {1|U, {0x0542}}}, + {0x0573, {1|U, {0x0543}}}, + {0x0574, {1|U, {0x0544}}}, + {0x0575, {1|U, {0x0545}}}, + {0x0576, {1|U, {0x0546}}}, + {0x0577, {1|U, {0x0547}}}, + {0x0578, {1|U, {0x0548}}}, + {0x0579, {1|U, {0x0549}}}, + {0x057a, {1|U, {0x054a}}}, + {0x057b, {1|U, {0x054b}}}, + {0x057c, {1|U, {0x054c}}}, + {0x057d, {1|U, {0x054d}}}, + {0x057e, {1|U, {0x054e}}}, + {0x057f, {1|U, {0x054f}}}, + {0x0580, {1|U, {0x0550}}}, + {0x0581, {1|U, {0x0551}}}, + {0x0582, {1|U, {0x0552}}}, + {0x0583, {1|U, {0x0553}}}, + {0x0584, {1|U, {0x0554}}}, + {0x0585, {1|U, {0x0555}}}, + {0x0586, {1|U, {0x0556}}}, + {0x10d0, {1|U|IT, {0x1c90}}}, + {0x10d1, {1|U|IT, {0x1c91}}}, + {0x10d2, {1|U|IT, {0x1c92}}}, + {0x10d3, {1|U|IT, {0x1c93}}}, + {0x10d4, {1|U|IT, {0x1c94}}}, + {0x10d5, {1|U|IT, {0x1c95}}}, + {0x10d6, {1|U|IT, {0x1c96}}}, + {0x10d7, {1|U|IT, {0x1c97}}}, + {0x10d8, {1|U|IT, {0x1c98}}}, + {0x10d9, {1|U|IT, {0x1c99}}}, + {0x10da, {1|U|IT, {0x1c9a}}}, + {0x10db, {1|U|IT, {0x1c9b}}}, + {0x10dc, {1|U|IT, {0x1c9c}}}, + {0x10dd, {1|U|IT, {0x1c9d}}}, + {0x10de, {1|U|IT, {0x1c9e}}}, + {0x10df, {1|U|IT, {0x1c9f}}}, + {0x10e0, {1|U|IT, {0x1ca0}}}, + {0x10e1, {1|U|IT, {0x1ca1}}}, + {0x10e2, {1|U|IT, {0x1ca2}}}, + {0x10e3, {1|U|IT, {0x1ca3}}}, + {0x10e4, {1|U|IT, {0x1ca4}}}, + {0x10e5, {1|U|IT, {0x1ca5}}}, + {0x10e6, {1|U|IT, {0x1ca6}}}, + {0x10e7, {1|U|IT, {0x1ca7}}}, + {0x10e8, {1|U|IT, {0x1ca8}}}, + {0x10e9, {1|U|IT, {0x1ca9}}}, + {0x10ea, {1|U|IT, {0x1caa}}}, + {0x10eb, {1|U|IT, {0x1cab}}}, + {0x10ec, {1|U|IT, {0x1cac}}}, + {0x10ed, {1|U|IT, {0x1cad}}}, + {0x10ee, {1|U|IT, {0x1cae}}}, + {0x10ef, {1|U|IT, {0x1caf}}}, + {0x10f0, {1|U|IT, {0x1cb0}}}, + {0x10f1, {1|U|IT, {0x1cb1}}}, + {0x10f2, {1|U|IT, {0x1cb2}}}, + {0x10f3, {1|U|IT, {0x1cb3}}}, + {0x10f4, {1|U|IT, {0x1cb4}}}, + {0x10f5, {1|U|IT, {0x1cb5}}}, + {0x10f6, {1|U|IT, {0x1cb6}}}, + {0x10f7, {1|U|IT, {0x1cb7}}}, + {0x10f8, {1|U|IT, {0x1cb8}}}, + {0x10f9, {1|U|IT, {0x1cb9}}}, + {0x10fa, {1|U|IT, {0x1cba}}}, + {0x10fd, {1|U|IT, {0x1cbd}}}, + {0x10fe, {1|U|IT, {0x1cbe}}}, + {0x10ff, {1|U|IT, {0x1cbf}}}, + {0x13a0, {1|D, {0xab70}}}, + {0x13a1, {1|D, {0xab71}}}, + {0x13a2, {1|D, {0xab72}}}, + {0x13a3, {1|D, {0xab73}}}, + {0x13a4, {1|D, {0xab74}}}, + {0x13a5, {1|D, {0xab75}}}, + {0x13a6, {1|D, {0xab76}}}, + {0x13a7, {1|D, {0xab77}}}, + {0x13a8, {1|D, {0xab78}}}, + {0x13a9, {1|D, {0xab79}}}, + {0x13aa, {1|D, {0xab7a}}}, + {0x13ab, {1|D, {0xab7b}}}, + {0x13ac, {1|D, {0xab7c}}}, + {0x13ad, {1|D, {0xab7d}}}, + {0x13ae, {1|D, {0xab7e}}}, + {0x13af, {1|D, {0xab7f}}}, + {0x13b0, {1|D, {0xab80}}}, + {0x13b1, {1|D, {0xab81}}}, + {0x13b2, {1|D, {0xab82}}}, + {0x13b3, {1|D, {0xab83}}}, + {0x13b4, {1|D, {0xab84}}}, + {0x13b5, {1|D, {0xab85}}}, + {0x13b6, {1|D, {0xab86}}}, + {0x13b7, {1|D, {0xab87}}}, + {0x13b8, {1|D, {0xab88}}}, + {0x13b9, {1|D, {0xab89}}}, + {0x13ba, {1|D, {0xab8a}}}, + {0x13bb, {1|D, {0xab8b}}}, + {0x13bc, {1|D, {0xab8c}}}, + {0x13bd, {1|D, {0xab8d}}}, + {0x13be, {1|D, {0xab8e}}}, + {0x13bf, {1|D, {0xab8f}}}, + {0x13c0, {1|D, {0xab90}}}, + {0x13c1, {1|D, {0xab91}}}, + {0x13c2, {1|D, {0xab92}}}, + {0x13c3, {1|D, {0xab93}}}, + {0x13c4, {1|D, {0xab94}}}, + {0x13c5, {1|D, {0xab95}}}, + {0x13c6, {1|D, {0xab96}}}, + {0x13c7, {1|D, {0xab97}}}, + {0x13c8, {1|D, {0xab98}}}, + {0x13c9, {1|D, {0xab99}}}, + {0x13ca, {1|D, {0xab9a}}}, + {0x13cb, {1|D, {0xab9b}}}, + {0x13cc, {1|D, {0xab9c}}}, + {0x13cd, {1|D, {0xab9d}}}, + {0x13ce, {1|D, {0xab9e}}}, + {0x13cf, {1|D, {0xab9f}}}, + {0x13d0, {1|D, {0xaba0}}}, + {0x13d1, {1|D, {0xaba1}}}, + {0x13d2, {1|D, {0xaba2}}}, + {0x13d3, {1|D, {0xaba3}}}, + {0x13d4, {1|D, {0xaba4}}}, + {0x13d5, {1|D, {0xaba5}}}, + {0x13d6, {1|D, {0xaba6}}}, + {0x13d7, {1|D, {0xaba7}}}, + {0x13d8, {1|D, {0xaba8}}}, + {0x13d9, {1|D, {0xaba9}}}, + {0x13da, {1|D, {0xabaa}}}, + {0x13db, {1|D, {0xabab}}}, + {0x13dc, {1|D, {0xabac}}}, + {0x13dd, {1|D, {0xabad}}}, + {0x13de, {1|D, {0xabae}}}, + {0x13df, {1|D, {0xabaf}}}, + {0x13e0, {1|D, {0xabb0}}}, + {0x13e1, {1|D, {0xabb1}}}, + {0x13e2, {1|D, {0xabb2}}}, + {0x13e3, {1|D, {0xabb3}}}, + {0x13e4, {1|D, {0xabb4}}}, + {0x13e5, {1|D, {0xabb5}}}, + {0x13e6, {1|D, {0xabb6}}}, + {0x13e7, {1|D, {0xabb7}}}, + {0x13e8, {1|D, {0xabb8}}}, + {0x13e9, {1|D, {0xabb9}}}, + {0x13ea, {1|D, {0xabba}}}, + {0x13eb, {1|D, {0xabbb}}}, + {0x13ec, {1|D, {0xabbc}}}, + {0x13ed, {1|D, {0xabbd}}}, + {0x13ee, {1|D, {0xabbe}}}, + {0x13ef, {1|D, {0xabbf}}}, + {0x13f0, {1|D, {0x13f8}}}, + {0x13f1, {1|D, {0x13f9}}}, + {0x13f2, {1|D, {0x13fa}}}, + {0x13f3, {1|D, {0x13fb}}}, + {0x13f4, {1|D, {0x13fc}}}, + {0x13f5, {1|D, {0x13fd}}}, + {0x1d79, {1|U, {0xa77d}}}, + {0x1d7d, {1|U, {0x2c63}}}, + {0x1d8e, {1|U, {0xa7c6}}}, + {0x1e01, {1|U, {0x1e00}}}, + {0x1e03, {1|U, {0x1e02}}}, + {0x1e05, {1|U, {0x1e04}}}, + {0x1e07, {1|U, {0x1e06}}}, + {0x1e09, {1|U, {0x1e08}}}, + {0x1e0b, {1|U, {0x1e0a}}}, + {0x1e0d, {1|U, {0x1e0c}}}, + {0x1e0f, {1|U, {0x1e0e}}}, + {0x1e11, {1|U, {0x1e10}}}, + {0x1e13, {1|U, {0x1e12}}}, + {0x1e15, {1|U, {0x1e14}}}, + {0x1e17, {1|U, {0x1e16}}}, + {0x1e19, {1|U, {0x1e18}}}, + {0x1e1b, {1|U, {0x1e1a}}}, + {0x1e1d, {1|U, {0x1e1c}}}, + {0x1e1f, {1|U, {0x1e1e}}}, + {0x1e21, {1|U, {0x1e20}}}, + {0x1e23, {1|U, {0x1e22}}}, + {0x1e25, {1|U, {0x1e24}}}, + {0x1e27, {1|U, {0x1e26}}}, + {0x1e29, {1|U, {0x1e28}}}, + {0x1e2b, {1|U, {0x1e2a}}}, + {0x1e2d, {1|U, {0x1e2c}}}, + {0x1e2f, {1|U, {0x1e2e}}}, + {0x1e31, {1|U, {0x1e30}}}, + {0x1e33, {1|U, {0x1e32}}}, + {0x1e35, {1|U, {0x1e34}}}, + {0x1e37, {1|U, {0x1e36}}}, + {0x1e39, {1|U, {0x1e38}}}, + {0x1e3b, {1|U, {0x1e3a}}}, + {0x1e3d, {1|U, {0x1e3c}}}, + {0x1e3f, {1|U, {0x1e3e}}}, + {0x1e41, {1|U, {0x1e40}}}, + {0x1e43, {1|U, {0x1e42}}}, + {0x1e45, {1|U, {0x1e44}}}, + {0x1e47, {1|U, {0x1e46}}}, + {0x1e49, {1|U, {0x1e48}}}, + {0x1e4b, {1|U, {0x1e4a}}}, + {0x1e4d, {1|U, {0x1e4c}}}, + {0x1e4f, {1|U, {0x1e4e}}}, + {0x1e51, {1|U, {0x1e50}}}, + {0x1e53, {1|U, {0x1e52}}}, + {0x1e55, {1|U, {0x1e54}}}, + {0x1e57, {1|U, {0x1e56}}}, + {0x1e59, {1|U, {0x1e58}}}, + {0x1e5b, {1|U, {0x1e5a}}}, + {0x1e5d, {1|U, {0x1e5c}}}, + {0x1e5f, {1|U, {0x1e5e}}}, + {0x1e61, {2|U, {0x1e60, 0x1e9b}}}, + {0x1e63, {1|U, {0x1e62}}}, + {0x1e65, {1|U, {0x1e64}}}, + {0x1e67, {1|U, {0x1e66}}}, + {0x1e69, {1|U, {0x1e68}}}, + {0x1e6b, {1|U, {0x1e6a}}}, + {0x1e6d, {1|U, {0x1e6c}}}, + {0x1e6f, {1|U, {0x1e6e}}}, + {0x1e71, {1|U, {0x1e70}}}, + {0x1e73, {1|U, {0x1e72}}}, + {0x1e75, {1|U, {0x1e74}}}, + {0x1e77, {1|U, {0x1e76}}}, + {0x1e79, {1|U, {0x1e78}}}, + {0x1e7b, {1|U, {0x1e7a}}}, + {0x1e7d, {1|U, {0x1e7c}}}, + {0x1e7f, {1|U, {0x1e7e}}}, + {0x1e81, {1|U, {0x1e80}}}, + {0x1e83, {1|U, {0x1e82}}}, + {0x1e85, {1|U, {0x1e84}}}, + {0x1e87, {1|U, {0x1e86}}}, + {0x1e89, {1|U, {0x1e88}}}, + {0x1e8b, {1|U, {0x1e8a}}}, + {0x1e8d, {1|U, {0x1e8c}}}, + {0x1e8f, {1|U, {0x1e8e}}}, + {0x1e91, {1|U, {0x1e90}}}, + {0x1e93, {1|U, {0x1e92}}}, + {0x1e95, {1|U, {0x1e94}}}, + {0x1ea1, {1|U, {0x1ea0}}}, + {0x1ea3, {1|U, {0x1ea2}}}, + {0x1ea5, {1|U, {0x1ea4}}}, + {0x1ea7, {1|U, {0x1ea6}}}, + {0x1ea9, {1|U, {0x1ea8}}}, + {0x1eab, {1|U, {0x1eaa}}}, + {0x1ead, {1|U, {0x1eac}}}, + {0x1eaf, {1|U, {0x1eae}}}, + {0x1eb1, {1|U, {0x1eb0}}}, + {0x1eb3, {1|U, {0x1eb2}}}, + {0x1eb5, {1|U, {0x1eb4}}}, + {0x1eb7, {1|U, {0x1eb6}}}, + {0x1eb9, {1|U, {0x1eb8}}}, + {0x1ebb, {1|U, {0x1eba}}}, + {0x1ebd, {1|U, {0x1ebc}}}, + {0x1ebf, {1|U, {0x1ebe}}}, + {0x1ec1, {1|U, {0x1ec0}}}, + {0x1ec3, {1|U, {0x1ec2}}}, + {0x1ec5, {1|U, {0x1ec4}}}, + {0x1ec7, {1|U, {0x1ec6}}}, + {0x1ec9, {1|U, {0x1ec8}}}, + {0x1ecb, {1|U, {0x1eca}}}, + {0x1ecd, {1|U, {0x1ecc}}}, + {0x1ecf, {1|U, {0x1ece}}}, + {0x1ed1, {1|U, {0x1ed0}}}, + {0x1ed3, {1|U, {0x1ed2}}}, + {0x1ed5, {1|U, {0x1ed4}}}, + {0x1ed7, {1|U, {0x1ed6}}}, + {0x1ed9, {1|U, {0x1ed8}}}, + {0x1edb, {1|U, {0x1eda}}}, + {0x1edd, {1|U, {0x1edc}}}, + {0x1edf, {1|U, {0x1ede}}}, + {0x1ee1, {1|U, {0x1ee0}}}, + {0x1ee3, {1|U, {0x1ee2}}}, + {0x1ee5, {1|U, {0x1ee4}}}, + {0x1ee7, {1|U, {0x1ee6}}}, + {0x1ee9, {1|U, {0x1ee8}}}, + {0x1eeb, {1|U, {0x1eea}}}, + {0x1eed, {1|U, {0x1eec}}}, + {0x1eef, {1|U, {0x1eee}}}, + {0x1ef1, {1|U, {0x1ef0}}}, + {0x1ef3, {1|U, {0x1ef2}}}, + {0x1ef5, {1|U, {0x1ef4}}}, + {0x1ef7, {1|U, {0x1ef6}}}, + {0x1ef9, {1|U, {0x1ef8}}}, + {0x1efb, {1|U, {0x1efa}}}, + {0x1efd, {1|U, {0x1efc}}}, + {0x1eff, {1|U, {0x1efe}}}, + {0x1f00, {1|U, {0x1f08}}}, + {0x1f01, {1|U, {0x1f09}}}, + {0x1f02, {1|U, {0x1f0a}}}, + {0x1f03, {1|U, {0x1f0b}}}, + {0x1f04, {1|U, {0x1f0c}}}, + {0x1f05, {1|U, {0x1f0d}}}, + {0x1f06, {1|U, {0x1f0e}}}, + {0x1f07, {1|U, {0x1f0f}}}, + {0x1f10, {1|U, {0x1f18}}}, + {0x1f11, {1|U, {0x1f19}}}, + {0x1f12, {1|U, {0x1f1a}}}, + {0x1f13, {1|U, {0x1f1b}}}, + {0x1f14, {1|U, {0x1f1c}}}, + {0x1f15, {1|U, {0x1f1d}}}, + {0x1f20, {1|U, {0x1f28}}}, + {0x1f21, {1|U, {0x1f29}}}, + {0x1f22, {1|U, {0x1f2a}}}, + {0x1f23, {1|U, {0x1f2b}}}, + {0x1f24, {1|U, {0x1f2c}}}, + {0x1f25, {1|U, {0x1f2d}}}, + {0x1f26, {1|U, {0x1f2e}}}, + {0x1f27, {1|U, {0x1f2f}}}, + {0x1f30, {1|U, {0x1f38}}}, + {0x1f31, {1|U, {0x1f39}}}, + {0x1f32, {1|U, {0x1f3a}}}, + {0x1f33, {1|U, {0x1f3b}}}, + {0x1f34, {1|U, {0x1f3c}}}, + {0x1f35, {1|U, {0x1f3d}}}, + {0x1f36, {1|U, {0x1f3e}}}, + {0x1f37, {1|U, {0x1f3f}}}, + {0x1f40, {1|U, {0x1f48}}}, + {0x1f41, {1|U, {0x1f49}}}, + {0x1f42, {1|U, {0x1f4a}}}, + {0x1f43, {1|U, {0x1f4b}}}, + {0x1f44, {1|U, {0x1f4c}}}, + {0x1f45, {1|U, {0x1f4d}}}, + {0x1f51, {1|U, {0x1f59}}}, + {0x1f53, {1|U, {0x1f5b}}}, + {0x1f55, {1|U, {0x1f5d}}}, + {0x1f57, {1|U, {0x1f5f}}}, + {0x1f60, {1|U, {0x1f68}}}, + {0x1f61, {1|U, {0x1f69}}}, + {0x1f62, {1|U, {0x1f6a}}}, + {0x1f63, {1|U, {0x1f6b}}}, + {0x1f64, {1|U, {0x1f6c}}}, + {0x1f65, {1|U, {0x1f6d}}}, + {0x1f66, {1|U, {0x1f6e}}}, + {0x1f67, {1|U, {0x1f6f}}}, + {0x1f70, {1|U, {0x1fba}}}, + {0x1f71, {1|U, {0x1fbb}}}, + {0x1f72, {1|U, {0x1fc8}}}, + {0x1f73, {1|U, {0x1fc9}}}, + {0x1f74, {1|U, {0x1fca}}}, + {0x1f75, {1|U, {0x1fcb}}}, + {0x1f76, {1|U, {0x1fda}}}, + {0x1f77, {1|U, {0x1fdb}}}, + {0x1f78, {1|U, {0x1ff8}}}, + {0x1f79, {1|U, {0x1ff9}}}, + {0x1f7a, {1|U, {0x1fea}}}, + {0x1f7b, {1|U, {0x1feb}}}, + {0x1f7c, {1|U, {0x1ffa}}}, + {0x1f7d, {1|U, {0x1ffb}}}, + {0x1fb0, {1|U, {0x1fb8}}}, + {0x1fb1, {1|U, {0x1fb9}}}, + {0x1fd0, {1|U, {0x1fd8}}}, + {0x1fd1, {1|U, {0x1fd9}}}, + {0x1fe0, {1|U, {0x1fe8}}}, + {0x1fe1, {1|U, {0x1fe9}}}, + {0x1fe5, {1|U, {0x1fec}}}, + {0x214e, {1|U, {0x2132}}}, + {0x2170, {1|U, {0x2160}}}, + {0x2171, {1|U, {0x2161}}}, + {0x2172, {1|U, {0x2162}}}, + {0x2173, {1|U, {0x2163}}}, + {0x2174, {1|U, {0x2164}}}, + {0x2175, {1|U, {0x2165}}}, + {0x2176, {1|U, {0x2166}}}, + {0x2177, {1|U, {0x2167}}}, + {0x2178, {1|U, {0x2168}}}, + {0x2179, {1|U, {0x2169}}}, + {0x217a, {1|U, {0x216a}}}, + {0x217b, {1|U, {0x216b}}}, + {0x217c, {1|U, {0x216c}}}, + {0x217d, {1|U, {0x216d}}}, + {0x217e, {1|U, {0x216e}}}, + {0x217f, {1|U, {0x216f}}}, + {0x2184, {1|U, {0x2183}}}, + {0x24d0, {1|U, {0x24b6}}}, + {0x24d1, {1|U, {0x24b7}}}, + {0x24d2, {1|U, {0x24b8}}}, + {0x24d3, {1|U, {0x24b9}}}, + {0x24d4, {1|U, {0x24ba}}}, + {0x24d5, {1|U, {0x24bb}}}, + {0x24d6, {1|U, {0x24bc}}}, + {0x24d7, {1|U, {0x24bd}}}, + {0x24d8, {1|U, {0x24be}}}, + {0x24d9, {1|U, {0x24bf}}}, + {0x24da, {1|U, {0x24c0}}}, + {0x24db, {1|U, {0x24c1}}}, + {0x24dc, {1|U, {0x24c2}}}, + {0x24dd, {1|U, {0x24c3}}}, + {0x24de, {1|U, {0x24c4}}}, + {0x24df, {1|U, {0x24c5}}}, + {0x24e0, {1|U, {0x24c6}}}, + {0x24e1, {1|U, {0x24c7}}}, + {0x24e2, {1|U, {0x24c8}}}, + {0x24e3, {1|U, {0x24c9}}}, + {0x24e4, {1|U, {0x24ca}}}, + {0x24e5, {1|U, {0x24cb}}}, + {0x24e6, {1|U, {0x24cc}}}, + {0x24e7, {1|U, {0x24cd}}}, + {0x24e8, {1|U, {0x24ce}}}, + {0x24e9, {1|U, {0x24cf}}}, + {0x2c30, {1|U, {0x2c00}}}, + {0x2c31, {1|U, {0x2c01}}}, + {0x2c32, {1|U, {0x2c02}}}, + {0x2c33, {1|U, {0x2c03}}}, + {0x2c34, {1|U, {0x2c04}}}, + {0x2c35, {1|U, {0x2c05}}}, + {0x2c36, {1|U, {0x2c06}}}, + {0x2c37, {1|U, {0x2c07}}}, + {0x2c38, {1|U, {0x2c08}}}, + {0x2c39, {1|U, {0x2c09}}}, + {0x2c3a, {1|U, {0x2c0a}}}, + {0x2c3b, {1|U, {0x2c0b}}}, + {0x2c3c, {1|U, {0x2c0c}}}, + {0x2c3d, {1|U, {0x2c0d}}}, + {0x2c3e, {1|U, {0x2c0e}}}, + {0x2c3f, {1|U, {0x2c0f}}}, + {0x2c40, {1|U, {0x2c10}}}, + {0x2c41, {1|U, {0x2c11}}}, + {0x2c42, {1|U, {0x2c12}}}, + {0x2c43, {1|U, {0x2c13}}}, + {0x2c44, {1|U, {0x2c14}}}, + {0x2c45, {1|U, {0x2c15}}}, + {0x2c46, {1|U, {0x2c16}}}, + {0x2c47, {1|U, {0x2c17}}}, + {0x2c48, {1|U, {0x2c18}}}, + {0x2c49, {1|U, {0x2c19}}}, + {0x2c4a, {1|U, {0x2c1a}}}, + {0x2c4b, {1|U, {0x2c1b}}}, + {0x2c4c, {1|U, {0x2c1c}}}, + {0x2c4d, {1|U, {0x2c1d}}}, + {0x2c4e, {1|U, {0x2c1e}}}, + {0x2c4f, {1|U, {0x2c1f}}}, + {0x2c50, {1|U, {0x2c20}}}, + {0x2c51, {1|U, {0x2c21}}}, + {0x2c52, {1|U, {0x2c22}}}, + {0x2c53, {1|U, {0x2c23}}}, + {0x2c54, {1|U, {0x2c24}}}, + {0x2c55, {1|U, {0x2c25}}}, + {0x2c56, {1|U, {0x2c26}}}, + {0x2c57, {1|U, {0x2c27}}}, + {0x2c58, {1|U, {0x2c28}}}, + {0x2c59, {1|U, {0x2c29}}}, + {0x2c5a, {1|U, {0x2c2a}}}, + {0x2c5b, {1|U, {0x2c2b}}}, + {0x2c5c, {1|U, {0x2c2c}}}, + {0x2c5d, {1|U, {0x2c2d}}}, + {0x2c5e, {1|U, {0x2c2e}}}, + {0x2c5f, {1|U, {0x2c2f}}}, + {0x2c61, {1|U, {0x2c60}}}, + {0x2c65, {1|U, {0x023a}}}, + {0x2c66, {1|U, {0x023e}}}, + {0x2c68, {1|U, {0x2c67}}}, + {0x2c6a, {1|U, {0x2c69}}}, + {0x2c6c, {1|U, {0x2c6b}}}, + {0x2c73, {1|U, {0x2c72}}}, + {0x2c76, {1|U, {0x2c75}}}, + {0x2c81, {1|U, {0x2c80}}}, + {0x2c83, {1|U, {0x2c82}}}, + {0x2c85, {1|U, {0x2c84}}}, + {0x2c87, {1|U, {0x2c86}}}, + {0x2c89, {1|U, {0x2c88}}}, + {0x2c8b, {1|U, {0x2c8a}}}, + {0x2c8d, {1|U, {0x2c8c}}}, + {0x2c8f, {1|U, {0x2c8e}}}, + {0x2c91, {1|U, {0x2c90}}}, + {0x2c93, {1|U, {0x2c92}}}, + {0x2c95, {1|U, {0x2c94}}}, + {0x2c97, {1|U, {0x2c96}}}, + {0x2c99, {1|U, {0x2c98}}}, + {0x2c9b, {1|U, {0x2c9a}}}, + {0x2c9d, {1|U, {0x2c9c}}}, + {0x2c9f, {1|U, {0x2c9e}}}, + {0x2ca1, {1|U, {0x2ca0}}}, + {0x2ca3, {1|U, {0x2ca2}}}, + {0x2ca5, {1|U, {0x2ca4}}}, + {0x2ca7, {1|U, {0x2ca6}}}, + {0x2ca9, {1|U, {0x2ca8}}}, + {0x2cab, {1|U, {0x2caa}}}, + {0x2cad, {1|U, {0x2cac}}}, + {0x2caf, {1|U, {0x2cae}}}, + {0x2cb1, {1|U, {0x2cb0}}}, + {0x2cb3, {1|U, {0x2cb2}}}, + {0x2cb5, {1|U, {0x2cb4}}}, + {0x2cb7, {1|U, {0x2cb6}}}, + {0x2cb9, {1|U, {0x2cb8}}}, + {0x2cbb, {1|U, {0x2cba}}}, + {0x2cbd, {1|U, {0x2cbc}}}, + {0x2cbf, {1|U, {0x2cbe}}}, + {0x2cc1, {1|U, {0x2cc0}}}, + {0x2cc3, {1|U, {0x2cc2}}}, + {0x2cc5, {1|U, {0x2cc4}}}, + {0x2cc7, {1|U, {0x2cc6}}}, + {0x2cc9, {1|U, {0x2cc8}}}, + {0x2ccb, {1|U, {0x2cca}}}, + {0x2ccd, {1|U, {0x2ccc}}}, + {0x2ccf, {1|U, {0x2cce}}}, + {0x2cd1, {1|U, {0x2cd0}}}, + {0x2cd3, {1|U, {0x2cd2}}}, + {0x2cd5, {1|U, {0x2cd4}}}, + {0x2cd7, {1|U, {0x2cd6}}}, + {0x2cd9, {1|U, {0x2cd8}}}, + {0x2cdb, {1|U, {0x2cda}}}, + {0x2cdd, {1|U, {0x2cdc}}}, + {0x2cdf, {1|U, {0x2cde}}}, + {0x2ce1, {1|U, {0x2ce0}}}, + {0x2ce3, {1|U, {0x2ce2}}}, + {0x2cec, {1|U, {0x2ceb}}}, + {0x2cee, {1|U, {0x2ced}}}, + {0x2cf3, {1|U, {0x2cf2}}}, + {0x2d00, {1|U, {0x10a0}}}, + {0x2d01, {1|U, {0x10a1}}}, + {0x2d02, {1|U, {0x10a2}}}, + {0x2d03, {1|U, {0x10a3}}}, + {0x2d04, {1|U, {0x10a4}}}, + {0x2d05, {1|U, {0x10a5}}}, + {0x2d06, {1|U, {0x10a6}}}, + {0x2d07, {1|U, {0x10a7}}}, + {0x2d08, {1|U, {0x10a8}}}, + {0x2d09, {1|U, {0x10a9}}}, + {0x2d0a, {1|U, {0x10aa}}}, + {0x2d0b, {1|U, {0x10ab}}}, + {0x2d0c, {1|U, {0x10ac}}}, + {0x2d0d, {1|U, {0x10ad}}}, + {0x2d0e, {1|U, {0x10ae}}}, + {0x2d0f, {1|U, {0x10af}}}, + {0x2d10, {1|U, {0x10b0}}}, + {0x2d11, {1|U, {0x10b1}}}, + {0x2d12, {1|U, {0x10b2}}}, + {0x2d13, {1|U, {0x10b3}}}, + {0x2d14, {1|U, {0x10b4}}}, + {0x2d15, {1|U, {0x10b5}}}, + {0x2d16, {1|U, {0x10b6}}}, + {0x2d17, {1|U, {0x10b7}}}, + {0x2d18, {1|U, {0x10b8}}}, + {0x2d19, {1|U, {0x10b9}}}, + {0x2d1a, {1|U, {0x10ba}}}, + {0x2d1b, {1|U, {0x10bb}}}, + {0x2d1c, {1|U, {0x10bc}}}, + {0x2d1d, {1|U, {0x10bd}}}, + {0x2d1e, {1|U, {0x10be}}}, + {0x2d1f, {1|U, {0x10bf}}}, + {0x2d20, {1|U, {0x10c0}}}, + {0x2d21, {1|U, {0x10c1}}}, + {0x2d22, {1|U, {0x10c2}}}, + {0x2d23, {1|U, {0x10c3}}}, + {0x2d24, {1|U, {0x10c4}}}, + {0x2d25, {1|U, {0x10c5}}}, + {0x2d27, {1|U, {0x10c7}}}, + {0x2d2d, {1|U, {0x10cd}}}, + {0xa641, {1|U, {0xa640}}}, + {0xa643, {1|U, {0xa642}}}, + {0xa645, {1|U, {0xa644}}}, + {0xa647, {1|U, {0xa646}}}, + {0xa649, {1|U, {0xa648}}}, + {0xa64b, {2|U, {0xa64a, 0x1c88}}}, + {0xa64d, {1|U, {0xa64c}}}, + {0xa64f, {1|U, {0xa64e}}}, + {0xa651, {1|U, {0xa650}}}, + {0xa653, {1|U, {0xa652}}}, + {0xa655, {1|U, {0xa654}}}, + {0xa657, {1|U, {0xa656}}}, + {0xa659, {1|U, {0xa658}}}, + {0xa65b, {1|U, {0xa65a}}}, + {0xa65d, {1|U, {0xa65c}}}, + {0xa65f, {1|U, {0xa65e}}}, + {0xa661, {1|U, {0xa660}}}, + {0xa663, {1|U, {0xa662}}}, + {0xa665, {1|U, {0xa664}}}, + {0xa667, {1|U, {0xa666}}}, + {0xa669, {1|U, {0xa668}}}, + {0xa66b, {1|U, {0xa66a}}}, + {0xa66d, {1|U, {0xa66c}}}, + {0xa681, {1|U, {0xa680}}}, + {0xa683, {1|U, {0xa682}}}, + {0xa685, {1|U, {0xa684}}}, + {0xa687, {1|U, {0xa686}}}, + {0xa689, {1|U, {0xa688}}}, + {0xa68b, {1|U, {0xa68a}}}, + {0xa68d, {1|U, {0xa68c}}}, + {0xa68f, {1|U, {0xa68e}}}, + {0xa691, {1|U, {0xa690}}}, + {0xa693, {1|U, {0xa692}}}, + {0xa695, {1|U, {0xa694}}}, + {0xa697, {1|U, {0xa696}}}, + {0xa699, {1|U, {0xa698}}}, + {0xa69b, {1|U, {0xa69a}}}, + {0xa723, {1|U, {0xa722}}}, + {0xa725, {1|U, {0xa724}}}, + {0xa727, {1|U, {0xa726}}}, + {0xa729, {1|U, {0xa728}}}, + {0xa72b, {1|U, {0xa72a}}}, + {0xa72d, {1|U, {0xa72c}}}, + {0xa72f, {1|U, {0xa72e}}}, + {0xa733, {1|U, {0xa732}}}, + {0xa735, {1|U, {0xa734}}}, + {0xa737, {1|U, {0xa736}}}, + {0xa739, {1|U, {0xa738}}}, + {0xa73b, {1|U, {0xa73a}}}, + {0xa73d, {1|U, {0xa73c}}}, + {0xa73f, {1|U, {0xa73e}}}, + {0xa741, {1|U, {0xa740}}}, + {0xa743, {1|U, {0xa742}}}, + {0xa745, {1|U, {0xa744}}}, + {0xa747, {1|U, {0xa746}}}, + {0xa749, {1|U, {0xa748}}}, + {0xa74b, {1|U, {0xa74a}}}, + {0xa74d, {1|U, {0xa74c}}}, + {0xa74f, {1|U, {0xa74e}}}, + {0xa751, {1|U, {0xa750}}}, + {0xa753, {1|U, {0xa752}}}, + {0xa755, {1|U, {0xa754}}}, + {0xa757, {1|U, {0xa756}}}, + {0xa759, {1|U, {0xa758}}}, + {0xa75b, {1|U, {0xa75a}}}, + {0xa75d, {1|U, {0xa75c}}}, + {0xa75f, {1|U, {0xa75e}}}, + {0xa761, {1|U, {0xa760}}}, + {0xa763, {1|U, {0xa762}}}, + {0xa765, {1|U, {0xa764}}}, + {0xa767, {1|U, {0xa766}}}, + {0xa769, {1|U, {0xa768}}}, + {0xa76b, {1|U, {0xa76a}}}, + {0xa76d, {1|U, {0xa76c}}}, + {0xa76f, {1|U, {0xa76e}}}, + {0xa77a, {1|U, {0xa779}}}, + {0xa77c, {1|U, {0xa77b}}}, + {0xa77f, {1|U, {0xa77e}}}, + {0xa781, {1|U, {0xa780}}}, + {0xa783, {1|U, {0xa782}}}, + {0xa785, {1|U, {0xa784}}}, + {0xa787, {1|U, {0xa786}}}, + {0xa78c, {1|U, {0xa78b}}}, + {0xa791, {1|U, {0xa790}}}, + {0xa793, {1|U, {0xa792}}}, + {0xa794, {1|U, {0xa7c4}}}, + {0xa797, {1|U, {0xa796}}}, + {0xa799, {1|U, {0xa798}}}, + {0xa79b, {1|U, {0xa79a}}}, + {0xa79d, {1|U, {0xa79c}}}, + {0xa79f, {1|U, {0xa79e}}}, + {0xa7a1, {1|U, {0xa7a0}}}, + {0xa7a3, {1|U, {0xa7a2}}}, + {0xa7a5, {1|U, {0xa7a4}}}, + {0xa7a7, {1|U, {0xa7a6}}}, + {0xa7a9, {1|U, {0xa7a8}}}, + {0xa7b5, {1|U, {0xa7b4}}}, + {0xa7b7, {1|U, {0xa7b6}}}, + {0xa7b9, {1|U, {0xa7b8}}}, + {0xa7bb, {1|U, {0xa7ba}}}, + {0xa7bd, {1|U, {0xa7bc}}}, + {0xa7bf, {1|U, {0xa7be}}}, + {0xa7c1, {1|U, {0xa7c0}}}, + {0xa7c3, {1|U, {0xa7c2}}}, + {0xa7c8, {1|U, {0xa7c7}}}, + {0xa7ca, {1|U, {0xa7c9}}}, + {0xa7d1, {1|U, {0xa7d0}}}, + {0xa7d7, {1|U, {0xa7d6}}}, + {0xa7d9, {1|U, {0xa7d8}}}, + {0xa7f6, {1|U, {0xa7f5}}}, + {0xab53, {1|U, {0xa7b3}}}, + {0xff41, {1|U, {0xff21}}}, + {0xff42, {1|U, {0xff22}}}, + {0xff43, {1|U, {0xff23}}}, + {0xff44, {1|U, {0xff24}}}, + {0xff45, {1|U, {0xff25}}}, + {0xff46, {1|U, {0xff26}}}, + {0xff47, {1|U, {0xff27}}}, + {0xff48, {1|U, {0xff28}}}, + {0xff49, {1|U, {0xff29}}}, + {0xff4a, {1|U, {0xff2a}}}, + {0xff4b, {1|U, {0xff2b}}}, + {0xff4c, {1|U, {0xff2c}}}, + {0xff4d, {1|U, {0xff2d}}}, + {0xff4e, {1|U, {0xff2e}}}, + {0xff4f, {1|U, {0xff2f}}}, + {0xff50, {1|U, {0xff30}}}, + {0xff51, {1|U, {0xff31}}}, + {0xff52, {1|U, {0xff32}}}, + {0xff53, {1|U, {0xff33}}}, + {0xff54, {1|U, {0xff34}}}, + {0xff55, {1|U, {0xff35}}}, + {0xff56, {1|U, {0xff36}}}, + {0xff57, {1|U, {0xff37}}}, + {0xff58, {1|U, {0xff38}}}, + {0xff59, {1|U, {0xff39}}}, + {0xff5a, {1|U, {0xff3a}}}, + {0x10428, {1|U, {0x10400}}}, + {0x10429, {1|U, {0x10401}}}, + {0x1042a, {1|U, {0x10402}}}, + {0x1042b, {1|U, {0x10403}}}, + {0x1042c, {1|U, {0x10404}}}, + {0x1042d, {1|U, {0x10405}}}, + {0x1042e, {1|U, {0x10406}}}, + {0x1042f, {1|U, {0x10407}}}, + {0x10430, {1|U, {0x10408}}}, + {0x10431, {1|U, {0x10409}}}, + {0x10432, {1|U, {0x1040a}}}, + {0x10433, {1|U, {0x1040b}}}, + {0x10434, {1|U, {0x1040c}}}, + {0x10435, {1|U, {0x1040d}}}, + {0x10436, {1|U, {0x1040e}}}, + {0x10437, {1|U, {0x1040f}}}, + {0x10438, {1|U, {0x10410}}}, + {0x10439, {1|U, {0x10411}}}, + {0x1043a, {1|U, {0x10412}}}, + {0x1043b, {1|U, {0x10413}}}, + {0x1043c, {1|U, {0x10414}}}, + {0x1043d, {1|U, {0x10415}}}, + {0x1043e, {1|U, {0x10416}}}, + {0x1043f, {1|U, {0x10417}}}, + {0x10440, {1|U, {0x10418}}}, + {0x10441, {1|U, {0x10419}}}, + {0x10442, {1|U, {0x1041a}}}, + {0x10443, {1|U, {0x1041b}}}, + {0x10444, {1|U, {0x1041c}}}, + {0x10445, {1|U, {0x1041d}}}, + {0x10446, {1|U, {0x1041e}}}, + {0x10447, {1|U, {0x1041f}}}, + {0x10448, {1|U, {0x10420}}}, + {0x10449, {1|U, {0x10421}}}, + {0x1044a, {1|U, {0x10422}}}, + {0x1044b, {1|U, {0x10423}}}, + {0x1044c, {1|U, {0x10424}}}, + {0x1044d, {1|U, {0x10425}}}, + {0x1044e, {1|U, {0x10426}}}, + {0x1044f, {1|U, {0x10427}}}, + {0x104d8, {1|U, {0x104b0}}}, + {0x104d9, {1|U, {0x104b1}}}, + {0x104da, {1|U, {0x104b2}}}, + {0x104db, {1|U, {0x104b3}}}, + {0x104dc, {1|U, {0x104b4}}}, + {0x104dd, {1|U, {0x104b5}}}, + {0x104de, {1|U, {0x104b6}}}, + {0x104df, {1|U, {0x104b7}}}, + {0x104e0, {1|U, {0x104b8}}}, + {0x104e1, {1|U, {0x104b9}}}, + {0x104e2, {1|U, {0x104ba}}}, + {0x104e3, {1|U, {0x104bb}}}, + {0x104e4, {1|U, {0x104bc}}}, + {0x104e5, {1|U, {0x104bd}}}, + {0x104e6, {1|U, {0x104be}}}, + {0x104e7, {1|U, {0x104bf}}}, + {0x104e8, {1|U, {0x104c0}}}, + {0x104e9, {1|U, {0x104c1}}}, + {0x104ea, {1|U, {0x104c2}}}, + {0x104eb, {1|U, {0x104c3}}}, + {0x104ec, {1|U, {0x104c4}}}, + {0x104ed, {1|U, {0x104c5}}}, + {0x104ee, {1|U, {0x104c6}}}, + {0x104ef, {1|U, {0x104c7}}}, + {0x104f0, {1|U, {0x104c8}}}, + {0x104f1, {1|U, {0x104c9}}}, + {0x104f2, {1|U, {0x104ca}}}, + {0x104f3, {1|U, {0x104cb}}}, + {0x104f4, {1|U, {0x104cc}}}, + {0x104f5, {1|U, {0x104cd}}}, + {0x104f6, {1|U, {0x104ce}}}, + {0x104f7, {1|U, {0x104cf}}}, + {0x104f8, {1|U, {0x104d0}}}, + {0x104f9, {1|U, {0x104d1}}}, + {0x104fa, {1|U, {0x104d2}}}, + {0x104fb, {1|U, {0x104d3}}}, + {0x10597, {1|U, {0x10570}}}, + {0x10598, {1|U, {0x10571}}}, + {0x10599, {1|U, {0x10572}}}, + {0x1059a, {1|U, {0x10573}}}, + {0x1059b, {1|U, {0x10574}}}, + {0x1059c, {1|U, {0x10575}}}, + {0x1059d, {1|U, {0x10576}}}, + {0x1059e, {1|U, {0x10577}}}, + {0x1059f, {1|U, {0x10578}}}, + {0x105a0, {1|U, {0x10579}}}, + {0x105a1, {1|U, {0x1057a}}}, + {0x105a3, {1|U, {0x1057c}}}, + {0x105a4, {1|U, {0x1057d}}}, + {0x105a5, {1|U, {0x1057e}}}, + {0x105a6, {1|U, {0x1057f}}}, + {0x105a7, {1|U, {0x10580}}}, + {0x105a8, {1|U, {0x10581}}}, + {0x105a9, {1|U, {0x10582}}}, + {0x105aa, {1|U, {0x10583}}}, + {0x105ab, {1|U, {0x10584}}}, + {0x105ac, {1|U, {0x10585}}}, + {0x105ad, {1|U, {0x10586}}}, + {0x105ae, {1|U, {0x10587}}}, + {0x105af, {1|U, {0x10588}}}, + {0x105b0, {1|U, {0x10589}}}, + {0x105b1, {1|U, {0x1058a}}}, + {0x105b3, {1|U, {0x1058c}}}, + {0x105b4, {1|U, {0x1058d}}}, + {0x105b5, {1|U, {0x1058e}}}, + {0x105b6, {1|U, {0x1058f}}}, + {0x105b7, {1|U, {0x10590}}}, + {0x105b8, {1|U, {0x10591}}}, + {0x105b9, {1|U, {0x10592}}}, + {0x105bb, {1|U, {0x10594}}}, + {0x105bc, {1|U, {0x10595}}}, + {0x10cc0, {1|U, {0x10c80}}}, + {0x10cc1, {1|U, {0x10c81}}}, + {0x10cc2, {1|U, {0x10c82}}}, + {0x10cc3, {1|U, {0x10c83}}}, + {0x10cc4, {1|U, {0x10c84}}}, + {0x10cc5, {1|U, {0x10c85}}}, + {0x10cc6, {1|U, {0x10c86}}}, + {0x10cc7, {1|U, {0x10c87}}}, + {0x10cc8, {1|U, {0x10c88}}}, + {0x10cc9, {1|U, {0x10c89}}}, + {0x10cca, {1|U, {0x10c8a}}}, + {0x10ccb, {1|U, {0x10c8b}}}, + {0x10ccc, {1|U, {0x10c8c}}}, + {0x10ccd, {1|U, {0x10c8d}}}, + {0x10cce, {1|U, {0x10c8e}}}, + {0x10ccf, {1|U, {0x10c8f}}}, + {0x10cd0, {1|U, {0x10c90}}}, + {0x10cd1, {1|U, {0x10c91}}}, + {0x10cd2, {1|U, {0x10c92}}}, + {0x10cd3, {1|U, {0x10c93}}}, + {0x10cd4, {1|U, {0x10c94}}}, + {0x10cd5, {1|U, {0x10c95}}}, + {0x10cd6, {1|U, {0x10c96}}}, + {0x10cd7, {1|U, {0x10c97}}}, + {0x10cd8, {1|U, {0x10c98}}}, + {0x10cd9, {1|U, {0x10c99}}}, + {0x10cda, {1|U, {0x10c9a}}}, + {0x10cdb, {1|U, {0x10c9b}}}, + {0x10cdc, {1|U, {0x10c9c}}}, + {0x10cdd, {1|U, {0x10c9d}}}, + {0x10cde, {1|U, {0x10c9e}}}, + {0x10cdf, {1|U, {0x10c9f}}}, + {0x10ce0, {1|U, {0x10ca0}}}, + {0x10ce1, {1|U, {0x10ca1}}}, + {0x10ce2, {1|U, {0x10ca2}}}, + {0x10ce3, {1|U, {0x10ca3}}}, + {0x10ce4, {1|U, {0x10ca4}}}, + {0x10ce5, {1|U, {0x10ca5}}}, + {0x10ce6, {1|U, {0x10ca6}}}, + {0x10ce7, {1|U, {0x10ca7}}}, + {0x10ce8, {1|U, {0x10ca8}}}, + {0x10ce9, {1|U, {0x10ca9}}}, + {0x10cea, {1|U, {0x10caa}}}, + {0x10ceb, {1|U, {0x10cab}}}, + {0x10cec, {1|U, {0x10cac}}}, + {0x10ced, {1|U, {0x10cad}}}, + {0x10cee, {1|U, {0x10cae}}}, + {0x10cef, {1|U, {0x10caf}}}, + {0x10cf0, {1|U, {0x10cb0}}}, + {0x10cf1, {1|U, {0x10cb1}}}, + {0x10cf2, {1|U, {0x10cb2}}}, + {0x118c0, {1|U, {0x118a0}}}, + {0x118c1, {1|U, {0x118a1}}}, + {0x118c2, {1|U, {0x118a2}}}, + {0x118c3, {1|U, {0x118a3}}}, + {0x118c4, {1|U, {0x118a4}}}, + {0x118c5, {1|U, {0x118a5}}}, + {0x118c6, {1|U, {0x118a6}}}, + {0x118c7, {1|U, {0x118a7}}}, + {0x118c8, {1|U, {0x118a8}}}, + {0x118c9, {1|U, {0x118a9}}}, + {0x118ca, {1|U, {0x118aa}}}, + {0x118cb, {1|U, {0x118ab}}}, + {0x118cc, {1|U, {0x118ac}}}, + {0x118cd, {1|U, {0x118ad}}}, + {0x118ce, {1|U, {0x118ae}}}, + {0x118cf, {1|U, {0x118af}}}, + {0x118d0, {1|U, {0x118b0}}}, + {0x118d1, {1|U, {0x118b1}}}, + {0x118d2, {1|U, {0x118b2}}}, + {0x118d3, {1|U, {0x118b3}}}, + {0x118d4, {1|U, {0x118b4}}}, + {0x118d5, {1|U, {0x118b5}}}, + {0x118d6, {1|U, {0x118b6}}}, + {0x118d7, {1|U, {0x118b7}}}, + {0x118d8, {1|U, {0x118b8}}}, + {0x118d9, {1|U, {0x118b9}}}, + {0x118da, {1|U, {0x118ba}}}, + {0x118db, {1|U, {0x118bb}}}, + {0x118dc, {1|U, {0x118bc}}}, + {0x118dd, {1|U, {0x118bd}}}, + {0x118de, {1|U, {0x118be}}}, + {0x118df, {1|U, {0x118bf}}}, + {0x16e60, {1|U, {0x16e40}}}, + {0x16e61, {1|U, {0x16e41}}}, + {0x16e62, {1|U, {0x16e42}}}, + {0x16e63, {1|U, {0x16e43}}}, + {0x16e64, {1|U, {0x16e44}}}, + {0x16e65, {1|U, {0x16e45}}}, + {0x16e66, {1|U, {0x16e46}}}, + {0x16e67, {1|U, {0x16e47}}}, + {0x16e68, {1|U, {0x16e48}}}, + {0x16e69, {1|U, {0x16e49}}}, + {0x16e6a, {1|U, {0x16e4a}}}, + {0x16e6b, {1|U, {0x16e4b}}}, + {0x16e6c, {1|U, {0x16e4c}}}, + {0x16e6d, {1|U, {0x16e4d}}}, + {0x16e6e, {1|U, {0x16e4e}}}, + {0x16e6f, {1|U, {0x16e4f}}}, + {0x16e70, {1|U, {0x16e50}}}, + {0x16e71, {1|U, {0x16e51}}}, + {0x16e72, {1|U, {0x16e52}}}, + {0x16e73, {1|U, {0x16e53}}}, + {0x16e74, {1|U, {0x16e54}}}, + {0x16e75, {1|U, {0x16e55}}}, + {0x16e76, {1|U, {0x16e56}}}, + {0x16e77, {1|U, {0x16e57}}}, + {0x16e78, {1|U, {0x16e58}}}, + {0x16e79, {1|U, {0x16e59}}}, + {0x16e7a, {1|U, {0x16e5a}}}, + {0x16e7b, {1|U, {0x16e5b}}}, + {0x16e7c, {1|U, {0x16e5c}}}, + {0x16e7d, {1|U, {0x16e5d}}}, + {0x16e7e, {1|U, {0x16e5e}}}, + {0x16e7f, {1|U, {0x16e5f}}}, + {0x1e922, {1|U, {0x1e900}}}, + {0x1e923, {1|U, {0x1e901}}}, + {0x1e924, {1|U, {0x1e902}}}, + {0x1e925, {1|U, {0x1e903}}}, + {0x1e926, {1|U, {0x1e904}}}, + {0x1e927, {1|U, {0x1e905}}}, + {0x1e928, {1|U, {0x1e906}}}, + {0x1e929, {1|U, {0x1e907}}}, + {0x1e92a, {1|U, {0x1e908}}}, + {0x1e92b, {1|U, {0x1e909}}}, + {0x1e92c, {1|U, {0x1e90a}}}, + {0x1e92d, {1|U, {0x1e90b}}}, + {0x1e92e, {1|U, {0x1e90c}}}, + {0x1e92f, {1|U, {0x1e90d}}}, + {0x1e930, {1|U, {0x1e90e}}}, + {0x1e931, {1|U, {0x1e90f}}}, + {0x1e932, {1|U, {0x1e910}}}, + {0x1e933, {1|U, {0x1e911}}}, + {0x1e934, {1|U, {0x1e912}}}, + {0x1e935, {1|U, {0x1e913}}}, + {0x1e936, {1|U, {0x1e914}}}, + {0x1e937, {1|U, {0x1e915}}}, + {0x1e938, {1|U, {0x1e916}}}, + {0x1e939, {1|U, {0x1e917}}}, + {0x1e93a, {1|U, {0x1e918}}}, + {0x1e93b, {1|U, {0x1e919}}}, + {0x1e93c, {1|U, {0x1e91a}}}, + {0x1e93d, {1|U, {0x1e91b}}}, + {0x1e93e, {1|U, {0x1e91c}}}, + {0x1e93f, {1|U, {0x1e91d}}}, + {0x1e940, {1|U, {0x1e91e}}}, + {0x1e941, {1|U, {0x1e91f}}}, + {0x1e942, {1|U, {0x1e920}}}, + {0x1e943, {1|U, {0x1e921}}}, +#define CaseUnfold_11_Locale (*(CaseUnfold_11_Type (*)[1])(CaseUnfold_11_Table+1395)) + {0x0069, {1|U, {0x0049}}}, +}; + +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_11_hash -N onigenc_unicode_CaseUnfold_11_lookup -n */ + +/* maximum key range = 2771, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +onigenc_unicode_CaseUnfold_11_hash(const OnigCodePoint code) +{ + static const unsigned short asso_values[] = + { + 1, 2774, 2, 2, 4, 421, 9, 371, 231, 463, + 37, 20, 2, 3, 419, 408, 2774, 2774, 2774, 2774, + 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 112, + 2774, 2774, 2774, 2774, 2774, 2774, 2774, 120, 2774, 2774, + 2774, 2774, 2774, 1, 2774, 2774, 2774, 2774, 2774, 2774, + 2774, 2774, 2774, 355, 2774, 2774, 2774, 2774, 2774, 2774, + 2774, 2774, 10, 9, 7, 8, 244, 689, 226, 993, + 561, 710, 104, 1429, 36, 1190, 28, 15, 114, 1768, + 241, 1003, 87, 285, 26, 1399, 78, 1360, 7, 1455, + 90, 1076, 113, 10, 724, 1460, 167, 1727, 155, 1040, + 67, 754, 66, 705, 246, 886, 331, 1140, 430, 1251, + 864, 768, 643, 1064, 1591, 865, 834, 720, 1700, 671, + 1581, 657, 1794, 842, 1782, 1050, 1537, 1024, 1760, 814, + 975, 440, 1187, 407, 1440, 951, 1384, 909, 1320, 555, + 1567, 541, 1723, 525, 383, 501, 1179, 250, 1596, 342, + 1575, 352, 1501, 194, 1559, 70, 1512, 85, 1509, 129, + 467, 100, 1413, 1, 1485, 25, 1351, 35, 1088, 55, + 1262, 45, 1277, 160, 1245, 317, 118, 220, 1300, 596, + 1100, 373, 1632, 617, 1337, 1236, 1500, 1152, 148, 793, + 1538, 979, 385, 1228 + }; + return asso_values[bits_of(code, 2)+66] + asso_values[bits_of(code, 1)+4] + asso_values[bits_of(code, 0)]; +} + +static const CodePointList3 * +onigenc_unicode_CaseUnfold_11_lookup(const OnigCodePoint code) +{ + enum + { + MIN_CODE_VALUE = 0x61, + MAX_CODE_VALUE = 0x1e943, + TOTAL_KEYWORDS = 1396, + MIN_WORD_LENGTH = 3, + MAX_WORD_LENGTH = 3, + MIN_HASH_VALUE = 3, + MAX_HASH_VALUE = 2773 + }; + + static const short wordlist[] = + { + -1, -1, -1, + /*0x13e1*/ 589, + /*0x0461*/ 340, + /*0x04e1*/ 400, + /*0x0061*/ 0, + -1, + /*0x104e1*/ 1184, + /*0x1e61*/ 661, + /*0x1ee1*/ 720, + /*0x0161*/ 102, + /*0x2ce1*/ 953, + -1, + /*0x049b*/ 365, + -1, -1, + /*0x24e1*/ 840, + /*0x1e1b*/ 626, + /*0x048b*/ 357, + /*0x011b*/ 69, + /*0x2c9b*/ 918, + /*0x03e1*/ 280, + /*0x1e0b*/ 618, + /*0x1e8b*/ 682, + /*0x010b*/ 61, + /*0x2c8b*/ 910, + /*0x13e3*/ 591, + /*0x0463*/ 341, + /*0x04e3*/ 401, + /*0x0063*/ 2, + -1, + /*0x104e3*/ 1186, + /*0x1e63*/ 662, + /*0x1ee3*/ 721, + /*0x0163*/ 103, + /*0x2ce3*/ 954, + /*0x13e5*/ 593, + /*0x0465*/ 342, + /*0x04e5*/ 402, + /*0x0065*/ 4, + /*0x24e3*/ 842, + /*0x104e5*/ 1188, + /*0x1e65*/ 663, + /*0x1ee5*/ 722, + /*0x0165*/ 104, + /*0x03e3*/ 281, + /*0x13e9*/ 597, + /*0x0469*/ 344, + /*0x04e9*/ 404, + /*0x0069*/ 1395, + /*0x24e5*/ 844, + /*0x104e9*/ 1192, + /*0x1e69*/ 665, + /*0x1ee9*/ 724, + /*0x0169*/ 106, + /*0x03e5*/ 282, + /*0x13e7*/ 595, + /*0x0467*/ 343, + /*0x04e7*/ 403, + /*0x0067*/ 6, + /*0x24e9*/ 848, + /*0x104e7*/ 1190, + /*0x1e67*/ 664, + /*0x1ee7*/ 723, + /*0x0167*/ 105, + /*0x03e9*/ 284, + -1, + /*0x13a4*/ 528, + /*0x13a2*/ 526, + -1, + /*0x24e7*/ 846, + /*0x13d9*/ 581, + /*0x0459*/ 333, + /*0x04d9*/ 396, + -1, + /*0x03e7*/ 283, + /*0x104d9*/ 1176, + /*0x1e59*/ 657, + /*0x1ed9*/ 716, + /*0x0159*/ 98, + /*0x2cd9*/ 949, + -1, -1, -1, -1, + /*0x24d9*/ 832, + /*0x13db*/ 583, + /*0x045b*/ 335, + /*0x04db*/ 397, + /*0xa761*/ 1065, + /*0x03d9*/ 276, + /*0x104db*/ 1178, + /*0x1e5b*/ 658, + /*0x1edb*/ 717, + /*0x015b*/ 99, + /*0x2cdb*/ 950, + -1, -1, -1, -1, + /*0x24db*/ 834, + /*0x13df*/ 587, + /*0x045f*/ 339, + /*0x04df*/ 399, + -1, + /*0x03db*/ 277, + /*0x104df*/ 1182, + /*0x1e5f*/ 660, + /*0x1edf*/ 719, + /*0x015f*/ 101, + /*0x2cdf*/ 952, + -1, -1, + /*0xa763*/ 1066, + /*0x2c61*/ 897, + /*0x24df*/ 838, + /*0x10ce1*/ 1279, + -1, -1, + /*0x13ee*/ 602, + /*0x03df*/ 279, + /*0x10e1*/ 495, + /*0x006e*/ 12, + /*0xa765*/ 1067, + /*0x104ee*/ 1197, + -1, -1, -1, + /*0x2cee*/ 956, + -1, + /*0x13dd*/ 585, + /*0x045d*/ 337, + /*0x04dd*/ 398, + /*0xa769*/ 1069, + -1, + /*0x104dd*/ 1180, + /*0x1e5d*/ 659, + /*0x1edd*/ 718, + /*0x015d*/ 100, + /*0x2cdd*/ 951, + /*0x10ce3*/ 1281, + -1, -1, + /*0xa767*/ 1068, + /*0x24dd*/ 836, + /*0x10e3*/ 497, + -1, -1, + /*0x2c65*/ 898, + /*0x03dd*/ 278, + /*0x10ce5*/ 1283, + -1, + /*0x007a*/ 24, + -1, + /*0x104fa*/ 1209, + /*0x10e5*/ 499, + /*0x13a0*/ 524, + /*0x017a*/ 114, + /*0xa759*/ 1061, + -1, + /*0x10ce9*/ 1287, + /*0x13eb*/ 599, + /*0x046b*/ 345, + /*0x04eb*/ 405, + /*0x006b*/ 9, + /*0x10e9*/ 503, + /*0x104eb*/ 1194, + /*0x1e6b*/ 666, + /*0x1eeb*/ 725, + /*0x016b*/ 107, + /*0x10ce7*/ 1285, + -1, -1, + /*0xa75b*/ 1062, + -1, + /*0x10e7*/ 501, + -1, -1, -1, -1, + /*0x03eb*/ 285, + -1, -1, + /*0x2c59*/ 890, + -1, + /*0x10cd9*/ 1271, + -1, -1, + /*0xa75f*/ 1064, + -1, + /*0x10d9*/ 487, + -1, -1, -1, -1, + /*0x13d7*/ 579, + /*0x0457*/ 331, + /*0x04d7*/ 395, + /*0x2c5b*/ 892, + -1, + /*0x10cdb*/ 1273, + /*0x1e57*/ 656, + /*0x1ed7*/ 715, + /*0x0157*/ 97, + /*0x2cd7*/ 948, + /*0x10db*/ 489, + -1, -1, -1, + /*0x24d7*/ 830, + -1, -1, -1, + /*0x2c5f*/ 896, + /*0x03d7*/ 275, + /*0x10cdf*/ 1277, + -1, + /*0xa75d*/ 1063, + -1, -1, + /*0x10df*/ 493, + /*0x13ef*/ 603, + /*0x046f*/ 347, + /*0x04ef*/ 407, + /*0x006f*/ 13, + -1, + /*0x104ef*/ 1198, + /*0x1e6f*/ 668, + /*0x1eef*/ 727, + /*0x016f*/ 109, + -1, -1, + /*0x0261*/ 210, + /*0x10cee*/ 1292, + -1, -1, + /*0xa77a*/ 1073, + -1, + /*0x10ee*/ 508, + -1, + /*0x03ef*/ 287, + /*0x021b*/ 178, + /*0x2c5d*/ 894, + /*0xa661*/ 1014, + /*0x10cdd*/ 1275, + /*0x1f61*/ 777, + /*0x020b*/ 170, + /*0x13a6*/ 530, + /*0xa76b*/ 1070, + /*0x10dd*/ 491, + /*0x1d8e*/ 612, + /*0x13d1*/ 573, + /*0x0451*/ 325, + /*0x04d1*/ 392, + -1, -1, + /*0x0263*/ 211, + /*0x1e51*/ 653, + /*0x1ed1*/ 712, + /*0x0151*/ 94, + /*0x2cd1*/ 945, + -1, -1, -1, -1, + /*0x24d1*/ 824, + /*0x0265*/ 212, + /*0xa663*/ 1015, + /*0x10fa*/ 520, + /*0x1f63*/ 779, + /*0x1f12*/ 746, + -1, -1, -1, -1, + /*0x10ceb*/ 1289, + /*0x0269*/ 215, + /*0xa665*/ 1016, + -1, + /*0x1f65*/ 781, + /*0x10eb*/ 505, + -1, + /*0xa757*/ 1060, + -1, -1, -1, -1, + /*0xa669*/ 1018, + /*0x0491*/ 360, + -1, -1, -1, + /*0x1e11*/ 621, + /*0x1e91*/ 685, + /*0x0111*/ 64, + /*0x2c91*/ 913, + /*0xa79b*/ 1086, + /*0xa667*/ 1017, + -1, + /*0x1f67*/ 783, + -1, + /*0x0259*/ 206, + -1, -1, -1, -1, -1, + /*0x2c57*/ 888, + /*0xa76f*/ 1072, + /*0x10cd7*/ 1269, + /*0x1f24*/ 754, + /*0x1f22*/ 752, + /*0xa659*/ 1010, + -1, + /*0x10d7*/ 485, + -1, + /*0x025b*/ 207, + -1, + /*0x13ed*/ 601, + /*0x046d*/ 346, + /*0x04ed*/ 406, + /*0x006d*/ 11, + /*0x1f14*/ 748, + /*0x104ed*/ 1196, + /*0x1e6d*/ 667, + /*0x1eed*/ 726, + /*0x016d*/ 108, + /*0xa65b*/ 1011, + -1, -1, -1, + /*0x1f10*/ 744, + /*0x13a8*/ 532, + -1, -1, + /*0x10cef*/ 1293, + /*0x10428*/ 1135, + /*0x03ed*/ 286, + /*0xa751*/ 1057, + -1, + /*0x10ef*/ 509, + -1, + /*0xa65f*/ 1013, + /*0x13d3*/ 575, + /*0x0453*/ 327, + /*0x04d3*/ 393, + -1, -1, + /*0x1f06*/ 742, + /*0x1e53*/ 654, + /*0x1ed3*/ 713, + /*0x0153*/ 95, + /*0x2cd3*/ 946, + /*0x13d5*/ 577, + /*0x0455*/ 329, + /*0x04d5*/ 394, + /*0xa7d9*/ 1106, + /*0x24d3*/ 826, + -1, + /*0x1e55*/ 655, + /*0x1ed5*/ 714, + /*0x0155*/ 96, + /*0x2cd5*/ 947, + /*0x2c51*/ 882, + /*0xa794*/ 1083, + /*0x10cd1*/ 1263, + -1, + /*0x24d5*/ 828, + -1, -1, + /*0x10d1*/ 479, + /*0xa65d*/ 1012, + /*0x01e1*/ 151, + -1, + /*0x13f3*/ 607, + /*0x0473*/ 349, + /*0x04f3*/ 409, + /*0x0073*/ 17, + -1, + /*0x104f3*/ 1202, + /*0x1e73*/ 670, + /*0x1ef3*/ 729, + /*0x0173*/ 111, + /*0x2cf3*/ 957, + /*0x13ce*/ 570, + /*0x044e*/ 322, + /*0x04ce*/ 390, + -1, + /*0x1044e*/ 1173, + -1, -1, + /*0x026b*/ 217, + /*0x1f7a*/ 794, + /*0x03f3*/ 289, + /*0x017e*/ 116, + -1, + /*0x01e3*/ 152, + /*0x0192*/ 122, + -1, + /*0x1f20*/ 750, + /*0xa78c*/ 1080, + -1, + /*0xa66b*/ 1019, + /*0x03ce*/ 274, + -1, + /*0xa76d*/ 1071, + /*0x01e5*/ 153, + /*0x0188*/ 120, + /*0x13c3*/ 559, + /*0x0443*/ 311, + /*0x0373*/ 237, + -1, + /*0x10443*/ 1162, + -1, + /*0x1e43*/ 646, + /*0x1ec3*/ 705, + /*0x01e9*/ 155, + /*0x2cc3*/ 938, + -1, -1, + /*0x0561*/ 440, + /*0x1059b*/ 1215, + /*0x00e1*/ 26, + -1, -1, + /*0x0257*/ 205, + /*0x01e7*/ 154, + /*0x03c3*/ 263, + /*0x118d9*/ 1322, + /*0x051b*/ 429, + /*0xa753*/ 1058, + /*0x13aa*/ 534, + /*0x10ced*/ 1291, + /*0xab53*/ 1108, + /*0x050b*/ 421, + /*0x1042a*/ 1137, + /*0xa657*/ 1009, + /*0x10ed*/ 507, + /*0x1f57*/ 775, + -1, + /*0xa755*/ 1059, + /*0x13c1*/ 557, + /*0x0441*/ 309, + /*0x118db*/ 1324, + /*0x0563*/ 442, + /*0x10441*/ 1160, + /*0x00e3*/ 28, + /*0x1e41*/ 645, + /*0x1ec1*/ 704, + -1, + /*0x2cc1*/ 937, + /*0x026f*/ 219, + -1, -1, + /*0x0565*/ 444, + /*0x2c53*/ 884, + /*0x00e5*/ 30, + /*0x10cd3*/ 1265, + /*0x118df*/ 1328, + -1, + /*0x03c1*/ 262, + -1, + /*0x10d3*/ 481, + -1, + /*0x0569*/ 448, + /*0x2c55*/ 886, + /*0x00e9*/ 34, + /*0x10cd5*/ 1267, + /*0x13de*/ 586, + /*0x045e*/ 338, + /*0x1f02*/ 738, + /*0x01df*/ 150, + /*0x10d5*/ 483, + /*0x104de*/ 1181, + /*0x0567*/ 446, + -1, + /*0x00e7*/ 32, + /*0x105a4*/ 1223, + /*0x028b*/ 231, + -1, + /*0xa7d7*/ 1105, + /*0x0251*/ 200, + /*0x24de*/ 837, + -1, + /*0x019a*/ 125, + /*0x018c*/ 121, + /*0x2c73*/ 903, + /*0x118dd*/ 1326, + /*0x1f00*/ 736, + /*0x0292*/ 233, + /*0x1f26*/ 756, + /*0x028a*/ 230, + /*0xa651*/ 1006, + /*0x10f3*/ 513, + /*0x1f51*/ 772, + /*0xa743*/ 1050, + /*0x2c4e*/ 879, + -1, + /*0x10cce*/ 1260, + /*0x0288*/ 228, + /*0x01dd*/ 149, + /*0x10598*/ 1212, + /*0x13cf*/ 571, + /*0x044f*/ 323, + /*0x04cf*/ 391, + /*0x10fe*/ 522, + /*0x1044f*/ 1174, + -1, + /*0x1e4f*/ 652, + /*0x1ecf*/ 711, + /*0x014f*/ 93, + /*0x2ccf*/ 944, + /*0x0586*/ 477, + -1, + /*0x1e924*/ 1363, + /*0x1e922*/ 1361, + /*0x0211*/ 173, + -1, -1, -1, + /*0x2c43*/ 868, + -1, + /*0x10cc3*/ 1249, + -1, + /*0x1059a*/ 1214, + -1, + /*0x13cd*/ 569, + /*0x044d*/ 321, + /*0xa741*/ 1049, + /*0x1f11*/ 745, + /*0x1044d*/ 1172, + /*0x01eb*/ 156, + /*0x1e4d*/ 651, + /*0x1ecd*/ 710, + /*0x014d*/ 92, + /*0x2ccd*/ 943, + /*0xa7d1*/ 1104, + /*0x056e*/ 453, + /*0x019e*/ 126, + /*0x00ee*/ 39, + -1, -1, + /*0x13cb*/ 567, + /*0x044b*/ 319, + -1, + /*0x03cd*/ 273, + /*0x1044b*/ 1170, + -1, + /*0x1e4b*/ 650, + /*0x1ecb*/ 709, + /*0x014b*/ 91, + /*0x2ccb*/ 942, + /*0x118d7*/ 1320, + /*0x2c41*/ 866, + -1, + /*0x10cc1*/ 1247, + /*0x13c9*/ 565, + /*0x0449*/ 317, + -1, + /*0xa66d*/ 1020, + /*0x10449*/ 1168, + /*0x03cb*/ 271, + /*0x1e49*/ 649, + /*0x1ec9*/ 708, + -1, + /*0x2cc9*/ 941, + /*0x105a0*/ 1220, + /*0x057a*/ 465, + -1, + /*0x00fa*/ 50, + -1, + /*0xa791*/ 1081, + -1, + /*0x0253*/ 202, + -1, + /*0x03c9*/ 269, + -1, + /*0x028c*/ 232, + /*0x1059e*/ 1218, + /*0x056b*/ 450, + /*0x2c5e*/ 895, + /*0x00eb*/ 36, + /*0x10cde*/ 1276, + -1, + /*0xa653*/ 1007, + -1, + /*0x1f53*/ 773, + /*0x10de*/ 492, + /*0x16e61*/ 1330, + /*0xa74f*/ 1056, + -1, + /*0x01ef*/ 158, + -1, -1, + /*0xa655*/ 1008, + -1, + /*0x1f55*/ 774, + /*0x13f1*/ 605, + /*0x0471*/ 348, + /*0x04f1*/ 408, + /*0x0071*/ 15, + -1, + /*0x104f1*/ 1200, + /*0x1e71*/ 669, + /*0x1ef1*/ 728, + /*0x0171*/ 110, + -1, -1, + /*0x118d1*/ 1314, + -1, -1, -1, + /*0x16e63*/ 1332, + /*0xa74d*/ 1055, + /*0x2c4f*/ 880, + /*0x0180*/ 117, + /*0x10ccf*/ 1261, + /*0x1f73*/ 787, + /*0x13f5*/ 609, + /*0x0475*/ 350, + /*0x04f5*/ 410, + /*0x0075*/ 19, + /*0x16e65*/ 1334, + /*0x104f5*/ 1204, + /*0x1e75*/ 671, + /*0x1ef5*/ 730, + /*0x0175*/ 112, + -1, -1, + /*0xa74b*/ 1054, + /*0x029e*/ 235, + -1, + /*0x16e69*/ 1338, + /*0x0371*/ 236, + /*0x0582*/ 473, + -1, -1, -1, + /*0x2c4d*/ 878, + /*0x056f*/ 454, + /*0x10ccd*/ 1259, + /*0x00ef*/ 40, + /*0x16e67*/ 1336, + /*0xa749*/ 1053, + /*0x13ae*/ 538, + -1, -1, -1, + /*0x1042e*/ 1141, + /*0xa643*/ 999, + -1, + /*0x1f43*/ 769, + /*0x0580*/ 471, + -1, + /*0x2c4b*/ 876, + -1, + /*0x10ccb*/ 1257, + /*0x105a6*/ 1225, + /*0x13b7*/ 547, + /*0x0437*/ 299, + /*0x04b7*/ 379, + -1, + /*0x10437*/ 1150, + /*0x03ae*/ 244, + /*0x1e37*/ 640, + /*0x1eb7*/ 699, + /*0x0137*/ 82, + /*0x2cb7*/ 932, + /*0x2c49*/ 874, + -1, + /*0x10cc9*/ 1255, + -1, + /*0x13b5*/ 545, + /*0x0435*/ 297, + /*0x04b5*/ 378, + -1, + /*0x10435*/ 1148, + /*0x03b7*/ 252, + /*0x1e35*/ 639, + /*0x1eb5*/ 698, + /*0x0135*/ 81, + /*0x2cb5*/ 931, + /*0xa641*/ 998, + -1, + /*0x1f41*/ 767, + -1, -1, -1, + /*0x01ed*/ 157, + /*0x0282*/ 225, + /*0x1fe1*/ 803, + /*0x03b5*/ 250, + /*0x0481*/ 356, + /*0xa7c3*/ 1101, + /*0x1e926*/ 1365, + -1, + /*0x1e01*/ 613, + /*0x1e81*/ 677, + /*0x0101*/ 56, + /*0x2c81*/ 905, + /*0x118d3*/ 1316, + -1, + /*0x01a8*/ 130, + -1, + /*0x0511*/ 424, + /*0x16e6e*/ 1343, + /*0x13a5*/ 529, + /*0x0280*/ 224, + /*0x04a5*/ 370, + /*0x217a*/ 816, + /*0x118d5*/ 1318, + /*0x10cf1*/ 1295, + /*0x1e25*/ 631, + /*0x1ea5*/ 690, + /*0x0125*/ 74, + /*0x2ca5*/ 923, + /*0x10f1*/ 511, + /*0x1e05*/ 615, + /*0x1e85*/ 679, + /*0x0105*/ 58, + /*0x2c85*/ 907, + /*0x13b3*/ 543, + /*0x0433*/ 295, + /*0x04b3*/ 377, + /*0x1fe5*/ 804, + /*0x10433*/ 1146, + /*0xa7c1*/ 1100, + /*0x1e33*/ 638, + /*0x1eb3*/ 697, + /*0x0133*/ 80, + /*0x2cb3*/ 930, + /*0x2d16*/ 980, + /*0x024f*/ 198, + -1, + /*0x2d1b*/ 985, + /*0x16e7a*/ 1355, + /*0x056d*/ 452, + /*0x10f5*/ 515, + /*0x00ed*/ 38, + /*0x2d0b*/ 969, + /*0x03b3*/ 248, + /*0x118ce*/ 1311, + /*0x105a8*/ 1227, + /*0xa64f*/ 1005, + /*0x01f3*/ 159, + /*0xa737*/ 1044, + -1, + /*0x16e6b*/ 1340, + -1, -1, + /*0x2d12*/ 976, + -1, + /*0x2d0a*/ 968, + -1, + /*0x01ce*/ 141, + /*0x13a3*/ 527, + /*0x024d*/ 197, + /*0x04a3*/ 369, + -1, + /*0xa735*/ 1043, + /*0x2d08*/ 966, + /*0x1e23*/ 630, + /*0x1ea3*/ 689, + /*0x0123*/ 73, + /*0x2ca3*/ 922, + /*0x118c3*/ 1300, + -1, + /*0xa64d*/ 1004, + -1, + /*0x13ad*/ 537, + /*0x2c37*/ 856, + /*0x04ad*/ 374, + /*0x024b*/ 196, + /*0x1042d*/ 1140, + -1, + /*0x1e2d*/ 635, + /*0x1ead*/ 694, + /*0x012d*/ 78, + /*0x2cad*/ 927, + /*0x1e928*/ 1367, + -1, -1, -1, + /*0xa64b*/ 1003, + /*0x2c35*/ 854, + -1, + /*0x0249*/ 195, + -1, + /*0x03ad*/ 243, + -1, + /*0x2d24*/ 994, + /*0x2d22*/ 992, + /*0x0573*/ 458, + /*0xa725*/ 1036, + /*0x00f3*/ 44, + /*0x047b*/ 353, + /*0x04fb*/ 413, + /*0xa649*/ 1002, + /*0x118c1*/ 1298, + /*0x104fb*/ 1210, + /*0x1e7b*/ 674, + /*0x1efb*/ 733, + /*0x2d14*/ 978, + -1, + /*0x057e*/ 469, + /*0x1f04*/ 740, + /*0x00fe*/ 54, + /*0x16e6f*/ 1344, + /*0xa733*/ 1042, + -1, -1, + /*0x2d10*/ 974, + -1, + /*0x03fb*/ 291, + /*0x2d18*/ 982, + /*0x13bf*/ 555, + /*0x043f*/ 307, + /*0x04bf*/ 383, + -1, + /*0x1043f*/ 1158, + -1, + /*0x1e3f*/ 644, + /*0x1ebf*/ 703, + -1, + /*0x2cbf*/ 936, + /*0x118de*/ 1327, + -1, + /*0x0271*/ 220, + /*0x2d06*/ 964, + -1, + /*0x037b*/ 239, + -1, -1, + /*0x2c33*/ 852, + /*0x03bf*/ 260, + /*0x13b2*/ 542, + /*0x0432*/ 294, + /*0x2d1a*/ 984, + /*0x2d0c*/ 970, + /*0x10432*/ 1145, + /*0x1f71*/ 785, + /*0x105aa*/ 1229, + /*0xa723*/ 1035, + /*0x13b9*/ 549, + /*0x0439*/ 301, + /*0x04b9*/ 380, + -1, + /*0x10439*/ 1152, + /*0x0275*/ 222, + /*0x1e39*/ 641, + /*0x1eb9*/ 700, + -1, + /*0x2cb9*/ 933, + -1, + /*0x03b2*/ 247, + /*0x1e943*/ 1394, + /*0xa72d*/ 1040, + -1, -1, + /*0x118cf*/ 1312, + -1, + /*0x1f75*/ 789, + /*0x03b9*/ 254, + -1, -1, + /*0x13ac*/ 536, + /*0x13b1*/ 541, + /*0x0431*/ 293, + /*0x04b1*/ 376, + /*0x1042c*/ 1139, + /*0x10431*/ 1144, + -1, + /*0x1e31*/ 637, + /*0x1eb1*/ 696, + -1, + /*0x2cb1*/ 929, + -1, -1, + /*0x1e92a*/ 1369, + /*0x2d20*/ 990, + -1, -1, -1, + /*0x118cd*/ 1310, + /*0x03ac*/ 242, + /*0x03b1*/ 246, + -1, + /*0x13a7*/ 531, + /*0x1e941*/ 1392, + /*0x04a7*/ 371, + -1, + /*0x2d1e*/ 988, + -1, + /*0x1e27*/ 632, + /*0x1ea7*/ 691, + /*0x0127*/ 75, + /*0x2ca7*/ 924, + -1, -1, + /*0x118cb*/ 1308, + -1, + /*0x1f37*/ 765, + /*0xa73f*/ 1048, + -1, + /*0x16e6d*/ 1342, + -1, -1, -1, -1, -1, + /*0x13c7*/ 563, + /*0x0447*/ 315, + -1, + /*0x118c9*/ 1306, + /*0x10447*/ 1166, + /*0x1f35*/ 763, + /*0x1e47*/ 648, + /*0x1ec7*/ 707, + -1, + /*0x2cc7*/ 940, + /*0x0201*/ 165, + -1, -1, -1, -1, -1, + /*0x01c9*/ 139, + /*0x2c3f*/ 864, + -1, + /*0x03c7*/ 267, + /*0xa739*/ 1045, + -1, -1, + /*0x1f01*/ 737, + /*0x2173*/ 809, + -1, + /*0x0225*/ 182, + -1, -1, + /*0x1fd1*/ 801, + -1, + /*0x0205*/ 167, + -1, + /*0xa7b7*/ 1095, + /*0x214e*/ 805, + -1, + /*0x217e*/ 820, + /*0x2c32*/ 851, + -1, + /*0x1f25*/ 755, + /*0x2d02*/ 960, + /*0x0233*/ 189, + /*0x13c5*/ 561, + /*0x0445*/ 313, + /*0x1f05*/ 741, + /*0x2c39*/ 858, + /*0x10445*/ 1164, + /*0xa7b5*/ 1094, + /*0x1e45*/ 647, + /*0x1ec5*/ 706, + /*0x16e73*/ 1348, + /*0x2cc5*/ 939, + -1, -1, + /*0x1f33*/ 761, + /*0x2d0e*/ 972, + -1, -1, + /*0x2d00*/ 958, + /*0x0584*/ 475, + -1, + /*0x03c5*/ 265, + /*0x16e7e*/ 1359, + -1, + /*0xa727*/ 1037, + /*0xa781*/ 1076, + /*0x13c0*/ 556, + /*0x0440*/ 308, + /*0x2c31*/ 850, + -1, + /*0x10440*/ 1159, + /*0x047d*/ 354, + /*0x04fd*/ 414, + -1, + /*0x0140*/ 86, + /*0x0223*/ 181, + /*0x1e7d*/ 675, + /*0x1efd*/ 734, + /*0x01f5*/ 160, + /*0x1d7d*/ 611, + -1, + /*0xa7a5*/ 1091, + -1, -1, -1, + /*0x03c0*/ 261, + /*0xa785*/ 1078, + /*0xa747*/ 1052, + /*0x1f23*/ 753, + /*0x022d*/ 186, + /*0x1e03*/ 614, + /*0x1e83*/ 678, + /*0x0103*/ 57, + /*0x2c83*/ 906, + -1, -1, + /*0x048f*/ 359, + -1, -1, + /*0x2d11*/ 975, + /*0x1e0f*/ 620, + /*0x1e8f*/ 684, + /*0x010f*/ 63, + /*0x2c8f*/ 912, + /*0xa69b*/ 1034, + /*0x0571*/ 456, + /*0x037d*/ 241, + /*0x00f1*/ 42, + -1, + /*0xa68b*/ 1026, + -1, -1, + /*0x2c47*/ 872, + -1, + /*0x10cc7*/ 1253, + /*0x13bd*/ 553, + /*0x043d*/ 305, + /*0x04bd*/ 382, + -1, + /*0x1043d*/ 1156, + -1, + /*0x1e3d*/ 643, + /*0x1ebd*/ 702, + -1, + /*0x2cbd*/ 935, + -1, + /*0x0575*/ 460, + /*0x1f7b*/ 795, + /*0x00f5*/ 46, + /*0xa745*/ 1051, + /*0xa7a3*/ 1090, + /*0x13a1*/ 525, + -1, + /*0x04a1*/ 368, + /*0x03bd*/ 258, + /*0x023f*/ 191, + /*0xff59*/ 1133, + /*0x1e21*/ 629, + /*0x1ea1*/ 688, + /*0x0121*/ 72, + /*0x2ca1*/ 921, + /*0x13bb*/ 551, + /*0x043b*/ 303, + /*0x04bb*/ 381, + /*0x105ae*/ 1233, + /*0x1043b*/ 1154, + -1, + /*0x1e3b*/ 642, + /*0x1ebb*/ 701, + -1, + /*0x2cbb*/ 934, + -1, -1, -1, + /*0x2c45*/ 870, + /*0x13af*/ 539, + /*0x10cc5*/ 1251, + /*0x04af*/ 375, + /*0x105b7*/ 1241, + /*0x1042f*/ 1142, + /*0x03bb*/ 256, + /*0x1e2f*/ 636, + /*0x1eaf*/ 695, + /*0x012f*/ 79, + /*0x2caf*/ 928, + -1, + /*0x01a5*/ 129, + -1, + /*0x1f32*/ 760, + /*0x0499*/ 364, + -1, + /*0x0185*/ 119, + /*0x105b5*/ 1239, + /*0x1e19*/ 625, + /*0x03af*/ 245, + /*0x0119*/ 68, + /*0x2c99*/ 917, + -1, + /*0x2c40*/ 865, + /*0x13e6*/ 594, + /*0x10cc0*/ 1246, + /*0x1e92e*/ 1373, + /*0x0066*/ 5, + -1, + /*0x104e6*/ 1189, + -1, + /*0x0231*/ 188, + /*0x0581*/ 472, + -1, + /*0x10fd*/ 521, + /*0xa7bf*/ 1099, + /*0x13f2*/ 606, + -1, + /*0x24e6*/ 845, + /*0x0072*/ 16, + /*0x1e937*/ 1382, + /*0x104f2*/ 1201, + -1, + /*0x0501*/ 416, + /*0x1f31*/ 759, + -1, -1, + /*0xa73d*/ 1047, + -1, -1, -1, + /*0x105a5*/ 1224, + /*0x0227*/ 183, + /*0x0585*/ 476, + /*0x1e935*/ 1380, + /*0x03f2*/ 288, + -1, -1, -1, + /*0x0525*/ 434, + /*0x01a3*/ 128, + -1, -1, + /*0xa7b9*/ 1096, + /*0x0505*/ 418, + /*0x1f27*/ 757, + /*0x105b3*/ 1237, + -1, -1, -1, + /*0x1059c*/ 1216, + -1, + /*0x2c3d*/ 862, + /*0xa73b*/ 1046, + /*0x01ad*/ 131, + /*0x0247*/ 194, + /*0x13a9*/ 533, + -1, + /*0x04a9*/ 372, + -1, + /*0x10429*/ 1136, + -1, + /*0x1e29*/ 633, + /*0x1ea9*/ 692, + /*0x0129*/ 76, + /*0x2ca9*/ 925, + /*0xa647*/ 1001, + /*0xa72f*/ 1041, + /*0x1e925*/ 1364, + /*0x0479*/ 352, + /*0x04f9*/ 412, + /*0x0079*/ 23, + /*0x2171*/ 807, + /*0x104f9*/ 1208, + /*0x1e79*/ 673, + /*0x1ef9*/ 732, + -1, + /*0x1d79*/ 610, + /*0x2c3b*/ 860, + /*0x01fb*/ 162, + /*0x105a3*/ 1222, + -1, -1, + /*0x1e933*/ 1378, + -1, + /*0xff57*/ 1131, + -1, + /*0xa7a7*/ 1092, + /*0x0523*/ 433, + -1, -1, -1, -1, + /*0x2175*/ 811, + /*0x105ad*/ 1232, + /*0x13d0*/ 572, + /*0x0450*/ 324, + -1, + /*0x16e71*/ 1346, + -1, + /*0x01bf*/ 137, + -1, + /*0x052d*/ 438, + /*0x13c2*/ 558, + /*0x0442*/ 310, + /*0x04c2*/ 384, + -1, + /*0x10442*/ 1161, + /*0xa645*/ 1000, + /*0x24d0*/ 823, + /*0x1f45*/ 771, + /*0x0142*/ 87, + /*0x1e09*/ 617, + /*0x1e89*/ 681, + /*0x0109*/ 60, + /*0x2c89*/ 909, + /*0x2c66*/ 899, + /*0x1e923*/ 1362, + /*0x10ce6*/ 1284, + /*0x16e75*/ 1350, + -1, + /*0x0240*/ 192, + -1, + /*0x10e6*/ 500, + -1, + /*0x027d*/ 223, + -1, + /*0x057b*/ 466, + /*0x01b9*/ 135, + /*0x00fb*/ 51, + /*0x10cf2*/ 1296, + /*0x1e92d*/ 1372, + -1, -1, + /*0x1f40*/ 766, + /*0x10f2*/ 512, + -1, -1, + /*0x1f7d*/ 797, + /*0x0203*/ 166, + -1, + /*0xff51*/ 1125, + -1, + /*0xa729*/ 1038, + -1, + /*0x047f*/ 355, + /*0x04ff*/ 415, + -1, -1, + /*0x020f*/ 172, + /*0x1e7f*/ 676, + /*0x1eff*/ 735, + /*0x1f03*/ 739, + /*0x0477*/ 351, + /*0x04f7*/ 411, + /*0x0077*/ 21, + -1, + /*0x104f7*/ 1206, + /*0x1e77*/ 672, + /*0x1ef7*/ 731, + /*0x0177*/ 113, + /*0x13ec*/ 600, + -1, -1, + /*0x006c*/ 10, + -1, + /*0x104ec*/ 1195, + /*0x13ab*/ 535, + /*0x105b9*/ 1243, + /*0x04ab*/ 373, + /*0x2cec*/ 955, + /*0x1042b*/ 1138, + -1, + /*0x1e2b*/ 634, + /*0x1eab*/ 693, + /*0x012b*/ 77, + /*0x2cab*/ 926, + /*0x1e93f*/ 1390, + /*0x13e8*/ 596, + -1, -1, + /*0x0068*/ 7, + /*0x118c7*/ 1304, + /*0x104e8*/ 1191, + -1, -1, + /*0x2184*/ 822, + /*0x10f9*/ 519, + /*0x0377*/ 238, + -1, + /*0x105ac*/ 1231, + /*0x105b1*/ 1236, + /*0x24e8*/ 847, + /*0x13ea*/ 598, + /*0xa783*/ 1077, + -1, + /*0x006a*/ 8, + /*0x1e932*/ 1377, + /*0x104ea*/ 1193, + /*0x1f21*/ 751, + /*0x2d04*/ 962, + -1, -1, -1, + /*0xa691*/ 1029, + /*0x1e939*/ 1384, + -1, + /*0x2c50*/ 881, + -1, + /*0x10cd0*/ 1262, + /*0x022f*/ 187, + -1, + /*0x105a7*/ 1226, + -1, + /*0x10d0*/ 478, + /*0x2c42*/ 867, + /*0x13f0*/ 604, + /*0x10cc2*/ 1248, + -1, + /*0x0070*/ 14, + /*0x0527*/ 435, + /*0x104f0*/ 1199, + /*0x0219*/ 177, + -1, + /*0x118c5*/ 1302, + /*0xa7bd*/ 1098, + -1, + /*0x1e92c*/ 1371, + /*0x1e931*/ 1376, + -1, -1, + /*0xa77f*/ 1075, + -1, + /*0xff53*/ 1127, + /*0x0266*/ 213, + -1, + /*0x13c8*/ 564, + /*0x0448*/ 316, + /*0x04c8*/ 387, + -1, + /*0x10448*/ 1167, + /*0xa7a1*/ 1089, + -1, + /*0xff55*/ 1129, + /*0x0148*/ 90, + -1, + /*0x0272*/ 221, + /*0x1f66*/ 782, + /*0x118c0*/ 1297, + /*0x1e927*/ 1366, + -1, + /*0xa7bb*/ 1097, + -1, -1, + /*0xa72b*/ 1039, + /*0x03c8*/ 268, + /*0x0076*/ 20, + -1, + /*0x104f6*/ 1205, + /*0x1f72*/ 786, + -1, -1, -1, + /*0x10ff*/ 523, + -1, + /*0x01fd*/ 163, + -1, + /*0x13e4*/ 592, + -1, + /*0x217b*/ 817, + /*0x0064*/ 3, + /*0x10f7*/ 517, + /*0x104e4*/ 1187, + /*0x2c6c*/ 902, + /*0xff4e*/ 1122, + /*0x10cec*/ 1290, + -1, + /*0xa799*/ 1085, + /*0x0495*/ 362, + /*0x0183*/ 118, + /*0x10ec*/ 506, + /*0x24e4*/ 843, + /*0x1e15*/ 623, + /*0x1e95*/ 687, + /*0x0115*/ 66, + /*0x2c95*/ 915, + /*0x0229*/ 184, + -1, -1, -1, + /*0x2c68*/ 900, + -1, + /*0x10ce8*/ 1286, + -1, -1, + /*0x16e7b*/ 1356, + -1, + /*0x10e8*/ 502, + /*0xff43*/ 1111, + -1, + /*0x13c6*/ 562, + /*0x0446*/ 314, + /*0x04c6*/ 386, + -1, + /*0x10446*/ 1165, + /*0x2c6a*/ 901, + -1, + /*0x10cea*/ 1288, + /*0x0146*/ 89, + -1, + /*0x01bd*/ 136, + /*0x1f79*/ 793, + /*0x10ea*/ 504, + /*0x057d*/ 468, + -1, + /*0x00fd*/ 53, + /*0x0583*/ 474, + /*0x0493*/ 361, + -1, + /*0x03c6*/ 266, + -1, + /*0x1e13*/ 622, + /*0x1e93*/ 686, + /*0x0113*/ 65, + /*0x2c93*/ 914, + /*0x0250*/ 199, + /*0x01a1*/ 127, + /*0x0503*/ 417, + /*0x2d01*/ 959, + /*0x13e0*/ 588, + /*0x10cf0*/ 1294, + /*0xff41*/ 1109, + -1, + /*0x0242*/ 193, + /*0x104e0*/ 1183, + /*0x10f0*/ 510, + /*0x0209*/ 169, + /*0x050f*/ 423, + /*0x1e940*/ 1391, + -1, -1, + /*0xa7a9*/ 1093, + -1, + /*0x24e0*/ 839, + /*0x2d25*/ 995, + -1, + /*0x1f42*/ 768, + -1, + /*0x2c48*/ 873, + /*0x2d05*/ 963, + /*0x10cc8*/ 1254, + /*0x1e07*/ 616, + /*0x1e87*/ 680, + /*0x0107*/ 59, + /*0x2c87*/ 908, + -1, + /*0x13c4*/ 560, + /*0x0444*/ 312, + /*0x04c4*/ 385, + -1, + /*0x10444*/ 1163, + -1, + /*0x0199*/ 124, + /*0x2d1c*/ 986, + /*0x0144*/ 88, + /*0x2c76*/ 904, + /*0x105a1*/ 1221, + -1, -1, -1, -1, + /*0x0283*/ 226, + /*0x10f6*/ 516, + /*0x0497*/ 363, + /*0x0521*/ 432, + /*0x03c4*/ 264, + /*0x105bb*/ 1244, + /*0x1e17*/ 624, + /*0x049d*/ 366, + /*0x0117*/ 67, + /*0x2c97*/ 916, + /*0x10ce4*/ 1282, + /*0x1e1d*/ 627, + -1, + /*0x011d*/ 70, + /*0x2c9d*/ 919, + /*0x10e4*/ 498, + /*0x1e93d*/ 1388, + -1, -1, + /*0x105af*/ 1234, + /*0x026c*/ 218, + /*0xff4f*/ 1123, + /*0x2d23*/ 993, + -1, + /*0x1f77*/ 791, + -1, + /*0x022b*/ 185, + /*0x052f*/ 439, + -1, -1, + /*0x13e2*/ 590, + /*0x10599*/ 1213, + -1, + /*0x0062*/ 1, + -1, + /*0x104e2*/ 1185, + /*0x2d2d*/ 997, + /*0x0268*/ 214, + -1, + /*0x0519*/ 428, + -1, + /*0x2c46*/ 871, + /*0x1e93b*/ 1386, + /*0x10cc6*/ 1252, + /*0x24e2*/ 841, + /*0xff4d*/ 1121, + /*0x13d6*/ 578, + /*0x0456*/ 330, + /*0x0078*/ 22, + -1, + /*0x104f8*/ 1207, + /*0x0566*/ 445, + /*0x026a*/ 216, + /*0x00e6*/ 31, + /*0x13dc*/ 584, + /*0x045c*/ 336, + /*0x1e92f*/ 1374, + /*0x13da*/ 582, + /*0x045a*/ 334, + /*0x104dc*/ 1179, + /*0x24d6*/ 829, + /*0xff4b*/ 1119, + /*0x104da*/ 1177, + /*0x0572*/ 457, + /*0x03f8*/ 290, + /*0x00f2*/ 43, + -1, + /*0x01f9*/ 161, + /*0x24dc*/ 835, + -1, -1, + /*0x24da*/ 833, + /*0x10ce0*/ 1278, + -1, -1, + /*0xff49*/ 1117, + -1, + /*0x10e0*/ 494, + -1, -1, -1, + /*0x118d0*/ 1313, + /*0x13bc*/ 552, + /*0x043c*/ 304, + /*0x217d*/ 819, + -1, + /*0x1043c*/ 1155, + -1, + /*0x1f70*/ 784, + /*0x118c2*/ 1299, + /*0x013c*/ 84, + /*0x017c*/ 115, + -1, -1, + /*0x01d0*/ 142, + /*0x105a9*/ 1228, + -1, + /*0x2c44*/ 869, + /*0x1fb1*/ 799, + /*0x10cc4*/ 1250, + -1, + /*0x03bc*/ 257, + -1, + /*0x0529*/ 436, + /*0x13d8*/ 580, + /*0x0458*/ 332, + -1, -1, -1, + /*0x104d8*/ 1175, + /*0x16e7d*/ 1358, + -1, + /*0x13ca*/ 566, + /*0x044a*/ 318, + /*0x04ca*/ 388, + /*0x0579*/ 464, + /*0x1044a*/ 1169, + /*0x00f9*/ 49, + /*0x24d8*/ 831, + /*0x037c*/ 240, + /*0x13d4*/ 576, + /*0x0454*/ 328, + -1, -1, -1, + /*0x1f76*/ 790, + /*0x13b6*/ 546, + /*0x0436*/ 298, + -1, -1, + /*0x10436*/ 1149, + /*0x03ca*/ 270, + /*0x1e929*/ 1368, + -1, + /*0x24d4*/ 827, + /*0x0215*/ 175, + /*0x13b0*/ 540, + /*0x0430*/ 292, + -1, + /*0x1f64*/ 780, + /*0x10430*/ 1143, + /*0x13d2*/ 574, + /*0x0452*/ 326, + /*0x01ff*/ 164, + /*0x10ce2*/ 1280, + /*0x03b6*/ 251, + -1, -1, + /*0x1f15*/ 749, + /*0x10e2*/ 496, + /*0xa7c8*/ 1102, + -1, -1, + /*0x0509*/ 420, + /*0x2d27*/ 996, + /*0x24d2*/ 825, + -1, -1, + /*0x2c56*/ 887, + -1, + /*0x10cd6*/ 1268, + -1, -1, -1, + /*0x10f8*/ 518, + /*0x10d6*/ 484, + /*0x2c5c*/ 893, + /*0xa7f6*/ 1107, + /*0x10cdc*/ 1274, + /*0x2c5a*/ 891, + /*0xa77c*/ 1074, + /*0x10cda*/ 1272, + -1, + /*0x10dc*/ 490, + /*0x0213*/ 174, + -1, + /*0x10da*/ 488, + /*0x13f4*/ 608, + -1, + /*0x1e942*/ 1393, + /*0x0074*/ 18, + -1, + /*0x104f4*/ 1203, + -1, -1, -1, -1, + /*0x1f13*/ 747, + /*0x0260*/ 209, + -1, -1, + /*0x057f*/ 470, + -1, + /*0x00ff*/ 55, + /*0x2c3c*/ 861, + -1, -1, + /*0x0289*/ 229, + -1, + /*0x0577*/ 462, + -1, + /*0x1f60*/ 776, + -1, -1, + /*0x0207*/ 168, + /*0x2172*/ 808, + /*0x105ab*/ 1230, + -1, + /*0x056c*/ 451, + -1, + /*0x00ec*/ 37, + -1, -1, -1, + /*0x052b*/ 437, + -1, + /*0x2c58*/ 889, + /*0x1f07*/ 743, + /*0x10cd8*/ 1270, + /*0x16e66*/ 1335, + -1, -1, + /*0x118c8*/ 1305, + /*0x10d8*/ 486, + /*0x2c4a*/ 875, + /*0x0568*/ 447, + /*0x10cca*/ 1256, + /*0x00e8*/ 33, + /*0x1f44*/ 770, + /*0xa793*/ 1082, + /*0x0217*/ 176, + /*0x16e72*/ 1347, + /*0x2c54*/ 885, + -1, + /*0x10cd4*/ 1266, + /*0x021d*/ 179, + -1, + /*0xa681*/ 1021, + /*0x2c36*/ 855, + /*0x10d4*/ 482, + /*0x056a*/ 449, + -1, + /*0x00ea*/ 35, + /*0x1e92b*/ 1370, + -1, + /*0x13b4*/ 544, + /*0x0434*/ 296, + -1, + /*0x2c30*/ 849, + /*0x10434*/ 1147, + -1, -1, -1, + /*0x2c52*/ 883, + -1, + /*0x10cd2*/ 1264, + -1, + /*0x2179*/ 815, + /*0xa685*/ 1023, + /*0xa787*/ 1079, + /*0x10d2*/ 480, + /*0x2d03*/ 961, + -1, + /*0x0570*/ 455, + /*0x03b4*/ 249, + /*0x00f0*/ 41, + -1, -1, + /*0x13cc*/ 568, + /*0x044c*/ 320, + /*0x04cc*/ 389, + /*0x2d0f*/ 973, + /*0x1044c*/ 1171, + /*0x1f62*/ 778, + /*0x049f*/ 367, + /*0x0195*/ 123, + /*0x0256*/ 204, + -1, + /*0x1e1f*/ 628, + -1, + /*0x011f*/ 71, + /*0x2c9f*/ 920, + -1, + /*0x16e79*/ 1354, + /*0x025c*/ 208, + /*0xa797*/ 1084, + /*0x118c6*/ 1303, + /*0x03cc*/ 272, + /*0x1f78*/ 792, + -1, + /*0xa79d*/ 1087, + -1, -1, -1, -1, -1, + /*0x10f4*/ 514, + -1, -1, + /*0x01c6*/ 138, + /*0x0576*/ 461, + -1, + /*0x00f6*/ 47, + -1, -1, + /*0x13be*/ 554, + /*0x043e*/ 306, + -1, + /*0x2d21*/ 991, + /*0x1043e*/ 1157, + -1, -1, + /*0x023c*/ 190, + /*0x013e*/ 85, + /*0x0564*/ 443, + /*0x048d*/ 358, + /*0x00e4*/ 29, + -1, -1, + /*0x1e0d*/ 619, + /*0x1e8d*/ 683, + /*0x010d*/ 62, + /*0x2c8d*/ 911, + /*0x0515*/ 426, + /*0x03be*/ 259, + -1, + /*0x1f7c*/ 796, + /*0x13ba*/ 550, + /*0x043a*/ 302, + -1, -1, + /*0x1043a*/ 1153, + -1, + /*0x217f*/ 821, + -1, + /*0x013a*/ 83, + -1, -1, -1, + /*0x13b8*/ 548, + /*0x0438*/ 300, + /*0x2177*/ 813, + /*0x118c4*/ 1301, + /*0x10438*/ 1151, + /*0x2d19*/ 983, + -1, + /*0x03ba*/ 255, + -1, -1, -1, + /*0x0254*/ 203, + -1, -1, -1, -1, -1, -1, + /*0x2c34*/ 853, + /*0x03b8*/ 253, + /*0x16e7f*/ 1360, + -1, -1, + /*0x0513*/ 425, + -1, -1, -1, -1, + /*0x16e77*/ 1352, + -1, + /*0x1f36*/ 764, + -1, + /*0x0252*/ 201, + -1, -1, -1, -1, + /*0x16e6c*/ 1341, + -1, + /*0x00e0*/ 25, + /*0x1f30*/ 758, + /*0x2c4c*/ 877, + -1, + /*0x10ccc*/ 1258, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x0507*/ 419, + /*0x16e68*/ 1337, + -1, -1, -1, + /*0xa7ca*/ 1103, + -1, -1, -1, -1, -1, + /*0x118d6*/ 1319, + -1, + /*0x2170*/ 806, + -1, -1, + /*0x16e6a*/ 1339, + -1, + /*0x10597*/ 1211, + /*0x118dc*/ 1325, + /*0x1fd0*/ 800, + -1, + /*0x118da*/ 1323, + /*0x1059d*/ 1217, + /*0x01d6*/ 145, + /*0x2c3e*/ 863, + /*0x0517*/ 427, + -1, + /*0x1f74*/ 788, + -1, -1, + /*0x051d*/ 430, + /*0x01dc*/ 148, + -1, -1, + /*0x01da*/ 147, + -1, + /*0xff47*/ 1115, + -1, + /*0x16e70*/ 1345, + -1, -1, -1, -1, + /*0x0287*/ 227, + -1, -1, + /*0x2c3a*/ 859, + -1, -1, + /*0x2176*/ 812, + -1, -1, -1, -1, -1, + /*0x0562*/ 441, + -1, + /*0x00e2*/ 27, + /*0x2c38*/ 857, + -1, -1, -1, -1, -1, -1, + /*0x2d09*/ 967, + -1, -1, + /*0x118d8*/ 1321, + -1, + /*0x0578*/ 463, + -1, + /*0x00f8*/ 48, + -1, + /*0x029d*/ 234, + /*0x16e76*/ 1351, + /*0x118ca*/ 1307, + -1, + /*0xff45*/ 1113, + -1, -1, + /*0x01d8*/ 146, + -1, -1, + /*0x118d4*/ 1317, + -1, -1, -1, -1, + /*0x16e64*/ 1333, + -1, -1, -1, -1, -1, + /*0x1f34*/ 762, + -1, + /*0x01d4*/ 144, + -1, + /*0x105bc*/ 1245, + -1, -1, -1, + /*0x01b6*/ 134, + -1, + /*0x118d2*/ 1315, + -1, -1, + /*0x057c*/ 467, + /*0x021f*/ 180, + /*0x00fc*/ 52, + -1, -1, + /*0x01b0*/ 132, + -1, -1, -1, -1, + /*0x01d2*/ 143, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x1e93c*/ 1387, + -1, -1, -1, -1, -1, -1, + /*0x105b6*/ 1240, + -1, -1, -1, -1, + /*0xa683*/ 1022, + -1, + /*0x020d*/ 171, + /*0x16e60*/ 1329, + -1, + /*0x105b0*/ 1235, + -1, -1, -1, -1, + /*0xa68f*/ 1028, + -1, -1, -1, -1, -1, + /*0xa79f*/ 1088, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x1e936*/ 1381, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x1e930*/ 1375, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x0574*/ 459, + -1, + /*0x00f4*/ 45, + -1, -1, -1, -1, -1, -1, + -1, + /*0x2178*/ 814, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x01b4*/ 133, + /*0x16e62*/ 1331, + -1, -1, -1, -1, -1, -1, + -1, + /*0xa699*/ 1033, + /*0x118cc*/ 1309, + -1, -1, + /*0x2d15*/ 979, + -1, -1, + /*0x16e78*/ 1353, + -1, -1, -1, -1, -1, -1, + /*0x01cc*/ 140, + -1, -1, -1, -1, + /*0x217c*/ 818, + -1, -1, + /*0x1fe0*/ 802, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x105b4*/ 1238, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x2d13*/ 977, + -1, + /*0x16e7c*/ 1357, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x1059f*/ 1219, + -1, -1, -1, -1, -1, -1, + -1, + /*0x051f*/ 431, + -1, + /*0x1e934*/ 1379, + -1, -1, -1, -1, + /*0x2d07*/ 965, + -1, + /*0xff50*/ 1124, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff42*/ 1110, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x2d17*/ 981, + -1, -1, -1, -1, + /*0x2d1d*/ 987, + -1, -1, + /*0x050d*/ 422, + -1, -1, -1, -1, -1, + /*0x2174*/ 810, + /*0xa689*/ 1025, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x105b8*/ 1242, + -1, -1, + /*0x1e93e*/ 1389, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x16e74*/ 1349, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x1e93a*/ 1385, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x1e938*/ 1383, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x1fb0*/ 798, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xff48*/ 1116, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xff46*/ 1114, + -1, -1, -1, + /*0xa695*/ 1031, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xa693*/ 1030, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xff44*/ 1112, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0xa687*/ 1024, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x2d1f*/ 989, + -1, -1, -1, -1, -1, -1, + -1, + /*0xa697*/ 1032, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0xff56*/ 1130, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0xff5a*/ 1134, + -1, -1, -1, + /*0x2d0d*/ 971, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xff58*/ 1132, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff4a*/ 1118, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff54*/ 1128, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xff52*/ 1126, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xff4c*/ 1120, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xa68d*/ 1027 + }; + + if (code <= MAX_CODE_VALUE && code >= MIN_CODE_VALUE) + { + register unsigned int key = onigenc_unicode_CaseUnfold_11_hash(code); + + if (key <= MAX_HASH_VALUE) + { + register short s = wordlist[key]; + + if (s >= 0 && code1_equal(code, CaseUnfold_11_Table[s].from)) + return &CaseUnfold_11_Table[s].to; + } + } + return 0; +} + +static const CaseUnfold_12_Type CaseUnfold_12_Table[] = { +#define CaseUnfold_12 (*(CaseUnfold_12_Type (*)[58])(CaseUnfold_12_Table+0)) + {{0x0061, 0x02be}, {1, {0x1e9a}}}, + {{0x0066, 0x0066}, {1, {0xfb00}}}, + {{0x0066, 0x0069}, {1, {0xfb01}}}, + {{0x0066, 0x006c}, {1, {0xfb02}}}, + {{0x0068, 0x0331}, {1, {0x1e96}}}, + {{0x006a, 0x030c}, {1, {0x01f0}}}, + {{0x0073, 0x0073}, {2, {0x00df, 0x1e9e}}}, + {{0x0073, 0x0074}, {2, {0xfb05, 0xfb06}}}, + {{0x0074, 0x0308}, {1, {0x1e97}}}, + {{0x0077, 0x030a}, {1, {0x1e98}}}, + {{0x0079, 0x030a}, {1, {0x1e99}}}, + {{0x02bc, 0x006e}, {1, {0x0149}}}, + {{0x03ac, 0x03b9}, {1, {0x1fb4}}}, + {{0x03ae, 0x03b9}, {1, {0x1fc4}}}, + {{0x03b1, 0x0342}, {1, {0x1fb6}}}, + {{0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc}}}, + {{0x03b7, 0x0342}, {1, {0x1fc6}}}, + {{0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc}}}, + {{0x03b9, 0x0342}, {1, {0x1fd6}}}, + {{0x03c1, 0x0313}, {1, {0x1fe4}}}, + {{0x03c5, 0x0313}, {1, {0x1f50}}}, + {{0x03c5, 0x0342}, {1, {0x1fe6}}}, + {{0x03c9, 0x0342}, {1, {0x1ff6}}}, + {{0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc}}}, + {{0x03ce, 0x03b9}, {1, {0x1ff4}}}, + {{0x0565, 0x0582}, {1, {0x0587}}}, + {{0x0574, 0x0565}, {1, {0xfb14}}}, + {{0x0574, 0x056b}, {1, {0xfb15}}}, + {{0x0574, 0x056d}, {1, {0xfb17}}}, + {{0x0574, 0x0576}, {1, {0xfb13}}}, + {{0x057e, 0x0576}, {1, {0xfb16}}}, + {{0x1f00, 0x03b9}, {2, {0x1f80, 0x1f88}}}, + {{0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89}}}, + {{0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a}}}, + {{0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b}}}, + {{0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c}}}, + {{0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d}}}, + {{0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e}}}, + {{0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f}}}, + {{0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98}}}, + {{0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99}}}, + {{0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a}}}, + {{0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b}}}, + {{0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c}}}, + {{0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d}}}, + {{0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e}}}, + {{0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f}}}, + {{0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8}}}, + {{0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9}}}, + {{0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa}}}, + {{0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab}}}, + {{0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac}}}, + {{0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad}}}, + {{0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae}}}, + {{0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf}}}, + {{0x1f70, 0x03b9}, {1, {0x1fb2}}}, + {{0x1f74, 0x03b9}, {1, {0x1fc2}}}, + {{0x1f7c, 0x03b9}, {1, {0x1ff2}}}, +#define CaseUnfold_12_Locale (*(CaseUnfold_12_Type (*)[1])(CaseUnfold_12_Table+58)) + {{0x0069, 0x0307}, {1, {0x0130}}}, +}; + +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -7 -k1,2,3,4,5,6 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_12_hash -N onigenc_unicode_CaseUnfold_12_lookup -n */ + +/* maximum key range = 71, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +onigenc_unicode_CaseUnfold_12_hash(const OnigCodePoint *codes) +{ + static const unsigned char asso_values[] = + { + 3, 58, 54, 57, 56, 16, 8, 2, 43, 82, + 3, 1, 23, 82, 82, 82, 82, 82, 82, 4, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 52, 51, 50, 49, 48, 47, 46, 45, + 82, 82, 82, 82, 43, 82, 42, 82, 82, 13, + 82, 82, 82, 82, 82, 11, 82, 1, 82, 82, + 14, 82, 1, 82, 82, 31, 3, 82, 82, 30, + 82, 82, 82, 10, 82, 82, 82, 82, 37, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 37, 15, 36, 35, + 34, 17, 1, 33, 12, 4, 23, 23, 26, 21, + 13, 82, 27, 82, 82, 2, 5, 82, 11, 16, + 82, 15, 82, 82, 23, 82, 8, 82 + }; + return asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)]; +} + +static const CodePointList2 * +onigenc_unicode_CaseUnfold_12_lookup(const OnigCodePoint *codes) +{ + enum + { + MIN_CODE_VALUE = 0x61, + MAX_CODE_VALUE = 0x1f7c, + TOTAL_KEYWORDS = 59, + MIN_WORD_LENGTH = 6, + MAX_WORD_LENGTH = 6, + MIN_HASH_VALUE = 11, + MAX_HASH_VALUE = 81 + }; + + static const short wordlist[] = + { + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x1f66,0x03b9*/ 53, + /*0x1f07,0x03b9*/ 38, + /*0x1f00,0x03b9*/ 31, + /*0x0066,0x0066*/ 1, + /*0x1f74,0x03b9*/ 56, + /*0x0073,0x0073*/ 6, + /*0x0066,0x0069*/ 2, + /*0x1f06,0x03b9*/ 37, + /*0x0073,0x0074*/ 7, + /*0x03b9,0x0342*/ 18, + /*0x03c9,0x03b9*/ 23, + /*0x03b7,0x03b9*/ 17, + /*0x0069,0x0307*/ 58, + /*0x03b1,0x03b9*/ 15, + /*0x1f61,0x03b9*/ 48, + /*0x1f05,0x03b9*/ 36, + /*0x1f65,0x03b9*/ 52, + /*0x0574,0x0576*/ 29, + /*0x03c9,0x0342*/ 22, + /*0x03b7,0x0342*/ 16, + /*0x057e,0x0576*/ 30, + /*0x03b1,0x0342*/ 14, + /*0x1f7c,0x03b9*/ 57, + /*0x0574,0x0565*/ 26, + /*0x0079,0x030a*/ 10, + /*0x0077,0x030a*/ 9, + /*0x1f70,0x03b9*/ 55, + /*0x0574,0x056d*/ 28, + /*0x0066,0x006c*/ 3, + /*0x0574,0x056b*/ 27, + /*0x0061,0x02be*/ 0, + /*0x0068,0x0331*/ 4, + /*0x1f67,0x03b9*/ 54, + /*0x1f64,0x03b9*/ 51, + /*0x1f63,0x03b9*/ 50, + /*0x1f62,0x03b9*/ 49, + /*0x1f60,0x03b9*/ 47, + /*0x03ce,0x03b9*/ 24, + /*0x03c5,0x0342*/ 21, + /*0x03c5,0x0313*/ 20, + /*0x03c1,0x0313*/ 19, + /*0x02bc,0x006e*/ 11, + /*0x03ae,0x03b9*/ 13, + /*0x03ac,0x03b9*/ 12, + /*0x1f27,0x03b9*/ 46, + /*0x1f26,0x03b9*/ 45, + /*0x1f25,0x03b9*/ 44, + /*0x1f24,0x03b9*/ 43, + /*0x1f23,0x03b9*/ 42, + /*0x1f22,0x03b9*/ 41, + /*0x1f21,0x03b9*/ 40, + /*0x1f20,0x03b9*/ 39, + /*0x006a,0x030c*/ 5, + /*0x1f02,0x03b9*/ 33, + /*0x0074,0x0308*/ 8, + /*0x1f04,0x03b9*/ 35, + /*0x1f03,0x03b9*/ 34, + /*0x1f01,0x03b9*/ 32, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x0565,0x0582*/ 25 + }; + + if (codes[0] <= MAX_CODE_VALUE && codes[0] >= MIN_CODE_VALUE && + codes[1] <= MAX_CODE_VALUE && codes[1] >= MIN_CODE_VALUE) + { + register unsigned int key = onigenc_unicode_CaseUnfold_12_hash(codes); + + if (key <= MAX_HASH_VALUE) + { + register short s = wordlist[key]; + + if (s >= 0 && code2_equal(codes, CaseUnfold_12_Table[s].from)) + return &CaseUnfold_12_Table[s].to; + } + } + return 0; +} + +static const CaseUnfold_13_Type CaseUnfold_13_Table[] = { +#define CaseUnfold_13 (*(CaseUnfold_13_Type (*)[14])(CaseUnfold_13_Table+0)) + {{0x0066, 0x0066, 0x0069}, {1, {0xfb03}}}, + {{0x0066, 0x0066, 0x006c}, {1, {0xfb04}}}, + {{0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7}}}, + {{0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7}}}, + {{0x03b9, 0x0308, 0x0300}, {1, {0x1fd2}}}, + {{0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3}}}, + {{0x03b9, 0x0308, 0x0342}, {1, {0x1fd7}}}, + {{0x03c5, 0x0308, 0x0300}, {1, {0x1fe2}}}, + {{0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3}}}, + {{0x03c5, 0x0308, 0x0342}, {1, {0x1fe7}}}, + {{0x03c5, 0x0313, 0x0300}, {1, {0x1f52}}}, + {{0x03c5, 0x0313, 0x0301}, {1, {0x1f54}}}, + {{0x03c5, 0x0313, 0x0342}, {1, {0x1f56}}}, + {{0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7}}}, +}; + +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -7 -k1,2,3,4,5,6,7,8,9 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_13_hash -N onigenc_unicode_CaseUnfold_13_lookup -n */ + +/* maximum key range = 20, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +onigenc_unicode_CaseUnfold_13_hash(const OnigCodePoint *codes) +{ + static const unsigned char asso_values[] = + { + 7, 4, 47, 47, 47, 47, 1, 1, 2, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 1, + 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, 11, + 47, 47, 47, 47, 47, 10, 47, 2, 47, 47, + 47, 47, 47, 47, 47, 47, 1, 47, 47, 1, + 47, 47, 47, 9, 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, 1, 47, 47, 2, 47, 47, 1, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47 + }; + return asso_values[bits_at(codes, 8)] + asso_values[bits_at(codes, 7)] + asso_values[bits_at(codes, 6)] + asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)]; +} + +static const CodePointList2 * +onigenc_unicode_CaseUnfold_13_lookup(const OnigCodePoint *codes) +{ + enum + { + MIN_CODE_VALUE = 0x66, + MAX_CODE_VALUE = 0x3c9, + TOTAL_KEYWORDS = 14, + MIN_WORD_LENGTH = 9, + MAX_WORD_LENGTH = 9, + MIN_HASH_VALUE = 27, + MAX_HASH_VALUE = 46 + }; + + static const short wordlist[] = + { + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x03c5,0x0313,0x0342*/ 12, + /*0x03c5,0x0308,0x0342*/ 9, + /*0x03b9,0x0308,0x0342*/ 6, + /*0x03c5,0x0313,0x0301*/ 11, + /*0x03c5,0x0308,0x0301*/ 8, + /*0x03b9,0x0308,0x0301*/ 5, + /*0x03c5,0x0313,0x0300*/ 10, + /*0x03c5,0x0308,0x0300*/ 7, + /*0x03b9,0x0308,0x0300*/ 4, + /*0x03c9,0x0342,0x03b9*/ 13, + /*0x03b7,0x0342,0x03b9*/ 3, + /*0x03b1,0x0342,0x03b9*/ 2, + -1, -1, -1, -1, -1, -1, + /*0x0066,0x0066,0x006c*/ 1, + /*0x0066,0x0066,0x0069*/ 0 + }; + + if (codes[0] <= MAX_CODE_VALUE && codes[0] >= MIN_CODE_VALUE && + codes[1] <= MAX_CODE_VALUE && codes[1] >= MIN_CODE_VALUE && + codes[2] <= MAX_CODE_VALUE && codes[2] >= MIN_CODE_VALUE) + { + register unsigned int key = onigenc_unicode_CaseUnfold_13_hash(codes); + + if (key <= MAX_HASH_VALUE) + { + register short s = wordlist[key]; + + if (s >= 0 && code3_equal(codes, CaseUnfold_13_Table[s].from)) + return &CaseUnfold_13_Table[s].to; + } + } + return 0; +} + +static const OnigCodePoint CaseMappingSpecials[] = { + L(1)|0x039C, + L(2)|0x0053, 0x0073, L(2)|0x0053, 0x0053, + L(2)|0x02BC, 0x004E, + L(1)|0x0053, + L(1)|0x01C5, + L(2)|0x0064, 0x017D, L(1)|0x01C4, + L(1)|0x01C8, + L(2)|0x006C, 0x004A, L(1)|0x01C7, + L(1)|0x01CB, + L(2)|0x006E, 0x004A, L(1)|0x01CA, + L(2)|0x004A, 0x030C, + L(1)|0x01F2, + L(2)|0x0064, 0x005A, L(1)|0x01F1, + L(1)|0x0399, + L(3)|0x0399, 0x0308, 0x0301, + L(3)|0x03A5, 0x0308, 0x0301, + L(1)|0x03A3, + L(1)|0x0392, + L(1)|0x0398, + L(1)|0x03A6, + L(1)|0x03A0, + L(1)|0x039A, + L(1)|0x03A1, + L(1)|0x0395, + L(2)|0x0535, 0x0582, L(2)|0x0535, 0x0552, + L(1)|0x0412, + L(1)|0x0414, + L(1)|0x041E, + L(1)|0x0421, + L(1)|0x0422, + L(1)|0x0422, + L(1)|0x042A, + L(1)|0x0462, + L(1)|0xA64A, + L(2)|0x0048, 0x0331, + L(2)|0x0054, 0x0308, + L(2)|0x0057, 0x030A, + L(2)|0x0059, 0x030A, + L(2)|0x0041, 0x02BE, + L(1)|0x1E60, + L(1)|0x00DF, + L(2)|0x03A5, 0x0313, + L(3)|0x03A5, 0x0313, 0x0300, + L(3)|0x03A5, 0x0313, 0x0301, + L(3)|0x03A5, 0x0313, 0x0342, + L(1)|0x1F88, L(2)|0x1F08, 0x0399, + L(1)|0x1F89, L(2)|0x1F09, 0x0399, + L(1)|0x1F8A, L(2)|0x1F0A, 0x0399, + L(1)|0x1F8B, L(2)|0x1F0B, 0x0399, + L(1)|0x1F8C, L(2)|0x1F0C, 0x0399, + L(1)|0x1F8D, L(2)|0x1F0D, 0x0399, + L(1)|0x1F8E, L(2)|0x1F0E, 0x0399, + L(1)|0x1F8F, L(2)|0x1F0F, 0x0399, + L(2)|0x1F00, 0x0399, L(1)|0x1F80, L(2)|0x1F08, 0x0399, + L(2)|0x1F01, 0x0399, L(1)|0x1F81, L(2)|0x1F09, 0x0399, + L(2)|0x1F02, 0x0399, L(1)|0x1F82, L(2)|0x1F0A, 0x0399, + L(2)|0x1F03, 0x0399, L(1)|0x1F83, L(2)|0x1F0B, 0x0399, + L(2)|0x1F04, 0x0399, L(1)|0x1F84, L(2)|0x1F0C, 0x0399, + L(2)|0x1F05, 0x0399, L(1)|0x1F85, L(2)|0x1F0D, 0x0399, + L(2)|0x1F06, 0x0399, L(1)|0x1F86, L(2)|0x1F0E, 0x0399, + L(2)|0x1F07, 0x0399, L(1)|0x1F87, L(2)|0x1F0F, 0x0399, + L(1)|0x1F98, L(2)|0x1F28, 0x0399, + L(1)|0x1F99, L(2)|0x1F29, 0x0399, + L(1)|0x1F9A, L(2)|0x1F2A, 0x0399, + L(1)|0x1F9B, L(2)|0x1F2B, 0x0399, + L(1)|0x1F9C, L(2)|0x1F2C, 0x0399, + L(1)|0x1F9D, L(2)|0x1F2D, 0x0399, + L(1)|0x1F9E, L(2)|0x1F2E, 0x0399, + L(1)|0x1F9F, L(2)|0x1F2F, 0x0399, + L(2)|0x1F20, 0x0399, L(1)|0x1F90, L(2)|0x1F28, 0x0399, + L(2)|0x1F21, 0x0399, L(1)|0x1F91, L(2)|0x1F29, 0x0399, + L(2)|0x1F22, 0x0399, L(1)|0x1F92, L(2)|0x1F2A, 0x0399, + L(2)|0x1F23, 0x0399, L(1)|0x1F93, L(2)|0x1F2B, 0x0399, + L(2)|0x1F24, 0x0399, L(1)|0x1F94, L(2)|0x1F2C, 0x0399, + L(2)|0x1F25, 0x0399, L(1)|0x1F95, L(2)|0x1F2D, 0x0399, + L(2)|0x1F26, 0x0399, L(1)|0x1F96, L(2)|0x1F2E, 0x0399, + L(2)|0x1F27, 0x0399, L(1)|0x1F97, L(2)|0x1F2F, 0x0399, + L(1)|0x1FA8, L(2)|0x1F68, 0x0399, + L(1)|0x1FA9, L(2)|0x1F69, 0x0399, + L(1)|0x1FAA, L(2)|0x1F6A, 0x0399, + L(1)|0x1FAB, L(2)|0x1F6B, 0x0399, + L(1)|0x1FAC, L(2)|0x1F6C, 0x0399, + L(1)|0x1FAD, L(2)|0x1F6D, 0x0399, + L(1)|0x1FAE, L(2)|0x1F6E, 0x0399, + L(1)|0x1FAF, L(2)|0x1F6F, 0x0399, + L(2)|0x1F60, 0x0399, L(1)|0x1FA0, L(2)|0x1F68, 0x0399, + L(2)|0x1F61, 0x0399, L(1)|0x1FA1, L(2)|0x1F69, 0x0399, + L(2)|0x1F62, 0x0399, L(1)|0x1FA2, L(2)|0x1F6A, 0x0399, + L(2)|0x1F63, 0x0399, L(1)|0x1FA3, L(2)|0x1F6B, 0x0399, + L(2)|0x1F64, 0x0399, L(1)|0x1FA4, L(2)|0x1F6C, 0x0399, + L(2)|0x1F65, 0x0399, L(1)|0x1FA5, L(2)|0x1F6D, 0x0399, + L(2)|0x1F66, 0x0399, L(1)|0x1FA6, L(2)|0x1F6E, 0x0399, + L(2)|0x1F67, 0x0399, L(1)|0x1FA7, L(2)|0x1F6F, 0x0399, + L(2)|0x1FBA, 0x0345, L(2)|0x1FBA, 0x0399, + L(1)|0x1FBC, L(2)|0x0391, 0x0399, + L(2)|0x0386, 0x0345, L(2)|0x0386, 0x0399, + L(2)|0x0391, 0x0342, + L(3)|0x0391, 0x0342, 0x0345, L(3)|0x0391, 0x0342, 0x0399, + L(2)|0x03B1, 0x0399, L(1)|0x1FB3, L(2)|0x0391, 0x0399, + L(1)|0x0399, + L(2)|0x1FCA, 0x0345, L(2)|0x1FCA, 0x0399, + L(1)|0x1FCC, L(2)|0x0397, 0x0399, + L(2)|0x0389, 0x0345, L(2)|0x0389, 0x0399, + L(2)|0x0397, 0x0342, + L(3)|0x0397, 0x0342, 0x0345, L(3)|0x0397, 0x0342, 0x0399, + L(2)|0x03B7, 0x0399, L(1)|0x1FC3, L(2)|0x0397, 0x0399, + L(3)|0x0399, 0x0308, 0x0300, + L(3)|0x0399, 0x0308, 0x0301, + L(2)|0x0399, 0x0342, + L(3)|0x0399, 0x0308, 0x0342, + L(3)|0x03A5, 0x0308, 0x0300, + L(3)|0x03A5, 0x0308, 0x0301, + L(2)|0x03A1, 0x0313, + L(2)|0x03A5, 0x0342, + L(3)|0x03A5, 0x0308, 0x0342, + L(2)|0x1FFA, 0x0345, L(2)|0x1FFA, 0x0399, + L(1)|0x1FFC, L(2)|0x03A9, 0x0399, + L(2)|0x038F, 0x0345, L(2)|0x038F, 0x0399, + L(2)|0x03A9, 0x0342, + L(3)|0x03A9, 0x0342, 0x0345, L(3)|0x03A9, 0x0342, 0x0399, + L(2)|0x03C9, 0x0399, L(1)|0x1FF3, L(2)|0x03A9, 0x0399, + L(2)|0x0046, 0x0066, L(2)|0x0046, 0x0046, + L(2)|0x0046, 0x0069, L(2)|0x0046, 0x0049, + L(2)|0x0046, 0x006C, L(2)|0x0046, 0x004C, + L(3)|0x0046, 0x0066, 0x0069, L(3)|0x0046, 0x0046, 0x0049, + L(3)|0x0046, 0x0066, 0x006C, L(3)|0x0046, 0x0046, 0x004C, + L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054, + L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054, + L(2)|0x0544, 0x0576, L(2)|0x0544, 0x0546, + L(2)|0x0544, 0x0565, L(2)|0x0544, 0x0535, + L(2)|0x0544, 0x056B, L(2)|0x0544, 0x053B, + L(2)|0x054E, 0x0576, L(2)|0x054E, 0x0546, + L(2)|0x0544, 0x056D, L(2)|0x0544, 0x053D, +}; diff --git a/src/fluent-bit/lib/onigmo/enc/unicode/name2ctype.h b/src/fluent-bit/lib/onigmo/enc/unicode/name2ctype.h new file mode 100644 index 000000000..3703b5a61 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/unicode/name2ctype.h @@ -0,0 +1,45681 @@ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p */ +#ifndef USE_UNICODE_PROPERTIES +/* Computed positions: -k'1,3' */ +#else /* USE_UNICODE_PROPERTIES */ +/* Computed positions: -k'1-3,5-6,12,16,$' */ +#endif /* USE_UNICODE_PROPERTIES */ + +#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-gperf@gnu.org>." +#endif + + + +/* 'NEWLINE': [[:NEWLINE:]] */ +static const OnigCodePoint CR_NEWLINE[] = { + 1, + 0x000a, 0x000a, +}; /* CR_NEWLINE */ + +/* 'Alpha': [[:Alpha:]] */ +static const OnigCodePoint CR_Alpha[] = { + 732, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0345, 0x0345, + 0x0370, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x05b0, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0610, 0x061a, + 0x0620, 0x0657, + 0x0659, 0x065f, + 0x066e, 0x06d3, + 0x06d5, 0x06dc, + 0x06e1, 0x06e8, + 0x06ed, 0x06ef, + 0x06fa, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x073f, + 0x074d, 0x07b1, + 0x07ca, 0x07ea, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x0800, 0x0817, + 0x081a, 0x082c, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c9, + 0x08d4, 0x08df, + 0x08e3, 0x08e9, + 0x08f0, 0x093b, + 0x093d, 0x094c, + 0x094e, 0x0950, + 0x0955, 0x0963, + 0x0971, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x09ce, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09f0, 0x09f1, + 0x09fc, 0x09fc, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4c, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a70, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acc, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0af9, 0x0afc, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b71, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4c, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c80, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccc, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d7a, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df3, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e46, + 0x0e4d, 0x0e4d, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ecd, 0x0ecd, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f83, + 0x0f88, 0x0f97, + 0x0f99, 0x0fbc, + 0x1000, 0x1036, + 0x1038, 0x1038, + 0x103b, 0x103f, + 0x1050, 0x108f, + 0x109a, 0x109d, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1713, + 0x171f, 0x1733, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17b3, + 0x17b6, 0x17c8, + 0x17d7, 0x17d7, + 0x17dc, 0x17dc, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x1938, + 0x1950, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x1a00, 0x1a1b, + 0x1a20, 0x1a5e, + 0x1a61, 0x1a74, + 0x1aa7, 0x1aa7, + 0x1abf, 0x1ac0, + 0x1acc, 0x1ace, + 0x1b00, 0x1b33, + 0x1b35, 0x1b43, + 0x1b45, 0x1b4c, + 0x1b80, 0x1ba9, + 0x1bac, 0x1baf, + 0x1bba, 0x1be5, + 0x1be7, 0x1bf1, + 0x1c00, 0x1c36, + 0x1c4d, 0x1c4f, + 0x1c5a, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1de7, 0x1df4, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x24b6, 0x24e9, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2dff, + 0x2e2f, 0x2e2f, + 0x3005, 0x3007, + 0x3021, 0x3029, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa61f, + 0xa62a, 0xa62b, + 0xa640, 0xa66e, + 0xa674, 0xa67b, + 0xa67f, 0xa6ef, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa805, + 0xa807, 0xa827, + 0xa840, 0xa873, + 0xa880, 0xa8c3, + 0xa8c5, 0xa8c5, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa8ff, + 0xa90a, 0xa92a, + 0xa930, 0xa952, + 0xa960, 0xa97c, + 0xa980, 0xa9b2, + 0xa9b4, 0xa9bf, + 0xa9cf, 0xa9cf, + 0xa9e0, 0xa9ef, + 0xa9fa, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa60, 0xaa76, + 0xaa7a, 0xaabe, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaef, + 0xaaf2, 0xaaf5, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabea, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d27, + 0x10e80, 0x10ea9, + 0x10eab, 0x10eac, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11000, 0x11045, + 0x11071, 0x11075, + 0x11080, 0x110b8, + 0x110c2, 0x110c2, + 0x110d0, 0x110e8, + 0x11100, 0x11132, + 0x11144, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11180, 0x111bf, + 0x111c1, 0x111c4, + 0x111ce, 0x111cf, + 0x111da, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x11234, + 0x11237, 0x11237, + 0x1123e, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112e8, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134c, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11400, 0x11441, + 0x11443, 0x11445, + 0x11447, 0x1144a, + 0x1145f, 0x11461, + 0x11480, 0x114c1, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x11580, 0x115b5, + 0x115b8, 0x115be, + 0x115d8, 0x115dd, + 0x11600, 0x1163e, + 0x11640, 0x11640, + 0x11644, 0x11644, + 0x11680, 0x116b5, + 0x116b8, 0x116b8, + 0x11700, 0x1171a, + 0x1171d, 0x1172a, + 0x11740, 0x11746, + 0x11800, 0x11838, + 0x118a0, 0x118df, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x1193c, + 0x1193f, 0x11942, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119df, + 0x119e1, 0x119e1, + 0x119e3, 0x119e4, + 0x11a00, 0x11a32, + 0x11a35, 0x11a3e, + 0x11a50, 0x11a97, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c3e, + 0x11c40, 0x11c40, + 0x11c72, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d41, + 0x11d43, 0x11d43, + 0x11d46, 0x11d47, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d96, + 0x11d98, 0x11d98, + 0x11ee0, 0x11ef6, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f40, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a70, 0x16abe, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b40, 0x16b43, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9e, 0x1bc9e, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e4d0, 0x1e4eb, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e900, 0x1e943, + 0x1e947, 0x1e947, + 0x1e94b, 0x1e94b, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Alpha */ + +/* 'Blank': [[:Blank:]] */ +static const OnigCodePoint CR_Blank[] = { + 8, + 0x0009, 0x0009, + 0x0020, 0x0020, + 0x00a0, 0x00a0, + 0x1680, 0x1680, + 0x2000, 0x200a, + 0x202f, 0x202f, + 0x205f, 0x205f, + 0x3000, 0x3000, +}; /* CR_Blank */ + +/* 'Cntrl': [[:Cntrl:]] */ +static const OnigCodePoint CR_Cntrl[] = { + 2, + 0x0000, 0x001f, + 0x007f, 0x009f, +}; /* CR_Cntrl */ + +/* 'Digit': [[:Digit:]] */ +static const OnigCodePoint CR_Digit[] = { + 64, + 0x0030, 0x0039, + 0x0660, 0x0669, + 0x06f0, 0x06f9, + 0x07c0, 0x07c9, + 0x0966, 0x096f, + 0x09e6, 0x09ef, + 0x0a66, 0x0a6f, + 0x0ae6, 0x0aef, + 0x0b66, 0x0b6f, + 0x0be6, 0x0bef, + 0x0c66, 0x0c6f, + 0x0ce6, 0x0cef, + 0x0d66, 0x0d6f, + 0x0de6, 0x0def, + 0x0e50, 0x0e59, + 0x0ed0, 0x0ed9, + 0x0f20, 0x0f29, + 0x1040, 0x1049, + 0x1090, 0x1099, + 0x17e0, 0x17e9, + 0x1810, 0x1819, + 0x1946, 0x194f, + 0x19d0, 0x19d9, + 0x1a80, 0x1a89, + 0x1a90, 0x1a99, + 0x1b50, 0x1b59, + 0x1bb0, 0x1bb9, + 0x1c40, 0x1c49, + 0x1c50, 0x1c59, + 0xa620, 0xa629, + 0xa8d0, 0xa8d9, + 0xa900, 0xa909, + 0xa9d0, 0xa9d9, + 0xa9f0, 0xa9f9, + 0xaa50, 0xaa59, + 0xabf0, 0xabf9, + 0xff10, 0xff19, + 0x104a0, 0x104a9, + 0x10d30, 0x10d39, + 0x11066, 0x1106f, + 0x110f0, 0x110f9, + 0x11136, 0x1113f, + 0x111d0, 0x111d9, + 0x112f0, 0x112f9, + 0x11450, 0x11459, + 0x114d0, 0x114d9, + 0x11650, 0x11659, + 0x116c0, 0x116c9, + 0x11730, 0x11739, + 0x118e0, 0x118e9, + 0x11950, 0x11959, + 0x11c50, 0x11c59, + 0x11d50, 0x11d59, + 0x11da0, 0x11da9, + 0x11f50, 0x11f59, + 0x16a60, 0x16a69, + 0x16ac0, 0x16ac9, + 0x16b50, 0x16b59, + 0x1d7ce, 0x1d7ff, + 0x1e140, 0x1e149, + 0x1e2f0, 0x1e2f9, + 0x1e4f0, 0x1e4f9, + 0x1e950, 0x1e959, + 0x1fbf0, 0x1fbf9, +}; /* CR_Digit */ + +/* 'Graph': [[:Graph:]] */ +static const OnigCodePoint CR_Graph[] = { + 712, + 0x0021, 0x007e, + 0x00a1, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x167f, + 0x1681, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x200b, 0x2027, + 0x202a, 0x202e, + 0x2030, 0x205e, + 0x2060, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3001, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xe000, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfdcf, + 0xfdf0, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xfffd, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f27, + 0x10f30, 0x10f59, + 0x10f70, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x110c2, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11b00, 0x11b09, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f59, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1ea, + 0x1d200, 0x1d245, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xf0000, 0xffffd, + 0x100000, 0x10fffd, +}; /* CR_Graph */ + +/* 'Lower': [[:Lower:]] */ +static const OnigCodePoint CR_Lower[] = { + 671, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00df, 0x00f6, + 0x00f8, 0x00ff, + 0x0101, 0x0101, + 0x0103, 0x0103, + 0x0105, 0x0105, + 0x0107, 0x0107, + 0x0109, 0x0109, + 0x010b, 0x010b, + 0x010d, 0x010d, + 0x010f, 0x010f, + 0x0111, 0x0111, + 0x0113, 0x0113, + 0x0115, 0x0115, + 0x0117, 0x0117, + 0x0119, 0x0119, + 0x011b, 0x011b, + 0x011d, 0x011d, + 0x011f, 0x011f, + 0x0121, 0x0121, + 0x0123, 0x0123, + 0x0125, 0x0125, + 0x0127, 0x0127, + 0x0129, 0x0129, + 0x012b, 0x012b, + 0x012d, 0x012d, + 0x012f, 0x012f, + 0x0131, 0x0131, + 0x0133, 0x0133, + 0x0135, 0x0135, + 0x0137, 0x0138, + 0x013a, 0x013a, + 0x013c, 0x013c, + 0x013e, 0x013e, + 0x0140, 0x0140, + 0x0142, 0x0142, + 0x0144, 0x0144, + 0x0146, 0x0146, + 0x0148, 0x0149, + 0x014b, 0x014b, + 0x014d, 0x014d, + 0x014f, 0x014f, + 0x0151, 0x0151, + 0x0153, 0x0153, + 0x0155, 0x0155, + 0x0157, 0x0157, + 0x0159, 0x0159, + 0x015b, 0x015b, + 0x015d, 0x015d, + 0x015f, 0x015f, + 0x0161, 0x0161, + 0x0163, 0x0163, + 0x0165, 0x0165, + 0x0167, 0x0167, + 0x0169, 0x0169, + 0x016b, 0x016b, + 0x016d, 0x016d, + 0x016f, 0x016f, + 0x0171, 0x0171, + 0x0173, 0x0173, + 0x0175, 0x0175, + 0x0177, 0x0177, + 0x017a, 0x017a, + 0x017c, 0x017c, + 0x017e, 0x0180, + 0x0183, 0x0183, + 0x0185, 0x0185, + 0x0188, 0x0188, + 0x018c, 0x018d, + 0x0192, 0x0192, + 0x0195, 0x0195, + 0x0199, 0x019b, + 0x019e, 0x019e, + 0x01a1, 0x01a1, + 0x01a3, 0x01a3, + 0x01a5, 0x01a5, + 0x01a8, 0x01a8, + 0x01aa, 0x01ab, + 0x01ad, 0x01ad, + 0x01b0, 0x01b0, + 0x01b4, 0x01b4, + 0x01b6, 0x01b6, + 0x01b9, 0x01ba, + 0x01bd, 0x01bf, + 0x01c6, 0x01c6, + 0x01c9, 0x01c9, + 0x01cc, 0x01cc, + 0x01ce, 0x01ce, + 0x01d0, 0x01d0, + 0x01d2, 0x01d2, + 0x01d4, 0x01d4, + 0x01d6, 0x01d6, + 0x01d8, 0x01d8, + 0x01da, 0x01da, + 0x01dc, 0x01dd, + 0x01df, 0x01df, + 0x01e1, 0x01e1, + 0x01e3, 0x01e3, + 0x01e5, 0x01e5, + 0x01e7, 0x01e7, + 0x01e9, 0x01e9, + 0x01eb, 0x01eb, + 0x01ed, 0x01ed, + 0x01ef, 0x01f0, + 0x01f3, 0x01f3, + 0x01f5, 0x01f5, + 0x01f9, 0x01f9, + 0x01fb, 0x01fb, + 0x01fd, 0x01fd, + 0x01ff, 0x01ff, + 0x0201, 0x0201, + 0x0203, 0x0203, + 0x0205, 0x0205, + 0x0207, 0x0207, + 0x0209, 0x0209, + 0x020b, 0x020b, + 0x020d, 0x020d, + 0x020f, 0x020f, + 0x0211, 0x0211, + 0x0213, 0x0213, + 0x0215, 0x0215, + 0x0217, 0x0217, + 0x0219, 0x0219, + 0x021b, 0x021b, + 0x021d, 0x021d, + 0x021f, 0x021f, + 0x0221, 0x0221, + 0x0223, 0x0223, + 0x0225, 0x0225, + 0x0227, 0x0227, + 0x0229, 0x0229, + 0x022b, 0x022b, + 0x022d, 0x022d, + 0x022f, 0x022f, + 0x0231, 0x0231, + 0x0233, 0x0239, + 0x023c, 0x023c, + 0x023f, 0x0240, + 0x0242, 0x0242, + 0x0247, 0x0247, + 0x0249, 0x0249, + 0x024b, 0x024b, + 0x024d, 0x024d, + 0x024f, 0x0293, + 0x0295, 0x02b8, + 0x02c0, 0x02c1, + 0x02e0, 0x02e4, + 0x0345, 0x0345, + 0x0371, 0x0371, + 0x0373, 0x0373, + 0x0377, 0x0377, + 0x037a, 0x037d, + 0x0390, 0x0390, + 0x03ac, 0x03ce, + 0x03d0, 0x03d1, + 0x03d5, 0x03d7, + 0x03d9, 0x03d9, + 0x03db, 0x03db, + 0x03dd, 0x03dd, + 0x03df, 0x03df, + 0x03e1, 0x03e1, + 0x03e3, 0x03e3, + 0x03e5, 0x03e5, + 0x03e7, 0x03e7, + 0x03e9, 0x03e9, + 0x03eb, 0x03eb, + 0x03ed, 0x03ed, + 0x03ef, 0x03f3, + 0x03f5, 0x03f5, + 0x03f8, 0x03f8, + 0x03fb, 0x03fc, + 0x0430, 0x045f, + 0x0461, 0x0461, + 0x0463, 0x0463, + 0x0465, 0x0465, + 0x0467, 0x0467, + 0x0469, 0x0469, + 0x046b, 0x046b, + 0x046d, 0x046d, + 0x046f, 0x046f, + 0x0471, 0x0471, + 0x0473, 0x0473, + 0x0475, 0x0475, + 0x0477, 0x0477, + 0x0479, 0x0479, + 0x047b, 0x047b, + 0x047d, 0x047d, + 0x047f, 0x047f, + 0x0481, 0x0481, + 0x048b, 0x048b, + 0x048d, 0x048d, + 0x048f, 0x048f, + 0x0491, 0x0491, + 0x0493, 0x0493, + 0x0495, 0x0495, + 0x0497, 0x0497, + 0x0499, 0x0499, + 0x049b, 0x049b, + 0x049d, 0x049d, + 0x049f, 0x049f, + 0x04a1, 0x04a1, + 0x04a3, 0x04a3, + 0x04a5, 0x04a5, + 0x04a7, 0x04a7, + 0x04a9, 0x04a9, + 0x04ab, 0x04ab, + 0x04ad, 0x04ad, + 0x04af, 0x04af, + 0x04b1, 0x04b1, + 0x04b3, 0x04b3, + 0x04b5, 0x04b5, + 0x04b7, 0x04b7, + 0x04b9, 0x04b9, + 0x04bb, 0x04bb, + 0x04bd, 0x04bd, + 0x04bf, 0x04bf, + 0x04c2, 0x04c2, + 0x04c4, 0x04c4, + 0x04c6, 0x04c6, + 0x04c8, 0x04c8, + 0x04ca, 0x04ca, + 0x04cc, 0x04cc, + 0x04ce, 0x04cf, + 0x04d1, 0x04d1, + 0x04d3, 0x04d3, + 0x04d5, 0x04d5, + 0x04d7, 0x04d7, + 0x04d9, 0x04d9, + 0x04db, 0x04db, + 0x04dd, 0x04dd, + 0x04df, 0x04df, + 0x04e1, 0x04e1, + 0x04e3, 0x04e3, + 0x04e5, 0x04e5, + 0x04e7, 0x04e7, + 0x04e9, 0x04e9, + 0x04eb, 0x04eb, + 0x04ed, 0x04ed, + 0x04ef, 0x04ef, + 0x04f1, 0x04f1, + 0x04f3, 0x04f3, + 0x04f5, 0x04f5, + 0x04f7, 0x04f7, + 0x04f9, 0x04f9, + 0x04fb, 0x04fb, + 0x04fd, 0x04fd, + 0x04ff, 0x04ff, + 0x0501, 0x0501, + 0x0503, 0x0503, + 0x0505, 0x0505, + 0x0507, 0x0507, + 0x0509, 0x0509, + 0x050b, 0x050b, + 0x050d, 0x050d, + 0x050f, 0x050f, + 0x0511, 0x0511, + 0x0513, 0x0513, + 0x0515, 0x0515, + 0x0517, 0x0517, + 0x0519, 0x0519, + 0x051b, 0x051b, + 0x051d, 0x051d, + 0x051f, 0x051f, + 0x0521, 0x0521, + 0x0523, 0x0523, + 0x0525, 0x0525, + 0x0527, 0x0527, + 0x0529, 0x0529, + 0x052b, 0x052b, + 0x052d, 0x052d, + 0x052f, 0x052f, + 0x0560, 0x0588, + 0x10d0, 0x10fa, + 0x10fc, 0x10ff, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1d00, 0x1dbf, + 0x1e01, 0x1e01, + 0x1e03, 0x1e03, + 0x1e05, 0x1e05, + 0x1e07, 0x1e07, + 0x1e09, 0x1e09, + 0x1e0b, 0x1e0b, + 0x1e0d, 0x1e0d, + 0x1e0f, 0x1e0f, + 0x1e11, 0x1e11, + 0x1e13, 0x1e13, + 0x1e15, 0x1e15, + 0x1e17, 0x1e17, + 0x1e19, 0x1e19, + 0x1e1b, 0x1e1b, + 0x1e1d, 0x1e1d, + 0x1e1f, 0x1e1f, + 0x1e21, 0x1e21, + 0x1e23, 0x1e23, + 0x1e25, 0x1e25, + 0x1e27, 0x1e27, + 0x1e29, 0x1e29, + 0x1e2b, 0x1e2b, + 0x1e2d, 0x1e2d, + 0x1e2f, 0x1e2f, + 0x1e31, 0x1e31, + 0x1e33, 0x1e33, + 0x1e35, 0x1e35, + 0x1e37, 0x1e37, + 0x1e39, 0x1e39, + 0x1e3b, 0x1e3b, + 0x1e3d, 0x1e3d, + 0x1e3f, 0x1e3f, + 0x1e41, 0x1e41, + 0x1e43, 0x1e43, + 0x1e45, 0x1e45, + 0x1e47, 0x1e47, + 0x1e49, 0x1e49, + 0x1e4b, 0x1e4b, + 0x1e4d, 0x1e4d, + 0x1e4f, 0x1e4f, + 0x1e51, 0x1e51, + 0x1e53, 0x1e53, + 0x1e55, 0x1e55, + 0x1e57, 0x1e57, + 0x1e59, 0x1e59, + 0x1e5b, 0x1e5b, + 0x1e5d, 0x1e5d, + 0x1e5f, 0x1e5f, + 0x1e61, 0x1e61, + 0x1e63, 0x1e63, + 0x1e65, 0x1e65, + 0x1e67, 0x1e67, + 0x1e69, 0x1e69, + 0x1e6b, 0x1e6b, + 0x1e6d, 0x1e6d, + 0x1e6f, 0x1e6f, + 0x1e71, 0x1e71, + 0x1e73, 0x1e73, + 0x1e75, 0x1e75, + 0x1e77, 0x1e77, + 0x1e79, 0x1e79, + 0x1e7b, 0x1e7b, + 0x1e7d, 0x1e7d, + 0x1e7f, 0x1e7f, + 0x1e81, 0x1e81, + 0x1e83, 0x1e83, + 0x1e85, 0x1e85, + 0x1e87, 0x1e87, + 0x1e89, 0x1e89, + 0x1e8b, 0x1e8b, + 0x1e8d, 0x1e8d, + 0x1e8f, 0x1e8f, + 0x1e91, 0x1e91, + 0x1e93, 0x1e93, + 0x1e95, 0x1e9d, + 0x1e9f, 0x1e9f, + 0x1ea1, 0x1ea1, + 0x1ea3, 0x1ea3, + 0x1ea5, 0x1ea5, + 0x1ea7, 0x1ea7, + 0x1ea9, 0x1ea9, + 0x1eab, 0x1eab, + 0x1ead, 0x1ead, + 0x1eaf, 0x1eaf, + 0x1eb1, 0x1eb1, + 0x1eb3, 0x1eb3, + 0x1eb5, 0x1eb5, + 0x1eb7, 0x1eb7, + 0x1eb9, 0x1eb9, + 0x1ebb, 0x1ebb, + 0x1ebd, 0x1ebd, + 0x1ebf, 0x1ebf, + 0x1ec1, 0x1ec1, + 0x1ec3, 0x1ec3, + 0x1ec5, 0x1ec5, + 0x1ec7, 0x1ec7, + 0x1ec9, 0x1ec9, + 0x1ecb, 0x1ecb, + 0x1ecd, 0x1ecd, + 0x1ecf, 0x1ecf, + 0x1ed1, 0x1ed1, + 0x1ed3, 0x1ed3, + 0x1ed5, 0x1ed5, + 0x1ed7, 0x1ed7, + 0x1ed9, 0x1ed9, + 0x1edb, 0x1edb, + 0x1edd, 0x1edd, + 0x1edf, 0x1edf, + 0x1ee1, 0x1ee1, + 0x1ee3, 0x1ee3, + 0x1ee5, 0x1ee5, + 0x1ee7, 0x1ee7, + 0x1ee9, 0x1ee9, + 0x1eeb, 0x1eeb, + 0x1eed, 0x1eed, + 0x1eef, 0x1eef, + 0x1ef1, 0x1ef1, + 0x1ef3, 0x1ef3, + 0x1ef5, 0x1ef5, + 0x1ef7, 0x1ef7, + 0x1ef9, 0x1ef9, + 0x1efb, 0x1efb, + 0x1efd, 0x1efd, + 0x1eff, 0x1f07, + 0x1f10, 0x1f15, + 0x1f20, 0x1f27, + 0x1f30, 0x1f37, + 0x1f40, 0x1f45, + 0x1f50, 0x1f57, + 0x1f60, 0x1f67, + 0x1f70, 0x1f7d, + 0x1f80, 0x1f87, + 0x1f90, 0x1f97, + 0x1fa0, 0x1fa7, + 0x1fb0, 0x1fb4, + 0x1fb6, 0x1fb7, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fc7, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fd7, + 0x1fe0, 0x1fe7, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ff7, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x210a, 0x210a, + 0x210e, 0x210f, + 0x2113, 0x2113, + 0x212f, 0x212f, + 0x2134, 0x2134, + 0x2139, 0x2139, + 0x213c, 0x213d, + 0x2146, 0x2149, + 0x214e, 0x214e, + 0x2170, 0x217f, + 0x2184, 0x2184, + 0x24d0, 0x24e9, + 0x2c30, 0x2c5f, + 0x2c61, 0x2c61, + 0x2c65, 0x2c66, + 0x2c68, 0x2c68, + 0x2c6a, 0x2c6a, + 0x2c6c, 0x2c6c, + 0x2c71, 0x2c71, + 0x2c73, 0x2c74, + 0x2c76, 0x2c7d, + 0x2c81, 0x2c81, + 0x2c83, 0x2c83, + 0x2c85, 0x2c85, + 0x2c87, 0x2c87, + 0x2c89, 0x2c89, + 0x2c8b, 0x2c8b, + 0x2c8d, 0x2c8d, + 0x2c8f, 0x2c8f, + 0x2c91, 0x2c91, + 0x2c93, 0x2c93, + 0x2c95, 0x2c95, + 0x2c97, 0x2c97, + 0x2c99, 0x2c99, + 0x2c9b, 0x2c9b, + 0x2c9d, 0x2c9d, + 0x2c9f, 0x2c9f, + 0x2ca1, 0x2ca1, + 0x2ca3, 0x2ca3, + 0x2ca5, 0x2ca5, + 0x2ca7, 0x2ca7, + 0x2ca9, 0x2ca9, + 0x2cab, 0x2cab, + 0x2cad, 0x2cad, + 0x2caf, 0x2caf, + 0x2cb1, 0x2cb1, + 0x2cb3, 0x2cb3, + 0x2cb5, 0x2cb5, + 0x2cb7, 0x2cb7, + 0x2cb9, 0x2cb9, + 0x2cbb, 0x2cbb, + 0x2cbd, 0x2cbd, + 0x2cbf, 0x2cbf, + 0x2cc1, 0x2cc1, + 0x2cc3, 0x2cc3, + 0x2cc5, 0x2cc5, + 0x2cc7, 0x2cc7, + 0x2cc9, 0x2cc9, + 0x2ccb, 0x2ccb, + 0x2ccd, 0x2ccd, + 0x2ccf, 0x2ccf, + 0x2cd1, 0x2cd1, + 0x2cd3, 0x2cd3, + 0x2cd5, 0x2cd5, + 0x2cd7, 0x2cd7, + 0x2cd9, 0x2cd9, + 0x2cdb, 0x2cdb, + 0x2cdd, 0x2cdd, + 0x2cdf, 0x2cdf, + 0x2ce1, 0x2ce1, + 0x2ce3, 0x2ce4, + 0x2cec, 0x2cec, + 0x2cee, 0x2cee, + 0x2cf3, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa641, 0xa641, + 0xa643, 0xa643, + 0xa645, 0xa645, + 0xa647, 0xa647, + 0xa649, 0xa649, + 0xa64b, 0xa64b, + 0xa64d, 0xa64d, + 0xa64f, 0xa64f, + 0xa651, 0xa651, + 0xa653, 0xa653, + 0xa655, 0xa655, + 0xa657, 0xa657, + 0xa659, 0xa659, + 0xa65b, 0xa65b, + 0xa65d, 0xa65d, + 0xa65f, 0xa65f, + 0xa661, 0xa661, + 0xa663, 0xa663, + 0xa665, 0xa665, + 0xa667, 0xa667, + 0xa669, 0xa669, + 0xa66b, 0xa66b, + 0xa66d, 0xa66d, + 0xa681, 0xa681, + 0xa683, 0xa683, + 0xa685, 0xa685, + 0xa687, 0xa687, + 0xa689, 0xa689, + 0xa68b, 0xa68b, + 0xa68d, 0xa68d, + 0xa68f, 0xa68f, + 0xa691, 0xa691, + 0xa693, 0xa693, + 0xa695, 0xa695, + 0xa697, 0xa697, + 0xa699, 0xa699, + 0xa69b, 0xa69d, + 0xa723, 0xa723, + 0xa725, 0xa725, + 0xa727, 0xa727, + 0xa729, 0xa729, + 0xa72b, 0xa72b, + 0xa72d, 0xa72d, + 0xa72f, 0xa731, + 0xa733, 0xa733, + 0xa735, 0xa735, + 0xa737, 0xa737, + 0xa739, 0xa739, + 0xa73b, 0xa73b, + 0xa73d, 0xa73d, + 0xa73f, 0xa73f, + 0xa741, 0xa741, + 0xa743, 0xa743, + 0xa745, 0xa745, + 0xa747, 0xa747, + 0xa749, 0xa749, + 0xa74b, 0xa74b, + 0xa74d, 0xa74d, + 0xa74f, 0xa74f, + 0xa751, 0xa751, + 0xa753, 0xa753, + 0xa755, 0xa755, + 0xa757, 0xa757, + 0xa759, 0xa759, + 0xa75b, 0xa75b, + 0xa75d, 0xa75d, + 0xa75f, 0xa75f, + 0xa761, 0xa761, + 0xa763, 0xa763, + 0xa765, 0xa765, + 0xa767, 0xa767, + 0xa769, 0xa769, + 0xa76b, 0xa76b, + 0xa76d, 0xa76d, + 0xa76f, 0xa778, + 0xa77a, 0xa77a, + 0xa77c, 0xa77c, + 0xa77f, 0xa77f, + 0xa781, 0xa781, + 0xa783, 0xa783, + 0xa785, 0xa785, + 0xa787, 0xa787, + 0xa78c, 0xa78c, + 0xa78e, 0xa78e, + 0xa791, 0xa791, + 0xa793, 0xa795, + 0xa797, 0xa797, + 0xa799, 0xa799, + 0xa79b, 0xa79b, + 0xa79d, 0xa79d, + 0xa79f, 0xa79f, + 0xa7a1, 0xa7a1, + 0xa7a3, 0xa7a3, + 0xa7a5, 0xa7a5, + 0xa7a7, 0xa7a7, + 0xa7a9, 0xa7a9, + 0xa7af, 0xa7af, + 0xa7b5, 0xa7b5, + 0xa7b7, 0xa7b7, + 0xa7b9, 0xa7b9, + 0xa7bb, 0xa7bb, + 0xa7bd, 0xa7bd, + 0xa7bf, 0xa7bf, + 0xa7c1, 0xa7c1, + 0xa7c3, 0xa7c3, + 0xa7c8, 0xa7c8, + 0xa7ca, 0xa7ca, + 0xa7d1, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d5, + 0xa7d7, 0xa7d7, + 0xa7d9, 0xa7d9, + 0xa7f2, 0xa7f4, + 0xa7f6, 0xa7f6, + 0xa7f8, 0xa7fa, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff41, 0xff5a, + 0x10428, 0x1044f, + 0x104d8, 0x104fb, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10780, 0x10780, + 0x10783, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10cc0, 0x10cf2, + 0x118c0, 0x118df, + 0x16e60, 0x16e7f, + 0x1d41a, 0x1d433, + 0x1d44e, 0x1d454, + 0x1d456, 0x1d467, + 0x1d482, 0x1d49b, + 0x1d4b6, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d4cf, + 0x1d4ea, 0x1d503, + 0x1d51e, 0x1d537, + 0x1d552, 0x1d56b, + 0x1d586, 0x1d59f, + 0x1d5ba, 0x1d5d3, + 0x1d5ee, 0x1d607, + 0x1d622, 0x1d63b, + 0x1d656, 0x1d66f, + 0x1d68a, 0x1d6a5, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6e1, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d71b, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d755, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d78f, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7c9, + 0x1d7cb, 0x1d7cb, + 0x1df00, 0x1df09, + 0x1df0b, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e922, 0x1e943, +}; /* CR_Lower */ + +/* 'Print': [[:Print:]] */ +static const OnigCodePoint CR_Print[] = { + 709, + 0x0020, 0x007e, + 0x00a0, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2027, + 0x202a, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xe000, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfdcf, + 0xfdf0, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xfffd, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f27, + 0x10f30, 0x10f59, + 0x10f70, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x110c2, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11b00, 0x11b09, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f59, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1ea, + 0x1d200, 0x1d245, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xf0000, 0xffffd, + 0x100000, 0x10fffd, +}; /* CR_Print */ + +/* 'XPosixPunct': [[:Punct:]] */ +static const OnigCodePoint CR_XPosixPunct[] = { + 186, + 0x0021, 0x002f, + 0x003a, 0x0040, + 0x005b, 0x0060, + 0x007b, 0x007e, + 0x00a1, 0x00a1, + 0x00a7, 0x00a7, + 0x00ab, 0x00ab, + 0x00b6, 0x00b7, + 0x00bb, 0x00bb, + 0x00bf, 0x00bf, + 0x037e, 0x037e, + 0x0387, 0x0387, + 0x055a, 0x055f, + 0x0589, 0x058a, + 0x05be, 0x05be, + 0x05c0, 0x05c0, + 0x05c3, 0x05c3, + 0x05c6, 0x05c6, + 0x05f3, 0x05f4, + 0x0609, 0x060a, + 0x060c, 0x060d, + 0x061b, 0x061b, + 0x061d, 0x061f, + 0x066a, 0x066d, + 0x06d4, 0x06d4, + 0x0700, 0x070d, + 0x07f7, 0x07f9, + 0x0830, 0x083e, + 0x085e, 0x085e, + 0x0964, 0x0965, + 0x0970, 0x0970, + 0x09fd, 0x09fd, + 0x0a76, 0x0a76, + 0x0af0, 0x0af0, + 0x0c77, 0x0c77, + 0x0c84, 0x0c84, + 0x0df4, 0x0df4, + 0x0e4f, 0x0e4f, + 0x0e5a, 0x0e5b, + 0x0f04, 0x0f12, + 0x0f14, 0x0f14, + 0x0f3a, 0x0f3d, + 0x0f85, 0x0f85, + 0x0fd0, 0x0fd4, + 0x0fd9, 0x0fda, + 0x104a, 0x104f, + 0x10fb, 0x10fb, + 0x1360, 0x1368, + 0x1400, 0x1400, + 0x166e, 0x166e, + 0x169b, 0x169c, + 0x16eb, 0x16ed, + 0x1735, 0x1736, + 0x17d4, 0x17d6, + 0x17d8, 0x17da, + 0x1800, 0x180a, + 0x1944, 0x1945, + 0x1a1e, 0x1a1f, + 0x1aa0, 0x1aa6, + 0x1aa8, 0x1aad, + 0x1b5a, 0x1b60, + 0x1b7d, 0x1b7e, + 0x1bfc, 0x1bff, + 0x1c3b, 0x1c3f, + 0x1c7e, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd3, 0x1cd3, + 0x2010, 0x2027, + 0x2030, 0x2043, + 0x2045, 0x2051, + 0x2053, 0x205e, + 0x207d, 0x207e, + 0x208d, 0x208e, + 0x2308, 0x230b, + 0x2329, 0x232a, + 0x2768, 0x2775, + 0x27c5, 0x27c6, + 0x27e6, 0x27ef, + 0x2983, 0x2998, + 0x29d8, 0x29db, + 0x29fc, 0x29fd, + 0x2cf9, 0x2cfc, + 0x2cfe, 0x2cff, + 0x2d70, 0x2d70, + 0x2e00, 0x2e2e, + 0x2e30, 0x2e4f, + 0x2e52, 0x2e5d, + 0x3001, 0x3003, + 0x3008, 0x3011, + 0x3014, 0x301f, + 0x3030, 0x3030, + 0x303d, 0x303d, + 0x30a0, 0x30a0, + 0x30fb, 0x30fb, + 0xa4fe, 0xa4ff, + 0xa60d, 0xa60f, + 0xa673, 0xa673, + 0xa67e, 0xa67e, + 0xa6f2, 0xa6f7, + 0xa874, 0xa877, + 0xa8ce, 0xa8cf, + 0xa8f8, 0xa8fa, + 0xa8fc, 0xa8fc, + 0xa92e, 0xa92f, + 0xa95f, 0xa95f, + 0xa9c1, 0xa9cd, + 0xa9de, 0xa9df, + 0xaa5c, 0xaa5f, + 0xaade, 0xaadf, + 0xaaf0, 0xaaf1, + 0xabeb, 0xabeb, + 0xfd3e, 0xfd3f, + 0xfe10, 0xfe19, + 0xfe30, 0xfe52, + 0xfe54, 0xfe61, + 0xfe63, 0xfe63, + 0xfe68, 0xfe68, + 0xfe6a, 0xfe6b, + 0xff01, 0xff03, + 0xff05, 0xff0a, + 0xff0c, 0xff0f, + 0xff1a, 0xff1b, + 0xff1f, 0xff20, + 0xff3b, 0xff3d, + 0xff3f, 0xff3f, + 0xff5b, 0xff5b, + 0xff5d, 0xff5d, + 0xff5f, 0xff65, + 0x10100, 0x10102, + 0x1039f, 0x1039f, + 0x103d0, 0x103d0, + 0x1056f, 0x1056f, + 0x10857, 0x10857, + 0x1091f, 0x1091f, + 0x1093f, 0x1093f, + 0x10a50, 0x10a58, + 0x10a7f, 0x10a7f, + 0x10af0, 0x10af6, + 0x10b39, 0x10b3f, + 0x10b99, 0x10b9c, + 0x10ead, 0x10ead, + 0x10f55, 0x10f59, + 0x10f86, 0x10f89, + 0x11047, 0x1104d, + 0x110bb, 0x110bc, + 0x110be, 0x110c1, + 0x11140, 0x11143, + 0x11174, 0x11175, + 0x111c5, 0x111c8, + 0x111cd, 0x111cd, + 0x111db, 0x111db, + 0x111dd, 0x111df, + 0x11238, 0x1123d, + 0x112a9, 0x112a9, + 0x1144b, 0x1144f, + 0x1145a, 0x1145b, + 0x1145d, 0x1145d, + 0x114c6, 0x114c6, + 0x115c1, 0x115d7, + 0x11641, 0x11643, + 0x11660, 0x1166c, + 0x116b9, 0x116b9, + 0x1173c, 0x1173e, + 0x1183b, 0x1183b, + 0x11944, 0x11946, + 0x119e2, 0x119e2, + 0x11a3f, 0x11a46, + 0x11a9a, 0x11a9c, + 0x11a9e, 0x11aa2, + 0x11b00, 0x11b09, + 0x11c41, 0x11c45, + 0x11c70, 0x11c71, + 0x11ef7, 0x11ef8, + 0x11f43, 0x11f4f, + 0x11fff, 0x11fff, + 0x12470, 0x12474, + 0x12ff1, 0x12ff2, + 0x16a6e, 0x16a6f, + 0x16af5, 0x16af5, + 0x16b37, 0x16b3b, + 0x16b44, 0x16b44, + 0x16e97, 0x16e9a, + 0x16fe2, 0x16fe2, + 0x1bc9f, 0x1bc9f, + 0x1da87, 0x1da8b, + 0x1e95e, 0x1e95f, +}; /* CR_XPosixPunct */ + +/* 'Space': [[:Space:]] */ +static const OnigCodePoint CR_Space[] = { + 10, + 0x0009, 0x000d, + 0x0020, 0x0020, + 0x0085, 0x0085, + 0x00a0, 0x00a0, + 0x1680, 0x1680, + 0x2000, 0x200a, + 0x2028, 0x2029, + 0x202f, 0x202f, + 0x205f, 0x205f, + 0x3000, 0x3000, +}; /* CR_Space */ + +/* 'Upper': [[:Upper:]] */ +static const OnigCodePoint CR_Upper[] = { + 651, + 0x0041, 0x005a, + 0x00c0, 0x00d6, + 0x00d8, 0x00de, + 0x0100, 0x0100, + 0x0102, 0x0102, + 0x0104, 0x0104, + 0x0106, 0x0106, + 0x0108, 0x0108, + 0x010a, 0x010a, + 0x010c, 0x010c, + 0x010e, 0x010e, + 0x0110, 0x0110, + 0x0112, 0x0112, + 0x0114, 0x0114, + 0x0116, 0x0116, + 0x0118, 0x0118, + 0x011a, 0x011a, + 0x011c, 0x011c, + 0x011e, 0x011e, + 0x0120, 0x0120, + 0x0122, 0x0122, + 0x0124, 0x0124, + 0x0126, 0x0126, + 0x0128, 0x0128, + 0x012a, 0x012a, + 0x012c, 0x012c, + 0x012e, 0x012e, + 0x0130, 0x0130, + 0x0132, 0x0132, + 0x0134, 0x0134, + 0x0136, 0x0136, + 0x0139, 0x0139, + 0x013b, 0x013b, + 0x013d, 0x013d, + 0x013f, 0x013f, + 0x0141, 0x0141, + 0x0143, 0x0143, + 0x0145, 0x0145, + 0x0147, 0x0147, + 0x014a, 0x014a, + 0x014c, 0x014c, + 0x014e, 0x014e, + 0x0150, 0x0150, + 0x0152, 0x0152, + 0x0154, 0x0154, + 0x0156, 0x0156, + 0x0158, 0x0158, + 0x015a, 0x015a, + 0x015c, 0x015c, + 0x015e, 0x015e, + 0x0160, 0x0160, + 0x0162, 0x0162, + 0x0164, 0x0164, + 0x0166, 0x0166, + 0x0168, 0x0168, + 0x016a, 0x016a, + 0x016c, 0x016c, + 0x016e, 0x016e, + 0x0170, 0x0170, + 0x0172, 0x0172, + 0x0174, 0x0174, + 0x0176, 0x0176, + 0x0178, 0x0179, + 0x017b, 0x017b, + 0x017d, 0x017d, + 0x0181, 0x0182, + 0x0184, 0x0184, + 0x0186, 0x0187, + 0x0189, 0x018b, + 0x018e, 0x0191, + 0x0193, 0x0194, + 0x0196, 0x0198, + 0x019c, 0x019d, + 0x019f, 0x01a0, + 0x01a2, 0x01a2, + 0x01a4, 0x01a4, + 0x01a6, 0x01a7, + 0x01a9, 0x01a9, + 0x01ac, 0x01ac, + 0x01ae, 0x01af, + 0x01b1, 0x01b3, + 0x01b5, 0x01b5, + 0x01b7, 0x01b8, + 0x01bc, 0x01bc, + 0x01c4, 0x01c4, + 0x01c7, 0x01c7, + 0x01ca, 0x01ca, + 0x01cd, 0x01cd, + 0x01cf, 0x01cf, + 0x01d1, 0x01d1, + 0x01d3, 0x01d3, + 0x01d5, 0x01d5, + 0x01d7, 0x01d7, + 0x01d9, 0x01d9, + 0x01db, 0x01db, + 0x01de, 0x01de, + 0x01e0, 0x01e0, + 0x01e2, 0x01e2, + 0x01e4, 0x01e4, + 0x01e6, 0x01e6, + 0x01e8, 0x01e8, + 0x01ea, 0x01ea, + 0x01ec, 0x01ec, + 0x01ee, 0x01ee, + 0x01f1, 0x01f1, + 0x01f4, 0x01f4, + 0x01f6, 0x01f8, + 0x01fa, 0x01fa, + 0x01fc, 0x01fc, + 0x01fe, 0x01fe, + 0x0200, 0x0200, + 0x0202, 0x0202, + 0x0204, 0x0204, + 0x0206, 0x0206, + 0x0208, 0x0208, + 0x020a, 0x020a, + 0x020c, 0x020c, + 0x020e, 0x020e, + 0x0210, 0x0210, + 0x0212, 0x0212, + 0x0214, 0x0214, + 0x0216, 0x0216, + 0x0218, 0x0218, + 0x021a, 0x021a, + 0x021c, 0x021c, + 0x021e, 0x021e, + 0x0220, 0x0220, + 0x0222, 0x0222, + 0x0224, 0x0224, + 0x0226, 0x0226, + 0x0228, 0x0228, + 0x022a, 0x022a, + 0x022c, 0x022c, + 0x022e, 0x022e, + 0x0230, 0x0230, + 0x0232, 0x0232, + 0x023a, 0x023b, + 0x023d, 0x023e, + 0x0241, 0x0241, + 0x0243, 0x0246, + 0x0248, 0x0248, + 0x024a, 0x024a, + 0x024c, 0x024c, + 0x024e, 0x024e, + 0x0370, 0x0370, + 0x0372, 0x0372, + 0x0376, 0x0376, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x038f, + 0x0391, 0x03a1, + 0x03a3, 0x03ab, + 0x03cf, 0x03cf, + 0x03d2, 0x03d4, + 0x03d8, 0x03d8, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03e2, + 0x03e4, 0x03e4, + 0x03e6, 0x03e6, + 0x03e8, 0x03e8, + 0x03ea, 0x03ea, + 0x03ec, 0x03ec, + 0x03ee, 0x03ee, + 0x03f4, 0x03f4, + 0x03f7, 0x03f7, + 0x03f9, 0x03fa, + 0x03fd, 0x042f, + 0x0460, 0x0460, + 0x0462, 0x0462, + 0x0464, 0x0464, + 0x0466, 0x0466, + 0x0468, 0x0468, + 0x046a, 0x046a, + 0x046c, 0x046c, + 0x046e, 0x046e, + 0x0470, 0x0470, + 0x0472, 0x0472, + 0x0474, 0x0474, + 0x0476, 0x0476, + 0x0478, 0x0478, + 0x047a, 0x047a, + 0x047c, 0x047c, + 0x047e, 0x047e, + 0x0480, 0x0480, + 0x048a, 0x048a, + 0x048c, 0x048c, + 0x048e, 0x048e, + 0x0490, 0x0490, + 0x0492, 0x0492, + 0x0494, 0x0494, + 0x0496, 0x0496, + 0x0498, 0x0498, + 0x049a, 0x049a, + 0x049c, 0x049c, + 0x049e, 0x049e, + 0x04a0, 0x04a0, + 0x04a2, 0x04a2, + 0x04a4, 0x04a4, + 0x04a6, 0x04a6, + 0x04a8, 0x04a8, + 0x04aa, 0x04aa, + 0x04ac, 0x04ac, + 0x04ae, 0x04ae, + 0x04b0, 0x04b0, + 0x04b2, 0x04b2, + 0x04b4, 0x04b4, + 0x04b6, 0x04b6, + 0x04b8, 0x04b8, + 0x04ba, 0x04ba, + 0x04bc, 0x04bc, + 0x04be, 0x04be, + 0x04c0, 0x04c1, + 0x04c3, 0x04c3, + 0x04c5, 0x04c5, + 0x04c7, 0x04c7, + 0x04c9, 0x04c9, + 0x04cb, 0x04cb, + 0x04cd, 0x04cd, + 0x04d0, 0x04d0, + 0x04d2, 0x04d2, + 0x04d4, 0x04d4, + 0x04d6, 0x04d6, + 0x04d8, 0x04d8, + 0x04da, 0x04da, + 0x04dc, 0x04dc, + 0x04de, 0x04de, + 0x04e0, 0x04e0, + 0x04e2, 0x04e2, + 0x04e4, 0x04e4, + 0x04e6, 0x04e6, + 0x04e8, 0x04e8, + 0x04ea, 0x04ea, + 0x04ec, 0x04ec, + 0x04ee, 0x04ee, + 0x04f0, 0x04f0, + 0x04f2, 0x04f2, + 0x04f4, 0x04f4, + 0x04f6, 0x04f6, + 0x04f8, 0x04f8, + 0x04fa, 0x04fa, + 0x04fc, 0x04fc, + 0x04fe, 0x04fe, + 0x0500, 0x0500, + 0x0502, 0x0502, + 0x0504, 0x0504, + 0x0506, 0x0506, + 0x0508, 0x0508, + 0x050a, 0x050a, + 0x050c, 0x050c, + 0x050e, 0x050e, + 0x0510, 0x0510, + 0x0512, 0x0512, + 0x0514, 0x0514, + 0x0516, 0x0516, + 0x0518, 0x0518, + 0x051a, 0x051a, + 0x051c, 0x051c, + 0x051e, 0x051e, + 0x0520, 0x0520, + 0x0522, 0x0522, + 0x0524, 0x0524, + 0x0526, 0x0526, + 0x0528, 0x0528, + 0x052a, 0x052a, + 0x052c, 0x052c, + 0x052e, 0x052e, + 0x0531, 0x0556, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x13a0, 0x13f5, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1e00, 0x1e00, + 0x1e02, 0x1e02, + 0x1e04, 0x1e04, + 0x1e06, 0x1e06, + 0x1e08, 0x1e08, + 0x1e0a, 0x1e0a, + 0x1e0c, 0x1e0c, + 0x1e0e, 0x1e0e, + 0x1e10, 0x1e10, + 0x1e12, 0x1e12, + 0x1e14, 0x1e14, + 0x1e16, 0x1e16, + 0x1e18, 0x1e18, + 0x1e1a, 0x1e1a, + 0x1e1c, 0x1e1c, + 0x1e1e, 0x1e1e, + 0x1e20, 0x1e20, + 0x1e22, 0x1e22, + 0x1e24, 0x1e24, + 0x1e26, 0x1e26, + 0x1e28, 0x1e28, + 0x1e2a, 0x1e2a, + 0x1e2c, 0x1e2c, + 0x1e2e, 0x1e2e, + 0x1e30, 0x1e30, + 0x1e32, 0x1e32, + 0x1e34, 0x1e34, + 0x1e36, 0x1e36, + 0x1e38, 0x1e38, + 0x1e3a, 0x1e3a, + 0x1e3c, 0x1e3c, + 0x1e3e, 0x1e3e, + 0x1e40, 0x1e40, + 0x1e42, 0x1e42, + 0x1e44, 0x1e44, + 0x1e46, 0x1e46, + 0x1e48, 0x1e48, + 0x1e4a, 0x1e4a, + 0x1e4c, 0x1e4c, + 0x1e4e, 0x1e4e, + 0x1e50, 0x1e50, + 0x1e52, 0x1e52, + 0x1e54, 0x1e54, + 0x1e56, 0x1e56, + 0x1e58, 0x1e58, + 0x1e5a, 0x1e5a, + 0x1e5c, 0x1e5c, + 0x1e5e, 0x1e5e, + 0x1e60, 0x1e60, + 0x1e62, 0x1e62, + 0x1e64, 0x1e64, + 0x1e66, 0x1e66, + 0x1e68, 0x1e68, + 0x1e6a, 0x1e6a, + 0x1e6c, 0x1e6c, + 0x1e6e, 0x1e6e, + 0x1e70, 0x1e70, + 0x1e72, 0x1e72, + 0x1e74, 0x1e74, + 0x1e76, 0x1e76, + 0x1e78, 0x1e78, + 0x1e7a, 0x1e7a, + 0x1e7c, 0x1e7c, + 0x1e7e, 0x1e7e, + 0x1e80, 0x1e80, + 0x1e82, 0x1e82, + 0x1e84, 0x1e84, + 0x1e86, 0x1e86, + 0x1e88, 0x1e88, + 0x1e8a, 0x1e8a, + 0x1e8c, 0x1e8c, + 0x1e8e, 0x1e8e, + 0x1e90, 0x1e90, + 0x1e92, 0x1e92, + 0x1e94, 0x1e94, + 0x1e9e, 0x1e9e, + 0x1ea0, 0x1ea0, + 0x1ea2, 0x1ea2, + 0x1ea4, 0x1ea4, + 0x1ea6, 0x1ea6, + 0x1ea8, 0x1ea8, + 0x1eaa, 0x1eaa, + 0x1eac, 0x1eac, + 0x1eae, 0x1eae, + 0x1eb0, 0x1eb0, + 0x1eb2, 0x1eb2, + 0x1eb4, 0x1eb4, + 0x1eb6, 0x1eb6, + 0x1eb8, 0x1eb8, + 0x1eba, 0x1eba, + 0x1ebc, 0x1ebc, + 0x1ebe, 0x1ebe, + 0x1ec0, 0x1ec0, + 0x1ec2, 0x1ec2, + 0x1ec4, 0x1ec4, + 0x1ec6, 0x1ec6, + 0x1ec8, 0x1ec8, + 0x1eca, 0x1eca, + 0x1ecc, 0x1ecc, + 0x1ece, 0x1ece, + 0x1ed0, 0x1ed0, + 0x1ed2, 0x1ed2, + 0x1ed4, 0x1ed4, + 0x1ed6, 0x1ed6, + 0x1ed8, 0x1ed8, + 0x1eda, 0x1eda, + 0x1edc, 0x1edc, + 0x1ede, 0x1ede, + 0x1ee0, 0x1ee0, + 0x1ee2, 0x1ee2, + 0x1ee4, 0x1ee4, + 0x1ee6, 0x1ee6, + 0x1ee8, 0x1ee8, + 0x1eea, 0x1eea, + 0x1eec, 0x1eec, + 0x1eee, 0x1eee, + 0x1ef0, 0x1ef0, + 0x1ef2, 0x1ef2, + 0x1ef4, 0x1ef4, + 0x1ef6, 0x1ef6, + 0x1ef8, 0x1ef8, + 0x1efa, 0x1efa, + 0x1efc, 0x1efc, + 0x1efe, 0x1efe, + 0x1f08, 0x1f0f, + 0x1f18, 0x1f1d, + 0x1f28, 0x1f2f, + 0x1f38, 0x1f3f, + 0x1f48, 0x1f4d, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f5f, + 0x1f68, 0x1f6f, + 0x1fb8, 0x1fbb, + 0x1fc8, 0x1fcb, + 0x1fd8, 0x1fdb, + 0x1fe8, 0x1fec, + 0x1ff8, 0x1ffb, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210b, 0x210d, + 0x2110, 0x2112, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x2130, 0x2133, + 0x213e, 0x213f, + 0x2145, 0x2145, + 0x2160, 0x216f, + 0x2183, 0x2183, + 0x24b6, 0x24cf, + 0x2c00, 0x2c2f, + 0x2c60, 0x2c60, + 0x2c62, 0x2c64, + 0x2c67, 0x2c67, + 0x2c69, 0x2c69, + 0x2c6b, 0x2c6b, + 0x2c6d, 0x2c70, + 0x2c72, 0x2c72, + 0x2c75, 0x2c75, + 0x2c7e, 0x2c80, + 0x2c82, 0x2c82, + 0x2c84, 0x2c84, + 0x2c86, 0x2c86, + 0x2c88, 0x2c88, + 0x2c8a, 0x2c8a, + 0x2c8c, 0x2c8c, + 0x2c8e, 0x2c8e, + 0x2c90, 0x2c90, + 0x2c92, 0x2c92, + 0x2c94, 0x2c94, + 0x2c96, 0x2c96, + 0x2c98, 0x2c98, + 0x2c9a, 0x2c9a, + 0x2c9c, 0x2c9c, + 0x2c9e, 0x2c9e, + 0x2ca0, 0x2ca0, + 0x2ca2, 0x2ca2, + 0x2ca4, 0x2ca4, + 0x2ca6, 0x2ca6, + 0x2ca8, 0x2ca8, + 0x2caa, 0x2caa, + 0x2cac, 0x2cac, + 0x2cae, 0x2cae, + 0x2cb0, 0x2cb0, + 0x2cb2, 0x2cb2, + 0x2cb4, 0x2cb4, + 0x2cb6, 0x2cb6, + 0x2cb8, 0x2cb8, + 0x2cba, 0x2cba, + 0x2cbc, 0x2cbc, + 0x2cbe, 0x2cbe, + 0x2cc0, 0x2cc0, + 0x2cc2, 0x2cc2, + 0x2cc4, 0x2cc4, + 0x2cc6, 0x2cc6, + 0x2cc8, 0x2cc8, + 0x2cca, 0x2cca, + 0x2ccc, 0x2ccc, + 0x2cce, 0x2cce, + 0x2cd0, 0x2cd0, + 0x2cd2, 0x2cd2, + 0x2cd4, 0x2cd4, + 0x2cd6, 0x2cd6, + 0x2cd8, 0x2cd8, + 0x2cda, 0x2cda, + 0x2cdc, 0x2cdc, + 0x2cde, 0x2cde, + 0x2ce0, 0x2ce0, + 0x2ce2, 0x2ce2, + 0x2ceb, 0x2ceb, + 0x2ced, 0x2ced, + 0x2cf2, 0x2cf2, + 0xa640, 0xa640, + 0xa642, 0xa642, + 0xa644, 0xa644, + 0xa646, 0xa646, + 0xa648, 0xa648, + 0xa64a, 0xa64a, + 0xa64c, 0xa64c, + 0xa64e, 0xa64e, + 0xa650, 0xa650, + 0xa652, 0xa652, + 0xa654, 0xa654, + 0xa656, 0xa656, + 0xa658, 0xa658, + 0xa65a, 0xa65a, + 0xa65c, 0xa65c, + 0xa65e, 0xa65e, + 0xa660, 0xa660, + 0xa662, 0xa662, + 0xa664, 0xa664, + 0xa666, 0xa666, + 0xa668, 0xa668, + 0xa66a, 0xa66a, + 0xa66c, 0xa66c, + 0xa680, 0xa680, + 0xa682, 0xa682, + 0xa684, 0xa684, + 0xa686, 0xa686, + 0xa688, 0xa688, + 0xa68a, 0xa68a, + 0xa68c, 0xa68c, + 0xa68e, 0xa68e, + 0xa690, 0xa690, + 0xa692, 0xa692, + 0xa694, 0xa694, + 0xa696, 0xa696, + 0xa698, 0xa698, + 0xa69a, 0xa69a, + 0xa722, 0xa722, + 0xa724, 0xa724, + 0xa726, 0xa726, + 0xa728, 0xa728, + 0xa72a, 0xa72a, + 0xa72c, 0xa72c, + 0xa72e, 0xa72e, + 0xa732, 0xa732, + 0xa734, 0xa734, + 0xa736, 0xa736, + 0xa738, 0xa738, + 0xa73a, 0xa73a, + 0xa73c, 0xa73c, + 0xa73e, 0xa73e, + 0xa740, 0xa740, + 0xa742, 0xa742, + 0xa744, 0xa744, + 0xa746, 0xa746, + 0xa748, 0xa748, + 0xa74a, 0xa74a, + 0xa74c, 0xa74c, + 0xa74e, 0xa74e, + 0xa750, 0xa750, + 0xa752, 0xa752, + 0xa754, 0xa754, + 0xa756, 0xa756, + 0xa758, 0xa758, + 0xa75a, 0xa75a, + 0xa75c, 0xa75c, + 0xa75e, 0xa75e, + 0xa760, 0xa760, + 0xa762, 0xa762, + 0xa764, 0xa764, + 0xa766, 0xa766, + 0xa768, 0xa768, + 0xa76a, 0xa76a, + 0xa76c, 0xa76c, + 0xa76e, 0xa76e, + 0xa779, 0xa779, + 0xa77b, 0xa77b, + 0xa77d, 0xa77e, + 0xa780, 0xa780, + 0xa782, 0xa782, + 0xa784, 0xa784, + 0xa786, 0xa786, + 0xa78b, 0xa78b, + 0xa78d, 0xa78d, + 0xa790, 0xa790, + 0xa792, 0xa792, + 0xa796, 0xa796, + 0xa798, 0xa798, + 0xa79a, 0xa79a, + 0xa79c, 0xa79c, + 0xa79e, 0xa79e, + 0xa7a0, 0xa7a0, + 0xa7a2, 0xa7a2, + 0xa7a4, 0xa7a4, + 0xa7a6, 0xa7a6, + 0xa7a8, 0xa7a8, + 0xa7aa, 0xa7ae, + 0xa7b0, 0xa7b4, + 0xa7b6, 0xa7b6, + 0xa7b8, 0xa7b8, + 0xa7ba, 0xa7ba, + 0xa7bc, 0xa7bc, + 0xa7be, 0xa7be, + 0xa7c0, 0xa7c0, + 0xa7c2, 0xa7c2, + 0xa7c4, 0xa7c7, + 0xa7c9, 0xa7c9, + 0xa7d0, 0xa7d0, + 0xa7d6, 0xa7d6, + 0xa7d8, 0xa7d8, + 0xa7f5, 0xa7f5, + 0xff21, 0xff3a, + 0x10400, 0x10427, + 0x104b0, 0x104d3, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10c80, 0x10cb2, + 0x118a0, 0x118bf, + 0x16e40, 0x16e5f, + 0x1d400, 0x1d419, + 0x1d434, 0x1d44d, + 0x1d468, 0x1d481, + 0x1d49c, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b5, + 0x1d4d0, 0x1d4e9, + 0x1d504, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d538, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d56c, 0x1d585, + 0x1d5a0, 0x1d5b9, + 0x1d5d4, 0x1d5ed, + 0x1d608, 0x1d621, + 0x1d63c, 0x1d655, + 0x1d670, 0x1d689, + 0x1d6a8, 0x1d6c0, + 0x1d6e2, 0x1d6fa, + 0x1d71c, 0x1d734, + 0x1d756, 0x1d76e, + 0x1d790, 0x1d7a8, + 0x1d7ca, 0x1d7ca, + 0x1e900, 0x1e921, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, +}; /* CR_Upper */ + +/* 'XDigit': [[:XDigit:]] */ +static const OnigCodePoint CR_XDigit[] = { + 3, + 0x0030, 0x0039, + 0x0041, 0x0046, + 0x0061, 0x0066, +}; /* CR_XDigit */ + +/* 'Word': [[:Word:]] */ +static const OnigCodePoint CR_Word[] = { + 770, + 0x0030, 0x0039, + 0x0041, 0x005a, + 0x005f, 0x005f, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0300, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x0483, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0610, 0x061a, + 0x0620, 0x0669, + 0x066e, 0x06d3, + 0x06d5, 0x06dc, + 0x06df, 0x06e8, + 0x06ea, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07f5, + 0x07fa, 0x07fa, + 0x07fd, 0x07fd, + 0x0800, 0x082d, + 0x0840, 0x085b, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x0898, 0x08e1, + 0x08e3, 0x0963, + 0x0966, 0x096f, + 0x0971, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09f1, + 0x09fc, 0x09fc, + 0x09fe, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b6f, + 0x0b71, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bef, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c80, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d54, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d66, 0x0d6f, + 0x0d7a, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df3, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e4e, + 0x0e50, 0x0e59, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f18, 0x0f19, + 0x0f20, 0x0f29, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f3e, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f84, + 0x0f86, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x1000, 0x1049, + 0x1050, 0x109d, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x135f, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1734, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17d3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dd, + 0x17e0, 0x17e9, + 0x180b, 0x180d, + 0x180f, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1946, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19d9, + 0x1a00, 0x1a1b, + 0x1a20, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa7, 0x1aa7, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b59, + 0x1b6b, 0x1b73, + 0x1b80, 0x1bf3, + 0x1c00, 0x1c37, + 0x1c40, 0x1c49, + 0x1c4d, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x203f, 0x2040, + 0x2054, 0x2054, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x20d0, 0x20f0, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x24b6, 0x24e9, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2dff, + 0x2e2f, 0x2e2f, + 0x3005, 0x3007, + 0x3021, 0x302f, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x3099, 0x309a, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa62b, + 0xa640, 0xa672, + 0xa674, 0xa67d, + 0xa67f, 0xa6f1, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa827, + 0xa82c, 0xa82c, + 0xa840, 0xa873, + 0xa880, 0xa8c5, + 0xa8d0, 0xa8d9, + 0xa8e0, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa92d, + 0xa930, 0xa953, + 0xa960, 0xa97c, + 0xa980, 0xa9c0, + 0xa9cf, 0xa9d9, + 0xa9e0, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa60, 0xaa76, + 0xaa7a, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaef, + 0xaaf2, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabea, + 0xabec, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0xfe33, 0xfe34, + 0xfe4d, 0xfe4f, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff10, 0xff19, + 0xff21, 0xff3a, + 0xff3f, 0xff3f, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x101fd, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102e0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae6, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d27, + 0x10d30, 0x10d39, + 0x10e80, 0x10ea9, + 0x10eab, 0x10eac, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f50, + 0x10f70, 0x10f85, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11000, 0x11046, + 0x11066, 0x11075, + 0x1107f, 0x110ba, + 0x110c2, 0x110c2, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x1113f, + 0x11144, 0x11147, + 0x11150, 0x11173, + 0x11176, 0x11176, + 0x11180, 0x111c4, + 0x111c9, 0x111cc, + 0x111ce, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x11237, + 0x1123e, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1144a, + 0x11450, 0x11459, + 0x1145e, 0x11461, + 0x11480, 0x114c5, + 0x114c7, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115c0, + 0x115d8, 0x115dd, + 0x11600, 0x11640, + 0x11644, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11739, + 0x11740, 0x11746, + 0x11800, 0x1183a, + 0x118a0, 0x118e9, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11943, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e1, + 0x119e3, 0x119e4, + 0x11a00, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a50, 0x11a99, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c40, + 0x11c50, 0x11c59, + 0x11c72, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef6, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f42, + 0x11f50, 0x11f59, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13440, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a70, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af4, + 0x16b00, 0x16b36, + 0x16b40, 0x16b43, + 0x16b50, 0x16b59, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d169, + 0x1d16d, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8d0, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0100, 0xe01ef, +}; /* CR_Word */ + +/* 'Alnum': [[:Alnum:]] */ +static const OnigCodePoint CR_Alnum[] = { + 772, + 0x0030, 0x0039, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0345, 0x0345, + 0x0370, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x05b0, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0610, 0x061a, + 0x0620, 0x0657, + 0x0659, 0x0669, + 0x066e, 0x06d3, + 0x06d5, 0x06dc, + 0x06e1, 0x06e8, + 0x06ed, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x073f, + 0x074d, 0x07b1, + 0x07c0, 0x07ea, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x0800, 0x0817, + 0x081a, 0x082c, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c9, + 0x08d4, 0x08df, + 0x08e3, 0x08e9, + 0x08f0, 0x093b, + 0x093d, 0x094c, + 0x094e, 0x0950, + 0x0955, 0x0963, + 0x0966, 0x096f, + 0x0971, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x09ce, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09f1, + 0x09fc, 0x09fc, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4c, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acc, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af9, 0x0afc, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b6f, + 0x0b71, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bef, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4c, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c80, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccc, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d66, 0x0d6f, + 0x0d7a, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df3, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e46, + 0x0e4d, 0x0e4d, + 0x0e50, 0x0e59, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ecd, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f20, 0x0f29, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f83, + 0x0f88, 0x0f97, + 0x0f99, 0x0fbc, + 0x1000, 0x1036, + 0x1038, 0x1038, + 0x103b, 0x1049, + 0x1050, 0x109d, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1713, + 0x171f, 0x1733, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17b3, + 0x17b6, 0x17c8, + 0x17d7, 0x17d7, + 0x17dc, 0x17dc, + 0x17e0, 0x17e9, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x1938, + 0x1946, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19d9, + 0x1a00, 0x1a1b, + 0x1a20, 0x1a5e, + 0x1a61, 0x1a74, + 0x1a80, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa7, 0x1aa7, + 0x1abf, 0x1ac0, + 0x1acc, 0x1ace, + 0x1b00, 0x1b33, + 0x1b35, 0x1b43, + 0x1b45, 0x1b4c, + 0x1b50, 0x1b59, + 0x1b80, 0x1ba9, + 0x1bac, 0x1be5, + 0x1be7, 0x1bf1, + 0x1c00, 0x1c36, + 0x1c40, 0x1c49, + 0x1c4d, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1de7, 0x1df4, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x24b6, 0x24e9, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2dff, + 0x2e2f, 0x2e2f, + 0x3005, 0x3007, + 0x3021, 0x3029, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa62b, + 0xa640, 0xa66e, + 0xa674, 0xa67b, + 0xa67f, 0xa6ef, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa805, + 0xa807, 0xa827, + 0xa840, 0xa873, + 0xa880, 0xa8c3, + 0xa8c5, 0xa8c5, + 0xa8d0, 0xa8d9, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa92a, + 0xa930, 0xa952, + 0xa960, 0xa97c, + 0xa980, 0xa9b2, + 0xa9b4, 0xa9bf, + 0xa9cf, 0xa9d9, + 0xa9e0, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa60, 0xaa76, + 0xaa7a, 0xaabe, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaef, + 0xaaf2, 0xaaf5, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabea, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff10, 0xff19, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d27, + 0x10d30, 0x10d39, + 0x10e80, 0x10ea9, + 0x10eab, 0x10eac, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11000, 0x11045, + 0x11066, 0x1106f, + 0x11071, 0x11075, + 0x11080, 0x110b8, + 0x110c2, 0x110c2, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11132, + 0x11136, 0x1113f, + 0x11144, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11180, 0x111bf, + 0x111c1, 0x111c4, + 0x111ce, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x11234, + 0x11237, 0x11237, + 0x1123e, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112e8, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134c, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11400, 0x11441, + 0x11443, 0x11445, + 0x11447, 0x1144a, + 0x11450, 0x11459, + 0x1145f, 0x11461, + 0x11480, 0x114c1, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115be, + 0x115d8, 0x115dd, + 0x11600, 0x1163e, + 0x11640, 0x11640, + 0x11644, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b5, + 0x116b8, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172a, + 0x11730, 0x11739, + 0x11740, 0x11746, + 0x11800, 0x11838, + 0x118a0, 0x118e9, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x1193c, + 0x1193f, 0x11942, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119df, + 0x119e1, 0x119e1, + 0x119e3, 0x119e4, + 0x11a00, 0x11a32, + 0x11a35, 0x11a3e, + 0x11a50, 0x11a97, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c3e, + 0x11c40, 0x11c40, + 0x11c50, 0x11c59, + 0x11c72, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d41, + 0x11d43, 0x11d43, + 0x11d46, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d96, + 0x11d98, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef6, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f40, + 0x11f50, 0x11f59, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a70, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b40, 0x16b43, + 0x16b50, 0x16b59, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9e, 0x1bc9e, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e2f0, 0x1e2f9, + 0x1e4d0, 0x1e4eb, + 0x1e4f0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e900, 0x1e943, + 0x1e947, 0x1e947, + 0x1e94b, 0x1e94b, + 0x1e950, 0x1e959, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Alnum */ + +/* 'ASCII': [[:ASCII:]] */ +static const OnigCodePoint CR_ASCII[] = { + 1, + 0x0000, 0x007f, +}; /* CR_ASCII */ + +/* 'Punct' */ +static const OnigCodePoint CR_Punct[] = { + 191, + 0x0021, 0x0023, + 0x0025, 0x002a, + 0x002c, 0x002f, + 0x003a, 0x003b, + 0x003f, 0x0040, + 0x005b, 0x005d, + 0x005f, 0x005f, + 0x007b, 0x007b, + 0x007d, 0x007d, + 0x00a1, 0x00a1, + 0x00a7, 0x00a7, + 0x00ab, 0x00ab, + 0x00b6, 0x00b7, + 0x00bb, 0x00bb, + 0x00bf, 0x00bf, + 0x037e, 0x037e, + 0x0387, 0x0387, + 0x055a, 0x055f, + 0x0589, 0x058a, + 0x05be, 0x05be, + 0x05c0, 0x05c0, + 0x05c3, 0x05c3, + 0x05c6, 0x05c6, + 0x05f3, 0x05f4, + 0x0609, 0x060a, + 0x060c, 0x060d, + 0x061b, 0x061b, + 0x061d, 0x061f, + 0x066a, 0x066d, + 0x06d4, 0x06d4, + 0x0700, 0x070d, + 0x07f7, 0x07f9, + 0x0830, 0x083e, + 0x085e, 0x085e, + 0x0964, 0x0965, + 0x0970, 0x0970, + 0x09fd, 0x09fd, + 0x0a76, 0x0a76, + 0x0af0, 0x0af0, + 0x0c77, 0x0c77, + 0x0c84, 0x0c84, + 0x0df4, 0x0df4, + 0x0e4f, 0x0e4f, + 0x0e5a, 0x0e5b, + 0x0f04, 0x0f12, + 0x0f14, 0x0f14, + 0x0f3a, 0x0f3d, + 0x0f85, 0x0f85, + 0x0fd0, 0x0fd4, + 0x0fd9, 0x0fda, + 0x104a, 0x104f, + 0x10fb, 0x10fb, + 0x1360, 0x1368, + 0x1400, 0x1400, + 0x166e, 0x166e, + 0x169b, 0x169c, + 0x16eb, 0x16ed, + 0x1735, 0x1736, + 0x17d4, 0x17d6, + 0x17d8, 0x17da, + 0x1800, 0x180a, + 0x1944, 0x1945, + 0x1a1e, 0x1a1f, + 0x1aa0, 0x1aa6, + 0x1aa8, 0x1aad, + 0x1b5a, 0x1b60, + 0x1b7d, 0x1b7e, + 0x1bfc, 0x1bff, + 0x1c3b, 0x1c3f, + 0x1c7e, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd3, 0x1cd3, + 0x2010, 0x2027, + 0x2030, 0x2043, + 0x2045, 0x2051, + 0x2053, 0x205e, + 0x207d, 0x207e, + 0x208d, 0x208e, + 0x2308, 0x230b, + 0x2329, 0x232a, + 0x2768, 0x2775, + 0x27c5, 0x27c6, + 0x27e6, 0x27ef, + 0x2983, 0x2998, + 0x29d8, 0x29db, + 0x29fc, 0x29fd, + 0x2cf9, 0x2cfc, + 0x2cfe, 0x2cff, + 0x2d70, 0x2d70, + 0x2e00, 0x2e2e, + 0x2e30, 0x2e4f, + 0x2e52, 0x2e5d, + 0x3001, 0x3003, + 0x3008, 0x3011, + 0x3014, 0x301f, + 0x3030, 0x3030, + 0x303d, 0x303d, + 0x30a0, 0x30a0, + 0x30fb, 0x30fb, + 0xa4fe, 0xa4ff, + 0xa60d, 0xa60f, + 0xa673, 0xa673, + 0xa67e, 0xa67e, + 0xa6f2, 0xa6f7, + 0xa874, 0xa877, + 0xa8ce, 0xa8cf, + 0xa8f8, 0xa8fa, + 0xa8fc, 0xa8fc, + 0xa92e, 0xa92f, + 0xa95f, 0xa95f, + 0xa9c1, 0xa9cd, + 0xa9de, 0xa9df, + 0xaa5c, 0xaa5f, + 0xaade, 0xaadf, + 0xaaf0, 0xaaf1, + 0xabeb, 0xabeb, + 0xfd3e, 0xfd3f, + 0xfe10, 0xfe19, + 0xfe30, 0xfe52, + 0xfe54, 0xfe61, + 0xfe63, 0xfe63, + 0xfe68, 0xfe68, + 0xfe6a, 0xfe6b, + 0xff01, 0xff03, + 0xff05, 0xff0a, + 0xff0c, 0xff0f, + 0xff1a, 0xff1b, + 0xff1f, 0xff20, + 0xff3b, 0xff3d, + 0xff3f, 0xff3f, + 0xff5b, 0xff5b, + 0xff5d, 0xff5d, + 0xff5f, 0xff65, + 0x10100, 0x10102, + 0x1039f, 0x1039f, + 0x103d0, 0x103d0, + 0x1056f, 0x1056f, + 0x10857, 0x10857, + 0x1091f, 0x1091f, + 0x1093f, 0x1093f, + 0x10a50, 0x10a58, + 0x10a7f, 0x10a7f, + 0x10af0, 0x10af6, + 0x10b39, 0x10b3f, + 0x10b99, 0x10b9c, + 0x10ead, 0x10ead, + 0x10f55, 0x10f59, + 0x10f86, 0x10f89, + 0x11047, 0x1104d, + 0x110bb, 0x110bc, + 0x110be, 0x110c1, + 0x11140, 0x11143, + 0x11174, 0x11175, + 0x111c5, 0x111c8, + 0x111cd, 0x111cd, + 0x111db, 0x111db, + 0x111dd, 0x111df, + 0x11238, 0x1123d, + 0x112a9, 0x112a9, + 0x1144b, 0x1144f, + 0x1145a, 0x1145b, + 0x1145d, 0x1145d, + 0x114c6, 0x114c6, + 0x115c1, 0x115d7, + 0x11641, 0x11643, + 0x11660, 0x1166c, + 0x116b9, 0x116b9, + 0x1173c, 0x1173e, + 0x1183b, 0x1183b, + 0x11944, 0x11946, + 0x119e2, 0x119e2, + 0x11a3f, 0x11a46, + 0x11a9a, 0x11a9c, + 0x11a9e, 0x11aa2, + 0x11b00, 0x11b09, + 0x11c41, 0x11c45, + 0x11c70, 0x11c71, + 0x11ef7, 0x11ef8, + 0x11f43, 0x11f4f, + 0x11fff, 0x11fff, + 0x12470, 0x12474, + 0x12ff1, 0x12ff2, + 0x16a6e, 0x16a6f, + 0x16af5, 0x16af5, + 0x16b37, 0x16b3b, + 0x16b44, 0x16b44, + 0x16e97, 0x16e9a, + 0x16fe2, 0x16fe2, + 0x1bc9f, 0x1bc9f, + 0x1da87, 0x1da8b, + 0x1e95e, 0x1e95f, +}; /* CR_Punct */ + +#ifdef USE_UNICODE_PROPERTIES +/* 'Any': - */ +static const OnigCodePoint CR_Any[] = { + 1, + 0x0000, 0x10ffff, +}; /* CR_Any */ + +/* 'Assigned': - */ +static const OnigCodePoint CR_Assigned[] = { + 707, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfdcf, + 0xfdf0, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xfffd, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f27, + 0x10f30, 0x10f59, + 0x10f70, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x110c2, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11b00, 0x11b09, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f59, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1ea, + 0x1d200, 0x1d245, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xf0000, 0xffffd, + 0x100000, 0x10fffd, +}; /* CR_Assigned */ + +/* 'C': Major Category */ +static const OnigCodePoint CR_C[] = { + 712, + 0x0000, 0x001f, + 0x007f, 0x009f, + 0x00ad, 0x00ad, + 0x0378, 0x0379, + 0x0380, 0x0383, + 0x038b, 0x038b, + 0x038d, 0x038d, + 0x03a2, 0x03a2, + 0x0530, 0x0530, + 0x0557, 0x0558, + 0x058b, 0x058c, + 0x0590, 0x0590, + 0x05c8, 0x05cf, + 0x05eb, 0x05ee, + 0x05f5, 0x0605, + 0x061c, 0x061c, + 0x06dd, 0x06dd, + 0x070e, 0x070f, + 0x074b, 0x074c, + 0x07b2, 0x07bf, + 0x07fb, 0x07fc, + 0x082e, 0x082f, + 0x083f, 0x083f, + 0x085c, 0x085d, + 0x085f, 0x085f, + 0x086b, 0x086f, + 0x088f, 0x0897, + 0x08e2, 0x08e2, + 0x0984, 0x0984, + 0x098d, 0x098e, + 0x0991, 0x0992, + 0x09a9, 0x09a9, + 0x09b1, 0x09b1, + 0x09b3, 0x09b5, + 0x09ba, 0x09bb, + 0x09c5, 0x09c6, + 0x09c9, 0x09ca, + 0x09cf, 0x09d6, + 0x09d8, 0x09db, + 0x09de, 0x09de, + 0x09e4, 0x09e5, + 0x09ff, 0x0a00, + 0x0a04, 0x0a04, + 0x0a0b, 0x0a0e, + 0x0a11, 0x0a12, + 0x0a29, 0x0a29, + 0x0a31, 0x0a31, + 0x0a34, 0x0a34, + 0x0a37, 0x0a37, + 0x0a3a, 0x0a3b, + 0x0a3d, 0x0a3d, + 0x0a43, 0x0a46, + 0x0a49, 0x0a4a, + 0x0a4e, 0x0a50, + 0x0a52, 0x0a58, + 0x0a5d, 0x0a5d, + 0x0a5f, 0x0a65, + 0x0a77, 0x0a80, + 0x0a84, 0x0a84, + 0x0a8e, 0x0a8e, + 0x0a92, 0x0a92, + 0x0aa9, 0x0aa9, + 0x0ab1, 0x0ab1, + 0x0ab4, 0x0ab4, + 0x0aba, 0x0abb, + 0x0ac6, 0x0ac6, + 0x0aca, 0x0aca, + 0x0ace, 0x0acf, + 0x0ad1, 0x0adf, + 0x0ae4, 0x0ae5, + 0x0af2, 0x0af8, + 0x0b00, 0x0b00, + 0x0b04, 0x0b04, + 0x0b0d, 0x0b0e, + 0x0b11, 0x0b12, + 0x0b29, 0x0b29, + 0x0b31, 0x0b31, + 0x0b34, 0x0b34, + 0x0b3a, 0x0b3b, + 0x0b45, 0x0b46, + 0x0b49, 0x0b4a, + 0x0b4e, 0x0b54, + 0x0b58, 0x0b5b, + 0x0b5e, 0x0b5e, + 0x0b64, 0x0b65, + 0x0b78, 0x0b81, + 0x0b84, 0x0b84, + 0x0b8b, 0x0b8d, + 0x0b91, 0x0b91, + 0x0b96, 0x0b98, + 0x0b9b, 0x0b9b, + 0x0b9d, 0x0b9d, + 0x0ba0, 0x0ba2, + 0x0ba5, 0x0ba7, + 0x0bab, 0x0bad, + 0x0bba, 0x0bbd, + 0x0bc3, 0x0bc5, + 0x0bc9, 0x0bc9, + 0x0bce, 0x0bcf, + 0x0bd1, 0x0bd6, + 0x0bd8, 0x0be5, + 0x0bfb, 0x0bff, + 0x0c0d, 0x0c0d, + 0x0c11, 0x0c11, + 0x0c29, 0x0c29, + 0x0c3a, 0x0c3b, + 0x0c45, 0x0c45, + 0x0c49, 0x0c49, + 0x0c4e, 0x0c54, + 0x0c57, 0x0c57, + 0x0c5b, 0x0c5c, + 0x0c5e, 0x0c5f, + 0x0c64, 0x0c65, + 0x0c70, 0x0c76, + 0x0c8d, 0x0c8d, + 0x0c91, 0x0c91, + 0x0ca9, 0x0ca9, + 0x0cb4, 0x0cb4, + 0x0cba, 0x0cbb, + 0x0cc5, 0x0cc5, + 0x0cc9, 0x0cc9, + 0x0cce, 0x0cd4, + 0x0cd7, 0x0cdc, + 0x0cdf, 0x0cdf, + 0x0ce4, 0x0ce5, + 0x0cf0, 0x0cf0, + 0x0cf4, 0x0cff, + 0x0d0d, 0x0d0d, + 0x0d11, 0x0d11, + 0x0d45, 0x0d45, + 0x0d49, 0x0d49, + 0x0d50, 0x0d53, + 0x0d64, 0x0d65, + 0x0d80, 0x0d80, + 0x0d84, 0x0d84, + 0x0d97, 0x0d99, + 0x0db2, 0x0db2, + 0x0dbc, 0x0dbc, + 0x0dbe, 0x0dbf, + 0x0dc7, 0x0dc9, + 0x0dcb, 0x0dce, + 0x0dd5, 0x0dd5, + 0x0dd7, 0x0dd7, + 0x0de0, 0x0de5, + 0x0df0, 0x0df1, + 0x0df5, 0x0e00, + 0x0e3b, 0x0e3e, + 0x0e5c, 0x0e80, + 0x0e83, 0x0e83, + 0x0e85, 0x0e85, + 0x0e8b, 0x0e8b, + 0x0ea4, 0x0ea4, + 0x0ea6, 0x0ea6, + 0x0ebe, 0x0ebf, + 0x0ec5, 0x0ec5, + 0x0ec7, 0x0ec7, + 0x0ecf, 0x0ecf, + 0x0eda, 0x0edb, + 0x0ee0, 0x0eff, + 0x0f48, 0x0f48, + 0x0f6d, 0x0f70, + 0x0f98, 0x0f98, + 0x0fbd, 0x0fbd, + 0x0fcd, 0x0fcd, + 0x0fdb, 0x0fff, + 0x10c6, 0x10c6, + 0x10c8, 0x10cc, + 0x10ce, 0x10cf, + 0x1249, 0x1249, + 0x124e, 0x124f, + 0x1257, 0x1257, + 0x1259, 0x1259, + 0x125e, 0x125f, + 0x1289, 0x1289, + 0x128e, 0x128f, + 0x12b1, 0x12b1, + 0x12b6, 0x12b7, + 0x12bf, 0x12bf, + 0x12c1, 0x12c1, + 0x12c6, 0x12c7, + 0x12d7, 0x12d7, + 0x1311, 0x1311, + 0x1316, 0x1317, + 0x135b, 0x135c, + 0x137d, 0x137f, + 0x139a, 0x139f, + 0x13f6, 0x13f7, + 0x13fe, 0x13ff, + 0x169d, 0x169f, + 0x16f9, 0x16ff, + 0x1716, 0x171e, + 0x1737, 0x173f, + 0x1754, 0x175f, + 0x176d, 0x176d, + 0x1771, 0x1771, + 0x1774, 0x177f, + 0x17de, 0x17df, + 0x17ea, 0x17ef, + 0x17fa, 0x17ff, + 0x180e, 0x180e, + 0x181a, 0x181f, + 0x1879, 0x187f, + 0x18ab, 0x18af, + 0x18f6, 0x18ff, + 0x191f, 0x191f, + 0x192c, 0x192f, + 0x193c, 0x193f, + 0x1941, 0x1943, + 0x196e, 0x196f, + 0x1975, 0x197f, + 0x19ac, 0x19af, + 0x19ca, 0x19cf, + 0x19db, 0x19dd, + 0x1a1c, 0x1a1d, + 0x1a5f, 0x1a5f, + 0x1a7d, 0x1a7e, + 0x1a8a, 0x1a8f, + 0x1a9a, 0x1a9f, + 0x1aae, 0x1aaf, + 0x1acf, 0x1aff, + 0x1b4d, 0x1b4f, + 0x1b7f, 0x1b7f, + 0x1bf4, 0x1bfb, + 0x1c38, 0x1c3a, + 0x1c4a, 0x1c4c, + 0x1c89, 0x1c8f, + 0x1cbb, 0x1cbc, + 0x1cc8, 0x1ccf, + 0x1cfb, 0x1cff, + 0x1f16, 0x1f17, + 0x1f1e, 0x1f1f, + 0x1f46, 0x1f47, + 0x1f4e, 0x1f4f, + 0x1f58, 0x1f58, + 0x1f5a, 0x1f5a, + 0x1f5c, 0x1f5c, + 0x1f5e, 0x1f5e, + 0x1f7e, 0x1f7f, + 0x1fb5, 0x1fb5, + 0x1fc5, 0x1fc5, + 0x1fd4, 0x1fd5, + 0x1fdc, 0x1fdc, + 0x1ff0, 0x1ff1, + 0x1ff5, 0x1ff5, + 0x1fff, 0x1fff, + 0x200b, 0x200f, + 0x202a, 0x202e, + 0x2060, 0x206f, + 0x2072, 0x2073, + 0x208f, 0x208f, + 0x209d, 0x209f, + 0x20c1, 0x20cf, + 0x20f1, 0x20ff, + 0x218c, 0x218f, + 0x2427, 0x243f, + 0x244b, 0x245f, + 0x2b74, 0x2b75, + 0x2b96, 0x2b96, + 0x2cf4, 0x2cf8, + 0x2d26, 0x2d26, + 0x2d28, 0x2d2c, + 0x2d2e, 0x2d2f, + 0x2d68, 0x2d6e, + 0x2d71, 0x2d7e, + 0x2d97, 0x2d9f, + 0x2da7, 0x2da7, + 0x2daf, 0x2daf, + 0x2db7, 0x2db7, + 0x2dbf, 0x2dbf, + 0x2dc7, 0x2dc7, + 0x2dcf, 0x2dcf, + 0x2dd7, 0x2dd7, + 0x2ddf, 0x2ddf, + 0x2e5e, 0x2e7f, + 0x2e9a, 0x2e9a, + 0x2ef4, 0x2eff, + 0x2fd6, 0x2fef, + 0x2ffc, 0x2fff, + 0x3040, 0x3040, + 0x3097, 0x3098, + 0x3100, 0x3104, + 0x3130, 0x3130, + 0x318f, 0x318f, + 0x31e4, 0x31ef, + 0x321f, 0x321f, + 0xa48d, 0xa48f, + 0xa4c7, 0xa4cf, + 0xa62c, 0xa63f, + 0xa6f8, 0xa6ff, + 0xa7cb, 0xa7cf, + 0xa7d2, 0xa7d2, + 0xa7d4, 0xa7d4, + 0xa7da, 0xa7f1, + 0xa82d, 0xa82f, + 0xa83a, 0xa83f, + 0xa878, 0xa87f, + 0xa8c6, 0xa8cd, + 0xa8da, 0xa8df, + 0xa954, 0xa95e, + 0xa97d, 0xa97f, + 0xa9ce, 0xa9ce, + 0xa9da, 0xa9dd, + 0xa9ff, 0xa9ff, + 0xaa37, 0xaa3f, + 0xaa4e, 0xaa4f, + 0xaa5a, 0xaa5b, + 0xaac3, 0xaada, + 0xaaf7, 0xab00, + 0xab07, 0xab08, + 0xab0f, 0xab10, + 0xab17, 0xab1f, + 0xab27, 0xab27, + 0xab2f, 0xab2f, + 0xab6c, 0xab6f, + 0xabee, 0xabef, + 0xabfa, 0xabff, + 0xd7a4, 0xd7af, + 0xd7c7, 0xd7ca, + 0xd7fc, 0xf8ff, + 0xfa6e, 0xfa6f, + 0xfada, 0xfaff, + 0xfb07, 0xfb12, + 0xfb18, 0xfb1c, + 0xfb37, 0xfb37, + 0xfb3d, 0xfb3d, + 0xfb3f, 0xfb3f, + 0xfb42, 0xfb42, + 0xfb45, 0xfb45, + 0xfbc3, 0xfbd2, + 0xfd90, 0xfd91, + 0xfdc8, 0xfdce, + 0xfdd0, 0xfdef, + 0xfe1a, 0xfe1f, + 0xfe53, 0xfe53, + 0xfe67, 0xfe67, + 0xfe6c, 0xfe6f, + 0xfe75, 0xfe75, + 0xfefd, 0xff00, + 0xffbf, 0xffc1, + 0xffc8, 0xffc9, + 0xffd0, 0xffd1, + 0xffd8, 0xffd9, + 0xffdd, 0xffdf, + 0xffe7, 0xffe7, + 0xffef, 0xfffb, + 0xfffe, 0xffff, + 0x1000c, 0x1000c, + 0x10027, 0x10027, + 0x1003b, 0x1003b, + 0x1003e, 0x1003e, + 0x1004e, 0x1004f, + 0x1005e, 0x1007f, + 0x100fb, 0x100ff, + 0x10103, 0x10106, + 0x10134, 0x10136, + 0x1018f, 0x1018f, + 0x1019d, 0x1019f, + 0x101a1, 0x101cf, + 0x101fe, 0x1027f, + 0x1029d, 0x1029f, + 0x102d1, 0x102df, + 0x102fc, 0x102ff, + 0x10324, 0x1032c, + 0x1034b, 0x1034f, + 0x1037b, 0x1037f, + 0x1039e, 0x1039e, + 0x103c4, 0x103c7, + 0x103d6, 0x103ff, + 0x1049e, 0x1049f, + 0x104aa, 0x104af, + 0x104d4, 0x104d7, + 0x104fc, 0x104ff, + 0x10528, 0x1052f, + 0x10564, 0x1056e, + 0x1057b, 0x1057b, + 0x1058b, 0x1058b, + 0x10593, 0x10593, + 0x10596, 0x10596, + 0x105a2, 0x105a2, + 0x105b2, 0x105b2, + 0x105ba, 0x105ba, + 0x105bd, 0x105ff, + 0x10737, 0x1073f, + 0x10756, 0x1075f, + 0x10768, 0x1077f, + 0x10786, 0x10786, + 0x107b1, 0x107b1, + 0x107bb, 0x107ff, + 0x10806, 0x10807, + 0x10809, 0x10809, + 0x10836, 0x10836, + 0x10839, 0x1083b, + 0x1083d, 0x1083e, + 0x10856, 0x10856, + 0x1089f, 0x108a6, + 0x108b0, 0x108df, + 0x108f3, 0x108f3, + 0x108f6, 0x108fa, + 0x1091c, 0x1091e, + 0x1093a, 0x1093e, + 0x10940, 0x1097f, + 0x109b8, 0x109bb, + 0x109d0, 0x109d1, + 0x10a04, 0x10a04, + 0x10a07, 0x10a0b, + 0x10a14, 0x10a14, + 0x10a18, 0x10a18, + 0x10a36, 0x10a37, + 0x10a3b, 0x10a3e, + 0x10a49, 0x10a4f, + 0x10a59, 0x10a5f, + 0x10aa0, 0x10abf, + 0x10ae7, 0x10aea, + 0x10af7, 0x10aff, + 0x10b36, 0x10b38, + 0x10b56, 0x10b57, + 0x10b73, 0x10b77, + 0x10b92, 0x10b98, + 0x10b9d, 0x10ba8, + 0x10bb0, 0x10bff, + 0x10c49, 0x10c7f, + 0x10cb3, 0x10cbf, + 0x10cf3, 0x10cf9, + 0x10d28, 0x10d2f, + 0x10d3a, 0x10e5f, + 0x10e7f, 0x10e7f, + 0x10eaa, 0x10eaa, + 0x10eae, 0x10eaf, + 0x10eb2, 0x10efc, + 0x10f28, 0x10f2f, + 0x10f5a, 0x10f6f, + 0x10f8a, 0x10faf, + 0x10fcc, 0x10fdf, + 0x10ff7, 0x10fff, + 0x1104e, 0x11051, + 0x11076, 0x1107e, + 0x110bd, 0x110bd, + 0x110c3, 0x110cf, + 0x110e9, 0x110ef, + 0x110fa, 0x110ff, + 0x11135, 0x11135, + 0x11148, 0x1114f, + 0x11177, 0x1117f, + 0x111e0, 0x111e0, + 0x111f5, 0x111ff, + 0x11212, 0x11212, + 0x11242, 0x1127f, + 0x11287, 0x11287, + 0x11289, 0x11289, + 0x1128e, 0x1128e, + 0x1129e, 0x1129e, + 0x112aa, 0x112af, + 0x112eb, 0x112ef, + 0x112fa, 0x112ff, + 0x11304, 0x11304, + 0x1130d, 0x1130e, + 0x11311, 0x11312, + 0x11329, 0x11329, + 0x11331, 0x11331, + 0x11334, 0x11334, + 0x1133a, 0x1133a, + 0x11345, 0x11346, + 0x11349, 0x1134a, + 0x1134e, 0x1134f, + 0x11351, 0x11356, + 0x11358, 0x1135c, + 0x11364, 0x11365, + 0x1136d, 0x1136f, + 0x11375, 0x113ff, + 0x1145c, 0x1145c, + 0x11462, 0x1147f, + 0x114c8, 0x114cf, + 0x114da, 0x1157f, + 0x115b6, 0x115b7, + 0x115de, 0x115ff, + 0x11645, 0x1164f, + 0x1165a, 0x1165f, + 0x1166d, 0x1167f, + 0x116ba, 0x116bf, + 0x116ca, 0x116ff, + 0x1171b, 0x1171c, + 0x1172c, 0x1172f, + 0x11747, 0x117ff, + 0x1183c, 0x1189f, + 0x118f3, 0x118fe, + 0x11907, 0x11908, + 0x1190a, 0x1190b, + 0x11914, 0x11914, + 0x11917, 0x11917, + 0x11936, 0x11936, + 0x11939, 0x1193a, + 0x11947, 0x1194f, + 0x1195a, 0x1199f, + 0x119a8, 0x119a9, + 0x119d8, 0x119d9, + 0x119e5, 0x119ff, + 0x11a48, 0x11a4f, + 0x11aa3, 0x11aaf, + 0x11af9, 0x11aff, + 0x11b0a, 0x11bff, + 0x11c09, 0x11c09, + 0x11c37, 0x11c37, + 0x11c46, 0x11c4f, + 0x11c6d, 0x11c6f, + 0x11c90, 0x11c91, + 0x11ca8, 0x11ca8, + 0x11cb7, 0x11cff, + 0x11d07, 0x11d07, + 0x11d0a, 0x11d0a, + 0x11d37, 0x11d39, + 0x11d3b, 0x11d3b, + 0x11d3e, 0x11d3e, + 0x11d48, 0x11d4f, + 0x11d5a, 0x11d5f, + 0x11d66, 0x11d66, + 0x11d69, 0x11d69, + 0x11d8f, 0x11d8f, + 0x11d92, 0x11d92, + 0x11d99, 0x11d9f, + 0x11daa, 0x11edf, + 0x11ef9, 0x11eff, + 0x11f11, 0x11f11, + 0x11f3b, 0x11f3d, + 0x11f5a, 0x11faf, + 0x11fb1, 0x11fbf, + 0x11ff2, 0x11ffe, + 0x1239a, 0x123ff, + 0x1246f, 0x1246f, + 0x12475, 0x1247f, + 0x12544, 0x12f8f, + 0x12ff3, 0x12fff, + 0x13430, 0x1343f, + 0x13456, 0x143ff, + 0x14647, 0x167ff, + 0x16a39, 0x16a3f, + 0x16a5f, 0x16a5f, + 0x16a6a, 0x16a6d, + 0x16abf, 0x16abf, + 0x16aca, 0x16acf, + 0x16aee, 0x16aef, + 0x16af6, 0x16aff, + 0x16b46, 0x16b4f, + 0x16b5a, 0x16b5a, + 0x16b62, 0x16b62, + 0x16b78, 0x16b7c, + 0x16b90, 0x16e3f, + 0x16e9b, 0x16eff, + 0x16f4b, 0x16f4e, + 0x16f88, 0x16f8e, + 0x16fa0, 0x16fdf, + 0x16fe5, 0x16fef, + 0x16ff2, 0x16fff, + 0x187f8, 0x187ff, + 0x18cd6, 0x18cff, + 0x18d09, 0x1afef, + 0x1aff4, 0x1aff4, + 0x1affc, 0x1affc, + 0x1afff, 0x1afff, + 0x1b123, 0x1b131, + 0x1b133, 0x1b14f, + 0x1b153, 0x1b154, + 0x1b156, 0x1b163, + 0x1b168, 0x1b16f, + 0x1b2fc, 0x1bbff, + 0x1bc6b, 0x1bc6f, + 0x1bc7d, 0x1bc7f, + 0x1bc89, 0x1bc8f, + 0x1bc9a, 0x1bc9b, + 0x1bca0, 0x1ceff, + 0x1cf2e, 0x1cf2f, + 0x1cf47, 0x1cf4f, + 0x1cfc4, 0x1cfff, + 0x1d0f6, 0x1d0ff, + 0x1d127, 0x1d128, + 0x1d173, 0x1d17a, + 0x1d1eb, 0x1d1ff, + 0x1d246, 0x1d2bf, + 0x1d2d4, 0x1d2df, + 0x1d2f4, 0x1d2ff, + 0x1d357, 0x1d35f, + 0x1d379, 0x1d3ff, + 0x1d455, 0x1d455, + 0x1d49d, 0x1d49d, + 0x1d4a0, 0x1d4a1, + 0x1d4a3, 0x1d4a4, + 0x1d4a7, 0x1d4a8, + 0x1d4ad, 0x1d4ad, + 0x1d4ba, 0x1d4ba, + 0x1d4bc, 0x1d4bc, + 0x1d4c4, 0x1d4c4, + 0x1d506, 0x1d506, + 0x1d50b, 0x1d50c, + 0x1d515, 0x1d515, + 0x1d51d, 0x1d51d, + 0x1d53a, 0x1d53a, + 0x1d53f, 0x1d53f, + 0x1d545, 0x1d545, + 0x1d547, 0x1d549, + 0x1d551, 0x1d551, + 0x1d6a6, 0x1d6a7, + 0x1d7cc, 0x1d7cd, + 0x1da8c, 0x1da9a, + 0x1daa0, 0x1daa0, + 0x1dab0, 0x1deff, + 0x1df1f, 0x1df24, + 0x1df2b, 0x1dfff, + 0x1e007, 0x1e007, + 0x1e019, 0x1e01a, + 0x1e022, 0x1e022, + 0x1e025, 0x1e025, + 0x1e02b, 0x1e02f, + 0x1e06e, 0x1e08e, + 0x1e090, 0x1e0ff, + 0x1e12d, 0x1e12f, + 0x1e13e, 0x1e13f, + 0x1e14a, 0x1e14d, + 0x1e150, 0x1e28f, + 0x1e2af, 0x1e2bf, + 0x1e2fa, 0x1e2fe, + 0x1e300, 0x1e4cf, + 0x1e4fa, 0x1e7df, + 0x1e7e7, 0x1e7e7, + 0x1e7ec, 0x1e7ec, + 0x1e7ef, 0x1e7ef, + 0x1e7ff, 0x1e7ff, + 0x1e8c5, 0x1e8c6, + 0x1e8d7, 0x1e8ff, + 0x1e94c, 0x1e94f, + 0x1e95a, 0x1e95d, + 0x1e960, 0x1ec70, + 0x1ecb5, 0x1ed00, + 0x1ed3e, 0x1edff, + 0x1ee04, 0x1ee04, + 0x1ee20, 0x1ee20, + 0x1ee23, 0x1ee23, + 0x1ee25, 0x1ee26, + 0x1ee28, 0x1ee28, + 0x1ee33, 0x1ee33, + 0x1ee38, 0x1ee38, + 0x1ee3a, 0x1ee3a, + 0x1ee3c, 0x1ee41, + 0x1ee43, 0x1ee46, + 0x1ee48, 0x1ee48, + 0x1ee4a, 0x1ee4a, + 0x1ee4c, 0x1ee4c, + 0x1ee50, 0x1ee50, + 0x1ee53, 0x1ee53, + 0x1ee55, 0x1ee56, + 0x1ee58, 0x1ee58, + 0x1ee5a, 0x1ee5a, + 0x1ee5c, 0x1ee5c, + 0x1ee5e, 0x1ee5e, + 0x1ee60, 0x1ee60, + 0x1ee63, 0x1ee63, + 0x1ee65, 0x1ee66, + 0x1ee6b, 0x1ee6b, + 0x1ee73, 0x1ee73, + 0x1ee78, 0x1ee78, + 0x1ee7d, 0x1ee7d, + 0x1ee7f, 0x1ee7f, + 0x1ee8a, 0x1ee8a, + 0x1ee9c, 0x1eea0, + 0x1eea4, 0x1eea4, + 0x1eeaa, 0x1eeaa, + 0x1eebc, 0x1eeef, + 0x1eef2, 0x1efff, + 0x1f02c, 0x1f02f, + 0x1f094, 0x1f09f, + 0x1f0af, 0x1f0b0, + 0x1f0c0, 0x1f0c0, + 0x1f0d0, 0x1f0d0, + 0x1f0f6, 0x1f0ff, + 0x1f1ae, 0x1f1e5, + 0x1f203, 0x1f20f, + 0x1f23c, 0x1f23f, + 0x1f249, 0x1f24f, + 0x1f252, 0x1f25f, + 0x1f266, 0x1f2ff, + 0x1f6d8, 0x1f6db, + 0x1f6ed, 0x1f6ef, + 0x1f6fd, 0x1f6ff, + 0x1f777, 0x1f77a, + 0x1f7da, 0x1f7df, + 0x1f7ec, 0x1f7ef, + 0x1f7f1, 0x1f7ff, + 0x1f80c, 0x1f80f, + 0x1f848, 0x1f84f, + 0x1f85a, 0x1f85f, + 0x1f888, 0x1f88f, + 0x1f8ae, 0x1f8af, + 0x1f8b2, 0x1f8ff, + 0x1fa54, 0x1fa5f, + 0x1fa6e, 0x1fa6f, + 0x1fa7d, 0x1fa7f, + 0x1fa89, 0x1fa8f, + 0x1fabe, 0x1fabe, + 0x1fac6, 0x1facd, + 0x1fadc, 0x1fadf, + 0x1fae9, 0x1faef, + 0x1faf9, 0x1faff, + 0x1fb93, 0x1fb93, + 0x1fbcb, 0x1fbef, + 0x1fbfa, 0x1ffff, + 0x2a6e0, 0x2a6ff, + 0x2b73a, 0x2b73f, + 0x2b81e, 0x2b81f, + 0x2cea2, 0x2ceaf, + 0x2ebe1, 0x2f7ff, + 0x2fa1e, 0x2ffff, + 0x3134b, 0x3134f, + 0x323b0, 0xe00ff, + 0xe01f0, 0x10ffff, +}; /* CR_C */ + +/* 'Cc': General Category */ +#define CR_Cc CR_Cntrl + +/* 'Cf': General Category */ +static const OnigCodePoint CR_Cf[] = { + 21, + 0x00ad, 0x00ad, + 0x0600, 0x0605, + 0x061c, 0x061c, + 0x06dd, 0x06dd, + 0x070f, 0x070f, + 0x0890, 0x0891, + 0x08e2, 0x08e2, + 0x180e, 0x180e, + 0x200b, 0x200f, + 0x202a, 0x202e, + 0x2060, 0x2064, + 0x2066, 0x206f, + 0xfeff, 0xfeff, + 0xfff9, 0xfffb, + 0x110bd, 0x110bd, + 0x110cd, 0x110cd, + 0x13430, 0x1343f, + 0x1bca0, 0x1bca3, + 0x1d173, 0x1d17a, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, +}; /* CR_Cf */ + +/* 'Cn': General Category */ +static const OnigCodePoint CR_Cn[] = { + 707, + 0x0378, 0x0379, + 0x0380, 0x0383, + 0x038b, 0x038b, + 0x038d, 0x038d, + 0x03a2, 0x03a2, + 0x0530, 0x0530, + 0x0557, 0x0558, + 0x058b, 0x058c, + 0x0590, 0x0590, + 0x05c8, 0x05cf, + 0x05eb, 0x05ee, + 0x05f5, 0x05ff, + 0x070e, 0x070e, + 0x074b, 0x074c, + 0x07b2, 0x07bf, + 0x07fb, 0x07fc, + 0x082e, 0x082f, + 0x083f, 0x083f, + 0x085c, 0x085d, + 0x085f, 0x085f, + 0x086b, 0x086f, + 0x088f, 0x088f, + 0x0892, 0x0897, + 0x0984, 0x0984, + 0x098d, 0x098e, + 0x0991, 0x0992, + 0x09a9, 0x09a9, + 0x09b1, 0x09b1, + 0x09b3, 0x09b5, + 0x09ba, 0x09bb, + 0x09c5, 0x09c6, + 0x09c9, 0x09ca, + 0x09cf, 0x09d6, + 0x09d8, 0x09db, + 0x09de, 0x09de, + 0x09e4, 0x09e5, + 0x09ff, 0x0a00, + 0x0a04, 0x0a04, + 0x0a0b, 0x0a0e, + 0x0a11, 0x0a12, + 0x0a29, 0x0a29, + 0x0a31, 0x0a31, + 0x0a34, 0x0a34, + 0x0a37, 0x0a37, + 0x0a3a, 0x0a3b, + 0x0a3d, 0x0a3d, + 0x0a43, 0x0a46, + 0x0a49, 0x0a4a, + 0x0a4e, 0x0a50, + 0x0a52, 0x0a58, + 0x0a5d, 0x0a5d, + 0x0a5f, 0x0a65, + 0x0a77, 0x0a80, + 0x0a84, 0x0a84, + 0x0a8e, 0x0a8e, + 0x0a92, 0x0a92, + 0x0aa9, 0x0aa9, + 0x0ab1, 0x0ab1, + 0x0ab4, 0x0ab4, + 0x0aba, 0x0abb, + 0x0ac6, 0x0ac6, + 0x0aca, 0x0aca, + 0x0ace, 0x0acf, + 0x0ad1, 0x0adf, + 0x0ae4, 0x0ae5, + 0x0af2, 0x0af8, + 0x0b00, 0x0b00, + 0x0b04, 0x0b04, + 0x0b0d, 0x0b0e, + 0x0b11, 0x0b12, + 0x0b29, 0x0b29, + 0x0b31, 0x0b31, + 0x0b34, 0x0b34, + 0x0b3a, 0x0b3b, + 0x0b45, 0x0b46, + 0x0b49, 0x0b4a, + 0x0b4e, 0x0b54, + 0x0b58, 0x0b5b, + 0x0b5e, 0x0b5e, + 0x0b64, 0x0b65, + 0x0b78, 0x0b81, + 0x0b84, 0x0b84, + 0x0b8b, 0x0b8d, + 0x0b91, 0x0b91, + 0x0b96, 0x0b98, + 0x0b9b, 0x0b9b, + 0x0b9d, 0x0b9d, + 0x0ba0, 0x0ba2, + 0x0ba5, 0x0ba7, + 0x0bab, 0x0bad, + 0x0bba, 0x0bbd, + 0x0bc3, 0x0bc5, + 0x0bc9, 0x0bc9, + 0x0bce, 0x0bcf, + 0x0bd1, 0x0bd6, + 0x0bd8, 0x0be5, + 0x0bfb, 0x0bff, + 0x0c0d, 0x0c0d, + 0x0c11, 0x0c11, + 0x0c29, 0x0c29, + 0x0c3a, 0x0c3b, + 0x0c45, 0x0c45, + 0x0c49, 0x0c49, + 0x0c4e, 0x0c54, + 0x0c57, 0x0c57, + 0x0c5b, 0x0c5c, + 0x0c5e, 0x0c5f, + 0x0c64, 0x0c65, + 0x0c70, 0x0c76, + 0x0c8d, 0x0c8d, + 0x0c91, 0x0c91, + 0x0ca9, 0x0ca9, + 0x0cb4, 0x0cb4, + 0x0cba, 0x0cbb, + 0x0cc5, 0x0cc5, + 0x0cc9, 0x0cc9, + 0x0cce, 0x0cd4, + 0x0cd7, 0x0cdc, + 0x0cdf, 0x0cdf, + 0x0ce4, 0x0ce5, + 0x0cf0, 0x0cf0, + 0x0cf4, 0x0cff, + 0x0d0d, 0x0d0d, + 0x0d11, 0x0d11, + 0x0d45, 0x0d45, + 0x0d49, 0x0d49, + 0x0d50, 0x0d53, + 0x0d64, 0x0d65, + 0x0d80, 0x0d80, + 0x0d84, 0x0d84, + 0x0d97, 0x0d99, + 0x0db2, 0x0db2, + 0x0dbc, 0x0dbc, + 0x0dbe, 0x0dbf, + 0x0dc7, 0x0dc9, + 0x0dcb, 0x0dce, + 0x0dd5, 0x0dd5, + 0x0dd7, 0x0dd7, + 0x0de0, 0x0de5, + 0x0df0, 0x0df1, + 0x0df5, 0x0e00, + 0x0e3b, 0x0e3e, + 0x0e5c, 0x0e80, + 0x0e83, 0x0e83, + 0x0e85, 0x0e85, + 0x0e8b, 0x0e8b, + 0x0ea4, 0x0ea4, + 0x0ea6, 0x0ea6, + 0x0ebe, 0x0ebf, + 0x0ec5, 0x0ec5, + 0x0ec7, 0x0ec7, + 0x0ecf, 0x0ecf, + 0x0eda, 0x0edb, + 0x0ee0, 0x0eff, + 0x0f48, 0x0f48, + 0x0f6d, 0x0f70, + 0x0f98, 0x0f98, + 0x0fbd, 0x0fbd, + 0x0fcd, 0x0fcd, + 0x0fdb, 0x0fff, + 0x10c6, 0x10c6, + 0x10c8, 0x10cc, + 0x10ce, 0x10cf, + 0x1249, 0x1249, + 0x124e, 0x124f, + 0x1257, 0x1257, + 0x1259, 0x1259, + 0x125e, 0x125f, + 0x1289, 0x1289, + 0x128e, 0x128f, + 0x12b1, 0x12b1, + 0x12b6, 0x12b7, + 0x12bf, 0x12bf, + 0x12c1, 0x12c1, + 0x12c6, 0x12c7, + 0x12d7, 0x12d7, + 0x1311, 0x1311, + 0x1316, 0x1317, + 0x135b, 0x135c, + 0x137d, 0x137f, + 0x139a, 0x139f, + 0x13f6, 0x13f7, + 0x13fe, 0x13ff, + 0x169d, 0x169f, + 0x16f9, 0x16ff, + 0x1716, 0x171e, + 0x1737, 0x173f, + 0x1754, 0x175f, + 0x176d, 0x176d, + 0x1771, 0x1771, + 0x1774, 0x177f, + 0x17de, 0x17df, + 0x17ea, 0x17ef, + 0x17fa, 0x17ff, + 0x181a, 0x181f, + 0x1879, 0x187f, + 0x18ab, 0x18af, + 0x18f6, 0x18ff, + 0x191f, 0x191f, + 0x192c, 0x192f, + 0x193c, 0x193f, + 0x1941, 0x1943, + 0x196e, 0x196f, + 0x1975, 0x197f, + 0x19ac, 0x19af, + 0x19ca, 0x19cf, + 0x19db, 0x19dd, + 0x1a1c, 0x1a1d, + 0x1a5f, 0x1a5f, + 0x1a7d, 0x1a7e, + 0x1a8a, 0x1a8f, + 0x1a9a, 0x1a9f, + 0x1aae, 0x1aaf, + 0x1acf, 0x1aff, + 0x1b4d, 0x1b4f, + 0x1b7f, 0x1b7f, + 0x1bf4, 0x1bfb, + 0x1c38, 0x1c3a, + 0x1c4a, 0x1c4c, + 0x1c89, 0x1c8f, + 0x1cbb, 0x1cbc, + 0x1cc8, 0x1ccf, + 0x1cfb, 0x1cff, + 0x1f16, 0x1f17, + 0x1f1e, 0x1f1f, + 0x1f46, 0x1f47, + 0x1f4e, 0x1f4f, + 0x1f58, 0x1f58, + 0x1f5a, 0x1f5a, + 0x1f5c, 0x1f5c, + 0x1f5e, 0x1f5e, + 0x1f7e, 0x1f7f, + 0x1fb5, 0x1fb5, + 0x1fc5, 0x1fc5, + 0x1fd4, 0x1fd5, + 0x1fdc, 0x1fdc, + 0x1ff0, 0x1ff1, + 0x1ff5, 0x1ff5, + 0x1fff, 0x1fff, + 0x2065, 0x2065, + 0x2072, 0x2073, + 0x208f, 0x208f, + 0x209d, 0x209f, + 0x20c1, 0x20cf, + 0x20f1, 0x20ff, + 0x218c, 0x218f, + 0x2427, 0x243f, + 0x244b, 0x245f, + 0x2b74, 0x2b75, + 0x2b96, 0x2b96, + 0x2cf4, 0x2cf8, + 0x2d26, 0x2d26, + 0x2d28, 0x2d2c, + 0x2d2e, 0x2d2f, + 0x2d68, 0x2d6e, + 0x2d71, 0x2d7e, + 0x2d97, 0x2d9f, + 0x2da7, 0x2da7, + 0x2daf, 0x2daf, + 0x2db7, 0x2db7, + 0x2dbf, 0x2dbf, + 0x2dc7, 0x2dc7, + 0x2dcf, 0x2dcf, + 0x2dd7, 0x2dd7, + 0x2ddf, 0x2ddf, + 0x2e5e, 0x2e7f, + 0x2e9a, 0x2e9a, + 0x2ef4, 0x2eff, + 0x2fd6, 0x2fef, + 0x2ffc, 0x2fff, + 0x3040, 0x3040, + 0x3097, 0x3098, + 0x3100, 0x3104, + 0x3130, 0x3130, + 0x318f, 0x318f, + 0x31e4, 0x31ef, + 0x321f, 0x321f, + 0xa48d, 0xa48f, + 0xa4c7, 0xa4cf, + 0xa62c, 0xa63f, + 0xa6f8, 0xa6ff, + 0xa7cb, 0xa7cf, + 0xa7d2, 0xa7d2, + 0xa7d4, 0xa7d4, + 0xa7da, 0xa7f1, + 0xa82d, 0xa82f, + 0xa83a, 0xa83f, + 0xa878, 0xa87f, + 0xa8c6, 0xa8cd, + 0xa8da, 0xa8df, + 0xa954, 0xa95e, + 0xa97d, 0xa97f, + 0xa9ce, 0xa9ce, + 0xa9da, 0xa9dd, + 0xa9ff, 0xa9ff, + 0xaa37, 0xaa3f, + 0xaa4e, 0xaa4f, + 0xaa5a, 0xaa5b, + 0xaac3, 0xaada, + 0xaaf7, 0xab00, + 0xab07, 0xab08, + 0xab0f, 0xab10, + 0xab17, 0xab1f, + 0xab27, 0xab27, + 0xab2f, 0xab2f, + 0xab6c, 0xab6f, + 0xabee, 0xabef, + 0xabfa, 0xabff, + 0xd7a4, 0xd7af, + 0xd7c7, 0xd7ca, + 0xd7fc, 0xd7ff, + 0xfa6e, 0xfa6f, + 0xfada, 0xfaff, + 0xfb07, 0xfb12, + 0xfb18, 0xfb1c, + 0xfb37, 0xfb37, + 0xfb3d, 0xfb3d, + 0xfb3f, 0xfb3f, + 0xfb42, 0xfb42, + 0xfb45, 0xfb45, + 0xfbc3, 0xfbd2, + 0xfd90, 0xfd91, + 0xfdc8, 0xfdce, + 0xfdd0, 0xfdef, + 0xfe1a, 0xfe1f, + 0xfe53, 0xfe53, + 0xfe67, 0xfe67, + 0xfe6c, 0xfe6f, + 0xfe75, 0xfe75, + 0xfefd, 0xfefe, + 0xff00, 0xff00, + 0xffbf, 0xffc1, + 0xffc8, 0xffc9, + 0xffd0, 0xffd1, + 0xffd8, 0xffd9, + 0xffdd, 0xffdf, + 0xffe7, 0xffe7, + 0xffef, 0xfff8, + 0xfffe, 0xffff, + 0x1000c, 0x1000c, + 0x10027, 0x10027, + 0x1003b, 0x1003b, + 0x1003e, 0x1003e, + 0x1004e, 0x1004f, + 0x1005e, 0x1007f, + 0x100fb, 0x100ff, + 0x10103, 0x10106, + 0x10134, 0x10136, + 0x1018f, 0x1018f, + 0x1019d, 0x1019f, + 0x101a1, 0x101cf, + 0x101fe, 0x1027f, + 0x1029d, 0x1029f, + 0x102d1, 0x102df, + 0x102fc, 0x102ff, + 0x10324, 0x1032c, + 0x1034b, 0x1034f, + 0x1037b, 0x1037f, + 0x1039e, 0x1039e, + 0x103c4, 0x103c7, + 0x103d6, 0x103ff, + 0x1049e, 0x1049f, + 0x104aa, 0x104af, + 0x104d4, 0x104d7, + 0x104fc, 0x104ff, + 0x10528, 0x1052f, + 0x10564, 0x1056e, + 0x1057b, 0x1057b, + 0x1058b, 0x1058b, + 0x10593, 0x10593, + 0x10596, 0x10596, + 0x105a2, 0x105a2, + 0x105b2, 0x105b2, + 0x105ba, 0x105ba, + 0x105bd, 0x105ff, + 0x10737, 0x1073f, + 0x10756, 0x1075f, + 0x10768, 0x1077f, + 0x10786, 0x10786, + 0x107b1, 0x107b1, + 0x107bb, 0x107ff, + 0x10806, 0x10807, + 0x10809, 0x10809, + 0x10836, 0x10836, + 0x10839, 0x1083b, + 0x1083d, 0x1083e, + 0x10856, 0x10856, + 0x1089f, 0x108a6, + 0x108b0, 0x108df, + 0x108f3, 0x108f3, + 0x108f6, 0x108fa, + 0x1091c, 0x1091e, + 0x1093a, 0x1093e, + 0x10940, 0x1097f, + 0x109b8, 0x109bb, + 0x109d0, 0x109d1, + 0x10a04, 0x10a04, + 0x10a07, 0x10a0b, + 0x10a14, 0x10a14, + 0x10a18, 0x10a18, + 0x10a36, 0x10a37, + 0x10a3b, 0x10a3e, + 0x10a49, 0x10a4f, + 0x10a59, 0x10a5f, + 0x10aa0, 0x10abf, + 0x10ae7, 0x10aea, + 0x10af7, 0x10aff, + 0x10b36, 0x10b38, + 0x10b56, 0x10b57, + 0x10b73, 0x10b77, + 0x10b92, 0x10b98, + 0x10b9d, 0x10ba8, + 0x10bb0, 0x10bff, + 0x10c49, 0x10c7f, + 0x10cb3, 0x10cbf, + 0x10cf3, 0x10cf9, + 0x10d28, 0x10d2f, + 0x10d3a, 0x10e5f, + 0x10e7f, 0x10e7f, + 0x10eaa, 0x10eaa, + 0x10eae, 0x10eaf, + 0x10eb2, 0x10efc, + 0x10f28, 0x10f2f, + 0x10f5a, 0x10f6f, + 0x10f8a, 0x10faf, + 0x10fcc, 0x10fdf, + 0x10ff7, 0x10fff, + 0x1104e, 0x11051, + 0x11076, 0x1107e, + 0x110c3, 0x110cc, + 0x110ce, 0x110cf, + 0x110e9, 0x110ef, + 0x110fa, 0x110ff, + 0x11135, 0x11135, + 0x11148, 0x1114f, + 0x11177, 0x1117f, + 0x111e0, 0x111e0, + 0x111f5, 0x111ff, + 0x11212, 0x11212, + 0x11242, 0x1127f, + 0x11287, 0x11287, + 0x11289, 0x11289, + 0x1128e, 0x1128e, + 0x1129e, 0x1129e, + 0x112aa, 0x112af, + 0x112eb, 0x112ef, + 0x112fa, 0x112ff, + 0x11304, 0x11304, + 0x1130d, 0x1130e, + 0x11311, 0x11312, + 0x11329, 0x11329, + 0x11331, 0x11331, + 0x11334, 0x11334, + 0x1133a, 0x1133a, + 0x11345, 0x11346, + 0x11349, 0x1134a, + 0x1134e, 0x1134f, + 0x11351, 0x11356, + 0x11358, 0x1135c, + 0x11364, 0x11365, + 0x1136d, 0x1136f, + 0x11375, 0x113ff, + 0x1145c, 0x1145c, + 0x11462, 0x1147f, + 0x114c8, 0x114cf, + 0x114da, 0x1157f, + 0x115b6, 0x115b7, + 0x115de, 0x115ff, + 0x11645, 0x1164f, + 0x1165a, 0x1165f, + 0x1166d, 0x1167f, + 0x116ba, 0x116bf, + 0x116ca, 0x116ff, + 0x1171b, 0x1171c, + 0x1172c, 0x1172f, + 0x11747, 0x117ff, + 0x1183c, 0x1189f, + 0x118f3, 0x118fe, + 0x11907, 0x11908, + 0x1190a, 0x1190b, + 0x11914, 0x11914, + 0x11917, 0x11917, + 0x11936, 0x11936, + 0x11939, 0x1193a, + 0x11947, 0x1194f, + 0x1195a, 0x1199f, + 0x119a8, 0x119a9, + 0x119d8, 0x119d9, + 0x119e5, 0x119ff, + 0x11a48, 0x11a4f, + 0x11aa3, 0x11aaf, + 0x11af9, 0x11aff, + 0x11b0a, 0x11bff, + 0x11c09, 0x11c09, + 0x11c37, 0x11c37, + 0x11c46, 0x11c4f, + 0x11c6d, 0x11c6f, + 0x11c90, 0x11c91, + 0x11ca8, 0x11ca8, + 0x11cb7, 0x11cff, + 0x11d07, 0x11d07, + 0x11d0a, 0x11d0a, + 0x11d37, 0x11d39, + 0x11d3b, 0x11d3b, + 0x11d3e, 0x11d3e, + 0x11d48, 0x11d4f, + 0x11d5a, 0x11d5f, + 0x11d66, 0x11d66, + 0x11d69, 0x11d69, + 0x11d8f, 0x11d8f, + 0x11d92, 0x11d92, + 0x11d99, 0x11d9f, + 0x11daa, 0x11edf, + 0x11ef9, 0x11eff, + 0x11f11, 0x11f11, + 0x11f3b, 0x11f3d, + 0x11f5a, 0x11faf, + 0x11fb1, 0x11fbf, + 0x11ff2, 0x11ffe, + 0x1239a, 0x123ff, + 0x1246f, 0x1246f, + 0x12475, 0x1247f, + 0x12544, 0x12f8f, + 0x12ff3, 0x12fff, + 0x13456, 0x143ff, + 0x14647, 0x167ff, + 0x16a39, 0x16a3f, + 0x16a5f, 0x16a5f, + 0x16a6a, 0x16a6d, + 0x16abf, 0x16abf, + 0x16aca, 0x16acf, + 0x16aee, 0x16aef, + 0x16af6, 0x16aff, + 0x16b46, 0x16b4f, + 0x16b5a, 0x16b5a, + 0x16b62, 0x16b62, + 0x16b78, 0x16b7c, + 0x16b90, 0x16e3f, + 0x16e9b, 0x16eff, + 0x16f4b, 0x16f4e, + 0x16f88, 0x16f8e, + 0x16fa0, 0x16fdf, + 0x16fe5, 0x16fef, + 0x16ff2, 0x16fff, + 0x187f8, 0x187ff, + 0x18cd6, 0x18cff, + 0x18d09, 0x1afef, + 0x1aff4, 0x1aff4, + 0x1affc, 0x1affc, + 0x1afff, 0x1afff, + 0x1b123, 0x1b131, + 0x1b133, 0x1b14f, + 0x1b153, 0x1b154, + 0x1b156, 0x1b163, + 0x1b168, 0x1b16f, + 0x1b2fc, 0x1bbff, + 0x1bc6b, 0x1bc6f, + 0x1bc7d, 0x1bc7f, + 0x1bc89, 0x1bc8f, + 0x1bc9a, 0x1bc9b, + 0x1bca4, 0x1ceff, + 0x1cf2e, 0x1cf2f, + 0x1cf47, 0x1cf4f, + 0x1cfc4, 0x1cfff, + 0x1d0f6, 0x1d0ff, + 0x1d127, 0x1d128, + 0x1d1eb, 0x1d1ff, + 0x1d246, 0x1d2bf, + 0x1d2d4, 0x1d2df, + 0x1d2f4, 0x1d2ff, + 0x1d357, 0x1d35f, + 0x1d379, 0x1d3ff, + 0x1d455, 0x1d455, + 0x1d49d, 0x1d49d, + 0x1d4a0, 0x1d4a1, + 0x1d4a3, 0x1d4a4, + 0x1d4a7, 0x1d4a8, + 0x1d4ad, 0x1d4ad, + 0x1d4ba, 0x1d4ba, + 0x1d4bc, 0x1d4bc, + 0x1d4c4, 0x1d4c4, + 0x1d506, 0x1d506, + 0x1d50b, 0x1d50c, + 0x1d515, 0x1d515, + 0x1d51d, 0x1d51d, + 0x1d53a, 0x1d53a, + 0x1d53f, 0x1d53f, + 0x1d545, 0x1d545, + 0x1d547, 0x1d549, + 0x1d551, 0x1d551, + 0x1d6a6, 0x1d6a7, + 0x1d7cc, 0x1d7cd, + 0x1da8c, 0x1da9a, + 0x1daa0, 0x1daa0, + 0x1dab0, 0x1deff, + 0x1df1f, 0x1df24, + 0x1df2b, 0x1dfff, + 0x1e007, 0x1e007, + 0x1e019, 0x1e01a, + 0x1e022, 0x1e022, + 0x1e025, 0x1e025, + 0x1e02b, 0x1e02f, + 0x1e06e, 0x1e08e, + 0x1e090, 0x1e0ff, + 0x1e12d, 0x1e12f, + 0x1e13e, 0x1e13f, + 0x1e14a, 0x1e14d, + 0x1e150, 0x1e28f, + 0x1e2af, 0x1e2bf, + 0x1e2fa, 0x1e2fe, + 0x1e300, 0x1e4cf, + 0x1e4fa, 0x1e7df, + 0x1e7e7, 0x1e7e7, + 0x1e7ec, 0x1e7ec, + 0x1e7ef, 0x1e7ef, + 0x1e7ff, 0x1e7ff, + 0x1e8c5, 0x1e8c6, + 0x1e8d7, 0x1e8ff, + 0x1e94c, 0x1e94f, + 0x1e95a, 0x1e95d, + 0x1e960, 0x1ec70, + 0x1ecb5, 0x1ed00, + 0x1ed3e, 0x1edff, + 0x1ee04, 0x1ee04, + 0x1ee20, 0x1ee20, + 0x1ee23, 0x1ee23, + 0x1ee25, 0x1ee26, + 0x1ee28, 0x1ee28, + 0x1ee33, 0x1ee33, + 0x1ee38, 0x1ee38, + 0x1ee3a, 0x1ee3a, + 0x1ee3c, 0x1ee41, + 0x1ee43, 0x1ee46, + 0x1ee48, 0x1ee48, + 0x1ee4a, 0x1ee4a, + 0x1ee4c, 0x1ee4c, + 0x1ee50, 0x1ee50, + 0x1ee53, 0x1ee53, + 0x1ee55, 0x1ee56, + 0x1ee58, 0x1ee58, + 0x1ee5a, 0x1ee5a, + 0x1ee5c, 0x1ee5c, + 0x1ee5e, 0x1ee5e, + 0x1ee60, 0x1ee60, + 0x1ee63, 0x1ee63, + 0x1ee65, 0x1ee66, + 0x1ee6b, 0x1ee6b, + 0x1ee73, 0x1ee73, + 0x1ee78, 0x1ee78, + 0x1ee7d, 0x1ee7d, + 0x1ee7f, 0x1ee7f, + 0x1ee8a, 0x1ee8a, + 0x1ee9c, 0x1eea0, + 0x1eea4, 0x1eea4, + 0x1eeaa, 0x1eeaa, + 0x1eebc, 0x1eeef, + 0x1eef2, 0x1efff, + 0x1f02c, 0x1f02f, + 0x1f094, 0x1f09f, + 0x1f0af, 0x1f0b0, + 0x1f0c0, 0x1f0c0, + 0x1f0d0, 0x1f0d0, + 0x1f0f6, 0x1f0ff, + 0x1f1ae, 0x1f1e5, + 0x1f203, 0x1f20f, + 0x1f23c, 0x1f23f, + 0x1f249, 0x1f24f, + 0x1f252, 0x1f25f, + 0x1f266, 0x1f2ff, + 0x1f6d8, 0x1f6db, + 0x1f6ed, 0x1f6ef, + 0x1f6fd, 0x1f6ff, + 0x1f777, 0x1f77a, + 0x1f7da, 0x1f7df, + 0x1f7ec, 0x1f7ef, + 0x1f7f1, 0x1f7ff, + 0x1f80c, 0x1f80f, + 0x1f848, 0x1f84f, + 0x1f85a, 0x1f85f, + 0x1f888, 0x1f88f, + 0x1f8ae, 0x1f8af, + 0x1f8b2, 0x1f8ff, + 0x1fa54, 0x1fa5f, + 0x1fa6e, 0x1fa6f, + 0x1fa7d, 0x1fa7f, + 0x1fa89, 0x1fa8f, + 0x1fabe, 0x1fabe, + 0x1fac6, 0x1facd, + 0x1fadc, 0x1fadf, + 0x1fae9, 0x1faef, + 0x1faf9, 0x1faff, + 0x1fb93, 0x1fb93, + 0x1fbcb, 0x1fbef, + 0x1fbfa, 0x1ffff, + 0x2a6e0, 0x2a6ff, + 0x2b73a, 0x2b73f, + 0x2b81e, 0x2b81f, + 0x2cea2, 0x2ceaf, + 0x2ebe1, 0x2f7ff, + 0x2fa1e, 0x2ffff, + 0x3134b, 0x3134f, + 0x323b0, 0xe0000, + 0xe0002, 0xe001f, + 0xe0080, 0xe00ff, + 0xe01f0, 0xeffff, + 0xffffe, 0xfffff, + 0x10fffe, 0x10ffff, +}; /* CR_Cn */ + +/* 'Co': General Category */ +static const OnigCodePoint CR_Co[] = { + 3, + 0xe000, 0xf8ff, + 0xf0000, 0xffffd, + 0x100000, 0x10fffd, +}; /* CR_Co */ + +/* 'Cs': General Category */ +static const OnigCodePoint CR_Cs[] = { + 1, + 0xd800, 0xdfff, +}; /* CR_Cs */ + +/* 'L': Major Category */ +static const OnigCodePoint CR_L[] = { + 659, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0370, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0620, 0x064a, + 0x066e, 0x066f, + 0x0671, 0x06d3, + 0x06d5, 0x06d5, + 0x06e5, 0x06e6, + 0x06ee, 0x06ef, + 0x06fa, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x0710, + 0x0712, 0x072f, + 0x074d, 0x07a5, + 0x07b1, 0x07b1, + 0x07ca, 0x07ea, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x0800, 0x0815, + 0x081a, 0x081a, + 0x0824, 0x0824, + 0x0828, 0x0828, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c9, + 0x0904, 0x0939, + 0x093d, 0x093d, + 0x0950, 0x0950, + 0x0958, 0x0961, + 0x0971, 0x0980, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09bd, + 0x09ce, 0x09ce, + 0x09dc, 0x09dd, + 0x09df, 0x09e1, + 0x09f0, 0x09f1, + 0x09fc, 0x09fc, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a72, 0x0a74, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0abd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae1, + 0x0af9, 0x0af9, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b3d, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b71, 0x0b71, + 0x0b83, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bd0, 0x0bd0, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c3d, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c61, + 0x0c80, 0x0c80, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cbd, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0cf1, 0x0cf2, + 0x0d04, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d3d, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d56, + 0x0d5f, 0x0d61, + 0x0d7a, 0x0d7f, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0e01, 0x0e30, + 0x0e32, 0x0e33, + 0x0e40, 0x0e46, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb0, + 0x0eb2, 0x0eb3, + 0x0ebd, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f88, 0x0f8c, + 0x1000, 0x102a, + 0x103f, 0x103f, + 0x1050, 0x1055, + 0x105a, 0x105d, + 0x1061, 0x1061, + 0x1065, 0x1066, + 0x106e, 0x1070, + 0x1075, 0x1081, + 0x108e, 0x108e, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16f1, 0x16f8, + 0x1700, 0x1711, + 0x171f, 0x1731, + 0x1740, 0x1751, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1780, 0x17b3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dc, + 0x1820, 0x1878, + 0x1880, 0x1884, + 0x1887, 0x18a8, + 0x18aa, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1950, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x1a00, 0x1a16, + 0x1a20, 0x1a54, + 0x1aa7, 0x1aa7, + 0x1b05, 0x1b33, + 0x1b45, 0x1b4c, + 0x1b83, 0x1ba0, + 0x1bae, 0x1baf, + 0x1bba, 0x1be5, + 0x1c00, 0x1c23, + 0x1c4d, 0x1c4f, + 0x1c5a, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2183, 0x2184, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2e2f, 0x2e2f, + 0x3005, 0x3006, + 0x3031, 0x3035, + 0x303b, 0x303c, + 0x3041, 0x3096, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa61f, + 0xa62a, 0xa62b, + 0xa640, 0xa66e, + 0xa67f, 0xa69d, + 0xa6a0, 0xa6e5, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa801, + 0xa803, 0xa805, + 0xa807, 0xa80a, + 0xa80c, 0xa822, + 0xa840, 0xa873, + 0xa882, 0xa8b3, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa8fe, + 0xa90a, 0xa925, + 0xa930, 0xa946, + 0xa960, 0xa97c, + 0xa984, 0xa9b2, + 0xa9cf, 0xa9cf, + 0xa9e0, 0xa9e4, + 0xa9e6, 0xa9ef, + 0xa9fa, 0xa9fe, + 0xaa00, 0xaa28, + 0xaa40, 0xaa42, + 0xaa44, 0xaa4b, + 0xaa60, 0xaa76, + 0xaa7a, 0xaa7a, + 0xaa7e, 0xaaaf, + 0xaab1, 0xaab1, + 0xaab5, 0xaab6, + 0xaab9, 0xaabd, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaea, + 0xaaf2, 0xaaf4, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabe2, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb1d, + 0xfb1f, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x10340, + 0x10342, 0x10349, + 0x10350, 0x10375, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x10400, 0x1049d, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a00, + 0x10a10, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d23, + 0x10e80, 0x10ea9, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11003, 0x11037, + 0x11071, 0x11072, + 0x11075, 0x11075, + 0x11083, 0x110af, + 0x110d0, 0x110e8, + 0x11103, 0x11126, + 0x11144, 0x11144, + 0x11147, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11183, 0x111b2, + 0x111c1, 0x111c4, + 0x111da, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x1122b, + 0x1123f, 0x11240, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112de, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x1133d, + 0x11350, 0x11350, + 0x1135d, 0x11361, + 0x11400, 0x11434, + 0x11447, 0x1144a, + 0x1145f, 0x11461, + 0x11480, 0x114af, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x11580, 0x115ae, + 0x115d8, 0x115db, + 0x11600, 0x1162f, + 0x11644, 0x11644, + 0x11680, 0x116aa, + 0x116b8, 0x116b8, + 0x11700, 0x1171a, + 0x11740, 0x11746, + 0x11800, 0x1182b, + 0x118a0, 0x118df, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x1192f, + 0x1193f, 0x1193f, + 0x11941, 0x11941, + 0x119a0, 0x119a7, + 0x119aa, 0x119d0, + 0x119e1, 0x119e1, + 0x119e3, 0x119e3, + 0x11a00, 0x11a00, + 0x11a0b, 0x11a32, + 0x11a3a, 0x11a3a, + 0x11a50, 0x11a50, + 0x11a5c, 0x11a89, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c2e, + 0x11c40, 0x11c40, + 0x11c72, 0x11c8f, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d30, + 0x11d46, 0x11d46, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d89, + 0x11d98, 0x11d98, + 0x11ee0, 0x11ef2, + 0x11f02, 0x11f02, + 0x11f04, 0x11f10, + 0x11f12, 0x11f33, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a70, 0x16abe, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b40, 0x16b43, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f50, 0x16f50, + 0x16f93, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e4d0, 0x1e4eb, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e900, 0x1e943, + 0x1e94b, 0x1e94b, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_L */ + +/* 'LC': General Category */ +static const OnigCodePoint CR_LC[] = { + 143, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00b5, 0x00b5, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x01ba, + 0x01bc, 0x01bf, + 0x01c4, 0x0293, + 0x0295, 0x02af, + 0x0370, 0x0373, + 0x0376, 0x0377, + 0x037b, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0560, 0x0588, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fd, 0x10ff, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1d00, 0x1d2b, + 0x1d6b, 0x1d77, + 0x1d79, 0x1d9a, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2134, + 0x2139, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2183, 0x2184, + 0x2c00, 0x2c7b, + 0x2c7e, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa640, 0xa66d, + 0xa680, 0xa69b, + 0xa722, 0xa76f, + 0xa771, 0xa787, + 0xa78b, 0xa78e, + 0xa790, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f5, 0xa7f6, + 0xa7fa, 0xa7fa, + 0xab30, 0xab5a, + 0xab60, 0xab68, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0x10400, 0x1044f, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x118a0, 0x118df, + 0x16e40, 0x16e7f, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df09, + 0x1df0b, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e900, 0x1e943, +}; /* CR_LC */ + +/* 'Ll': General Category */ +static const OnigCodePoint CR_Ll[] = { + 658, + 0x0061, 0x007a, + 0x00b5, 0x00b5, + 0x00df, 0x00f6, + 0x00f8, 0x00ff, + 0x0101, 0x0101, + 0x0103, 0x0103, + 0x0105, 0x0105, + 0x0107, 0x0107, + 0x0109, 0x0109, + 0x010b, 0x010b, + 0x010d, 0x010d, + 0x010f, 0x010f, + 0x0111, 0x0111, + 0x0113, 0x0113, + 0x0115, 0x0115, + 0x0117, 0x0117, + 0x0119, 0x0119, + 0x011b, 0x011b, + 0x011d, 0x011d, + 0x011f, 0x011f, + 0x0121, 0x0121, + 0x0123, 0x0123, + 0x0125, 0x0125, + 0x0127, 0x0127, + 0x0129, 0x0129, + 0x012b, 0x012b, + 0x012d, 0x012d, + 0x012f, 0x012f, + 0x0131, 0x0131, + 0x0133, 0x0133, + 0x0135, 0x0135, + 0x0137, 0x0138, + 0x013a, 0x013a, + 0x013c, 0x013c, + 0x013e, 0x013e, + 0x0140, 0x0140, + 0x0142, 0x0142, + 0x0144, 0x0144, + 0x0146, 0x0146, + 0x0148, 0x0149, + 0x014b, 0x014b, + 0x014d, 0x014d, + 0x014f, 0x014f, + 0x0151, 0x0151, + 0x0153, 0x0153, + 0x0155, 0x0155, + 0x0157, 0x0157, + 0x0159, 0x0159, + 0x015b, 0x015b, + 0x015d, 0x015d, + 0x015f, 0x015f, + 0x0161, 0x0161, + 0x0163, 0x0163, + 0x0165, 0x0165, + 0x0167, 0x0167, + 0x0169, 0x0169, + 0x016b, 0x016b, + 0x016d, 0x016d, + 0x016f, 0x016f, + 0x0171, 0x0171, + 0x0173, 0x0173, + 0x0175, 0x0175, + 0x0177, 0x0177, + 0x017a, 0x017a, + 0x017c, 0x017c, + 0x017e, 0x0180, + 0x0183, 0x0183, + 0x0185, 0x0185, + 0x0188, 0x0188, + 0x018c, 0x018d, + 0x0192, 0x0192, + 0x0195, 0x0195, + 0x0199, 0x019b, + 0x019e, 0x019e, + 0x01a1, 0x01a1, + 0x01a3, 0x01a3, + 0x01a5, 0x01a5, + 0x01a8, 0x01a8, + 0x01aa, 0x01ab, + 0x01ad, 0x01ad, + 0x01b0, 0x01b0, + 0x01b4, 0x01b4, + 0x01b6, 0x01b6, + 0x01b9, 0x01ba, + 0x01bd, 0x01bf, + 0x01c6, 0x01c6, + 0x01c9, 0x01c9, + 0x01cc, 0x01cc, + 0x01ce, 0x01ce, + 0x01d0, 0x01d0, + 0x01d2, 0x01d2, + 0x01d4, 0x01d4, + 0x01d6, 0x01d6, + 0x01d8, 0x01d8, + 0x01da, 0x01da, + 0x01dc, 0x01dd, + 0x01df, 0x01df, + 0x01e1, 0x01e1, + 0x01e3, 0x01e3, + 0x01e5, 0x01e5, + 0x01e7, 0x01e7, + 0x01e9, 0x01e9, + 0x01eb, 0x01eb, + 0x01ed, 0x01ed, + 0x01ef, 0x01f0, + 0x01f3, 0x01f3, + 0x01f5, 0x01f5, + 0x01f9, 0x01f9, + 0x01fb, 0x01fb, + 0x01fd, 0x01fd, + 0x01ff, 0x01ff, + 0x0201, 0x0201, + 0x0203, 0x0203, + 0x0205, 0x0205, + 0x0207, 0x0207, + 0x0209, 0x0209, + 0x020b, 0x020b, + 0x020d, 0x020d, + 0x020f, 0x020f, + 0x0211, 0x0211, + 0x0213, 0x0213, + 0x0215, 0x0215, + 0x0217, 0x0217, + 0x0219, 0x0219, + 0x021b, 0x021b, + 0x021d, 0x021d, + 0x021f, 0x021f, + 0x0221, 0x0221, + 0x0223, 0x0223, + 0x0225, 0x0225, + 0x0227, 0x0227, + 0x0229, 0x0229, + 0x022b, 0x022b, + 0x022d, 0x022d, + 0x022f, 0x022f, + 0x0231, 0x0231, + 0x0233, 0x0239, + 0x023c, 0x023c, + 0x023f, 0x0240, + 0x0242, 0x0242, + 0x0247, 0x0247, + 0x0249, 0x0249, + 0x024b, 0x024b, + 0x024d, 0x024d, + 0x024f, 0x0293, + 0x0295, 0x02af, + 0x0371, 0x0371, + 0x0373, 0x0373, + 0x0377, 0x0377, + 0x037b, 0x037d, + 0x0390, 0x0390, + 0x03ac, 0x03ce, + 0x03d0, 0x03d1, + 0x03d5, 0x03d7, + 0x03d9, 0x03d9, + 0x03db, 0x03db, + 0x03dd, 0x03dd, + 0x03df, 0x03df, + 0x03e1, 0x03e1, + 0x03e3, 0x03e3, + 0x03e5, 0x03e5, + 0x03e7, 0x03e7, + 0x03e9, 0x03e9, + 0x03eb, 0x03eb, + 0x03ed, 0x03ed, + 0x03ef, 0x03f3, + 0x03f5, 0x03f5, + 0x03f8, 0x03f8, + 0x03fb, 0x03fc, + 0x0430, 0x045f, + 0x0461, 0x0461, + 0x0463, 0x0463, + 0x0465, 0x0465, + 0x0467, 0x0467, + 0x0469, 0x0469, + 0x046b, 0x046b, + 0x046d, 0x046d, + 0x046f, 0x046f, + 0x0471, 0x0471, + 0x0473, 0x0473, + 0x0475, 0x0475, + 0x0477, 0x0477, + 0x0479, 0x0479, + 0x047b, 0x047b, + 0x047d, 0x047d, + 0x047f, 0x047f, + 0x0481, 0x0481, + 0x048b, 0x048b, + 0x048d, 0x048d, + 0x048f, 0x048f, + 0x0491, 0x0491, + 0x0493, 0x0493, + 0x0495, 0x0495, + 0x0497, 0x0497, + 0x0499, 0x0499, + 0x049b, 0x049b, + 0x049d, 0x049d, + 0x049f, 0x049f, + 0x04a1, 0x04a1, + 0x04a3, 0x04a3, + 0x04a5, 0x04a5, + 0x04a7, 0x04a7, + 0x04a9, 0x04a9, + 0x04ab, 0x04ab, + 0x04ad, 0x04ad, + 0x04af, 0x04af, + 0x04b1, 0x04b1, + 0x04b3, 0x04b3, + 0x04b5, 0x04b5, + 0x04b7, 0x04b7, + 0x04b9, 0x04b9, + 0x04bb, 0x04bb, + 0x04bd, 0x04bd, + 0x04bf, 0x04bf, + 0x04c2, 0x04c2, + 0x04c4, 0x04c4, + 0x04c6, 0x04c6, + 0x04c8, 0x04c8, + 0x04ca, 0x04ca, + 0x04cc, 0x04cc, + 0x04ce, 0x04cf, + 0x04d1, 0x04d1, + 0x04d3, 0x04d3, + 0x04d5, 0x04d5, + 0x04d7, 0x04d7, + 0x04d9, 0x04d9, + 0x04db, 0x04db, + 0x04dd, 0x04dd, + 0x04df, 0x04df, + 0x04e1, 0x04e1, + 0x04e3, 0x04e3, + 0x04e5, 0x04e5, + 0x04e7, 0x04e7, + 0x04e9, 0x04e9, + 0x04eb, 0x04eb, + 0x04ed, 0x04ed, + 0x04ef, 0x04ef, + 0x04f1, 0x04f1, + 0x04f3, 0x04f3, + 0x04f5, 0x04f5, + 0x04f7, 0x04f7, + 0x04f9, 0x04f9, + 0x04fb, 0x04fb, + 0x04fd, 0x04fd, + 0x04ff, 0x04ff, + 0x0501, 0x0501, + 0x0503, 0x0503, + 0x0505, 0x0505, + 0x0507, 0x0507, + 0x0509, 0x0509, + 0x050b, 0x050b, + 0x050d, 0x050d, + 0x050f, 0x050f, + 0x0511, 0x0511, + 0x0513, 0x0513, + 0x0515, 0x0515, + 0x0517, 0x0517, + 0x0519, 0x0519, + 0x051b, 0x051b, + 0x051d, 0x051d, + 0x051f, 0x051f, + 0x0521, 0x0521, + 0x0523, 0x0523, + 0x0525, 0x0525, + 0x0527, 0x0527, + 0x0529, 0x0529, + 0x052b, 0x052b, + 0x052d, 0x052d, + 0x052f, 0x052f, + 0x0560, 0x0588, + 0x10d0, 0x10fa, + 0x10fd, 0x10ff, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1d00, 0x1d2b, + 0x1d6b, 0x1d77, + 0x1d79, 0x1d9a, + 0x1e01, 0x1e01, + 0x1e03, 0x1e03, + 0x1e05, 0x1e05, + 0x1e07, 0x1e07, + 0x1e09, 0x1e09, + 0x1e0b, 0x1e0b, + 0x1e0d, 0x1e0d, + 0x1e0f, 0x1e0f, + 0x1e11, 0x1e11, + 0x1e13, 0x1e13, + 0x1e15, 0x1e15, + 0x1e17, 0x1e17, + 0x1e19, 0x1e19, + 0x1e1b, 0x1e1b, + 0x1e1d, 0x1e1d, + 0x1e1f, 0x1e1f, + 0x1e21, 0x1e21, + 0x1e23, 0x1e23, + 0x1e25, 0x1e25, + 0x1e27, 0x1e27, + 0x1e29, 0x1e29, + 0x1e2b, 0x1e2b, + 0x1e2d, 0x1e2d, + 0x1e2f, 0x1e2f, + 0x1e31, 0x1e31, + 0x1e33, 0x1e33, + 0x1e35, 0x1e35, + 0x1e37, 0x1e37, + 0x1e39, 0x1e39, + 0x1e3b, 0x1e3b, + 0x1e3d, 0x1e3d, + 0x1e3f, 0x1e3f, + 0x1e41, 0x1e41, + 0x1e43, 0x1e43, + 0x1e45, 0x1e45, + 0x1e47, 0x1e47, + 0x1e49, 0x1e49, + 0x1e4b, 0x1e4b, + 0x1e4d, 0x1e4d, + 0x1e4f, 0x1e4f, + 0x1e51, 0x1e51, + 0x1e53, 0x1e53, + 0x1e55, 0x1e55, + 0x1e57, 0x1e57, + 0x1e59, 0x1e59, + 0x1e5b, 0x1e5b, + 0x1e5d, 0x1e5d, + 0x1e5f, 0x1e5f, + 0x1e61, 0x1e61, + 0x1e63, 0x1e63, + 0x1e65, 0x1e65, + 0x1e67, 0x1e67, + 0x1e69, 0x1e69, + 0x1e6b, 0x1e6b, + 0x1e6d, 0x1e6d, + 0x1e6f, 0x1e6f, + 0x1e71, 0x1e71, + 0x1e73, 0x1e73, + 0x1e75, 0x1e75, + 0x1e77, 0x1e77, + 0x1e79, 0x1e79, + 0x1e7b, 0x1e7b, + 0x1e7d, 0x1e7d, + 0x1e7f, 0x1e7f, + 0x1e81, 0x1e81, + 0x1e83, 0x1e83, + 0x1e85, 0x1e85, + 0x1e87, 0x1e87, + 0x1e89, 0x1e89, + 0x1e8b, 0x1e8b, + 0x1e8d, 0x1e8d, + 0x1e8f, 0x1e8f, + 0x1e91, 0x1e91, + 0x1e93, 0x1e93, + 0x1e95, 0x1e9d, + 0x1e9f, 0x1e9f, + 0x1ea1, 0x1ea1, + 0x1ea3, 0x1ea3, + 0x1ea5, 0x1ea5, + 0x1ea7, 0x1ea7, + 0x1ea9, 0x1ea9, + 0x1eab, 0x1eab, + 0x1ead, 0x1ead, + 0x1eaf, 0x1eaf, + 0x1eb1, 0x1eb1, + 0x1eb3, 0x1eb3, + 0x1eb5, 0x1eb5, + 0x1eb7, 0x1eb7, + 0x1eb9, 0x1eb9, + 0x1ebb, 0x1ebb, + 0x1ebd, 0x1ebd, + 0x1ebf, 0x1ebf, + 0x1ec1, 0x1ec1, + 0x1ec3, 0x1ec3, + 0x1ec5, 0x1ec5, + 0x1ec7, 0x1ec7, + 0x1ec9, 0x1ec9, + 0x1ecb, 0x1ecb, + 0x1ecd, 0x1ecd, + 0x1ecf, 0x1ecf, + 0x1ed1, 0x1ed1, + 0x1ed3, 0x1ed3, + 0x1ed5, 0x1ed5, + 0x1ed7, 0x1ed7, + 0x1ed9, 0x1ed9, + 0x1edb, 0x1edb, + 0x1edd, 0x1edd, + 0x1edf, 0x1edf, + 0x1ee1, 0x1ee1, + 0x1ee3, 0x1ee3, + 0x1ee5, 0x1ee5, + 0x1ee7, 0x1ee7, + 0x1ee9, 0x1ee9, + 0x1eeb, 0x1eeb, + 0x1eed, 0x1eed, + 0x1eef, 0x1eef, + 0x1ef1, 0x1ef1, + 0x1ef3, 0x1ef3, + 0x1ef5, 0x1ef5, + 0x1ef7, 0x1ef7, + 0x1ef9, 0x1ef9, + 0x1efb, 0x1efb, + 0x1efd, 0x1efd, + 0x1eff, 0x1f07, + 0x1f10, 0x1f15, + 0x1f20, 0x1f27, + 0x1f30, 0x1f37, + 0x1f40, 0x1f45, + 0x1f50, 0x1f57, + 0x1f60, 0x1f67, + 0x1f70, 0x1f7d, + 0x1f80, 0x1f87, + 0x1f90, 0x1f97, + 0x1fa0, 0x1fa7, + 0x1fb0, 0x1fb4, + 0x1fb6, 0x1fb7, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fc7, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fd7, + 0x1fe0, 0x1fe7, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ff7, + 0x210a, 0x210a, + 0x210e, 0x210f, + 0x2113, 0x2113, + 0x212f, 0x212f, + 0x2134, 0x2134, + 0x2139, 0x2139, + 0x213c, 0x213d, + 0x2146, 0x2149, + 0x214e, 0x214e, + 0x2184, 0x2184, + 0x2c30, 0x2c5f, + 0x2c61, 0x2c61, + 0x2c65, 0x2c66, + 0x2c68, 0x2c68, + 0x2c6a, 0x2c6a, + 0x2c6c, 0x2c6c, + 0x2c71, 0x2c71, + 0x2c73, 0x2c74, + 0x2c76, 0x2c7b, + 0x2c81, 0x2c81, + 0x2c83, 0x2c83, + 0x2c85, 0x2c85, + 0x2c87, 0x2c87, + 0x2c89, 0x2c89, + 0x2c8b, 0x2c8b, + 0x2c8d, 0x2c8d, + 0x2c8f, 0x2c8f, + 0x2c91, 0x2c91, + 0x2c93, 0x2c93, + 0x2c95, 0x2c95, + 0x2c97, 0x2c97, + 0x2c99, 0x2c99, + 0x2c9b, 0x2c9b, + 0x2c9d, 0x2c9d, + 0x2c9f, 0x2c9f, + 0x2ca1, 0x2ca1, + 0x2ca3, 0x2ca3, + 0x2ca5, 0x2ca5, + 0x2ca7, 0x2ca7, + 0x2ca9, 0x2ca9, + 0x2cab, 0x2cab, + 0x2cad, 0x2cad, + 0x2caf, 0x2caf, + 0x2cb1, 0x2cb1, + 0x2cb3, 0x2cb3, + 0x2cb5, 0x2cb5, + 0x2cb7, 0x2cb7, + 0x2cb9, 0x2cb9, + 0x2cbb, 0x2cbb, + 0x2cbd, 0x2cbd, + 0x2cbf, 0x2cbf, + 0x2cc1, 0x2cc1, + 0x2cc3, 0x2cc3, + 0x2cc5, 0x2cc5, + 0x2cc7, 0x2cc7, + 0x2cc9, 0x2cc9, + 0x2ccb, 0x2ccb, + 0x2ccd, 0x2ccd, + 0x2ccf, 0x2ccf, + 0x2cd1, 0x2cd1, + 0x2cd3, 0x2cd3, + 0x2cd5, 0x2cd5, + 0x2cd7, 0x2cd7, + 0x2cd9, 0x2cd9, + 0x2cdb, 0x2cdb, + 0x2cdd, 0x2cdd, + 0x2cdf, 0x2cdf, + 0x2ce1, 0x2ce1, + 0x2ce3, 0x2ce4, + 0x2cec, 0x2cec, + 0x2cee, 0x2cee, + 0x2cf3, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa641, 0xa641, + 0xa643, 0xa643, + 0xa645, 0xa645, + 0xa647, 0xa647, + 0xa649, 0xa649, + 0xa64b, 0xa64b, + 0xa64d, 0xa64d, + 0xa64f, 0xa64f, + 0xa651, 0xa651, + 0xa653, 0xa653, + 0xa655, 0xa655, + 0xa657, 0xa657, + 0xa659, 0xa659, + 0xa65b, 0xa65b, + 0xa65d, 0xa65d, + 0xa65f, 0xa65f, + 0xa661, 0xa661, + 0xa663, 0xa663, + 0xa665, 0xa665, + 0xa667, 0xa667, + 0xa669, 0xa669, + 0xa66b, 0xa66b, + 0xa66d, 0xa66d, + 0xa681, 0xa681, + 0xa683, 0xa683, + 0xa685, 0xa685, + 0xa687, 0xa687, + 0xa689, 0xa689, + 0xa68b, 0xa68b, + 0xa68d, 0xa68d, + 0xa68f, 0xa68f, + 0xa691, 0xa691, + 0xa693, 0xa693, + 0xa695, 0xa695, + 0xa697, 0xa697, + 0xa699, 0xa699, + 0xa69b, 0xa69b, + 0xa723, 0xa723, + 0xa725, 0xa725, + 0xa727, 0xa727, + 0xa729, 0xa729, + 0xa72b, 0xa72b, + 0xa72d, 0xa72d, + 0xa72f, 0xa731, + 0xa733, 0xa733, + 0xa735, 0xa735, + 0xa737, 0xa737, + 0xa739, 0xa739, + 0xa73b, 0xa73b, + 0xa73d, 0xa73d, + 0xa73f, 0xa73f, + 0xa741, 0xa741, + 0xa743, 0xa743, + 0xa745, 0xa745, + 0xa747, 0xa747, + 0xa749, 0xa749, + 0xa74b, 0xa74b, + 0xa74d, 0xa74d, + 0xa74f, 0xa74f, + 0xa751, 0xa751, + 0xa753, 0xa753, + 0xa755, 0xa755, + 0xa757, 0xa757, + 0xa759, 0xa759, + 0xa75b, 0xa75b, + 0xa75d, 0xa75d, + 0xa75f, 0xa75f, + 0xa761, 0xa761, + 0xa763, 0xa763, + 0xa765, 0xa765, + 0xa767, 0xa767, + 0xa769, 0xa769, + 0xa76b, 0xa76b, + 0xa76d, 0xa76d, + 0xa76f, 0xa76f, + 0xa771, 0xa778, + 0xa77a, 0xa77a, + 0xa77c, 0xa77c, + 0xa77f, 0xa77f, + 0xa781, 0xa781, + 0xa783, 0xa783, + 0xa785, 0xa785, + 0xa787, 0xa787, + 0xa78c, 0xa78c, + 0xa78e, 0xa78e, + 0xa791, 0xa791, + 0xa793, 0xa795, + 0xa797, 0xa797, + 0xa799, 0xa799, + 0xa79b, 0xa79b, + 0xa79d, 0xa79d, + 0xa79f, 0xa79f, + 0xa7a1, 0xa7a1, + 0xa7a3, 0xa7a3, + 0xa7a5, 0xa7a5, + 0xa7a7, 0xa7a7, + 0xa7a9, 0xa7a9, + 0xa7af, 0xa7af, + 0xa7b5, 0xa7b5, + 0xa7b7, 0xa7b7, + 0xa7b9, 0xa7b9, + 0xa7bb, 0xa7bb, + 0xa7bd, 0xa7bd, + 0xa7bf, 0xa7bf, + 0xa7c1, 0xa7c1, + 0xa7c3, 0xa7c3, + 0xa7c8, 0xa7c8, + 0xa7ca, 0xa7ca, + 0xa7d1, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d5, + 0xa7d7, 0xa7d7, + 0xa7d9, 0xa7d9, + 0xa7f6, 0xa7f6, + 0xa7fa, 0xa7fa, + 0xab30, 0xab5a, + 0xab60, 0xab68, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff41, 0xff5a, + 0x10428, 0x1044f, + 0x104d8, 0x104fb, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10cc0, 0x10cf2, + 0x118c0, 0x118df, + 0x16e60, 0x16e7f, + 0x1d41a, 0x1d433, + 0x1d44e, 0x1d454, + 0x1d456, 0x1d467, + 0x1d482, 0x1d49b, + 0x1d4b6, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d4cf, + 0x1d4ea, 0x1d503, + 0x1d51e, 0x1d537, + 0x1d552, 0x1d56b, + 0x1d586, 0x1d59f, + 0x1d5ba, 0x1d5d3, + 0x1d5ee, 0x1d607, + 0x1d622, 0x1d63b, + 0x1d656, 0x1d66f, + 0x1d68a, 0x1d6a5, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6e1, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d71b, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d755, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d78f, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7c9, + 0x1d7cb, 0x1d7cb, + 0x1df00, 0x1df09, + 0x1df0b, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e922, 0x1e943, +}; /* CR_Ll */ + +/* 'Lm': General Category */ +static const OnigCodePoint CR_Lm[] = { + 71, + 0x02b0, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0374, 0x0374, + 0x037a, 0x037a, + 0x0559, 0x0559, + 0x0640, 0x0640, + 0x06e5, 0x06e6, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x081a, 0x081a, + 0x0824, 0x0824, + 0x0828, 0x0828, + 0x08c9, 0x08c9, + 0x0971, 0x0971, + 0x0e46, 0x0e46, + 0x0ec6, 0x0ec6, + 0x10fc, 0x10fc, + 0x17d7, 0x17d7, + 0x1843, 0x1843, + 0x1aa7, 0x1aa7, + 0x1c78, 0x1c7d, + 0x1d2c, 0x1d6a, + 0x1d78, 0x1d78, + 0x1d9b, 0x1dbf, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2c7c, 0x2c7d, + 0x2d6f, 0x2d6f, + 0x2e2f, 0x2e2f, + 0x3005, 0x3005, + 0x3031, 0x3035, + 0x303b, 0x303b, + 0x309d, 0x309e, + 0x30fc, 0x30fe, + 0xa015, 0xa015, + 0xa4f8, 0xa4fd, + 0xa60c, 0xa60c, + 0xa67f, 0xa67f, + 0xa69c, 0xa69d, + 0xa717, 0xa71f, + 0xa770, 0xa770, + 0xa788, 0xa788, + 0xa7f2, 0xa7f4, + 0xa7f8, 0xa7f9, + 0xa9cf, 0xa9cf, + 0xa9e6, 0xa9e6, + 0xaa70, 0xaa70, + 0xaadd, 0xaadd, + 0xaaf3, 0xaaf4, + 0xab5c, 0xab5f, + 0xab69, 0xab69, + 0xff70, 0xff70, + 0xff9e, 0xff9f, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x16b40, 0x16b43, + 0x16f93, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1e030, 0x1e06d, + 0x1e137, 0x1e13d, + 0x1e4eb, 0x1e4eb, + 0x1e94b, 0x1e94b, +}; /* CR_Lm */ + +/* 'Lo': General Category */ +static const OnigCodePoint CR_Lo[] = { + 510, + 0x00aa, 0x00aa, + 0x00ba, 0x00ba, + 0x01bb, 0x01bb, + 0x01c0, 0x01c3, + 0x0294, 0x0294, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0620, 0x063f, + 0x0641, 0x064a, + 0x066e, 0x066f, + 0x0671, 0x06d3, + 0x06d5, 0x06d5, + 0x06ee, 0x06ef, + 0x06fa, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x0710, + 0x0712, 0x072f, + 0x074d, 0x07a5, + 0x07b1, 0x07b1, + 0x07ca, 0x07ea, + 0x0800, 0x0815, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c8, + 0x0904, 0x0939, + 0x093d, 0x093d, + 0x0950, 0x0950, + 0x0958, 0x0961, + 0x0972, 0x0980, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09bd, + 0x09ce, 0x09ce, + 0x09dc, 0x09dd, + 0x09df, 0x09e1, + 0x09f0, 0x09f1, + 0x09fc, 0x09fc, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a72, 0x0a74, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0abd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae1, + 0x0af9, 0x0af9, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b3d, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b71, 0x0b71, + 0x0b83, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bd0, 0x0bd0, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c3d, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c61, + 0x0c80, 0x0c80, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cbd, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0cf1, 0x0cf2, + 0x0d04, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d3d, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d56, + 0x0d5f, 0x0d61, + 0x0d7a, 0x0d7f, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0e01, 0x0e30, + 0x0e32, 0x0e33, + 0x0e40, 0x0e45, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb0, + 0x0eb2, 0x0eb3, + 0x0ebd, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f88, 0x0f8c, + 0x1000, 0x102a, + 0x103f, 0x103f, + 0x1050, 0x1055, + 0x105a, 0x105d, + 0x1061, 0x1061, + 0x1065, 0x1066, + 0x106e, 0x1070, + 0x1075, 0x1081, + 0x108e, 0x108e, + 0x1100, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16f1, 0x16f8, + 0x1700, 0x1711, + 0x171f, 0x1731, + 0x1740, 0x1751, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1780, 0x17b3, + 0x17dc, 0x17dc, + 0x1820, 0x1842, + 0x1844, 0x1878, + 0x1880, 0x1884, + 0x1887, 0x18a8, + 0x18aa, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1950, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x1a00, 0x1a16, + 0x1a20, 0x1a54, + 0x1b05, 0x1b33, + 0x1b45, 0x1b4c, + 0x1b83, 0x1ba0, + 0x1bae, 0x1baf, + 0x1bba, 0x1be5, + 0x1c00, 0x1c23, + 0x1c4d, 0x1c4f, + 0x1c5a, 0x1c77, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x2135, 0x2138, + 0x2d30, 0x2d67, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x3006, 0x3006, + 0x303c, 0x303c, + 0x3041, 0x3096, + 0x309f, 0x309f, + 0x30a1, 0x30fa, + 0x30ff, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa014, + 0xa016, 0xa48c, + 0xa4d0, 0xa4f7, + 0xa500, 0xa60b, + 0xa610, 0xa61f, + 0xa62a, 0xa62b, + 0xa66e, 0xa66e, + 0xa6a0, 0xa6e5, + 0xa78f, 0xa78f, + 0xa7f7, 0xa7f7, + 0xa7fb, 0xa801, + 0xa803, 0xa805, + 0xa807, 0xa80a, + 0xa80c, 0xa822, + 0xa840, 0xa873, + 0xa882, 0xa8b3, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa8fe, + 0xa90a, 0xa925, + 0xa930, 0xa946, + 0xa960, 0xa97c, + 0xa984, 0xa9b2, + 0xa9e0, 0xa9e4, + 0xa9e7, 0xa9ef, + 0xa9fa, 0xa9fe, + 0xaa00, 0xaa28, + 0xaa40, 0xaa42, + 0xaa44, 0xaa4b, + 0xaa60, 0xaa6f, + 0xaa71, 0xaa76, + 0xaa7a, 0xaa7a, + 0xaa7e, 0xaaaf, + 0xaab1, 0xaab1, + 0xaab5, 0xaab6, + 0xaab9, 0xaabd, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadc, + 0xaae0, 0xaaea, + 0xaaf2, 0xaaf2, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xabc0, 0xabe2, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb1d, 0xfb1d, + 0xfb1f, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff66, 0xff6f, + 0xff71, 0xff9d, + 0xffa0, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x10340, + 0x10342, 0x10349, + 0x10350, 0x10375, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x10450, 0x1049d, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a00, + 0x10a10, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10d00, 0x10d23, + 0x10e80, 0x10ea9, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11003, 0x11037, + 0x11071, 0x11072, + 0x11075, 0x11075, + 0x11083, 0x110af, + 0x110d0, 0x110e8, + 0x11103, 0x11126, + 0x11144, 0x11144, + 0x11147, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11183, 0x111b2, + 0x111c1, 0x111c4, + 0x111da, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x1122b, + 0x1123f, 0x11240, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112de, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x1133d, + 0x11350, 0x11350, + 0x1135d, 0x11361, + 0x11400, 0x11434, + 0x11447, 0x1144a, + 0x1145f, 0x11461, + 0x11480, 0x114af, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x11580, 0x115ae, + 0x115d8, 0x115db, + 0x11600, 0x1162f, + 0x11644, 0x11644, + 0x11680, 0x116aa, + 0x116b8, 0x116b8, + 0x11700, 0x1171a, + 0x11740, 0x11746, + 0x11800, 0x1182b, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x1192f, + 0x1193f, 0x1193f, + 0x11941, 0x11941, + 0x119a0, 0x119a7, + 0x119aa, 0x119d0, + 0x119e1, 0x119e1, + 0x119e3, 0x119e3, + 0x11a00, 0x11a00, + 0x11a0b, 0x11a32, + 0x11a3a, 0x11a3a, + 0x11a50, 0x11a50, + 0x11a5c, 0x11a89, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c2e, + 0x11c40, 0x11c40, + 0x11c72, 0x11c8f, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d30, + 0x11d46, 0x11d46, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d89, + 0x11d98, 0x11d98, + 0x11ee0, 0x11ef2, + 0x11f02, 0x11f02, + 0x11f04, 0x11f10, + 0x11f12, 0x11f33, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a70, 0x16abe, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16f00, 0x16f4a, + 0x16f50, 0x16f50, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1df0a, 0x1df0a, + 0x1e100, 0x1e12c, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e4d0, 0x1e4ea, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Lo */ + +/* 'Lt': General Category */ +static const OnigCodePoint CR_Lt[] = { + 10, + 0x01c5, 0x01c5, + 0x01c8, 0x01c8, + 0x01cb, 0x01cb, + 0x01f2, 0x01f2, + 0x1f88, 0x1f8f, + 0x1f98, 0x1f9f, + 0x1fa8, 0x1faf, + 0x1fbc, 0x1fbc, + 0x1fcc, 0x1fcc, + 0x1ffc, 0x1ffc, +}; /* CR_Lt */ + +/* 'Lu': General Category */ +static const OnigCodePoint CR_Lu[] = { + 646, + 0x0041, 0x005a, + 0x00c0, 0x00d6, + 0x00d8, 0x00de, + 0x0100, 0x0100, + 0x0102, 0x0102, + 0x0104, 0x0104, + 0x0106, 0x0106, + 0x0108, 0x0108, + 0x010a, 0x010a, + 0x010c, 0x010c, + 0x010e, 0x010e, + 0x0110, 0x0110, + 0x0112, 0x0112, + 0x0114, 0x0114, + 0x0116, 0x0116, + 0x0118, 0x0118, + 0x011a, 0x011a, + 0x011c, 0x011c, + 0x011e, 0x011e, + 0x0120, 0x0120, + 0x0122, 0x0122, + 0x0124, 0x0124, + 0x0126, 0x0126, + 0x0128, 0x0128, + 0x012a, 0x012a, + 0x012c, 0x012c, + 0x012e, 0x012e, + 0x0130, 0x0130, + 0x0132, 0x0132, + 0x0134, 0x0134, + 0x0136, 0x0136, + 0x0139, 0x0139, + 0x013b, 0x013b, + 0x013d, 0x013d, + 0x013f, 0x013f, + 0x0141, 0x0141, + 0x0143, 0x0143, + 0x0145, 0x0145, + 0x0147, 0x0147, + 0x014a, 0x014a, + 0x014c, 0x014c, + 0x014e, 0x014e, + 0x0150, 0x0150, + 0x0152, 0x0152, + 0x0154, 0x0154, + 0x0156, 0x0156, + 0x0158, 0x0158, + 0x015a, 0x015a, + 0x015c, 0x015c, + 0x015e, 0x015e, + 0x0160, 0x0160, + 0x0162, 0x0162, + 0x0164, 0x0164, + 0x0166, 0x0166, + 0x0168, 0x0168, + 0x016a, 0x016a, + 0x016c, 0x016c, + 0x016e, 0x016e, + 0x0170, 0x0170, + 0x0172, 0x0172, + 0x0174, 0x0174, + 0x0176, 0x0176, + 0x0178, 0x0179, + 0x017b, 0x017b, + 0x017d, 0x017d, + 0x0181, 0x0182, + 0x0184, 0x0184, + 0x0186, 0x0187, + 0x0189, 0x018b, + 0x018e, 0x0191, + 0x0193, 0x0194, + 0x0196, 0x0198, + 0x019c, 0x019d, + 0x019f, 0x01a0, + 0x01a2, 0x01a2, + 0x01a4, 0x01a4, + 0x01a6, 0x01a7, + 0x01a9, 0x01a9, + 0x01ac, 0x01ac, + 0x01ae, 0x01af, + 0x01b1, 0x01b3, + 0x01b5, 0x01b5, + 0x01b7, 0x01b8, + 0x01bc, 0x01bc, + 0x01c4, 0x01c4, + 0x01c7, 0x01c7, + 0x01ca, 0x01ca, + 0x01cd, 0x01cd, + 0x01cf, 0x01cf, + 0x01d1, 0x01d1, + 0x01d3, 0x01d3, + 0x01d5, 0x01d5, + 0x01d7, 0x01d7, + 0x01d9, 0x01d9, + 0x01db, 0x01db, + 0x01de, 0x01de, + 0x01e0, 0x01e0, + 0x01e2, 0x01e2, + 0x01e4, 0x01e4, + 0x01e6, 0x01e6, + 0x01e8, 0x01e8, + 0x01ea, 0x01ea, + 0x01ec, 0x01ec, + 0x01ee, 0x01ee, + 0x01f1, 0x01f1, + 0x01f4, 0x01f4, + 0x01f6, 0x01f8, + 0x01fa, 0x01fa, + 0x01fc, 0x01fc, + 0x01fe, 0x01fe, + 0x0200, 0x0200, + 0x0202, 0x0202, + 0x0204, 0x0204, + 0x0206, 0x0206, + 0x0208, 0x0208, + 0x020a, 0x020a, + 0x020c, 0x020c, + 0x020e, 0x020e, + 0x0210, 0x0210, + 0x0212, 0x0212, + 0x0214, 0x0214, + 0x0216, 0x0216, + 0x0218, 0x0218, + 0x021a, 0x021a, + 0x021c, 0x021c, + 0x021e, 0x021e, + 0x0220, 0x0220, + 0x0222, 0x0222, + 0x0224, 0x0224, + 0x0226, 0x0226, + 0x0228, 0x0228, + 0x022a, 0x022a, + 0x022c, 0x022c, + 0x022e, 0x022e, + 0x0230, 0x0230, + 0x0232, 0x0232, + 0x023a, 0x023b, + 0x023d, 0x023e, + 0x0241, 0x0241, + 0x0243, 0x0246, + 0x0248, 0x0248, + 0x024a, 0x024a, + 0x024c, 0x024c, + 0x024e, 0x024e, + 0x0370, 0x0370, + 0x0372, 0x0372, + 0x0376, 0x0376, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x038f, + 0x0391, 0x03a1, + 0x03a3, 0x03ab, + 0x03cf, 0x03cf, + 0x03d2, 0x03d4, + 0x03d8, 0x03d8, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03e2, + 0x03e4, 0x03e4, + 0x03e6, 0x03e6, + 0x03e8, 0x03e8, + 0x03ea, 0x03ea, + 0x03ec, 0x03ec, + 0x03ee, 0x03ee, + 0x03f4, 0x03f4, + 0x03f7, 0x03f7, + 0x03f9, 0x03fa, + 0x03fd, 0x042f, + 0x0460, 0x0460, + 0x0462, 0x0462, + 0x0464, 0x0464, + 0x0466, 0x0466, + 0x0468, 0x0468, + 0x046a, 0x046a, + 0x046c, 0x046c, + 0x046e, 0x046e, + 0x0470, 0x0470, + 0x0472, 0x0472, + 0x0474, 0x0474, + 0x0476, 0x0476, + 0x0478, 0x0478, + 0x047a, 0x047a, + 0x047c, 0x047c, + 0x047e, 0x047e, + 0x0480, 0x0480, + 0x048a, 0x048a, + 0x048c, 0x048c, + 0x048e, 0x048e, + 0x0490, 0x0490, + 0x0492, 0x0492, + 0x0494, 0x0494, + 0x0496, 0x0496, + 0x0498, 0x0498, + 0x049a, 0x049a, + 0x049c, 0x049c, + 0x049e, 0x049e, + 0x04a0, 0x04a0, + 0x04a2, 0x04a2, + 0x04a4, 0x04a4, + 0x04a6, 0x04a6, + 0x04a8, 0x04a8, + 0x04aa, 0x04aa, + 0x04ac, 0x04ac, + 0x04ae, 0x04ae, + 0x04b0, 0x04b0, + 0x04b2, 0x04b2, + 0x04b4, 0x04b4, + 0x04b6, 0x04b6, + 0x04b8, 0x04b8, + 0x04ba, 0x04ba, + 0x04bc, 0x04bc, + 0x04be, 0x04be, + 0x04c0, 0x04c1, + 0x04c3, 0x04c3, + 0x04c5, 0x04c5, + 0x04c7, 0x04c7, + 0x04c9, 0x04c9, + 0x04cb, 0x04cb, + 0x04cd, 0x04cd, + 0x04d0, 0x04d0, + 0x04d2, 0x04d2, + 0x04d4, 0x04d4, + 0x04d6, 0x04d6, + 0x04d8, 0x04d8, + 0x04da, 0x04da, + 0x04dc, 0x04dc, + 0x04de, 0x04de, + 0x04e0, 0x04e0, + 0x04e2, 0x04e2, + 0x04e4, 0x04e4, + 0x04e6, 0x04e6, + 0x04e8, 0x04e8, + 0x04ea, 0x04ea, + 0x04ec, 0x04ec, + 0x04ee, 0x04ee, + 0x04f0, 0x04f0, + 0x04f2, 0x04f2, + 0x04f4, 0x04f4, + 0x04f6, 0x04f6, + 0x04f8, 0x04f8, + 0x04fa, 0x04fa, + 0x04fc, 0x04fc, + 0x04fe, 0x04fe, + 0x0500, 0x0500, + 0x0502, 0x0502, + 0x0504, 0x0504, + 0x0506, 0x0506, + 0x0508, 0x0508, + 0x050a, 0x050a, + 0x050c, 0x050c, + 0x050e, 0x050e, + 0x0510, 0x0510, + 0x0512, 0x0512, + 0x0514, 0x0514, + 0x0516, 0x0516, + 0x0518, 0x0518, + 0x051a, 0x051a, + 0x051c, 0x051c, + 0x051e, 0x051e, + 0x0520, 0x0520, + 0x0522, 0x0522, + 0x0524, 0x0524, + 0x0526, 0x0526, + 0x0528, 0x0528, + 0x052a, 0x052a, + 0x052c, 0x052c, + 0x052e, 0x052e, + 0x0531, 0x0556, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x13a0, 0x13f5, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1e00, 0x1e00, + 0x1e02, 0x1e02, + 0x1e04, 0x1e04, + 0x1e06, 0x1e06, + 0x1e08, 0x1e08, + 0x1e0a, 0x1e0a, + 0x1e0c, 0x1e0c, + 0x1e0e, 0x1e0e, + 0x1e10, 0x1e10, + 0x1e12, 0x1e12, + 0x1e14, 0x1e14, + 0x1e16, 0x1e16, + 0x1e18, 0x1e18, + 0x1e1a, 0x1e1a, + 0x1e1c, 0x1e1c, + 0x1e1e, 0x1e1e, + 0x1e20, 0x1e20, + 0x1e22, 0x1e22, + 0x1e24, 0x1e24, + 0x1e26, 0x1e26, + 0x1e28, 0x1e28, + 0x1e2a, 0x1e2a, + 0x1e2c, 0x1e2c, + 0x1e2e, 0x1e2e, + 0x1e30, 0x1e30, + 0x1e32, 0x1e32, + 0x1e34, 0x1e34, + 0x1e36, 0x1e36, + 0x1e38, 0x1e38, + 0x1e3a, 0x1e3a, + 0x1e3c, 0x1e3c, + 0x1e3e, 0x1e3e, + 0x1e40, 0x1e40, + 0x1e42, 0x1e42, + 0x1e44, 0x1e44, + 0x1e46, 0x1e46, + 0x1e48, 0x1e48, + 0x1e4a, 0x1e4a, + 0x1e4c, 0x1e4c, + 0x1e4e, 0x1e4e, + 0x1e50, 0x1e50, + 0x1e52, 0x1e52, + 0x1e54, 0x1e54, + 0x1e56, 0x1e56, + 0x1e58, 0x1e58, + 0x1e5a, 0x1e5a, + 0x1e5c, 0x1e5c, + 0x1e5e, 0x1e5e, + 0x1e60, 0x1e60, + 0x1e62, 0x1e62, + 0x1e64, 0x1e64, + 0x1e66, 0x1e66, + 0x1e68, 0x1e68, + 0x1e6a, 0x1e6a, + 0x1e6c, 0x1e6c, + 0x1e6e, 0x1e6e, + 0x1e70, 0x1e70, + 0x1e72, 0x1e72, + 0x1e74, 0x1e74, + 0x1e76, 0x1e76, + 0x1e78, 0x1e78, + 0x1e7a, 0x1e7a, + 0x1e7c, 0x1e7c, + 0x1e7e, 0x1e7e, + 0x1e80, 0x1e80, + 0x1e82, 0x1e82, + 0x1e84, 0x1e84, + 0x1e86, 0x1e86, + 0x1e88, 0x1e88, + 0x1e8a, 0x1e8a, + 0x1e8c, 0x1e8c, + 0x1e8e, 0x1e8e, + 0x1e90, 0x1e90, + 0x1e92, 0x1e92, + 0x1e94, 0x1e94, + 0x1e9e, 0x1e9e, + 0x1ea0, 0x1ea0, + 0x1ea2, 0x1ea2, + 0x1ea4, 0x1ea4, + 0x1ea6, 0x1ea6, + 0x1ea8, 0x1ea8, + 0x1eaa, 0x1eaa, + 0x1eac, 0x1eac, + 0x1eae, 0x1eae, + 0x1eb0, 0x1eb0, + 0x1eb2, 0x1eb2, + 0x1eb4, 0x1eb4, + 0x1eb6, 0x1eb6, + 0x1eb8, 0x1eb8, + 0x1eba, 0x1eba, + 0x1ebc, 0x1ebc, + 0x1ebe, 0x1ebe, + 0x1ec0, 0x1ec0, + 0x1ec2, 0x1ec2, + 0x1ec4, 0x1ec4, + 0x1ec6, 0x1ec6, + 0x1ec8, 0x1ec8, + 0x1eca, 0x1eca, + 0x1ecc, 0x1ecc, + 0x1ece, 0x1ece, + 0x1ed0, 0x1ed0, + 0x1ed2, 0x1ed2, + 0x1ed4, 0x1ed4, + 0x1ed6, 0x1ed6, + 0x1ed8, 0x1ed8, + 0x1eda, 0x1eda, + 0x1edc, 0x1edc, + 0x1ede, 0x1ede, + 0x1ee0, 0x1ee0, + 0x1ee2, 0x1ee2, + 0x1ee4, 0x1ee4, + 0x1ee6, 0x1ee6, + 0x1ee8, 0x1ee8, + 0x1eea, 0x1eea, + 0x1eec, 0x1eec, + 0x1eee, 0x1eee, + 0x1ef0, 0x1ef0, + 0x1ef2, 0x1ef2, + 0x1ef4, 0x1ef4, + 0x1ef6, 0x1ef6, + 0x1ef8, 0x1ef8, + 0x1efa, 0x1efa, + 0x1efc, 0x1efc, + 0x1efe, 0x1efe, + 0x1f08, 0x1f0f, + 0x1f18, 0x1f1d, + 0x1f28, 0x1f2f, + 0x1f38, 0x1f3f, + 0x1f48, 0x1f4d, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f5f, + 0x1f68, 0x1f6f, + 0x1fb8, 0x1fbb, + 0x1fc8, 0x1fcb, + 0x1fd8, 0x1fdb, + 0x1fe8, 0x1fec, + 0x1ff8, 0x1ffb, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210b, 0x210d, + 0x2110, 0x2112, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x2130, 0x2133, + 0x213e, 0x213f, + 0x2145, 0x2145, + 0x2183, 0x2183, + 0x2c00, 0x2c2f, + 0x2c60, 0x2c60, + 0x2c62, 0x2c64, + 0x2c67, 0x2c67, + 0x2c69, 0x2c69, + 0x2c6b, 0x2c6b, + 0x2c6d, 0x2c70, + 0x2c72, 0x2c72, + 0x2c75, 0x2c75, + 0x2c7e, 0x2c80, + 0x2c82, 0x2c82, + 0x2c84, 0x2c84, + 0x2c86, 0x2c86, + 0x2c88, 0x2c88, + 0x2c8a, 0x2c8a, + 0x2c8c, 0x2c8c, + 0x2c8e, 0x2c8e, + 0x2c90, 0x2c90, + 0x2c92, 0x2c92, + 0x2c94, 0x2c94, + 0x2c96, 0x2c96, + 0x2c98, 0x2c98, + 0x2c9a, 0x2c9a, + 0x2c9c, 0x2c9c, + 0x2c9e, 0x2c9e, + 0x2ca0, 0x2ca0, + 0x2ca2, 0x2ca2, + 0x2ca4, 0x2ca4, + 0x2ca6, 0x2ca6, + 0x2ca8, 0x2ca8, + 0x2caa, 0x2caa, + 0x2cac, 0x2cac, + 0x2cae, 0x2cae, + 0x2cb0, 0x2cb0, + 0x2cb2, 0x2cb2, + 0x2cb4, 0x2cb4, + 0x2cb6, 0x2cb6, + 0x2cb8, 0x2cb8, + 0x2cba, 0x2cba, + 0x2cbc, 0x2cbc, + 0x2cbe, 0x2cbe, + 0x2cc0, 0x2cc0, + 0x2cc2, 0x2cc2, + 0x2cc4, 0x2cc4, + 0x2cc6, 0x2cc6, + 0x2cc8, 0x2cc8, + 0x2cca, 0x2cca, + 0x2ccc, 0x2ccc, + 0x2cce, 0x2cce, + 0x2cd0, 0x2cd0, + 0x2cd2, 0x2cd2, + 0x2cd4, 0x2cd4, + 0x2cd6, 0x2cd6, + 0x2cd8, 0x2cd8, + 0x2cda, 0x2cda, + 0x2cdc, 0x2cdc, + 0x2cde, 0x2cde, + 0x2ce0, 0x2ce0, + 0x2ce2, 0x2ce2, + 0x2ceb, 0x2ceb, + 0x2ced, 0x2ced, + 0x2cf2, 0x2cf2, + 0xa640, 0xa640, + 0xa642, 0xa642, + 0xa644, 0xa644, + 0xa646, 0xa646, + 0xa648, 0xa648, + 0xa64a, 0xa64a, + 0xa64c, 0xa64c, + 0xa64e, 0xa64e, + 0xa650, 0xa650, + 0xa652, 0xa652, + 0xa654, 0xa654, + 0xa656, 0xa656, + 0xa658, 0xa658, + 0xa65a, 0xa65a, + 0xa65c, 0xa65c, + 0xa65e, 0xa65e, + 0xa660, 0xa660, + 0xa662, 0xa662, + 0xa664, 0xa664, + 0xa666, 0xa666, + 0xa668, 0xa668, + 0xa66a, 0xa66a, + 0xa66c, 0xa66c, + 0xa680, 0xa680, + 0xa682, 0xa682, + 0xa684, 0xa684, + 0xa686, 0xa686, + 0xa688, 0xa688, + 0xa68a, 0xa68a, + 0xa68c, 0xa68c, + 0xa68e, 0xa68e, + 0xa690, 0xa690, + 0xa692, 0xa692, + 0xa694, 0xa694, + 0xa696, 0xa696, + 0xa698, 0xa698, + 0xa69a, 0xa69a, + 0xa722, 0xa722, + 0xa724, 0xa724, + 0xa726, 0xa726, + 0xa728, 0xa728, + 0xa72a, 0xa72a, + 0xa72c, 0xa72c, + 0xa72e, 0xa72e, + 0xa732, 0xa732, + 0xa734, 0xa734, + 0xa736, 0xa736, + 0xa738, 0xa738, + 0xa73a, 0xa73a, + 0xa73c, 0xa73c, + 0xa73e, 0xa73e, + 0xa740, 0xa740, + 0xa742, 0xa742, + 0xa744, 0xa744, + 0xa746, 0xa746, + 0xa748, 0xa748, + 0xa74a, 0xa74a, + 0xa74c, 0xa74c, + 0xa74e, 0xa74e, + 0xa750, 0xa750, + 0xa752, 0xa752, + 0xa754, 0xa754, + 0xa756, 0xa756, + 0xa758, 0xa758, + 0xa75a, 0xa75a, + 0xa75c, 0xa75c, + 0xa75e, 0xa75e, + 0xa760, 0xa760, + 0xa762, 0xa762, + 0xa764, 0xa764, + 0xa766, 0xa766, + 0xa768, 0xa768, + 0xa76a, 0xa76a, + 0xa76c, 0xa76c, + 0xa76e, 0xa76e, + 0xa779, 0xa779, + 0xa77b, 0xa77b, + 0xa77d, 0xa77e, + 0xa780, 0xa780, + 0xa782, 0xa782, + 0xa784, 0xa784, + 0xa786, 0xa786, + 0xa78b, 0xa78b, + 0xa78d, 0xa78d, + 0xa790, 0xa790, + 0xa792, 0xa792, + 0xa796, 0xa796, + 0xa798, 0xa798, + 0xa79a, 0xa79a, + 0xa79c, 0xa79c, + 0xa79e, 0xa79e, + 0xa7a0, 0xa7a0, + 0xa7a2, 0xa7a2, + 0xa7a4, 0xa7a4, + 0xa7a6, 0xa7a6, + 0xa7a8, 0xa7a8, + 0xa7aa, 0xa7ae, + 0xa7b0, 0xa7b4, + 0xa7b6, 0xa7b6, + 0xa7b8, 0xa7b8, + 0xa7ba, 0xa7ba, + 0xa7bc, 0xa7bc, + 0xa7be, 0xa7be, + 0xa7c0, 0xa7c0, + 0xa7c2, 0xa7c2, + 0xa7c4, 0xa7c7, + 0xa7c9, 0xa7c9, + 0xa7d0, 0xa7d0, + 0xa7d6, 0xa7d6, + 0xa7d8, 0xa7d8, + 0xa7f5, 0xa7f5, + 0xff21, 0xff3a, + 0x10400, 0x10427, + 0x104b0, 0x104d3, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10c80, 0x10cb2, + 0x118a0, 0x118bf, + 0x16e40, 0x16e5f, + 0x1d400, 0x1d419, + 0x1d434, 0x1d44d, + 0x1d468, 0x1d481, + 0x1d49c, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b5, + 0x1d4d0, 0x1d4e9, + 0x1d504, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d538, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d56c, 0x1d585, + 0x1d5a0, 0x1d5b9, + 0x1d5d4, 0x1d5ed, + 0x1d608, 0x1d621, + 0x1d63c, 0x1d655, + 0x1d670, 0x1d689, + 0x1d6a8, 0x1d6c0, + 0x1d6e2, 0x1d6fa, + 0x1d71c, 0x1d734, + 0x1d756, 0x1d76e, + 0x1d790, 0x1d7a8, + 0x1d7ca, 0x1d7ca, + 0x1e900, 0x1e921, +}; /* CR_Lu */ + +/* 'M': Major Category */ +static const OnigCodePoint CR_M[] = { + 310, + 0x0300, 0x036f, + 0x0483, 0x0489, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x0610, 0x061a, + 0x064b, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dc, + 0x06df, 0x06e4, + 0x06e7, 0x06e8, + 0x06ea, 0x06ed, + 0x0711, 0x0711, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f3, + 0x07fd, 0x07fd, + 0x0816, 0x0819, + 0x081b, 0x0823, + 0x0825, 0x0827, + 0x0829, 0x082d, + 0x0859, 0x085b, + 0x0898, 0x089f, + 0x08ca, 0x08e1, + 0x08e3, 0x0903, + 0x093a, 0x093c, + 0x093e, 0x094f, + 0x0951, 0x0957, + 0x0962, 0x0963, + 0x0981, 0x0983, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09e2, 0x09e3, + 0x09fe, 0x09fe, + 0x0a01, 0x0a03, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a83, + 0x0abc, 0x0abc, + 0x0abe, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0aff, + 0x0b01, 0x0b03, + 0x0b3c, 0x0b3c, + 0x0b3e, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0c00, 0x0c04, + 0x0c3c, 0x0c3c, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c83, + 0x0cbc, 0x0cbc, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0ce2, 0x0ce3, + 0x0cf3, 0x0cf3, + 0x0d00, 0x0d03, + 0x0d3b, 0x0d3c, + 0x0d3e, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d62, 0x0d63, + 0x0d81, 0x0d83, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df3, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e47, 0x0e4e, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0ebc, + 0x0ec8, 0x0ece, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f3e, 0x0f3f, + 0x0f71, 0x0f84, + 0x0f86, 0x0f87, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x102b, 0x103e, + 0x1056, 0x1059, + 0x105e, 0x1060, + 0x1062, 0x1064, + 0x1067, 0x106d, + 0x1071, 0x1074, + 0x1082, 0x108d, + 0x108f, 0x108f, + 0x109a, 0x109d, + 0x135d, 0x135f, + 0x1712, 0x1715, + 0x1732, 0x1734, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b4, 0x17d3, + 0x17dd, 0x17dd, + 0x180b, 0x180d, + 0x180f, 0x180f, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1a17, 0x1a1b, + 0x1a55, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b04, + 0x1b34, 0x1b44, + 0x1b6b, 0x1b73, + 0x1b80, 0x1b82, + 0x1ba1, 0x1bad, + 0x1be6, 0x1bf3, + 0x1c24, 0x1c37, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf7, 0x1cf9, + 0x1dc0, 0x1dff, + 0x20d0, 0x20f0, + 0x2cef, 0x2cf1, + 0x2d7f, 0x2d7f, + 0x2de0, 0x2dff, + 0x302a, 0x302f, + 0x3099, 0x309a, + 0xa66f, 0xa672, + 0xa674, 0xa67d, + 0xa69e, 0xa69f, + 0xa6f0, 0xa6f1, + 0xa802, 0xa802, + 0xa806, 0xa806, + 0xa80b, 0xa80b, + 0xa823, 0xa827, + 0xa82c, 0xa82c, + 0xa880, 0xa881, + 0xa8b4, 0xa8c5, + 0xa8e0, 0xa8f1, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92d, + 0xa947, 0xa953, + 0xa980, 0xa983, + 0xa9b3, 0xa9c0, + 0xa9e5, 0xa9e5, + 0xaa29, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4d, + 0xaa7b, 0xaa7d, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabf, + 0xaac1, 0xaac1, + 0xaaeb, 0xaaef, + 0xaaf5, 0xaaf6, + 0xabe3, 0xabea, + 0xabec, 0xabed, + 0xfb1e, 0xfb1e, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x10376, 0x1037a, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10ae5, 0x10ae6, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11000, 0x11002, + 0x11038, 0x11046, + 0x11070, 0x11070, + 0x11073, 0x11074, + 0x1107f, 0x11082, + 0x110b0, 0x110ba, + 0x110c2, 0x110c2, + 0x11100, 0x11102, + 0x11127, 0x11134, + 0x11145, 0x11146, + 0x11173, 0x11173, + 0x11180, 0x11182, + 0x111b3, 0x111c0, + 0x111c9, 0x111cc, + 0x111ce, 0x111cf, + 0x1122c, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112ea, + 0x11300, 0x11303, + 0x1133b, 0x1133c, + 0x1133e, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11357, 0x11357, + 0x11362, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11435, 0x11446, + 0x1145e, 0x1145e, + 0x114b0, 0x114c3, + 0x115af, 0x115b5, + 0x115b8, 0x115c0, + 0x115dc, 0x115dd, + 0x11630, 0x11640, + 0x116ab, 0x116b7, + 0x1171d, 0x1172b, + 0x1182c, 0x1183a, + 0x11930, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x1193e, + 0x11940, 0x11940, + 0x11942, 0x11943, + 0x119d1, 0x119d7, + 0x119da, 0x119e0, + 0x119e4, 0x119e4, + 0x11a01, 0x11a0a, + 0x11a33, 0x11a39, + 0x11a3b, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a51, 0x11a5b, + 0x11a8a, 0x11a99, + 0x11c2f, 0x11c36, + 0x11c38, 0x11c3f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d45, + 0x11d47, 0x11d47, + 0x11d8a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d97, + 0x11ef3, 0x11ef6, + 0x11f00, 0x11f01, + 0x11f03, 0x11f03, + 0x11f34, 0x11f3a, + 0x11f3e, 0x11f42, + 0x13440, 0x13440, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16f4f, 0x16f4f, + 0x16f51, 0x16f87, + 0x16f8f, 0x16f92, + 0x16fe4, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d169, + 0x1d16d, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e08f, 0x1e08f, + 0x1e130, 0x1e136, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e4ec, 0x1e4ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e94a, + 0xe0100, 0xe01ef, +}; /* CR_M */ + +/* 'Mc': General Category */ +static const OnigCodePoint CR_Mc[] = { + 182, + 0x0903, 0x0903, + 0x093b, 0x093b, + 0x093e, 0x0940, + 0x0949, 0x094c, + 0x094e, 0x094f, + 0x0982, 0x0983, + 0x09be, 0x09c0, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x09d7, 0x09d7, + 0x0a03, 0x0a03, + 0x0a3e, 0x0a40, + 0x0a83, 0x0a83, + 0x0abe, 0x0ac0, + 0x0ac9, 0x0ac9, + 0x0acb, 0x0acc, + 0x0b02, 0x0b03, + 0x0b3e, 0x0b3e, + 0x0b40, 0x0b40, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0b57, 0x0b57, + 0x0bbe, 0x0bbf, + 0x0bc1, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0bd7, 0x0bd7, + 0x0c01, 0x0c03, + 0x0c41, 0x0c44, + 0x0c82, 0x0c83, + 0x0cbe, 0x0cbe, + 0x0cc0, 0x0cc4, + 0x0cc7, 0x0cc8, + 0x0cca, 0x0ccb, + 0x0cd5, 0x0cd6, + 0x0cf3, 0x0cf3, + 0x0d02, 0x0d03, + 0x0d3e, 0x0d40, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d57, 0x0d57, + 0x0d82, 0x0d83, + 0x0dcf, 0x0dd1, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df3, + 0x0f3e, 0x0f3f, + 0x0f7f, 0x0f7f, + 0x102b, 0x102c, + 0x1031, 0x1031, + 0x1038, 0x1038, + 0x103b, 0x103c, + 0x1056, 0x1057, + 0x1062, 0x1064, + 0x1067, 0x106d, + 0x1083, 0x1084, + 0x1087, 0x108c, + 0x108f, 0x108f, + 0x109a, 0x109c, + 0x1715, 0x1715, + 0x1734, 0x1734, + 0x17b6, 0x17b6, + 0x17be, 0x17c5, + 0x17c7, 0x17c8, + 0x1923, 0x1926, + 0x1929, 0x192b, + 0x1930, 0x1931, + 0x1933, 0x1938, + 0x1a19, 0x1a1a, + 0x1a55, 0x1a55, + 0x1a57, 0x1a57, + 0x1a61, 0x1a61, + 0x1a63, 0x1a64, + 0x1a6d, 0x1a72, + 0x1b04, 0x1b04, + 0x1b35, 0x1b35, + 0x1b3b, 0x1b3b, + 0x1b3d, 0x1b41, + 0x1b43, 0x1b44, + 0x1b82, 0x1b82, + 0x1ba1, 0x1ba1, + 0x1ba6, 0x1ba7, + 0x1baa, 0x1baa, + 0x1be7, 0x1be7, + 0x1bea, 0x1bec, + 0x1bee, 0x1bee, + 0x1bf2, 0x1bf3, + 0x1c24, 0x1c2b, + 0x1c34, 0x1c35, + 0x1ce1, 0x1ce1, + 0x1cf7, 0x1cf7, + 0x302e, 0x302f, + 0xa823, 0xa824, + 0xa827, 0xa827, + 0xa880, 0xa881, + 0xa8b4, 0xa8c3, + 0xa952, 0xa953, + 0xa983, 0xa983, + 0xa9b4, 0xa9b5, + 0xa9ba, 0xa9bb, + 0xa9be, 0xa9c0, + 0xaa2f, 0xaa30, + 0xaa33, 0xaa34, + 0xaa4d, 0xaa4d, + 0xaa7b, 0xaa7b, + 0xaa7d, 0xaa7d, + 0xaaeb, 0xaaeb, + 0xaaee, 0xaaef, + 0xaaf5, 0xaaf5, + 0xabe3, 0xabe4, + 0xabe6, 0xabe7, + 0xabe9, 0xabea, + 0xabec, 0xabec, + 0x11000, 0x11000, + 0x11002, 0x11002, + 0x11082, 0x11082, + 0x110b0, 0x110b2, + 0x110b7, 0x110b8, + 0x1112c, 0x1112c, + 0x11145, 0x11146, + 0x11182, 0x11182, + 0x111b3, 0x111b5, + 0x111bf, 0x111c0, + 0x111ce, 0x111ce, + 0x1122c, 0x1122e, + 0x11232, 0x11233, + 0x11235, 0x11235, + 0x112e0, 0x112e2, + 0x11302, 0x11303, + 0x1133e, 0x1133f, + 0x11341, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11357, 0x11357, + 0x11362, 0x11363, + 0x11435, 0x11437, + 0x11440, 0x11441, + 0x11445, 0x11445, + 0x114b0, 0x114b2, + 0x114b9, 0x114b9, + 0x114bb, 0x114be, + 0x114c1, 0x114c1, + 0x115af, 0x115b1, + 0x115b8, 0x115bb, + 0x115be, 0x115be, + 0x11630, 0x11632, + 0x1163b, 0x1163c, + 0x1163e, 0x1163e, + 0x116ac, 0x116ac, + 0x116ae, 0x116af, + 0x116b6, 0x116b6, + 0x11720, 0x11721, + 0x11726, 0x11726, + 0x1182c, 0x1182e, + 0x11838, 0x11838, + 0x11930, 0x11935, + 0x11937, 0x11938, + 0x1193d, 0x1193d, + 0x11940, 0x11940, + 0x11942, 0x11942, + 0x119d1, 0x119d3, + 0x119dc, 0x119df, + 0x119e4, 0x119e4, + 0x11a39, 0x11a39, + 0x11a57, 0x11a58, + 0x11a97, 0x11a97, + 0x11c2f, 0x11c2f, + 0x11c3e, 0x11c3e, + 0x11ca9, 0x11ca9, + 0x11cb1, 0x11cb1, + 0x11cb4, 0x11cb4, + 0x11d8a, 0x11d8e, + 0x11d93, 0x11d94, + 0x11d96, 0x11d96, + 0x11ef5, 0x11ef6, + 0x11f03, 0x11f03, + 0x11f34, 0x11f35, + 0x11f3e, 0x11f3f, + 0x11f41, 0x11f41, + 0x16f51, 0x16f87, + 0x16ff0, 0x16ff1, + 0x1d165, 0x1d166, + 0x1d16d, 0x1d172, +}; /* CR_Mc */ + +/* 'Me': General Category */ +static const OnigCodePoint CR_Me[] = { + 5, + 0x0488, 0x0489, + 0x1abe, 0x1abe, + 0x20dd, 0x20e0, + 0x20e2, 0x20e4, + 0xa670, 0xa672, +}; /* CR_Me */ + +/* 'Mn': General Category */ +static const OnigCodePoint CR_Mn[] = { + 346, + 0x0300, 0x036f, + 0x0483, 0x0487, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x0610, 0x061a, + 0x064b, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dc, + 0x06df, 0x06e4, + 0x06e7, 0x06e8, + 0x06ea, 0x06ed, + 0x0711, 0x0711, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f3, + 0x07fd, 0x07fd, + 0x0816, 0x0819, + 0x081b, 0x0823, + 0x0825, 0x0827, + 0x0829, 0x082d, + 0x0859, 0x085b, + 0x0898, 0x089f, + 0x08ca, 0x08e1, + 0x08e3, 0x0902, + 0x093a, 0x093a, + 0x093c, 0x093c, + 0x0941, 0x0948, + 0x094d, 0x094d, + 0x0951, 0x0957, + 0x0962, 0x0963, + 0x0981, 0x0981, + 0x09bc, 0x09bc, + 0x09c1, 0x09c4, + 0x09cd, 0x09cd, + 0x09e2, 0x09e3, + 0x09fe, 0x09fe, + 0x0a01, 0x0a02, + 0x0a3c, 0x0a3c, + 0x0a41, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a82, + 0x0abc, 0x0abc, + 0x0ac1, 0x0ac5, + 0x0ac7, 0x0ac8, + 0x0acd, 0x0acd, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0aff, + 0x0b01, 0x0b01, + 0x0b3c, 0x0b3c, + 0x0b3f, 0x0b3f, + 0x0b41, 0x0b44, + 0x0b4d, 0x0b4d, + 0x0b55, 0x0b56, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bc0, 0x0bc0, + 0x0bcd, 0x0bcd, + 0x0c00, 0x0c00, + 0x0c04, 0x0c04, + 0x0c3c, 0x0c3c, + 0x0c3e, 0x0c40, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c81, + 0x0cbc, 0x0cbc, + 0x0cbf, 0x0cbf, + 0x0cc6, 0x0cc6, + 0x0ccc, 0x0ccd, + 0x0ce2, 0x0ce3, + 0x0d00, 0x0d01, + 0x0d3b, 0x0d3c, + 0x0d41, 0x0d44, + 0x0d4d, 0x0d4d, + 0x0d62, 0x0d63, + 0x0d81, 0x0d81, + 0x0dca, 0x0dca, + 0x0dd2, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e47, 0x0e4e, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0ebc, + 0x0ec8, 0x0ece, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f71, 0x0f7e, + 0x0f80, 0x0f84, + 0x0f86, 0x0f87, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x102d, 0x1030, + 0x1032, 0x1037, + 0x1039, 0x103a, + 0x103d, 0x103e, + 0x1058, 0x1059, + 0x105e, 0x1060, + 0x1071, 0x1074, + 0x1082, 0x1082, + 0x1085, 0x1086, + 0x108d, 0x108d, + 0x109d, 0x109d, + 0x135d, 0x135f, + 0x1712, 0x1714, + 0x1732, 0x1733, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b4, 0x17b5, + 0x17b7, 0x17bd, + 0x17c6, 0x17c6, + 0x17c9, 0x17d3, + 0x17dd, 0x17dd, + 0x180b, 0x180d, + 0x180f, 0x180f, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x1922, + 0x1927, 0x1928, + 0x1932, 0x1932, + 0x1939, 0x193b, + 0x1a17, 0x1a18, + 0x1a1b, 0x1a1b, + 0x1a56, 0x1a56, + 0x1a58, 0x1a5e, + 0x1a60, 0x1a60, + 0x1a62, 0x1a62, + 0x1a65, 0x1a6c, + 0x1a73, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1ab0, 0x1abd, + 0x1abf, 0x1ace, + 0x1b00, 0x1b03, + 0x1b34, 0x1b34, + 0x1b36, 0x1b3a, + 0x1b3c, 0x1b3c, + 0x1b42, 0x1b42, + 0x1b6b, 0x1b73, + 0x1b80, 0x1b81, + 0x1ba2, 0x1ba5, + 0x1ba8, 0x1ba9, + 0x1bab, 0x1bad, + 0x1be6, 0x1be6, + 0x1be8, 0x1be9, + 0x1bed, 0x1bed, + 0x1bef, 0x1bf1, + 0x1c2c, 0x1c33, + 0x1c36, 0x1c37, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce0, + 0x1ce2, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf8, 0x1cf9, + 0x1dc0, 0x1dff, + 0x20d0, 0x20dc, + 0x20e1, 0x20e1, + 0x20e5, 0x20f0, + 0x2cef, 0x2cf1, + 0x2d7f, 0x2d7f, + 0x2de0, 0x2dff, + 0x302a, 0x302d, + 0x3099, 0x309a, + 0xa66f, 0xa66f, + 0xa674, 0xa67d, + 0xa69e, 0xa69f, + 0xa6f0, 0xa6f1, + 0xa802, 0xa802, + 0xa806, 0xa806, + 0xa80b, 0xa80b, + 0xa825, 0xa826, + 0xa82c, 0xa82c, + 0xa8c4, 0xa8c5, + 0xa8e0, 0xa8f1, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92d, + 0xa947, 0xa951, + 0xa980, 0xa982, + 0xa9b3, 0xa9b3, + 0xa9b6, 0xa9b9, + 0xa9bc, 0xa9bd, + 0xa9e5, 0xa9e5, + 0xaa29, 0xaa2e, + 0xaa31, 0xaa32, + 0xaa35, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4c, + 0xaa7c, 0xaa7c, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabf, + 0xaac1, 0xaac1, + 0xaaec, 0xaaed, + 0xaaf6, 0xaaf6, + 0xabe5, 0xabe5, + 0xabe8, 0xabe8, + 0xabed, 0xabed, + 0xfb1e, 0xfb1e, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x10376, 0x1037a, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10ae5, 0x10ae6, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11001, 0x11001, + 0x11038, 0x11046, + 0x11070, 0x11070, + 0x11073, 0x11074, + 0x1107f, 0x11081, + 0x110b3, 0x110b6, + 0x110b9, 0x110ba, + 0x110c2, 0x110c2, + 0x11100, 0x11102, + 0x11127, 0x1112b, + 0x1112d, 0x11134, + 0x11173, 0x11173, + 0x11180, 0x11181, + 0x111b6, 0x111be, + 0x111c9, 0x111cc, + 0x111cf, 0x111cf, + 0x1122f, 0x11231, + 0x11234, 0x11234, + 0x11236, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112df, + 0x112e3, 0x112ea, + 0x11300, 0x11301, + 0x1133b, 0x1133c, + 0x11340, 0x11340, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11438, 0x1143f, + 0x11442, 0x11444, + 0x11446, 0x11446, + 0x1145e, 0x1145e, + 0x114b3, 0x114b8, + 0x114ba, 0x114ba, + 0x114bf, 0x114c0, + 0x114c2, 0x114c3, + 0x115b2, 0x115b5, + 0x115bc, 0x115bd, + 0x115bf, 0x115c0, + 0x115dc, 0x115dd, + 0x11633, 0x1163a, + 0x1163d, 0x1163d, + 0x1163f, 0x11640, + 0x116ab, 0x116ab, + 0x116ad, 0x116ad, + 0x116b0, 0x116b5, + 0x116b7, 0x116b7, + 0x1171d, 0x1171f, + 0x11722, 0x11725, + 0x11727, 0x1172b, + 0x1182f, 0x11837, + 0x11839, 0x1183a, + 0x1193b, 0x1193c, + 0x1193e, 0x1193e, + 0x11943, 0x11943, + 0x119d4, 0x119d7, + 0x119da, 0x119db, + 0x119e0, 0x119e0, + 0x11a01, 0x11a0a, + 0x11a33, 0x11a38, + 0x11a3b, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a51, 0x11a56, + 0x11a59, 0x11a5b, + 0x11a8a, 0x11a96, + 0x11a98, 0x11a99, + 0x11c30, 0x11c36, + 0x11c38, 0x11c3d, + 0x11c3f, 0x11c3f, + 0x11c92, 0x11ca7, + 0x11caa, 0x11cb0, + 0x11cb2, 0x11cb3, + 0x11cb5, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d45, + 0x11d47, 0x11d47, + 0x11d90, 0x11d91, + 0x11d95, 0x11d95, + 0x11d97, 0x11d97, + 0x11ef3, 0x11ef4, + 0x11f00, 0x11f01, + 0x11f36, 0x11f3a, + 0x11f40, 0x11f40, + 0x11f42, 0x11f42, + 0x13440, 0x13440, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16f4f, 0x16f4f, + 0x16f8f, 0x16f92, + 0x16fe4, 0x16fe4, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d167, 0x1d169, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e08f, 0x1e08f, + 0x1e130, 0x1e136, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e4ec, 0x1e4ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e94a, + 0xe0100, 0xe01ef, +}; /* CR_Mn */ + +/* 'N': Major Category */ +static const OnigCodePoint CR_N[] = { + 137, + 0x0030, 0x0039, + 0x00b2, 0x00b3, + 0x00b9, 0x00b9, + 0x00bc, 0x00be, + 0x0660, 0x0669, + 0x06f0, 0x06f9, + 0x07c0, 0x07c9, + 0x0966, 0x096f, + 0x09e6, 0x09ef, + 0x09f4, 0x09f9, + 0x0a66, 0x0a6f, + 0x0ae6, 0x0aef, + 0x0b66, 0x0b6f, + 0x0b72, 0x0b77, + 0x0be6, 0x0bf2, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7e, + 0x0ce6, 0x0cef, + 0x0d58, 0x0d5e, + 0x0d66, 0x0d78, + 0x0de6, 0x0def, + 0x0e50, 0x0e59, + 0x0ed0, 0x0ed9, + 0x0f20, 0x0f33, + 0x1040, 0x1049, + 0x1090, 0x1099, + 0x1369, 0x137c, + 0x16ee, 0x16f0, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1810, 0x1819, + 0x1946, 0x194f, + 0x19d0, 0x19da, + 0x1a80, 0x1a89, + 0x1a90, 0x1a99, + 0x1b50, 0x1b59, + 0x1bb0, 0x1bb9, + 0x1c40, 0x1c49, + 0x1c50, 0x1c59, + 0x2070, 0x2070, + 0x2074, 0x2079, + 0x2080, 0x2089, + 0x2150, 0x2182, + 0x2185, 0x2189, + 0x2460, 0x249b, + 0x24ea, 0x24ff, + 0x2776, 0x2793, + 0x2cfd, 0x2cfd, + 0x3007, 0x3007, + 0x3021, 0x3029, + 0x3038, 0x303a, + 0x3192, 0x3195, + 0x3220, 0x3229, + 0x3248, 0x324f, + 0x3251, 0x325f, + 0x3280, 0x3289, + 0x32b1, 0x32bf, + 0xa620, 0xa629, + 0xa6e6, 0xa6ef, + 0xa830, 0xa835, + 0xa8d0, 0xa8d9, + 0xa900, 0xa909, + 0xa9d0, 0xa9d9, + 0xa9f0, 0xa9f9, + 0xaa50, 0xaa59, + 0xabf0, 0xabf9, + 0xff10, 0xff19, + 0x10107, 0x10133, + 0x10140, 0x10178, + 0x1018a, 0x1018b, + 0x102e1, 0x102fb, + 0x10320, 0x10323, + 0x10341, 0x10341, + 0x1034a, 0x1034a, + 0x103d1, 0x103d5, + 0x104a0, 0x104a9, + 0x10858, 0x1085f, + 0x10879, 0x1087f, + 0x108a7, 0x108af, + 0x108fb, 0x108ff, + 0x10916, 0x1091b, + 0x109bc, 0x109bd, + 0x109c0, 0x109cf, + 0x109d2, 0x109ff, + 0x10a40, 0x10a48, + 0x10a7d, 0x10a7e, + 0x10a9d, 0x10a9f, + 0x10aeb, 0x10aef, + 0x10b58, 0x10b5f, + 0x10b78, 0x10b7f, + 0x10ba9, 0x10baf, + 0x10cfa, 0x10cff, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10f1d, 0x10f26, + 0x10f51, 0x10f54, + 0x10fc5, 0x10fcb, + 0x11052, 0x1106f, + 0x110f0, 0x110f9, + 0x11136, 0x1113f, + 0x111d0, 0x111d9, + 0x111e1, 0x111f4, + 0x112f0, 0x112f9, + 0x11450, 0x11459, + 0x114d0, 0x114d9, + 0x11650, 0x11659, + 0x116c0, 0x116c9, + 0x11730, 0x1173b, + 0x118e0, 0x118f2, + 0x11950, 0x11959, + 0x11c50, 0x11c6c, + 0x11d50, 0x11d59, + 0x11da0, 0x11da9, + 0x11f50, 0x11f59, + 0x11fc0, 0x11fd4, + 0x12400, 0x1246e, + 0x16a60, 0x16a69, + 0x16ac0, 0x16ac9, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16e80, 0x16e96, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d360, 0x1d378, + 0x1d7ce, 0x1d7ff, + 0x1e140, 0x1e149, + 0x1e2f0, 0x1e2f9, + 0x1e4f0, 0x1e4f9, + 0x1e8c7, 0x1e8cf, + 0x1e950, 0x1e959, + 0x1ec71, 0x1ecab, + 0x1ecad, 0x1ecaf, + 0x1ecb1, 0x1ecb4, + 0x1ed01, 0x1ed2d, + 0x1ed2f, 0x1ed3d, + 0x1f100, 0x1f10c, + 0x1fbf0, 0x1fbf9, +}; /* CR_N */ + +/* 'Nd': General Category */ +#define CR_Nd CR_Digit + +/* 'Nl': General Category */ +static const OnigCodePoint CR_Nl[] = { + 12, + 0x16ee, 0x16f0, + 0x2160, 0x2182, + 0x2185, 0x2188, + 0x3007, 0x3007, + 0x3021, 0x3029, + 0x3038, 0x303a, + 0xa6e6, 0xa6ef, + 0x10140, 0x10174, + 0x10341, 0x10341, + 0x1034a, 0x1034a, + 0x103d1, 0x103d5, + 0x12400, 0x1246e, +}; /* CR_Nl */ + +/* 'No': General Category */ +static const OnigCodePoint CR_No[] = { + 72, + 0x00b2, 0x00b3, + 0x00b9, 0x00b9, + 0x00bc, 0x00be, + 0x09f4, 0x09f9, + 0x0b72, 0x0b77, + 0x0bf0, 0x0bf2, + 0x0c78, 0x0c7e, + 0x0d58, 0x0d5e, + 0x0d70, 0x0d78, + 0x0f2a, 0x0f33, + 0x1369, 0x137c, + 0x17f0, 0x17f9, + 0x19da, 0x19da, + 0x2070, 0x2070, + 0x2074, 0x2079, + 0x2080, 0x2089, + 0x2150, 0x215f, + 0x2189, 0x2189, + 0x2460, 0x249b, + 0x24ea, 0x24ff, + 0x2776, 0x2793, + 0x2cfd, 0x2cfd, + 0x3192, 0x3195, + 0x3220, 0x3229, + 0x3248, 0x324f, + 0x3251, 0x325f, + 0x3280, 0x3289, + 0x32b1, 0x32bf, + 0xa830, 0xa835, + 0x10107, 0x10133, + 0x10175, 0x10178, + 0x1018a, 0x1018b, + 0x102e1, 0x102fb, + 0x10320, 0x10323, + 0x10858, 0x1085f, + 0x10879, 0x1087f, + 0x108a7, 0x108af, + 0x108fb, 0x108ff, + 0x10916, 0x1091b, + 0x109bc, 0x109bd, + 0x109c0, 0x109cf, + 0x109d2, 0x109ff, + 0x10a40, 0x10a48, + 0x10a7d, 0x10a7e, + 0x10a9d, 0x10a9f, + 0x10aeb, 0x10aef, + 0x10b58, 0x10b5f, + 0x10b78, 0x10b7f, + 0x10ba9, 0x10baf, + 0x10cfa, 0x10cff, + 0x10e60, 0x10e7e, + 0x10f1d, 0x10f26, + 0x10f51, 0x10f54, + 0x10fc5, 0x10fcb, + 0x11052, 0x11065, + 0x111e1, 0x111f4, + 0x1173a, 0x1173b, + 0x118ea, 0x118f2, + 0x11c5a, 0x11c6c, + 0x11fc0, 0x11fd4, + 0x16b5b, 0x16b61, + 0x16e80, 0x16e96, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d360, 0x1d378, + 0x1e8c7, 0x1e8cf, + 0x1ec71, 0x1ecab, + 0x1ecad, 0x1ecaf, + 0x1ecb1, 0x1ecb4, + 0x1ed01, 0x1ed2d, + 0x1ed2f, 0x1ed3d, + 0x1f100, 0x1f10c, +}; /* CR_No */ + +/* 'P': Major Category */ +#define CR_P CR_Punct + +/* 'Pc': General Category */ +static const OnigCodePoint CR_Pc[] = { + 6, + 0x005f, 0x005f, + 0x203f, 0x2040, + 0x2054, 0x2054, + 0xfe33, 0xfe34, + 0xfe4d, 0xfe4f, + 0xff3f, 0xff3f, +}; /* CR_Pc */ + +/* 'Pd': General Category */ +static const OnigCodePoint CR_Pd[] = { + 19, + 0x002d, 0x002d, + 0x058a, 0x058a, + 0x05be, 0x05be, + 0x1400, 0x1400, + 0x1806, 0x1806, + 0x2010, 0x2015, + 0x2e17, 0x2e17, + 0x2e1a, 0x2e1a, + 0x2e3a, 0x2e3b, + 0x2e40, 0x2e40, + 0x2e5d, 0x2e5d, + 0x301c, 0x301c, + 0x3030, 0x3030, + 0x30a0, 0x30a0, + 0xfe31, 0xfe32, + 0xfe58, 0xfe58, + 0xfe63, 0xfe63, + 0xff0d, 0xff0d, + 0x10ead, 0x10ead, +}; /* CR_Pd */ + +/* 'Pe': General Category */ +static const OnigCodePoint CR_Pe[] = { + 76, + 0x0029, 0x0029, + 0x005d, 0x005d, + 0x007d, 0x007d, + 0x0f3b, 0x0f3b, + 0x0f3d, 0x0f3d, + 0x169c, 0x169c, + 0x2046, 0x2046, + 0x207e, 0x207e, + 0x208e, 0x208e, + 0x2309, 0x2309, + 0x230b, 0x230b, + 0x232a, 0x232a, + 0x2769, 0x2769, + 0x276b, 0x276b, + 0x276d, 0x276d, + 0x276f, 0x276f, + 0x2771, 0x2771, + 0x2773, 0x2773, + 0x2775, 0x2775, + 0x27c6, 0x27c6, + 0x27e7, 0x27e7, + 0x27e9, 0x27e9, + 0x27eb, 0x27eb, + 0x27ed, 0x27ed, + 0x27ef, 0x27ef, + 0x2984, 0x2984, + 0x2986, 0x2986, + 0x2988, 0x2988, + 0x298a, 0x298a, + 0x298c, 0x298c, + 0x298e, 0x298e, + 0x2990, 0x2990, + 0x2992, 0x2992, + 0x2994, 0x2994, + 0x2996, 0x2996, + 0x2998, 0x2998, + 0x29d9, 0x29d9, + 0x29db, 0x29db, + 0x29fd, 0x29fd, + 0x2e23, 0x2e23, + 0x2e25, 0x2e25, + 0x2e27, 0x2e27, + 0x2e29, 0x2e29, + 0x2e56, 0x2e56, + 0x2e58, 0x2e58, + 0x2e5a, 0x2e5a, + 0x2e5c, 0x2e5c, + 0x3009, 0x3009, + 0x300b, 0x300b, + 0x300d, 0x300d, + 0x300f, 0x300f, + 0x3011, 0x3011, + 0x3015, 0x3015, + 0x3017, 0x3017, + 0x3019, 0x3019, + 0x301b, 0x301b, + 0x301e, 0x301f, + 0xfd3e, 0xfd3e, + 0xfe18, 0xfe18, + 0xfe36, 0xfe36, + 0xfe38, 0xfe38, + 0xfe3a, 0xfe3a, + 0xfe3c, 0xfe3c, + 0xfe3e, 0xfe3e, + 0xfe40, 0xfe40, + 0xfe42, 0xfe42, + 0xfe44, 0xfe44, + 0xfe48, 0xfe48, + 0xfe5a, 0xfe5a, + 0xfe5c, 0xfe5c, + 0xfe5e, 0xfe5e, + 0xff09, 0xff09, + 0xff3d, 0xff3d, + 0xff5d, 0xff5d, + 0xff60, 0xff60, + 0xff63, 0xff63, +}; /* CR_Pe */ + +/* 'Pf': General Category */ +static const OnigCodePoint CR_Pf[] = { + 10, + 0x00bb, 0x00bb, + 0x2019, 0x2019, + 0x201d, 0x201d, + 0x203a, 0x203a, + 0x2e03, 0x2e03, + 0x2e05, 0x2e05, + 0x2e0a, 0x2e0a, + 0x2e0d, 0x2e0d, + 0x2e1d, 0x2e1d, + 0x2e21, 0x2e21, +}; /* CR_Pf */ + +/* 'Pi': General Category */ +static const OnigCodePoint CR_Pi[] = { + 11, + 0x00ab, 0x00ab, + 0x2018, 0x2018, + 0x201b, 0x201c, + 0x201f, 0x201f, + 0x2039, 0x2039, + 0x2e02, 0x2e02, + 0x2e04, 0x2e04, + 0x2e09, 0x2e09, + 0x2e0c, 0x2e0c, + 0x2e1c, 0x2e1c, + 0x2e20, 0x2e20, +}; /* CR_Pi */ + +/* 'Po': General Category */ +static const OnigCodePoint CR_Po[] = { + 187, + 0x0021, 0x0023, + 0x0025, 0x0027, + 0x002a, 0x002a, + 0x002c, 0x002c, + 0x002e, 0x002f, + 0x003a, 0x003b, + 0x003f, 0x0040, + 0x005c, 0x005c, + 0x00a1, 0x00a1, + 0x00a7, 0x00a7, + 0x00b6, 0x00b7, + 0x00bf, 0x00bf, + 0x037e, 0x037e, + 0x0387, 0x0387, + 0x055a, 0x055f, + 0x0589, 0x0589, + 0x05c0, 0x05c0, + 0x05c3, 0x05c3, + 0x05c6, 0x05c6, + 0x05f3, 0x05f4, + 0x0609, 0x060a, + 0x060c, 0x060d, + 0x061b, 0x061b, + 0x061d, 0x061f, + 0x066a, 0x066d, + 0x06d4, 0x06d4, + 0x0700, 0x070d, + 0x07f7, 0x07f9, + 0x0830, 0x083e, + 0x085e, 0x085e, + 0x0964, 0x0965, + 0x0970, 0x0970, + 0x09fd, 0x09fd, + 0x0a76, 0x0a76, + 0x0af0, 0x0af0, + 0x0c77, 0x0c77, + 0x0c84, 0x0c84, + 0x0df4, 0x0df4, + 0x0e4f, 0x0e4f, + 0x0e5a, 0x0e5b, + 0x0f04, 0x0f12, + 0x0f14, 0x0f14, + 0x0f85, 0x0f85, + 0x0fd0, 0x0fd4, + 0x0fd9, 0x0fda, + 0x104a, 0x104f, + 0x10fb, 0x10fb, + 0x1360, 0x1368, + 0x166e, 0x166e, + 0x16eb, 0x16ed, + 0x1735, 0x1736, + 0x17d4, 0x17d6, + 0x17d8, 0x17da, + 0x1800, 0x1805, + 0x1807, 0x180a, + 0x1944, 0x1945, + 0x1a1e, 0x1a1f, + 0x1aa0, 0x1aa6, + 0x1aa8, 0x1aad, + 0x1b5a, 0x1b60, + 0x1b7d, 0x1b7e, + 0x1bfc, 0x1bff, + 0x1c3b, 0x1c3f, + 0x1c7e, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd3, 0x1cd3, + 0x2016, 0x2017, + 0x2020, 0x2027, + 0x2030, 0x2038, + 0x203b, 0x203e, + 0x2041, 0x2043, + 0x2047, 0x2051, + 0x2053, 0x2053, + 0x2055, 0x205e, + 0x2cf9, 0x2cfc, + 0x2cfe, 0x2cff, + 0x2d70, 0x2d70, + 0x2e00, 0x2e01, + 0x2e06, 0x2e08, + 0x2e0b, 0x2e0b, + 0x2e0e, 0x2e16, + 0x2e18, 0x2e19, + 0x2e1b, 0x2e1b, + 0x2e1e, 0x2e1f, + 0x2e2a, 0x2e2e, + 0x2e30, 0x2e39, + 0x2e3c, 0x2e3f, + 0x2e41, 0x2e41, + 0x2e43, 0x2e4f, + 0x2e52, 0x2e54, + 0x3001, 0x3003, + 0x303d, 0x303d, + 0x30fb, 0x30fb, + 0xa4fe, 0xa4ff, + 0xa60d, 0xa60f, + 0xa673, 0xa673, + 0xa67e, 0xa67e, + 0xa6f2, 0xa6f7, + 0xa874, 0xa877, + 0xa8ce, 0xa8cf, + 0xa8f8, 0xa8fa, + 0xa8fc, 0xa8fc, + 0xa92e, 0xa92f, + 0xa95f, 0xa95f, + 0xa9c1, 0xa9cd, + 0xa9de, 0xa9df, + 0xaa5c, 0xaa5f, + 0xaade, 0xaadf, + 0xaaf0, 0xaaf1, + 0xabeb, 0xabeb, + 0xfe10, 0xfe16, + 0xfe19, 0xfe19, + 0xfe30, 0xfe30, + 0xfe45, 0xfe46, + 0xfe49, 0xfe4c, + 0xfe50, 0xfe52, + 0xfe54, 0xfe57, + 0xfe5f, 0xfe61, + 0xfe68, 0xfe68, + 0xfe6a, 0xfe6b, + 0xff01, 0xff03, + 0xff05, 0xff07, + 0xff0a, 0xff0a, + 0xff0c, 0xff0c, + 0xff0e, 0xff0f, + 0xff1a, 0xff1b, + 0xff1f, 0xff20, + 0xff3c, 0xff3c, + 0xff61, 0xff61, + 0xff64, 0xff65, + 0x10100, 0x10102, + 0x1039f, 0x1039f, + 0x103d0, 0x103d0, + 0x1056f, 0x1056f, + 0x10857, 0x10857, + 0x1091f, 0x1091f, + 0x1093f, 0x1093f, + 0x10a50, 0x10a58, + 0x10a7f, 0x10a7f, + 0x10af0, 0x10af6, + 0x10b39, 0x10b3f, + 0x10b99, 0x10b9c, + 0x10f55, 0x10f59, + 0x10f86, 0x10f89, + 0x11047, 0x1104d, + 0x110bb, 0x110bc, + 0x110be, 0x110c1, + 0x11140, 0x11143, + 0x11174, 0x11175, + 0x111c5, 0x111c8, + 0x111cd, 0x111cd, + 0x111db, 0x111db, + 0x111dd, 0x111df, + 0x11238, 0x1123d, + 0x112a9, 0x112a9, + 0x1144b, 0x1144f, + 0x1145a, 0x1145b, + 0x1145d, 0x1145d, + 0x114c6, 0x114c6, + 0x115c1, 0x115d7, + 0x11641, 0x11643, + 0x11660, 0x1166c, + 0x116b9, 0x116b9, + 0x1173c, 0x1173e, + 0x1183b, 0x1183b, + 0x11944, 0x11946, + 0x119e2, 0x119e2, + 0x11a3f, 0x11a46, + 0x11a9a, 0x11a9c, + 0x11a9e, 0x11aa2, + 0x11b00, 0x11b09, + 0x11c41, 0x11c45, + 0x11c70, 0x11c71, + 0x11ef7, 0x11ef8, + 0x11f43, 0x11f4f, + 0x11fff, 0x11fff, + 0x12470, 0x12474, + 0x12ff1, 0x12ff2, + 0x16a6e, 0x16a6f, + 0x16af5, 0x16af5, + 0x16b37, 0x16b3b, + 0x16b44, 0x16b44, + 0x16e97, 0x16e9a, + 0x16fe2, 0x16fe2, + 0x1bc9f, 0x1bc9f, + 0x1da87, 0x1da8b, + 0x1e95e, 0x1e95f, +}; /* CR_Po */ + +/* 'Ps': General Category */ +static const OnigCodePoint CR_Ps[] = { + 79, + 0x0028, 0x0028, + 0x005b, 0x005b, + 0x007b, 0x007b, + 0x0f3a, 0x0f3a, + 0x0f3c, 0x0f3c, + 0x169b, 0x169b, + 0x201a, 0x201a, + 0x201e, 0x201e, + 0x2045, 0x2045, + 0x207d, 0x207d, + 0x208d, 0x208d, + 0x2308, 0x2308, + 0x230a, 0x230a, + 0x2329, 0x2329, + 0x2768, 0x2768, + 0x276a, 0x276a, + 0x276c, 0x276c, + 0x276e, 0x276e, + 0x2770, 0x2770, + 0x2772, 0x2772, + 0x2774, 0x2774, + 0x27c5, 0x27c5, + 0x27e6, 0x27e6, + 0x27e8, 0x27e8, + 0x27ea, 0x27ea, + 0x27ec, 0x27ec, + 0x27ee, 0x27ee, + 0x2983, 0x2983, + 0x2985, 0x2985, + 0x2987, 0x2987, + 0x2989, 0x2989, + 0x298b, 0x298b, + 0x298d, 0x298d, + 0x298f, 0x298f, + 0x2991, 0x2991, + 0x2993, 0x2993, + 0x2995, 0x2995, + 0x2997, 0x2997, + 0x29d8, 0x29d8, + 0x29da, 0x29da, + 0x29fc, 0x29fc, + 0x2e22, 0x2e22, + 0x2e24, 0x2e24, + 0x2e26, 0x2e26, + 0x2e28, 0x2e28, + 0x2e42, 0x2e42, + 0x2e55, 0x2e55, + 0x2e57, 0x2e57, + 0x2e59, 0x2e59, + 0x2e5b, 0x2e5b, + 0x3008, 0x3008, + 0x300a, 0x300a, + 0x300c, 0x300c, + 0x300e, 0x300e, + 0x3010, 0x3010, + 0x3014, 0x3014, + 0x3016, 0x3016, + 0x3018, 0x3018, + 0x301a, 0x301a, + 0x301d, 0x301d, + 0xfd3f, 0xfd3f, + 0xfe17, 0xfe17, + 0xfe35, 0xfe35, + 0xfe37, 0xfe37, + 0xfe39, 0xfe39, + 0xfe3b, 0xfe3b, + 0xfe3d, 0xfe3d, + 0xfe3f, 0xfe3f, + 0xfe41, 0xfe41, + 0xfe43, 0xfe43, + 0xfe47, 0xfe47, + 0xfe59, 0xfe59, + 0xfe5b, 0xfe5b, + 0xfe5d, 0xfe5d, + 0xff08, 0xff08, + 0xff3b, 0xff3b, + 0xff5b, 0xff5b, + 0xff5f, 0xff5f, + 0xff62, 0xff62, +}; /* CR_Ps */ + +/* 'S': Major Category */ +static const OnigCodePoint CR_S[] = { + 232, + 0x0024, 0x0024, + 0x002b, 0x002b, + 0x003c, 0x003e, + 0x005e, 0x005e, + 0x0060, 0x0060, + 0x007c, 0x007c, + 0x007e, 0x007e, + 0x00a2, 0x00a6, + 0x00a8, 0x00a9, + 0x00ac, 0x00ac, + 0x00ae, 0x00b1, + 0x00b4, 0x00b4, + 0x00b8, 0x00b8, + 0x00d7, 0x00d7, + 0x00f7, 0x00f7, + 0x02c2, 0x02c5, + 0x02d2, 0x02df, + 0x02e5, 0x02eb, + 0x02ed, 0x02ed, + 0x02ef, 0x02ff, + 0x0375, 0x0375, + 0x0384, 0x0385, + 0x03f6, 0x03f6, + 0x0482, 0x0482, + 0x058d, 0x058f, + 0x0606, 0x0608, + 0x060b, 0x060b, + 0x060e, 0x060f, + 0x06de, 0x06de, + 0x06e9, 0x06e9, + 0x06fd, 0x06fe, + 0x07f6, 0x07f6, + 0x07fe, 0x07ff, + 0x0888, 0x0888, + 0x09f2, 0x09f3, + 0x09fa, 0x09fb, + 0x0af1, 0x0af1, + 0x0b70, 0x0b70, + 0x0bf3, 0x0bfa, + 0x0c7f, 0x0c7f, + 0x0d4f, 0x0d4f, + 0x0d79, 0x0d79, + 0x0e3f, 0x0e3f, + 0x0f01, 0x0f03, + 0x0f13, 0x0f13, + 0x0f15, 0x0f17, + 0x0f1a, 0x0f1f, + 0x0f34, 0x0f34, + 0x0f36, 0x0f36, + 0x0f38, 0x0f38, + 0x0fbe, 0x0fc5, + 0x0fc7, 0x0fcc, + 0x0fce, 0x0fcf, + 0x0fd5, 0x0fd8, + 0x109e, 0x109f, + 0x1390, 0x1399, + 0x166d, 0x166d, + 0x17db, 0x17db, + 0x1940, 0x1940, + 0x19de, 0x19ff, + 0x1b61, 0x1b6a, + 0x1b74, 0x1b7c, + 0x1fbd, 0x1fbd, + 0x1fbf, 0x1fc1, + 0x1fcd, 0x1fcf, + 0x1fdd, 0x1fdf, + 0x1fed, 0x1fef, + 0x1ffd, 0x1ffe, + 0x2044, 0x2044, + 0x2052, 0x2052, + 0x207a, 0x207c, + 0x208a, 0x208c, + 0x20a0, 0x20c0, + 0x2100, 0x2101, + 0x2103, 0x2106, + 0x2108, 0x2109, + 0x2114, 0x2114, + 0x2116, 0x2118, + 0x211e, 0x2123, + 0x2125, 0x2125, + 0x2127, 0x2127, + 0x2129, 0x2129, + 0x212e, 0x212e, + 0x213a, 0x213b, + 0x2140, 0x2144, + 0x214a, 0x214d, + 0x214f, 0x214f, + 0x218a, 0x218b, + 0x2190, 0x2307, + 0x230c, 0x2328, + 0x232b, 0x2426, + 0x2440, 0x244a, + 0x249c, 0x24e9, + 0x2500, 0x2767, + 0x2794, 0x27c4, + 0x27c7, 0x27e5, + 0x27f0, 0x2982, + 0x2999, 0x29d7, + 0x29dc, 0x29fb, + 0x29fe, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2bff, + 0x2ce5, 0x2cea, + 0x2e50, 0x2e51, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3004, 0x3004, + 0x3012, 0x3013, + 0x3020, 0x3020, + 0x3036, 0x3037, + 0x303e, 0x303f, + 0x309b, 0x309c, + 0x3190, 0x3191, + 0x3196, 0x319f, + 0x31c0, 0x31e3, + 0x3200, 0x321e, + 0x322a, 0x3247, + 0x3250, 0x3250, + 0x3260, 0x327f, + 0x328a, 0x32b0, + 0x32c0, 0x33ff, + 0x4dc0, 0x4dff, + 0xa490, 0xa4c6, + 0xa700, 0xa716, + 0xa720, 0xa721, + 0xa789, 0xa78a, + 0xa828, 0xa82b, + 0xa836, 0xa839, + 0xaa77, 0xaa79, + 0xab5b, 0xab5b, + 0xab6a, 0xab6b, + 0xfb29, 0xfb29, + 0xfbb2, 0xfbc2, + 0xfd40, 0xfd4f, + 0xfdcf, 0xfdcf, + 0xfdfc, 0xfdff, + 0xfe62, 0xfe62, + 0xfe64, 0xfe66, + 0xfe69, 0xfe69, + 0xff04, 0xff04, + 0xff0b, 0xff0b, + 0xff1c, 0xff1e, + 0xff3e, 0xff3e, + 0xff40, 0xff40, + 0xff5c, 0xff5c, + 0xff5e, 0xff5e, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfffc, 0xfffd, + 0x10137, 0x1013f, + 0x10179, 0x10189, + 0x1018c, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fc, + 0x10877, 0x10878, + 0x10ac8, 0x10ac8, + 0x1173f, 0x1173f, + 0x11fd5, 0x11ff1, + 0x16b3c, 0x16b3f, + 0x16b45, 0x16b45, + 0x1bc9c, 0x1bc9c, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d164, + 0x1d16a, 0x1d16c, + 0x1d183, 0x1d184, + 0x1d18c, 0x1d1a9, + 0x1d1ae, 0x1d1ea, + 0x1d200, 0x1d241, + 0x1d245, 0x1d245, + 0x1d300, 0x1d356, + 0x1d6c1, 0x1d6c1, + 0x1d6db, 0x1d6db, + 0x1d6fb, 0x1d6fb, + 0x1d715, 0x1d715, + 0x1d735, 0x1d735, + 0x1d74f, 0x1d74f, + 0x1d76f, 0x1d76f, + 0x1d789, 0x1d789, + 0x1d7a9, 0x1d7a9, + 0x1d7c3, 0x1d7c3, + 0x1d800, 0x1d9ff, + 0x1da37, 0x1da3a, + 0x1da6d, 0x1da74, + 0x1da76, 0x1da83, + 0x1da85, 0x1da86, + 0x1e14f, 0x1e14f, + 0x1e2ff, 0x1e2ff, + 0x1ecac, 0x1ecac, + 0x1ecb0, 0x1ecb0, + 0x1ed2e, 0x1ed2e, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f10d, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, +}; /* CR_S */ + +/* 'Sc': General Category */ +static const OnigCodePoint CR_Sc[] = { + 21, + 0x0024, 0x0024, + 0x00a2, 0x00a5, + 0x058f, 0x058f, + 0x060b, 0x060b, + 0x07fe, 0x07ff, + 0x09f2, 0x09f3, + 0x09fb, 0x09fb, + 0x0af1, 0x0af1, + 0x0bf9, 0x0bf9, + 0x0e3f, 0x0e3f, + 0x17db, 0x17db, + 0x20a0, 0x20c0, + 0xa838, 0xa838, + 0xfdfc, 0xfdfc, + 0xfe69, 0xfe69, + 0xff04, 0xff04, + 0xffe0, 0xffe1, + 0xffe5, 0xffe6, + 0x11fdd, 0x11fe0, + 0x1e2ff, 0x1e2ff, + 0x1ecb0, 0x1ecb0, +}; /* CR_Sc */ + +/* 'Sk': General Category */ +static const OnigCodePoint CR_Sk[] = { + 31, + 0x005e, 0x005e, + 0x0060, 0x0060, + 0x00a8, 0x00a8, + 0x00af, 0x00af, + 0x00b4, 0x00b4, + 0x00b8, 0x00b8, + 0x02c2, 0x02c5, + 0x02d2, 0x02df, + 0x02e5, 0x02eb, + 0x02ed, 0x02ed, + 0x02ef, 0x02ff, + 0x0375, 0x0375, + 0x0384, 0x0385, + 0x0888, 0x0888, + 0x1fbd, 0x1fbd, + 0x1fbf, 0x1fc1, + 0x1fcd, 0x1fcf, + 0x1fdd, 0x1fdf, + 0x1fed, 0x1fef, + 0x1ffd, 0x1ffe, + 0x309b, 0x309c, + 0xa700, 0xa716, + 0xa720, 0xa721, + 0xa789, 0xa78a, + 0xab5b, 0xab5b, + 0xab6a, 0xab6b, + 0xfbb2, 0xfbc2, + 0xff3e, 0xff3e, + 0xff40, 0xff40, + 0xffe3, 0xffe3, + 0x1f3fb, 0x1f3ff, +}; /* CR_Sk */ + +/* 'Sm': General Category */ +static const OnigCodePoint CR_Sm[] = { + 64, + 0x002b, 0x002b, + 0x003c, 0x003e, + 0x007c, 0x007c, + 0x007e, 0x007e, + 0x00ac, 0x00ac, + 0x00b1, 0x00b1, + 0x00d7, 0x00d7, + 0x00f7, 0x00f7, + 0x03f6, 0x03f6, + 0x0606, 0x0608, + 0x2044, 0x2044, + 0x2052, 0x2052, + 0x207a, 0x207c, + 0x208a, 0x208c, + 0x2118, 0x2118, + 0x2140, 0x2144, + 0x214b, 0x214b, + 0x2190, 0x2194, + 0x219a, 0x219b, + 0x21a0, 0x21a0, + 0x21a3, 0x21a3, + 0x21a6, 0x21a6, + 0x21ae, 0x21ae, + 0x21ce, 0x21cf, + 0x21d2, 0x21d2, + 0x21d4, 0x21d4, + 0x21f4, 0x22ff, + 0x2320, 0x2321, + 0x237c, 0x237c, + 0x239b, 0x23b3, + 0x23dc, 0x23e1, + 0x25b7, 0x25b7, + 0x25c1, 0x25c1, + 0x25f8, 0x25ff, + 0x266f, 0x266f, + 0x27c0, 0x27c4, + 0x27c7, 0x27e5, + 0x27f0, 0x27ff, + 0x2900, 0x2982, + 0x2999, 0x29d7, + 0x29dc, 0x29fb, + 0x29fe, 0x2aff, + 0x2b30, 0x2b44, + 0x2b47, 0x2b4c, + 0xfb29, 0xfb29, + 0xfe62, 0xfe62, + 0xfe64, 0xfe66, + 0xff0b, 0xff0b, + 0xff1c, 0xff1e, + 0xff5c, 0xff5c, + 0xff5e, 0xff5e, + 0xffe2, 0xffe2, + 0xffe9, 0xffec, + 0x1d6c1, 0x1d6c1, + 0x1d6db, 0x1d6db, + 0x1d6fb, 0x1d6fb, + 0x1d715, 0x1d715, + 0x1d735, 0x1d735, + 0x1d74f, 0x1d74f, + 0x1d76f, 0x1d76f, + 0x1d789, 0x1d789, + 0x1d7a9, 0x1d7a9, + 0x1d7c3, 0x1d7c3, + 0x1eef0, 0x1eef1, +}; /* CR_Sm */ + +/* 'So': General Category */ +static const OnigCodePoint CR_So[] = { + 184, + 0x00a6, 0x00a6, + 0x00a9, 0x00a9, + 0x00ae, 0x00ae, + 0x00b0, 0x00b0, + 0x0482, 0x0482, + 0x058d, 0x058e, + 0x060e, 0x060f, + 0x06de, 0x06de, + 0x06e9, 0x06e9, + 0x06fd, 0x06fe, + 0x07f6, 0x07f6, + 0x09fa, 0x09fa, + 0x0b70, 0x0b70, + 0x0bf3, 0x0bf8, + 0x0bfa, 0x0bfa, + 0x0c7f, 0x0c7f, + 0x0d4f, 0x0d4f, + 0x0d79, 0x0d79, + 0x0f01, 0x0f03, + 0x0f13, 0x0f13, + 0x0f15, 0x0f17, + 0x0f1a, 0x0f1f, + 0x0f34, 0x0f34, + 0x0f36, 0x0f36, + 0x0f38, 0x0f38, + 0x0fbe, 0x0fc5, + 0x0fc7, 0x0fcc, + 0x0fce, 0x0fcf, + 0x0fd5, 0x0fd8, + 0x109e, 0x109f, + 0x1390, 0x1399, + 0x166d, 0x166d, + 0x1940, 0x1940, + 0x19de, 0x19ff, + 0x1b61, 0x1b6a, + 0x1b74, 0x1b7c, + 0x2100, 0x2101, + 0x2103, 0x2106, + 0x2108, 0x2109, + 0x2114, 0x2114, + 0x2116, 0x2117, + 0x211e, 0x2123, + 0x2125, 0x2125, + 0x2127, 0x2127, + 0x2129, 0x2129, + 0x212e, 0x212e, + 0x213a, 0x213b, + 0x214a, 0x214a, + 0x214c, 0x214d, + 0x214f, 0x214f, + 0x218a, 0x218b, + 0x2195, 0x2199, + 0x219c, 0x219f, + 0x21a1, 0x21a2, + 0x21a4, 0x21a5, + 0x21a7, 0x21ad, + 0x21af, 0x21cd, + 0x21d0, 0x21d1, + 0x21d3, 0x21d3, + 0x21d5, 0x21f3, + 0x2300, 0x2307, + 0x230c, 0x231f, + 0x2322, 0x2328, + 0x232b, 0x237b, + 0x237d, 0x239a, + 0x23b4, 0x23db, + 0x23e2, 0x2426, + 0x2440, 0x244a, + 0x249c, 0x24e9, + 0x2500, 0x25b6, + 0x25b8, 0x25c0, + 0x25c2, 0x25f7, + 0x2600, 0x266e, + 0x2670, 0x2767, + 0x2794, 0x27bf, + 0x2800, 0x28ff, + 0x2b00, 0x2b2f, + 0x2b45, 0x2b46, + 0x2b4d, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2bff, + 0x2ce5, 0x2cea, + 0x2e50, 0x2e51, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3004, 0x3004, + 0x3012, 0x3013, + 0x3020, 0x3020, + 0x3036, 0x3037, + 0x303e, 0x303f, + 0x3190, 0x3191, + 0x3196, 0x319f, + 0x31c0, 0x31e3, + 0x3200, 0x321e, + 0x322a, 0x3247, + 0x3250, 0x3250, + 0x3260, 0x327f, + 0x328a, 0x32b0, + 0x32c0, 0x33ff, + 0x4dc0, 0x4dff, + 0xa490, 0xa4c6, + 0xa828, 0xa82b, + 0xa836, 0xa837, + 0xa839, 0xa839, + 0xaa77, 0xaa79, + 0xfd40, 0xfd4f, + 0xfdcf, 0xfdcf, + 0xfdfd, 0xfdff, + 0xffe4, 0xffe4, + 0xffe8, 0xffe8, + 0xffed, 0xffee, + 0xfffc, 0xfffd, + 0x10137, 0x1013f, + 0x10179, 0x10189, + 0x1018c, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fc, + 0x10877, 0x10878, + 0x10ac8, 0x10ac8, + 0x1173f, 0x1173f, + 0x11fd5, 0x11fdc, + 0x11fe1, 0x11ff1, + 0x16b3c, 0x16b3f, + 0x16b45, 0x16b45, + 0x1bc9c, 0x1bc9c, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d164, + 0x1d16a, 0x1d16c, + 0x1d183, 0x1d184, + 0x1d18c, 0x1d1a9, + 0x1d1ae, 0x1d1ea, + 0x1d200, 0x1d241, + 0x1d245, 0x1d245, + 0x1d300, 0x1d356, + 0x1d800, 0x1d9ff, + 0x1da37, 0x1da3a, + 0x1da6d, 0x1da74, + 0x1da76, 0x1da83, + 0x1da85, 0x1da86, + 0x1e14f, 0x1e14f, + 0x1ecac, 0x1ecac, + 0x1ed2e, 0x1ed2e, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f10d, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f3fa, + 0x1f400, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, +}; /* CR_So */ + +/* 'Z': Major Category */ +static const OnigCodePoint CR_Z[] = { + 8, + 0x0020, 0x0020, + 0x00a0, 0x00a0, + 0x1680, 0x1680, + 0x2000, 0x200a, + 0x2028, 0x2029, + 0x202f, 0x202f, + 0x205f, 0x205f, + 0x3000, 0x3000, +}; /* CR_Z */ + +/* 'Zl': General Category */ +static const OnigCodePoint CR_Zl[] = { + 1, + 0x2028, 0x2028, +}; /* CR_Zl */ + +/* 'Zp': General Category */ +static const OnigCodePoint CR_Zp[] = { + 1, + 0x2029, 0x2029, +}; /* CR_Zp */ + +/* 'Zs': General Category */ +static const OnigCodePoint CR_Zs[] = { + 7, + 0x0020, 0x0020, + 0x00a0, 0x00a0, + 0x1680, 0x1680, + 0x2000, 0x200a, + 0x202f, 0x202f, + 0x205f, 0x205f, + 0x3000, 0x3000, +}; /* CR_Zs */ + +/* 'Math': Derived Property */ +static const OnigCodePoint CR_Math[] = { + 138, + 0x002b, 0x002b, + 0x003c, 0x003e, + 0x005e, 0x005e, + 0x007c, 0x007c, + 0x007e, 0x007e, + 0x00ac, 0x00ac, + 0x00b1, 0x00b1, + 0x00d7, 0x00d7, + 0x00f7, 0x00f7, + 0x03d0, 0x03d2, + 0x03d5, 0x03d5, + 0x03f0, 0x03f1, + 0x03f4, 0x03f6, + 0x0606, 0x0608, + 0x2016, 0x2016, + 0x2032, 0x2034, + 0x2040, 0x2040, + 0x2044, 0x2044, + 0x2052, 0x2052, + 0x2061, 0x2064, + 0x207a, 0x207e, + 0x208a, 0x208e, + 0x20d0, 0x20dc, + 0x20e1, 0x20e1, + 0x20e5, 0x20e6, + 0x20eb, 0x20ef, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2118, 0x211d, + 0x2124, 0x2124, + 0x2128, 0x2129, + 0x212c, 0x212d, + 0x212f, 0x2131, + 0x2133, 0x2138, + 0x213c, 0x2149, + 0x214b, 0x214b, + 0x2190, 0x21a7, + 0x21a9, 0x21ae, + 0x21b0, 0x21b1, + 0x21b6, 0x21b7, + 0x21bc, 0x21db, + 0x21dd, 0x21dd, + 0x21e4, 0x21e5, + 0x21f4, 0x22ff, + 0x2308, 0x230b, + 0x2320, 0x2321, + 0x237c, 0x237c, + 0x239b, 0x23b5, + 0x23b7, 0x23b7, + 0x23d0, 0x23d0, + 0x23dc, 0x23e2, + 0x25a0, 0x25a1, + 0x25ae, 0x25b7, + 0x25bc, 0x25c1, + 0x25c6, 0x25c7, + 0x25ca, 0x25cb, + 0x25cf, 0x25d3, + 0x25e2, 0x25e2, + 0x25e4, 0x25e4, + 0x25e7, 0x25ec, + 0x25f8, 0x25ff, + 0x2605, 0x2606, + 0x2640, 0x2640, + 0x2642, 0x2642, + 0x2660, 0x2663, + 0x266d, 0x266f, + 0x27c0, 0x27ff, + 0x2900, 0x2aff, + 0x2b30, 0x2b44, + 0x2b47, 0x2b4c, + 0xfb29, 0xfb29, + 0xfe61, 0xfe66, + 0xfe68, 0xfe68, + 0xff0b, 0xff0b, + 0xff1c, 0xff1e, + 0xff3c, 0xff3c, + 0xff3e, 0xff3e, + 0xff5c, 0xff5c, + 0xff5e, 0xff5e, + 0xffe2, 0xffe2, + 0xffe9, 0xffec, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, +}; /* CR_Math */ + +/* 'Alphabetic': Derived Property */ +#define CR_Alphabetic CR_Alpha + +/* 'Lowercase': Derived Property */ +#define CR_Lowercase CR_Lower + +/* 'Uppercase': Derived Property */ +#define CR_Uppercase CR_Upper + +/* 'Cased': Derived Property */ +static const OnigCodePoint CR_Cased[] = { + 157, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x01ba, + 0x01bc, 0x01bf, + 0x01c4, 0x0293, + 0x0295, 0x02b8, + 0x02c0, 0x02c1, + 0x02e0, 0x02e4, + 0x0345, 0x0345, + 0x0370, 0x0373, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0560, 0x0588, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x10ff, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1d00, 0x1dbf, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x212d, + 0x212f, 0x2134, + 0x2139, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x217f, + 0x2183, 0x2184, + 0x24b6, 0x24e9, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa640, 0xa66d, + 0xa680, 0xa69d, + 0xa722, 0xa787, + 0xa78b, 0xa78e, + 0xa790, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa7f6, + 0xa7f8, 0xa7fa, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0x10400, 0x1044f, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10780, 0x10780, + 0x10783, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x118a0, 0x118df, + 0x16e40, 0x16e7f, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df09, + 0x1df0b, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e900, 0x1e943, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, +}; /* CR_Cased */ + +/* 'Case_Ignorable': Derived Property */ +static const OnigCodePoint CR_Case_Ignorable[] = { + 437, + 0x0027, 0x0027, + 0x002e, 0x002e, + 0x003a, 0x003a, + 0x005e, 0x005e, + 0x0060, 0x0060, + 0x00a8, 0x00a8, + 0x00ad, 0x00ad, + 0x00af, 0x00af, + 0x00b4, 0x00b4, + 0x00b7, 0x00b8, + 0x02b0, 0x036f, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x0384, 0x0385, + 0x0387, 0x0387, + 0x0483, 0x0489, + 0x0559, 0x0559, + 0x055f, 0x055f, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05f4, 0x05f4, + 0x0600, 0x0605, + 0x0610, 0x061a, + 0x061c, 0x061c, + 0x0640, 0x0640, + 0x064b, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dd, + 0x06df, 0x06e8, + 0x06ea, 0x06ed, + 0x070f, 0x070f, + 0x0711, 0x0711, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f5, + 0x07fa, 0x07fa, + 0x07fd, 0x07fd, + 0x0816, 0x082d, + 0x0859, 0x085b, + 0x0888, 0x0888, + 0x0890, 0x0891, + 0x0898, 0x089f, + 0x08c9, 0x0902, + 0x093a, 0x093a, + 0x093c, 0x093c, + 0x0941, 0x0948, + 0x094d, 0x094d, + 0x0951, 0x0957, + 0x0962, 0x0963, + 0x0971, 0x0971, + 0x0981, 0x0981, + 0x09bc, 0x09bc, + 0x09c1, 0x09c4, + 0x09cd, 0x09cd, + 0x09e2, 0x09e3, + 0x09fe, 0x09fe, + 0x0a01, 0x0a02, + 0x0a3c, 0x0a3c, + 0x0a41, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a82, + 0x0abc, 0x0abc, + 0x0ac1, 0x0ac5, + 0x0ac7, 0x0ac8, + 0x0acd, 0x0acd, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0aff, + 0x0b01, 0x0b01, + 0x0b3c, 0x0b3c, + 0x0b3f, 0x0b3f, + 0x0b41, 0x0b44, + 0x0b4d, 0x0b4d, + 0x0b55, 0x0b56, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bc0, 0x0bc0, + 0x0bcd, 0x0bcd, + 0x0c00, 0x0c00, + 0x0c04, 0x0c04, + 0x0c3c, 0x0c3c, + 0x0c3e, 0x0c40, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c81, + 0x0cbc, 0x0cbc, + 0x0cbf, 0x0cbf, + 0x0cc6, 0x0cc6, + 0x0ccc, 0x0ccd, + 0x0ce2, 0x0ce3, + 0x0d00, 0x0d01, + 0x0d3b, 0x0d3c, + 0x0d41, 0x0d44, + 0x0d4d, 0x0d4d, + 0x0d62, 0x0d63, + 0x0d81, 0x0d81, + 0x0dca, 0x0dca, + 0x0dd2, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e46, 0x0e4e, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0ebc, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f71, 0x0f7e, + 0x0f80, 0x0f84, + 0x0f86, 0x0f87, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x102d, 0x1030, + 0x1032, 0x1037, + 0x1039, 0x103a, + 0x103d, 0x103e, + 0x1058, 0x1059, + 0x105e, 0x1060, + 0x1071, 0x1074, + 0x1082, 0x1082, + 0x1085, 0x1086, + 0x108d, 0x108d, + 0x109d, 0x109d, + 0x10fc, 0x10fc, + 0x135d, 0x135f, + 0x1712, 0x1714, + 0x1732, 0x1733, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b4, 0x17b5, + 0x17b7, 0x17bd, + 0x17c6, 0x17c6, + 0x17c9, 0x17d3, + 0x17d7, 0x17d7, + 0x17dd, 0x17dd, + 0x180b, 0x180f, + 0x1843, 0x1843, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x1922, + 0x1927, 0x1928, + 0x1932, 0x1932, + 0x1939, 0x193b, + 0x1a17, 0x1a18, + 0x1a1b, 0x1a1b, + 0x1a56, 0x1a56, + 0x1a58, 0x1a5e, + 0x1a60, 0x1a60, + 0x1a62, 0x1a62, + 0x1a65, 0x1a6c, + 0x1a73, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1aa7, 0x1aa7, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b03, + 0x1b34, 0x1b34, + 0x1b36, 0x1b3a, + 0x1b3c, 0x1b3c, + 0x1b42, 0x1b42, + 0x1b6b, 0x1b73, + 0x1b80, 0x1b81, + 0x1ba2, 0x1ba5, + 0x1ba8, 0x1ba9, + 0x1bab, 0x1bad, + 0x1be6, 0x1be6, + 0x1be8, 0x1be9, + 0x1bed, 0x1bed, + 0x1bef, 0x1bf1, + 0x1c2c, 0x1c33, + 0x1c36, 0x1c37, + 0x1c78, 0x1c7d, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce0, + 0x1ce2, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf8, 0x1cf9, + 0x1d2c, 0x1d6a, + 0x1d78, 0x1d78, + 0x1d9b, 0x1dff, + 0x1fbd, 0x1fbd, + 0x1fbf, 0x1fc1, + 0x1fcd, 0x1fcf, + 0x1fdd, 0x1fdf, + 0x1fed, 0x1fef, + 0x1ffd, 0x1ffe, + 0x200b, 0x200f, + 0x2018, 0x2019, + 0x2024, 0x2024, + 0x2027, 0x2027, + 0x202a, 0x202e, + 0x2060, 0x2064, + 0x2066, 0x206f, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x20d0, 0x20f0, + 0x2c7c, 0x2c7d, + 0x2cef, 0x2cf1, + 0x2d6f, 0x2d6f, + 0x2d7f, 0x2d7f, + 0x2de0, 0x2dff, + 0x2e2f, 0x2e2f, + 0x3005, 0x3005, + 0x302a, 0x302d, + 0x3031, 0x3035, + 0x303b, 0x303b, + 0x3099, 0x309e, + 0x30fc, 0x30fe, + 0xa015, 0xa015, + 0xa4f8, 0xa4fd, + 0xa60c, 0xa60c, + 0xa66f, 0xa672, + 0xa674, 0xa67d, + 0xa67f, 0xa67f, + 0xa69c, 0xa69f, + 0xa6f0, 0xa6f1, + 0xa700, 0xa721, + 0xa770, 0xa770, + 0xa788, 0xa78a, + 0xa7f2, 0xa7f4, + 0xa7f8, 0xa7f9, + 0xa802, 0xa802, + 0xa806, 0xa806, + 0xa80b, 0xa80b, + 0xa825, 0xa826, + 0xa82c, 0xa82c, + 0xa8c4, 0xa8c5, + 0xa8e0, 0xa8f1, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92d, + 0xa947, 0xa951, + 0xa980, 0xa982, + 0xa9b3, 0xa9b3, + 0xa9b6, 0xa9b9, + 0xa9bc, 0xa9bd, + 0xa9cf, 0xa9cf, + 0xa9e5, 0xa9e6, + 0xaa29, 0xaa2e, + 0xaa31, 0xaa32, + 0xaa35, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4c, + 0xaa70, 0xaa70, + 0xaa7c, 0xaa7c, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabf, + 0xaac1, 0xaac1, + 0xaadd, 0xaadd, + 0xaaec, 0xaaed, + 0xaaf3, 0xaaf4, + 0xaaf6, 0xaaf6, + 0xab5b, 0xab5f, + 0xab69, 0xab6b, + 0xabe5, 0xabe5, + 0xabe8, 0xabe8, + 0xabed, 0xabed, + 0xfb1e, 0xfb1e, + 0xfbb2, 0xfbc2, + 0xfe00, 0xfe0f, + 0xfe13, 0xfe13, + 0xfe20, 0xfe2f, + 0xfe52, 0xfe52, + 0xfe55, 0xfe55, + 0xfeff, 0xfeff, + 0xff07, 0xff07, + 0xff0e, 0xff0e, + 0xff1a, 0xff1a, + 0xff3e, 0xff3e, + 0xff40, 0xff40, + 0xff70, 0xff70, + 0xff9e, 0xff9f, + 0xffe3, 0xffe3, + 0xfff9, 0xfffb, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x10376, 0x1037a, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10ae5, 0x10ae6, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11001, 0x11001, + 0x11038, 0x11046, + 0x11070, 0x11070, + 0x11073, 0x11074, + 0x1107f, 0x11081, + 0x110b3, 0x110b6, + 0x110b9, 0x110ba, + 0x110bd, 0x110bd, + 0x110c2, 0x110c2, + 0x110cd, 0x110cd, + 0x11100, 0x11102, + 0x11127, 0x1112b, + 0x1112d, 0x11134, + 0x11173, 0x11173, + 0x11180, 0x11181, + 0x111b6, 0x111be, + 0x111c9, 0x111cc, + 0x111cf, 0x111cf, + 0x1122f, 0x11231, + 0x11234, 0x11234, + 0x11236, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112df, + 0x112e3, 0x112ea, + 0x11300, 0x11301, + 0x1133b, 0x1133c, + 0x11340, 0x11340, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11438, 0x1143f, + 0x11442, 0x11444, + 0x11446, 0x11446, + 0x1145e, 0x1145e, + 0x114b3, 0x114b8, + 0x114ba, 0x114ba, + 0x114bf, 0x114c0, + 0x114c2, 0x114c3, + 0x115b2, 0x115b5, + 0x115bc, 0x115bd, + 0x115bf, 0x115c0, + 0x115dc, 0x115dd, + 0x11633, 0x1163a, + 0x1163d, 0x1163d, + 0x1163f, 0x11640, + 0x116ab, 0x116ab, + 0x116ad, 0x116ad, + 0x116b0, 0x116b5, + 0x116b7, 0x116b7, + 0x1171d, 0x1171f, + 0x11722, 0x11725, + 0x11727, 0x1172b, + 0x1182f, 0x11837, + 0x11839, 0x1183a, + 0x1193b, 0x1193c, + 0x1193e, 0x1193e, + 0x11943, 0x11943, + 0x119d4, 0x119d7, + 0x119da, 0x119db, + 0x119e0, 0x119e0, + 0x11a01, 0x11a0a, + 0x11a33, 0x11a38, + 0x11a3b, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a51, 0x11a56, + 0x11a59, 0x11a5b, + 0x11a8a, 0x11a96, + 0x11a98, 0x11a99, + 0x11c30, 0x11c36, + 0x11c38, 0x11c3d, + 0x11c3f, 0x11c3f, + 0x11c92, 0x11ca7, + 0x11caa, 0x11cb0, + 0x11cb2, 0x11cb3, + 0x11cb5, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d45, + 0x11d47, 0x11d47, + 0x11d90, 0x11d91, + 0x11d95, 0x11d95, + 0x11d97, 0x11d97, + 0x11ef3, 0x11ef4, + 0x11f00, 0x11f01, + 0x11f36, 0x11f3a, + 0x11f40, 0x11f40, + 0x11f42, 0x11f42, + 0x13430, 0x13440, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16b40, 0x16b43, + 0x16f4f, 0x16f4f, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe4, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1bc9d, 0x1bc9e, + 0x1bca0, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d167, 0x1d169, + 0x1d173, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e130, 0x1e13d, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e4eb, 0x1e4ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e94b, + 0x1f3fb, 0x1f3ff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, +}; /* CR_Case_Ignorable */ + +/* 'Changes_When_Lowercased': Derived Property */ +static const OnigCodePoint CR_Changes_When_Lowercased[] = { + 609, + 0x0041, 0x005a, + 0x00c0, 0x00d6, + 0x00d8, 0x00de, + 0x0100, 0x0100, + 0x0102, 0x0102, + 0x0104, 0x0104, + 0x0106, 0x0106, + 0x0108, 0x0108, + 0x010a, 0x010a, + 0x010c, 0x010c, + 0x010e, 0x010e, + 0x0110, 0x0110, + 0x0112, 0x0112, + 0x0114, 0x0114, + 0x0116, 0x0116, + 0x0118, 0x0118, + 0x011a, 0x011a, + 0x011c, 0x011c, + 0x011e, 0x011e, + 0x0120, 0x0120, + 0x0122, 0x0122, + 0x0124, 0x0124, + 0x0126, 0x0126, + 0x0128, 0x0128, + 0x012a, 0x012a, + 0x012c, 0x012c, + 0x012e, 0x012e, + 0x0130, 0x0130, + 0x0132, 0x0132, + 0x0134, 0x0134, + 0x0136, 0x0136, + 0x0139, 0x0139, + 0x013b, 0x013b, + 0x013d, 0x013d, + 0x013f, 0x013f, + 0x0141, 0x0141, + 0x0143, 0x0143, + 0x0145, 0x0145, + 0x0147, 0x0147, + 0x014a, 0x014a, + 0x014c, 0x014c, + 0x014e, 0x014e, + 0x0150, 0x0150, + 0x0152, 0x0152, + 0x0154, 0x0154, + 0x0156, 0x0156, + 0x0158, 0x0158, + 0x015a, 0x015a, + 0x015c, 0x015c, + 0x015e, 0x015e, + 0x0160, 0x0160, + 0x0162, 0x0162, + 0x0164, 0x0164, + 0x0166, 0x0166, + 0x0168, 0x0168, + 0x016a, 0x016a, + 0x016c, 0x016c, + 0x016e, 0x016e, + 0x0170, 0x0170, + 0x0172, 0x0172, + 0x0174, 0x0174, + 0x0176, 0x0176, + 0x0178, 0x0179, + 0x017b, 0x017b, + 0x017d, 0x017d, + 0x0181, 0x0182, + 0x0184, 0x0184, + 0x0186, 0x0187, + 0x0189, 0x018b, + 0x018e, 0x0191, + 0x0193, 0x0194, + 0x0196, 0x0198, + 0x019c, 0x019d, + 0x019f, 0x01a0, + 0x01a2, 0x01a2, + 0x01a4, 0x01a4, + 0x01a6, 0x01a7, + 0x01a9, 0x01a9, + 0x01ac, 0x01ac, + 0x01ae, 0x01af, + 0x01b1, 0x01b3, + 0x01b5, 0x01b5, + 0x01b7, 0x01b8, + 0x01bc, 0x01bc, + 0x01c4, 0x01c5, + 0x01c7, 0x01c8, + 0x01ca, 0x01cb, + 0x01cd, 0x01cd, + 0x01cf, 0x01cf, + 0x01d1, 0x01d1, + 0x01d3, 0x01d3, + 0x01d5, 0x01d5, + 0x01d7, 0x01d7, + 0x01d9, 0x01d9, + 0x01db, 0x01db, + 0x01de, 0x01de, + 0x01e0, 0x01e0, + 0x01e2, 0x01e2, + 0x01e4, 0x01e4, + 0x01e6, 0x01e6, + 0x01e8, 0x01e8, + 0x01ea, 0x01ea, + 0x01ec, 0x01ec, + 0x01ee, 0x01ee, + 0x01f1, 0x01f2, + 0x01f4, 0x01f4, + 0x01f6, 0x01f8, + 0x01fa, 0x01fa, + 0x01fc, 0x01fc, + 0x01fe, 0x01fe, + 0x0200, 0x0200, + 0x0202, 0x0202, + 0x0204, 0x0204, + 0x0206, 0x0206, + 0x0208, 0x0208, + 0x020a, 0x020a, + 0x020c, 0x020c, + 0x020e, 0x020e, + 0x0210, 0x0210, + 0x0212, 0x0212, + 0x0214, 0x0214, + 0x0216, 0x0216, + 0x0218, 0x0218, + 0x021a, 0x021a, + 0x021c, 0x021c, + 0x021e, 0x021e, + 0x0220, 0x0220, + 0x0222, 0x0222, + 0x0224, 0x0224, + 0x0226, 0x0226, + 0x0228, 0x0228, + 0x022a, 0x022a, + 0x022c, 0x022c, + 0x022e, 0x022e, + 0x0230, 0x0230, + 0x0232, 0x0232, + 0x023a, 0x023b, + 0x023d, 0x023e, + 0x0241, 0x0241, + 0x0243, 0x0246, + 0x0248, 0x0248, + 0x024a, 0x024a, + 0x024c, 0x024c, + 0x024e, 0x024e, + 0x0370, 0x0370, + 0x0372, 0x0372, + 0x0376, 0x0376, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x038f, + 0x0391, 0x03a1, + 0x03a3, 0x03ab, + 0x03cf, 0x03cf, + 0x03d8, 0x03d8, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03e2, + 0x03e4, 0x03e4, + 0x03e6, 0x03e6, + 0x03e8, 0x03e8, + 0x03ea, 0x03ea, + 0x03ec, 0x03ec, + 0x03ee, 0x03ee, + 0x03f4, 0x03f4, + 0x03f7, 0x03f7, + 0x03f9, 0x03fa, + 0x03fd, 0x042f, + 0x0460, 0x0460, + 0x0462, 0x0462, + 0x0464, 0x0464, + 0x0466, 0x0466, + 0x0468, 0x0468, + 0x046a, 0x046a, + 0x046c, 0x046c, + 0x046e, 0x046e, + 0x0470, 0x0470, + 0x0472, 0x0472, + 0x0474, 0x0474, + 0x0476, 0x0476, + 0x0478, 0x0478, + 0x047a, 0x047a, + 0x047c, 0x047c, + 0x047e, 0x047e, + 0x0480, 0x0480, + 0x048a, 0x048a, + 0x048c, 0x048c, + 0x048e, 0x048e, + 0x0490, 0x0490, + 0x0492, 0x0492, + 0x0494, 0x0494, + 0x0496, 0x0496, + 0x0498, 0x0498, + 0x049a, 0x049a, + 0x049c, 0x049c, + 0x049e, 0x049e, + 0x04a0, 0x04a0, + 0x04a2, 0x04a2, + 0x04a4, 0x04a4, + 0x04a6, 0x04a6, + 0x04a8, 0x04a8, + 0x04aa, 0x04aa, + 0x04ac, 0x04ac, + 0x04ae, 0x04ae, + 0x04b0, 0x04b0, + 0x04b2, 0x04b2, + 0x04b4, 0x04b4, + 0x04b6, 0x04b6, + 0x04b8, 0x04b8, + 0x04ba, 0x04ba, + 0x04bc, 0x04bc, + 0x04be, 0x04be, + 0x04c0, 0x04c1, + 0x04c3, 0x04c3, + 0x04c5, 0x04c5, + 0x04c7, 0x04c7, + 0x04c9, 0x04c9, + 0x04cb, 0x04cb, + 0x04cd, 0x04cd, + 0x04d0, 0x04d0, + 0x04d2, 0x04d2, + 0x04d4, 0x04d4, + 0x04d6, 0x04d6, + 0x04d8, 0x04d8, + 0x04da, 0x04da, + 0x04dc, 0x04dc, + 0x04de, 0x04de, + 0x04e0, 0x04e0, + 0x04e2, 0x04e2, + 0x04e4, 0x04e4, + 0x04e6, 0x04e6, + 0x04e8, 0x04e8, + 0x04ea, 0x04ea, + 0x04ec, 0x04ec, + 0x04ee, 0x04ee, + 0x04f0, 0x04f0, + 0x04f2, 0x04f2, + 0x04f4, 0x04f4, + 0x04f6, 0x04f6, + 0x04f8, 0x04f8, + 0x04fa, 0x04fa, + 0x04fc, 0x04fc, + 0x04fe, 0x04fe, + 0x0500, 0x0500, + 0x0502, 0x0502, + 0x0504, 0x0504, + 0x0506, 0x0506, + 0x0508, 0x0508, + 0x050a, 0x050a, + 0x050c, 0x050c, + 0x050e, 0x050e, + 0x0510, 0x0510, + 0x0512, 0x0512, + 0x0514, 0x0514, + 0x0516, 0x0516, + 0x0518, 0x0518, + 0x051a, 0x051a, + 0x051c, 0x051c, + 0x051e, 0x051e, + 0x0520, 0x0520, + 0x0522, 0x0522, + 0x0524, 0x0524, + 0x0526, 0x0526, + 0x0528, 0x0528, + 0x052a, 0x052a, + 0x052c, 0x052c, + 0x052e, 0x052e, + 0x0531, 0x0556, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x13a0, 0x13f5, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1e00, 0x1e00, + 0x1e02, 0x1e02, + 0x1e04, 0x1e04, + 0x1e06, 0x1e06, + 0x1e08, 0x1e08, + 0x1e0a, 0x1e0a, + 0x1e0c, 0x1e0c, + 0x1e0e, 0x1e0e, + 0x1e10, 0x1e10, + 0x1e12, 0x1e12, + 0x1e14, 0x1e14, + 0x1e16, 0x1e16, + 0x1e18, 0x1e18, + 0x1e1a, 0x1e1a, + 0x1e1c, 0x1e1c, + 0x1e1e, 0x1e1e, + 0x1e20, 0x1e20, + 0x1e22, 0x1e22, + 0x1e24, 0x1e24, + 0x1e26, 0x1e26, + 0x1e28, 0x1e28, + 0x1e2a, 0x1e2a, + 0x1e2c, 0x1e2c, + 0x1e2e, 0x1e2e, + 0x1e30, 0x1e30, + 0x1e32, 0x1e32, + 0x1e34, 0x1e34, + 0x1e36, 0x1e36, + 0x1e38, 0x1e38, + 0x1e3a, 0x1e3a, + 0x1e3c, 0x1e3c, + 0x1e3e, 0x1e3e, + 0x1e40, 0x1e40, + 0x1e42, 0x1e42, + 0x1e44, 0x1e44, + 0x1e46, 0x1e46, + 0x1e48, 0x1e48, + 0x1e4a, 0x1e4a, + 0x1e4c, 0x1e4c, + 0x1e4e, 0x1e4e, + 0x1e50, 0x1e50, + 0x1e52, 0x1e52, + 0x1e54, 0x1e54, + 0x1e56, 0x1e56, + 0x1e58, 0x1e58, + 0x1e5a, 0x1e5a, + 0x1e5c, 0x1e5c, + 0x1e5e, 0x1e5e, + 0x1e60, 0x1e60, + 0x1e62, 0x1e62, + 0x1e64, 0x1e64, + 0x1e66, 0x1e66, + 0x1e68, 0x1e68, + 0x1e6a, 0x1e6a, + 0x1e6c, 0x1e6c, + 0x1e6e, 0x1e6e, + 0x1e70, 0x1e70, + 0x1e72, 0x1e72, + 0x1e74, 0x1e74, + 0x1e76, 0x1e76, + 0x1e78, 0x1e78, + 0x1e7a, 0x1e7a, + 0x1e7c, 0x1e7c, + 0x1e7e, 0x1e7e, + 0x1e80, 0x1e80, + 0x1e82, 0x1e82, + 0x1e84, 0x1e84, + 0x1e86, 0x1e86, + 0x1e88, 0x1e88, + 0x1e8a, 0x1e8a, + 0x1e8c, 0x1e8c, + 0x1e8e, 0x1e8e, + 0x1e90, 0x1e90, + 0x1e92, 0x1e92, + 0x1e94, 0x1e94, + 0x1e9e, 0x1e9e, + 0x1ea0, 0x1ea0, + 0x1ea2, 0x1ea2, + 0x1ea4, 0x1ea4, + 0x1ea6, 0x1ea6, + 0x1ea8, 0x1ea8, + 0x1eaa, 0x1eaa, + 0x1eac, 0x1eac, + 0x1eae, 0x1eae, + 0x1eb0, 0x1eb0, + 0x1eb2, 0x1eb2, + 0x1eb4, 0x1eb4, + 0x1eb6, 0x1eb6, + 0x1eb8, 0x1eb8, + 0x1eba, 0x1eba, + 0x1ebc, 0x1ebc, + 0x1ebe, 0x1ebe, + 0x1ec0, 0x1ec0, + 0x1ec2, 0x1ec2, + 0x1ec4, 0x1ec4, + 0x1ec6, 0x1ec6, + 0x1ec8, 0x1ec8, + 0x1eca, 0x1eca, + 0x1ecc, 0x1ecc, + 0x1ece, 0x1ece, + 0x1ed0, 0x1ed0, + 0x1ed2, 0x1ed2, + 0x1ed4, 0x1ed4, + 0x1ed6, 0x1ed6, + 0x1ed8, 0x1ed8, + 0x1eda, 0x1eda, + 0x1edc, 0x1edc, + 0x1ede, 0x1ede, + 0x1ee0, 0x1ee0, + 0x1ee2, 0x1ee2, + 0x1ee4, 0x1ee4, + 0x1ee6, 0x1ee6, + 0x1ee8, 0x1ee8, + 0x1eea, 0x1eea, + 0x1eec, 0x1eec, + 0x1eee, 0x1eee, + 0x1ef0, 0x1ef0, + 0x1ef2, 0x1ef2, + 0x1ef4, 0x1ef4, + 0x1ef6, 0x1ef6, + 0x1ef8, 0x1ef8, + 0x1efa, 0x1efa, + 0x1efc, 0x1efc, + 0x1efe, 0x1efe, + 0x1f08, 0x1f0f, + 0x1f18, 0x1f1d, + 0x1f28, 0x1f2f, + 0x1f38, 0x1f3f, + 0x1f48, 0x1f4d, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f5f, + 0x1f68, 0x1f6f, + 0x1f88, 0x1f8f, + 0x1f98, 0x1f9f, + 0x1fa8, 0x1faf, + 0x1fb8, 0x1fbc, + 0x1fc8, 0x1fcc, + 0x1fd8, 0x1fdb, + 0x1fe8, 0x1fec, + 0x1ff8, 0x1ffc, + 0x2126, 0x2126, + 0x212a, 0x212b, + 0x2132, 0x2132, + 0x2160, 0x216f, + 0x2183, 0x2183, + 0x24b6, 0x24cf, + 0x2c00, 0x2c2f, + 0x2c60, 0x2c60, + 0x2c62, 0x2c64, + 0x2c67, 0x2c67, + 0x2c69, 0x2c69, + 0x2c6b, 0x2c6b, + 0x2c6d, 0x2c70, + 0x2c72, 0x2c72, + 0x2c75, 0x2c75, + 0x2c7e, 0x2c80, + 0x2c82, 0x2c82, + 0x2c84, 0x2c84, + 0x2c86, 0x2c86, + 0x2c88, 0x2c88, + 0x2c8a, 0x2c8a, + 0x2c8c, 0x2c8c, + 0x2c8e, 0x2c8e, + 0x2c90, 0x2c90, + 0x2c92, 0x2c92, + 0x2c94, 0x2c94, + 0x2c96, 0x2c96, + 0x2c98, 0x2c98, + 0x2c9a, 0x2c9a, + 0x2c9c, 0x2c9c, + 0x2c9e, 0x2c9e, + 0x2ca0, 0x2ca0, + 0x2ca2, 0x2ca2, + 0x2ca4, 0x2ca4, + 0x2ca6, 0x2ca6, + 0x2ca8, 0x2ca8, + 0x2caa, 0x2caa, + 0x2cac, 0x2cac, + 0x2cae, 0x2cae, + 0x2cb0, 0x2cb0, + 0x2cb2, 0x2cb2, + 0x2cb4, 0x2cb4, + 0x2cb6, 0x2cb6, + 0x2cb8, 0x2cb8, + 0x2cba, 0x2cba, + 0x2cbc, 0x2cbc, + 0x2cbe, 0x2cbe, + 0x2cc0, 0x2cc0, + 0x2cc2, 0x2cc2, + 0x2cc4, 0x2cc4, + 0x2cc6, 0x2cc6, + 0x2cc8, 0x2cc8, + 0x2cca, 0x2cca, + 0x2ccc, 0x2ccc, + 0x2cce, 0x2cce, + 0x2cd0, 0x2cd0, + 0x2cd2, 0x2cd2, + 0x2cd4, 0x2cd4, + 0x2cd6, 0x2cd6, + 0x2cd8, 0x2cd8, + 0x2cda, 0x2cda, + 0x2cdc, 0x2cdc, + 0x2cde, 0x2cde, + 0x2ce0, 0x2ce0, + 0x2ce2, 0x2ce2, + 0x2ceb, 0x2ceb, + 0x2ced, 0x2ced, + 0x2cf2, 0x2cf2, + 0xa640, 0xa640, + 0xa642, 0xa642, + 0xa644, 0xa644, + 0xa646, 0xa646, + 0xa648, 0xa648, + 0xa64a, 0xa64a, + 0xa64c, 0xa64c, + 0xa64e, 0xa64e, + 0xa650, 0xa650, + 0xa652, 0xa652, + 0xa654, 0xa654, + 0xa656, 0xa656, + 0xa658, 0xa658, + 0xa65a, 0xa65a, + 0xa65c, 0xa65c, + 0xa65e, 0xa65e, + 0xa660, 0xa660, + 0xa662, 0xa662, + 0xa664, 0xa664, + 0xa666, 0xa666, + 0xa668, 0xa668, + 0xa66a, 0xa66a, + 0xa66c, 0xa66c, + 0xa680, 0xa680, + 0xa682, 0xa682, + 0xa684, 0xa684, + 0xa686, 0xa686, + 0xa688, 0xa688, + 0xa68a, 0xa68a, + 0xa68c, 0xa68c, + 0xa68e, 0xa68e, + 0xa690, 0xa690, + 0xa692, 0xa692, + 0xa694, 0xa694, + 0xa696, 0xa696, + 0xa698, 0xa698, + 0xa69a, 0xa69a, + 0xa722, 0xa722, + 0xa724, 0xa724, + 0xa726, 0xa726, + 0xa728, 0xa728, + 0xa72a, 0xa72a, + 0xa72c, 0xa72c, + 0xa72e, 0xa72e, + 0xa732, 0xa732, + 0xa734, 0xa734, + 0xa736, 0xa736, + 0xa738, 0xa738, + 0xa73a, 0xa73a, + 0xa73c, 0xa73c, + 0xa73e, 0xa73e, + 0xa740, 0xa740, + 0xa742, 0xa742, + 0xa744, 0xa744, + 0xa746, 0xa746, + 0xa748, 0xa748, + 0xa74a, 0xa74a, + 0xa74c, 0xa74c, + 0xa74e, 0xa74e, + 0xa750, 0xa750, + 0xa752, 0xa752, + 0xa754, 0xa754, + 0xa756, 0xa756, + 0xa758, 0xa758, + 0xa75a, 0xa75a, + 0xa75c, 0xa75c, + 0xa75e, 0xa75e, + 0xa760, 0xa760, + 0xa762, 0xa762, + 0xa764, 0xa764, + 0xa766, 0xa766, + 0xa768, 0xa768, + 0xa76a, 0xa76a, + 0xa76c, 0xa76c, + 0xa76e, 0xa76e, + 0xa779, 0xa779, + 0xa77b, 0xa77b, + 0xa77d, 0xa77e, + 0xa780, 0xa780, + 0xa782, 0xa782, + 0xa784, 0xa784, + 0xa786, 0xa786, + 0xa78b, 0xa78b, + 0xa78d, 0xa78d, + 0xa790, 0xa790, + 0xa792, 0xa792, + 0xa796, 0xa796, + 0xa798, 0xa798, + 0xa79a, 0xa79a, + 0xa79c, 0xa79c, + 0xa79e, 0xa79e, + 0xa7a0, 0xa7a0, + 0xa7a2, 0xa7a2, + 0xa7a4, 0xa7a4, + 0xa7a6, 0xa7a6, + 0xa7a8, 0xa7a8, + 0xa7aa, 0xa7ae, + 0xa7b0, 0xa7b4, + 0xa7b6, 0xa7b6, + 0xa7b8, 0xa7b8, + 0xa7ba, 0xa7ba, + 0xa7bc, 0xa7bc, + 0xa7be, 0xa7be, + 0xa7c0, 0xa7c0, + 0xa7c2, 0xa7c2, + 0xa7c4, 0xa7c7, + 0xa7c9, 0xa7c9, + 0xa7d0, 0xa7d0, + 0xa7d6, 0xa7d6, + 0xa7d8, 0xa7d8, + 0xa7f5, 0xa7f5, + 0xff21, 0xff3a, + 0x10400, 0x10427, + 0x104b0, 0x104d3, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10c80, 0x10cb2, + 0x118a0, 0x118bf, + 0x16e40, 0x16e5f, + 0x1e900, 0x1e921, +}; /* CR_Changes_When_Lowercased */ + +/* 'Changes_When_Uppercased': Derived Property */ +static const OnigCodePoint CR_Changes_When_Uppercased[] = { + 627, + 0x0061, 0x007a, + 0x00b5, 0x00b5, + 0x00df, 0x00f6, + 0x00f8, 0x00ff, + 0x0101, 0x0101, + 0x0103, 0x0103, + 0x0105, 0x0105, + 0x0107, 0x0107, + 0x0109, 0x0109, + 0x010b, 0x010b, + 0x010d, 0x010d, + 0x010f, 0x010f, + 0x0111, 0x0111, + 0x0113, 0x0113, + 0x0115, 0x0115, + 0x0117, 0x0117, + 0x0119, 0x0119, + 0x011b, 0x011b, + 0x011d, 0x011d, + 0x011f, 0x011f, + 0x0121, 0x0121, + 0x0123, 0x0123, + 0x0125, 0x0125, + 0x0127, 0x0127, + 0x0129, 0x0129, + 0x012b, 0x012b, + 0x012d, 0x012d, + 0x012f, 0x012f, + 0x0131, 0x0131, + 0x0133, 0x0133, + 0x0135, 0x0135, + 0x0137, 0x0137, + 0x013a, 0x013a, + 0x013c, 0x013c, + 0x013e, 0x013e, + 0x0140, 0x0140, + 0x0142, 0x0142, + 0x0144, 0x0144, + 0x0146, 0x0146, + 0x0148, 0x0149, + 0x014b, 0x014b, + 0x014d, 0x014d, + 0x014f, 0x014f, + 0x0151, 0x0151, + 0x0153, 0x0153, + 0x0155, 0x0155, + 0x0157, 0x0157, + 0x0159, 0x0159, + 0x015b, 0x015b, + 0x015d, 0x015d, + 0x015f, 0x015f, + 0x0161, 0x0161, + 0x0163, 0x0163, + 0x0165, 0x0165, + 0x0167, 0x0167, + 0x0169, 0x0169, + 0x016b, 0x016b, + 0x016d, 0x016d, + 0x016f, 0x016f, + 0x0171, 0x0171, + 0x0173, 0x0173, + 0x0175, 0x0175, + 0x0177, 0x0177, + 0x017a, 0x017a, + 0x017c, 0x017c, + 0x017e, 0x0180, + 0x0183, 0x0183, + 0x0185, 0x0185, + 0x0188, 0x0188, + 0x018c, 0x018c, + 0x0192, 0x0192, + 0x0195, 0x0195, + 0x0199, 0x019a, + 0x019e, 0x019e, + 0x01a1, 0x01a1, + 0x01a3, 0x01a3, + 0x01a5, 0x01a5, + 0x01a8, 0x01a8, + 0x01ad, 0x01ad, + 0x01b0, 0x01b0, + 0x01b4, 0x01b4, + 0x01b6, 0x01b6, + 0x01b9, 0x01b9, + 0x01bd, 0x01bd, + 0x01bf, 0x01bf, + 0x01c5, 0x01c6, + 0x01c8, 0x01c9, + 0x01cb, 0x01cc, + 0x01ce, 0x01ce, + 0x01d0, 0x01d0, + 0x01d2, 0x01d2, + 0x01d4, 0x01d4, + 0x01d6, 0x01d6, + 0x01d8, 0x01d8, + 0x01da, 0x01da, + 0x01dc, 0x01dd, + 0x01df, 0x01df, + 0x01e1, 0x01e1, + 0x01e3, 0x01e3, + 0x01e5, 0x01e5, + 0x01e7, 0x01e7, + 0x01e9, 0x01e9, + 0x01eb, 0x01eb, + 0x01ed, 0x01ed, + 0x01ef, 0x01f0, + 0x01f2, 0x01f3, + 0x01f5, 0x01f5, + 0x01f9, 0x01f9, + 0x01fb, 0x01fb, + 0x01fd, 0x01fd, + 0x01ff, 0x01ff, + 0x0201, 0x0201, + 0x0203, 0x0203, + 0x0205, 0x0205, + 0x0207, 0x0207, + 0x0209, 0x0209, + 0x020b, 0x020b, + 0x020d, 0x020d, + 0x020f, 0x020f, + 0x0211, 0x0211, + 0x0213, 0x0213, + 0x0215, 0x0215, + 0x0217, 0x0217, + 0x0219, 0x0219, + 0x021b, 0x021b, + 0x021d, 0x021d, + 0x021f, 0x021f, + 0x0223, 0x0223, + 0x0225, 0x0225, + 0x0227, 0x0227, + 0x0229, 0x0229, + 0x022b, 0x022b, + 0x022d, 0x022d, + 0x022f, 0x022f, + 0x0231, 0x0231, + 0x0233, 0x0233, + 0x023c, 0x023c, + 0x023f, 0x0240, + 0x0242, 0x0242, + 0x0247, 0x0247, + 0x0249, 0x0249, + 0x024b, 0x024b, + 0x024d, 0x024d, + 0x024f, 0x0254, + 0x0256, 0x0257, + 0x0259, 0x0259, + 0x025b, 0x025c, + 0x0260, 0x0261, + 0x0263, 0x0263, + 0x0265, 0x0266, + 0x0268, 0x026c, + 0x026f, 0x026f, + 0x0271, 0x0272, + 0x0275, 0x0275, + 0x027d, 0x027d, + 0x0280, 0x0280, + 0x0282, 0x0283, + 0x0287, 0x028c, + 0x0292, 0x0292, + 0x029d, 0x029e, + 0x0345, 0x0345, + 0x0371, 0x0371, + 0x0373, 0x0373, + 0x0377, 0x0377, + 0x037b, 0x037d, + 0x0390, 0x0390, + 0x03ac, 0x03ce, + 0x03d0, 0x03d1, + 0x03d5, 0x03d7, + 0x03d9, 0x03d9, + 0x03db, 0x03db, + 0x03dd, 0x03dd, + 0x03df, 0x03df, + 0x03e1, 0x03e1, + 0x03e3, 0x03e3, + 0x03e5, 0x03e5, + 0x03e7, 0x03e7, + 0x03e9, 0x03e9, + 0x03eb, 0x03eb, + 0x03ed, 0x03ed, + 0x03ef, 0x03f3, + 0x03f5, 0x03f5, + 0x03f8, 0x03f8, + 0x03fb, 0x03fb, + 0x0430, 0x045f, + 0x0461, 0x0461, + 0x0463, 0x0463, + 0x0465, 0x0465, + 0x0467, 0x0467, + 0x0469, 0x0469, + 0x046b, 0x046b, + 0x046d, 0x046d, + 0x046f, 0x046f, + 0x0471, 0x0471, + 0x0473, 0x0473, + 0x0475, 0x0475, + 0x0477, 0x0477, + 0x0479, 0x0479, + 0x047b, 0x047b, + 0x047d, 0x047d, + 0x047f, 0x047f, + 0x0481, 0x0481, + 0x048b, 0x048b, + 0x048d, 0x048d, + 0x048f, 0x048f, + 0x0491, 0x0491, + 0x0493, 0x0493, + 0x0495, 0x0495, + 0x0497, 0x0497, + 0x0499, 0x0499, + 0x049b, 0x049b, + 0x049d, 0x049d, + 0x049f, 0x049f, + 0x04a1, 0x04a1, + 0x04a3, 0x04a3, + 0x04a5, 0x04a5, + 0x04a7, 0x04a7, + 0x04a9, 0x04a9, + 0x04ab, 0x04ab, + 0x04ad, 0x04ad, + 0x04af, 0x04af, + 0x04b1, 0x04b1, + 0x04b3, 0x04b3, + 0x04b5, 0x04b5, + 0x04b7, 0x04b7, + 0x04b9, 0x04b9, + 0x04bb, 0x04bb, + 0x04bd, 0x04bd, + 0x04bf, 0x04bf, + 0x04c2, 0x04c2, + 0x04c4, 0x04c4, + 0x04c6, 0x04c6, + 0x04c8, 0x04c8, + 0x04ca, 0x04ca, + 0x04cc, 0x04cc, + 0x04ce, 0x04cf, + 0x04d1, 0x04d1, + 0x04d3, 0x04d3, + 0x04d5, 0x04d5, + 0x04d7, 0x04d7, + 0x04d9, 0x04d9, + 0x04db, 0x04db, + 0x04dd, 0x04dd, + 0x04df, 0x04df, + 0x04e1, 0x04e1, + 0x04e3, 0x04e3, + 0x04e5, 0x04e5, + 0x04e7, 0x04e7, + 0x04e9, 0x04e9, + 0x04eb, 0x04eb, + 0x04ed, 0x04ed, + 0x04ef, 0x04ef, + 0x04f1, 0x04f1, + 0x04f3, 0x04f3, + 0x04f5, 0x04f5, + 0x04f7, 0x04f7, + 0x04f9, 0x04f9, + 0x04fb, 0x04fb, + 0x04fd, 0x04fd, + 0x04ff, 0x04ff, + 0x0501, 0x0501, + 0x0503, 0x0503, + 0x0505, 0x0505, + 0x0507, 0x0507, + 0x0509, 0x0509, + 0x050b, 0x050b, + 0x050d, 0x050d, + 0x050f, 0x050f, + 0x0511, 0x0511, + 0x0513, 0x0513, + 0x0515, 0x0515, + 0x0517, 0x0517, + 0x0519, 0x0519, + 0x051b, 0x051b, + 0x051d, 0x051d, + 0x051f, 0x051f, + 0x0521, 0x0521, + 0x0523, 0x0523, + 0x0525, 0x0525, + 0x0527, 0x0527, + 0x0529, 0x0529, + 0x052b, 0x052b, + 0x052d, 0x052d, + 0x052f, 0x052f, + 0x0561, 0x0587, + 0x10d0, 0x10fa, + 0x10fd, 0x10ff, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1d79, 0x1d79, + 0x1d7d, 0x1d7d, + 0x1d8e, 0x1d8e, + 0x1e01, 0x1e01, + 0x1e03, 0x1e03, + 0x1e05, 0x1e05, + 0x1e07, 0x1e07, + 0x1e09, 0x1e09, + 0x1e0b, 0x1e0b, + 0x1e0d, 0x1e0d, + 0x1e0f, 0x1e0f, + 0x1e11, 0x1e11, + 0x1e13, 0x1e13, + 0x1e15, 0x1e15, + 0x1e17, 0x1e17, + 0x1e19, 0x1e19, + 0x1e1b, 0x1e1b, + 0x1e1d, 0x1e1d, + 0x1e1f, 0x1e1f, + 0x1e21, 0x1e21, + 0x1e23, 0x1e23, + 0x1e25, 0x1e25, + 0x1e27, 0x1e27, + 0x1e29, 0x1e29, + 0x1e2b, 0x1e2b, + 0x1e2d, 0x1e2d, + 0x1e2f, 0x1e2f, + 0x1e31, 0x1e31, + 0x1e33, 0x1e33, + 0x1e35, 0x1e35, + 0x1e37, 0x1e37, + 0x1e39, 0x1e39, + 0x1e3b, 0x1e3b, + 0x1e3d, 0x1e3d, + 0x1e3f, 0x1e3f, + 0x1e41, 0x1e41, + 0x1e43, 0x1e43, + 0x1e45, 0x1e45, + 0x1e47, 0x1e47, + 0x1e49, 0x1e49, + 0x1e4b, 0x1e4b, + 0x1e4d, 0x1e4d, + 0x1e4f, 0x1e4f, + 0x1e51, 0x1e51, + 0x1e53, 0x1e53, + 0x1e55, 0x1e55, + 0x1e57, 0x1e57, + 0x1e59, 0x1e59, + 0x1e5b, 0x1e5b, + 0x1e5d, 0x1e5d, + 0x1e5f, 0x1e5f, + 0x1e61, 0x1e61, + 0x1e63, 0x1e63, + 0x1e65, 0x1e65, + 0x1e67, 0x1e67, + 0x1e69, 0x1e69, + 0x1e6b, 0x1e6b, + 0x1e6d, 0x1e6d, + 0x1e6f, 0x1e6f, + 0x1e71, 0x1e71, + 0x1e73, 0x1e73, + 0x1e75, 0x1e75, + 0x1e77, 0x1e77, + 0x1e79, 0x1e79, + 0x1e7b, 0x1e7b, + 0x1e7d, 0x1e7d, + 0x1e7f, 0x1e7f, + 0x1e81, 0x1e81, + 0x1e83, 0x1e83, + 0x1e85, 0x1e85, + 0x1e87, 0x1e87, + 0x1e89, 0x1e89, + 0x1e8b, 0x1e8b, + 0x1e8d, 0x1e8d, + 0x1e8f, 0x1e8f, + 0x1e91, 0x1e91, + 0x1e93, 0x1e93, + 0x1e95, 0x1e9b, + 0x1ea1, 0x1ea1, + 0x1ea3, 0x1ea3, + 0x1ea5, 0x1ea5, + 0x1ea7, 0x1ea7, + 0x1ea9, 0x1ea9, + 0x1eab, 0x1eab, + 0x1ead, 0x1ead, + 0x1eaf, 0x1eaf, + 0x1eb1, 0x1eb1, + 0x1eb3, 0x1eb3, + 0x1eb5, 0x1eb5, + 0x1eb7, 0x1eb7, + 0x1eb9, 0x1eb9, + 0x1ebb, 0x1ebb, + 0x1ebd, 0x1ebd, + 0x1ebf, 0x1ebf, + 0x1ec1, 0x1ec1, + 0x1ec3, 0x1ec3, + 0x1ec5, 0x1ec5, + 0x1ec7, 0x1ec7, + 0x1ec9, 0x1ec9, + 0x1ecb, 0x1ecb, + 0x1ecd, 0x1ecd, + 0x1ecf, 0x1ecf, + 0x1ed1, 0x1ed1, + 0x1ed3, 0x1ed3, + 0x1ed5, 0x1ed5, + 0x1ed7, 0x1ed7, + 0x1ed9, 0x1ed9, + 0x1edb, 0x1edb, + 0x1edd, 0x1edd, + 0x1edf, 0x1edf, + 0x1ee1, 0x1ee1, + 0x1ee3, 0x1ee3, + 0x1ee5, 0x1ee5, + 0x1ee7, 0x1ee7, + 0x1ee9, 0x1ee9, + 0x1eeb, 0x1eeb, + 0x1eed, 0x1eed, + 0x1eef, 0x1eef, + 0x1ef1, 0x1ef1, + 0x1ef3, 0x1ef3, + 0x1ef5, 0x1ef5, + 0x1ef7, 0x1ef7, + 0x1ef9, 0x1ef9, + 0x1efb, 0x1efb, + 0x1efd, 0x1efd, + 0x1eff, 0x1f07, + 0x1f10, 0x1f15, + 0x1f20, 0x1f27, + 0x1f30, 0x1f37, + 0x1f40, 0x1f45, + 0x1f50, 0x1f57, + 0x1f60, 0x1f67, + 0x1f70, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fb7, + 0x1fbc, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fc7, + 0x1fcc, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fd7, + 0x1fe0, 0x1fe7, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ff7, + 0x1ffc, 0x1ffc, + 0x214e, 0x214e, + 0x2170, 0x217f, + 0x2184, 0x2184, + 0x24d0, 0x24e9, + 0x2c30, 0x2c5f, + 0x2c61, 0x2c61, + 0x2c65, 0x2c66, + 0x2c68, 0x2c68, + 0x2c6a, 0x2c6a, + 0x2c6c, 0x2c6c, + 0x2c73, 0x2c73, + 0x2c76, 0x2c76, + 0x2c81, 0x2c81, + 0x2c83, 0x2c83, + 0x2c85, 0x2c85, + 0x2c87, 0x2c87, + 0x2c89, 0x2c89, + 0x2c8b, 0x2c8b, + 0x2c8d, 0x2c8d, + 0x2c8f, 0x2c8f, + 0x2c91, 0x2c91, + 0x2c93, 0x2c93, + 0x2c95, 0x2c95, + 0x2c97, 0x2c97, + 0x2c99, 0x2c99, + 0x2c9b, 0x2c9b, + 0x2c9d, 0x2c9d, + 0x2c9f, 0x2c9f, + 0x2ca1, 0x2ca1, + 0x2ca3, 0x2ca3, + 0x2ca5, 0x2ca5, + 0x2ca7, 0x2ca7, + 0x2ca9, 0x2ca9, + 0x2cab, 0x2cab, + 0x2cad, 0x2cad, + 0x2caf, 0x2caf, + 0x2cb1, 0x2cb1, + 0x2cb3, 0x2cb3, + 0x2cb5, 0x2cb5, + 0x2cb7, 0x2cb7, + 0x2cb9, 0x2cb9, + 0x2cbb, 0x2cbb, + 0x2cbd, 0x2cbd, + 0x2cbf, 0x2cbf, + 0x2cc1, 0x2cc1, + 0x2cc3, 0x2cc3, + 0x2cc5, 0x2cc5, + 0x2cc7, 0x2cc7, + 0x2cc9, 0x2cc9, + 0x2ccb, 0x2ccb, + 0x2ccd, 0x2ccd, + 0x2ccf, 0x2ccf, + 0x2cd1, 0x2cd1, + 0x2cd3, 0x2cd3, + 0x2cd5, 0x2cd5, + 0x2cd7, 0x2cd7, + 0x2cd9, 0x2cd9, + 0x2cdb, 0x2cdb, + 0x2cdd, 0x2cdd, + 0x2cdf, 0x2cdf, + 0x2ce1, 0x2ce1, + 0x2ce3, 0x2ce3, + 0x2cec, 0x2cec, + 0x2cee, 0x2cee, + 0x2cf3, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa641, 0xa641, + 0xa643, 0xa643, + 0xa645, 0xa645, + 0xa647, 0xa647, + 0xa649, 0xa649, + 0xa64b, 0xa64b, + 0xa64d, 0xa64d, + 0xa64f, 0xa64f, + 0xa651, 0xa651, + 0xa653, 0xa653, + 0xa655, 0xa655, + 0xa657, 0xa657, + 0xa659, 0xa659, + 0xa65b, 0xa65b, + 0xa65d, 0xa65d, + 0xa65f, 0xa65f, + 0xa661, 0xa661, + 0xa663, 0xa663, + 0xa665, 0xa665, + 0xa667, 0xa667, + 0xa669, 0xa669, + 0xa66b, 0xa66b, + 0xa66d, 0xa66d, + 0xa681, 0xa681, + 0xa683, 0xa683, + 0xa685, 0xa685, + 0xa687, 0xa687, + 0xa689, 0xa689, + 0xa68b, 0xa68b, + 0xa68d, 0xa68d, + 0xa68f, 0xa68f, + 0xa691, 0xa691, + 0xa693, 0xa693, + 0xa695, 0xa695, + 0xa697, 0xa697, + 0xa699, 0xa699, + 0xa69b, 0xa69b, + 0xa723, 0xa723, + 0xa725, 0xa725, + 0xa727, 0xa727, + 0xa729, 0xa729, + 0xa72b, 0xa72b, + 0xa72d, 0xa72d, + 0xa72f, 0xa72f, + 0xa733, 0xa733, + 0xa735, 0xa735, + 0xa737, 0xa737, + 0xa739, 0xa739, + 0xa73b, 0xa73b, + 0xa73d, 0xa73d, + 0xa73f, 0xa73f, + 0xa741, 0xa741, + 0xa743, 0xa743, + 0xa745, 0xa745, + 0xa747, 0xa747, + 0xa749, 0xa749, + 0xa74b, 0xa74b, + 0xa74d, 0xa74d, + 0xa74f, 0xa74f, + 0xa751, 0xa751, + 0xa753, 0xa753, + 0xa755, 0xa755, + 0xa757, 0xa757, + 0xa759, 0xa759, + 0xa75b, 0xa75b, + 0xa75d, 0xa75d, + 0xa75f, 0xa75f, + 0xa761, 0xa761, + 0xa763, 0xa763, + 0xa765, 0xa765, + 0xa767, 0xa767, + 0xa769, 0xa769, + 0xa76b, 0xa76b, + 0xa76d, 0xa76d, + 0xa76f, 0xa76f, + 0xa77a, 0xa77a, + 0xa77c, 0xa77c, + 0xa77f, 0xa77f, + 0xa781, 0xa781, + 0xa783, 0xa783, + 0xa785, 0xa785, + 0xa787, 0xa787, + 0xa78c, 0xa78c, + 0xa791, 0xa791, + 0xa793, 0xa794, + 0xa797, 0xa797, + 0xa799, 0xa799, + 0xa79b, 0xa79b, + 0xa79d, 0xa79d, + 0xa79f, 0xa79f, + 0xa7a1, 0xa7a1, + 0xa7a3, 0xa7a3, + 0xa7a5, 0xa7a5, + 0xa7a7, 0xa7a7, + 0xa7a9, 0xa7a9, + 0xa7b5, 0xa7b5, + 0xa7b7, 0xa7b7, + 0xa7b9, 0xa7b9, + 0xa7bb, 0xa7bb, + 0xa7bd, 0xa7bd, + 0xa7bf, 0xa7bf, + 0xa7c1, 0xa7c1, + 0xa7c3, 0xa7c3, + 0xa7c8, 0xa7c8, + 0xa7ca, 0xa7ca, + 0xa7d1, 0xa7d1, + 0xa7d7, 0xa7d7, + 0xa7d9, 0xa7d9, + 0xa7f6, 0xa7f6, + 0xab53, 0xab53, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff41, 0xff5a, + 0x10428, 0x1044f, + 0x104d8, 0x104fb, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10cc0, 0x10cf2, + 0x118c0, 0x118df, + 0x16e60, 0x16e7f, + 0x1e922, 0x1e943, +}; /* CR_Changes_When_Uppercased */ + +/* 'Changes_When_Titlecased': Derived Property */ +static const OnigCodePoint CR_Changes_When_Titlecased[] = { + 626, + 0x0061, 0x007a, + 0x00b5, 0x00b5, + 0x00df, 0x00f6, + 0x00f8, 0x00ff, + 0x0101, 0x0101, + 0x0103, 0x0103, + 0x0105, 0x0105, + 0x0107, 0x0107, + 0x0109, 0x0109, + 0x010b, 0x010b, + 0x010d, 0x010d, + 0x010f, 0x010f, + 0x0111, 0x0111, + 0x0113, 0x0113, + 0x0115, 0x0115, + 0x0117, 0x0117, + 0x0119, 0x0119, + 0x011b, 0x011b, + 0x011d, 0x011d, + 0x011f, 0x011f, + 0x0121, 0x0121, + 0x0123, 0x0123, + 0x0125, 0x0125, + 0x0127, 0x0127, + 0x0129, 0x0129, + 0x012b, 0x012b, + 0x012d, 0x012d, + 0x012f, 0x012f, + 0x0131, 0x0131, + 0x0133, 0x0133, + 0x0135, 0x0135, + 0x0137, 0x0137, + 0x013a, 0x013a, + 0x013c, 0x013c, + 0x013e, 0x013e, + 0x0140, 0x0140, + 0x0142, 0x0142, + 0x0144, 0x0144, + 0x0146, 0x0146, + 0x0148, 0x0149, + 0x014b, 0x014b, + 0x014d, 0x014d, + 0x014f, 0x014f, + 0x0151, 0x0151, + 0x0153, 0x0153, + 0x0155, 0x0155, + 0x0157, 0x0157, + 0x0159, 0x0159, + 0x015b, 0x015b, + 0x015d, 0x015d, + 0x015f, 0x015f, + 0x0161, 0x0161, + 0x0163, 0x0163, + 0x0165, 0x0165, + 0x0167, 0x0167, + 0x0169, 0x0169, + 0x016b, 0x016b, + 0x016d, 0x016d, + 0x016f, 0x016f, + 0x0171, 0x0171, + 0x0173, 0x0173, + 0x0175, 0x0175, + 0x0177, 0x0177, + 0x017a, 0x017a, + 0x017c, 0x017c, + 0x017e, 0x0180, + 0x0183, 0x0183, + 0x0185, 0x0185, + 0x0188, 0x0188, + 0x018c, 0x018c, + 0x0192, 0x0192, + 0x0195, 0x0195, + 0x0199, 0x019a, + 0x019e, 0x019e, + 0x01a1, 0x01a1, + 0x01a3, 0x01a3, + 0x01a5, 0x01a5, + 0x01a8, 0x01a8, + 0x01ad, 0x01ad, + 0x01b0, 0x01b0, + 0x01b4, 0x01b4, + 0x01b6, 0x01b6, + 0x01b9, 0x01b9, + 0x01bd, 0x01bd, + 0x01bf, 0x01bf, + 0x01c4, 0x01c4, + 0x01c6, 0x01c7, + 0x01c9, 0x01ca, + 0x01cc, 0x01cc, + 0x01ce, 0x01ce, + 0x01d0, 0x01d0, + 0x01d2, 0x01d2, + 0x01d4, 0x01d4, + 0x01d6, 0x01d6, + 0x01d8, 0x01d8, + 0x01da, 0x01da, + 0x01dc, 0x01dd, + 0x01df, 0x01df, + 0x01e1, 0x01e1, + 0x01e3, 0x01e3, + 0x01e5, 0x01e5, + 0x01e7, 0x01e7, + 0x01e9, 0x01e9, + 0x01eb, 0x01eb, + 0x01ed, 0x01ed, + 0x01ef, 0x01f1, + 0x01f3, 0x01f3, + 0x01f5, 0x01f5, + 0x01f9, 0x01f9, + 0x01fb, 0x01fb, + 0x01fd, 0x01fd, + 0x01ff, 0x01ff, + 0x0201, 0x0201, + 0x0203, 0x0203, + 0x0205, 0x0205, + 0x0207, 0x0207, + 0x0209, 0x0209, + 0x020b, 0x020b, + 0x020d, 0x020d, + 0x020f, 0x020f, + 0x0211, 0x0211, + 0x0213, 0x0213, + 0x0215, 0x0215, + 0x0217, 0x0217, + 0x0219, 0x0219, + 0x021b, 0x021b, + 0x021d, 0x021d, + 0x021f, 0x021f, + 0x0223, 0x0223, + 0x0225, 0x0225, + 0x0227, 0x0227, + 0x0229, 0x0229, + 0x022b, 0x022b, + 0x022d, 0x022d, + 0x022f, 0x022f, + 0x0231, 0x0231, + 0x0233, 0x0233, + 0x023c, 0x023c, + 0x023f, 0x0240, + 0x0242, 0x0242, + 0x0247, 0x0247, + 0x0249, 0x0249, + 0x024b, 0x024b, + 0x024d, 0x024d, + 0x024f, 0x0254, + 0x0256, 0x0257, + 0x0259, 0x0259, + 0x025b, 0x025c, + 0x0260, 0x0261, + 0x0263, 0x0263, + 0x0265, 0x0266, + 0x0268, 0x026c, + 0x026f, 0x026f, + 0x0271, 0x0272, + 0x0275, 0x0275, + 0x027d, 0x027d, + 0x0280, 0x0280, + 0x0282, 0x0283, + 0x0287, 0x028c, + 0x0292, 0x0292, + 0x029d, 0x029e, + 0x0345, 0x0345, + 0x0371, 0x0371, + 0x0373, 0x0373, + 0x0377, 0x0377, + 0x037b, 0x037d, + 0x0390, 0x0390, + 0x03ac, 0x03ce, + 0x03d0, 0x03d1, + 0x03d5, 0x03d7, + 0x03d9, 0x03d9, + 0x03db, 0x03db, + 0x03dd, 0x03dd, + 0x03df, 0x03df, + 0x03e1, 0x03e1, + 0x03e3, 0x03e3, + 0x03e5, 0x03e5, + 0x03e7, 0x03e7, + 0x03e9, 0x03e9, + 0x03eb, 0x03eb, + 0x03ed, 0x03ed, + 0x03ef, 0x03f3, + 0x03f5, 0x03f5, + 0x03f8, 0x03f8, + 0x03fb, 0x03fb, + 0x0430, 0x045f, + 0x0461, 0x0461, + 0x0463, 0x0463, + 0x0465, 0x0465, + 0x0467, 0x0467, + 0x0469, 0x0469, + 0x046b, 0x046b, + 0x046d, 0x046d, + 0x046f, 0x046f, + 0x0471, 0x0471, + 0x0473, 0x0473, + 0x0475, 0x0475, + 0x0477, 0x0477, + 0x0479, 0x0479, + 0x047b, 0x047b, + 0x047d, 0x047d, + 0x047f, 0x047f, + 0x0481, 0x0481, + 0x048b, 0x048b, + 0x048d, 0x048d, + 0x048f, 0x048f, + 0x0491, 0x0491, + 0x0493, 0x0493, + 0x0495, 0x0495, + 0x0497, 0x0497, + 0x0499, 0x0499, + 0x049b, 0x049b, + 0x049d, 0x049d, + 0x049f, 0x049f, + 0x04a1, 0x04a1, + 0x04a3, 0x04a3, + 0x04a5, 0x04a5, + 0x04a7, 0x04a7, + 0x04a9, 0x04a9, + 0x04ab, 0x04ab, + 0x04ad, 0x04ad, + 0x04af, 0x04af, + 0x04b1, 0x04b1, + 0x04b3, 0x04b3, + 0x04b5, 0x04b5, + 0x04b7, 0x04b7, + 0x04b9, 0x04b9, + 0x04bb, 0x04bb, + 0x04bd, 0x04bd, + 0x04bf, 0x04bf, + 0x04c2, 0x04c2, + 0x04c4, 0x04c4, + 0x04c6, 0x04c6, + 0x04c8, 0x04c8, + 0x04ca, 0x04ca, + 0x04cc, 0x04cc, + 0x04ce, 0x04cf, + 0x04d1, 0x04d1, + 0x04d3, 0x04d3, + 0x04d5, 0x04d5, + 0x04d7, 0x04d7, + 0x04d9, 0x04d9, + 0x04db, 0x04db, + 0x04dd, 0x04dd, + 0x04df, 0x04df, + 0x04e1, 0x04e1, + 0x04e3, 0x04e3, + 0x04e5, 0x04e5, + 0x04e7, 0x04e7, + 0x04e9, 0x04e9, + 0x04eb, 0x04eb, + 0x04ed, 0x04ed, + 0x04ef, 0x04ef, + 0x04f1, 0x04f1, + 0x04f3, 0x04f3, + 0x04f5, 0x04f5, + 0x04f7, 0x04f7, + 0x04f9, 0x04f9, + 0x04fb, 0x04fb, + 0x04fd, 0x04fd, + 0x04ff, 0x04ff, + 0x0501, 0x0501, + 0x0503, 0x0503, + 0x0505, 0x0505, + 0x0507, 0x0507, + 0x0509, 0x0509, + 0x050b, 0x050b, + 0x050d, 0x050d, + 0x050f, 0x050f, + 0x0511, 0x0511, + 0x0513, 0x0513, + 0x0515, 0x0515, + 0x0517, 0x0517, + 0x0519, 0x0519, + 0x051b, 0x051b, + 0x051d, 0x051d, + 0x051f, 0x051f, + 0x0521, 0x0521, + 0x0523, 0x0523, + 0x0525, 0x0525, + 0x0527, 0x0527, + 0x0529, 0x0529, + 0x052b, 0x052b, + 0x052d, 0x052d, + 0x052f, 0x052f, + 0x0561, 0x0587, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1d79, 0x1d79, + 0x1d7d, 0x1d7d, + 0x1d8e, 0x1d8e, + 0x1e01, 0x1e01, + 0x1e03, 0x1e03, + 0x1e05, 0x1e05, + 0x1e07, 0x1e07, + 0x1e09, 0x1e09, + 0x1e0b, 0x1e0b, + 0x1e0d, 0x1e0d, + 0x1e0f, 0x1e0f, + 0x1e11, 0x1e11, + 0x1e13, 0x1e13, + 0x1e15, 0x1e15, + 0x1e17, 0x1e17, + 0x1e19, 0x1e19, + 0x1e1b, 0x1e1b, + 0x1e1d, 0x1e1d, + 0x1e1f, 0x1e1f, + 0x1e21, 0x1e21, + 0x1e23, 0x1e23, + 0x1e25, 0x1e25, + 0x1e27, 0x1e27, + 0x1e29, 0x1e29, + 0x1e2b, 0x1e2b, + 0x1e2d, 0x1e2d, + 0x1e2f, 0x1e2f, + 0x1e31, 0x1e31, + 0x1e33, 0x1e33, + 0x1e35, 0x1e35, + 0x1e37, 0x1e37, + 0x1e39, 0x1e39, + 0x1e3b, 0x1e3b, + 0x1e3d, 0x1e3d, + 0x1e3f, 0x1e3f, + 0x1e41, 0x1e41, + 0x1e43, 0x1e43, + 0x1e45, 0x1e45, + 0x1e47, 0x1e47, + 0x1e49, 0x1e49, + 0x1e4b, 0x1e4b, + 0x1e4d, 0x1e4d, + 0x1e4f, 0x1e4f, + 0x1e51, 0x1e51, + 0x1e53, 0x1e53, + 0x1e55, 0x1e55, + 0x1e57, 0x1e57, + 0x1e59, 0x1e59, + 0x1e5b, 0x1e5b, + 0x1e5d, 0x1e5d, + 0x1e5f, 0x1e5f, + 0x1e61, 0x1e61, + 0x1e63, 0x1e63, + 0x1e65, 0x1e65, + 0x1e67, 0x1e67, + 0x1e69, 0x1e69, + 0x1e6b, 0x1e6b, + 0x1e6d, 0x1e6d, + 0x1e6f, 0x1e6f, + 0x1e71, 0x1e71, + 0x1e73, 0x1e73, + 0x1e75, 0x1e75, + 0x1e77, 0x1e77, + 0x1e79, 0x1e79, + 0x1e7b, 0x1e7b, + 0x1e7d, 0x1e7d, + 0x1e7f, 0x1e7f, + 0x1e81, 0x1e81, + 0x1e83, 0x1e83, + 0x1e85, 0x1e85, + 0x1e87, 0x1e87, + 0x1e89, 0x1e89, + 0x1e8b, 0x1e8b, + 0x1e8d, 0x1e8d, + 0x1e8f, 0x1e8f, + 0x1e91, 0x1e91, + 0x1e93, 0x1e93, + 0x1e95, 0x1e9b, + 0x1ea1, 0x1ea1, + 0x1ea3, 0x1ea3, + 0x1ea5, 0x1ea5, + 0x1ea7, 0x1ea7, + 0x1ea9, 0x1ea9, + 0x1eab, 0x1eab, + 0x1ead, 0x1ead, + 0x1eaf, 0x1eaf, + 0x1eb1, 0x1eb1, + 0x1eb3, 0x1eb3, + 0x1eb5, 0x1eb5, + 0x1eb7, 0x1eb7, + 0x1eb9, 0x1eb9, + 0x1ebb, 0x1ebb, + 0x1ebd, 0x1ebd, + 0x1ebf, 0x1ebf, + 0x1ec1, 0x1ec1, + 0x1ec3, 0x1ec3, + 0x1ec5, 0x1ec5, + 0x1ec7, 0x1ec7, + 0x1ec9, 0x1ec9, + 0x1ecb, 0x1ecb, + 0x1ecd, 0x1ecd, + 0x1ecf, 0x1ecf, + 0x1ed1, 0x1ed1, + 0x1ed3, 0x1ed3, + 0x1ed5, 0x1ed5, + 0x1ed7, 0x1ed7, + 0x1ed9, 0x1ed9, + 0x1edb, 0x1edb, + 0x1edd, 0x1edd, + 0x1edf, 0x1edf, + 0x1ee1, 0x1ee1, + 0x1ee3, 0x1ee3, + 0x1ee5, 0x1ee5, + 0x1ee7, 0x1ee7, + 0x1ee9, 0x1ee9, + 0x1eeb, 0x1eeb, + 0x1eed, 0x1eed, + 0x1eef, 0x1eef, + 0x1ef1, 0x1ef1, + 0x1ef3, 0x1ef3, + 0x1ef5, 0x1ef5, + 0x1ef7, 0x1ef7, + 0x1ef9, 0x1ef9, + 0x1efb, 0x1efb, + 0x1efd, 0x1efd, + 0x1eff, 0x1f07, + 0x1f10, 0x1f15, + 0x1f20, 0x1f27, + 0x1f30, 0x1f37, + 0x1f40, 0x1f45, + 0x1f50, 0x1f57, + 0x1f60, 0x1f67, + 0x1f70, 0x1f7d, + 0x1f80, 0x1f87, + 0x1f90, 0x1f97, + 0x1fa0, 0x1fa7, + 0x1fb0, 0x1fb4, + 0x1fb6, 0x1fb7, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fc7, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fd7, + 0x1fe0, 0x1fe7, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ff7, + 0x214e, 0x214e, + 0x2170, 0x217f, + 0x2184, 0x2184, + 0x24d0, 0x24e9, + 0x2c30, 0x2c5f, + 0x2c61, 0x2c61, + 0x2c65, 0x2c66, + 0x2c68, 0x2c68, + 0x2c6a, 0x2c6a, + 0x2c6c, 0x2c6c, + 0x2c73, 0x2c73, + 0x2c76, 0x2c76, + 0x2c81, 0x2c81, + 0x2c83, 0x2c83, + 0x2c85, 0x2c85, + 0x2c87, 0x2c87, + 0x2c89, 0x2c89, + 0x2c8b, 0x2c8b, + 0x2c8d, 0x2c8d, + 0x2c8f, 0x2c8f, + 0x2c91, 0x2c91, + 0x2c93, 0x2c93, + 0x2c95, 0x2c95, + 0x2c97, 0x2c97, + 0x2c99, 0x2c99, + 0x2c9b, 0x2c9b, + 0x2c9d, 0x2c9d, + 0x2c9f, 0x2c9f, + 0x2ca1, 0x2ca1, + 0x2ca3, 0x2ca3, + 0x2ca5, 0x2ca5, + 0x2ca7, 0x2ca7, + 0x2ca9, 0x2ca9, + 0x2cab, 0x2cab, + 0x2cad, 0x2cad, + 0x2caf, 0x2caf, + 0x2cb1, 0x2cb1, + 0x2cb3, 0x2cb3, + 0x2cb5, 0x2cb5, + 0x2cb7, 0x2cb7, + 0x2cb9, 0x2cb9, + 0x2cbb, 0x2cbb, + 0x2cbd, 0x2cbd, + 0x2cbf, 0x2cbf, + 0x2cc1, 0x2cc1, + 0x2cc3, 0x2cc3, + 0x2cc5, 0x2cc5, + 0x2cc7, 0x2cc7, + 0x2cc9, 0x2cc9, + 0x2ccb, 0x2ccb, + 0x2ccd, 0x2ccd, + 0x2ccf, 0x2ccf, + 0x2cd1, 0x2cd1, + 0x2cd3, 0x2cd3, + 0x2cd5, 0x2cd5, + 0x2cd7, 0x2cd7, + 0x2cd9, 0x2cd9, + 0x2cdb, 0x2cdb, + 0x2cdd, 0x2cdd, + 0x2cdf, 0x2cdf, + 0x2ce1, 0x2ce1, + 0x2ce3, 0x2ce3, + 0x2cec, 0x2cec, + 0x2cee, 0x2cee, + 0x2cf3, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa641, 0xa641, + 0xa643, 0xa643, + 0xa645, 0xa645, + 0xa647, 0xa647, + 0xa649, 0xa649, + 0xa64b, 0xa64b, + 0xa64d, 0xa64d, + 0xa64f, 0xa64f, + 0xa651, 0xa651, + 0xa653, 0xa653, + 0xa655, 0xa655, + 0xa657, 0xa657, + 0xa659, 0xa659, + 0xa65b, 0xa65b, + 0xa65d, 0xa65d, + 0xa65f, 0xa65f, + 0xa661, 0xa661, + 0xa663, 0xa663, + 0xa665, 0xa665, + 0xa667, 0xa667, + 0xa669, 0xa669, + 0xa66b, 0xa66b, + 0xa66d, 0xa66d, + 0xa681, 0xa681, + 0xa683, 0xa683, + 0xa685, 0xa685, + 0xa687, 0xa687, + 0xa689, 0xa689, + 0xa68b, 0xa68b, + 0xa68d, 0xa68d, + 0xa68f, 0xa68f, + 0xa691, 0xa691, + 0xa693, 0xa693, + 0xa695, 0xa695, + 0xa697, 0xa697, + 0xa699, 0xa699, + 0xa69b, 0xa69b, + 0xa723, 0xa723, + 0xa725, 0xa725, + 0xa727, 0xa727, + 0xa729, 0xa729, + 0xa72b, 0xa72b, + 0xa72d, 0xa72d, + 0xa72f, 0xa72f, + 0xa733, 0xa733, + 0xa735, 0xa735, + 0xa737, 0xa737, + 0xa739, 0xa739, + 0xa73b, 0xa73b, + 0xa73d, 0xa73d, + 0xa73f, 0xa73f, + 0xa741, 0xa741, + 0xa743, 0xa743, + 0xa745, 0xa745, + 0xa747, 0xa747, + 0xa749, 0xa749, + 0xa74b, 0xa74b, + 0xa74d, 0xa74d, + 0xa74f, 0xa74f, + 0xa751, 0xa751, + 0xa753, 0xa753, + 0xa755, 0xa755, + 0xa757, 0xa757, + 0xa759, 0xa759, + 0xa75b, 0xa75b, + 0xa75d, 0xa75d, + 0xa75f, 0xa75f, + 0xa761, 0xa761, + 0xa763, 0xa763, + 0xa765, 0xa765, + 0xa767, 0xa767, + 0xa769, 0xa769, + 0xa76b, 0xa76b, + 0xa76d, 0xa76d, + 0xa76f, 0xa76f, + 0xa77a, 0xa77a, + 0xa77c, 0xa77c, + 0xa77f, 0xa77f, + 0xa781, 0xa781, + 0xa783, 0xa783, + 0xa785, 0xa785, + 0xa787, 0xa787, + 0xa78c, 0xa78c, + 0xa791, 0xa791, + 0xa793, 0xa794, + 0xa797, 0xa797, + 0xa799, 0xa799, + 0xa79b, 0xa79b, + 0xa79d, 0xa79d, + 0xa79f, 0xa79f, + 0xa7a1, 0xa7a1, + 0xa7a3, 0xa7a3, + 0xa7a5, 0xa7a5, + 0xa7a7, 0xa7a7, + 0xa7a9, 0xa7a9, + 0xa7b5, 0xa7b5, + 0xa7b7, 0xa7b7, + 0xa7b9, 0xa7b9, + 0xa7bb, 0xa7bb, + 0xa7bd, 0xa7bd, + 0xa7bf, 0xa7bf, + 0xa7c1, 0xa7c1, + 0xa7c3, 0xa7c3, + 0xa7c8, 0xa7c8, + 0xa7ca, 0xa7ca, + 0xa7d1, 0xa7d1, + 0xa7d7, 0xa7d7, + 0xa7d9, 0xa7d9, + 0xa7f6, 0xa7f6, + 0xab53, 0xab53, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff41, 0xff5a, + 0x10428, 0x1044f, + 0x104d8, 0x104fb, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10cc0, 0x10cf2, + 0x118c0, 0x118df, + 0x16e60, 0x16e7f, + 0x1e922, 0x1e943, +}; /* CR_Changes_When_Titlecased */ + +/* 'Changes_When_Casefolded': Derived Property */ +static const OnigCodePoint CR_Changes_When_Casefolded[] = { + 622, + 0x0041, 0x005a, + 0x00b5, 0x00b5, + 0x00c0, 0x00d6, + 0x00d8, 0x00df, + 0x0100, 0x0100, + 0x0102, 0x0102, + 0x0104, 0x0104, + 0x0106, 0x0106, + 0x0108, 0x0108, + 0x010a, 0x010a, + 0x010c, 0x010c, + 0x010e, 0x010e, + 0x0110, 0x0110, + 0x0112, 0x0112, + 0x0114, 0x0114, + 0x0116, 0x0116, + 0x0118, 0x0118, + 0x011a, 0x011a, + 0x011c, 0x011c, + 0x011e, 0x011e, + 0x0120, 0x0120, + 0x0122, 0x0122, + 0x0124, 0x0124, + 0x0126, 0x0126, + 0x0128, 0x0128, + 0x012a, 0x012a, + 0x012c, 0x012c, + 0x012e, 0x012e, + 0x0130, 0x0130, + 0x0132, 0x0132, + 0x0134, 0x0134, + 0x0136, 0x0136, + 0x0139, 0x0139, + 0x013b, 0x013b, + 0x013d, 0x013d, + 0x013f, 0x013f, + 0x0141, 0x0141, + 0x0143, 0x0143, + 0x0145, 0x0145, + 0x0147, 0x0147, + 0x0149, 0x014a, + 0x014c, 0x014c, + 0x014e, 0x014e, + 0x0150, 0x0150, + 0x0152, 0x0152, + 0x0154, 0x0154, + 0x0156, 0x0156, + 0x0158, 0x0158, + 0x015a, 0x015a, + 0x015c, 0x015c, + 0x015e, 0x015e, + 0x0160, 0x0160, + 0x0162, 0x0162, + 0x0164, 0x0164, + 0x0166, 0x0166, + 0x0168, 0x0168, + 0x016a, 0x016a, + 0x016c, 0x016c, + 0x016e, 0x016e, + 0x0170, 0x0170, + 0x0172, 0x0172, + 0x0174, 0x0174, + 0x0176, 0x0176, + 0x0178, 0x0179, + 0x017b, 0x017b, + 0x017d, 0x017d, + 0x017f, 0x017f, + 0x0181, 0x0182, + 0x0184, 0x0184, + 0x0186, 0x0187, + 0x0189, 0x018b, + 0x018e, 0x0191, + 0x0193, 0x0194, + 0x0196, 0x0198, + 0x019c, 0x019d, + 0x019f, 0x01a0, + 0x01a2, 0x01a2, + 0x01a4, 0x01a4, + 0x01a6, 0x01a7, + 0x01a9, 0x01a9, + 0x01ac, 0x01ac, + 0x01ae, 0x01af, + 0x01b1, 0x01b3, + 0x01b5, 0x01b5, + 0x01b7, 0x01b8, + 0x01bc, 0x01bc, + 0x01c4, 0x01c5, + 0x01c7, 0x01c8, + 0x01ca, 0x01cb, + 0x01cd, 0x01cd, + 0x01cf, 0x01cf, + 0x01d1, 0x01d1, + 0x01d3, 0x01d3, + 0x01d5, 0x01d5, + 0x01d7, 0x01d7, + 0x01d9, 0x01d9, + 0x01db, 0x01db, + 0x01de, 0x01de, + 0x01e0, 0x01e0, + 0x01e2, 0x01e2, + 0x01e4, 0x01e4, + 0x01e6, 0x01e6, + 0x01e8, 0x01e8, + 0x01ea, 0x01ea, + 0x01ec, 0x01ec, + 0x01ee, 0x01ee, + 0x01f1, 0x01f2, + 0x01f4, 0x01f4, + 0x01f6, 0x01f8, + 0x01fa, 0x01fa, + 0x01fc, 0x01fc, + 0x01fe, 0x01fe, + 0x0200, 0x0200, + 0x0202, 0x0202, + 0x0204, 0x0204, + 0x0206, 0x0206, + 0x0208, 0x0208, + 0x020a, 0x020a, + 0x020c, 0x020c, + 0x020e, 0x020e, + 0x0210, 0x0210, + 0x0212, 0x0212, + 0x0214, 0x0214, + 0x0216, 0x0216, + 0x0218, 0x0218, + 0x021a, 0x021a, + 0x021c, 0x021c, + 0x021e, 0x021e, + 0x0220, 0x0220, + 0x0222, 0x0222, + 0x0224, 0x0224, + 0x0226, 0x0226, + 0x0228, 0x0228, + 0x022a, 0x022a, + 0x022c, 0x022c, + 0x022e, 0x022e, + 0x0230, 0x0230, + 0x0232, 0x0232, + 0x023a, 0x023b, + 0x023d, 0x023e, + 0x0241, 0x0241, + 0x0243, 0x0246, + 0x0248, 0x0248, + 0x024a, 0x024a, + 0x024c, 0x024c, + 0x024e, 0x024e, + 0x0345, 0x0345, + 0x0370, 0x0370, + 0x0372, 0x0372, + 0x0376, 0x0376, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x038f, + 0x0391, 0x03a1, + 0x03a3, 0x03ab, + 0x03c2, 0x03c2, + 0x03cf, 0x03d1, + 0x03d5, 0x03d6, + 0x03d8, 0x03d8, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03e2, + 0x03e4, 0x03e4, + 0x03e6, 0x03e6, + 0x03e8, 0x03e8, + 0x03ea, 0x03ea, + 0x03ec, 0x03ec, + 0x03ee, 0x03ee, + 0x03f0, 0x03f1, + 0x03f4, 0x03f5, + 0x03f7, 0x03f7, + 0x03f9, 0x03fa, + 0x03fd, 0x042f, + 0x0460, 0x0460, + 0x0462, 0x0462, + 0x0464, 0x0464, + 0x0466, 0x0466, + 0x0468, 0x0468, + 0x046a, 0x046a, + 0x046c, 0x046c, + 0x046e, 0x046e, + 0x0470, 0x0470, + 0x0472, 0x0472, + 0x0474, 0x0474, + 0x0476, 0x0476, + 0x0478, 0x0478, + 0x047a, 0x047a, + 0x047c, 0x047c, + 0x047e, 0x047e, + 0x0480, 0x0480, + 0x048a, 0x048a, + 0x048c, 0x048c, + 0x048e, 0x048e, + 0x0490, 0x0490, + 0x0492, 0x0492, + 0x0494, 0x0494, + 0x0496, 0x0496, + 0x0498, 0x0498, + 0x049a, 0x049a, + 0x049c, 0x049c, + 0x049e, 0x049e, + 0x04a0, 0x04a0, + 0x04a2, 0x04a2, + 0x04a4, 0x04a4, + 0x04a6, 0x04a6, + 0x04a8, 0x04a8, + 0x04aa, 0x04aa, + 0x04ac, 0x04ac, + 0x04ae, 0x04ae, + 0x04b0, 0x04b0, + 0x04b2, 0x04b2, + 0x04b4, 0x04b4, + 0x04b6, 0x04b6, + 0x04b8, 0x04b8, + 0x04ba, 0x04ba, + 0x04bc, 0x04bc, + 0x04be, 0x04be, + 0x04c0, 0x04c1, + 0x04c3, 0x04c3, + 0x04c5, 0x04c5, + 0x04c7, 0x04c7, + 0x04c9, 0x04c9, + 0x04cb, 0x04cb, + 0x04cd, 0x04cd, + 0x04d0, 0x04d0, + 0x04d2, 0x04d2, + 0x04d4, 0x04d4, + 0x04d6, 0x04d6, + 0x04d8, 0x04d8, + 0x04da, 0x04da, + 0x04dc, 0x04dc, + 0x04de, 0x04de, + 0x04e0, 0x04e0, + 0x04e2, 0x04e2, + 0x04e4, 0x04e4, + 0x04e6, 0x04e6, + 0x04e8, 0x04e8, + 0x04ea, 0x04ea, + 0x04ec, 0x04ec, + 0x04ee, 0x04ee, + 0x04f0, 0x04f0, + 0x04f2, 0x04f2, + 0x04f4, 0x04f4, + 0x04f6, 0x04f6, + 0x04f8, 0x04f8, + 0x04fa, 0x04fa, + 0x04fc, 0x04fc, + 0x04fe, 0x04fe, + 0x0500, 0x0500, + 0x0502, 0x0502, + 0x0504, 0x0504, + 0x0506, 0x0506, + 0x0508, 0x0508, + 0x050a, 0x050a, + 0x050c, 0x050c, + 0x050e, 0x050e, + 0x0510, 0x0510, + 0x0512, 0x0512, + 0x0514, 0x0514, + 0x0516, 0x0516, + 0x0518, 0x0518, + 0x051a, 0x051a, + 0x051c, 0x051c, + 0x051e, 0x051e, + 0x0520, 0x0520, + 0x0522, 0x0522, + 0x0524, 0x0524, + 0x0526, 0x0526, + 0x0528, 0x0528, + 0x052a, 0x052a, + 0x052c, 0x052c, + 0x052e, 0x052e, + 0x0531, 0x0556, + 0x0587, 0x0587, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1e00, 0x1e00, + 0x1e02, 0x1e02, + 0x1e04, 0x1e04, + 0x1e06, 0x1e06, + 0x1e08, 0x1e08, + 0x1e0a, 0x1e0a, + 0x1e0c, 0x1e0c, + 0x1e0e, 0x1e0e, + 0x1e10, 0x1e10, + 0x1e12, 0x1e12, + 0x1e14, 0x1e14, + 0x1e16, 0x1e16, + 0x1e18, 0x1e18, + 0x1e1a, 0x1e1a, + 0x1e1c, 0x1e1c, + 0x1e1e, 0x1e1e, + 0x1e20, 0x1e20, + 0x1e22, 0x1e22, + 0x1e24, 0x1e24, + 0x1e26, 0x1e26, + 0x1e28, 0x1e28, + 0x1e2a, 0x1e2a, + 0x1e2c, 0x1e2c, + 0x1e2e, 0x1e2e, + 0x1e30, 0x1e30, + 0x1e32, 0x1e32, + 0x1e34, 0x1e34, + 0x1e36, 0x1e36, + 0x1e38, 0x1e38, + 0x1e3a, 0x1e3a, + 0x1e3c, 0x1e3c, + 0x1e3e, 0x1e3e, + 0x1e40, 0x1e40, + 0x1e42, 0x1e42, + 0x1e44, 0x1e44, + 0x1e46, 0x1e46, + 0x1e48, 0x1e48, + 0x1e4a, 0x1e4a, + 0x1e4c, 0x1e4c, + 0x1e4e, 0x1e4e, + 0x1e50, 0x1e50, + 0x1e52, 0x1e52, + 0x1e54, 0x1e54, + 0x1e56, 0x1e56, + 0x1e58, 0x1e58, + 0x1e5a, 0x1e5a, + 0x1e5c, 0x1e5c, + 0x1e5e, 0x1e5e, + 0x1e60, 0x1e60, + 0x1e62, 0x1e62, + 0x1e64, 0x1e64, + 0x1e66, 0x1e66, + 0x1e68, 0x1e68, + 0x1e6a, 0x1e6a, + 0x1e6c, 0x1e6c, + 0x1e6e, 0x1e6e, + 0x1e70, 0x1e70, + 0x1e72, 0x1e72, + 0x1e74, 0x1e74, + 0x1e76, 0x1e76, + 0x1e78, 0x1e78, + 0x1e7a, 0x1e7a, + 0x1e7c, 0x1e7c, + 0x1e7e, 0x1e7e, + 0x1e80, 0x1e80, + 0x1e82, 0x1e82, + 0x1e84, 0x1e84, + 0x1e86, 0x1e86, + 0x1e88, 0x1e88, + 0x1e8a, 0x1e8a, + 0x1e8c, 0x1e8c, + 0x1e8e, 0x1e8e, + 0x1e90, 0x1e90, + 0x1e92, 0x1e92, + 0x1e94, 0x1e94, + 0x1e9a, 0x1e9b, + 0x1e9e, 0x1e9e, + 0x1ea0, 0x1ea0, + 0x1ea2, 0x1ea2, + 0x1ea4, 0x1ea4, + 0x1ea6, 0x1ea6, + 0x1ea8, 0x1ea8, + 0x1eaa, 0x1eaa, + 0x1eac, 0x1eac, + 0x1eae, 0x1eae, + 0x1eb0, 0x1eb0, + 0x1eb2, 0x1eb2, + 0x1eb4, 0x1eb4, + 0x1eb6, 0x1eb6, + 0x1eb8, 0x1eb8, + 0x1eba, 0x1eba, + 0x1ebc, 0x1ebc, + 0x1ebe, 0x1ebe, + 0x1ec0, 0x1ec0, + 0x1ec2, 0x1ec2, + 0x1ec4, 0x1ec4, + 0x1ec6, 0x1ec6, + 0x1ec8, 0x1ec8, + 0x1eca, 0x1eca, + 0x1ecc, 0x1ecc, + 0x1ece, 0x1ece, + 0x1ed0, 0x1ed0, + 0x1ed2, 0x1ed2, + 0x1ed4, 0x1ed4, + 0x1ed6, 0x1ed6, + 0x1ed8, 0x1ed8, + 0x1eda, 0x1eda, + 0x1edc, 0x1edc, + 0x1ede, 0x1ede, + 0x1ee0, 0x1ee0, + 0x1ee2, 0x1ee2, + 0x1ee4, 0x1ee4, + 0x1ee6, 0x1ee6, + 0x1ee8, 0x1ee8, + 0x1eea, 0x1eea, + 0x1eec, 0x1eec, + 0x1eee, 0x1eee, + 0x1ef0, 0x1ef0, + 0x1ef2, 0x1ef2, + 0x1ef4, 0x1ef4, + 0x1ef6, 0x1ef6, + 0x1ef8, 0x1ef8, + 0x1efa, 0x1efa, + 0x1efc, 0x1efc, + 0x1efe, 0x1efe, + 0x1f08, 0x1f0f, + 0x1f18, 0x1f1d, + 0x1f28, 0x1f2f, + 0x1f38, 0x1f3f, + 0x1f48, 0x1f4d, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f5f, + 0x1f68, 0x1f6f, + 0x1f80, 0x1faf, + 0x1fb2, 0x1fb4, + 0x1fb7, 0x1fbc, + 0x1fc2, 0x1fc4, + 0x1fc7, 0x1fcc, + 0x1fd8, 0x1fdb, + 0x1fe8, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff7, 0x1ffc, + 0x2126, 0x2126, + 0x212a, 0x212b, + 0x2132, 0x2132, + 0x2160, 0x216f, + 0x2183, 0x2183, + 0x24b6, 0x24cf, + 0x2c00, 0x2c2f, + 0x2c60, 0x2c60, + 0x2c62, 0x2c64, + 0x2c67, 0x2c67, + 0x2c69, 0x2c69, + 0x2c6b, 0x2c6b, + 0x2c6d, 0x2c70, + 0x2c72, 0x2c72, + 0x2c75, 0x2c75, + 0x2c7e, 0x2c80, + 0x2c82, 0x2c82, + 0x2c84, 0x2c84, + 0x2c86, 0x2c86, + 0x2c88, 0x2c88, + 0x2c8a, 0x2c8a, + 0x2c8c, 0x2c8c, + 0x2c8e, 0x2c8e, + 0x2c90, 0x2c90, + 0x2c92, 0x2c92, + 0x2c94, 0x2c94, + 0x2c96, 0x2c96, + 0x2c98, 0x2c98, + 0x2c9a, 0x2c9a, + 0x2c9c, 0x2c9c, + 0x2c9e, 0x2c9e, + 0x2ca0, 0x2ca0, + 0x2ca2, 0x2ca2, + 0x2ca4, 0x2ca4, + 0x2ca6, 0x2ca6, + 0x2ca8, 0x2ca8, + 0x2caa, 0x2caa, + 0x2cac, 0x2cac, + 0x2cae, 0x2cae, + 0x2cb0, 0x2cb0, + 0x2cb2, 0x2cb2, + 0x2cb4, 0x2cb4, + 0x2cb6, 0x2cb6, + 0x2cb8, 0x2cb8, + 0x2cba, 0x2cba, + 0x2cbc, 0x2cbc, + 0x2cbe, 0x2cbe, + 0x2cc0, 0x2cc0, + 0x2cc2, 0x2cc2, + 0x2cc4, 0x2cc4, + 0x2cc6, 0x2cc6, + 0x2cc8, 0x2cc8, + 0x2cca, 0x2cca, + 0x2ccc, 0x2ccc, + 0x2cce, 0x2cce, + 0x2cd0, 0x2cd0, + 0x2cd2, 0x2cd2, + 0x2cd4, 0x2cd4, + 0x2cd6, 0x2cd6, + 0x2cd8, 0x2cd8, + 0x2cda, 0x2cda, + 0x2cdc, 0x2cdc, + 0x2cde, 0x2cde, + 0x2ce0, 0x2ce0, + 0x2ce2, 0x2ce2, + 0x2ceb, 0x2ceb, + 0x2ced, 0x2ced, + 0x2cf2, 0x2cf2, + 0xa640, 0xa640, + 0xa642, 0xa642, + 0xa644, 0xa644, + 0xa646, 0xa646, + 0xa648, 0xa648, + 0xa64a, 0xa64a, + 0xa64c, 0xa64c, + 0xa64e, 0xa64e, + 0xa650, 0xa650, + 0xa652, 0xa652, + 0xa654, 0xa654, + 0xa656, 0xa656, + 0xa658, 0xa658, + 0xa65a, 0xa65a, + 0xa65c, 0xa65c, + 0xa65e, 0xa65e, + 0xa660, 0xa660, + 0xa662, 0xa662, + 0xa664, 0xa664, + 0xa666, 0xa666, + 0xa668, 0xa668, + 0xa66a, 0xa66a, + 0xa66c, 0xa66c, + 0xa680, 0xa680, + 0xa682, 0xa682, + 0xa684, 0xa684, + 0xa686, 0xa686, + 0xa688, 0xa688, + 0xa68a, 0xa68a, + 0xa68c, 0xa68c, + 0xa68e, 0xa68e, + 0xa690, 0xa690, + 0xa692, 0xa692, + 0xa694, 0xa694, + 0xa696, 0xa696, + 0xa698, 0xa698, + 0xa69a, 0xa69a, + 0xa722, 0xa722, + 0xa724, 0xa724, + 0xa726, 0xa726, + 0xa728, 0xa728, + 0xa72a, 0xa72a, + 0xa72c, 0xa72c, + 0xa72e, 0xa72e, + 0xa732, 0xa732, + 0xa734, 0xa734, + 0xa736, 0xa736, + 0xa738, 0xa738, + 0xa73a, 0xa73a, + 0xa73c, 0xa73c, + 0xa73e, 0xa73e, + 0xa740, 0xa740, + 0xa742, 0xa742, + 0xa744, 0xa744, + 0xa746, 0xa746, + 0xa748, 0xa748, + 0xa74a, 0xa74a, + 0xa74c, 0xa74c, + 0xa74e, 0xa74e, + 0xa750, 0xa750, + 0xa752, 0xa752, + 0xa754, 0xa754, + 0xa756, 0xa756, + 0xa758, 0xa758, + 0xa75a, 0xa75a, + 0xa75c, 0xa75c, + 0xa75e, 0xa75e, + 0xa760, 0xa760, + 0xa762, 0xa762, + 0xa764, 0xa764, + 0xa766, 0xa766, + 0xa768, 0xa768, + 0xa76a, 0xa76a, + 0xa76c, 0xa76c, + 0xa76e, 0xa76e, + 0xa779, 0xa779, + 0xa77b, 0xa77b, + 0xa77d, 0xa77e, + 0xa780, 0xa780, + 0xa782, 0xa782, + 0xa784, 0xa784, + 0xa786, 0xa786, + 0xa78b, 0xa78b, + 0xa78d, 0xa78d, + 0xa790, 0xa790, + 0xa792, 0xa792, + 0xa796, 0xa796, + 0xa798, 0xa798, + 0xa79a, 0xa79a, + 0xa79c, 0xa79c, + 0xa79e, 0xa79e, + 0xa7a0, 0xa7a0, + 0xa7a2, 0xa7a2, + 0xa7a4, 0xa7a4, + 0xa7a6, 0xa7a6, + 0xa7a8, 0xa7a8, + 0xa7aa, 0xa7ae, + 0xa7b0, 0xa7b4, + 0xa7b6, 0xa7b6, + 0xa7b8, 0xa7b8, + 0xa7ba, 0xa7ba, + 0xa7bc, 0xa7bc, + 0xa7be, 0xa7be, + 0xa7c0, 0xa7c0, + 0xa7c2, 0xa7c2, + 0xa7c4, 0xa7c7, + 0xa7c9, 0xa7c9, + 0xa7d0, 0xa7d0, + 0xa7d6, 0xa7d6, + 0xa7d8, 0xa7d8, + 0xa7f5, 0xa7f5, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff21, 0xff3a, + 0x10400, 0x10427, + 0x104b0, 0x104d3, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10c80, 0x10cb2, + 0x118a0, 0x118bf, + 0x16e40, 0x16e5f, + 0x1e900, 0x1e921, +}; /* CR_Changes_When_Casefolded */ + +/* 'Changes_When_Casemapped': Derived Property */ +static const OnigCodePoint CR_Changes_When_Casemapped[] = { + 131, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00b5, 0x00b5, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x0137, + 0x0139, 0x018c, + 0x018e, 0x019a, + 0x019c, 0x01a9, + 0x01ac, 0x01b9, + 0x01bc, 0x01bd, + 0x01bf, 0x01bf, + 0x01c4, 0x0220, + 0x0222, 0x0233, + 0x023a, 0x0254, + 0x0256, 0x0257, + 0x0259, 0x0259, + 0x025b, 0x025c, + 0x0260, 0x0261, + 0x0263, 0x0263, + 0x0265, 0x0266, + 0x0268, 0x026c, + 0x026f, 0x026f, + 0x0271, 0x0272, + 0x0275, 0x0275, + 0x027d, 0x027d, + 0x0280, 0x0280, + 0x0282, 0x0283, + 0x0287, 0x028c, + 0x0292, 0x0292, + 0x029d, 0x029e, + 0x0345, 0x0345, + 0x0370, 0x0373, + 0x0376, 0x0377, + 0x037b, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03d1, + 0x03d5, 0x03f5, + 0x03f7, 0x03fb, + 0x03fd, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0561, 0x0587, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fd, 0x10ff, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1d79, 0x1d79, + 0x1d7d, 0x1d7d, + 0x1d8e, 0x1d8e, + 0x1e00, 0x1e9b, + 0x1e9e, 0x1e9e, + 0x1ea0, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2126, 0x2126, + 0x212a, 0x212b, + 0x2132, 0x2132, + 0x214e, 0x214e, + 0x2160, 0x217f, + 0x2183, 0x2184, + 0x24b6, 0x24e9, + 0x2c00, 0x2c70, + 0x2c72, 0x2c73, + 0x2c75, 0x2c76, + 0x2c7e, 0x2ce3, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0xa640, 0xa66d, + 0xa680, 0xa69b, + 0xa722, 0xa72f, + 0xa732, 0xa76f, + 0xa779, 0xa787, + 0xa78b, 0xa78d, + 0xa790, 0xa794, + 0xa796, 0xa7ae, + 0xa7b0, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d6, 0xa7d9, + 0xa7f5, 0xa7f6, + 0xab53, 0xab53, + 0xab70, 0xabbf, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0x10400, 0x1044f, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x118a0, 0x118df, + 0x16e40, 0x16e7f, + 0x1e900, 0x1e943, +}; /* CR_Changes_When_Casemapped */ + +/* 'ID_Start': Derived Property */ +static const OnigCodePoint CR_ID_Start[] = { + 659, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0370, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0620, 0x064a, + 0x066e, 0x066f, + 0x0671, 0x06d3, + 0x06d5, 0x06d5, + 0x06e5, 0x06e6, + 0x06ee, 0x06ef, + 0x06fa, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x0710, + 0x0712, 0x072f, + 0x074d, 0x07a5, + 0x07b1, 0x07b1, + 0x07ca, 0x07ea, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x0800, 0x0815, + 0x081a, 0x081a, + 0x0824, 0x0824, + 0x0828, 0x0828, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c9, + 0x0904, 0x0939, + 0x093d, 0x093d, + 0x0950, 0x0950, + 0x0958, 0x0961, + 0x0971, 0x0980, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09bd, + 0x09ce, 0x09ce, + 0x09dc, 0x09dd, + 0x09df, 0x09e1, + 0x09f0, 0x09f1, + 0x09fc, 0x09fc, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a72, 0x0a74, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0abd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae1, + 0x0af9, 0x0af9, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b3d, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b71, 0x0b71, + 0x0b83, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bd0, 0x0bd0, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c3d, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c61, + 0x0c80, 0x0c80, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cbd, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0cf1, 0x0cf2, + 0x0d04, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d3d, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d56, + 0x0d5f, 0x0d61, + 0x0d7a, 0x0d7f, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0e01, 0x0e30, + 0x0e32, 0x0e33, + 0x0e40, 0x0e46, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb0, + 0x0eb2, 0x0eb3, + 0x0ebd, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f88, 0x0f8c, + 0x1000, 0x102a, + 0x103f, 0x103f, + 0x1050, 0x1055, + 0x105a, 0x105d, + 0x1061, 0x1061, + 0x1065, 0x1066, + 0x106e, 0x1070, + 0x1075, 0x1081, + 0x108e, 0x108e, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1711, + 0x171f, 0x1731, + 0x1740, 0x1751, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1780, 0x17b3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dc, + 0x1820, 0x1878, + 0x1880, 0x18a8, + 0x18aa, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1950, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x1a00, 0x1a16, + 0x1a20, 0x1a54, + 0x1aa7, 0x1aa7, + 0x1b05, 0x1b33, + 0x1b45, 0x1b4c, + 0x1b83, 0x1ba0, + 0x1bae, 0x1baf, + 0x1bba, 0x1be5, + 0x1c00, 0x1c23, + 0x1c4d, 0x1c4f, + 0x1c5a, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2118, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x3005, 0x3007, + 0x3021, 0x3029, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x309b, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa61f, + 0xa62a, 0xa62b, + 0xa640, 0xa66e, + 0xa67f, 0xa69d, + 0xa6a0, 0xa6ef, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa801, + 0xa803, 0xa805, + 0xa807, 0xa80a, + 0xa80c, 0xa822, + 0xa840, 0xa873, + 0xa882, 0xa8b3, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa8fe, + 0xa90a, 0xa925, + 0xa930, 0xa946, + 0xa960, 0xa97c, + 0xa984, 0xa9b2, + 0xa9cf, 0xa9cf, + 0xa9e0, 0xa9e4, + 0xa9e6, 0xa9ef, + 0xa9fa, 0xa9fe, + 0xaa00, 0xaa28, + 0xaa40, 0xaa42, + 0xaa44, 0xaa4b, + 0xaa60, 0xaa76, + 0xaa7a, 0xaa7a, + 0xaa7e, 0xaaaf, + 0xaab1, 0xaab1, + 0xaab5, 0xaab6, + 0xaab9, 0xaabd, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaea, + 0xaaf2, 0xaaf4, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabe2, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb1d, + 0xfb1f, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x10375, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a00, + 0x10a10, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d23, + 0x10e80, 0x10ea9, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11003, 0x11037, + 0x11071, 0x11072, + 0x11075, 0x11075, + 0x11083, 0x110af, + 0x110d0, 0x110e8, + 0x11103, 0x11126, + 0x11144, 0x11144, + 0x11147, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11183, 0x111b2, + 0x111c1, 0x111c4, + 0x111da, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x1122b, + 0x1123f, 0x11240, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112de, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x1133d, + 0x11350, 0x11350, + 0x1135d, 0x11361, + 0x11400, 0x11434, + 0x11447, 0x1144a, + 0x1145f, 0x11461, + 0x11480, 0x114af, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x11580, 0x115ae, + 0x115d8, 0x115db, + 0x11600, 0x1162f, + 0x11644, 0x11644, + 0x11680, 0x116aa, + 0x116b8, 0x116b8, + 0x11700, 0x1171a, + 0x11740, 0x11746, + 0x11800, 0x1182b, + 0x118a0, 0x118df, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x1192f, + 0x1193f, 0x1193f, + 0x11941, 0x11941, + 0x119a0, 0x119a7, + 0x119aa, 0x119d0, + 0x119e1, 0x119e1, + 0x119e3, 0x119e3, + 0x11a00, 0x11a00, + 0x11a0b, 0x11a32, + 0x11a3a, 0x11a3a, + 0x11a50, 0x11a50, + 0x11a5c, 0x11a89, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c2e, + 0x11c40, 0x11c40, + 0x11c72, 0x11c8f, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d30, + 0x11d46, 0x11d46, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d89, + 0x11d98, 0x11d98, + 0x11ee0, 0x11ef2, + 0x11f02, 0x11f02, + 0x11f04, 0x11f10, + 0x11f12, 0x11f33, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a70, 0x16abe, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b40, 0x16b43, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f50, 0x16f50, + 0x16f93, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e4d0, 0x1e4eb, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e900, 0x1e943, + 0x1e94b, 0x1e94b, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_ID_Start */ + +/* 'ID_Continue': Derived Property */ +static const OnigCodePoint CR_ID_Continue[] = { + 768, + 0x0030, 0x0039, + 0x0041, 0x005a, + 0x005f, 0x005f, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00b7, 0x00b7, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0300, 0x0374, + 0x0376, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x0483, 0x0487, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0610, 0x061a, + 0x0620, 0x0669, + 0x066e, 0x06d3, + 0x06d5, 0x06dc, + 0x06df, 0x06e8, + 0x06ea, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07f5, + 0x07fa, 0x07fa, + 0x07fd, 0x07fd, + 0x0800, 0x082d, + 0x0840, 0x085b, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x0898, 0x08e1, + 0x08e3, 0x0963, + 0x0966, 0x096f, + 0x0971, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09f1, + 0x09fc, 0x09fc, + 0x09fe, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b6f, + 0x0b71, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bef, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c80, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d54, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d66, 0x0d6f, + 0x0d7a, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df3, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e4e, + 0x0e50, 0x0e59, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f18, 0x0f19, + 0x0f20, 0x0f29, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f3e, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f84, + 0x0f86, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x1000, 0x1049, + 0x1050, 0x109d, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x135f, + 0x1369, 0x1371, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1734, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17d3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dd, + 0x17e0, 0x17e9, + 0x180b, 0x180d, + 0x180f, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1946, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x1a00, 0x1a1b, + 0x1a20, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa7, 0x1aa7, + 0x1ab0, 0x1abd, + 0x1abf, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b59, + 0x1b6b, 0x1b73, + 0x1b80, 0x1bf3, + 0x1c00, 0x1c37, + 0x1c40, 0x1c49, + 0x1c4d, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x203f, 0x2040, + 0x2054, 0x2054, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x20d0, 0x20dc, + 0x20e1, 0x20e1, + 0x20e5, 0x20f0, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2118, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2dff, + 0x3005, 0x3007, + 0x3021, 0x302f, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x3099, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa62b, + 0xa640, 0xa66f, + 0xa674, 0xa67d, + 0xa67f, 0xa6f1, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa827, + 0xa82c, 0xa82c, + 0xa840, 0xa873, + 0xa880, 0xa8c5, + 0xa8d0, 0xa8d9, + 0xa8e0, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa92d, + 0xa930, 0xa953, + 0xa960, 0xa97c, + 0xa980, 0xa9c0, + 0xa9cf, 0xa9d9, + 0xa9e0, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa60, 0xaa76, + 0xaa7a, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaef, + 0xaaf2, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabea, + 0xabec, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0xfe33, 0xfe34, + 0xfe4d, 0xfe4f, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff10, 0xff19, + 0xff21, 0xff3a, + 0xff3f, 0xff3f, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x101fd, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102e0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae6, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d27, + 0x10d30, 0x10d39, + 0x10e80, 0x10ea9, + 0x10eab, 0x10eac, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f50, + 0x10f70, 0x10f85, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11000, 0x11046, + 0x11066, 0x11075, + 0x1107f, 0x110ba, + 0x110c2, 0x110c2, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x1113f, + 0x11144, 0x11147, + 0x11150, 0x11173, + 0x11176, 0x11176, + 0x11180, 0x111c4, + 0x111c9, 0x111cc, + 0x111ce, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x11237, + 0x1123e, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1144a, + 0x11450, 0x11459, + 0x1145e, 0x11461, + 0x11480, 0x114c5, + 0x114c7, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115c0, + 0x115d8, 0x115dd, + 0x11600, 0x11640, + 0x11644, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11739, + 0x11740, 0x11746, + 0x11800, 0x1183a, + 0x118a0, 0x118e9, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11943, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e1, + 0x119e3, 0x119e4, + 0x11a00, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a50, 0x11a99, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c40, + 0x11c50, 0x11c59, + 0x11c72, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef6, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f42, + 0x11f50, 0x11f59, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13440, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a70, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af4, + 0x16b00, 0x16b36, + 0x16b40, 0x16b43, + 0x16b50, 0x16b59, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d169, + 0x1d16d, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8d0, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0100, 0xe01ef, +}; /* CR_ID_Continue */ + +/* 'XID_Start': Derived Property */ +static const OnigCodePoint CR_XID_Start[] = { + 666, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0370, 0x0374, + 0x0376, 0x0377, + 0x037b, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0620, 0x064a, + 0x066e, 0x066f, + 0x0671, 0x06d3, + 0x06d5, 0x06d5, + 0x06e5, 0x06e6, + 0x06ee, 0x06ef, + 0x06fa, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x0710, + 0x0712, 0x072f, + 0x074d, 0x07a5, + 0x07b1, 0x07b1, + 0x07ca, 0x07ea, + 0x07f4, 0x07f5, + 0x07fa, 0x07fa, + 0x0800, 0x0815, + 0x081a, 0x081a, + 0x0824, 0x0824, + 0x0828, 0x0828, + 0x0840, 0x0858, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x08a0, 0x08c9, + 0x0904, 0x0939, + 0x093d, 0x093d, + 0x0950, 0x0950, + 0x0958, 0x0961, + 0x0971, 0x0980, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09bd, + 0x09ce, 0x09ce, + 0x09dc, 0x09dd, + 0x09df, 0x09e1, + 0x09f0, 0x09f1, + 0x09fc, 0x09fc, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a72, 0x0a74, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0abd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae1, + 0x0af9, 0x0af9, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b3d, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b71, 0x0b71, + 0x0b83, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bd0, 0x0bd0, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c3d, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c61, + 0x0c80, 0x0c80, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cbd, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0cf1, 0x0cf2, + 0x0d04, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d3d, + 0x0d4e, 0x0d4e, + 0x0d54, 0x0d56, + 0x0d5f, 0x0d61, + 0x0d7a, 0x0d7f, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0e01, 0x0e30, + 0x0e32, 0x0e32, + 0x0e40, 0x0e46, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb0, + 0x0eb2, 0x0eb2, + 0x0ebd, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f40, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f88, 0x0f8c, + 0x1000, 0x102a, + 0x103f, 0x103f, + 0x1050, 0x1055, + 0x105a, 0x105d, + 0x1061, 0x1061, + 0x1065, 0x1066, + 0x106e, 0x1070, + 0x1075, 0x1081, + 0x108e, 0x108e, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1711, + 0x171f, 0x1731, + 0x1740, 0x1751, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1780, 0x17b3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dc, + 0x1820, 0x1878, + 0x1880, 0x18a8, + 0x18aa, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1950, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x1a00, 0x1a16, + 0x1a20, 0x1a54, + 0x1aa7, 0x1aa7, + 0x1b05, 0x1b33, + 0x1b45, 0x1b4c, + 0x1b83, 0x1ba0, + 0x1bae, 0x1baf, + 0x1bba, 0x1be5, + 0x1c00, 0x1c23, + 0x1c4d, 0x1c4f, + 0x1c5a, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf6, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2118, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x3005, 0x3007, + 0x3021, 0x3029, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa61f, + 0xa62a, 0xa62b, + 0xa640, 0xa66e, + 0xa67f, 0xa69d, + 0xa6a0, 0xa6ef, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa801, + 0xa803, 0xa805, + 0xa807, 0xa80a, + 0xa80c, 0xa822, + 0xa840, 0xa873, + 0xa882, 0xa8b3, + 0xa8f2, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa8fe, + 0xa90a, 0xa925, + 0xa930, 0xa946, + 0xa960, 0xa97c, + 0xa984, 0xa9b2, + 0xa9cf, 0xa9cf, + 0xa9e0, 0xa9e4, + 0xa9e6, 0xa9ef, + 0xa9fa, 0xa9fe, + 0xaa00, 0xaa28, + 0xaa40, 0xaa42, + 0xaa44, 0xaa4b, + 0xaa60, 0xaa76, + 0xaa7a, 0xaa7a, + 0xaa7e, 0xaaaf, + 0xaab1, 0xaab1, + 0xaab5, 0xaab6, + 0xaab9, 0xaabd, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaea, + 0xaaf2, 0xaaf4, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabe2, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb1d, + 0xfb1f, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfc5d, + 0xfc64, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdf9, + 0xfe71, 0xfe71, + 0xfe73, 0xfe73, + 0xfe77, 0xfe77, + 0xfe79, 0xfe79, + 0xfe7b, 0xfe7b, + 0xfe7d, 0xfe7d, + 0xfe7f, 0xfefc, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0xff66, 0xff9d, + 0xffa0, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x10375, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a00, + 0x10a10, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae4, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d23, + 0x10e80, 0x10ea9, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f45, + 0x10f70, 0x10f81, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11003, 0x11037, + 0x11071, 0x11072, + 0x11075, 0x11075, + 0x11083, 0x110af, + 0x110d0, 0x110e8, + 0x11103, 0x11126, + 0x11144, 0x11144, + 0x11147, 0x11147, + 0x11150, 0x11172, + 0x11176, 0x11176, + 0x11183, 0x111b2, + 0x111c1, 0x111c4, + 0x111da, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x1122b, + 0x1123f, 0x11240, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112de, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x1133d, + 0x11350, 0x11350, + 0x1135d, 0x11361, + 0x11400, 0x11434, + 0x11447, 0x1144a, + 0x1145f, 0x11461, + 0x11480, 0x114af, + 0x114c4, 0x114c5, + 0x114c7, 0x114c7, + 0x11580, 0x115ae, + 0x115d8, 0x115db, + 0x11600, 0x1162f, + 0x11644, 0x11644, + 0x11680, 0x116aa, + 0x116b8, 0x116b8, + 0x11700, 0x1171a, + 0x11740, 0x11746, + 0x11800, 0x1182b, + 0x118a0, 0x118df, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x1192f, + 0x1193f, 0x1193f, + 0x11941, 0x11941, + 0x119a0, 0x119a7, + 0x119aa, 0x119d0, + 0x119e1, 0x119e1, + 0x119e3, 0x119e3, + 0x11a00, 0x11a00, + 0x11a0b, 0x11a32, + 0x11a3a, 0x11a3a, + 0x11a50, 0x11a50, + 0x11a5c, 0x11a89, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c2e, + 0x11c40, 0x11c40, + 0x11c72, 0x11c8f, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d30, + 0x11d46, 0x11d46, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d89, + 0x11d98, 0x11d98, + 0x11ee0, 0x11ef2, + 0x11f02, 0x11f02, + 0x11f04, 0x11f10, + 0x11f12, 0x11f33, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a70, 0x16abe, + 0x16ad0, 0x16aed, + 0x16b00, 0x16b2f, + 0x16b40, 0x16b43, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f50, 0x16f50, + 0x16f93, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e4d0, 0x1e4eb, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e900, 0x1e943, + 0x1e94b, 0x1e94b, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_XID_Start */ + +/* 'XID_Continue': Derived Property */ +static const OnigCodePoint CR_XID_Continue[] = { + 775, + 0x0030, 0x0039, + 0x0041, 0x005a, + 0x005f, 0x005f, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00b5, 0x00b5, + 0x00b7, 0x00b7, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02c1, + 0x02c6, 0x02d1, + 0x02e0, 0x02e4, + 0x02ec, 0x02ec, + 0x02ee, 0x02ee, + 0x0300, 0x0374, + 0x0376, 0x0377, + 0x037b, 0x037d, + 0x037f, 0x037f, + 0x0386, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03f5, + 0x03f7, 0x0481, + 0x0483, 0x0487, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x0559, + 0x0560, 0x0588, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f2, + 0x0610, 0x061a, + 0x0620, 0x0669, + 0x066e, 0x06d3, + 0x06d5, 0x06dc, + 0x06df, 0x06e8, + 0x06ea, 0x06fc, + 0x06ff, 0x06ff, + 0x0710, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07f5, + 0x07fa, 0x07fa, + 0x07fd, 0x07fd, + 0x0800, 0x082d, + 0x0840, 0x085b, + 0x0860, 0x086a, + 0x0870, 0x0887, + 0x0889, 0x088e, + 0x0898, 0x08e1, + 0x08e3, 0x0963, + 0x0966, 0x096f, + 0x0971, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09f1, + 0x09fc, 0x09fc, + 0x09fe, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b6f, + 0x0b71, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bef, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c80, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d54, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d66, 0x0d6f, + 0x0d7a, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df3, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e4e, + 0x0e50, 0x0e59, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f00, + 0x0f18, 0x0f19, + 0x0f20, 0x0f29, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f3e, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f84, + 0x0f86, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x1000, 0x1049, + 0x1050, 0x109d, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x135f, + 0x1369, 0x1371, + 0x1380, 0x138f, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1401, 0x166c, + 0x166f, 0x167f, + 0x1681, 0x169a, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1734, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17d3, + 0x17d7, 0x17d7, + 0x17dc, 0x17dd, + 0x17e0, 0x17e9, + 0x180b, 0x180d, + 0x180f, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1946, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x1a00, 0x1a1b, + 0x1a20, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa7, 0x1aa7, + 0x1ab0, 0x1abd, + 0x1abf, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b59, + 0x1b6b, 0x1b73, + 0x1b80, 0x1bf3, + 0x1c00, 0x1c37, + 0x1c40, 0x1c49, + 0x1c4d, 0x1c7d, + 0x1c80, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fbc, + 0x1fbe, 0x1fbe, + 0x1fc2, 0x1fc4, + 0x1fc6, 0x1fcc, + 0x1fd0, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fe0, 0x1fec, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffc, + 0x203f, 0x2040, + 0x2054, 0x2054, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x20d0, 0x20dc, + 0x20e1, 0x20e1, + 0x20e5, 0x20f0, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2118, 0x211d, + 0x2124, 0x2124, + 0x2126, 0x2126, + 0x2128, 0x2128, + 0x212a, 0x2139, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x2c00, 0x2ce4, + 0x2ceb, 0x2cf3, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d6f, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2dff, + 0x3005, 0x3007, + 0x3021, 0x302f, + 0x3031, 0x3035, + 0x3038, 0x303c, + 0x3041, 0x3096, + 0x3099, 0x309a, + 0x309d, 0x309f, + 0x30a1, 0x30fa, + 0x30fc, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x31a0, 0x31bf, + 0x31f0, 0x31ff, + 0x3400, 0x4dbf, + 0x4e00, 0xa48c, + 0xa4d0, 0xa4fd, + 0xa500, 0xa60c, + 0xa610, 0xa62b, + 0xa640, 0xa66f, + 0xa674, 0xa67d, + 0xa67f, 0xa6f1, + 0xa717, 0xa71f, + 0xa722, 0xa788, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa827, + 0xa82c, 0xa82c, + 0xa840, 0xa873, + 0xa880, 0xa8c5, + 0xa8d0, 0xa8d9, + 0xa8e0, 0xa8f7, + 0xa8fb, 0xa8fb, + 0xa8fd, 0xa92d, + 0xa930, 0xa953, + 0xa960, 0xa97c, + 0xa980, 0xa9c0, + 0xa9cf, 0xa9d9, + 0xa9e0, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa60, 0xaa76, + 0xaa7a, 0xaac2, + 0xaadb, 0xaadd, + 0xaae0, 0xaaef, + 0xaaf2, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5a, + 0xab5c, 0xab69, + 0xab70, 0xabea, + 0xabec, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb28, + 0xfb2a, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfc5d, + 0xfc64, 0xfd3d, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdf9, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0xfe33, 0xfe34, + 0xfe4d, 0xfe4f, + 0xfe71, 0xfe71, + 0xfe73, 0xfe73, + 0xfe77, 0xfe77, + 0xfe79, 0xfe79, + 0xfe7b, 0xfe7b, + 0xfe7d, 0xfe7d, + 0xfe7f, 0xfefc, + 0xff10, 0xff19, + 0xff21, 0xff3a, + 0xff3f, 0xff3f, + 0xff41, 0xff5a, + 0xff66, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10140, 0x10174, + 0x101fd, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102e0, + 0x10300, 0x1031f, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x103a0, 0x103c3, + 0x103c8, 0x103cf, + 0x103d1, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10860, 0x10876, + 0x10880, 0x1089e, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x10900, 0x10915, + 0x10920, 0x10939, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10a60, 0x10a7c, + 0x10a80, 0x10a9c, + 0x10ac0, 0x10ac7, + 0x10ac9, 0x10ae6, + 0x10b00, 0x10b35, + 0x10b40, 0x10b55, + 0x10b60, 0x10b72, + 0x10b80, 0x10b91, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10d00, 0x10d27, + 0x10d30, 0x10d39, + 0x10e80, 0x10ea9, + 0x10eab, 0x10eac, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f1c, + 0x10f27, 0x10f27, + 0x10f30, 0x10f50, + 0x10f70, 0x10f85, + 0x10fb0, 0x10fc4, + 0x10fe0, 0x10ff6, + 0x11000, 0x11046, + 0x11066, 0x11075, + 0x1107f, 0x110ba, + 0x110c2, 0x110c2, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x1113f, + 0x11144, 0x11147, + 0x11150, 0x11173, + 0x11176, 0x11176, + 0x11180, 0x111c4, + 0x111c9, 0x111cc, + 0x111ce, 0x111da, + 0x111dc, 0x111dc, + 0x11200, 0x11211, + 0x11213, 0x11237, + 0x1123e, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a8, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1144a, + 0x11450, 0x11459, + 0x1145e, 0x11461, + 0x11480, 0x114c5, + 0x114c7, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115c0, + 0x115d8, 0x115dd, + 0x11600, 0x11640, + 0x11644, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11739, + 0x11740, 0x11746, + 0x11800, 0x1183a, + 0x118a0, 0x118e9, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11943, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e1, + 0x119e3, 0x119e4, + 0x11a00, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a50, 0x11a99, + 0x11a9d, 0x11a9d, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c40, + 0x11c50, 0x11c59, + 0x11c72, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef6, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f42, + 0x11f50, 0x11f59, + 0x11fb0, 0x11fb0, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12480, 0x12543, + 0x12f90, 0x12ff0, + 0x13000, 0x1342f, + 0x13440, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a70, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af4, + 0x16b00, 0x16b36, + 0x16b40, 0x16b43, + 0x16b50, 0x16b59, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e7f, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d169, + 0x1d16d, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14e, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8d0, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, + 0xe0100, 0xe01ef, +}; /* CR_XID_Continue */ + +/* 'Default_Ignorable_Code_Point': Derived Property */ +static const OnigCodePoint CR_Default_Ignorable_Code_Point[] = { + 17, + 0x00ad, 0x00ad, + 0x034f, 0x034f, + 0x061c, 0x061c, + 0x115f, 0x1160, + 0x17b4, 0x17b5, + 0x180b, 0x180f, + 0x200b, 0x200f, + 0x202a, 0x202e, + 0x2060, 0x206f, + 0x3164, 0x3164, + 0xfe00, 0xfe0f, + 0xfeff, 0xfeff, + 0xffa0, 0xffa0, + 0xfff0, 0xfff8, + 0x1bca0, 0x1bca3, + 0x1d173, 0x1d17a, + 0xe0000, 0xe0fff, +}; /* CR_Default_Ignorable_Code_Point */ + +/* 'Grapheme_Extend': Derived Property */ +static const OnigCodePoint CR_Grapheme_Extend[] = { + 363, + 0x0300, 0x036f, + 0x0483, 0x0489, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x0610, 0x061a, + 0x064b, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dc, + 0x06df, 0x06e4, + 0x06e7, 0x06e8, + 0x06ea, 0x06ed, + 0x0711, 0x0711, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f3, + 0x07fd, 0x07fd, + 0x0816, 0x0819, + 0x081b, 0x0823, + 0x0825, 0x0827, + 0x0829, 0x082d, + 0x0859, 0x085b, + 0x0898, 0x089f, + 0x08ca, 0x08e1, + 0x08e3, 0x0902, + 0x093a, 0x093a, + 0x093c, 0x093c, + 0x0941, 0x0948, + 0x094d, 0x094d, + 0x0951, 0x0957, + 0x0962, 0x0963, + 0x0981, 0x0981, + 0x09bc, 0x09bc, + 0x09be, 0x09be, + 0x09c1, 0x09c4, + 0x09cd, 0x09cd, + 0x09d7, 0x09d7, + 0x09e2, 0x09e3, + 0x09fe, 0x09fe, + 0x0a01, 0x0a02, + 0x0a3c, 0x0a3c, + 0x0a41, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a82, + 0x0abc, 0x0abc, + 0x0ac1, 0x0ac5, + 0x0ac7, 0x0ac8, + 0x0acd, 0x0acd, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0aff, + 0x0b01, 0x0b01, + 0x0b3c, 0x0b3c, + 0x0b3e, 0x0b3f, + 0x0b41, 0x0b44, + 0x0b4d, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bbe, 0x0bbe, + 0x0bc0, 0x0bc0, + 0x0bcd, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0c00, 0x0c00, + 0x0c04, 0x0c04, + 0x0c3c, 0x0c3c, + 0x0c3e, 0x0c40, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c81, + 0x0cbc, 0x0cbc, + 0x0cbf, 0x0cbf, + 0x0cc2, 0x0cc2, + 0x0cc6, 0x0cc6, + 0x0ccc, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0ce2, 0x0ce3, + 0x0d00, 0x0d01, + 0x0d3b, 0x0d3c, + 0x0d3e, 0x0d3e, + 0x0d41, 0x0d44, + 0x0d4d, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d62, 0x0d63, + 0x0d81, 0x0d81, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dcf, + 0x0dd2, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0ddf, 0x0ddf, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e47, 0x0e4e, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0ebc, + 0x0ec8, 0x0ece, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f71, 0x0f7e, + 0x0f80, 0x0f84, + 0x0f86, 0x0f87, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x102d, 0x1030, + 0x1032, 0x1037, + 0x1039, 0x103a, + 0x103d, 0x103e, + 0x1058, 0x1059, + 0x105e, 0x1060, + 0x1071, 0x1074, + 0x1082, 0x1082, + 0x1085, 0x1086, + 0x108d, 0x108d, + 0x109d, 0x109d, + 0x135d, 0x135f, + 0x1712, 0x1714, + 0x1732, 0x1733, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b4, 0x17b5, + 0x17b7, 0x17bd, + 0x17c6, 0x17c6, + 0x17c9, 0x17d3, + 0x17dd, 0x17dd, + 0x180b, 0x180d, + 0x180f, 0x180f, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x1922, + 0x1927, 0x1928, + 0x1932, 0x1932, + 0x1939, 0x193b, + 0x1a17, 0x1a18, + 0x1a1b, 0x1a1b, + 0x1a56, 0x1a56, + 0x1a58, 0x1a5e, + 0x1a60, 0x1a60, + 0x1a62, 0x1a62, + 0x1a65, 0x1a6c, + 0x1a73, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b03, + 0x1b34, 0x1b3a, + 0x1b3c, 0x1b3c, + 0x1b42, 0x1b42, + 0x1b6b, 0x1b73, + 0x1b80, 0x1b81, + 0x1ba2, 0x1ba5, + 0x1ba8, 0x1ba9, + 0x1bab, 0x1bad, + 0x1be6, 0x1be6, + 0x1be8, 0x1be9, + 0x1bed, 0x1bed, + 0x1bef, 0x1bf1, + 0x1c2c, 0x1c33, + 0x1c36, 0x1c37, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce0, + 0x1ce2, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf8, 0x1cf9, + 0x1dc0, 0x1dff, + 0x200c, 0x200c, + 0x20d0, 0x20f0, + 0x2cef, 0x2cf1, + 0x2d7f, 0x2d7f, + 0x2de0, 0x2dff, + 0x302a, 0x302f, + 0x3099, 0x309a, + 0xa66f, 0xa672, + 0xa674, 0xa67d, + 0xa69e, 0xa69f, + 0xa6f0, 0xa6f1, + 0xa802, 0xa802, + 0xa806, 0xa806, + 0xa80b, 0xa80b, + 0xa825, 0xa826, + 0xa82c, 0xa82c, + 0xa8c4, 0xa8c5, + 0xa8e0, 0xa8f1, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92d, + 0xa947, 0xa951, + 0xa980, 0xa982, + 0xa9b3, 0xa9b3, + 0xa9b6, 0xa9b9, + 0xa9bc, 0xa9bd, + 0xa9e5, 0xa9e5, + 0xaa29, 0xaa2e, + 0xaa31, 0xaa32, + 0xaa35, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4c, + 0xaa7c, 0xaa7c, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabf, + 0xaac1, 0xaac1, + 0xaaec, 0xaaed, + 0xaaf6, 0xaaf6, + 0xabe5, 0xabe5, + 0xabe8, 0xabe8, + 0xabed, 0xabed, + 0xfb1e, 0xfb1e, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0xff9e, 0xff9f, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x10376, 0x1037a, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10ae5, 0x10ae6, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11001, 0x11001, + 0x11038, 0x11046, + 0x11070, 0x11070, + 0x11073, 0x11074, + 0x1107f, 0x11081, + 0x110b3, 0x110b6, + 0x110b9, 0x110ba, + 0x110c2, 0x110c2, + 0x11100, 0x11102, + 0x11127, 0x1112b, + 0x1112d, 0x11134, + 0x11173, 0x11173, + 0x11180, 0x11181, + 0x111b6, 0x111be, + 0x111c9, 0x111cc, + 0x111cf, 0x111cf, + 0x1122f, 0x11231, + 0x11234, 0x11234, + 0x11236, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112df, + 0x112e3, 0x112ea, + 0x11300, 0x11301, + 0x1133b, 0x1133c, + 0x1133e, 0x1133e, + 0x11340, 0x11340, + 0x11357, 0x11357, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11438, 0x1143f, + 0x11442, 0x11444, + 0x11446, 0x11446, + 0x1145e, 0x1145e, + 0x114b0, 0x114b0, + 0x114b3, 0x114b8, + 0x114ba, 0x114ba, + 0x114bd, 0x114bd, + 0x114bf, 0x114c0, + 0x114c2, 0x114c3, + 0x115af, 0x115af, + 0x115b2, 0x115b5, + 0x115bc, 0x115bd, + 0x115bf, 0x115c0, + 0x115dc, 0x115dd, + 0x11633, 0x1163a, + 0x1163d, 0x1163d, + 0x1163f, 0x11640, + 0x116ab, 0x116ab, + 0x116ad, 0x116ad, + 0x116b0, 0x116b5, + 0x116b7, 0x116b7, + 0x1171d, 0x1171f, + 0x11722, 0x11725, + 0x11727, 0x1172b, + 0x1182f, 0x11837, + 0x11839, 0x1183a, + 0x11930, 0x11930, + 0x1193b, 0x1193c, + 0x1193e, 0x1193e, + 0x11943, 0x11943, + 0x119d4, 0x119d7, + 0x119da, 0x119db, + 0x119e0, 0x119e0, + 0x11a01, 0x11a0a, + 0x11a33, 0x11a38, + 0x11a3b, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a51, 0x11a56, + 0x11a59, 0x11a5b, + 0x11a8a, 0x11a96, + 0x11a98, 0x11a99, + 0x11c30, 0x11c36, + 0x11c38, 0x11c3d, + 0x11c3f, 0x11c3f, + 0x11c92, 0x11ca7, + 0x11caa, 0x11cb0, + 0x11cb2, 0x11cb3, + 0x11cb5, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d45, + 0x11d47, 0x11d47, + 0x11d90, 0x11d91, + 0x11d95, 0x11d95, + 0x11d97, 0x11d97, + 0x11ef3, 0x11ef4, + 0x11f00, 0x11f01, + 0x11f36, 0x11f3a, + 0x11f40, 0x11f40, + 0x11f42, 0x11f42, + 0x13440, 0x13440, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16f4f, 0x16f4f, + 0x16f8f, 0x16f92, + 0x16fe4, 0x16fe4, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d165, + 0x1d167, 0x1d169, + 0x1d16e, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e08f, 0x1e08f, + 0x1e130, 0x1e136, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e4ec, 0x1e4ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e94a, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, +}; /* CR_Grapheme_Extend */ + +/* 'Grapheme_Base': Derived Property */ +static const OnigCodePoint CR_Grapheme_Base[] = { + 875, + 0x0020, 0x007e, + 0x00a0, 0x00ac, + 0x00ae, 0x02ff, + 0x0370, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0482, + 0x048a, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x05be, 0x05be, + 0x05c0, 0x05c0, + 0x05c3, 0x05c3, + 0x05c6, 0x05c6, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0606, 0x060f, + 0x061b, 0x061b, + 0x061d, 0x064a, + 0x0660, 0x066f, + 0x0671, 0x06d5, + 0x06de, 0x06de, + 0x06e5, 0x06e6, + 0x06e9, 0x06e9, + 0x06ee, 0x070d, + 0x0710, 0x0710, + 0x0712, 0x072f, + 0x074d, 0x07a5, + 0x07b1, 0x07b1, + 0x07c0, 0x07ea, + 0x07f4, 0x07fa, + 0x07fe, 0x0815, + 0x081a, 0x081a, + 0x0824, 0x0824, + 0x0828, 0x0828, + 0x0830, 0x083e, + 0x0840, 0x0858, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x08a0, 0x08c9, + 0x0903, 0x0939, + 0x093b, 0x093b, + 0x093d, 0x0940, + 0x0949, 0x094c, + 0x094e, 0x0950, + 0x0958, 0x0961, + 0x0964, 0x0980, + 0x0982, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bd, 0x09bd, + 0x09bf, 0x09c0, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x09ce, 0x09ce, + 0x09dc, 0x09dd, + 0x09df, 0x09e1, + 0x09e6, 0x09fd, + 0x0a03, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3e, 0x0a40, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a6f, + 0x0a72, 0x0a74, + 0x0a76, 0x0a76, + 0x0a83, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abd, 0x0ac0, + 0x0ac9, 0x0ac9, + 0x0acb, 0x0acc, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae1, + 0x0ae6, 0x0af1, + 0x0af9, 0x0af9, + 0x0b02, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3d, 0x0b3d, + 0x0b40, 0x0b40, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b77, + 0x0b83, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbf, 0x0bbf, + 0x0bc1, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0bd0, 0x0bd0, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c3d, + 0x0c41, 0x0c44, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c80, + 0x0c82, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbd, 0x0cbe, + 0x0cc0, 0x0cc1, + 0x0cc3, 0x0cc4, + 0x0cc7, 0x0cc8, + 0x0cca, 0x0ccb, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d02, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d3d, + 0x0d3f, 0x0d40, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d4e, 0x0d4f, + 0x0d54, 0x0d56, + 0x0d58, 0x0d61, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dd0, 0x0dd1, + 0x0dd8, 0x0dde, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e30, + 0x0e32, 0x0e33, + 0x0e3f, 0x0e46, + 0x0e4f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0eb0, + 0x0eb2, 0x0eb3, + 0x0ebd, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f17, + 0x0f1a, 0x0f34, + 0x0f36, 0x0f36, + 0x0f38, 0x0f38, + 0x0f3a, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f7f, 0x0f7f, + 0x0f85, 0x0f85, + 0x0f88, 0x0f8c, + 0x0fbe, 0x0fc5, + 0x0fc7, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x102c, + 0x1031, 0x1031, + 0x1038, 0x1038, + 0x103b, 0x103c, + 0x103f, 0x1057, + 0x105a, 0x105d, + 0x1061, 0x1070, + 0x1075, 0x1081, + 0x1083, 0x1084, + 0x1087, 0x108c, + 0x108e, 0x109c, + 0x109e, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x1360, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1711, + 0x1715, 0x1715, + 0x171f, 0x1731, + 0x1734, 0x1736, + 0x1740, 0x1751, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1780, 0x17b3, + 0x17b6, 0x17b6, + 0x17be, 0x17c5, + 0x17c7, 0x17c8, + 0x17d4, 0x17dc, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180a, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x1884, + 0x1887, 0x18a8, + 0x18aa, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1923, 0x1926, + 0x1929, 0x192b, + 0x1930, 0x1931, + 0x1933, 0x1938, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a16, + 0x1a19, 0x1a1a, + 0x1a1e, 0x1a55, + 0x1a57, 0x1a57, + 0x1a61, 0x1a61, + 0x1a63, 0x1a64, + 0x1a6d, 0x1a72, + 0x1a80, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b04, 0x1b33, + 0x1b3b, 0x1b3b, + 0x1b3d, 0x1b41, + 0x1b43, 0x1b4c, + 0x1b50, 0x1b6a, + 0x1b74, 0x1b7e, + 0x1b82, 0x1ba1, + 0x1ba6, 0x1ba7, + 0x1baa, 0x1baa, + 0x1bae, 0x1be5, + 0x1be7, 0x1be7, + 0x1bea, 0x1bec, + 0x1bee, 0x1bee, + 0x1bf2, 0x1bf3, + 0x1bfc, 0x1c2b, + 0x1c34, 0x1c35, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd3, 0x1cd3, + 0x1ce1, 0x1ce1, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf7, + 0x1cfa, 0x1cfa, + 0x1d00, 0x1dbf, + 0x1e00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x200a, + 0x2010, 0x2027, + 0x202f, 0x205f, + 0x2070, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cee, + 0x2cf2, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2e00, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x3029, + 0x3030, 0x303f, + 0x3041, 0x3096, + 0x309b, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa66e, + 0xa673, 0xa673, + 0xa67e, 0xa69d, + 0xa6a0, 0xa6ef, + 0xa6f2, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa801, + 0xa803, 0xa805, + 0xa807, 0xa80a, + 0xa80c, 0xa824, + 0xa827, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c3, + 0xa8ce, 0xa8d9, + 0xa8f2, 0xa8fe, + 0xa900, 0xa925, + 0xa92e, 0xa946, + 0xa952, 0xa953, + 0xa95f, 0xa97c, + 0xa983, 0xa9b2, + 0xa9b4, 0xa9b5, + 0xa9ba, 0xa9bb, + 0xa9be, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9e4, + 0xa9e6, 0xa9fe, + 0xaa00, 0xaa28, + 0xaa2f, 0xaa30, + 0xaa33, 0xaa34, + 0xaa40, 0xaa42, + 0xaa44, 0xaa4b, + 0xaa4d, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa7d, 0xaaaf, + 0xaab1, 0xaab1, + 0xaab5, 0xaab6, + 0xaab9, 0xaabd, + 0xaac0, 0xaac0, + 0xaac2, 0xaac2, + 0xaadb, 0xaaeb, + 0xaaee, 0xaaf5, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabe4, + 0xabe6, 0xabe7, + 0xabe9, 0xabec, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb1d, + 0xfb1f, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfdcf, + 0xfdf0, 0xfdff, + 0xfe10, 0xfe19, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xff01, 0xff9d, + 0xffa0, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfffc, 0xfffd, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fc, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e1, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x10375, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a00, + 0x10a10, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a40, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae4, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d23, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10ead, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f27, + 0x10f30, 0x10f45, + 0x10f51, 0x10f59, + 0x10f70, 0x10f81, + 0x10f86, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x11000, + 0x11002, 0x11037, + 0x11047, 0x1104d, + 0x11052, 0x1106f, + 0x11071, 0x11072, + 0x11075, 0x11075, + 0x11082, 0x110b2, + 0x110b7, 0x110b8, + 0x110bb, 0x110bc, + 0x110be, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11103, 0x11126, + 0x1112c, 0x1112c, + 0x11136, 0x11147, + 0x11150, 0x11172, + 0x11174, 0x11176, + 0x11182, 0x111b5, + 0x111bf, 0x111c8, + 0x111cd, 0x111ce, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1122e, + 0x11232, 0x11233, + 0x11235, 0x11235, + 0x11238, 0x1123d, + 0x1123f, 0x11240, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112de, + 0x112e0, 0x112e2, + 0x112f0, 0x112f9, + 0x11302, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133d, 0x1133d, + 0x1133f, 0x1133f, + 0x11341, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x1135d, 0x11363, + 0x11400, 0x11437, + 0x11440, 0x11441, + 0x11445, 0x11445, + 0x11447, 0x1145b, + 0x1145d, 0x1145d, + 0x1145f, 0x11461, + 0x11480, 0x114af, + 0x114b1, 0x114b2, + 0x114b9, 0x114b9, + 0x114bb, 0x114bc, + 0x114be, 0x114be, + 0x114c1, 0x114c1, + 0x114c4, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115ae, + 0x115b0, 0x115b1, + 0x115b8, 0x115bb, + 0x115be, 0x115be, + 0x115c1, 0x115db, + 0x11600, 0x11632, + 0x1163b, 0x1163c, + 0x1163e, 0x1163e, + 0x11641, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116aa, + 0x116ac, 0x116ac, + 0x116ae, 0x116af, + 0x116b6, 0x116b6, + 0x116b8, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x11720, 0x11721, + 0x11726, 0x11726, + 0x11730, 0x11746, + 0x11800, 0x1182e, + 0x11838, 0x11838, + 0x1183b, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x1192f, + 0x11931, 0x11935, + 0x11937, 0x11938, + 0x1193d, 0x1193d, + 0x1193f, 0x11942, + 0x11944, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d3, + 0x119dc, 0x119df, + 0x119e1, 0x119e4, + 0x11a00, 0x11a00, + 0x11a0b, 0x11a32, + 0x11a39, 0x11a3a, + 0x11a3f, 0x11a46, + 0x11a50, 0x11a50, + 0x11a57, 0x11a58, + 0x11a5c, 0x11a89, + 0x11a97, 0x11a97, + 0x11a9a, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11b00, 0x11b09, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c2f, + 0x11c3e, 0x11c3e, + 0x11c40, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11ca9, 0x11ca9, + 0x11cb1, 0x11cb1, + 0x11cb4, 0x11cb4, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d30, + 0x11d46, 0x11d46, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d93, 0x11d94, + 0x11d96, 0x11d96, + 0x11d98, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef2, + 0x11ef5, 0x11ef8, + 0x11f02, 0x11f10, + 0x11f12, 0x11f35, + 0x11f3e, 0x11f3f, + 0x11f41, 0x11f41, + 0x11f43, 0x11f59, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x1342f, + 0x13441, 0x13446, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af5, 0x16af5, + 0x16b00, 0x16b2f, + 0x16b37, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f50, 0x16f87, + 0x16f93, 0x16f9f, + 0x16fe0, 0x16fe3, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bc9c, + 0x1bc9f, 0x1bc9f, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d164, + 0x1d166, 0x1d166, + 0x1d16a, 0x1d16d, + 0x1d183, 0x1d184, + 0x1d18c, 0x1d1a9, + 0x1d1ae, 0x1d1ea, + 0x1d200, 0x1d241, + 0x1d245, 0x1d245, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d9ff, + 0x1da37, 0x1da3a, + 0x1da6d, 0x1da74, + 0x1da76, 0x1da83, + 0x1da85, 0x1da8b, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e030, 0x1e06d, + 0x1e100, 0x1e12c, + 0x1e137, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ad, + 0x1e2c0, 0x1e2eb, + 0x1e2f0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e4d0, 0x1e4eb, + 0x1e4f0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8cf, + 0x1e900, 0x1e943, + 0x1e94b, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Grapheme_Base */ + +/* 'Grapheme_Link': Derived Property */ +static const OnigCodePoint CR_Grapheme_Link[] = { + 56, + 0x094d, 0x094d, + 0x09cd, 0x09cd, + 0x0a4d, 0x0a4d, + 0x0acd, 0x0acd, + 0x0b4d, 0x0b4d, + 0x0bcd, 0x0bcd, + 0x0c4d, 0x0c4d, + 0x0ccd, 0x0ccd, + 0x0d3b, 0x0d3c, + 0x0d4d, 0x0d4d, + 0x0dca, 0x0dca, + 0x0e3a, 0x0e3a, + 0x0eba, 0x0eba, + 0x0f84, 0x0f84, + 0x1039, 0x103a, + 0x1714, 0x1715, + 0x1734, 0x1734, + 0x17d2, 0x17d2, + 0x1a60, 0x1a60, + 0x1b44, 0x1b44, + 0x1baa, 0x1bab, + 0x1bf2, 0x1bf3, + 0x2d7f, 0x2d7f, + 0xa806, 0xa806, + 0xa82c, 0xa82c, + 0xa8c4, 0xa8c4, + 0xa953, 0xa953, + 0xa9c0, 0xa9c0, + 0xaaf6, 0xaaf6, + 0xabed, 0xabed, + 0x10a3f, 0x10a3f, + 0x11046, 0x11046, + 0x11070, 0x11070, + 0x1107f, 0x1107f, + 0x110b9, 0x110b9, + 0x11133, 0x11134, + 0x111c0, 0x111c0, + 0x11235, 0x11235, + 0x112ea, 0x112ea, + 0x1134d, 0x1134d, + 0x11442, 0x11442, + 0x114c2, 0x114c2, + 0x115bf, 0x115bf, + 0x1163f, 0x1163f, + 0x116b6, 0x116b6, + 0x1172b, 0x1172b, + 0x11839, 0x11839, + 0x1193d, 0x1193e, + 0x119e0, 0x119e0, + 0x11a34, 0x11a34, + 0x11a47, 0x11a47, + 0x11a99, 0x11a99, + 0x11c3f, 0x11c3f, + 0x11d44, 0x11d45, + 0x11d97, 0x11d97, + 0x11f41, 0x11f42, +}; /* CR_Grapheme_Link */ + +/* 'Common': Script */ +static const OnigCodePoint CR_Common[] = { + 173, + 0x0000, 0x0040, + 0x005b, 0x0060, + 0x007b, 0x00a9, + 0x00ab, 0x00b9, + 0x00bb, 0x00bf, + 0x00d7, 0x00d7, + 0x00f7, 0x00f7, + 0x02b9, 0x02df, + 0x02e5, 0x02e9, + 0x02ec, 0x02ff, + 0x0374, 0x0374, + 0x037e, 0x037e, + 0x0385, 0x0385, + 0x0387, 0x0387, + 0x0605, 0x0605, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0640, 0x0640, + 0x06dd, 0x06dd, + 0x08e2, 0x08e2, + 0x0964, 0x0965, + 0x0e3f, 0x0e3f, + 0x0fd5, 0x0fd8, + 0x10fb, 0x10fb, + 0x16eb, 0x16ed, + 0x1735, 0x1736, + 0x1802, 0x1803, + 0x1805, 0x1805, + 0x1cd3, 0x1cd3, + 0x1ce1, 0x1ce1, + 0x1ce9, 0x1cec, + 0x1cee, 0x1cf3, + 0x1cf5, 0x1cf7, + 0x1cfa, 0x1cfa, + 0x2000, 0x200b, + 0x200e, 0x2064, + 0x2066, 0x2070, + 0x2074, 0x207e, + 0x2080, 0x208e, + 0x20a0, 0x20c0, + 0x2100, 0x2125, + 0x2127, 0x2129, + 0x212c, 0x2131, + 0x2133, 0x214d, + 0x214f, 0x215f, + 0x2189, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x27ff, + 0x2900, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2bff, + 0x2e00, 0x2e5d, + 0x2ff0, 0x2ffb, + 0x3000, 0x3004, + 0x3006, 0x3006, + 0x3008, 0x3020, + 0x3030, 0x3037, + 0x303c, 0x303f, + 0x309b, 0x309c, + 0x30a0, 0x30a0, + 0x30fb, 0x30fc, + 0x3190, 0x319f, + 0x31c0, 0x31e3, + 0x3220, 0x325f, + 0x327f, 0x32cf, + 0x32ff, 0x32ff, + 0x3358, 0x33ff, + 0x4dc0, 0x4dff, + 0xa700, 0xa721, + 0xa788, 0xa78a, + 0xa830, 0xa839, + 0xa92e, 0xa92e, + 0xa9cf, 0xa9cf, + 0xab5b, 0xab5b, + 0xab6a, 0xab6b, + 0xfd3e, 0xfd3f, + 0xfe10, 0xfe19, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfeff, 0xfeff, + 0xff01, 0xff20, + 0xff3b, 0xff40, + 0xff5b, 0xff65, + 0xff70, 0xff70, + 0xff9e, 0xff9f, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xfffd, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1013f, + 0x10190, 0x1019c, + 0x101d0, 0x101fc, + 0x102e1, 0x102fb, + 0x1bca0, 0x1bca3, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d166, + 0x1d16a, 0x1d17a, + 0x1d183, 0x1d184, + 0x1d18c, 0x1d1a9, + 0x1d1ae, 0x1d1ea, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f1ff, + 0x1f201, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, +}; /* CR_Common */ + +/* 'Latin': Script */ +static const OnigCodePoint CR_Latin[] = { + 39, + 0x0041, 0x005a, + 0x0061, 0x007a, + 0x00aa, 0x00aa, + 0x00ba, 0x00ba, + 0x00c0, 0x00d6, + 0x00d8, 0x00f6, + 0x00f8, 0x02b8, + 0x02e0, 0x02e4, + 0x1d00, 0x1d25, + 0x1d2c, 0x1d5c, + 0x1d62, 0x1d65, + 0x1d6b, 0x1d77, + 0x1d79, 0x1dbe, + 0x1e00, 0x1eff, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x212a, 0x212b, + 0x2132, 0x2132, + 0x214e, 0x214e, + 0x2160, 0x2188, + 0x2c60, 0x2c7f, + 0xa722, 0xa787, + 0xa78b, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa7ff, + 0xab30, 0xab5a, + 0xab5c, 0xab64, + 0xab66, 0xab69, + 0xfb00, 0xfb06, + 0xff21, 0xff3a, + 0xff41, 0xff5a, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, +}; /* CR_Latin */ + +/* 'Greek': Script */ +static const OnigCodePoint CR_Greek[] = { + 36, + 0x0370, 0x0373, + 0x0375, 0x0377, + 0x037a, 0x037d, + 0x037f, 0x037f, + 0x0384, 0x0384, + 0x0386, 0x0386, + 0x0388, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03e1, + 0x03f0, 0x03ff, + 0x1d26, 0x1d2a, + 0x1d5d, 0x1d61, + 0x1d66, 0x1d6a, + 0x1dbf, 0x1dbf, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2126, 0x2126, + 0xab65, 0xab65, + 0x10140, 0x1018e, + 0x101a0, 0x101a0, + 0x1d200, 0x1d245, +}; /* CR_Greek */ + +/* 'Cyrillic': Script */ +static const OnigCodePoint CR_Cyrillic[] = { + 10, + 0x0400, 0x0484, + 0x0487, 0x052f, + 0x1c80, 0x1c88, + 0x1d2b, 0x1d2b, + 0x1d78, 0x1d78, + 0x2de0, 0x2dff, + 0xa640, 0xa69f, + 0xfe2e, 0xfe2f, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, +}; /* CR_Cyrillic */ + +/* 'Armenian': Script */ +static const OnigCodePoint CR_Armenian[] = { + 4, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0xfb13, 0xfb17, +}; /* CR_Armenian */ + +/* 'Hebrew': Script */ +static const OnigCodePoint CR_Hebrew[] = { + 9, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfb4f, +}; /* CR_Hebrew */ + +/* 'Arabic': Script */ +static const OnigCodePoint CR_Arabic[] = { + 58, + 0x0600, 0x0604, + 0x0606, 0x060b, + 0x060d, 0x061a, + 0x061c, 0x061e, + 0x0620, 0x063f, + 0x0641, 0x064a, + 0x0656, 0x066f, + 0x0671, 0x06dc, + 0x06de, 0x06ff, + 0x0750, 0x077f, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x08e1, + 0x08e3, 0x08ff, + 0xfb50, 0xfbc2, + 0xfbd3, 0xfd3d, + 0xfd40, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfdcf, + 0xfdf0, 0xfdff, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0x10e60, 0x10e7e, + 0x10efd, 0x10eff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, +}; /* CR_Arabic */ + +/* 'Syriac': Script */ +static const OnigCodePoint CR_Syriac[] = { + 4, + 0x0700, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x074f, + 0x0860, 0x086a, +}; /* CR_Syriac */ + +/* 'Thaana': Script */ +static const OnigCodePoint CR_Thaana[] = { + 1, + 0x0780, 0x07b1, +}; /* CR_Thaana */ + +/* 'Devanagari': Script */ +static const OnigCodePoint CR_Devanagari[] = { + 5, + 0x0900, 0x0950, + 0x0955, 0x0963, + 0x0966, 0x097f, + 0xa8e0, 0xa8ff, + 0x11b00, 0x11b09, +}; /* CR_Devanagari */ + +/* 'Bengali': Script */ +static const OnigCodePoint CR_Bengali[] = { + 14, + 0x0980, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, +}; /* CR_Bengali */ + +/* 'Gurmukhi': Script */ +static const OnigCodePoint CR_Gurmukhi[] = { + 16, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, +}; /* CR_Gurmukhi */ + +/* 'Gujarati': Script */ +static const OnigCodePoint CR_Gujarati[] = { + 14, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, +}; /* CR_Gujarati */ + +/* 'Oriya': Script */ +static const OnigCodePoint CR_Oriya[] = { + 14, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, +}; /* CR_Oriya */ + +/* 'Tamil': Script */ +static const OnigCodePoint CR_Tamil[] = { + 18, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x11fc0, 0x11ff1, + 0x11fff, 0x11fff, +}; /* CR_Tamil */ + +/* 'Telugu': Script */ +static const OnigCodePoint CR_Telugu[] = { + 13, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c7f, +}; /* CR_Telugu */ + +/* 'Kannada': Script */ +static const OnigCodePoint CR_Kannada[] = { + 13, + 0x0c80, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, +}; /* CR_Kannada */ + +/* 'Malayalam': Script */ +static const OnigCodePoint CR_Malayalam[] = { + 7, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, +}; /* CR_Malayalam */ + +/* 'Sinhala': Script */ +static const OnigCodePoint CR_Sinhala[] = { + 13, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x111e1, 0x111f4, +}; /* CR_Sinhala */ + +/* 'Thai': Script */ +static const OnigCodePoint CR_Thai[] = { + 2, + 0x0e01, 0x0e3a, + 0x0e40, 0x0e5b, +}; /* CR_Thai */ + +/* 'Lao': Script */ +static const OnigCodePoint CR_Lao[] = { + 11, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, +}; /* CR_Lao */ + +/* 'Tibetan': Script */ +static const OnigCodePoint CR_Tibetan[] = { + 7, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fd4, + 0x0fd9, 0x0fda, +}; /* CR_Tibetan */ + +/* 'Myanmar': Script */ +static const OnigCodePoint CR_Myanmar[] = { + 3, + 0x1000, 0x109f, + 0xa9e0, 0xa9fe, + 0xaa60, 0xaa7f, +}; /* CR_Myanmar */ + +/* 'Georgian': Script */ +static const OnigCodePoint CR_Georgian[] = { + 10, + 0x10a0, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x10fa, + 0x10fc, 0x10ff, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cbf, + 0x2d00, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, +}; /* CR_Georgian */ + +/* 'Hangul': Script */ +static const OnigCodePoint CR_Hangul[] = { + 14, + 0x1100, 0x11ff, + 0x302e, 0x302f, + 0x3131, 0x318e, + 0x3200, 0x321e, + 0x3260, 0x327e, + 0xa960, 0xa97c, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xffa0, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, +}; /* CR_Hangul */ + +/* 'Ethiopic': Script */ +static const OnigCodePoint CR_Ethiopic[] = { + 36, + 0x1200, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, +}; /* CR_Ethiopic */ + +/* 'Cherokee': Script */ +static const OnigCodePoint CR_Cherokee[] = { + 3, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0xab70, 0xabbf, +}; /* CR_Cherokee */ + +/* 'Canadian_Aboriginal': Script */ +static const OnigCodePoint CR_Canadian_Aboriginal[] = { + 3, + 0x1400, 0x167f, + 0x18b0, 0x18f5, + 0x11ab0, 0x11abf, +}; /* CR_Canadian_Aboriginal */ + +/* 'Ogham': Script */ +static const OnigCodePoint CR_Ogham[] = { + 1, + 0x1680, 0x169c, +}; /* CR_Ogham */ + +/* 'Runic': Script */ +static const OnigCodePoint CR_Runic[] = { + 2, + 0x16a0, 0x16ea, + 0x16ee, 0x16f8, +}; /* CR_Runic */ + +/* 'Khmer': Script */ +static const OnigCodePoint CR_Khmer[] = { + 4, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x19e0, 0x19ff, +}; /* CR_Khmer */ + +/* 'Mongolian': Script */ +static const OnigCodePoint CR_Mongolian[] = { + 6, + 0x1800, 0x1801, + 0x1804, 0x1804, + 0x1806, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x11660, 0x1166c, +}; /* CR_Mongolian */ + +/* 'Hiragana': Script */ +static const OnigCodePoint CR_Hiragana[] = { + 6, + 0x3041, 0x3096, + 0x309d, 0x309f, + 0x1b001, 0x1b11f, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1f200, 0x1f200, +}; /* CR_Hiragana */ + +/* 'Katakana': Script */ +static const OnigCodePoint CR_Katakana[] = { + 14, + 0x30a1, 0x30fa, + 0x30fd, 0x30ff, + 0x31f0, 0x31ff, + 0x32d0, 0x32fe, + 0x3300, 0x3357, + 0xff66, 0xff6f, + 0xff71, 0xff9d, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b000, + 0x1b120, 0x1b122, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, +}; /* CR_Katakana */ + +/* 'Bopomofo': Script */ +static const OnigCodePoint CR_Bopomofo[] = { + 3, + 0x02ea, 0x02eb, + 0x3105, 0x312f, + 0x31a0, 0x31bf, +}; /* CR_Bopomofo */ + +/* 'Han': Script */ +static const OnigCodePoint CR_Han[] = { + 21, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x3005, 0x3005, + 0x3007, 0x3007, + 0x3021, 0x3029, + 0x3038, 0x303b, + 0x3400, 0x4dbf, + 0x4e00, 0x9fff, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0x16fe2, 0x16fe3, + 0x16ff0, 0x16ff1, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Han */ + +/* 'Yi': Script */ +static const OnigCodePoint CR_Yi[] = { + 2, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, +}; /* CR_Yi */ + +/* 'Old_Italic': Script */ +static const OnigCodePoint CR_Old_Italic[] = { + 2, + 0x10300, 0x10323, + 0x1032d, 0x1032f, +}; /* CR_Old_Italic */ + +/* 'Gothic': Script */ +static const OnigCodePoint CR_Gothic[] = { + 1, + 0x10330, 0x1034a, +}; /* CR_Gothic */ + +/* 'Deseret': Script */ +static const OnigCodePoint CR_Deseret[] = { + 1, + 0x10400, 0x1044f, +}; /* CR_Deseret */ + +/* 'Inherited': Script */ +static const OnigCodePoint CR_Inherited[] = { + 29, + 0x0300, 0x036f, + 0x0485, 0x0486, + 0x064b, 0x0655, + 0x0670, 0x0670, + 0x0951, 0x0954, + 0x1ab0, 0x1ace, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce0, + 0x1ce2, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf8, 0x1cf9, + 0x1dc0, 0x1dff, + 0x200c, 0x200d, + 0x20d0, 0x20f0, + 0x302a, 0x302d, + 0x3099, 0x309a, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2d, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x1133b, 0x1133b, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d167, 0x1d169, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0xe0100, 0xe01ef, +}; /* CR_Inherited */ + +/* 'Tagalog': Script */ +static const OnigCodePoint CR_Tagalog[] = { + 2, + 0x1700, 0x1715, + 0x171f, 0x171f, +}; /* CR_Tagalog */ + +/* 'Hanunoo': Script */ +static const OnigCodePoint CR_Hanunoo[] = { + 1, + 0x1720, 0x1734, +}; /* CR_Hanunoo */ + +/* 'Buhid': Script */ +static const OnigCodePoint CR_Buhid[] = { + 1, + 0x1740, 0x1753, +}; /* CR_Buhid */ + +/* 'Tagbanwa': Script */ +static const OnigCodePoint CR_Tagbanwa[] = { + 3, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, +}; /* CR_Tagbanwa */ + +/* 'Limbu': Script */ +static const OnigCodePoint CR_Limbu[] = { + 5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x194f, +}; /* CR_Limbu */ + +/* 'Tai_Le': Script */ +static const OnigCodePoint CR_Tai_Le[] = { + 2, + 0x1950, 0x196d, + 0x1970, 0x1974, +}; /* CR_Tai_Le */ + +/* 'Linear_B': Script */ +static const OnigCodePoint CR_Linear_B[] = { + 7, + 0x10000, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, +}; /* CR_Linear_B */ + +/* 'Ugaritic': Script */ +static const OnigCodePoint CR_Ugaritic[] = { + 2, + 0x10380, 0x1039d, + 0x1039f, 0x1039f, +}; /* CR_Ugaritic */ + +/* 'Shavian': Script */ +static const OnigCodePoint CR_Shavian[] = { + 1, + 0x10450, 0x1047f, +}; /* CR_Shavian */ + +/* 'Osmanya': Script */ +static const OnigCodePoint CR_Osmanya[] = { + 2, + 0x10480, 0x1049d, + 0x104a0, 0x104a9, +}; /* CR_Osmanya */ + +/* 'Cypriot': Script */ +static const OnigCodePoint CR_Cypriot[] = { + 6, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x1083f, +}; /* CR_Cypriot */ + +/* 'Braille': Script */ +static const OnigCodePoint CR_Braille[] = { + 1, + 0x2800, 0x28ff, +}; /* CR_Braille */ + +/* 'Buginese': Script */ +static const OnigCodePoint CR_Buginese[] = { + 2, + 0x1a00, 0x1a1b, + 0x1a1e, 0x1a1f, +}; /* CR_Buginese */ + +/* 'Coptic': Script */ +static const OnigCodePoint CR_Coptic[] = { + 3, + 0x03e2, 0x03ef, + 0x2c80, 0x2cf3, + 0x2cf9, 0x2cff, +}; /* CR_Coptic */ + +/* 'New_Tai_Lue': Script */ +static const OnigCodePoint CR_New_Tai_Lue[] = { + 4, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x19df, +}; /* CR_New_Tai_Lue */ + +/* 'Glagolitic': Script */ +static const OnigCodePoint CR_Glagolitic[] = { + 6, + 0x2c00, 0x2c5f, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, +}; /* CR_Glagolitic */ + +/* 'Tifinagh': Script */ +static const OnigCodePoint CR_Tifinagh[] = { + 3, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d7f, +}; /* CR_Tifinagh */ + +/* 'Syloti_Nagri': Script */ +static const OnigCodePoint CR_Syloti_Nagri[] = { + 1, + 0xa800, 0xa82c, +}; /* CR_Syloti_Nagri */ + +/* 'Old_Persian': Script */ +static const OnigCodePoint CR_Old_Persian[] = { + 2, + 0x103a0, 0x103c3, + 0x103c8, 0x103d5, +}; /* CR_Old_Persian */ + +/* 'Kharoshthi': Script */ +static const OnigCodePoint CR_Kharoshthi[] = { + 8, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, +}; /* CR_Kharoshthi */ + +/* 'Balinese': Script */ +static const OnigCodePoint CR_Balinese[] = { + 2, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, +}; /* CR_Balinese */ + +/* 'Cuneiform': Script */ +static const OnigCodePoint CR_Cuneiform[] = { + 4, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, +}; /* CR_Cuneiform */ + +/* 'Phoenician': Script */ +static const OnigCodePoint CR_Phoenician[] = { + 2, + 0x10900, 0x1091b, + 0x1091f, 0x1091f, +}; /* CR_Phoenician */ + +/* 'Phags_Pa': Script */ +static const OnigCodePoint CR_Phags_Pa[] = { + 1, + 0xa840, 0xa877, +}; /* CR_Phags_Pa */ + +/* 'Nko': Script */ +static const OnigCodePoint CR_Nko[] = { + 2, + 0x07c0, 0x07fa, + 0x07fd, 0x07ff, +}; /* CR_Nko */ + +/* 'Sundanese': Script */ +static const OnigCodePoint CR_Sundanese[] = { + 2, + 0x1b80, 0x1bbf, + 0x1cc0, 0x1cc7, +}; /* CR_Sundanese */ + +/* 'Lepcha': Script */ +static const OnigCodePoint CR_Lepcha[] = { + 3, + 0x1c00, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c4f, +}; /* CR_Lepcha */ + +/* 'Ol_Chiki': Script */ +static const OnigCodePoint CR_Ol_Chiki[] = { + 1, + 0x1c50, 0x1c7f, +}; /* CR_Ol_Chiki */ + +/* 'Vai': Script */ +static const OnigCodePoint CR_Vai[] = { + 1, + 0xa500, 0xa62b, +}; /* CR_Vai */ + +/* 'Saurashtra': Script */ +static const OnigCodePoint CR_Saurashtra[] = { + 2, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, +}; /* CR_Saurashtra */ + +/* 'Kayah_Li': Script */ +static const OnigCodePoint CR_Kayah_Li[] = { + 2, + 0xa900, 0xa92d, + 0xa92f, 0xa92f, +}; /* CR_Kayah_Li */ + +/* 'Rejang': Script */ +static const OnigCodePoint CR_Rejang[] = { + 2, + 0xa930, 0xa953, + 0xa95f, 0xa95f, +}; /* CR_Rejang */ + +/* 'Lycian': Script */ +static const OnigCodePoint CR_Lycian[] = { + 1, + 0x10280, 0x1029c, +}; /* CR_Lycian */ + +/* 'Carian': Script */ +static const OnigCodePoint CR_Carian[] = { + 1, + 0x102a0, 0x102d0, +}; /* CR_Carian */ + +/* 'Lydian': Script */ +static const OnigCodePoint CR_Lydian[] = { + 2, + 0x10920, 0x10939, + 0x1093f, 0x1093f, +}; /* CR_Lydian */ + +/* 'Cham': Script */ +static const OnigCodePoint CR_Cham[] = { + 4, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa5f, +}; /* CR_Cham */ + +/* 'Tai_Tham': Script */ +static const OnigCodePoint CR_Tai_Tham[] = { + 5, + 0x1a20, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, +}; /* CR_Tai_Tham */ + +/* 'Tai_Viet': Script */ +static const OnigCodePoint CR_Tai_Viet[] = { + 2, + 0xaa80, 0xaac2, + 0xaadb, 0xaadf, +}; /* CR_Tai_Viet */ + +/* 'Avestan': Script */ +static const OnigCodePoint CR_Avestan[] = { + 2, + 0x10b00, 0x10b35, + 0x10b39, 0x10b3f, +}; /* CR_Avestan */ + +/* 'Egyptian_Hieroglyphs': Script */ +static const OnigCodePoint CR_Egyptian_Hieroglyphs[] = { + 1, + 0x13000, 0x13455, +}; /* CR_Egyptian_Hieroglyphs */ + +/* 'Samaritan': Script */ +static const OnigCodePoint CR_Samaritan[] = { + 2, + 0x0800, 0x082d, + 0x0830, 0x083e, +}; /* CR_Samaritan */ + +/* 'Lisu': Script */ +static const OnigCodePoint CR_Lisu[] = { + 2, + 0xa4d0, 0xa4ff, + 0x11fb0, 0x11fb0, +}; /* CR_Lisu */ + +/* 'Bamum': Script */ +static const OnigCodePoint CR_Bamum[] = { + 2, + 0xa6a0, 0xa6f7, + 0x16800, 0x16a38, +}; /* CR_Bamum */ + +/* 'Javanese': Script */ +static const OnigCodePoint CR_Javanese[] = { + 3, + 0xa980, 0xa9cd, + 0xa9d0, 0xa9d9, + 0xa9de, 0xa9df, +}; /* CR_Javanese */ + +/* 'Meetei_Mayek': Script */ +static const OnigCodePoint CR_Meetei_Mayek[] = { + 3, + 0xaae0, 0xaaf6, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, +}; /* CR_Meetei_Mayek */ + +/* 'Imperial_Aramaic': Script */ +static const OnigCodePoint CR_Imperial_Aramaic[] = { + 2, + 0x10840, 0x10855, + 0x10857, 0x1085f, +}; /* CR_Imperial_Aramaic */ + +/* 'Old_South_Arabian': Script */ +static const OnigCodePoint CR_Old_South_Arabian[] = { + 1, + 0x10a60, 0x10a7f, +}; /* CR_Old_South_Arabian */ + +/* 'Inscriptional_Parthian': Script */ +static const OnigCodePoint CR_Inscriptional_Parthian[] = { + 2, + 0x10b40, 0x10b55, + 0x10b58, 0x10b5f, +}; /* CR_Inscriptional_Parthian */ + +/* 'Inscriptional_Pahlavi': Script */ +static const OnigCodePoint CR_Inscriptional_Pahlavi[] = { + 2, + 0x10b60, 0x10b72, + 0x10b78, 0x10b7f, +}; /* CR_Inscriptional_Pahlavi */ + +/* 'Old_Turkic': Script */ +static const OnigCodePoint CR_Old_Turkic[] = { + 1, + 0x10c00, 0x10c48, +}; /* CR_Old_Turkic */ + +/* 'Kaithi': Script */ +static const OnigCodePoint CR_Kaithi[] = { + 2, + 0x11080, 0x110c2, + 0x110cd, 0x110cd, +}; /* CR_Kaithi */ + +/* 'Batak': Script */ +static const OnigCodePoint CR_Batak[] = { + 2, + 0x1bc0, 0x1bf3, + 0x1bfc, 0x1bff, +}; /* CR_Batak */ + +/* 'Brahmi': Script */ +static const OnigCodePoint CR_Brahmi[] = { + 3, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x1107f, +}; /* CR_Brahmi */ + +/* 'Mandaic': Script */ +static const OnigCodePoint CR_Mandaic[] = { + 2, + 0x0840, 0x085b, + 0x085e, 0x085e, +}; /* CR_Mandaic */ + +/* 'Chakma': Script */ +static const OnigCodePoint CR_Chakma[] = { + 2, + 0x11100, 0x11134, + 0x11136, 0x11147, +}; /* CR_Chakma */ + +/* 'Meroitic_Cursive': Script */ +static const OnigCodePoint CR_Meroitic_Cursive[] = { + 3, + 0x109a0, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x109ff, +}; /* CR_Meroitic_Cursive */ + +/* 'Meroitic_Hieroglyphs': Script */ +static const OnigCodePoint CR_Meroitic_Hieroglyphs[] = { + 1, + 0x10980, 0x1099f, +}; /* CR_Meroitic_Hieroglyphs */ + +/* 'Miao': Script */ +static const OnigCodePoint CR_Miao[] = { + 3, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, +}; /* CR_Miao */ + +/* 'Sharada': Script */ +static const OnigCodePoint CR_Sharada[] = { + 1, + 0x11180, 0x111df, +}; /* CR_Sharada */ + +/* 'Sora_Sompeng': Script */ +static const OnigCodePoint CR_Sora_Sompeng[] = { + 2, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, +}; /* CR_Sora_Sompeng */ + +/* 'Takri': Script */ +static const OnigCodePoint CR_Takri[] = { + 2, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, +}; /* CR_Takri */ + +/* 'Caucasian_Albanian': Script */ +static const OnigCodePoint CR_Caucasian_Albanian[] = { + 2, + 0x10530, 0x10563, + 0x1056f, 0x1056f, +}; /* CR_Caucasian_Albanian */ + +/* 'Bassa_Vah': Script */ +static const OnigCodePoint CR_Bassa_Vah[] = { + 2, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, +}; /* CR_Bassa_Vah */ + +/* 'Duployan': Script */ +static const OnigCodePoint CR_Duployan[] = { + 5, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bc9f, +}; /* CR_Duployan */ + +/* 'Elbasan': Script */ +static const OnigCodePoint CR_Elbasan[] = { + 1, + 0x10500, 0x10527, +}; /* CR_Elbasan */ + +/* 'Grantha': Script */ +static const OnigCodePoint CR_Grantha[] = { + 15, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133c, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, +}; /* CR_Grantha */ + +/* 'Pahawh_Hmong': Script */ +static const OnigCodePoint CR_Pahawh_Hmong[] = { + 5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, +}; /* CR_Pahawh_Hmong */ + +/* 'Khojki': Script */ +static const OnigCodePoint CR_Khojki[] = { + 2, + 0x11200, 0x11211, + 0x11213, 0x11241, +}; /* CR_Khojki */ + +/* 'Linear_A': Script */ +static const OnigCodePoint CR_Linear_A[] = { + 3, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, +}; /* CR_Linear_A */ + +/* 'Mahajani': Script */ +static const OnigCodePoint CR_Mahajani[] = { + 1, + 0x11150, 0x11176, +}; /* CR_Mahajani */ + +/* 'Manichaean': Script */ +static const OnigCodePoint CR_Manichaean[] = { + 2, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, +}; /* CR_Manichaean */ + +/* 'Mende_Kikakui': Script */ +static const OnigCodePoint CR_Mende_Kikakui[] = { + 2, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, +}; /* CR_Mende_Kikakui */ + +/* 'Modi': Script */ +static const OnigCodePoint CR_Modi[] = { + 2, + 0x11600, 0x11644, + 0x11650, 0x11659, +}; /* CR_Modi */ + +/* 'Mro': Script */ +static const OnigCodePoint CR_Mro[] = { + 3, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, +}; /* CR_Mro */ + +/* 'Old_North_Arabian': Script */ +static const OnigCodePoint CR_Old_North_Arabian[] = { + 1, + 0x10a80, 0x10a9f, +}; /* CR_Old_North_Arabian */ + +/* 'Nabataean': Script */ +static const OnigCodePoint CR_Nabataean[] = { + 2, + 0x10880, 0x1089e, + 0x108a7, 0x108af, +}; /* CR_Nabataean */ + +/* 'Palmyrene': Script */ +static const OnigCodePoint CR_Palmyrene[] = { + 1, + 0x10860, 0x1087f, +}; /* CR_Palmyrene */ + +/* 'Pau_Cin_Hau': Script */ +static const OnigCodePoint CR_Pau_Cin_Hau[] = { + 1, + 0x11ac0, 0x11af8, +}; /* CR_Pau_Cin_Hau */ + +/* 'Old_Permic': Script */ +static const OnigCodePoint CR_Old_Permic[] = { + 1, + 0x10350, 0x1037a, +}; /* CR_Old_Permic */ + +/* 'Psalter_Pahlavi': Script */ +static const OnigCodePoint CR_Psalter_Pahlavi[] = { + 3, + 0x10b80, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, +}; /* CR_Psalter_Pahlavi */ + +/* 'Siddham': Script */ +static const OnigCodePoint CR_Siddham[] = { + 2, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, +}; /* CR_Siddham */ + +/* 'Khudawadi': Script */ +static const OnigCodePoint CR_Khudawadi[] = { + 2, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, +}; /* CR_Khudawadi */ + +/* 'Tirhuta': Script */ +static const OnigCodePoint CR_Tirhuta[] = { + 2, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, +}; /* CR_Tirhuta */ + +/* 'Warang_Citi': Script */ +static const OnigCodePoint CR_Warang_Citi[] = { + 2, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, +}; /* CR_Warang_Citi */ + +/* 'Ahom': Script */ +static const OnigCodePoint CR_Ahom[] = { + 3, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, +}; /* CR_Ahom */ + +/* 'Anatolian_Hieroglyphs': Script */ +static const OnigCodePoint CR_Anatolian_Hieroglyphs[] = { + 1, + 0x14400, 0x14646, +}; /* CR_Anatolian_Hieroglyphs */ + +/* 'Hatran': Script */ +static const OnigCodePoint CR_Hatran[] = { + 3, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x108ff, +}; /* CR_Hatran */ + +/* 'Multani': Script */ +static const OnigCodePoint CR_Multani[] = { + 5, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, +}; /* CR_Multani */ + +/* 'Old_Hungarian': Script */ +static const OnigCodePoint CR_Old_Hungarian[] = { + 3, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10cff, +}; /* CR_Old_Hungarian */ + +/* 'SignWriting': Script */ +static const OnigCodePoint CR_SignWriting[] = { + 3, + 0x1d800, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, +}; /* CR_SignWriting */ + +/* 'Adlam': Script */ +static const OnigCodePoint CR_Adlam[] = { + 3, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, +}; /* CR_Adlam */ + +/* 'Bhaiksuki': Script */ +static const OnigCodePoint CR_Bhaiksuki[] = { + 4, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, +}; /* CR_Bhaiksuki */ + +/* 'Marchen': Script */ +static const OnigCodePoint CR_Marchen[] = { + 3, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, +}; /* CR_Marchen */ + +/* 'Newa': Script */ +static const OnigCodePoint CR_Newa[] = { + 2, + 0x11400, 0x1145b, + 0x1145d, 0x11461, +}; /* CR_Newa */ + +/* 'Osage': Script */ +static const OnigCodePoint CR_Osage[] = { + 2, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, +}; /* CR_Osage */ + +/* 'Tangut': Script */ +static const OnigCodePoint CR_Tangut[] = { + 4, + 0x16fe0, 0x16fe0, + 0x17000, 0x187f7, + 0x18800, 0x18aff, + 0x18d00, 0x18d08, +}; /* CR_Tangut */ + +/* 'Masaram_Gondi': Script */ +static const OnigCodePoint CR_Masaram_Gondi[] = { + 7, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, +}; /* CR_Masaram_Gondi */ + +/* 'Nushu': Script */ +static const OnigCodePoint CR_Nushu[] = { + 2, + 0x16fe1, 0x16fe1, + 0x1b170, 0x1b2fb, +}; /* CR_Nushu */ + +/* 'Soyombo': Script */ +static const OnigCodePoint CR_Soyombo[] = { + 1, + 0x11a50, 0x11aa2, +}; /* CR_Soyombo */ + +/* 'Zanabazar_Square': Script */ +static const OnigCodePoint CR_Zanabazar_Square[] = { + 1, + 0x11a00, 0x11a47, +}; /* CR_Zanabazar_Square */ + +/* 'Dogra': Script */ +static const OnigCodePoint CR_Dogra[] = { + 1, + 0x11800, 0x1183b, +}; /* CR_Dogra */ + +/* 'Gunjala_Gondi': Script */ +static const OnigCodePoint CR_Gunjala_Gondi[] = { + 6, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, +}; /* CR_Gunjala_Gondi */ + +/* 'Makasar': Script */ +static const OnigCodePoint CR_Makasar[] = { + 1, + 0x11ee0, 0x11ef8, +}; /* CR_Makasar */ + +/* 'Medefaidrin': Script */ +static const OnigCodePoint CR_Medefaidrin[] = { + 1, + 0x16e40, 0x16e9a, +}; /* CR_Medefaidrin */ + +/* 'Hanifi_Rohingya': Script */ +static const OnigCodePoint CR_Hanifi_Rohingya[] = { + 2, + 0x10d00, 0x10d27, + 0x10d30, 0x10d39, +}; /* CR_Hanifi_Rohingya */ + +/* 'Sogdian': Script */ +static const OnigCodePoint CR_Sogdian[] = { + 1, + 0x10f30, 0x10f59, +}; /* CR_Sogdian */ + +/* 'Old_Sogdian': Script */ +static const OnigCodePoint CR_Old_Sogdian[] = { + 1, + 0x10f00, 0x10f27, +}; /* CR_Old_Sogdian */ + +/* 'Elymaic': Script */ +static const OnigCodePoint CR_Elymaic[] = { + 1, + 0x10fe0, 0x10ff6, +}; /* CR_Elymaic */ + +/* 'Nandinagari': Script */ +static const OnigCodePoint CR_Nandinagari[] = { + 3, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, +}; /* CR_Nandinagari */ + +/* 'Nyiakeng_Puachue_Hmong': Script */ +static const OnigCodePoint CR_Nyiakeng_Puachue_Hmong[] = { + 4, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, +}; /* CR_Nyiakeng_Puachue_Hmong */ + +/* 'Wancho': Script */ +static const OnigCodePoint CR_Wancho[] = { + 2, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, +}; /* CR_Wancho */ + +/* 'Chorasmian': Script */ +static const OnigCodePoint CR_Chorasmian[] = { + 1, + 0x10fb0, 0x10fcb, +}; /* CR_Chorasmian */ + +/* 'Dives_Akuru': Script */ +static const OnigCodePoint CR_Dives_Akuru[] = { + 8, + 0x11900, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, +}; /* CR_Dives_Akuru */ + +/* 'Khitan_Small_Script': Script */ +static const OnigCodePoint CR_Khitan_Small_Script[] = { + 2, + 0x16fe4, 0x16fe4, + 0x18b00, 0x18cd5, +}; /* CR_Khitan_Small_Script */ + +/* 'Yezidi': Script */ +static const OnigCodePoint CR_Yezidi[] = { + 3, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, +}; /* CR_Yezidi */ + +/* 'Cypro_Minoan': Script */ +static const OnigCodePoint CR_Cypro_Minoan[] = { + 1, + 0x12f90, 0x12ff2, +}; /* CR_Cypro_Minoan */ + +/* 'Old_Uyghur': Script */ +static const OnigCodePoint CR_Old_Uyghur[] = { + 1, + 0x10f70, 0x10f89, +}; /* CR_Old_Uyghur */ + +/* 'Tangsa': Script */ +static const OnigCodePoint CR_Tangsa[] = { + 2, + 0x16a70, 0x16abe, + 0x16ac0, 0x16ac9, +}; /* CR_Tangsa */ + +/* 'Toto': Script */ +static const OnigCodePoint CR_Toto[] = { + 1, + 0x1e290, 0x1e2ae, +}; /* CR_Toto */ + +/* 'Vithkuqi': Script */ +static const OnigCodePoint CR_Vithkuqi[] = { + 8, + 0x10570, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, +}; /* CR_Vithkuqi */ + +/* 'Kawi': Script */ +static const OnigCodePoint CR_Kawi[] = { + 3, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f59, +}; /* CR_Kawi */ + +/* 'Nag_Mundari': Script */ +static const OnigCodePoint CR_Nag_Mundari[] = { + 1, + 0x1e4d0, 0x1e4f9, +}; /* CR_Nag_Mundari */ + +/* 'White_Space': Binary Property */ +#define CR_White_Space CR_Space + +/* 'Bidi_Control': Binary Property */ +static const OnigCodePoint CR_Bidi_Control[] = { + 4, + 0x061c, 0x061c, + 0x200e, 0x200f, + 0x202a, 0x202e, + 0x2066, 0x2069, +}; /* CR_Bidi_Control */ + +/* 'Join_Control': Binary Property */ +static const OnigCodePoint CR_Join_Control[] = { + 1, + 0x200c, 0x200d, +}; /* CR_Join_Control */ + +/* 'Dash': Binary Property */ +static const OnigCodePoint CR_Dash[] = { + 23, + 0x002d, 0x002d, + 0x058a, 0x058a, + 0x05be, 0x05be, + 0x1400, 0x1400, + 0x1806, 0x1806, + 0x2010, 0x2015, + 0x2053, 0x2053, + 0x207b, 0x207b, + 0x208b, 0x208b, + 0x2212, 0x2212, + 0x2e17, 0x2e17, + 0x2e1a, 0x2e1a, + 0x2e3a, 0x2e3b, + 0x2e40, 0x2e40, + 0x2e5d, 0x2e5d, + 0x301c, 0x301c, + 0x3030, 0x3030, + 0x30a0, 0x30a0, + 0xfe31, 0xfe32, + 0xfe58, 0xfe58, + 0xfe63, 0xfe63, + 0xff0d, 0xff0d, + 0x10ead, 0x10ead, +}; /* CR_Dash */ + +/* 'Hyphen': Binary Property */ +static const OnigCodePoint CR_Hyphen[] = { + 10, + 0x002d, 0x002d, + 0x00ad, 0x00ad, + 0x058a, 0x058a, + 0x1806, 0x1806, + 0x2010, 0x2011, + 0x2e17, 0x2e17, + 0x30fb, 0x30fb, + 0xfe63, 0xfe63, + 0xff0d, 0xff0d, + 0xff65, 0xff65, +}; /* CR_Hyphen */ + +/* 'Quotation_Mark': Binary Property */ +static const OnigCodePoint CR_Quotation_Mark[] = { + 13, + 0x0022, 0x0022, + 0x0027, 0x0027, + 0x00ab, 0x00ab, + 0x00bb, 0x00bb, + 0x2018, 0x201f, + 0x2039, 0x203a, + 0x2e42, 0x2e42, + 0x300c, 0x300f, + 0x301d, 0x301f, + 0xfe41, 0xfe44, + 0xff02, 0xff02, + 0xff07, 0xff07, + 0xff62, 0xff63, +}; /* CR_Quotation_Mark */ + +/* 'Terminal_Punctuation': Binary Property */ +static const OnigCodePoint CR_Terminal_Punctuation[] = { + 108, + 0x0021, 0x0021, + 0x002c, 0x002c, + 0x002e, 0x002e, + 0x003a, 0x003b, + 0x003f, 0x003f, + 0x037e, 0x037e, + 0x0387, 0x0387, + 0x0589, 0x0589, + 0x05c3, 0x05c3, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061d, 0x061f, + 0x06d4, 0x06d4, + 0x0700, 0x070a, + 0x070c, 0x070c, + 0x07f8, 0x07f9, + 0x0830, 0x083e, + 0x085e, 0x085e, + 0x0964, 0x0965, + 0x0e5a, 0x0e5b, + 0x0f08, 0x0f08, + 0x0f0d, 0x0f12, + 0x104a, 0x104b, + 0x1361, 0x1368, + 0x166e, 0x166e, + 0x16eb, 0x16ed, + 0x1735, 0x1736, + 0x17d4, 0x17d6, + 0x17da, 0x17da, + 0x1802, 0x1805, + 0x1808, 0x1809, + 0x1944, 0x1945, + 0x1aa8, 0x1aab, + 0x1b5a, 0x1b5b, + 0x1b5d, 0x1b5f, + 0x1b7d, 0x1b7e, + 0x1c3b, 0x1c3f, + 0x1c7e, 0x1c7f, + 0x203c, 0x203d, + 0x2047, 0x2049, + 0x2e2e, 0x2e2e, + 0x2e3c, 0x2e3c, + 0x2e41, 0x2e41, + 0x2e4c, 0x2e4c, + 0x2e4e, 0x2e4f, + 0x2e53, 0x2e54, + 0x3001, 0x3002, + 0xa4fe, 0xa4ff, + 0xa60d, 0xa60f, + 0xa6f3, 0xa6f7, + 0xa876, 0xa877, + 0xa8ce, 0xa8cf, + 0xa92f, 0xa92f, + 0xa9c7, 0xa9c9, + 0xaa5d, 0xaa5f, + 0xaadf, 0xaadf, + 0xaaf0, 0xaaf1, + 0xabeb, 0xabeb, + 0xfe50, 0xfe52, + 0xfe54, 0xfe57, + 0xff01, 0xff01, + 0xff0c, 0xff0c, + 0xff0e, 0xff0e, + 0xff1a, 0xff1b, + 0xff1f, 0xff1f, + 0xff61, 0xff61, + 0xff64, 0xff64, + 0x1039f, 0x1039f, + 0x103d0, 0x103d0, + 0x10857, 0x10857, + 0x1091f, 0x1091f, + 0x10a56, 0x10a57, + 0x10af0, 0x10af5, + 0x10b3a, 0x10b3f, + 0x10b99, 0x10b9c, + 0x10f55, 0x10f59, + 0x10f86, 0x10f89, + 0x11047, 0x1104d, + 0x110be, 0x110c1, + 0x11141, 0x11143, + 0x111c5, 0x111c6, + 0x111cd, 0x111cd, + 0x111de, 0x111df, + 0x11238, 0x1123c, + 0x112a9, 0x112a9, + 0x1144b, 0x1144d, + 0x1145a, 0x1145b, + 0x115c2, 0x115c5, + 0x115c9, 0x115d7, + 0x11641, 0x11642, + 0x1173c, 0x1173e, + 0x11944, 0x11944, + 0x11946, 0x11946, + 0x11a42, 0x11a43, + 0x11a9b, 0x11a9c, + 0x11aa1, 0x11aa2, + 0x11c41, 0x11c43, + 0x11c71, 0x11c71, + 0x11ef7, 0x11ef8, + 0x11f43, 0x11f44, + 0x12470, 0x12474, + 0x16a6e, 0x16a6f, + 0x16af5, 0x16af5, + 0x16b37, 0x16b39, + 0x16b44, 0x16b44, + 0x16e97, 0x16e98, + 0x1bc9f, 0x1bc9f, + 0x1da87, 0x1da8a, +}; /* CR_Terminal_Punctuation */ + +/* 'Other_Math': Binary Property */ +static const OnigCodePoint CR_Other_Math[] = { + 134, + 0x005e, 0x005e, + 0x03d0, 0x03d2, + 0x03d5, 0x03d5, + 0x03f0, 0x03f1, + 0x03f4, 0x03f5, + 0x2016, 0x2016, + 0x2032, 0x2034, + 0x2040, 0x2040, + 0x2061, 0x2064, + 0x207d, 0x207e, + 0x208d, 0x208e, + 0x20d0, 0x20dc, + 0x20e1, 0x20e1, + 0x20e5, 0x20e6, + 0x20eb, 0x20ef, + 0x2102, 0x2102, + 0x2107, 0x2107, + 0x210a, 0x2113, + 0x2115, 0x2115, + 0x2119, 0x211d, + 0x2124, 0x2124, + 0x2128, 0x2129, + 0x212c, 0x212d, + 0x212f, 0x2131, + 0x2133, 0x2138, + 0x213c, 0x213f, + 0x2145, 0x2149, + 0x2195, 0x2199, + 0x219c, 0x219f, + 0x21a1, 0x21a2, + 0x21a4, 0x21a5, + 0x21a7, 0x21a7, + 0x21a9, 0x21ad, + 0x21b0, 0x21b1, + 0x21b6, 0x21b7, + 0x21bc, 0x21cd, + 0x21d0, 0x21d1, + 0x21d3, 0x21d3, + 0x21d5, 0x21db, + 0x21dd, 0x21dd, + 0x21e4, 0x21e5, + 0x2308, 0x230b, + 0x23b4, 0x23b5, + 0x23b7, 0x23b7, + 0x23d0, 0x23d0, + 0x23e2, 0x23e2, + 0x25a0, 0x25a1, + 0x25ae, 0x25b6, + 0x25bc, 0x25c0, + 0x25c6, 0x25c7, + 0x25ca, 0x25cb, + 0x25cf, 0x25d3, + 0x25e2, 0x25e2, + 0x25e4, 0x25e4, + 0x25e7, 0x25ec, + 0x2605, 0x2606, + 0x2640, 0x2640, + 0x2642, 0x2642, + 0x2660, 0x2663, + 0x266d, 0x266e, + 0x27c5, 0x27c6, + 0x27e6, 0x27ef, + 0x2983, 0x2998, + 0x29d8, 0x29db, + 0x29fc, 0x29fd, + 0xfe61, 0xfe61, + 0xfe63, 0xfe63, + 0xfe68, 0xfe68, + 0xff3c, 0xff3c, + 0xff3e, 0xff3e, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d6c0, + 0x1d6c2, 0x1d6da, + 0x1d6dc, 0x1d6fa, + 0x1d6fc, 0x1d714, + 0x1d716, 0x1d734, + 0x1d736, 0x1d74e, + 0x1d750, 0x1d76e, + 0x1d770, 0x1d788, + 0x1d78a, 0x1d7a8, + 0x1d7aa, 0x1d7c2, + 0x1d7c4, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, +}; /* CR_Other_Math */ + +/* 'Hex_Digit': Binary Property */ +static const OnigCodePoint CR_Hex_Digit[] = { + 6, + 0x0030, 0x0039, + 0x0041, 0x0046, + 0x0061, 0x0066, + 0xff10, 0xff19, + 0xff21, 0xff26, + 0xff41, 0xff46, +}; /* CR_Hex_Digit */ + +/* 'ASCII_Hex_Digit': Binary Property */ +#define CR_ASCII_Hex_Digit CR_XDigit + +/* 'Other_Alphabetic': Binary Property */ +static const OnigCodePoint CR_Other_Alphabetic[] = { + 240, + 0x0345, 0x0345, + 0x05b0, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x0610, 0x061a, + 0x064b, 0x0657, + 0x0659, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dc, + 0x06e1, 0x06e4, + 0x06e7, 0x06e8, + 0x06ed, 0x06ed, + 0x0711, 0x0711, + 0x0730, 0x073f, + 0x07a6, 0x07b0, + 0x0816, 0x0817, + 0x081b, 0x0823, + 0x0825, 0x0827, + 0x0829, 0x082c, + 0x08d4, 0x08df, + 0x08e3, 0x08e9, + 0x08f0, 0x0903, + 0x093a, 0x093b, + 0x093e, 0x094c, + 0x094e, 0x094f, + 0x0955, 0x0957, + 0x0962, 0x0963, + 0x0981, 0x0983, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x09d7, 0x09d7, + 0x09e2, 0x09e3, + 0x0a01, 0x0a03, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4c, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a83, + 0x0abe, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acc, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0afc, + 0x0b01, 0x0b03, + 0x0b3e, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0b56, 0x0b57, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0bd7, 0x0bd7, + 0x0c00, 0x0c04, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4c, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c83, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccc, + 0x0cd5, 0x0cd6, + 0x0ce2, 0x0ce3, + 0x0cf3, 0x0cf3, + 0x0d00, 0x0d03, + 0x0d3e, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d57, 0x0d57, + 0x0d62, 0x0d63, + 0x0d81, 0x0d83, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df3, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e4d, 0x0e4d, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0eb9, + 0x0ebb, 0x0ebc, + 0x0ecd, 0x0ecd, + 0x0f71, 0x0f83, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x102b, 0x1036, + 0x1038, 0x1038, + 0x103b, 0x103e, + 0x1056, 0x1059, + 0x105e, 0x1060, + 0x1062, 0x1064, + 0x1067, 0x106d, + 0x1071, 0x1074, + 0x1082, 0x108d, + 0x108f, 0x108f, + 0x109a, 0x109d, + 0x1712, 0x1713, + 0x1732, 0x1733, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b6, 0x17c8, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x192b, + 0x1930, 0x1938, + 0x1a17, 0x1a1b, + 0x1a55, 0x1a5e, + 0x1a61, 0x1a74, + 0x1abf, 0x1ac0, + 0x1acc, 0x1ace, + 0x1b00, 0x1b04, + 0x1b35, 0x1b43, + 0x1b80, 0x1b82, + 0x1ba1, 0x1ba9, + 0x1bac, 0x1bad, + 0x1be7, 0x1bf1, + 0x1c24, 0x1c36, + 0x1de7, 0x1df4, + 0x24b6, 0x24e9, + 0x2de0, 0x2dff, + 0xa674, 0xa67b, + 0xa69e, 0xa69f, + 0xa802, 0xa802, + 0xa80b, 0xa80b, + 0xa823, 0xa827, + 0xa880, 0xa881, + 0xa8b4, 0xa8c3, + 0xa8c5, 0xa8c5, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92a, + 0xa947, 0xa952, + 0xa980, 0xa983, + 0xa9b4, 0xa9bf, + 0xa9e5, 0xa9e5, + 0xaa29, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4d, + 0xaa7b, 0xaa7d, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabe, + 0xaaeb, 0xaaef, + 0xaaf5, 0xaaf5, + 0xabe3, 0xabea, + 0xfb1e, 0xfb1e, + 0x10376, 0x1037a, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x11000, 0x11002, + 0x11038, 0x11045, + 0x11073, 0x11074, + 0x11080, 0x11082, + 0x110b0, 0x110b8, + 0x110c2, 0x110c2, + 0x11100, 0x11102, + 0x11127, 0x11132, + 0x11145, 0x11146, + 0x11180, 0x11182, + 0x111b3, 0x111bf, + 0x111ce, 0x111cf, + 0x1122c, 0x11234, + 0x11237, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112e8, + 0x11300, 0x11303, + 0x1133e, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134c, + 0x11357, 0x11357, + 0x11362, 0x11363, + 0x11435, 0x11441, + 0x11443, 0x11445, + 0x114b0, 0x114c1, + 0x115af, 0x115b5, + 0x115b8, 0x115be, + 0x115dc, 0x115dd, + 0x11630, 0x1163e, + 0x11640, 0x11640, + 0x116ab, 0x116b5, + 0x1171d, 0x1172a, + 0x1182c, 0x11838, + 0x11930, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x1193c, + 0x11940, 0x11940, + 0x11942, 0x11942, + 0x119d1, 0x119d7, + 0x119da, 0x119df, + 0x119e4, 0x119e4, + 0x11a01, 0x11a0a, + 0x11a35, 0x11a39, + 0x11a3b, 0x11a3e, + 0x11a51, 0x11a5b, + 0x11a8a, 0x11a97, + 0x11c2f, 0x11c36, + 0x11c38, 0x11c3e, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d41, + 0x11d43, 0x11d43, + 0x11d47, 0x11d47, + 0x11d8a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d96, + 0x11ef3, 0x11ef6, + 0x11f00, 0x11f01, + 0x11f03, 0x11f03, + 0x11f34, 0x11f3a, + 0x11f3e, 0x11f40, + 0x16f4f, 0x16f4f, + 0x16f51, 0x16f87, + 0x16f8f, 0x16f92, + 0x16ff0, 0x16ff1, + 0x1bc9e, 0x1bc9e, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e08f, 0x1e08f, + 0x1e947, 0x1e947, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, +}; /* CR_Other_Alphabetic */ + +/* 'Ideographic': Binary Property */ +static const OnigCodePoint CR_Ideographic[] = { + 20, + 0x3006, 0x3007, + 0x3021, 0x3029, + 0x3038, 0x303a, + 0x3400, 0x4dbf, + 0x4e00, 0x9fff, + 0xf900, 0xfa6d, + 0xfa70, 0xfad9, + 0x16fe4, 0x16fe4, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1b170, 0x1b2fb, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Ideographic */ + +/* 'Diacritic': Binary Property */ +static const OnigCodePoint CR_Diacritic[] = { + 195, + 0x005e, 0x005e, + 0x0060, 0x0060, + 0x00a8, 0x00a8, + 0x00af, 0x00af, + 0x00b4, 0x00b4, + 0x00b7, 0x00b8, + 0x02b0, 0x034e, + 0x0350, 0x0357, + 0x035d, 0x0362, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x0384, 0x0385, + 0x0483, 0x0487, + 0x0559, 0x0559, + 0x0591, 0x05a1, + 0x05a3, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c4, + 0x064b, 0x0652, + 0x0657, 0x0658, + 0x06df, 0x06e0, + 0x06e5, 0x06e6, + 0x06ea, 0x06ec, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f5, + 0x0818, 0x0819, + 0x0898, 0x089f, + 0x08c9, 0x08d2, + 0x08e3, 0x08fe, + 0x093c, 0x093c, + 0x094d, 0x094d, + 0x0951, 0x0954, + 0x0971, 0x0971, + 0x09bc, 0x09bc, + 0x09cd, 0x09cd, + 0x0a3c, 0x0a3c, + 0x0a4d, 0x0a4d, + 0x0abc, 0x0abc, + 0x0acd, 0x0acd, + 0x0afd, 0x0aff, + 0x0b3c, 0x0b3c, + 0x0b4d, 0x0b4d, + 0x0b55, 0x0b55, + 0x0bcd, 0x0bcd, + 0x0c3c, 0x0c3c, + 0x0c4d, 0x0c4d, + 0x0cbc, 0x0cbc, + 0x0ccd, 0x0ccd, + 0x0d3b, 0x0d3c, + 0x0d4d, 0x0d4d, + 0x0dca, 0x0dca, + 0x0e47, 0x0e4c, + 0x0e4e, 0x0e4e, + 0x0eba, 0x0eba, + 0x0ec8, 0x0ecc, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f3e, 0x0f3f, + 0x0f82, 0x0f84, + 0x0f86, 0x0f87, + 0x0fc6, 0x0fc6, + 0x1037, 0x1037, + 0x1039, 0x103a, + 0x1063, 0x1064, + 0x1069, 0x106d, + 0x1087, 0x108d, + 0x108f, 0x108f, + 0x109a, 0x109b, + 0x135d, 0x135f, + 0x1714, 0x1715, + 0x17c9, 0x17d3, + 0x17dd, 0x17dd, + 0x1939, 0x193b, + 0x1a75, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1ab0, 0x1abe, + 0x1ac1, 0x1acb, + 0x1b34, 0x1b34, + 0x1b44, 0x1b44, + 0x1b6b, 0x1b73, + 0x1baa, 0x1bab, + 0x1c36, 0x1c37, + 0x1c78, 0x1c7d, + 0x1cd0, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf7, 0x1cf9, + 0x1d2c, 0x1d6a, + 0x1dc4, 0x1dcf, + 0x1df5, 0x1dff, + 0x1fbd, 0x1fbd, + 0x1fbf, 0x1fc1, + 0x1fcd, 0x1fcf, + 0x1fdd, 0x1fdf, + 0x1fed, 0x1fef, + 0x1ffd, 0x1ffe, + 0x2cef, 0x2cf1, + 0x2e2f, 0x2e2f, + 0x302a, 0x302f, + 0x3099, 0x309c, + 0x30fc, 0x30fc, + 0xa66f, 0xa66f, + 0xa67c, 0xa67d, + 0xa67f, 0xa67f, + 0xa69c, 0xa69d, + 0xa6f0, 0xa6f1, + 0xa700, 0xa721, + 0xa788, 0xa78a, + 0xa7f8, 0xa7f9, + 0xa8c4, 0xa8c4, + 0xa8e0, 0xa8f1, + 0xa92b, 0xa92e, + 0xa953, 0xa953, + 0xa9b3, 0xa9b3, + 0xa9c0, 0xa9c0, + 0xa9e5, 0xa9e5, + 0xaa7b, 0xaa7d, + 0xaabf, 0xaac2, + 0xaaf6, 0xaaf6, + 0xab5b, 0xab5f, + 0xab69, 0xab6b, + 0xabec, 0xabed, + 0xfb1e, 0xfb1e, + 0xfe20, 0xfe2f, + 0xff3e, 0xff3e, + 0xff40, 0xff40, + 0xff70, 0xff70, + 0xff9e, 0xff9f, + 0xffe3, 0xffe3, + 0x102e0, 0x102e0, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10ae5, 0x10ae6, + 0x10d22, 0x10d27, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11046, 0x11046, + 0x11070, 0x11070, + 0x110b9, 0x110ba, + 0x11133, 0x11134, + 0x11173, 0x11173, + 0x111c0, 0x111c0, + 0x111ca, 0x111cc, + 0x11235, 0x11236, + 0x112e9, 0x112ea, + 0x1133c, 0x1133c, + 0x1134d, 0x1134d, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11442, 0x11442, + 0x11446, 0x11446, + 0x114c2, 0x114c3, + 0x115bf, 0x115c0, + 0x1163f, 0x1163f, + 0x116b6, 0x116b7, + 0x1172b, 0x1172b, + 0x11839, 0x1183a, + 0x1193d, 0x1193e, + 0x11943, 0x11943, + 0x119e0, 0x119e0, + 0x11a34, 0x11a34, + 0x11a47, 0x11a47, + 0x11a99, 0x11a99, + 0x11c3f, 0x11c3f, + 0x11d42, 0x11d42, + 0x11d44, 0x11d45, + 0x11d97, 0x11d97, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16f8f, 0x16f9f, + 0x16ff0, 0x16ff1, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d167, 0x1d169, + 0x1d16d, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1e030, 0x1e06d, + 0x1e130, 0x1e136, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e946, + 0x1e948, 0x1e94a, +}; /* CR_Diacritic */ + +/* 'Extender': Binary Property */ +static const OnigCodePoint CR_Extender[] = { + 33, + 0x00b7, 0x00b7, + 0x02d0, 0x02d1, + 0x0640, 0x0640, + 0x07fa, 0x07fa, + 0x0b55, 0x0b55, + 0x0e46, 0x0e46, + 0x0ec6, 0x0ec6, + 0x180a, 0x180a, + 0x1843, 0x1843, + 0x1aa7, 0x1aa7, + 0x1c36, 0x1c36, + 0x1c7b, 0x1c7b, + 0x3005, 0x3005, + 0x3031, 0x3035, + 0x309d, 0x309e, + 0x30fc, 0x30fe, + 0xa015, 0xa015, + 0xa60c, 0xa60c, + 0xa9cf, 0xa9cf, + 0xa9e6, 0xa9e6, + 0xaa70, 0xaa70, + 0xaadd, 0xaadd, + 0xaaf3, 0xaaf4, + 0xff70, 0xff70, + 0x10781, 0x10782, + 0x1135d, 0x1135d, + 0x115c6, 0x115c8, + 0x11a98, 0x11a98, + 0x16b42, 0x16b43, + 0x16fe0, 0x16fe1, + 0x16fe3, 0x16fe3, + 0x1e13c, 0x1e13d, + 0x1e944, 0x1e946, +}; /* CR_Extender */ + +/* 'Other_Lowercase': Binary Property */ +static const OnigCodePoint CR_Other_Lowercase[] = { + 28, + 0x00aa, 0x00aa, + 0x00ba, 0x00ba, + 0x02b0, 0x02b8, + 0x02c0, 0x02c1, + 0x02e0, 0x02e4, + 0x0345, 0x0345, + 0x037a, 0x037a, + 0x10fc, 0x10fc, + 0x1d2c, 0x1d6a, + 0x1d78, 0x1d78, + 0x1d9b, 0x1dbf, + 0x2071, 0x2071, + 0x207f, 0x207f, + 0x2090, 0x209c, + 0x2170, 0x217f, + 0x24d0, 0x24e9, + 0x2c7c, 0x2c7d, + 0xa69c, 0xa69d, + 0xa770, 0xa770, + 0xa7f2, 0xa7f4, + 0xa7f8, 0xa7f9, + 0xab5c, 0xab5f, + 0xab69, 0xab69, + 0x10780, 0x10780, + 0x10783, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x1e030, 0x1e06d, +}; /* CR_Other_Lowercase */ + +/* 'Other_Uppercase': Binary Property */ +static const OnigCodePoint CR_Other_Uppercase[] = { + 5, + 0x2160, 0x216f, + 0x24b6, 0x24cf, + 0x1f130, 0x1f149, + 0x1f150, 0x1f169, + 0x1f170, 0x1f189, +}; /* CR_Other_Uppercase */ + +/* 'Noncharacter_Code_Point': Binary Property */ +static const OnigCodePoint CR_Noncharacter_Code_Point[] = { + 18, + 0xfdd0, 0xfdef, + 0xfffe, 0xffff, + 0x1fffe, 0x1ffff, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xefffe, 0xeffff, + 0xffffe, 0xfffff, + 0x10fffe, 0x10ffff, +}; /* CR_Noncharacter_Code_Point */ + +/* 'Other_Grapheme_Extend': Binary Property */ +static const OnigCodePoint CR_Other_Grapheme_Extend[] = { + 25, + 0x09be, 0x09be, + 0x09d7, 0x09d7, + 0x0b3e, 0x0b3e, + 0x0b57, 0x0b57, + 0x0bbe, 0x0bbe, + 0x0bd7, 0x0bd7, + 0x0cc2, 0x0cc2, + 0x0cd5, 0x0cd6, + 0x0d3e, 0x0d3e, + 0x0d57, 0x0d57, + 0x0dcf, 0x0dcf, + 0x0ddf, 0x0ddf, + 0x1b35, 0x1b35, + 0x200c, 0x200c, + 0x302e, 0x302f, + 0xff9e, 0xff9f, + 0x1133e, 0x1133e, + 0x11357, 0x11357, + 0x114b0, 0x114b0, + 0x114bd, 0x114bd, + 0x115af, 0x115af, + 0x11930, 0x11930, + 0x1d165, 0x1d165, + 0x1d16e, 0x1d172, + 0xe0020, 0xe007f, +}; /* CR_Other_Grapheme_Extend */ + +/* 'IDS_Binary_Operator': Binary Property */ +static const OnigCodePoint CR_IDS_Binary_Operator[] = { + 2, + 0x2ff0, 0x2ff1, + 0x2ff4, 0x2ffb, +}; /* CR_IDS_Binary_Operator */ + +/* 'IDS_Trinary_Operator': Binary Property */ +static const OnigCodePoint CR_IDS_Trinary_Operator[] = { + 1, + 0x2ff2, 0x2ff3, +}; /* CR_IDS_Trinary_Operator */ + +/* 'Radical': Binary Property */ +static const OnigCodePoint CR_Radical[] = { + 3, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, +}; /* CR_Radical */ + +/* 'Unified_Ideograph': Binary Property */ +static const OnigCodePoint CR_Unified_Ideograph[] = { + 16, + 0x3400, 0x4dbf, + 0x4e00, 0x9fff, + 0xfa0e, 0xfa0f, + 0xfa11, 0xfa11, + 0xfa13, 0xfa14, + 0xfa1f, 0xfa1f, + 0xfa21, 0xfa21, + 0xfa23, 0xfa24, + 0xfa27, 0xfa29, + 0x20000, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x30000, 0x3134a, + 0x31350, 0x323af, +}; /* CR_Unified_Ideograph */ + +/* 'Other_Default_Ignorable_Code_Point': Binary Property */ +static const OnigCodePoint CR_Other_Default_Ignorable_Code_Point[] = { + 11, + 0x034f, 0x034f, + 0x115f, 0x1160, + 0x17b4, 0x17b5, + 0x2065, 0x2065, + 0x3164, 0x3164, + 0xffa0, 0xffa0, + 0xfff0, 0xfff8, + 0xe0000, 0xe0000, + 0xe0002, 0xe001f, + 0xe0080, 0xe00ff, + 0xe01f0, 0xe0fff, +}; /* CR_Other_Default_Ignorable_Code_Point */ + +/* 'Deprecated': Binary Property */ +static const OnigCodePoint CR_Deprecated[] = { + 8, + 0x0149, 0x0149, + 0x0673, 0x0673, + 0x0f77, 0x0f77, + 0x0f79, 0x0f79, + 0x17a3, 0x17a4, + 0x206a, 0x206f, + 0x2329, 0x232a, + 0xe0001, 0xe0001, +}; /* CR_Deprecated */ + +/* 'Soft_Dotted': Binary Property */ +static const OnigCodePoint CR_Soft_Dotted[] = { + 34, + 0x0069, 0x006a, + 0x012f, 0x012f, + 0x0249, 0x0249, + 0x0268, 0x0268, + 0x029d, 0x029d, + 0x02b2, 0x02b2, + 0x03f3, 0x03f3, + 0x0456, 0x0456, + 0x0458, 0x0458, + 0x1d62, 0x1d62, + 0x1d96, 0x1d96, + 0x1da4, 0x1da4, + 0x1da8, 0x1da8, + 0x1e2d, 0x1e2d, + 0x1ecb, 0x1ecb, + 0x2071, 0x2071, + 0x2148, 0x2149, + 0x2c7c, 0x2c7c, + 0x1d422, 0x1d423, + 0x1d456, 0x1d457, + 0x1d48a, 0x1d48b, + 0x1d4be, 0x1d4bf, + 0x1d4f2, 0x1d4f3, + 0x1d526, 0x1d527, + 0x1d55a, 0x1d55b, + 0x1d58e, 0x1d58f, + 0x1d5c2, 0x1d5c3, + 0x1d5f6, 0x1d5f7, + 0x1d62a, 0x1d62b, + 0x1d65e, 0x1d65f, + 0x1d692, 0x1d693, + 0x1df1a, 0x1df1a, + 0x1e04c, 0x1e04d, + 0x1e068, 0x1e068, +}; /* CR_Soft_Dotted */ + +/* 'Logical_Order_Exception': Binary Property */ +static const OnigCodePoint CR_Logical_Order_Exception[] = { + 7, + 0x0e40, 0x0e44, + 0x0ec0, 0x0ec4, + 0x19b5, 0x19b7, + 0x19ba, 0x19ba, + 0xaab5, 0xaab6, + 0xaab9, 0xaab9, + 0xaabb, 0xaabc, +}; /* CR_Logical_Order_Exception */ + +/* 'Other_ID_Start': Binary Property */ +static const OnigCodePoint CR_Other_ID_Start[] = { + 4, + 0x1885, 0x1886, + 0x2118, 0x2118, + 0x212e, 0x212e, + 0x309b, 0x309c, +}; /* CR_Other_ID_Start */ + +/* 'Other_ID_Continue': Binary Property */ +static const OnigCodePoint CR_Other_ID_Continue[] = { + 4, + 0x00b7, 0x00b7, + 0x0387, 0x0387, + 0x1369, 0x1371, + 0x19da, 0x19da, +}; /* CR_Other_ID_Continue */ + +/* 'Sentence_Terminal': Binary Property */ +static const OnigCodePoint CR_Sentence_Terminal[] = { + 80, + 0x0021, 0x0021, + 0x002e, 0x002e, + 0x003f, 0x003f, + 0x0589, 0x0589, + 0x061d, 0x061f, + 0x06d4, 0x06d4, + 0x0700, 0x0702, + 0x07f9, 0x07f9, + 0x0837, 0x0837, + 0x0839, 0x0839, + 0x083d, 0x083e, + 0x0964, 0x0965, + 0x104a, 0x104b, + 0x1362, 0x1362, + 0x1367, 0x1368, + 0x166e, 0x166e, + 0x1735, 0x1736, + 0x1803, 0x1803, + 0x1809, 0x1809, + 0x1944, 0x1945, + 0x1aa8, 0x1aab, + 0x1b5a, 0x1b5b, + 0x1b5e, 0x1b5f, + 0x1b7d, 0x1b7e, + 0x1c3b, 0x1c3c, + 0x1c7e, 0x1c7f, + 0x203c, 0x203d, + 0x2047, 0x2049, + 0x2e2e, 0x2e2e, + 0x2e3c, 0x2e3c, + 0x2e53, 0x2e54, + 0x3002, 0x3002, + 0xa4ff, 0xa4ff, + 0xa60e, 0xa60f, + 0xa6f3, 0xa6f3, + 0xa6f7, 0xa6f7, + 0xa876, 0xa877, + 0xa8ce, 0xa8cf, + 0xa92f, 0xa92f, + 0xa9c8, 0xa9c9, + 0xaa5d, 0xaa5f, + 0xaaf0, 0xaaf1, + 0xabeb, 0xabeb, + 0xfe52, 0xfe52, + 0xfe56, 0xfe57, + 0xff01, 0xff01, + 0xff0e, 0xff0e, + 0xff1f, 0xff1f, + 0xff61, 0xff61, + 0x10a56, 0x10a57, + 0x10f55, 0x10f59, + 0x10f86, 0x10f89, + 0x11047, 0x11048, + 0x110be, 0x110c1, + 0x11141, 0x11143, + 0x111c5, 0x111c6, + 0x111cd, 0x111cd, + 0x111de, 0x111df, + 0x11238, 0x11239, + 0x1123b, 0x1123c, + 0x112a9, 0x112a9, + 0x1144b, 0x1144c, + 0x115c2, 0x115c3, + 0x115c9, 0x115d7, + 0x11641, 0x11642, + 0x1173c, 0x1173e, + 0x11944, 0x11944, + 0x11946, 0x11946, + 0x11a42, 0x11a43, + 0x11a9b, 0x11a9c, + 0x11c41, 0x11c42, + 0x11ef7, 0x11ef8, + 0x11f43, 0x11f44, + 0x16a6e, 0x16a6f, + 0x16af5, 0x16af5, + 0x16b37, 0x16b38, + 0x16b44, 0x16b44, + 0x16e98, 0x16e98, + 0x1bc9f, 0x1bc9f, + 0x1da88, 0x1da88, +}; /* CR_Sentence_Terminal */ + +/* 'Variation_Selector': Binary Property */ +static const OnigCodePoint CR_Variation_Selector[] = { + 4, + 0x180b, 0x180d, + 0x180f, 0x180f, + 0xfe00, 0xfe0f, + 0xe0100, 0xe01ef, +}; /* CR_Variation_Selector */ + +/* 'Pattern_White_Space': Binary Property */ +static const OnigCodePoint CR_Pattern_White_Space[] = { + 5, + 0x0009, 0x000d, + 0x0020, 0x0020, + 0x0085, 0x0085, + 0x200e, 0x200f, + 0x2028, 0x2029, +}; /* CR_Pattern_White_Space */ + +/* 'Pattern_Syntax': Binary Property */ +static const OnigCodePoint CR_Pattern_Syntax[] = { + 28, + 0x0021, 0x002f, + 0x003a, 0x0040, + 0x005b, 0x005e, + 0x0060, 0x0060, + 0x007b, 0x007e, + 0x00a1, 0x00a7, + 0x00a9, 0x00a9, + 0x00ab, 0x00ac, + 0x00ae, 0x00ae, + 0x00b0, 0x00b1, + 0x00b6, 0x00b6, + 0x00bb, 0x00bb, + 0x00bf, 0x00bf, + 0x00d7, 0x00d7, + 0x00f7, 0x00f7, + 0x2010, 0x2027, + 0x2030, 0x203e, + 0x2041, 0x2053, + 0x2055, 0x205e, + 0x2190, 0x245f, + 0x2500, 0x2775, + 0x2794, 0x2bff, + 0x2e00, 0x2e7f, + 0x3001, 0x3003, + 0x3008, 0x3020, + 0x3030, 0x3030, + 0xfd3e, 0xfd3f, + 0xfe45, 0xfe46, +}; /* CR_Pattern_Syntax */ + +/* 'Prepended_Concatenation_Mark': Binary Property */ +static const OnigCodePoint CR_Prepended_Concatenation_Mark[] = { + 7, + 0x0600, 0x0605, + 0x06dd, 0x06dd, + 0x070f, 0x070f, + 0x0890, 0x0891, + 0x08e2, 0x08e2, + 0x110bd, 0x110bd, + 0x110cd, 0x110cd, +}; /* CR_Prepended_Concatenation_Mark */ + +/* 'Regional_Indicator': Binary Property */ +static const OnigCodePoint CR_Regional_Indicator[] = { + 1, + 0x1f1e6, 0x1f1ff, +}; /* CR_Regional_Indicator */ + +/* 'Emoji': Emoji */ +static const OnigCodePoint CR_Emoji[] = { + 151, + 0x0023, 0x0023, + 0x002a, 0x002a, + 0x0030, 0x0039, + 0x00a9, 0x00a9, + 0x00ae, 0x00ae, + 0x203c, 0x203c, + 0x2049, 0x2049, + 0x2122, 0x2122, + 0x2139, 0x2139, + 0x2194, 0x2199, + 0x21a9, 0x21aa, + 0x231a, 0x231b, + 0x2328, 0x2328, + 0x23cf, 0x23cf, + 0x23e9, 0x23f3, + 0x23f8, 0x23fa, + 0x24c2, 0x24c2, + 0x25aa, 0x25ab, + 0x25b6, 0x25b6, + 0x25c0, 0x25c0, + 0x25fb, 0x25fe, + 0x2600, 0x2604, + 0x260e, 0x260e, + 0x2611, 0x2611, + 0x2614, 0x2615, + 0x2618, 0x2618, + 0x261d, 0x261d, + 0x2620, 0x2620, + 0x2622, 0x2623, + 0x2626, 0x2626, + 0x262a, 0x262a, + 0x262e, 0x262f, + 0x2638, 0x263a, + 0x2640, 0x2640, + 0x2642, 0x2642, + 0x2648, 0x2653, + 0x265f, 0x2660, + 0x2663, 0x2663, + 0x2665, 0x2666, + 0x2668, 0x2668, + 0x267b, 0x267b, + 0x267e, 0x267f, + 0x2692, 0x2697, + 0x2699, 0x2699, + 0x269b, 0x269c, + 0x26a0, 0x26a1, + 0x26a7, 0x26a7, + 0x26aa, 0x26ab, + 0x26b0, 0x26b1, + 0x26bd, 0x26be, + 0x26c4, 0x26c5, + 0x26c8, 0x26c8, + 0x26ce, 0x26cf, + 0x26d1, 0x26d1, + 0x26d3, 0x26d4, + 0x26e9, 0x26ea, + 0x26f0, 0x26f5, + 0x26f7, 0x26fa, + 0x26fd, 0x26fd, + 0x2702, 0x2702, + 0x2705, 0x2705, + 0x2708, 0x270d, + 0x270f, 0x270f, + 0x2712, 0x2712, + 0x2714, 0x2714, + 0x2716, 0x2716, + 0x271d, 0x271d, + 0x2721, 0x2721, + 0x2728, 0x2728, + 0x2733, 0x2734, + 0x2744, 0x2744, + 0x2747, 0x2747, + 0x274c, 0x274c, + 0x274e, 0x274e, + 0x2753, 0x2755, + 0x2757, 0x2757, + 0x2763, 0x2764, + 0x2795, 0x2797, + 0x27a1, 0x27a1, + 0x27b0, 0x27b0, + 0x27bf, 0x27bf, + 0x2934, 0x2935, + 0x2b05, 0x2b07, + 0x2b1b, 0x2b1c, + 0x2b50, 0x2b50, + 0x2b55, 0x2b55, + 0x3030, 0x3030, + 0x303d, 0x303d, + 0x3297, 0x3297, + 0x3299, 0x3299, + 0x1f004, 0x1f004, + 0x1f0cf, 0x1f0cf, + 0x1f170, 0x1f171, + 0x1f17e, 0x1f17f, + 0x1f18e, 0x1f18e, + 0x1f191, 0x1f19a, + 0x1f1e6, 0x1f1ff, + 0x1f201, 0x1f202, + 0x1f21a, 0x1f21a, + 0x1f22f, 0x1f22f, + 0x1f232, 0x1f23a, + 0x1f250, 0x1f251, + 0x1f300, 0x1f321, + 0x1f324, 0x1f393, + 0x1f396, 0x1f397, + 0x1f399, 0x1f39b, + 0x1f39e, 0x1f3f0, + 0x1f3f3, 0x1f3f5, + 0x1f3f7, 0x1f4fd, + 0x1f4ff, 0x1f53d, + 0x1f549, 0x1f54e, + 0x1f550, 0x1f567, + 0x1f56f, 0x1f570, + 0x1f573, 0x1f57a, + 0x1f587, 0x1f587, + 0x1f58a, 0x1f58d, + 0x1f590, 0x1f590, + 0x1f595, 0x1f596, + 0x1f5a4, 0x1f5a5, + 0x1f5a8, 0x1f5a8, + 0x1f5b1, 0x1f5b2, + 0x1f5bc, 0x1f5bc, + 0x1f5c2, 0x1f5c4, + 0x1f5d1, 0x1f5d3, + 0x1f5dc, 0x1f5de, + 0x1f5e1, 0x1f5e1, + 0x1f5e3, 0x1f5e3, + 0x1f5e8, 0x1f5e8, + 0x1f5ef, 0x1f5ef, + 0x1f5f3, 0x1f5f3, + 0x1f5fa, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f6cb, 0x1f6d2, + 0x1f6d5, 0x1f6d7, + 0x1f6dc, 0x1f6e5, + 0x1f6e9, 0x1f6e9, + 0x1f6eb, 0x1f6ec, + 0x1f6f0, 0x1f6f0, + 0x1f6f3, 0x1f6fc, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f90c, 0x1f93a, + 0x1f93c, 0x1f945, + 0x1f947, 0x1f9ff, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, +}; /* CR_Emoji */ + +/* 'Emoji_Presentation': Emoji */ +static const OnigCodePoint CR_Emoji_Presentation[] = { + 81, + 0x231a, 0x231b, + 0x23e9, 0x23ec, + 0x23f0, 0x23f0, + 0x23f3, 0x23f3, + 0x25fd, 0x25fe, + 0x2614, 0x2615, + 0x2648, 0x2653, + 0x267f, 0x267f, + 0x2693, 0x2693, + 0x26a1, 0x26a1, + 0x26aa, 0x26ab, + 0x26bd, 0x26be, + 0x26c4, 0x26c5, + 0x26ce, 0x26ce, + 0x26d4, 0x26d4, + 0x26ea, 0x26ea, + 0x26f2, 0x26f3, + 0x26f5, 0x26f5, + 0x26fa, 0x26fa, + 0x26fd, 0x26fd, + 0x2705, 0x2705, + 0x270a, 0x270b, + 0x2728, 0x2728, + 0x274c, 0x274c, + 0x274e, 0x274e, + 0x2753, 0x2755, + 0x2757, 0x2757, + 0x2795, 0x2797, + 0x27b0, 0x27b0, + 0x27bf, 0x27bf, + 0x2b1b, 0x2b1c, + 0x2b50, 0x2b50, + 0x2b55, 0x2b55, + 0x1f004, 0x1f004, + 0x1f0cf, 0x1f0cf, + 0x1f18e, 0x1f18e, + 0x1f191, 0x1f19a, + 0x1f1e6, 0x1f1ff, + 0x1f201, 0x1f201, + 0x1f21a, 0x1f21a, + 0x1f22f, 0x1f22f, + 0x1f232, 0x1f236, + 0x1f238, 0x1f23a, + 0x1f250, 0x1f251, + 0x1f300, 0x1f320, + 0x1f32d, 0x1f335, + 0x1f337, 0x1f37c, + 0x1f37e, 0x1f393, + 0x1f3a0, 0x1f3ca, + 0x1f3cf, 0x1f3d3, + 0x1f3e0, 0x1f3f0, + 0x1f3f4, 0x1f3f4, + 0x1f3f8, 0x1f43e, + 0x1f440, 0x1f440, + 0x1f442, 0x1f4fc, + 0x1f4ff, 0x1f53d, + 0x1f54b, 0x1f54e, + 0x1f550, 0x1f567, + 0x1f57a, 0x1f57a, + 0x1f595, 0x1f596, + 0x1f5a4, 0x1f5a4, + 0x1f5fb, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f6cc, 0x1f6cc, + 0x1f6d0, 0x1f6d2, + 0x1f6d5, 0x1f6d7, + 0x1f6dc, 0x1f6df, + 0x1f6eb, 0x1f6ec, + 0x1f6f4, 0x1f6fc, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f90c, 0x1f93a, + 0x1f93c, 0x1f945, + 0x1f947, 0x1f9ff, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, +}; /* CR_Emoji_Presentation */ + +/* 'Emoji_Modifier': Emoji */ +static const OnigCodePoint CR_Emoji_Modifier[] = { + 1, + 0x1f3fb, 0x1f3ff, +}; /* CR_Emoji_Modifier */ + +/* 'Emoji_Modifier_Base': Emoji */ +static const OnigCodePoint CR_Emoji_Modifier_Base[] = { + 40, + 0x261d, 0x261d, + 0x26f9, 0x26f9, + 0x270a, 0x270d, + 0x1f385, 0x1f385, + 0x1f3c2, 0x1f3c4, + 0x1f3c7, 0x1f3c7, + 0x1f3ca, 0x1f3cc, + 0x1f442, 0x1f443, + 0x1f446, 0x1f450, + 0x1f466, 0x1f478, + 0x1f47c, 0x1f47c, + 0x1f481, 0x1f483, + 0x1f485, 0x1f487, + 0x1f48f, 0x1f48f, + 0x1f491, 0x1f491, + 0x1f4aa, 0x1f4aa, + 0x1f574, 0x1f575, + 0x1f57a, 0x1f57a, + 0x1f590, 0x1f590, + 0x1f595, 0x1f596, + 0x1f645, 0x1f647, + 0x1f64b, 0x1f64f, + 0x1f6a3, 0x1f6a3, + 0x1f6b4, 0x1f6b6, + 0x1f6c0, 0x1f6c0, + 0x1f6cc, 0x1f6cc, + 0x1f90c, 0x1f90c, + 0x1f90f, 0x1f90f, + 0x1f918, 0x1f91f, + 0x1f926, 0x1f926, + 0x1f930, 0x1f939, + 0x1f93c, 0x1f93e, + 0x1f977, 0x1f977, + 0x1f9b5, 0x1f9b6, + 0x1f9b8, 0x1f9b9, + 0x1f9bb, 0x1f9bb, + 0x1f9cd, 0x1f9cf, + 0x1f9d1, 0x1f9dd, + 0x1fac3, 0x1fac5, + 0x1faf0, 0x1faf8, +}; /* CR_Emoji_Modifier_Base */ + +/* 'Emoji_Component': Emoji */ +static const OnigCodePoint CR_Emoji_Component[] = { + 10, + 0x0023, 0x0023, + 0x002a, 0x002a, + 0x0030, 0x0039, + 0x200d, 0x200d, + 0x20e3, 0x20e3, + 0xfe0f, 0xfe0f, + 0x1f1e6, 0x1f1ff, + 0x1f3fb, 0x1f3ff, + 0x1f9b0, 0x1f9b3, + 0xe0020, 0xe007f, +}; /* CR_Emoji_Component */ + +/* 'Extended_Pictographic': Emoji */ +static const OnigCodePoint CR_Extended_Pictographic[] = { + 78, + 0x00a9, 0x00a9, + 0x00ae, 0x00ae, + 0x203c, 0x203c, + 0x2049, 0x2049, + 0x2122, 0x2122, + 0x2139, 0x2139, + 0x2194, 0x2199, + 0x21a9, 0x21aa, + 0x231a, 0x231b, + 0x2328, 0x2328, + 0x2388, 0x2388, + 0x23cf, 0x23cf, + 0x23e9, 0x23f3, + 0x23f8, 0x23fa, + 0x24c2, 0x24c2, + 0x25aa, 0x25ab, + 0x25b6, 0x25b6, + 0x25c0, 0x25c0, + 0x25fb, 0x25fe, + 0x2600, 0x2605, + 0x2607, 0x2612, + 0x2614, 0x2685, + 0x2690, 0x2705, + 0x2708, 0x2712, + 0x2714, 0x2714, + 0x2716, 0x2716, + 0x271d, 0x271d, + 0x2721, 0x2721, + 0x2728, 0x2728, + 0x2733, 0x2734, + 0x2744, 0x2744, + 0x2747, 0x2747, + 0x274c, 0x274c, + 0x274e, 0x274e, + 0x2753, 0x2755, + 0x2757, 0x2757, + 0x2763, 0x2767, + 0x2795, 0x2797, + 0x27a1, 0x27a1, + 0x27b0, 0x27b0, + 0x27bf, 0x27bf, + 0x2934, 0x2935, + 0x2b05, 0x2b07, + 0x2b1b, 0x2b1c, + 0x2b50, 0x2b50, + 0x2b55, 0x2b55, + 0x3030, 0x3030, + 0x303d, 0x303d, + 0x3297, 0x3297, + 0x3299, 0x3299, + 0x1f000, 0x1f0ff, + 0x1f10d, 0x1f10f, + 0x1f12f, 0x1f12f, + 0x1f16c, 0x1f171, + 0x1f17e, 0x1f17f, + 0x1f18e, 0x1f18e, + 0x1f191, 0x1f19a, + 0x1f1ad, 0x1f1e5, + 0x1f201, 0x1f20f, + 0x1f21a, 0x1f21a, + 0x1f22f, 0x1f22f, + 0x1f232, 0x1f23a, + 0x1f23c, 0x1f23f, + 0x1f249, 0x1f3fa, + 0x1f400, 0x1f53d, + 0x1f546, 0x1f64f, + 0x1f680, 0x1f6ff, + 0x1f774, 0x1f77f, + 0x1f7d5, 0x1f7ff, + 0x1f80c, 0x1f80f, + 0x1f848, 0x1f84f, + 0x1f85a, 0x1f85f, + 0x1f888, 0x1f88f, + 0x1f8ae, 0x1f8ff, + 0x1f90c, 0x1f93a, + 0x1f93c, 0x1f945, + 0x1f947, 0x1faff, + 0x1fc00, 0x1fffd, +}; /* CR_Extended_Pictographic */ + +/* 'Unknown': Script */ +static const OnigCodePoint CR_Unknown[] = { + 705, + 0x0378, 0x0379, + 0x0380, 0x0383, + 0x038b, 0x038b, + 0x038d, 0x038d, + 0x03a2, 0x03a2, + 0x0530, 0x0530, + 0x0557, 0x0558, + 0x058b, 0x058c, + 0x0590, 0x0590, + 0x05c8, 0x05cf, + 0x05eb, 0x05ee, + 0x05f5, 0x05ff, + 0x070e, 0x070e, + 0x074b, 0x074c, + 0x07b2, 0x07bf, + 0x07fb, 0x07fc, + 0x082e, 0x082f, + 0x083f, 0x083f, + 0x085c, 0x085d, + 0x085f, 0x085f, + 0x086b, 0x086f, + 0x088f, 0x088f, + 0x0892, 0x0897, + 0x0984, 0x0984, + 0x098d, 0x098e, + 0x0991, 0x0992, + 0x09a9, 0x09a9, + 0x09b1, 0x09b1, + 0x09b3, 0x09b5, + 0x09ba, 0x09bb, + 0x09c5, 0x09c6, + 0x09c9, 0x09ca, + 0x09cf, 0x09d6, + 0x09d8, 0x09db, + 0x09de, 0x09de, + 0x09e4, 0x09e5, + 0x09ff, 0x0a00, + 0x0a04, 0x0a04, + 0x0a0b, 0x0a0e, + 0x0a11, 0x0a12, + 0x0a29, 0x0a29, + 0x0a31, 0x0a31, + 0x0a34, 0x0a34, + 0x0a37, 0x0a37, + 0x0a3a, 0x0a3b, + 0x0a3d, 0x0a3d, + 0x0a43, 0x0a46, + 0x0a49, 0x0a4a, + 0x0a4e, 0x0a50, + 0x0a52, 0x0a58, + 0x0a5d, 0x0a5d, + 0x0a5f, 0x0a65, + 0x0a77, 0x0a80, + 0x0a84, 0x0a84, + 0x0a8e, 0x0a8e, + 0x0a92, 0x0a92, + 0x0aa9, 0x0aa9, + 0x0ab1, 0x0ab1, + 0x0ab4, 0x0ab4, + 0x0aba, 0x0abb, + 0x0ac6, 0x0ac6, + 0x0aca, 0x0aca, + 0x0ace, 0x0acf, + 0x0ad1, 0x0adf, + 0x0ae4, 0x0ae5, + 0x0af2, 0x0af8, + 0x0b00, 0x0b00, + 0x0b04, 0x0b04, + 0x0b0d, 0x0b0e, + 0x0b11, 0x0b12, + 0x0b29, 0x0b29, + 0x0b31, 0x0b31, + 0x0b34, 0x0b34, + 0x0b3a, 0x0b3b, + 0x0b45, 0x0b46, + 0x0b49, 0x0b4a, + 0x0b4e, 0x0b54, + 0x0b58, 0x0b5b, + 0x0b5e, 0x0b5e, + 0x0b64, 0x0b65, + 0x0b78, 0x0b81, + 0x0b84, 0x0b84, + 0x0b8b, 0x0b8d, + 0x0b91, 0x0b91, + 0x0b96, 0x0b98, + 0x0b9b, 0x0b9b, + 0x0b9d, 0x0b9d, + 0x0ba0, 0x0ba2, + 0x0ba5, 0x0ba7, + 0x0bab, 0x0bad, + 0x0bba, 0x0bbd, + 0x0bc3, 0x0bc5, + 0x0bc9, 0x0bc9, + 0x0bce, 0x0bcf, + 0x0bd1, 0x0bd6, + 0x0bd8, 0x0be5, + 0x0bfb, 0x0bff, + 0x0c0d, 0x0c0d, + 0x0c11, 0x0c11, + 0x0c29, 0x0c29, + 0x0c3a, 0x0c3b, + 0x0c45, 0x0c45, + 0x0c49, 0x0c49, + 0x0c4e, 0x0c54, + 0x0c57, 0x0c57, + 0x0c5b, 0x0c5c, + 0x0c5e, 0x0c5f, + 0x0c64, 0x0c65, + 0x0c70, 0x0c76, + 0x0c8d, 0x0c8d, + 0x0c91, 0x0c91, + 0x0ca9, 0x0ca9, + 0x0cb4, 0x0cb4, + 0x0cba, 0x0cbb, + 0x0cc5, 0x0cc5, + 0x0cc9, 0x0cc9, + 0x0cce, 0x0cd4, + 0x0cd7, 0x0cdc, + 0x0cdf, 0x0cdf, + 0x0ce4, 0x0ce5, + 0x0cf0, 0x0cf0, + 0x0cf4, 0x0cff, + 0x0d0d, 0x0d0d, + 0x0d11, 0x0d11, + 0x0d45, 0x0d45, + 0x0d49, 0x0d49, + 0x0d50, 0x0d53, + 0x0d64, 0x0d65, + 0x0d80, 0x0d80, + 0x0d84, 0x0d84, + 0x0d97, 0x0d99, + 0x0db2, 0x0db2, + 0x0dbc, 0x0dbc, + 0x0dbe, 0x0dbf, + 0x0dc7, 0x0dc9, + 0x0dcb, 0x0dce, + 0x0dd5, 0x0dd5, + 0x0dd7, 0x0dd7, + 0x0de0, 0x0de5, + 0x0df0, 0x0df1, + 0x0df5, 0x0e00, + 0x0e3b, 0x0e3e, + 0x0e5c, 0x0e80, + 0x0e83, 0x0e83, + 0x0e85, 0x0e85, + 0x0e8b, 0x0e8b, + 0x0ea4, 0x0ea4, + 0x0ea6, 0x0ea6, + 0x0ebe, 0x0ebf, + 0x0ec5, 0x0ec5, + 0x0ec7, 0x0ec7, + 0x0ecf, 0x0ecf, + 0x0eda, 0x0edb, + 0x0ee0, 0x0eff, + 0x0f48, 0x0f48, + 0x0f6d, 0x0f70, + 0x0f98, 0x0f98, + 0x0fbd, 0x0fbd, + 0x0fcd, 0x0fcd, + 0x0fdb, 0x0fff, + 0x10c6, 0x10c6, + 0x10c8, 0x10cc, + 0x10ce, 0x10cf, + 0x1249, 0x1249, + 0x124e, 0x124f, + 0x1257, 0x1257, + 0x1259, 0x1259, + 0x125e, 0x125f, + 0x1289, 0x1289, + 0x128e, 0x128f, + 0x12b1, 0x12b1, + 0x12b6, 0x12b7, + 0x12bf, 0x12bf, + 0x12c1, 0x12c1, + 0x12c6, 0x12c7, + 0x12d7, 0x12d7, + 0x1311, 0x1311, + 0x1316, 0x1317, + 0x135b, 0x135c, + 0x137d, 0x137f, + 0x139a, 0x139f, + 0x13f6, 0x13f7, + 0x13fe, 0x13ff, + 0x169d, 0x169f, + 0x16f9, 0x16ff, + 0x1716, 0x171e, + 0x1737, 0x173f, + 0x1754, 0x175f, + 0x176d, 0x176d, + 0x1771, 0x1771, + 0x1774, 0x177f, + 0x17de, 0x17df, + 0x17ea, 0x17ef, + 0x17fa, 0x17ff, + 0x181a, 0x181f, + 0x1879, 0x187f, + 0x18ab, 0x18af, + 0x18f6, 0x18ff, + 0x191f, 0x191f, + 0x192c, 0x192f, + 0x193c, 0x193f, + 0x1941, 0x1943, + 0x196e, 0x196f, + 0x1975, 0x197f, + 0x19ac, 0x19af, + 0x19ca, 0x19cf, + 0x19db, 0x19dd, + 0x1a1c, 0x1a1d, + 0x1a5f, 0x1a5f, + 0x1a7d, 0x1a7e, + 0x1a8a, 0x1a8f, + 0x1a9a, 0x1a9f, + 0x1aae, 0x1aaf, + 0x1acf, 0x1aff, + 0x1b4d, 0x1b4f, + 0x1b7f, 0x1b7f, + 0x1bf4, 0x1bfb, + 0x1c38, 0x1c3a, + 0x1c4a, 0x1c4c, + 0x1c89, 0x1c8f, + 0x1cbb, 0x1cbc, + 0x1cc8, 0x1ccf, + 0x1cfb, 0x1cff, + 0x1f16, 0x1f17, + 0x1f1e, 0x1f1f, + 0x1f46, 0x1f47, + 0x1f4e, 0x1f4f, + 0x1f58, 0x1f58, + 0x1f5a, 0x1f5a, + 0x1f5c, 0x1f5c, + 0x1f5e, 0x1f5e, + 0x1f7e, 0x1f7f, + 0x1fb5, 0x1fb5, + 0x1fc5, 0x1fc5, + 0x1fd4, 0x1fd5, + 0x1fdc, 0x1fdc, + 0x1ff0, 0x1ff1, + 0x1ff5, 0x1ff5, + 0x1fff, 0x1fff, + 0x2065, 0x2065, + 0x2072, 0x2073, + 0x208f, 0x208f, + 0x209d, 0x209f, + 0x20c1, 0x20cf, + 0x20f1, 0x20ff, + 0x218c, 0x218f, + 0x2427, 0x243f, + 0x244b, 0x245f, + 0x2b74, 0x2b75, + 0x2b96, 0x2b96, + 0x2cf4, 0x2cf8, + 0x2d26, 0x2d26, + 0x2d28, 0x2d2c, + 0x2d2e, 0x2d2f, + 0x2d68, 0x2d6e, + 0x2d71, 0x2d7e, + 0x2d97, 0x2d9f, + 0x2da7, 0x2da7, + 0x2daf, 0x2daf, + 0x2db7, 0x2db7, + 0x2dbf, 0x2dbf, + 0x2dc7, 0x2dc7, + 0x2dcf, 0x2dcf, + 0x2dd7, 0x2dd7, + 0x2ddf, 0x2ddf, + 0x2e5e, 0x2e7f, + 0x2e9a, 0x2e9a, + 0x2ef4, 0x2eff, + 0x2fd6, 0x2fef, + 0x2ffc, 0x2fff, + 0x3040, 0x3040, + 0x3097, 0x3098, + 0x3100, 0x3104, + 0x3130, 0x3130, + 0x318f, 0x318f, + 0x31e4, 0x31ef, + 0x321f, 0x321f, + 0xa48d, 0xa48f, + 0xa4c7, 0xa4cf, + 0xa62c, 0xa63f, + 0xa6f8, 0xa6ff, + 0xa7cb, 0xa7cf, + 0xa7d2, 0xa7d2, + 0xa7d4, 0xa7d4, + 0xa7da, 0xa7f1, + 0xa82d, 0xa82f, + 0xa83a, 0xa83f, + 0xa878, 0xa87f, + 0xa8c6, 0xa8cd, + 0xa8da, 0xa8df, + 0xa954, 0xa95e, + 0xa97d, 0xa97f, + 0xa9ce, 0xa9ce, + 0xa9da, 0xa9dd, + 0xa9ff, 0xa9ff, + 0xaa37, 0xaa3f, + 0xaa4e, 0xaa4f, + 0xaa5a, 0xaa5b, + 0xaac3, 0xaada, + 0xaaf7, 0xab00, + 0xab07, 0xab08, + 0xab0f, 0xab10, + 0xab17, 0xab1f, + 0xab27, 0xab27, + 0xab2f, 0xab2f, + 0xab6c, 0xab6f, + 0xabee, 0xabef, + 0xabfa, 0xabff, + 0xd7a4, 0xd7af, + 0xd7c7, 0xd7ca, + 0xd7fc, 0xf8ff, + 0xfa6e, 0xfa6f, + 0xfada, 0xfaff, + 0xfb07, 0xfb12, + 0xfb18, 0xfb1c, + 0xfb37, 0xfb37, + 0xfb3d, 0xfb3d, + 0xfb3f, 0xfb3f, + 0xfb42, 0xfb42, + 0xfb45, 0xfb45, + 0xfbc3, 0xfbd2, + 0xfd90, 0xfd91, + 0xfdc8, 0xfdce, + 0xfdd0, 0xfdef, + 0xfe1a, 0xfe1f, + 0xfe53, 0xfe53, + 0xfe67, 0xfe67, + 0xfe6c, 0xfe6f, + 0xfe75, 0xfe75, + 0xfefd, 0xfefe, + 0xff00, 0xff00, + 0xffbf, 0xffc1, + 0xffc8, 0xffc9, + 0xffd0, 0xffd1, + 0xffd8, 0xffd9, + 0xffdd, 0xffdf, + 0xffe7, 0xffe7, + 0xffef, 0xfff8, + 0xfffe, 0xffff, + 0x1000c, 0x1000c, + 0x10027, 0x10027, + 0x1003b, 0x1003b, + 0x1003e, 0x1003e, + 0x1004e, 0x1004f, + 0x1005e, 0x1007f, + 0x100fb, 0x100ff, + 0x10103, 0x10106, + 0x10134, 0x10136, + 0x1018f, 0x1018f, + 0x1019d, 0x1019f, + 0x101a1, 0x101cf, + 0x101fe, 0x1027f, + 0x1029d, 0x1029f, + 0x102d1, 0x102df, + 0x102fc, 0x102ff, + 0x10324, 0x1032c, + 0x1034b, 0x1034f, + 0x1037b, 0x1037f, + 0x1039e, 0x1039e, + 0x103c4, 0x103c7, + 0x103d6, 0x103ff, + 0x1049e, 0x1049f, + 0x104aa, 0x104af, + 0x104d4, 0x104d7, + 0x104fc, 0x104ff, + 0x10528, 0x1052f, + 0x10564, 0x1056e, + 0x1057b, 0x1057b, + 0x1058b, 0x1058b, + 0x10593, 0x10593, + 0x10596, 0x10596, + 0x105a2, 0x105a2, + 0x105b2, 0x105b2, + 0x105ba, 0x105ba, + 0x105bd, 0x105ff, + 0x10737, 0x1073f, + 0x10756, 0x1075f, + 0x10768, 0x1077f, + 0x10786, 0x10786, + 0x107b1, 0x107b1, + 0x107bb, 0x107ff, + 0x10806, 0x10807, + 0x10809, 0x10809, + 0x10836, 0x10836, + 0x10839, 0x1083b, + 0x1083d, 0x1083e, + 0x10856, 0x10856, + 0x1089f, 0x108a6, + 0x108b0, 0x108df, + 0x108f3, 0x108f3, + 0x108f6, 0x108fa, + 0x1091c, 0x1091e, + 0x1093a, 0x1093e, + 0x10940, 0x1097f, + 0x109b8, 0x109bb, + 0x109d0, 0x109d1, + 0x10a04, 0x10a04, + 0x10a07, 0x10a0b, + 0x10a14, 0x10a14, + 0x10a18, 0x10a18, + 0x10a36, 0x10a37, + 0x10a3b, 0x10a3e, + 0x10a49, 0x10a4f, + 0x10a59, 0x10a5f, + 0x10aa0, 0x10abf, + 0x10ae7, 0x10aea, + 0x10af7, 0x10aff, + 0x10b36, 0x10b38, + 0x10b56, 0x10b57, + 0x10b73, 0x10b77, + 0x10b92, 0x10b98, + 0x10b9d, 0x10ba8, + 0x10bb0, 0x10bff, + 0x10c49, 0x10c7f, + 0x10cb3, 0x10cbf, + 0x10cf3, 0x10cf9, + 0x10d28, 0x10d2f, + 0x10d3a, 0x10e5f, + 0x10e7f, 0x10e7f, + 0x10eaa, 0x10eaa, + 0x10eae, 0x10eaf, + 0x10eb2, 0x10efc, + 0x10f28, 0x10f2f, + 0x10f5a, 0x10f6f, + 0x10f8a, 0x10faf, + 0x10fcc, 0x10fdf, + 0x10ff7, 0x10fff, + 0x1104e, 0x11051, + 0x11076, 0x1107e, + 0x110c3, 0x110cc, + 0x110ce, 0x110cf, + 0x110e9, 0x110ef, + 0x110fa, 0x110ff, + 0x11135, 0x11135, + 0x11148, 0x1114f, + 0x11177, 0x1117f, + 0x111e0, 0x111e0, + 0x111f5, 0x111ff, + 0x11212, 0x11212, + 0x11242, 0x1127f, + 0x11287, 0x11287, + 0x11289, 0x11289, + 0x1128e, 0x1128e, + 0x1129e, 0x1129e, + 0x112aa, 0x112af, + 0x112eb, 0x112ef, + 0x112fa, 0x112ff, + 0x11304, 0x11304, + 0x1130d, 0x1130e, + 0x11311, 0x11312, + 0x11329, 0x11329, + 0x11331, 0x11331, + 0x11334, 0x11334, + 0x1133a, 0x1133a, + 0x11345, 0x11346, + 0x11349, 0x1134a, + 0x1134e, 0x1134f, + 0x11351, 0x11356, + 0x11358, 0x1135c, + 0x11364, 0x11365, + 0x1136d, 0x1136f, + 0x11375, 0x113ff, + 0x1145c, 0x1145c, + 0x11462, 0x1147f, + 0x114c8, 0x114cf, + 0x114da, 0x1157f, + 0x115b6, 0x115b7, + 0x115de, 0x115ff, + 0x11645, 0x1164f, + 0x1165a, 0x1165f, + 0x1166d, 0x1167f, + 0x116ba, 0x116bf, + 0x116ca, 0x116ff, + 0x1171b, 0x1171c, + 0x1172c, 0x1172f, + 0x11747, 0x117ff, + 0x1183c, 0x1189f, + 0x118f3, 0x118fe, + 0x11907, 0x11908, + 0x1190a, 0x1190b, + 0x11914, 0x11914, + 0x11917, 0x11917, + 0x11936, 0x11936, + 0x11939, 0x1193a, + 0x11947, 0x1194f, + 0x1195a, 0x1199f, + 0x119a8, 0x119a9, + 0x119d8, 0x119d9, + 0x119e5, 0x119ff, + 0x11a48, 0x11a4f, + 0x11aa3, 0x11aaf, + 0x11af9, 0x11aff, + 0x11b0a, 0x11bff, + 0x11c09, 0x11c09, + 0x11c37, 0x11c37, + 0x11c46, 0x11c4f, + 0x11c6d, 0x11c6f, + 0x11c90, 0x11c91, + 0x11ca8, 0x11ca8, + 0x11cb7, 0x11cff, + 0x11d07, 0x11d07, + 0x11d0a, 0x11d0a, + 0x11d37, 0x11d39, + 0x11d3b, 0x11d3b, + 0x11d3e, 0x11d3e, + 0x11d48, 0x11d4f, + 0x11d5a, 0x11d5f, + 0x11d66, 0x11d66, + 0x11d69, 0x11d69, + 0x11d8f, 0x11d8f, + 0x11d92, 0x11d92, + 0x11d99, 0x11d9f, + 0x11daa, 0x11edf, + 0x11ef9, 0x11eff, + 0x11f11, 0x11f11, + 0x11f3b, 0x11f3d, + 0x11f5a, 0x11faf, + 0x11fb1, 0x11fbf, + 0x11ff2, 0x11ffe, + 0x1239a, 0x123ff, + 0x1246f, 0x1246f, + 0x12475, 0x1247f, + 0x12544, 0x12f8f, + 0x12ff3, 0x12fff, + 0x13456, 0x143ff, + 0x14647, 0x167ff, + 0x16a39, 0x16a3f, + 0x16a5f, 0x16a5f, + 0x16a6a, 0x16a6d, + 0x16abf, 0x16abf, + 0x16aca, 0x16acf, + 0x16aee, 0x16aef, + 0x16af6, 0x16aff, + 0x16b46, 0x16b4f, + 0x16b5a, 0x16b5a, + 0x16b62, 0x16b62, + 0x16b78, 0x16b7c, + 0x16b90, 0x16e3f, + 0x16e9b, 0x16eff, + 0x16f4b, 0x16f4e, + 0x16f88, 0x16f8e, + 0x16fa0, 0x16fdf, + 0x16fe5, 0x16fef, + 0x16ff2, 0x16fff, + 0x187f8, 0x187ff, + 0x18cd6, 0x18cff, + 0x18d09, 0x1afef, + 0x1aff4, 0x1aff4, + 0x1affc, 0x1affc, + 0x1afff, 0x1afff, + 0x1b123, 0x1b131, + 0x1b133, 0x1b14f, + 0x1b153, 0x1b154, + 0x1b156, 0x1b163, + 0x1b168, 0x1b16f, + 0x1b2fc, 0x1bbff, + 0x1bc6b, 0x1bc6f, + 0x1bc7d, 0x1bc7f, + 0x1bc89, 0x1bc8f, + 0x1bc9a, 0x1bc9b, + 0x1bca4, 0x1ceff, + 0x1cf2e, 0x1cf2f, + 0x1cf47, 0x1cf4f, + 0x1cfc4, 0x1cfff, + 0x1d0f6, 0x1d0ff, + 0x1d127, 0x1d128, + 0x1d1eb, 0x1d1ff, + 0x1d246, 0x1d2bf, + 0x1d2d4, 0x1d2df, + 0x1d2f4, 0x1d2ff, + 0x1d357, 0x1d35f, + 0x1d379, 0x1d3ff, + 0x1d455, 0x1d455, + 0x1d49d, 0x1d49d, + 0x1d4a0, 0x1d4a1, + 0x1d4a3, 0x1d4a4, + 0x1d4a7, 0x1d4a8, + 0x1d4ad, 0x1d4ad, + 0x1d4ba, 0x1d4ba, + 0x1d4bc, 0x1d4bc, + 0x1d4c4, 0x1d4c4, + 0x1d506, 0x1d506, + 0x1d50b, 0x1d50c, + 0x1d515, 0x1d515, + 0x1d51d, 0x1d51d, + 0x1d53a, 0x1d53a, + 0x1d53f, 0x1d53f, + 0x1d545, 0x1d545, + 0x1d547, 0x1d549, + 0x1d551, 0x1d551, + 0x1d6a6, 0x1d6a7, + 0x1d7cc, 0x1d7cd, + 0x1da8c, 0x1da9a, + 0x1daa0, 0x1daa0, + 0x1dab0, 0x1deff, + 0x1df1f, 0x1df24, + 0x1df2b, 0x1dfff, + 0x1e007, 0x1e007, + 0x1e019, 0x1e01a, + 0x1e022, 0x1e022, + 0x1e025, 0x1e025, + 0x1e02b, 0x1e02f, + 0x1e06e, 0x1e08e, + 0x1e090, 0x1e0ff, + 0x1e12d, 0x1e12f, + 0x1e13e, 0x1e13f, + 0x1e14a, 0x1e14d, + 0x1e150, 0x1e28f, + 0x1e2af, 0x1e2bf, + 0x1e2fa, 0x1e2fe, + 0x1e300, 0x1e4cf, + 0x1e4fa, 0x1e7df, + 0x1e7e7, 0x1e7e7, + 0x1e7ec, 0x1e7ec, + 0x1e7ef, 0x1e7ef, + 0x1e7ff, 0x1e7ff, + 0x1e8c5, 0x1e8c6, + 0x1e8d7, 0x1e8ff, + 0x1e94c, 0x1e94f, + 0x1e95a, 0x1e95d, + 0x1e960, 0x1ec70, + 0x1ecb5, 0x1ed00, + 0x1ed3e, 0x1edff, + 0x1ee04, 0x1ee04, + 0x1ee20, 0x1ee20, + 0x1ee23, 0x1ee23, + 0x1ee25, 0x1ee26, + 0x1ee28, 0x1ee28, + 0x1ee33, 0x1ee33, + 0x1ee38, 0x1ee38, + 0x1ee3a, 0x1ee3a, + 0x1ee3c, 0x1ee41, + 0x1ee43, 0x1ee46, + 0x1ee48, 0x1ee48, + 0x1ee4a, 0x1ee4a, + 0x1ee4c, 0x1ee4c, + 0x1ee50, 0x1ee50, + 0x1ee53, 0x1ee53, + 0x1ee55, 0x1ee56, + 0x1ee58, 0x1ee58, + 0x1ee5a, 0x1ee5a, + 0x1ee5c, 0x1ee5c, + 0x1ee5e, 0x1ee5e, + 0x1ee60, 0x1ee60, + 0x1ee63, 0x1ee63, + 0x1ee65, 0x1ee66, + 0x1ee6b, 0x1ee6b, + 0x1ee73, 0x1ee73, + 0x1ee78, 0x1ee78, + 0x1ee7d, 0x1ee7d, + 0x1ee7f, 0x1ee7f, + 0x1ee8a, 0x1ee8a, + 0x1ee9c, 0x1eea0, + 0x1eea4, 0x1eea4, + 0x1eeaa, 0x1eeaa, + 0x1eebc, 0x1eeef, + 0x1eef2, 0x1efff, + 0x1f02c, 0x1f02f, + 0x1f094, 0x1f09f, + 0x1f0af, 0x1f0b0, + 0x1f0c0, 0x1f0c0, + 0x1f0d0, 0x1f0d0, + 0x1f0f6, 0x1f0ff, + 0x1f1ae, 0x1f1e5, + 0x1f203, 0x1f20f, + 0x1f23c, 0x1f23f, + 0x1f249, 0x1f24f, + 0x1f252, 0x1f25f, + 0x1f266, 0x1f2ff, + 0x1f6d8, 0x1f6db, + 0x1f6ed, 0x1f6ef, + 0x1f6fd, 0x1f6ff, + 0x1f777, 0x1f77a, + 0x1f7da, 0x1f7df, + 0x1f7ec, 0x1f7ef, + 0x1f7f1, 0x1f7ff, + 0x1f80c, 0x1f80f, + 0x1f848, 0x1f84f, + 0x1f85a, 0x1f85f, + 0x1f888, 0x1f88f, + 0x1f8ae, 0x1f8af, + 0x1f8b2, 0x1f8ff, + 0x1fa54, 0x1fa5f, + 0x1fa6e, 0x1fa6f, + 0x1fa7d, 0x1fa7f, + 0x1fa89, 0x1fa8f, + 0x1fabe, 0x1fabe, + 0x1fac6, 0x1facd, + 0x1fadc, 0x1fadf, + 0x1fae9, 0x1faef, + 0x1faf9, 0x1faff, + 0x1fb93, 0x1fb93, + 0x1fbcb, 0x1fbef, + 0x1fbfa, 0x1ffff, + 0x2a6e0, 0x2a6ff, + 0x2b73a, 0x2b73f, + 0x2b81e, 0x2b81f, + 0x2cea2, 0x2ceaf, + 0x2ebe1, 0x2f7ff, + 0x2fa1e, 0x2ffff, + 0x3134b, 0x3134f, + 0x323b0, 0xe0000, + 0xe0002, 0xe001f, + 0xe0080, 0xe00ff, + 0xe01f0, 0x10ffff, +}; /* CR_Unknown */ + +#ifdef USE_UNICODE_AGE_PROPERTIES +/* 'Age_1_1': Derived Age 1.1 */ +static const OnigCodePoint CR_Age_1_1[] = { + 288, + 0x0000, 0x01f5, + 0x01fa, 0x0217, + 0x0250, 0x02a8, + 0x02b0, 0x02de, + 0x02e0, 0x02e9, + 0x0300, 0x0345, + 0x0360, 0x0361, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03d6, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03f3, + 0x0401, 0x040c, + 0x040e, 0x044f, + 0x0451, 0x045c, + 0x045e, 0x0486, + 0x0490, 0x04c4, + 0x04c7, 0x04c8, + 0x04cb, 0x04cc, + 0x04d0, 0x04eb, + 0x04ee, 0x04f5, + 0x04f8, 0x04f9, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x0589, + 0x05b0, 0x05b9, + 0x05bb, 0x05c3, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0652, + 0x0660, 0x066d, + 0x0670, 0x06b7, + 0x06ba, 0x06be, + 0x06c0, 0x06ce, + 0x06d0, 0x06ed, + 0x06f0, 0x06f9, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x10a0, 0x10c5, + 0x10d0, 0x10f6, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1e00, 0x1e9a, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x202e, + 0x2030, 0x2046, + 0x206a, 0x2070, + 0x2074, 0x208e, + 0x20a0, 0x20aa, + 0x20d0, 0x20e1, + 0x2100, 0x2138, + 0x2153, 0x2182, + 0x2190, 0x21ea, + 0x2200, 0x22f1, + 0x2300, 0x2300, + 0x2302, 0x237a, + 0x2400, 0x2424, + 0x2440, 0x244a, + 0x2460, 0x24ea, + 0x2500, 0x2595, + 0x25a0, 0x25ef, + 0x2600, 0x2613, + 0x261a, 0x266f, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2767, + 0x2776, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x3000, 0x3037, + 0x303f, 0x303f, + 0x3041, 0x3094, + 0x3099, 0x309e, + 0x30a1, 0x30fe, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x319f, + 0x3200, 0x321c, + 0x3220, 0x3243, + 0x3260, 0x327b, + 0x327f, 0x32b0, + 0x32c0, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x4e00, 0x9fa5, + 0xe000, 0xfa2d, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1e, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe20, 0xfe23, + 0xfe30, 0xfe44, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe72, + 0xfe74, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xff5e, + 0xff61, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfffd, 0xffff, +}; /* CR_Age_1_1 */ + +/* 'Age_2_0': Derived Age 2.0 */ +static const OnigCodePoint CR_Age_2_0[] = { + 312, + 0x0000, 0x01f5, + 0x01fa, 0x0217, + 0x0250, 0x02a8, + 0x02b0, 0x02de, + 0x02e0, 0x02e9, + 0x0300, 0x0345, + 0x0360, 0x0361, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03d6, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03f3, + 0x0401, 0x040c, + 0x040e, 0x044f, + 0x0451, 0x045c, + 0x045e, 0x0486, + 0x0490, 0x04c4, + 0x04c7, 0x04c8, + 0x04cb, 0x04cc, + 0x04d0, 0x04eb, + 0x04ee, 0x04f5, + 0x04f8, 0x04f9, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x0589, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0652, + 0x0660, 0x066d, + 0x0670, 0x06b7, + 0x06ba, 0x06be, + 0x06c0, 0x06ce, + 0x06d0, 0x06ed, + 0x06f0, 0x06f9, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f69, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f95, + 0x0f97, 0x0f97, + 0x0f99, 0x0fad, + 0x0fb1, 0x0fb7, + 0x0fb9, 0x0fb9, + 0x10a0, 0x10c5, + 0x10d0, 0x10f6, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x202e, + 0x2030, 0x2046, + 0x206a, 0x2070, + 0x2074, 0x208e, + 0x20a0, 0x20ab, + 0x20d0, 0x20e1, + 0x2100, 0x2138, + 0x2153, 0x2182, + 0x2190, 0x21ea, + 0x2200, 0x22f1, + 0x2300, 0x2300, + 0x2302, 0x237a, + 0x2400, 0x2424, + 0x2440, 0x244a, + 0x2460, 0x24ea, + 0x2500, 0x2595, + 0x25a0, 0x25ef, + 0x2600, 0x2613, + 0x261a, 0x266f, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2767, + 0x2776, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x3000, 0x3037, + 0x303f, 0x303f, + 0x3041, 0x3094, + 0x3099, 0x309e, + 0x30a1, 0x30fe, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x319f, + 0x3200, 0x321c, + 0x3220, 0x3243, + 0x3260, 0x327b, + 0x327f, 0x32b0, + 0x32c0, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x4e00, 0x9fa5, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1e, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe20, 0xfe23, + 0xfe30, 0xfe44, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe72, + 0xfe74, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xff5e, + 0xff61, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfffd, 0xffff, + 0x1fffe, 0x1ffff, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xefffe, 0x10ffff, +}; /* CR_Age_2_0 */ + +/* 'Age_2_1': Derived Age 2.1 */ +static const OnigCodePoint CR_Age_2_1[] = { + 312, + 0x0000, 0x01f5, + 0x01fa, 0x0217, + 0x0250, 0x02a8, + 0x02b0, 0x02de, + 0x02e0, 0x02e9, + 0x0300, 0x0345, + 0x0360, 0x0361, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03d6, + 0x03da, 0x03da, + 0x03dc, 0x03dc, + 0x03de, 0x03de, + 0x03e0, 0x03e0, + 0x03e2, 0x03f3, + 0x0401, 0x040c, + 0x040e, 0x044f, + 0x0451, 0x045c, + 0x045e, 0x0486, + 0x0490, 0x04c4, + 0x04c7, 0x04c8, + 0x04cb, 0x04cc, + 0x04d0, 0x04eb, + 0x04ee, 0x04f5, + 0x04f8, 0x04f9, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x0589, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0652, + 0x0660, 0x066d, + 0x0670, 0x06b7, + 0x06ba, 0x06be, + 0x06c0, 0x06ce, + 0x06d0, 0x06ed, + 0x06f0, 0x06f9, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f69, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f95, + 0x0f97, 0x0f97, + 0x0f99, 0x0fad, + 0x0fb1, 0x0fb7, + 0x0fb9, 0x0fb9, + 0x10a0, 0x10c5, + 0x10d0, 0x10f6, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x202e, + 0x2030, 0x2046, + 0x206a, 0x2070, + 0x2074, 0x208e, + 0x20a0, 0x20ac, + 0x20d0, 0x20e1, + 0x2100, 0x2138, + 0x2153, 0x2182, + 0x2190, 0x21ea, + 0x2200, 0x22f1, + 0x2300, 0x2300, + 0x2302, 0x237a, + 0x2400, 0x2424, + 0x2440, 0x244a, + 0x2460, 0x24ea, + 0x2500, 0x2595, + 0x25a0, 0x25ef, + 0x2600, 0x2613, + 0x261a, 0x266f, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2767, + 0x2776, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x3000, 0x3037, + 0x303f, 0x303f, + 0x3041, 0x3094, + 0x3099, 0x309e, + 0x30a1, 0x30fe, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x319f, + 0x3200, 0x321c, + 0x3220, 0x3243, + 0x3260, 0x327b, + 0x327f, 0x32b0, + 0x32c0, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x4e00, 0x9fa5, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1e, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe20, 0xfe23, + 0xfe30, 0xfe44, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe72, + 0xfe74, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xff5e, + 0xff61, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfffc, 0xffff, + 0x1fffe, 0x1ffff, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xefffe, 0x10ffff, +}; /* CR_Age_2_1 */ + +/* 'Age_3_0': Derived Age 3.0 */ +static const OnigCodePoint CR_Age_3_0[] = { + 369, + 0x0000, 0x021f, + 0x0222, 0x0233, + 0x0250, 0x02ad, + 0x02b0, 0x02ee, + 0x0300, 0x034e, + 0x0360, 0x0362, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03d7, + 0x03da, 0x03f3, + 0x0400, 0x0486, + 0x0488, 0x0489, + 0x048c, 0x04c4, + 0x04c7, 0x04c8, + 0x04cb, 0x04cc, + 0x04d0, 0x04f5, + 0x04f8, 0x04f9, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0655, + 0x0660, 0x066d, + 0x0670, 0x06ed, + 0x06f0, 0x06fe, + 0x0700, 0x070d, + 0x070f, 0x072c, + 0x0730, 0x074a, + 0x0780, 0x07b0, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fcf, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10f6, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1206, + 0x1208, 0x1246, + 0x1248, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1286, + 0x1288, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12ae, + 0x12b0, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12ce, + 0x12d0, 0x12d6, + 0x12d8, 0x12ee, + 0x12f0, 0x130e, + 0x1310, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x131e, + 0x1320, 0x1346, + 0x1348, 0x135a, + 0x1361, 0x137c, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1780, 0x17dc, + 0x17e0, 0x17e9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2046, + 0x2048, 0x204d, + 0x206a, 0x2070, + 0x2074, 0x208e, + 0x20a0, 0x20af, + 0x20d0, 0x20e3, + 0x2100, 0x213a, + 0x2153, 0x2183, + 0x2190, 0x21f3, + 0x2200, 0x22f1, + 0x2300, 0x237b, + 0x237d, 0x239a, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x24ea, + 0x2500, 0x2595, + 0x25a0, 0x25f7, + 0x2600, 0x2613, + 0x2619, 0x2671, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2767, + 0x2776, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x2800, 0x28ff, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303a, + 0x303e, 0x303f, + 0x3041, 0x3094, + 0x3099, 0x309e, + 0x30a1, 0x30fe, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x3200, 0x321c, + 0x3220, 0x3243, + 0x3260, 0x327b, + 0x327f, 0x32b0, + 0x32c0, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x3400, 0x4db5, + 0x4e00, 0x9fa5, + 0xa000, 0xa48c, + 0xa490, 0xa4a1, + 0xa4a4, 0xa4b3, + 0xa4b5, 0xa4c0, + 0xa4c2, 0xa4c4, + 0xa4c6, 0xa4c6, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdf0, 0xfdfb, + 0xfe20, 0xfe23, + 0xfe30, 0xfe44, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe72, + 0xfe74, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xff5e, + 0xff61, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xffff, + 0x1fffe, 0x1ffff, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xefffe, 0x10ffff, +}; /* CR_Age_3_0 */ + +/* 'Age_3_1': Derived Age 3.1 */ +static const OnigCodePoint CR_Age_3_1[] = { + 402, + 0x0000, 0x021f, + 0x0222, 0x0233, + 0x0250, 0x02ad, + 0x02b0, 0x02ee, + 0x0300, 0x034e, + 0x0360, 0x0362, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03d7, + 0x03da, 0x03f5, + 0x0400, 0x0486, + 0x0488, 0x0489, + 0x048c, 0x04c4, + 0x04c7, 0x04c8, + 0x04cb, 0x04cc, + 0x04d0, 0x04f5, + 0x04f8, 0x04f9, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0655, + 0x0660, 0x066d, + 0x0670, 0x06ed, + 0x06f0, 0x06fe, + 0x0700, 0x070d, + 0x070f, 0x072c, + 0x0730, 0x074a, + 0x0780, 0x07b0, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fcf, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10f6, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1206, + 0x1208, 0x1246, + 0x1248, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1286, + 0x1288, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12ae, + 0x12b0, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12ce, + 0x12d0, 0x12d6, + 0x12d8, 0x12ee, + 0x12f0, 0x130e, + 0x1310, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x131e, + 0x1320, 0x1346, + 0x1348, 0x135a, + 0x1361, 0x137c, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1780, 0x17dc, + 0x17e0, 0x17e9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2046, + 0x2048, 0x204d, + 0x206a, 0x2070, + 0x2074, 0x208e, + 0x20a0, 0x20af, + 0x20d0, 0x20e3, + 0x2100, 0x213a, + 0x2153, 0x2183, + 0x2190, 0x21f3, + 0x2200, 0x22f1, + 0x2300, 0x237b, + 0x237d, 0x239a, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x24ea, + 0x2500, 0x2595, + 0x25a0, 0x25f7, + 0x2600, 0x2613, + 0x2619, 0x2671, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2767, + 0x2776, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x2800, 0x28ff, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303a, + 0x303e, 0x303f, + 0x3041, 0x3094, + 0x3099, 0x309e, + 0x30a1, 0x30fe, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x3200, 0x321c, + 0x3220, 0x3243, + 0x3260, 0x327b, + 0x327f, 0x32b0, + 0x32c0, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x3400, 0x4db5, + 0x4e00, 0x9fa5, + 0xa000, 0xa48c, + 0xa490, 0xa4a1, + 0xa4a4, 0xa4b3, + 0xa4b5, 0xa4c0, + 0xa4c2, 0xa4c4, + 0xa4c6, 0xa4c6, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfb, + 0xfe20, 0xfe23, + 0xfe30, 0xfe44, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe72, + 0xfe74, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xff5e, + 0xff61, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xffff, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10400, 0x10425, + 0x10428, 0x1044d, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d12a, 0x1d1dd, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c0, + 0x1d4c2, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a3, + 0x1d6a8, 0x1d7c9, + 0x1d7ce, 0x1d7ff, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xefffe, 0x10ffff, +}; /* CR_Age_3_1 */ + +/* 'Age_3_2': Derived Age 3.2 */ +static const OnigCodePoint CR_Age_3_2[] = { + 397, + 0x0000, 0x0220, + 0x0222, 0x0233, + 0x0250, 0x02ad, + 0x02b0, 0x02ee, + 0x0300, 0x034f, + 0x0360, 0x036f, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03f6, + 0x0400, 0x0486, + 0x0488, 0x04ce, + 0x04d0, 0x04f5, + 0x04f8, 0x04f9, + 0x0500, 0x050f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x060c, 0x060c, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0655, + 0x0660, 0x06ed, + 0x06f0, 0x06fe, + 0x0700, 0x070d, + 0x070f, 0x072c, + 0x0730, 0x074a, + 0x0780, 0x07b1, + 0x0901, 0x0903, + 0x0905, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09bc, + 0x09be, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a02, 0x0a02, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8b, + 0x0a8d, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae0, + 0x0ae6, 0x0aef, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b36, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b70, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bf2, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbe, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fcf, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10f8, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1206, + 0x1208, 0x1246, + 0x1248, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1286, + 0x1288, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12ae, + 0x12b0, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12ce, + 0x12d0, 0x12d6, + 0x12d8, 0x12ee, + 0x12f0, 0x130e, + 0x1310, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x131e, + 0x1320, 0x1346, + 0x1348, 0x135a, + 0x1361, 0x137c, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dc, + 0x17e0, 0x17e9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2052, + 0x2057, 0x2057, + 0x205f, 0x2063, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x20a0, 0x20b1, + 0x20d0, 0x20ea, + 0x2100, 0x213a, + 0x213d, 0x214b, + 0x2153, 0x2183, + 0x2190, 0x23ce, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x24fe, + 0x2500, 0x2613, + 0x2616, 0x2617, + 0x2619, 0x267d, + 0x2680, 0x2689, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27d0, 0x27eb, + 0x27f0, 0x2aff, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31f0, 0x321c, + 0x3220, 0x3243, + 0x3251, 0x327b, + 0x327f, 0x32cb, + 0x32d0, 0x32fe, + 0x3300, 0x3376, + 0x337b, 0x33dd, + 0x33e0, 0x33fe, + 0x3400, 0x4db5, + 0x4e00, 0x9fa5, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6a, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfc, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe23, + 0xfe30, 0xfe46, + 0xfe49, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0xffff, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10400, 0x10425, + 0x10428, 0x1044d, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d12a, 0x1d1dd, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c0, + 0x1d4c2, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a3, + 0x1d6a8, 0x1d7c9, + 0x1d7ce, 0x1d7ff, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xefffe, 0x10ffff, +}; /* CR_Age_3_2 */ + +/* 'Age_4_0': Derived Age 4.0 */ +static const OnigCodePoint CR_Age_4_0[] = { + 412, + 0x0000, 0x0236, + 0x0250, 0x0357, + 0x035d, 0x036f, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x03fb, + 0x0400, 0x0486, + 0x0488, 0x04ce, + 0x04d0, 0x04f5, + 0x04f8, 0x04f9, + 0x0500, 0x050f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05a1, + 0x05a3, 0x05b9, + 0x05bb, 0x05c4, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x060c, 0x0615, + 0x061b, 0x061b, + 0x061f, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x0658, + 0x0660, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x074f, + 0x0780, 0x07b1, + 0x0901, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09cd, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb5, + 0x0bb7, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be7, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fcf, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10f8, + 0x10fb, 0x10fb, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1206, + 0x1208, 0x1246, + 0x1248, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1286, + 0x1288, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12ae, + 0x12b0, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12ce, + 0x12d0, 0x12d6, + 0x12d8, 0x12ee, + 0x12f0, 0x130e, + 0x1310, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x131e, + 0x1320, 0x1346, + 0x1348, 0x135a, + 0x1361, 0x137c, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x19e0, 0x19ff, + 0x1d00, 0x1d6b, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2054, + 0x2057, 0x2057, + 0x205f, 0x2063, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x20a0, 0x20b1, + 0x20d0, 0x20ea, + 0x2100, 0x213b, + 0x213d, 0x214b, + 0x2153, 0x2183, + 0x2190, 0x23d0, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2617, + 0x2619, 0x267d, + 0x2680, 0x2691, + 0x26a0, 0x26a1, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27d0, 0x27eb, + 0x27f0, 0x2b0d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31f0, 0x321e, + 0x3220, 0x3243, + 0x3250, 0x327d, + 0x327f, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fa5, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6a, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe23, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1013f, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x1039f, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x1083f, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d12a, 0x1d1dd, + 0x1d300, 0x1d356, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a3, + 0x1d6a8, 0x1d7c9, + 0x1d7ce, 0x1d7ff, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_4_0 */ + +/* 'Age_4_1': Derived Age 4.1 */ +static const OnigCodePoint CR_Age_4_1[] = { + 430, + 0x0000, 0x0241, + 0x0250, 0x036f, + 0x0374, 0x0375, + 0x037a, 0x037a, + 0x037e, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x0486, + 0x0488, 0x04ce, + 0x04d0, 0x04f9, + 0x0500, 0x050f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05b9, + 0x05bb, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x060b, 0x0615, + 0x061b, 0x061b, + 0x061e, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x065e, + 0x0660, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x076d, + 0x0780, 0x07b1, + 0x0901, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x097d, 0x097d, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce1, + 0x0ce6, 0x0cef, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fd1, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10fc, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135f, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19a9, + 0x19b0, 0x19c9, + 0x19d0, 0x19d9, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a1f, + 0x1d00, 0x1dc3, + 0x1e00, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2063, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x2094, + 0x20a0, 0x20b5, + 0x20d0, 0x20eb, + 0x2100, 0x214c, + 0x2153, 0x2183, + 0x2190, 0x23db, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x269c, + 0x26a0, 0x26b1, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27c0, 0x27c6, + 0x27d0, 0x27eb, + 0x27f0, 0x2b13, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c80, 0x2cea, + 0x2cf9, 0x2d25, + 0x2d30, 0x2d65, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2e00, 0x2e17, + 0x2e1c, 0x2e1d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31c0, 0x31cf, + 0x31f0, 0x321e, + 0x3220, 0x3243, + 0x3250, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fbb, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa700, 0xa716, + 0xa800, 0xa82b, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6a, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe23, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x1083f, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d12a, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7c9, + 0x1d7ce, 0x1d7ff, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_4_1 */ + +/* 'Age_5_0': Derived Age 5.0 */ +static const OnigCodePoint CR_Age_5_0[] = { + 440, + 0x0000, 0x036f, + 0x0374, 0x0375, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x03ce, + 0x03d0, 0x0486, + 0x0488, 0x0513, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x060b, 0x0615, + 0x061b, 0x061b, + 0x061e, 0x061f, + 0x0621, 0x063a, + 0x0640, 0x065e, + 0x0660, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x076d, + 0x0780, 0x07b1, + 0x07c0, 0x07fa, + 0x0901, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0970, + 0x097b, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a74, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b43, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b61, + 0x0b66, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3e, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c60, 0x0c61, + 0x0c66, 0x0c6f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3e, 0x0d43, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d61, + 0x0d66, 0x0d6f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6a, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fcf, 0x0fd1, + 0x1000, 0x1021, + 0x1023, 0x1027, + 0x1029, 0x102a, + 0x102c, 0x1032, + 0x1036, 0x1039, + 0x1040, 0x1059, + 0x10a0, 0x10c5, + 0x10d0, 0x10fc, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135f, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18a9, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19a9, + 0x19b0, 0x19c9, + 0x19d0, 0x19d9, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a1f, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1d00, 0x1dca, + 0x1dfe, 0x1e9b, + 0x1ea0, 0x1ef9, + 0x1f00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2063, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x2094, + 0x20a0, 0x20b5, + 0x20d0, 0x20ef, + 0x2100, 0x214e, + 0x2153, 0x2184, + 0x2190, 0x23e7, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x269c, + 0x26a0, 0x26b2, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27c0, 0x27ca, + 0x27d0, 0x27eb, + 0x27f0, 0x2b1a, + 0x2b20, 0x2b23, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2c6c, + 0x2c74, 0x2c77, + 0x2c80, 0x2cea, + 0x2cf9, 0x2d25, + 0x2d30, 0x2d65, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2e00, 0x2e17, + 0x2e1c, 0x2e1d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312c, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31c0, 0x31cf, + 0x31f0, 0x321e, + 0x3220, 0x3243, + 0x3250, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fbb, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa700, 0xa71a, + 0xa720, 0xa721, + 0xa800, 0xa82b, + 0xa840, 0xa877, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6a, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe23, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x1083f, + 0x10900, 0x10919, + 0x1091f, 0x1091f, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d12a, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_5_0 */ + +/* 'Age_5_1': Derived Age 5.1 */ +static const OnigCodePoint CR_Age_5_1[] = { + 455, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0523, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x0606, 0x061b, + 0x061e, 0x061f, + 0x0621, 0x065e, + 0x0660, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0901, 0x0939, + 0x093c, 0x094d, + 0x0950, 0x0954, + 0x0958, 0x0972, + 0x097b, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fa, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fd4, + 0x1000, 0x1099, + 0x109e, 0x10c5, + 0x10d0, 0x10fc, + 0x1100, 0x1159, + 0x115f, 0x11a2, + 0x11a8, 0x11f9, + 0x1200, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135f, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1401, 0x1676, + 0x1680, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19a9, + 0x19b0, 0x19c9, + 0x19d0, 0x19d9, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a1f, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1baa, + 0x1bae, 0x1bb9, + 0x1c00, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1d00, 0x1de6, + 0x1dfe, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x2094, + 0x20a0, 0x20b5, + 0x20d0, 0x20f0, + 0x2100, 0x214f, + 0x2153, 0x2188, + 0x2190, 0x23e7, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x269d, + 0x26a0, 0x26bc, + 0x26c0, 0x26c3, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x2756, + 0x2758, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27c0, 0x27ca, + 0x27cc, 0x27cc, + 0x27d0, 0x2b4c, + 0x2b50, 0x2b54, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2c6f, + 0x2c71, 0x2c7d, + 0x2c80, 0x2cea, + 0x2cf9, 0x2d25, + 0x2d30, 0x2d65, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e30, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x3243, + 0x3250, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fc3, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa500, 0xa62b, + 0xa640, 0xa65f, + 0xa662, 0xa673, + 0xa67c, 0xa697, + 0xa700, 0xa78c, + 0xa7fb, 0xa82b, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa900, 0xa953, + 0xa95f, 0xa95f, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa5f, + 0xac00, 0xd7a3, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6a, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x1083f, + 0x10900, 0x10919, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1fffe, 0x2a6d6, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_5_1 */ + +/* 'Age_5_2': Derived Age 5.2 */ +static const OnigCodePoint CR_Age_5_2[] = { + 495, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0525, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x0606, 0x061b, + 0x061e, 0x061f, + 0x0621, 0x065e, + 0x0660, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0900, 0x0939, + 0x093c, 0x094e, + 0x0950, 0x0955, + 0x0958, 0x0972, + 0x0979, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b71, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d28, + 0x0d2a, 0x0d39, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f8b, + 0x0f90, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fd8, + 0x1000, 0x10c5, + 0x10d0, 0x10fc, + 0x1100, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135f, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1baa, + 0x1bae, 0x1bb9, + 0x1c00, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cd0, 0x1cf2, + 0x1d00, 0x1de6, + 0x1dfd, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x2094, + 0x20a0, 0x20b8, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23e8, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x26cd, + 0x26cf, 0x26e1, + 0x26e3, 0x26e3, + 0x26e8, 0x26ff, + 0x2701, 0x2704, + 0x2706, 0x2709, + 0x270c, 0x2727, + 0x2729, 0x274b, + 0x274d, 0x274d, + 0x274f, 0x2752, + 0x2756, 0x275e, + 0x2761, 0x2794, + 0x2798, 0x27af, + 0x27b1, 0x27be, + 0x27c0, 0x27ca, + 0x27cc, 0x27cc, + 0x27d0, 0x2b4c, + 0x2b50, 0x2b59, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf1, + 0x2cf9, 0x2d25, + 0x2d30, 0x2d65, + 0x2d6f, 0x2d6f, + 0x2d80, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e31, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31b7, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcb, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa65f, + 0xa662, 0xa673, + 0xa67c, 0xa697, + 0xa6a0, 0xa6f7, + 0xa700, 0xa78c, + 0xa7fb, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9df, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa80, 0xaac2, + 0xaadb, 0xaadf, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbb1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1085f, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a7f, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b7f, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11080, 0x110c1, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x13000, 0x1342e, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f100, 0x1f10a, + 0x1f110, 0x1f12e, + 0x1f131, 0x1f131, + 0x1f13d, 0x1f13d, + 0x1f13f, 0x1f13f, + 0x1f142, 0x1f142, + 0x1f146, 0x1f146, + 0x1f14a, 0x1f14e, + 0x1f157, 0x1f157, + 0x1f15f, 0x1f15f, + 0x1f179, 0x1f179, + 0x1f17b, 0x1f17c, + 0x1f17f, 0x1f17f, + 0x1f18a, 0x1f18d, + 0x1f190, 0x1f190, + 0x1f200, 0x1f200, + 0x1f210, 0x1f231, + 0x1f240, 0x1f248, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_5_2 */ + +/* 'Age_6_0': Derived Age 6.0 */ +static const OnigCodePoint CR_Age_6_0[] = { + 511, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0527, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0603, + 0x0606, 0x061b, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0900, 0x0977, + 0x0979, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0aef, + 0x0af1, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edd, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10d0, 0x10fc, + 0x1100, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1baa, + 0x1bae, 0x1bb9, + 0x1bc0, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cd0, 0x1cf2, + 0x1d00, 0x1de6, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20b9, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23f3, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x26ff, + 0x2701, 0x27ca, + 0x27cc, 0x27cc, + 0x27ce, 0x2b4c, + 0x2b50, 0x2b59, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf1, + 0x2cf9, 0x2d25, + 0x2d30, 0x2d65, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e31, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcb, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa673, + 0xa67c, 0xa697, + 0xa6a0, 0xa6f7, + 0xa700, 0xa78e, + 0xa790, 0xa791, + 0xa7a0, 0xa7a9, + 0xa7fa, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9df, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa80, 0xaac2, + 0xaadb, 0xaadf, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa2d, + 0xfa30, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1085f, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a7f, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b7f, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x11080, 0x110c1, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x13000, 0x1342e, + 0x16800, 0x16a38, + 0x1b000, 0x1b001, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0be, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0df, + 0x1f100, 0x1f10a, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f169, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f320, + 0x1f330, 0x1f335, + 0x1f337, 0x1f37c, + 0x1f380, 0x1f393, + 0x1f3a0, 0x1f3c4, + 0x1f3c6, 0x1f3ca, + 0x1f3e0, 0x1f3f0, + 0x1f400, 0x1f43e, + 0x1f440, 0x1f440, + 0x1f442, 0x1f4f7, + 0x1f4f9, 0x1f4fc, + 0x1f500, 0x1f53d, + 0x1f550, 0x1f567, + 0x1f5fb, 0x1f5ff, + 0x1f601, 0x1f610, + 0x1f612, 0x1f614, + 0x1f616, 0x1f616, + 0x1f618, 0x1f618, + 0x1f61a, 0x1f61a, + 0x1f61c, 0x1f61e, + 0x1f620, 0x1f625, + 0x1f628, 0x1f62b, + 0x1f62d, 0x1f62d, + 0x1f630, 0x1f633, + 0x1f635, 0x1f640, + 0x1f645, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f700, 0x1f773, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_6_0 */ + +/* 'Age_6_1': Derived Age 6.1 */ +static const OnigCodePoint CR_Age_6_1[] = { + 549, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0527, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058f, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0604, + 0x0606, 0x061b, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08a0, + 0x08a2, 0x08ac, + 0x08e4, 0x08fe, + 0x0900, 0x0977, + 0x0979, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1d00, 0x1de6, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20b9, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23f3, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x26ff, + 0x2701, 0x2b4c, + 0x2b50, 0x2b59, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e3b, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcc, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa697, + 0xa69f, 0xa6f7, + 0xa700, 0xa78e, + 0xa790, 0xa793, + 0xa7a0, 0xa7aa, + 0xa7f8, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9df, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa80, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1085f, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a7f, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b7f, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x11080, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11180, 0x111c8, + 0x111d0, 0x111d9, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x13000, 0x1342e, + 0x16800, 0x16a38, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x1b000, 0x1b001, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0be, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0df, + 0x1f100, 0x1f10a, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f320, + 0x1f330, 0x1f335, + 0x1f337, 0x1f37c, + 0x1f380, 0x1f393, + 0x1f3a0, 0x1f3c4, + 0x1f3c6, 0x1f3ca, + 0x1f3e0, 0x1f3f0, + 0x1f400, 0x1f43e, + 0x1f440, 0x1f440, + 0x1f442, 0x1f4f7, + 0x1f4f9, 0x1f4fc, + 0x1f500, 0x1f53d, + 0x1f540, 0x1f543, + 0x1f550, 0x1f567, + 0x1f5fb, 0x1f640, + 0x1f645, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f700, 0x1f773, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_6_1 */ + +/* 'Age_6_2': Derived Age 6.2 */ +static const OnigCodePoint CR_Age_6_2[] = { + 549, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0527, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058f, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0604, + 0x0606, 0x061b, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08a0, + 0x08a2, 0x08ac, + 0x08e4, 0x08fe, + 0x0900, 0x0977, + 0x0979, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1d00, 0x1de6, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x206a, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20ba, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23f3, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x26ff, + 0x2701, 0x2b4c, + 0x2b50, 0x2b59, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e3b, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcc, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa697, + 0xa69f, 0xa6f7, + 0xa700, 0xa78e, + 0xa790, 0xa793, + 0xa7a0, 0xa7aa, + 0xa7f8, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9df, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa80, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1085f, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a7f, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b7f, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x11080, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11180, 0x111c8, + 0x111d0, 0x111d9, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x13000, 0x1342e, + 0x16800, 0x16a38, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x1b000, 0x1b001, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0be, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0df, + 0x1f100, 0x1f10a, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f320, + 0x1f330, 0x1f335, + 0x1f337, 0x1f37c, + 0x1f380, 0x1f393, + 0x1f3a0, 0x1f3c4, + 0x1f3c6, 0x1f3ca, + 0x1f3e0, 0x1f3f0, + 0x1f400, 0x1f43e, + 0x1f440, 0x1f440, + 0x1f442, 0x1f4f7, + 0x1f4f9, 0x1f4fc, + 0x1f500, 0x1f53d, + 0x1f540, 0x1f543, + 0x1f550, 0x1f567, + 0x1f5fb, 0x1f640, + 0x1f645, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f700, 0x1f773, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_6_2 */ + +/* 'Age_6_3': Derived Age 6.3 */ +static const OnigCodePoint CR_Age_6_3[] = { + 549, + 0x0000, 0x0377, + 0x037a, 0x037e, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x0527, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058f, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x0604, + 0x0606, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08a0, + 0x08a2, 0x08ac, + 0x08e4, 0x08fe, + 0x0900, 0x0977, + 0x0979, 0x097f, + 0x0981, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c01, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c33, + 0x0c35, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c82, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d02, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f0, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191c, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1d00, 0x1de6, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20ba, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23f3, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x26ff, + 0x2701, 0x2b4c, + 0x2b50, 0x2b59, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e3b, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcc, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa697, + 0xa69f, 0xa6f7, + 0xa700, 0xa78e, + 0xa790, 0xa793, + 0xa7a0, 0xa7aa, + 0xa7f8, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9df, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaa7b, + 0xaa80, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe26, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018a, + 0x10190, 0x1019b, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x10300, 0x1031e, + 0x10320, 0x10323, + 0x10330, 0x1034a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1085f, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a7f, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b7f, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x11080, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11180, 0x111c8, + 0x111d0, 0x111d9, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x12000, 0x1236e, + 0x12400, 0x12462, + 0x12470, 0x12473, + 0x13000, 0x1342e, + 0x16800, 0x16a38, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x1b000, 0x1b001, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0be, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0df, + 0x1f100, 0x1f10a, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f320, + 0x1f330, 0x1f335, + 0x1f337, 0x1f37c, + 0x1f380, 0x1f393, + 0x1f3a0, 0x1f3c4, + 0x1f3c6, 0x1f3ca, + 0x1f3e0, 0x1f3f0, + 0x1f400, 0x1f43e, + 0x1f440, 0x1f440, + 0x1f442, 0x1f4f7, + 0x1f4f9, 0x1f4fc, + 0x1f500, 0x1f53d, + 0x1f540, 0x1f543, + 0x1f550, 0x1f567, + 0x1f5fb, 0x1f640, + 0x1f645, 0x1f64f, + 0x1f680, 0x1f6c5, + 0x1f700, 0x1f773, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_6_3 */ + +/* 'Age_7_0': Derived Age 7.0 */ +static const OnigCodePoint CR_Age_7_0[] = { + 610, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08b2, + 0x08e4, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c59, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c81, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d01, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d60, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f4, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1cf8, 0x1cf9, + 0x1d00, 0x1df5, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bd, + 0x20d0, 0x20f0, + 0x2100, 0x2189, + 0x2190, 0x23fa, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2bb9, + 0x2bbd, 0x2bc8, + 0x2bca, 0x2bd1, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e42, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fcc, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa69d, + 0xa69f, 0xa6f7, + 0xa700, 0xa78e, + 0xa790, 0xa7ad, + 0xa7b0, 0xa7b1, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fb, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab5f, + 0xab64, 0xab65, + 0xabc0, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe2d, + 0xfe30, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018c, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x10330, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x10900, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109be, 0x109bf, + 0x10a00, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11150, 0x11176, + 0x11180, 0x111c8, + 0x111cd, 0x111cd, + 0x111d0, 0x111da, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123d, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11301, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133c, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115c9, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x11ac0, 0x11af8, + 0x12000, 0x12398, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x13000, 0x1342e, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x1b000, 0x1b001, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1dd, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1d7ff, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f32c, + 0x1f330, 0x1f37d, + 0x1f380, 0x1f3ce, + 0x1f3d4, 0x1f3f7, + 0x1f400, 0x1f4fe, + 0x1f500, 0x1f54a, + 0x1f550, 0x1f579, + 0x1f57b, 0x1f5a3, + 0x1f5a5, 0x1f642, + 0x1f645, 0x1f6cf, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6f3, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d4, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_7_0 */ + +/* 'Age_8_0': Derived Age 8.0 */ +static const OnigCodePoint CR_Age_8_0[] = { + 623, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08b4, + 0x08e3, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0af9, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c7f, + 0x0c81, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d01, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4e, + 0x0d57, 0x0d57, + 0x0d5f, 0x0d63, + 0x0d66, 0x0d75, + 0x0d79, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c7f, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1cf8, 0x1cf9, + 0x1d00, 0x1df5, + 0x1dfc, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20be, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x23fa, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2bb9, + 0x2bbd, 0x2bc8, + 0x2bca, 0x2bd1, + 0x2bec, 0x2bef, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e42, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fd5, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ad, + 0xa7b0, 0xa7b7, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c4, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fd, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab65, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018c, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x10330, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10cff, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123d, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133c, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x11700, 0x11719, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x11ac0, 0x11af8, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x1b000, 0x1b001, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f19a, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23a, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f579, + 0x1f57b, 0x1f5a3, + 0x1f5a5, 0x1f6d0, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6f3, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d4, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f910, 0x1f918, + 0x1f980, 0x1f984, + 0x1f9c0, 0x1f9c0, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_8_0 */ + +/* 'Age_9_0': Derived Age 9.0 */ +static const OnigCodePoint CR_Age_9_0[] = { + 648, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x08a0, 0x08b4, + 0x08b6, 0x08bd, + 0x08d4, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fb, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0af9, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d01, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d3a, + 0x0d3d, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf6, + 0x1cf8, 0x1cf9, + 0x1d00, 0x1df5, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20be, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x23fe, + 0x2400, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2bb9, + 0x2bbd, 0x2bc8, + 0x2bca, 0x2bd1, + 0x2bec, 0x2bef, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e44, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312d, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fd5, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ae, + 0xa7b0, 0xa7b7, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fd, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab65, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x10330, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10cff, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133c, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x11459, + 0x1145b, 0x1145b, + 0x1145d, 0x1145d, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x11700, 0x11719, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe0, + 0x17000, 0x187ec, + 0x18800, 0x18af2, + 0x1b000, 0x1b001, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94a, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f1ac, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f300, 0x1f6d2, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6f6, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d4, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f910, 0x1f91e, + 0x1f920, 0x1f927, + 0x1f930, 0x1f930, + 0x1f933, 0x1f93e, + 0x1f940, 0x1f94b, + 0x1f950, 0x1f95e, + 0x1f980, 0x1f991, + 0x1f9c0, 0x1f9c0, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_9_0 */ + +/* 'Age_10_0': Derived Age 10.0 */ +static const OnigCodePoint CR_Age_10_0[] = { + 659, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x055f, + 0x0561, 0x0587, + 0x0589, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05f0, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x0800, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x08a0, 0x08b4, + 0x08b6, 0x08bd, + 0x08d4, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fd, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a75, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c03, + 0x0c05, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c83, + 0x0c85, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1877, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1cc0, 0x1cc7, + 0x1cd0, 0x1cf9, + 0x1d00, 0x1df9, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bf, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2bb9, + 0x2bbd, 0x2bc8, + 0x2bca, 0x2bd2, + 0x2bec, 0x2bef, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e49, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312e, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fea, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ae, + 0xa7b0, 0xa7b7, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa8fd, + 0xa900, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab65, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a33, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a47, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10cff, + 0x10e60, 0x10e7e, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11143, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133c, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x11459, + 0x1145b, 0x1145b, + 0x1145d, 0x1145d, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x11700, 0x11719, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x11a00, 0x11a47, + 0x11a50, 0x11a83, + 0x11a86, 0x11a9c, + 0x11a9e, 0x11aa2, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x17000, 0x187ec, + 0x18800, 0x18af2, + 0x1b000, 0x1b11e, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d300, 0x1d356, + 0x1d360, 0x1d371, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94a, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f12e, + 0x1f130, 0x1f16b, + 0x1f170, 0x1f1ac, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d4, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6f8, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d4, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f900, 0x1f90b, + 0x1f910, 0x1f93e, + 0x1f940, 0x1f94c, + 0x1f950, 0x1f96b, + 0x1f980, 0x1f997, + 0x1f9c0, 0x1f9c0, + 0x1f9d0, 0x1f9e6, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_10_0 */ + +/* 'Age_11_0': Derived Age 11.0 */ +static const OnigCodePoint CR_Age_11_0[] = { + 668, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x08a0, 0x08b4, + 0x08b6, 0x08bd, + 0x08d3, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c78, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e87, 0x0e88, + 0x0e8a, 0x0e8a, + 0x0e8d, 0x0e8d, + 0x0e94, 0x0e97, + 0x0e99, 0x0e9f, + 0x0ea1, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ea7, + 0x0eaa, 0x0eab, + 0x0ead, 0x0eb9, + 0x0ebb, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cf9, + 0x1d00, 0x1df9, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bf, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2bc8, + 0x2bca, 0x2bfe, + 0x2c00, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e4e, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fef, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7b9, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab65, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10f00, 0x10f27, + 0x10f30, 0x10f59, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11146, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x11459, + 0x1145b, 0x1145b, + 0x1145d, 0x1145e, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b7, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x11a00, 0x11a47, + 0x11a50, 0x11a83, + 0x11a86, 0x11aa2, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x12000, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f44, + 0x16f50, 0x16f7e, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe1, + 0x17000, 0x187f1, + 0x18800, 0x18af2, + 0x1b000, 0x1b11e, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94a, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f16b, + 0x1f170, 0x1f1ac, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d4, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6f9, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d8, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f900, 0x1f90b, + 0x1f910, 0x1f93e, + 0x1f940, 0x1f970, + 0x1f973, 0x1f976, + 0x1f97a, 0x1f97a, + 0x1f97c, 0x1f9a2, + 0x1f9b0, 0x1f9b9, + 0x1f9c0, 0x1f9c2, + 0x1f9d0, 0x1f9ff, + 0x1fa60, 0x1fa6d, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_11_0 */ + +/* 'Age_12_0': Derived Age 12.0 */ +static const OnigCodePoint CR_Age_12_0[] = { + 677, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x08a0, 0x08b4, + 0x08b6, 0x08bd, + 0x08d3, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1df9, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bf, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e4f, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x32fe, + 0x3300, 0x4db5, + 0x4dc0, 0x9fef, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7bf, + 0xa7c2, 0xa7c6, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab67, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10f00, 0x10f27, + 0x10f30, 0x10f59, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11146, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x11459, + 0x1145b, 0x1145b, + 0x1145d, 0x1145f, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x13430, 0x13438, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe3, + 0x17000, 0x187f7, + 0x18800, 0x18af2, + 0x1b000, 0x1b11e, + 0x1b150, 0x1b152, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f16c, + 0x1f170, 0x1f1ac, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d5, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6fa, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d8, + 0x1f7e0, 0x1f7eb, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f900, 0x1f90b, + 0x1f90d, 0x1f971, + 0x1f973, 0x1f976, + 0x1f97a, 0x1f9a2, + 0x1f9a5, 0x1f9aa, + 0x1f9ae, 0x1f9ca, + 0x1f9cd, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa73, + 0x1fa78, 0x1fa7a, + 0x1fa80, 0x1fa82, + 0x1fa90, 0x1fa95, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_12_0 */ + +/* 'Age_12_1': Derived Age 12.1 */ +static const OnigCodePoint CR_Age_12_1[] = { + 676, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x08a0, 0x08b4, + 0x08b6, 0x08bd, + 0x08d3, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b56, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d03, + 0x0d05, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d82, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1abe, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1df9, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bf, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b98, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e4f, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31ba, + 0x31c0, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x4db5, + 0x4dc0, 0x9fef, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7bf, + 0xa7c2, 0xa7c6, + 0xa7f7, 0xa82b, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab67, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019b, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10f00, 0x10f27, + 0x10f30, 0x10f59, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11146, + 0x11150, 0x11176, + 0x11180, 0x111cd, + 0x111d0, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x11459, + 0x1145b, 0x1145b, + 0x1145d, 0x1145f, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x118ff, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x13430, 0x13438, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe3, + 0x17000, 0x187f7, + 0x18800, 0x18af2, + 0x1b000, 0x1b11e, + 0x1b150, 0x1b152, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f10c, + 0x1f110, 0x1f16c, + 0x1f170, 0x1f1ac, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d5, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6fa, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d8, + 0x1f7e0, 0x1f7eb, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f900, 0x1f90b, + 0x1f90d, 0x1f971, + 0x1f973, 0x1f976, + 0x1f97a, 0x1f9a2, + 0x1f9a5, 0x1f9aa, + 0x1f9ae, 0x1f9ca, + 0x1f9cd, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa73, + 0x1fa78, 0x1fa7a, + 0x1fa80, 0x1fa82, + 0x1fa90, 0x1fa95, + 0x1fffe, 0x2a6d6, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x2ffff, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_12_1 */ + +/* 'Age_13_0': Derived Age 13.0 */ +static const OnigCodePoint CR_Age_13_0[] = { + 686, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x061c, + 0x061e, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x08a0, 0x08b4, + 0x08b6, 0x08c7, + 0x08d3, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3d, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cde, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x170c, + 0x170e, 0x1714, + 0x1720, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x180e, + 0x1810, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ac0, + 0x1b00, 0x1b4b, + 0x1b50, 0x1b7c, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1df9, + 0x1dfb, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20bf, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2c2e, + 0x2c30, 0x2c5e, + 0x2c60, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e52, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0x9ffc, + 0xa000, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7bf, + 0xa7c2, 0xa7ca, + 0xa7f5, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc1, + 0xfbd3, 0xfd3f, + 0xfd50, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdd0, 0xfdfd, + 0xfe00, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1056f, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f27, + 0x10f30, 0x10f59, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x1106f, + 0x1107f, 0x110c1, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b8, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x1173f, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ac0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x13000, 0x1342e, + 0x13430, 0x13438, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16a6f, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1b000, 0x1b11e, + 0x1b150, 0x1b152, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1e8, + 0x1d200, 0x1d245, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6e0, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d8, + 0x1f7e0, 0x1f7eb, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1f978, + 0x1f97a, 0x1f9cb, + 0x1f9cd, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa74, + 0x1fa78, 0x1fa7a, + 0x1fa80, 0x1fa86, + 0x1fa90, 0x1faa8, + 0x1fab0, 0x1fab6, + 0x1fac0, 0x1fac2, + 0x1fad0, 0x1fad6, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x1fffe, 0x2a6dd, + 0x2a700, 0x2b734, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x3134a, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_13_0 */ + +/* 'Age_14_0': Derived Age 14.0 */ +static const OnigCodePoint CR_Age_14_0[] = { + 706, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf2, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ecd, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10f00, 0x10f27, + 0x10f30, 0x10f59, + 0x10f70, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x110c2, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x1123e, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x1342e, + 0x13430, 0x13438, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b150, 0x1b152, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1ea, + 0x1d200, 0x1d245, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dd, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f773, + 0x1f780, 0x1f7d8, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa74, + 0x1fa78, 0x1fa7c, + 0x1fa80, 0x1fa86, + 0x1fa90, 0x1faac, + 0x1fab0, 0x1faba, + 0x1fac0, 0x1fac5, + 0x1fad0, 0x1fad9, + 0x1fae0, 0x1fae7, + 0x1faf0, 0x1faf6, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x1fffe, 0x2a6df, + 0x2a700, 0x2b738, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x3134a, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_14_0 */ + +/* 'Age_15_0': Derived Age 15.0 */ +static const OnigCodePoint CR_Age_15_0[] = { + 715, + 0x0000, 0x0377, + 0x037a, 0x037f, + 0x0384, 0x038a, + 0x038c, 0x038c, + 0x038e, 0x03a1, + 0x03a3, 0x052f, + 0x0531, 0x0556, + 0x0559, 0x058a, + 0x058d, 0x058f, + 0x0591, 0x05c7, + 0x05d0, 0x05ea, + 0x05ef, 0x05f4, + 0x0600, 0x070d, + 0x070f, 0x074a, + 0x074d, 0x07b1, + 0x07c0, 0x07fa, + 0x07fd, 0x082d, + 0x0830, 0x083e, + 0x0840, 0x085b, + 0x085e, 0x085e, + 0x0860, 0x086a, + 0x0870, 0x088e, + 0x0890, 0x0891, + 0x0898, 0x0983, + 0x0985, 0x098c, + 0x098f, 0x0990, + 0x0993, 0x09a8, + 0x09aa, 0x09b0, + 0x09b2, 0x09b2, + 0x09b6, 0x09b9, + 0x09bc, 0x09c4, + 0x09c7, 0x09c8, + 0x09cb, 0x09ce, + 0x09d7, 0x09d7, + 0x09dc, 0x09dd, + 0x09df, 0x09e3, + 0x09e6, 0x09fe, + 0x0a01, 0x0a03, + 0x0a05, 0x0a0a, + 0x0a0f, 0x0a10, + 0x0a13, 0x0a28, + 0x0a2a, 0x0a30, + 0x0a32, 0x0a33, + 0x0a35, 0x0a36, + 0x0a38, 0x0a39, + 0x0a3c, 0x0a3c, + 0x0a3e, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a59, 0x0a5c, + 0x0a5e, 0x0a5e, + 0x0a66, 0x0a76, + 0x0a81, 0x0a83, + 0x0a85, 0x0a8d, + 0x0a8f, 0x0a91, + 0x0a93, 0x0aa8, + 0x0aaa, 0x0ab0, + 0x0ab2, 0x0ab3, + 0x0ab5, 0x0ab9, + 0x0abc, 0x0ac5, + 0x0ac7, 0x0ac9, + 0x0acb, 0x0acd, + 0x0ad0, 0x0ad0, + 0x0ae0, 0x0ae3, + 0x0ae6, 0x0af1, + 0x0af9, 0x0aff, + 0x0b01, 0x0b03, + 0x0b05, 0x0b0c, + 0x0b0f, 0x0b10, + 0x0b13, 0x0b28, + 0x0b2a, 0x0b30, + 0x0b32, 0x0b33, + 0x0b35, 0x0b39, + 0x0b3c, 0x0b44, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b5c, 0x0b5d, + 0x0b5f, 0x0b63, + 0x0b66, 0x0b77, + 0x0b82, 0x0b83, + 0x0b85, 0x0b8a, + 0x0b8e, 0x0b90, + 0x0b92, 0x0b95, + 0x0b99, 0x0b9a, + 0x0b9c, 0x0b9c, + 0x0b9e, 0x0b9f, + 0x0ba3, 0x0ba4, + 0x0ba8, 0x0baa, + 0x0bae, 0x0bb9, + 0x0bbe, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcd, + 0x0bd0, 0x0bd0, + 0x0bd7, 0x0bd7, + 0x0be6, 0x0bfa, + 0x0c00, 0x0c0c, + 0x0c0e, 0x0c10, + 0x0c12, 0x0c28, + 0x0c2a, 0x0c39, + 0x0c3c, 0x0c44, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c58, 0x0c5a, + 0x0c5d, 0x0c5d, + 0x0c60, 0x0c63, + 0x0c66, 0x0c6f, + 0x0c77, 0x0c8c, + 0x0c8e, 0x0c90, + 0x0c92, 0x0ca8, + 0x0caa, 0x0cb3, + 0x0cb5, 0x0cb9, + 0x0cbc, 0x0cc4, + 0x0cc6, 0x0cc8, + 0x0cca, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0cdd, 0x0cde, + 0x0ce0, 0x0ce3, + 0x0ce6, 0x0cef, + 0x0cf1, 0x0cf3, + 0x0d00, 0x0d0c, + 0x0d0e, 0x0d10, + 0x0d12, 0x0d44, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4f, + 0x0d54, 0x0d63, + 0x0d66, 0x0d7f, + 0x0d81, 0x0d83, + 0x0d85, 0x0d96, + 0x0d9a, 0x0db1, + 0x0db3, 0x0dbb, + 0x0dbd, 0x0dbd, + 0x0dc0, 0x0dc6, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0dd8, 0x0ddf, + 0x0de6, 0x0def, + 0x0df2, 0x0df4, + 0x0e01, 0x0e3a, + 0x0e3f, 0x0e5b, + 0x0e81, 0x0e82, + 0x0e84, 0x0e84, + 0x0e86, 0x0e8a, + 0x0e8c, 0x0ea3, + 0x0ea5, 0x0ea5, + 0x0ea7, 0x0ebd, + 0x0ec0, 0x0ec4, + 0x0ec6, 0x0ec6, + 0x0ec8, 0x0ece, + 0x0ed0, 0x0ed9, + 0x0edc, 0x0edf, + 0x0f00, 0x0f47, + 0x0f49, 0x0f6c, + 0x0f71, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fbe, 0x0fcc, + 0x0fce, 0x0fda, + 0x1000, 0x10c5, + 0x10c7, 0x10c7, + 0x10cd, 0x10cd, + 0x10d0, 0x1248, + 0x124a, 0x124d, + 0x1250, 0x1256, + 0x1258, 0x1258, + 0x125a, 0x125d, + 0x1260, 0x1288, + 0x128a, 0x128d, + 0x1290, 0x12b0, + 0x12b2, 0x12b5, + 0x12b8, 0x12be, + 0x12c0, 0x12c0, + 0x12c2, 0x12c5, + 0x12c8, 0x12d6, + 0x12d8, 0x1310, + 0x1312, 0x1315, + 0x1318, 0x135a, + 0x135d, 0x137c, + 0x1380, 0x1399, + 0x13a0, 0x13f5, + 0x13f8, 0x13fd, + 0x1400, 0x169c, + 0x16a0, 0x16f8, + 0x1700, 0x1715, + 0x171f, 0x1736, + 0x1740, 0x1753, + 0x1760, 0x176c, + 0x176e, 0x1770, + 0x1772, 0x1773, + 0x1780, 0x17dd, + 0x17e0, 0x17e9, + 0x17f0, 0x17f9, + 0x1800, 0x1819, + 0x1820, 0x1878, + 0x1880, 0x18aa, + 0x18b0, 0x18f5, + 0x1900, 0x191e, + 0x1920, 0x192b, + 0x1930, 0x193b, + 0x1940, 0x1940, + 0x1944, 0x196d, + 0x1970, 0x1974, + 0x1980, 0x19ab, + 0x19b0, 0x19c9, + 0x19d0, 0x19da, + 0x19de, 0x1a1b, + 0x1a1e, 0x1a5e, + 0x1a60, 0x1a7c, + 0x1a7f, 0x1a89, + 0x1a90, 0x1a99, + 0x1aa0, 0x1aad, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b4c, + 0x1b50, 0x1b7e, + 0x1b80, 0x1bf3, + 0x1bfc, 0x1c37, + 0x1c3b, 0x1c49, + 0x1c4d, 0x1c88, + 0x1c90, 0x1cba, + 0x1cbd, 0x1cc7, + 0x1cd0, 0x1cfa, + 0x1d00, 0x1f15, + 0x1f18, 0x1f1d, + 0x1f20, 0x1f45, + 0x1f48, 0x1f4d, + 0x1f50, 0x1f57, + 0x1f59, 0x1f59, + 0x1f5b, 0x1f5b, + 0x1f5d, 0x1f5d, + 0x1f5f, 0x1f7d, + 0x1f80, 0x1fb4, + 0x1fb6, 0x1fc4, + 0x1fc6, 0x1fd3, + 0x1fd6, 0x1fdb, + 0x1fdd, 0x1fef, + 0x1ff2, 0x1ff4, + 0x1ff6, 0x1ffe, + 0x2000, 0x2064, + 0x2066, 0x2071, + 0x2074, 0x208e, + 0x2090, 0x209c, + 0x20a0, 0x20c0, + 0x20d0, 0x20f0, + 0x2100, 0x218b, + 0x2190, 0x2426, + 0x2440, 0x244a, + 0x2460, 0x2b73, + 0x2b76, 0x2b95, + 0x2b97, 0x2cf3, + 0x2cf9, 0x2d25, + 0x2d27, 0x2d27, + 0x2d2d, 0x2d2d, + 0x2d30, 0x2d67, + 0x2d6f, 0x2d70, + 0x2d7f, 0x2d96, + 0x2da0, 0x2da6, + 0x2da8, 0x2dae, + 0x2db0, 0x2db6, + 0x2db8, 0x2dbe, + 0x2dc0, 0x2dc6, + 0x2dc8, 0x2dce, + 0x2dd0, 0x2dd6, + 0x2dd8, 0x2dde, + 0x2de0, 0x2e5d, + 0x2e80, 0x2e99, + 0x2e9b, 0x2ef3, + 0x2f00, 0x2fd5, + 0x2ff0, 0x2ffb, + 0x3000, 0x303f, + 0x3041, 0x3096, + 0x3099, 0x30ff, + 0x3105, 0x312f, + 0x3131, 0x318e, + 0x3190, 0x31e3, + 0x31f0, 0x321e, + 0x3220, 0xa48c, + 0xa490, 0xa4c6, + 0xa4d0, 0xa62b, + 0xa640, 0xa6f7, + 0xa700, 0xa7ca, + 0xa7d0, 0xa7d1, + 0xa7d3, 0xa7d3, + 0xa7d5, 0xa7d9, + 0xa7f2, 0xa82c, + 0xa830, 0xa839, + 0xa840, 0xa877, + 0xa880, 0xa8c5, + 0xa8ce, 0xa8d9, + 0xa8e0, 0xa953, + 0xa95f, 0xa97c, + 0xa980, 0xa9cd, + 0xa9cf, 0xa9d9, + 0xa9de, 0xa9fe, + 0xaa00, 0xaa36, + 0xaa40, 0xaa4d, + 0xaa50, 0xaa59, + 0xaa5c, 0xaac2, + 0xaadb, 0xaaf6, + 0xab01, 0xab06, + 0xab09, 0xab0e, + 0xab11, 0xab16, + 0xab20, 0xab26, + 0xab28, 0xab2e, + 0xab30, 0xab6b, + 0xab70, 0xabed, + 0xabf0, 0xabf9, + 0xac00, 0xd7a3, + 0xd7b0, 0xd7c6, + 0xd7cb, 0xd7fb, + 0xd800, 0xfa6d, + 0xfa70, 0xfad9, + 0xfb00, 0xfb06, + 0xfb13, 0xfb17, + 0xfb1d, 0xfb36, + 0xfb38, 0xfb3c, + 0xfb3e, 0xfb3e, + 0xfb40, 0xfb41, + 0xfb43, 0xfb44, + 0xfb46, 0xfbc2, + 0xfbd3, 0xfd8f, + 0xfd92, 0xfdc7, + 0xfdcf, 0xfe19, + 0xfe20, 0xfe52, + 0xfe54, 0xfe66, + 0xfe68, 0xfe6b, + 0xfe70, 0xfe74, + 0xfe76, 0xfefc, + 0xfeff, 0xfeff, + 0xff01, 0xffbe, + 0xffc2, 0xffc7, + 0xffca, 0xffcf, + 0xffd2, 0xffd7, + 0xffda, 0xffdc, + 0xffe0, 0xffe6, + 0xffe8, 0xffee, + 0xfff9, 0x1000b, + 0x1000d, 0x10026, + 0x10028, 0x1003a, + 0x1003c, 0x1003d, + 0x1003f, 0x1004d, + 0x10050, 0x1005d, + 0x10080, 0x100fa, + 0x10100, 0x10102, + 0x10107, 0x10133, + 0x10137, 0x1018e, + 0x10190, 0x1019c, + 0x101a0, 0x101a0, + 0x101d0, 0x101fd, + 0x10280, 0x1029c, + 0x102a0, 0x102d0, + 0x102e0, 0x102fb, + 0x10300, 0x10323, + 0x1032d, 0x1034a, + 0x10350, 0x1037a, + 0x10380, 0x1039d, + 0x1039f, 0x103c3, + 0x103c8, 0x103d5, + 0x10400, 0x1049d, + 0x104a0, 0x104a9, + 0x104b0, 0x104d3, + 0x104d8, 0x104fb, + 0x10500, 0x10527, + 0x10530, 0x10563, + 0x1056f, 0x1057a, + 0x1057c, 0x1058a, + 0x1058c, 0x10592, + 0x10594, 0x10595, + 0x10597, 0x105a1, + 0x105a3, 0x105b1, + 0x105b3, 0x105b9, + 0x105bb, 0x105bc, + 0x10600, 0x10736, + 0x10740, 0x10755, + 0x10760, 0x10767, + 0x10780, 0x10785, + 0x10787, 0x107b0, + 0x107b2, 0x107ba, + 0x10800, 0x10805, + 0x10808, 0x10808, + 0x1080a, 0x10835, + 0x10837, 0x10838, + 0x1083c, 0x1083c, + 0x1083f, 0x10855, + 0x10857, 0x1089e, + 0x108a7, 0x108af, + 0x108e0, 0x108f2, + 0x108f4, 0x108f5, + 0x108fb, 0x1091b, + 0x1091f, 0x10939, + 0x1093f, 0x1093f, + 0x10980, 0x109b7, + 0x109bc, 0x109cf, + 0x109d2, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a13, + 0x10a15, 0x10a17, + 0x10a19, 0x10a35, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a48, + 0x10a50, 0x10a58, + 0x10a60, 0x10a9f, + 0x10ac0, 0x10ae6, + 0x10aeb, 0x10af6, + 0x10b00, 0x10b35, + 0x10b39, 0x10b55, + 0x10b58, 0x10b72, + 0x10b78, 0x10b91, + 0x10b99, 0x10b9c, + 0x10ba9, 0x10baf, + 0x10c00, 0x10c48, + 0x10c80, 0x10cb2, + 0x10cc0, 0x10cf2, + 0x10cfa, 0x10d27, + 0x10d30, 0x10d39, + 0x10e60, 0x10e7e, + 0x10e80, 0x10ea9, + 0x10eab, 0x10ead, + 0x10eb0, 0x10eb1, + 0x10efd, 0x10f27, + 0x10f30, 0x10f59, + 0x10f70, 0x10f89, + 0x10fb0, 0x10fcb, + 0x10fe0, 0x10ff6, + 0x11000, 0x1104d, + 0x11052, 0x11075, + 0x1107f, 0x110c2, + 0x110cd, 0x110cd, + 0x110d0, 0x110e8, + 0x110f0, 0x110f9, + 0x11100, 0x11134, + 0x11136, 0x11147, + 0x11150, 0x11176, + 0x11180, 0x111df, + 0x111e1, 0x111f4, + 0x11200, 0x11211, + 0x11213, 0x11241, + 0x11280, 0x11286, + 0x11288, 0x11288, + 0x1128a, 0x1128d, + 0x1128f, 0x1129d, + 0x1129f, 0x112a9, + 0x112b0, 0x112ea, + 0x112f0, 0x112f9, + 0x11300, 0x11303, + 0x11305, 0x1130c, + 0x1130f, 0x11310, + 0x11313, 0x11328, + 0x1132a, 0x11330, + 0x11332, 0x11333, + 0x11335, 0x11339, + 0x1133b, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11350, 0x11350, + 0x11357, 0x11357, + 0x1135d, 0x11363, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11400, 0x1145b, + 0x1145d, 0x11461, + 0x11480, 0x114c7, + 0x114d0, 0x114d9, + 0x11580, 0x115b5, + 0x115b8, 0x115dd, + 0x11600, 0x11644, + 0x11650, 0x11659, + 0x11660, 0x1166c, + 0x11680, 0x116b9, + 0x116c0, 0x116c9, + 0x11700, 0x1171a, + 0x1171d, 0x1172b, + 0x11730, 0x11746, + 0x11800, 0x1183b, + 0x118a0, 0x118f2, + 0x118ff, 0x11906, + 0x11909, 0x11909, + 0x1190c, 0x11913, + 0x11915, 0x11916, + 0x11918, 0x11935, + 0x11937, 0x11938, + 0x1193b, 0x11946, + 0x11950, 0x11959, + 0x119a0, 0x119a7, + 0x119aa, 0x119d7, + 0x119da, 0x119e4, + 0x11a00, 0x11a47, + 0x11a50, 0x11aa2, + 0x11ab0, 0x11af8, + 0x11b00, 0x11b09, + 0x11c00, 0x11c08, + 0x11c0a, 0x11c36, + 0x11c38, 0x11c45, + 0x11c50, 0x11c6c, + 0x11c70, 0x11c8f, + 0x11c92, 0x11ca7, + 0x11ca9, 0x11cb6, + 0x11d00, 0x11d06, + 0x11d08, 0x11d09, + 0x11d0b, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d47, + 0x11d50, 0x11d59, + 0x11d60, 0x11d65, + 0x11d67, 0x11d68, + 0x11d6a, 0x11d8e, + 0x11d90, 0x11d91, + 0x11d93, 0x11d98, + 0x11da0, 0x11da9, + 0x11ee0, 0x11ef8, + 0x11f00, 0x11f10, + 0x11f12, 0x11f3a, + 0x11f3e, 0x11f59, + 0x11fb0, 0x11fb0, + 0x11fc0, 0x11ff1, + 0x11fff, 0x12399, + 0x12400, 0x1246e, + 0x12470, 0x12474, + 0x12480, 0x12543, + 0x12f90, 0x12ff2, + 0x13000, 0x13455, + 0x14400, 0x14646, + 0x16800, 0x16a38, + 0x16a40, 0x16a5e, + 0x16a60, 0x16a69, + 0x16a6e, 0x16abe, + 0x16ac0, 0x16ac9, + 0x16ad0, 0x16aed, + 0x16af0, 0x16af5, + 0x16b00, 0x16b45, + 0x16b50, 0x16b59, + 0x16b5b, 0x16b61, + 0x16b63, 0x16b77, + 0x16b7d, 0x16b8f, + 0x16e40, 0x16e9a, + 0x16f00, 0x16f4a, + 0x16f4f, 0x16f87, + 0x16f8f, 0x16f9f, + 0x16fe0, 0x16fe4, + 0x16ff0, 0x16ff1, + 0x17000, 0x187f7, + 0x18800, 0x18cd5, + 0x18d00, 0x18d08, + 0x1aff0, 0x1aff3, + 0x1aff5, 0x1affb, + 0x1affd, 0x1affe, + 0x1b000, 0x1b122, + 0x1b132, 0x1b132, + 0x1b150, 0x1b152, + 0x1b155, 0x1b155, + 0x1b164, 0x1b167, + 0x1b170, 0x1b2fb, + 0x1bc00, 0x1bc6a, + 0x1bc70, 0x1bc7c, + 0x1bc80, 0x1bc88, + 0x1bc90, 0x1bc99, + 0x1bc9c, 0x1bca3, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1cf50, 0x1cfc3, + 0x1d000, 0x1d0f5, + 0x1d100, 0x1d126, + 0x1d129, 0x1d1ea, + 0x1d200, 0x1d245, + 0x1d2c0, 0x1d2d3, + 0x1d2e0, 0x1d2f3, + 0x1d300, 0x1d356, + 0x1d360, 0x1d378, + 0x1d400, 0x1d454, + 0x1d456, 0x1d49c, + 0x1d49e, 0x1d49f, + 0x1d4a2, 0x1d4a2, + 0x1d4a5, 0x1d4a6, + 0x1d4a9, 0x1d4ac, + 0x1d4ae, 0x1d4b9, + 0x1d4bb, 0x1d4bb, + 0x1d4bd, 0x1d4c3, + 0x1d4c5, 0x1d505, + 0x1d507, 0x1d50a, + 0x1d50d, 0x1d514, + 0x1d516, 0x1d51c, + 0x1d51e, 0x1d539, + 0x1d53b, 0x1d53e, + 0x1d540, 0x1d544, + 0x1d546, 0x1d546, + 0x1d54a, 0x1d550, + 0x1d552, 0x1d6a5, + 0x1d6a8, 0x1d7cb, + 0x1d7ce, 0x1da8b, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1df00, 0x1df1e, + 0x1df25, 0x1df2a, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e030, 0x1e06d, + 0x1e08f, 0x1e08f, + 0x1e100, 0x1e12c, + 0x1e130, 0x1e13d, + 0x1e140, 0x1e149, + 0x1e14e, 0x1e14f, + 0x1e290, 0x1e2ae, + 0x1e2c0, 0x1e2f9, + 0x1e2ff, 0x1e2ff, + 0x1e4d0, 0x1e4f9, + 0x1e7e0, 0x1e7e6, + 0x1e7e8, 0x1e7eb, + 0x1e7ed, 0x1e7ee, + 0x1e7f0, 0x1e7fe, + 0x1e800, 0x1e8c4, + 0x1e8c7, 0x1e8d6, + 0x1e900, 0x1e94b, + 0x1e950, 0x1e959, + 0x1e95e, 0x1e95f, + 0x1ec71, 0x1ecb4, + 0x1ed01, 0x1ed3d, + 0x1ee00, 0x1ee03, + 0x1ee05, 0x1ee1f, + 0x1ee21, 0x1ee22, + 0x1ee24, 0x1ee24, + 0x1ee27, 0x1ee27, + 0x1ee29, 0x1ee32, + 0x1ee34, 0x1ee37, + 0x1ee39, 0x1ee39, + 0x1ee3b, 0x1ee3b, + 0x1ee42, 0x1ee42, + 0x1ee47, 0x1ee47, + 0x1ee49, 0x1ee49, + 0x1ee4b, 0x1ee4b, + 0x1ee4d, 0x1ee4f, + 0x1ee51, 0x1ee52, + 0x1ee54, 0x1ee54, + 0x1ee57, 0x1ee57, + 0x1ee59, 0x1ee59, + 0x1ee5b, 0x1ee5b, + 0x1ee5d, 0x1ee5d, + 0x1ee5f, 0x1ee5f, + 0x1ee61, 0x1ee62, + 0x1ee64, 0x1ee64, + 0x1ee67, 0x1ee6a, + 0x1ee6c, 0x1ee72, + 0x1ee74, 0x1ee77, + 0x1ee79, 0x1ee7c, + 0x1ee7e, 0x1ee7e, + 0x1ee80, 0x1ee89, + 0x1ee8b, 0x1ee9b, + 0x1eea1, 0x1eea3, + 0x1eea5, 0x1eea9, + 0x1eeab, 0x1eebb, + 0x1eef0, 0x1eef1, + 0x1f000, 0x1f02b, + 0x1f030, 0x1f093, + 0x1f0a0, 0x1f0ae, + 0x1f0b1, 0x1f0bf, + 0x1f0c1, 0x1f0cf, + 0x1f0d1, 0x1f0f5, + 0x1f100, 0x1f1ad, + 0x1f1e6, 0x1f202, + 0x1f210, 0x1f23b, + 0x1f240, 0x1f248, + 0x1f250, 0x1f251, + 0x1f260, 0x1f265, + 0x1f300, 0x1f6d7, + 0x1f6dc, 0x1f6ec, + 0x1f6f0, 0x1f6fc, + 0x1f700, 0x1f776, + 0x1f77b, 0x1f7d9, + 0x1f7e0, 0x1f7eb, + 0x1f7f0, 0x1f7f0, + 0x1f800, 0x1f80b, + 0x1f810, 0x1f847, + 0x1f850, 0x1f859, + 0x1f860, 0x1f887, + 0x1f890, 0x1f8ad, + 0x1f8b0, 0x1f8b1, + 0x1f900, 0x1fa53, + 0x1fa60, 0x1fa6d, + 0x1fa70, 0x1fa7c, + 0x1fa80, 0x1fa88, + 0x1fa90, 0x1fabd, + 0x1fabf, 0x1fac5, + 0x1face, 0x1fadb, + 0x1fae0, 0x1fae8, + 0x1faf0, 0x1faf8, + 0x1fb00, 0x1fb92, + 0x1fb94, 0x1fbca, + 0x1fbf0, 0x1fbf9, + 0x1fffe, 0x2a6df, + 0x2a700, 0x2b739, + 0x2b740, 0x2b81d, + 0x2b820, 0x2cea1, + 0x2ceb0, 0x2ebe0, + 0x2f800, 0x2fa1d, + 0x2fffe, 0x3134a, + 0x31350, 0x323af, + 0x3fffe, 0x3ffff, + 0x4fffe, 0x4ffff, + 0x5fffe, 0x5ffff, + 0x6fffe, 0x6ffff, + 0x7fffe, 0x7ffff, + 0x8fffe, 0x8ffff, + 0x9fffe, 0x9ffff, + 0xafffe, 0xaffff, + 0xbfffe, 0xbffff, + 0xcfffe, 0xcffff, + 0xdfffe, 0xdffff, + 0xe0001, 0xe0001, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, + 0xefffe, 0x10ffff, +}; /* CR_Age_15_0 */ + +#endif /* USE_UNICODE_AGE_PROPERTIES */ +/* 'Grapheme_Cluster_Break_Prepend': Grapheme_Cluster_Break=Prepend */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Prepend[] = { + 15, + 0x0600, 0x0605, + 0x06dd, 0x06dd, + 0x070f, 0x070f, + 0x0890, 0x0891, + 0x08e2, 0x08e2, + 0x0d4e, 0x0d4e, + 0x110bd, 0x110bd, + 0x110cd, 0x110cd, + 0x111c2, 0x111c3, + 0x1193f, 0x1193f, + 0x11941, 0x11941, + 0x11a3a, 0x11a3a, + 0x11a84, 0x11a89, + 0x11d46, 0x11d46, + 0x11f02, 0x11f02, +}; /* CR_Grapheme_Cluster_Break_Prepend */ + +/* 'Grapheme_Cluster_Break_CR': Grapheme_Cluster_Break=CR */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_CR[] = { + 1, + 0x000d, 0x000d, +}; /* CR_Grapheme_Cluster_Break_CR */ + +/* 'Grapheme_Cluster_Break_LF': Grapheme_Cluster_Break=LF */ +#define CR_Grapheme_Cluster_Break_LF CR_NEWLINE + +/* 'Grapheme_Cluster_Break_Control': Grapheme_Cluster_Break=Control */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Control[] = { + 19, + 0x0000, 0x0009, + 0x000b, 0x000c, + 0x000e, 0x001f, + 0x007f, 0x009f, + 0x00ad, 0x00ad, + 0x061c, 0x061c, + 0x180e, 0x180e, + 0x200b, 0x200b, + 0x200e, 0x200f, + 0x2028, 0x202e, + 0x2060, 0x206f, + 0xfeff, 0xfeff, + 0xfff0, 0xfffb, + 0x13430, 0x1343f, + 0x1bca0, 0x1bca3, + 0x1d173, 0x1d17a, + 0xe0000, 0xe001f, + 0xe0080, 0xe00ff, + 0xe01f0, 0xe0fff, +}; /* CR_Grapheme_Cluster_Break_Control */ + +/* 'Grapheme_Cluster_Break_Extend': Grapheme_Cluster_Break=Extend */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_Extend[] = { + 364, + 0x0300, 0x036f, + 0x0483, 0x0489, + 0x0591, 0x05bd, + 0x05bf, 0x05bf, + 0x05c1, 0x05c2, + 0x05c4, 0x05c5, + 0x05c7, 0x05c7, + 0x0610, 0x061a, + 0x064b, 0x065f, + 0x0670, 0x0670, + 0x06d6, 0x06dc, + 0x06df, 0x06e4, + 0x06e7, 0x06e8, + 0x06ea, 0x06ed, + 0x0711, 0x0711, + 0x0730, 0x074a, + 0x07a6, 0x07b0, + 0x07eb, 0x07f3, + 0x07fd, 0x07fd, + 0x0816, 0x0819, + 0x081b, 0x0823, + 0x0825, 0x0827, + 0x0829, 0x082d, + 0x0859, 0x085b, + 0x0898, 0x089f, + 0x08ca, 0x08e1, + 0x08e3, 0x0902, + 0x093a, 0x093a, + 0x093c, 0x093c, + 0x0941, 0x0948, + 0x094d, 0x094d, + 0x0951, 0x0957, + 0x0962, 0x0963, + 0x0981, 0x0981, + 0x09bc, 0x09bc, + 0x09be, 0x09be, + 0x09c1, 0x09c4, + 0x09cd, 0x09cd, + 0x09d7, 0x09d7, + 0x09e2, 0x09e3, + 0x09fe, 0x09fe, + 0x0a01, 0x0a02, + 0x0a3c, 0x0a3c, + 0x0a41, 0x0a42, + 0x0a47, 0x0a48, + 0x0a4b, 0x0a4d, + 0x0a51, 0x0a51, + 0x0a70, 0x0a71, + 0x0a75, 0x0a75, + 0x0a81, 0x0a82, + 0x0abc, 0x0abc, + 0x0ac1, 0x0ac5, + 0x0ac7, 0x0ac8, + 0x0acd, 0x0acd, + 0x0ae2, 0x0ae3, + 0x0afa, 0x0aff, + 0x0b01, 0x0b01, + 0x0b3c, 0x0b3c, + 0x0b3e, 0x0b3f, + 0x0b41, 0x0b44, + 0x0b4d, 0x0b4d, + 0x0b55, 0x0b57, + 0x0b62, 0x0b63, + 0x0b82, 0x0b82, + 0x0bbe, 0x0bbe, + 0x0bc0, 0x0bc0, + 0x0bcd, 0x0bcd, + 0x0bd7, 0x0bd7, + 0x0c00, 0x0c00, + 0x0c04, 0x0c04, + 0x0c3c, 0x0c3c, + 0x0c3e, 0x0c40, + 0x0c46, 0x0c48, + 0x0c4a, 0x0c4d, + 0x0c55, 0x0c56, + 0x0c62, 0x0c63, + 0x0c81, 0x0c81, + 0x0cbc, 0x0cbc, + 0x0cbf, 0x0cbf, + 0x0cc2, 0x0cc2, + 0x0cc6, 0x0cc6, + 0x0ccc, 0x0ccd, + 0x0cd5, 0x0cd6, + 0x0ce2, 0x0ce3, + 0x0d00, 0x0d01, + 0x0d3b, 0x0d3c, + 0x0d3e, 0x0d3e, + 0x0d41, 0x0d44, + 0x0d4d, 0x0d4d, + 0x0d57, 0x0d57, + 0x0d62, 0x0d63, + 0x0d81, 0x0d81, + 0x0dca, 0x0dca, + 0x0dcf, 0x0dcf, + 0x0dd2, 0x0dd4, + 0x0dd6, 0x0dd6, + 0x0ddf, 0x0ddf, + 0x0e31, 0x0e31, + 0x0e34, 0x0e3a, + 0x0e47, 0x0e4e, + 0x0eb1, 0x0eb1, + 0x0eb4, 0x0ebc, + 0x0ec8, 0x0ece, + 0x0f18, 0x0f19, + 0x0f35, 0x0f35, + 0x0f37, 0x0f37, + 0x0f39, 0x0f39, + 0x0f71, 0x0f7e, + 0x0f80, 0x0f84, + 0x0f86, 0x0f87, + 0x0f8d, 0x0f97, + 0x0f99, 0x0fbc, + 0x0fc6, 0x0fc6, + 0x102d, 0x1030, + 0x1032, 0x1037, + 0x1039, 0x103a, + 0x103d, 0x103e, + 0x1058, 0x1059, + 0x105e, 0x1060, + 0x1071, 0x1074, + 0x1082, 0x1082, + 0x1085, 0x1086, + 0x108d, 0x108d, + 0x109d, 0x109d, + 0x135d, 0x135f, + 0x1712, 0x1714, + 0x1732, 0x1733, + 0x1752, 0x1753, + 0x1772, 0x1773, + 0x17b4, 0x17b5, + 0x17b7, 0x17bd, + 0x17c6, 0x17c6, + 0x17c9, 0x17d3, + 0x17dd, 0x17dd, + 0x180b, 0x180d, + 0x180f, 0x180f, + 0x1885, 0x1886, + 0x18a9, 0x18a9, + 0x1920, 0x1922, + 0x1927, 0x1928, + 0x1932, 0x1932, + 0x1939, 0x193b, + 0x1a17, 0x1a18, + 0x1a1b, 0x1a1b, + 0x1a56, 0x1a56, + 0x1a58, 0x1a5e, + 0x1a60, 0x1a60, + 0x1a62, 0x1a62, + 0x1a65, 0x1a6c, + 0x1a73, 0x1a7c, + 0x1a7f, 0x1a7f, + 0x1ab0, 0x1ace, + 0x1b00, 0x1b03, + 0x1b34, 0x1b3a, + 0x1b3c, 0x1b3c, + 0x1b42, 0x1b42, + 0x1b6b, 0x1b73, + 0x1b80, 0x1b81, + 0x1ba2, 0x1ba5, + 0x1ba8, 0x1ba9, + 0x1bab, 0x1bad, + 0x1be6, 0x1be6, + 0x1be8, 0x1be9, + 0x1bed, 0x1bed, + 0x1bef, 0x1bf1, + 0x1c2c, 0x1c33, + 0x1c36, 0x1c37, + 0x1cd0, 0x1cd2, + 0x1cd4, 0x1ce0, + 0x1ce2, 0x1ce8, + 0x1ced, 0x1ced, + 0x1cf4, 0x1cf4, + 0x1cf8, 0x1cf9, + 0x1dc0, 0x1dff, + 0x200c, 0x200c, + 0x20d0, 0x20f0, + 0x2cef, 0x2cf1, + 0x2d7f, 0x2d7f, + 0x2de0, 0x2dff, + 0x302a, 0x302f, + 0x3099, 0x309a, + 0xa66f, 0xa672, + 0xa674, 0xa67d, + 0xa69e, 0xa69f, + 0xa6f0, 0xa6f1, + 0xa802, 0xa802, + 0xa806, 0xa806, + 0xa80b, 0xa80b, + 0xa825, 0xa826, + 0xa82c, 0xa82c, + 0xa8c4, 0xa8c5, + 0xa8e0, 0xa8f1, + 0xa8ff, 0xa8ff, + 0xa926, 0xa92d, + 0xa947, 0xa951, + 0xa980, 0xa982, + 0xa9b3, 0xa9b3, + 0xa9b6, 0xa9b9, + 0xa9bc, 0xa9bd, + 0xa9e5, 0xa9e5, + 0xaa29, 0xaa2e, + 0xaa31, 0xaa32, + 0xaa35, 0xaa36, + 0xaa43, 0xaa43, + 0xaa4c, 0xaa4c, + 0xaa7c, 0xaa7c, + 0xaab0, 0xaab0, + 0xaab2, 0xaab4, + 0xaab7, 0xaab8, + 0xaabe, 0xaabf, + 0xaac1, 0xaac1, + 0xaaec, 0xaaed, + 0xaaf6, 0xaaf6, + 0xabe5, 0xabe5, + 0xabe8, 0xabe8, + 0xabed, 0xabed, + 0xfb1e, 0xfb1e, + 0xfe00, 0xfe0f, + 0xfe20, 0xfe2f, + 0xff9e, 0xff9f, + 0x101fd, 0x101fd, + 0x102e0, 0x102e0, + 0x10376, 0x1037a, + 0x10a01, 0x10a03, + 0x10a05, 0x10a06, + 0x10a0c, 0x10a0f, + 0x10a38, 0x10a3a, + 0x10a3f, 0x10a3f, + 0x10ae5, 0x10ae6, + 0x10d24, 0x10d27, + 0x10eab, 0x10eac, + 0x10efd, 0x10eff, + 0x10f46, 0x10f50, + 0x10f82, 0x10f85, + 0x11001, 0x11001, + 0x11038, 0x11046, + 0x11070, 0x11070, + 0x11073, 0x11074, + 0x1107f, 0x11081, + 0x110b3, 0x110b6, + 0x110b9, 0x110ba, + 0x110c2, 0x110c2, + 0x11100, 0x11102, + 0x11127, 0x1112b, + 0x1112d, 0x11134, + 0x11173, 0x11173, + 0x11180, 0x11181, + 0x111b6, 0x111be, + 0x111c9, 0x111cc, + 0x111cf, 0x111cf, + 0x1122f, 0x11231, + 0x11234, 0x11234, + 0x11236, 0x11237, + 0x1123e, 0x1123e, + 0x11241, 0x11241, + 0x112df, 0x112df, + 0x112e3, 0x112ea, + 0x11300, 0x11301, + 0x1133b, 0x1133c, + 0x1133e, 0x1133e, + 0x11340, 0x11340, + 0x11357, 0x11357, + 0x11366, 0x1136c, + 0x11370, 0x11374, + 0x11438, 0x1143f, + 0x11442, 0x11444, + 0x11446, 0x11446, + 0x1145e, 0x1145e, + 0x114b0, 0x114b0, + 0x114b3, 0x114b8, + 0x114ba, 0x114ba, + 0x114bd, 0x114bd, + 0x114bf, 0x114c0, + 0x114c2, 0x114c3, + 0x115af, 0x115af, + 0x115b2, 0x115b5, + 0x115bc, 0x115bd, + 0x115bf, 0x115c0, + 0x115dc, 0x115dd, + 0x11633, 0x1163a, + 0x1163d, 0x1163d, + 0x1163f, 0x11640, + 0x116ab, 0x116ab, + 0x116ad, 0x116ad, + 0x116b0, 0x116b5, + 0x116b7, 0x116b7, + 0x1171d, 0x1171f, + 0x11722, 0x11725, + 0x11727, 0x1172b, + 0x1182f, 0x11837, + 0x11839, 0x1183a, + 0x11930, 0x11930, + 0x1193b, 0x1193c, + 0x1193e, 0x1193e, + 0x11943, 0x11943, + 0x119d4, 0x119d7, + 0x119da, 0x119db, + 0x119e0, 0x119e0, + 0x11a01, 0x11a0a, + 0x11a33, 0x11a38, + 0x11a3b, 0x11a3e, + 0x11a47, 0x11a47, + 0x11a51, 0x11a56, + 0x11a59, 0x11a5b, + 0x11a8a, 0x11a96, + 0x11a98, 0x11a99, + 0x11c30, 0x11c36, + 0x11c38, 0x11c3d, + 0x11c3f, 0x11c3f, + 0x11c92, 0x11ca7, + 0x11caa, 0x11cb0, + 0x11cb2, 0x11cb3, + 0x11cb5, 0x11cb6, + 0x11d31, 0x11d36, + 0x11d3a, 0x11d3a, + 0x11d3c, 0x11d3d, + 0x11d3f, 0x11d45, + 0x11d47, 0x11d47, + 0x11d90, 0x11d91, + 0x11d95, 0x11d95, + 0x11d97, 0x11d97, + 0x11ef3, 0x11ef4, + 0x11f00, 0x11f01, + 0x11f36, 0x11f3a, + 0x11f40, 0x11f40, + 0x11f42, 0x11f42, + 0x13440, 0x13440, + 0x13447, 0x13455, + 0x16af0, 0x16af4, + 0x16b30, 0x16b36, + 0x16f4f, 0x16f4f, + 0x16f8f, 0x16f92, + 0x16fe4, 0x16fe4, + 0x1bc9d, 0x1bc9e, + 0x1cf00, 0x1cf2d, + 0x1cf30, 0x1cf46, + 0x1d165, 0x1d165, + 0x1d167, 0x1d169, + 0x1d16e, 0x1d172, + 0x1d17b, 0x1d182, + 0x1d185, 0x1d18b, + 0x1d1aa, 0x1d1ad, + 0x1d242, 0x1d244, + 0x1da00, 0x1da36, + 0x1da3b, 0x1da6c, + 0x1da75, 0x1da75, + 0x1da84, 0x1da84, + 0x1da9b, 0x1da9f, + 0x1daa1, 0x1daaf, + 0x1e000, 0x1e006, + 0x1e008, 0x1e018, + 0x1e01b, 0x1e021, + 0x1e023, 0x1e024, + 0x1e026, 0x1e02a, + 0x1e08f, 0x1e08f, + 0x1e130, 0x1e136, + 0x1e2ae, 0x1e2ae, + 0x1e2ec, 0x1e2ef, + 0x1e4ec, 0x1e4ef, + 0x1e8d0, 0x1e8d6, + 0x1e944, 0x1e94a, + 0x1f3fb, 0x1f3ff, + 0xe0020, 0xe007f, + 0xe0100, 0xe01ef, +}; /* CR_Grapheme_Cluster_Break_Extend */ + +/* 'Grapheme_Cluster_Break_Regional_Indicator': Grapheme_Cluster_Break=Regional_Indicator */ +#define CR_Grapheme_Cluster_Break_Regional_Indicator CR_Regional_Indicator + +/* 'Grapheme_Cluster_Break_SpacingMark': Grapheme_Cluster_Break=SpacingMark */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_SpacingMark[] = { + 165, + 0x0903, 0x0903, + 0x093b, 0x093b, + 0x093e, 0x0940, + 0x0949, 0x094c, + 0x094e, 0x094f, + 0x0982, 0x0983, + 0x09bf, 0x09c0, + 0x09c7, 0x09c8, + 0x09cb, 0x09cc, + 0x0a03, 0x0a03, + 0x0a3e, 0x0a40, + 0x0a83, 0x0a83, + 0x0abe, 0x0ac0, + 0x0ac9, 0x0ac9, + 0x0acb, 0x0acc, + 0x0b02, 0x0b03, + 0x0b40, 0x0b40, + 0x0b47, 0x0b48, + 0x0b4b, 0x0b4c, + 0x0bbf, 0x0bbf, + 0x0bc1, 0x0bc2, + 0x0bc6, 0x0bc8, + 0x0bca, 0x0bcc, + 0x0c01, 0x0c03, + 0x0c41, 0x0c44, + 0x0c82, 0x0c83, + 0x0cbe, 0x0cbe, + 0x0cc0, 0x0cc1, + 0x0cc3, 0x0cc4, + 0x0cc7, 0x0cc8, + 0x0cca, 0x0ccb, + 0x0cf3, 0x0cf3, + 0x0d02, 0x0d03, + 0x0d3f, 0x0d40, + 0x0d46, 0x0d48, + 0x0d4a, 0x0d4c, + 0x0d82, 0x0d83, + 0x0dd0, 0x0dd1, + 0x0dd8, 0x0dde, + 0x0df2, 0x0df3, + 0x0e33, 0x0e33, + 0x0eb3, 0x0eb3, + 0x0f3e, 0x0f3f, + 0x0f7f, 0x0f7f, + 0x1031, 0x1031, + 0x103b, 0x103c, + 0x1056, 0x1057, + 0x1084, 0x1084, + 0x1715, 0x1715, + 0x1734, 0x1734, + 0x17b6, 0x17b6, + 0x17be, 0x17c5, + 0x17c7, 0x17c8, + 0x1923, 0x1926, + 0x1929, 0x192b, + 0x1930, 0x1931, + 0x1933, 0x1938, + 0x1a19, 0x1a1a, + 0x1a55, 0x1a55, + 0x1a57, 0x1a57, + 0x1a6d, 0x1a72, + 0x1b04, 0x1b04, + 0x1b3b, 0x1b3b, + 0x1b3d, 0x1b41, + 0x1b43, 0x1b44, + 0x1b82, 0x1b82, + 0x1ba1, 0x1ba1, + 0x1ba6, 0x1ba7, + 0x1baa, 0x1baa, + 0x1be7, 0x1be7, + 0x1bea, 0x1bec, + 0x1bee, 0x1bee, + 0x1bf2, 0x1bf3, + 0x1c24, 0x1c2b, + 0x1c34, 0x1c35, + 0x1ce1, 0x1ce1, + 0x1cf7, 0x1cf7, + 0xa823, 0xa824, + 0xa827, 0xa827, + 0xa880, 0xa881, + 0xa8b4, 0xa8c3, + 0xa952, 0xa953, + 0xa983, 0xa983, + 0xa9b4, 0xa9b5, + 0xa9ba, 0xa9bb, + 0xa9be, 0xa9c0, + 0xaa2f, 0xaa30, + 0xaa33, 0xaa34, + 0xaa4d, 0xaa4d, + 0xaaeb, 0xaaeb, + 0xaaee, 0xaaef, + 0xaaf5, 0xaaf5, + 0xabe3, 0xabe4, + 0xabe6, 0xabe7, + 0xabe9, 0xabea, + 0xabec, 0xabec, + 0x11000, 0x11000, + 0x11002, 0x11002, + 0x11082, 0x11082, + 0x110b0, 0x110b2, + 0x110b7, 0x110b8, + 0x1112c, 0x1112c, + 0x11145, 0x11146, + 0x11182, 0x11182, + 0x111b3, 0x111b5, + 0x111bf, 0x111c0, + 0x111ce, 0x111ce, + 0x1122c, 0x1122e, + 0x11232, 0x11233, + 0x11235, 0x11235, + 0x112e0, 0x112e2, + 0x11302, 0x11303, + 0x1133f, 0x1133f, + 0x11341, 0x11344, + 0x11347, 0x11348, + 0x1134b, 0x1134d, + 0x11362, 0x11363, + 0x11435, 0x11437, + 0x11440, 0x11441, + 0x11445, 0x11445, + 0x114b1, 0x114b2, + 0x114b9, 0x114b9, + 0x114bb, 0x114bc, + 0x114be, 0x114be, + 0x114c1, 0x114c1, + 0x115b0, 0x115b1, + 0x115b8, 0x115bb, + 0x115be, 0x115be, + 0x11630, 0x11632, + 0x1163b, 0x1163c, + 0x1163e, 0x1163e, + 0x116ac, 0x116ac, + 0x116ae, 0x116af, + 0x116b6, 0x116b6, + 0x11726, 0x11726, + 0x1182c, 0x1182e, + 0x11838, 0x11838, + 0x11931, 0x11935, + 0x11937, 0x11938, + 0x1193d, 0x1193d, + 0x11940, 0x11940, + 0x11942, 0x11942, + 0x119d1, 0x119d3, + 0x119dc, 0x119df, + 0x119e4, 0x119e4, + 0x11a39, 0x11a39, + 0x11a57, 0x11a58, + 0x11a97, 0x11a97, + 0x11c2f, 0x11c2f, + 0x11c3e, 0x11c3e, + 0x11ca9, 0x11ca9, + 0x11cb1, 0x11cb1, + 0x11cb4, 0x11cb4, + 0x11d8a, 0x11d8e, + 0x11d93, 0x11d94, + 0x11d96, 0x11d96, + 0x11ef5, 0x11ef6, + 0x11f03, 0x11f03, + 0x11f34, 0x11f35, + 0x11f3e, 0x11f3f, + 0x11f41, 0x11f41, + 0x16f51, 0x16f87, + 0x16ff0, 0x16ff1, + 0x1d166, 0x1d166, + 0x1d16d, 0x1d16d, +}; /* CR_Grapheme_Cluster_Break_SpacingMark */ + +/* 'Grapheme_Cluster_Break_L': Grapheme_Cluster_Break=L */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_L[] = { + 2, + 0x1100, 0x115f, + 0xa960, 0xa97c, +}; /* CR_Grapheme_Cluster_Break_L */ + +/* 'Grapheme_Cluster_Break_V': Grapheme_Cluster_Break=V */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_V[] = { + 2, + 0x1160, 0x11a7, + 0xd7b0, 0xd7c6, +}; /* CR_Grapheme_Cluster_Break_V */ + +/* 'Grapheme_Cluster_Break_T': Grapheme_Cluster_Break=T */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_T[] = { + 2, + 0x11a8, 0x11ff, + 0xd7cb, 0xd7fb, +}; /* CR_Grapheme_Cluster_Break_T */ + +/* 'Grapheme_Cluster_Break_LV': Grapheme_Cluster_Break=LV */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_LV[] = { + 399, + 0xac00, 0xac00, + 0xac1c, 0xac1c, + 0xac38, 0xac38, + 0xac54, 0xac54, + 0xac70, 0xac70, + 0xac8c, 0xac8c, + 0xaca8, 0xaca8, + 0xacc4, 0xacc4, + 0xace0, 0xace0, + 0xacfc, 0xacfc, + 0xad18, 0xad18, + 0xad34, 0xad34, + 0xad50, 0xad50, + 0xad6c, 0xad6c, + 0xad88, 0xad88, + 0xada4, 0xada4, + 0xadc0, 0xadc0, + 0xaddc, 0xaddc, + 0xadf8, 0xadf8, + 0xae14, 0xae14, + 0xae30, 0xae30, + 0xae4c, 0xae4c, + 0xae68, 0xae68, + 0xae84, 0xae84, + 0xaea0, 0xaea0, + 0xaebc, 0xaebc, + 0xaed8, 0xaed8, + 0xaef4, 0xaef4, + 0xaf10, 0xaf10, + 0xaf2c, 0xaf2c, + 0xaf48, 0xaf48, + 0xaf64, 0xaf64, + 0xaf80, 0xaf80, + 0xaf9c, 0xaf9c, + 0xafb8, 0xafb8, + 0xafd4, 0xafd4, + 0xaff0, 0xaff0, + 0xb00c, 0xb00c, + 0xb028, 0xb028, + 0xb044, 0xb044, + 0xb060, 0xb060, + 0xb07c, 0xb07c, + 0xb098, 0xb098, + 0xb0b4, 0xb0b4, + 0xb0d0, 0xb0d0, + 0xb0ec, 0xb0ec, + 0xb108, 0xb108, + 0xb124, 0xb124, + 0xb140, 0xb140, + 0xb15c, 0xb15c, + 0xb178, 0xb178, + 0xb194, 0xb194, + 0xb1b0, 0xb1b0, + 0xb1cc, 0xb1cc, + 0xb1e8, 0xb1e8, + 0xb204, 0xb204, + 0xb220, 0xb220, + 0xb23c, 0xb23c, + 0xb258, 0xb258, + 0xb274, 0xb274, + 0xb290, 0xb290, + 0xb2ac, 0xb2ac, + 0xb2c8, 0xb2c8, + 0xb2e4, 0xb2e4, + 0xb300, 0xb300, + 0xb31c, 0xb31c, + 0xb338, 0xb338, + 0xb354, 0xb354, + 0xb370, 0xb370, + 0xb38c, 0xb38c, + 0xb3a8, 0xb3a8, + 0xb3c4, 0xb3c4, + 0xb3e0, 0xb3e0, + 0xb3fc, 0xb3fc, + 0xb418, 0xb418, + 0xb434, 0xb434, + 0xb450, 0xb450, + 0xb46c, 0xb46c, + 0xb488, 0xb488, + 0xb4a4, 0xb4a4, + 0xb4c0, 0xb4c0, + 0xb4dc, 0xb4dc, + 0xb4f8, 0xb4f8, + 0xb514, 0xb514, + 0xb530, 0xb530, + 0xb54c, 0xb54c, + 0xb568, 0xb568, + 0xb584, 0xb584, + 0xb5a0, 0xb5a0, + 0xb5bc, 0xb5bc, + 0xb5d8, 0xb5d8, + 0xb5f4, 0xb5f4, + 0xb610, 0xb610, + 0xb62c, 0xb62c, + 0xb648, 0xb648, + 0xb664, 0xb664, + 0xb680, 0xb680, + 0xb69c, 0xb69c, + 0xb6b8, 0xb6b8, + 0xb6d4, 0xb6d4, + 0xb6f0, 0xb6f0, + 0xb70c, 0xb70c, + 0xb728, 0xb728, + 0xb744, 0xb744, + 0xb760, 0xb760, + 0xb77c, 0xb77c, + 0xb798, 0xb798, + 0xb7b4, 0xb7b4, + 0xb7d0, 0xb7d0, + 0xb7ec, 0xb7ec, + 0xb808, 0xb808, + 0xb824, 0xb824, + 0xb840, 0xb840, + 0xb85c, 0xb85c, + 0xb878, 0xb878, + 0xb894, 0xb894, + 0xb8b0, 0xb8b0, + 0xb8cc, 0xb8cc, + 0xb8e8, 0xb8e8, + 0xb904, 0xb904, + 0xb920, 0xb920, + 0xb93c, 0xb93c, + 0xb958, 0xb958, + 0xb974, 0xb974, + 0xb990, 0xb990, + 0xb9ac, 0xb9ac, + 0xb9c8, 0xb9c8, + 0xb9e4, 0xb9e4, + 0xba00, 0xba00, + 0xba1c, 0xba1c, + 0xba38, 0xba38, + 0xba54, 0xba54, + 0xba70, 0xba70, + 0xba8c, 0xba8c, + 0xbaa8, 0xbaa8, + 0xbac4, 0xbac4, + 0xbae0, 0xbae0, + 0xbafc, 0xbafc, + 0xbb18, 0xbb18, + 0xbb34, 0xbb34, + 0xbb50, 0xbb50, + 0xbb6c, 0xbb6c, + 0xbb88, 0xbb88, + 0xbba4, 0xbba4, + 0xbbc0, 0xbbc0, + 0xbbdc, 0xbbdc, + 0xbbf8, 0xbbf8, + 0xbc14, 0xbc14, + 0xbc30, 0xbc30, + 0xbc4c, 0xbc4c, + 0xbc68, 0xbc68, + 0xbc84, 0xbc84, + 0xbca0, 0xbca0, + 0xbcbc, 0xbcbc, + 0xbcd8, 0xbcd8, + 0xbcf4, 0xbcf4, + 0xbd10, 0xbd10, + 0xbd2c, 0xbd2c, + 0xbd48, 0xbd48, + 0xbd64, 0xbd64, + 0xbd80, 0xbd80, + 0xbd9c, 0xbd9c, + 0xbdb8, 0xbdb8, + 0xbdd4, 0xbdd4, + 0xbdf0, 0xbdf0, + 0xbe0c, 0xbe0c, + 0xbe28, 0xbe28, + 0xbe44, 0xbe44, + 0xbe60, 0xbe60, + 0xbe7c, 0xbe7c, + 0xbe98, 0xbe98, + 0xbeb4, 0xbeb4, + 0xbed0, 0xbed0, + 0xbeec, 0xbeec, + 0xbf08, 0xbf08, + 0xbf24, 0xbf24, + 0xbf40, 0xbf40, + 0xbf5c, 0xbf5c, + 0xbf78, 0xbf78, + 0xbf94, 0xbf94, + 0xbfb0, 0xbfb0, + 0xbfcc, 0xbfcc, + 0xbfe8, 0xbfe8, + 0xc004, 0xc004, + 0xc020, 0xc020, + 0xc03c, 0xc03c, + 0xc058, 0xc058, + 0xc074, 0xc074, + 0xc090, 0xc090, + 0xc0ac, 0xc0ac, + 0xc0c8, 0xc0c8, + 0xc0e4, 0xc0e4, + 0xc100, 0xc100, + 0xc11c, 0xc11c, + 0xc138, 0xc138, + 0xc154, 0xc154, + 0xc170, 0xc170, + 0xc18c, 0xc18c, + 0xc1a8, 0xc1a8, + 0xc1c4, 0xc1c4, + 0xc1e0, 0xc1e0, + 0xc1fc, 0xc1fc, + 0xc218, 0xc218, + 0xc234, 0xc234, + 0xc250, 0xc250, + 0xc26c, 0xc26c, + 0xc288, 0xc288, + 0xc2a4, 0xc2a4, + 0xc2c0, 0xc2c0, + 0xc2dc, 0xc2dc, + 0xc2f8, 0xc2f8, + 0xc314, 0xc314, + 0xc330, 0xc330, + 0xc34c, 0xc34c, + 0xc368, 0xc368, + 0xc384, 0xc384, + 0xc3a0, 0xc3a0, + 0xc3bc, 0xc3bc, + 0xc3d8, 0xc3d8, + 0xc3f4, 0xc3f4, + 0xc410, 0xc410, + 0xc42c, 0xc42c, + 0xc448, 0xc448, + 0xc464, 0xc464, + 0xc480, 0xc480, + 0xc49c, 0xc49c, + 0xc4b8, 0xc4b8, + 0xc4d4, 0xc4d4, + 0xc4f0, 0xc4f0, + 0xc50c, 0xc50c, + 0xc528, 0xc528, + 0xc544, 0xc544, + 0xc560, 0xc560, + 0xc57c, 0xc57c, + 0xc598, 0xc598, + 0xc5b4, 0xc5b4, + 0xc5d0, 0xc5d0, + 0xc5ec, 0xc5ec, + 0xc608, 0xc608, + 0xc624, 0xc624, + 0xc640, 0xc640, + 0xc65c, 0xc65c, + 0xc678, 0xc678, + 0xc694, 0xc694, + 0xc6b0, 0xc6b0, + 0xc6cc, 0xc6cc, + 0xc6e8, 0xc6e8, + 0xc704, 0xc704, + 0xc720, 0xc720, + 0xc73c, 0xc73c, + 0xc758, 0xc758, + 0xc774, 0xc774, + 0xc790, 0xc790, + 0xc7ac, 0xc7ac, + 0xc7c8, 0xc7c8, + 0xc7e4, 0xc7e4, + 0xc800, 0xc800, + 0xc81c, 0xc81c, + 0xc838, 0xc838, + 0xc854, 0xc854, + 0xc870, 0xc870, + 0xc88c, 0xc88c, + 0xc8a8, 0xc8a8, + 0xc8c4, 0xc8c4, + 0xc8e0, 0xc8e0, + 0xc8fc, 0xc8fc, + 0xc918, 0xc918, + 0xc934, 0xc934, + 0xc950, 0xc950, + 0xc96c, 0xc96c, + 0xc988, 0xc988, + 0xc9a4, 0xc9a4, + 0xc9c0, 0xc9c0, + 0xc9dc, 0xc9dc, + 0xc9f8, 0xc9f8, + 0xca14, 0xca14, + 0xca30, 0xca30, + 0xca4c, 0xca4c, + 0xca68, 0xca68, + 0xca84, 0xca84, + 0xcaa0, 0xcaa0, + 0xcabc, 0xcabc, + 0xcad8, 0xcad8, + 0xcaf4, 0xcaf4, + 0xcb10, 0xcb10, + 0xcb2c, 0xcb2c, + 0xcb48, 0xcb48, + 0xcb64, 0xcb64, + 0xcb80, 0xcb80, + 0xcb9c, 0xcb9c, + 0xcbb8, 0xcbb8, + 0xcbd4, 0xcbd4, + 0xcbf0, 0xcbf0, + 0xcc0c, 0xcc0c, + 0xcc28, 0xcc28, + 0xcc44, 0xcc44, + 0xcc60, 0xcc60, + 0xcc7c, 0xcc7c, + 0xcc98, 0xcc98, + 0xccb4, 0xccb4, + 0xccd0, 0xccd0, + 0xccec, 0xccec, + 0xcd08, 0xcd08, + 0xcd24, 0xcd24, + 0xcd40, 0xcd40, + 0xcd5c, 0xcd5c, + 0xcd78, 0xcd78, + 0xcd94, 0xcd94, + 0xcdb0, 0xcdb0, + 0xcdcc, 0xcdcc, + 0xcde8, 0xcde8, + 0xce04, 0xce04, + 0xce20, 0xce20, + 0xce3c, 0xce3c, + 0xce58, 0xce58, + 0xce74, 0xce74, + 0xce90, 0xce90, + 0xceac, 0xceac, + 0xcec8, 0xcec8, + 0xcee4, 0xcee4, + 0xcf00, 0xcf00, + 0xcf1c, 0xcf1c, + 0xcf38, 0xcf38, + 0xcf54, 0xcf54, + 0xcf70, 0xcf70, + 0xcf8c, 0xcf8c, + 0xcfa8, 0xcfa8, + 0xcfc4, 0xcfc4, + 0xcfe0, 0xcfe0, + 0xcffc, 0xcffc, + 0xd018, 0xd018, + 0xd034, 0xd034, + 0xd050, 0xd050, + 0xd06c, 0xd06c, + 0xd088, 0xd088, + 0xd0a4, 0xd0a4, + 0xd0c0, 0xd0c0, + 0xd0dc, 0xd0dc, + 0xd0f8, 0xd0f8, + 0xd114, 0xd114, + 0xd130, 0xd130, + 0xd14c, 0xd14c, + 0xd168, 0xd168, + 0xd184, 0xd184, + 0xd1a0, 0xd1a0, + 0xd1bc, 0xd1bc, + 0xd1d8, 0xd1d8, + 0xd1f4, 0xd1f4, + 0xd210, 0xd210, + 0xd22c, 0xd22c, + 0xd248, 0xd248, + 0xd264, 0xd264, + 0xd280, 0xd280, + 0xd29c, 0xd29c, + 0xd2b8, 0xd2b8, + 0xd2d4, 0xd2d4, + 0xd2f0, 0xd2f0, + 0xd30c, 0xd30c, + 0xd328, 0xd328, + 0xd344, 0xd344, + 0xd360, 0xd360, + 0xd37c, 0xd37c, + 0xd398, 0xd398, + 0xd3b4, 0xd3b4, + 0xd3d0, 0xd3d0, + 0xd3ec, 0xd3ec, + 0xd408, 0xd408, + 0xd424, 0xd424, + 0xd440, 0xd440, + 0xd45c, 0xd45c, + 0xd478, 0xd478, + 0xd494, 0xd494, + 0xd4b0, 0xd4b0, + 0xd4cc, 0xd4cc, + 0xd4e8, 0xd4e8, + 0xd504, 0xd504, + 0xd520, 0xd520, + 0xd53c, 0xd53c, + 0xd558, 0xd558, + 0xd574, 0xd574, + 0xd590, 0xd590, + 0xd5ac, 0xd5ac, + 0xd5c8, 0xd5c8, + 0xd5e4, 0xd5e4, + 0xd600, 0xd600, + 0xd61c, 0xd61c, + 0xd638, 0xd638, + 0xd654, 0xd654, + 0xd670, 0xd670, + 0xd68c, 0xd68c, + 0xd6a8, 0xd6a8, + 0xd6c4, 0xd6c4, + 0xd6e0, 0xd6e0, + 0xd6fc, 0xd6fc, + 0xd718, 0xd718, + 0xd734, 0xd734, + 0xd750, 0xd750, + 0xd76c, 0xd76c, + 0xd788, 0xd788, +}; /* CR_Grapheme_Cluster_Break_LV */ + +/* 'Grapheme_Cluster_Break_LVT': Grapheme_Cluster_Break=LVT */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_LVT[] = { + 399, + 0xac01, 0xac1b, + 0xac1d, 0xac37, + 0xac39, 0xac53, + 0xac55, 0xac6f, + 0xac71, 0xac8b, + 0xac8d, 0xaca7, + 0xaca9, 0xacc3, + 0xacc5, 0xacdf, + 0xace1, 0xacfb, + 0xacfd, 0xad17, + 0xad19, 0xad33, + 0xad35, 0xad4f, + 0xad51, 0xad6b, + 0xad6d, 0xad87, + 0xad89, 0xada3, + 0xada5, 0xadbf, + 0xadc1, 0xaddb, + 0xaddd, 0xadf7, + 0xadf9, 0xae13, + 0xae15, 0xae2f, + 0xae31, 0xae4b, + 0xae4d, 0xae67, + 0xae69, 0xae83, + 0xae85, 0xae9f, + 0xaea1, 0xaebb, + 0xaebd, 0xaed7, + 0xaed9, 0xaef3, + 0xaef5, 0xaf0f, + 0xaf11, 0xaf2b, + 0xaf2d, 0xaf47, + 0xaf49, 0xaf63, + 0xaf65, 0xaf7f, + 0xaf81, 0xaf9b, + 0xaf9d, 0xafb7, + 0xafb9, 0xafd3, + 0xafd5, 0xafef, + 0xaff1, 0xb00b, + 0xb00d, 0xb027, + 0xb029, 0xb043, + 0xb045, 0xb05f, + 0xb061, 0xb07b, + 0xb07d, 0xb097, + 0xb099, 0xb0b3, + 0xb0b5, 0xb0cf, + 0xb0d1, 0xb0eb, + 0xb0ed, 0xb107, + 0xb109, 0xb123, + 0xb125, 0xb13f, + 0xb141, 0xb15b, + 0xb15d, 0xb177, + 0xb179, 0xb193, + 0xb195, 0xb1af, + 0xb1b1, 0xb1cb, + 0xb1cd, 0xb1e7, + 0xb1e9, 0xb203, + 0xb205, 0xb21f, + 0xb221, 0xb23b, + 0xb23d, 0xb257, + 0xb259, 0xb273, + 0xb275, 0xb28f, + 0xb291, 0xb2ab, + 0xb2ad, 0xb2c7, + 0xb2c9, 0xb2e3, + 0xb2e5, 0xb2ff, + 0xb301, 0xb31b, + 0xb31d, 0xb337, + 0xb339, 0xb353, + 0xb355, 0xb36f, + 0xb371, 0xb38b, + 0xb38d, 0xb3a7, + 0xb3a9, 0xb3c3, + 0xb3c5, 0xb3df, + 0xb3e1, 0xb3fb, + 0xb3fd, 0xb417, + 0xb419, 0xb433, + 0xb435, 0xb44f, + 0xb451, 0xb46b, + 0xb46d, 0xb487, + 0xb489, 0xb4a3, + 0xb4a5, 0xb4bf, + 0xb4c1, 0xb4db, + 0xb4dd, 0xb4f7, + 0xb4f9, 0xb513, + 0xb515, 0xb52f, + 0xb531, 0xb54b, + 0xb54d, 0xb567, + 0xb569, 0xb583, + 0xb585, 0xb59f, + 0xb5a1, 0xb5bb, + 0xb5bd, 0xb5d7, + 0xb5d9, 0xb5f3, + 0xb5f5, 0xb60f, + 0xb611, 0xb62b, + 0xb62d, 0xb647, + 0xb649, 0xb663, + 0xb665, 0xb67f, + 0xb681, 0xb69b, + 0xb69d, 0xb6b7, + 0xb6b9, 0xb6d3, + 0xb6d5, 0xb6ef, + 0xb6f1, 0xb70b, + 0xb70d, 0xb727, + 0xb729, 0xb743, + 0xb745, 0xb75f, + 0xb761, 0xb77b, + 0xb77d, 0xb797, + 0xb799, 0xb7b3, + 0xb7b5, 0xb7cf, + 0xb7d1, 0xb7eb, + 0xb7ed, 0xb807, + 0xb809, 0xb823, + 0xb825, 0xb83f, + 0xb841, 0xb85b, + 0xb85d, 0xb877, + 0xb879, 0xb893, + 0xb895, 0xb8af, + 0xb8b1, 0xb8cb, + 0xb8cd, 0xb8e7, + 0xb8e9, 0xb903, + 0xb905, 0xb91f, + 0xb921, 0xb93b, + 0xb93d, 0xb957, + 0xb959, 0xb973, + 0xb975, 0xb98f, + 0xb991, 0xb9ab, + 0xb9ad, 0xb9c7, + 0xb9c9, 0xb9e3, + 0xb9e5, 0xb9ff, + 0xba01, 0xba1b, + 0xba1d, 0xba37, + 0xba39, 0xba53, + 0xba55, 0xba6f, + 0xba71, 0xba8b, + 0xba8d, 0xbaa7, + 0xbaa9, 0xbac3, + 0xbac5, 0xbadf, + 0xbae1, 0xbafb, + 0xbafd, 0xbb17, + 0xbb19, 0xbb33, + 0xbb35, 0xbb4f, + 0xbb51, 0xbb6b, + 0xbb6d, 0xbb87, + 0xbb89, 0xbba3, + 0xbba5, 0xbbbf, + 0xbbc1, 0xbbdb, + 0xbbdd, 0xbbf7, + 0xbbf9, 0xbc13, + 0xbc15, 0xbc2f, + 0xbc31, 0xbc4b, + 0xbc4d, 0xbc67, + 0xbc69, 0xbc83, + 0xbc85, 0xbc9f, + 0xbca1, 0xbcbb, + 0xbcbd, 0xbcd7, + 0xbcd9, 0xbcf3, + 0xbcf5, 0xbd0f, + 0xbd11, 0xbd2b, + 0xbd2d, 0xbd47, + 0xbd49, 0xbd63, + 0xbd65, 0xbd7f, + 0xbd81, 0xbd9b, + 0xbd9d, 0xbdb7, + 0xbdb9, 0xbdd3, + 0xbdd5, 0xbdef, + 0xbdf1, 0xbe0b, + 0xbe0d, 0xbe27, + 0xbe29, 0xbe43, + 0xbe45, 0xbe5f, + 0xbe61, 0xbe7b, + 0xbe7d, 0xbe97, + 0xbe99, 0xbeb3, + 0xbeb5, 0xbecf, + 0xbed1, 0xbeeb, + 0xbeed, 0xbf07, + 0xbf09, 0xbf23, + 0xbf25, 0xbf3f, + 0xbf41, 0xbf5b, + 0xbf5d, 0xbf77, + 0xbf79, 0xbf93, + 0xbf95, 0xbfaf, + 0xbfb1, 0xbfcb, + 0xbfcd, 0xbfe7, + 0xbfe9, 0xc003, + 0xc005, 0xc01f, + 0xc021, 0xc03b, + 0xc03d, 0xc057, + 0xc059, 0xc073, + 0xc075, 0xc08f, + 0xc091, 0xc0ab, + 0xc0ad, 0xc0c7, + 0xc0c9, 0xc0e3, + 0xc0e5, 0xc0ff, + 0xc101, 0xc11b, + 0xc11d, 0xc137, + 0xc139, 0xc153, + 0xc155, 0xc16f, + 0xc171, 0xc18b, + 0xc18d, 0xc1a7, + 0xc1a9, 0xc1c3, + 0xc1c5, 0xc1df, + 0xc1e1, 0xc1fb, + 0xc1fd, 0xc217, + 0xc219, 0xc233, + 0xc235, 0xc24f, + 0xc251, 0xc26b, + 0xc26d, 0xc287, + 0xc289, 0xc2a3, + 0xc2a5, 0xc2bf, + 0xc2c1, 0xc2db, + 0xc2dd, 0xc2f7, + 0xc2f9, 0xc313, + 0xc315, 0xc32f, + 0xc331, 0xc34b, + 0xc34d, 0xc367, + 0xc369, 0xc383, + 0xc385, 0xc39f, + 0xc3a1, 0xc3bb, + 0xc3bd, 0xc3d7, + 0xc3d9, 0xc3f3, + 0xc3f5, 0xc40f, + 0xc411, 0xc42b, + 0xc42d, 0xc447, + 0xc449, 0xc463, + 0xc465, 0xc47f, + 0xc481, 0xc49b, + 0xc49d, 0xc4b7, + 0xc4b9, 0xc4d3, + 0xc4d5, 0xc4ef, + 0xc4f1, 0xc50b, + 0xc50d, 0xc527, + 0xc529, 0xc543, + 0xc545, 0xc55f, + 0xc561, 0xc57b, + 0xc57d, 0xc597, + 0xc599, 0xc5b3, + 0xc5b5, 0xc5cf, + 0xc5d1, 0xc5eb, + 0xc5ed, 0xc607, + 0xc609, 0xc623, + 0xc625, 0xc63f, + 0xc641, 0xc65b, + 0xc65d, 0xc677, + 0xc679, 0xc693, + 0xc695, 0xc6af, + 0xc6b1, 0xc6cb, + 0xc6cd, 0xc6e7, + 0xc6e9, 0xc703, + 0xc705, 0xc71f, + 0xc721, 0xc73b, + 0xc73d, 0xc757, + 0xc759, 0xc773, + 0xc775, 0xc78f, + 0xc791, 0xc7ab, + 0xc7ad, 0xc7c7, + 0xc7c9, 0xc7e3, + 0xc7e5, 0xc7ff, + 0xc801, 0xc81b, + 0xc81d, 0xc837, + 0xc839, 0xc853, + 0xc855, 0xc86f, + 0xc871, 0xc88b, + 0xc88d, 0xc8a7, + 0xc8a9, 0xc8c3, + 0xc8c5, 0xc8df, + 0xc8e1, 0xc8fb, + 0xc8fd, 0xc917, + 0xc919, 0xc933, + 0xc935, 0xc94f, + 0xc951, 0xc96b, + 0xc96d, 0xc987, + 0xc989, 0xc9a3, + 0xc9a5, 0xc9bf, + 0xc9c1, 0xc9db, + 0xc9dd, 0xc9f7, + 0xc9f9, 0xca13, + 0xca15, 0xca2f, + 0xca31, 0xca4b, + 0xca4d, 0xca67, + 0xca69, 0xca83, + 0xca85, 0xca9f, + 0xcaa1, 0xcabb, + 0xcabd, 0xcad7, + 0xcad9, 0xcaf3, + 0xcaf5, 0xcb0f, + 0xcb11, 0xcb2b, + 0xcb2d, 0xcb47, + 0xcb49, 0xcb63, + 0xcb65, 0xcb7f, + 0xcb81, 0xcb9b, + 0xcb9d, 0xcbb7, + 0xcbb9, 0xcbd3, + 0xcbd5, 0xcbef, + 0xcbf1, 0xcc0b, + 0xcc0d, 0xcc27, + 0xcc29, 0xcc43, + 0xcc45, 0xcc5f, + 0xcc61, 0xcc7b, + 0xcc7d, 0xcc97, + 0xcc99, 0xccb3, + 0xccb5, 0xcccf, + 0xccd1, 0xcceb, + 0xcced, 0xcd07, + 0xcd09, 0xcd23, + 0xcd25, 0xcd3f, + 0xcd41, 0xcd5b, + 0xcd5d, 0xcd77, + 0xcd79, 0xcd93, + 0xcd95, 0xcdaf, + 0xcdb1, 0xcdcb, + 0xcdcd, 0xcde7, + 0xcde9, 0xce03, + 0xce05, 0xce1f, + 0xce21, 0xce3b, + 0xce3d, 0xce57, + 0xce59, 0xce73, + 0xce75, 0xce8f, + 0xce91, 0xceab, + 0xcead, 0xcec7, + 0xcec9, 0xcee3, + 0xcee5, 0xceff, + 0xcf01, 0xcf1b, + 0xcf1d, 0xcf37, + 0xcf39, 0xcf53, + 0xcf55, 0xcf6f, + 0xcf71, 0xcf8b, + 0xcf8d, 0xcfa7, + 0xcfa9, 0xcfc3, + 0xcfc5, 0xcfdf, + 0xcfe1, 0xcffb, + 0xcffd, 0xd017, + 0xd019, 0xd033, + 0xd035, 0xd04f, + 0xd051, 0xd06b, + 0xd06d, 0xd087, + 0xd089, 0xd0a3, + 0xd0a5, 0xd0bf, + 0xd0c1, 0xd0db, + 0xd0dd, 0xd0f7, + 0xd0f9, 0xd113, + 0xd115, 0xd12f, + 0xd131, 0xd14b, + 0xd14d, 0xd167, + 0xd169, 0xd183, + 0xd185, 0xd19f, + 0xd1a1, 0xd1bb, + 0xd1bd, 0xd1d7, + 0xd1d9, 0xd1f3, + 0xd1f5, 0xd20f, + 0xd211, 0xd22b, + 0xd22d, 0xd247, + 0xd249, 0xd263, + 0xd265, 0xd27f, + 0xd281, 0xd29b, + 0xd29d, 0xd2b7, + 0xd2b9, 0xd2d3, + 0xd2d5, 0xd2ef, + 0xd2f1, 0xd30b, + 0xd30d, 0xd327, + 0xd329, 0xd343, + 0xd345, 0xd35f, + 0xd361, 0xd37b, + 0xd37d, 0xd397, + 0xd399, 0xd3b3, + 0xd3b5, 0xd3cf, + 0xd3d1, 0xd3eb, + 0xd3ed, 0xd407, + 0xd409, 0xd423, + 0xd425, 0xd43f, + 0xd441, 0xd45b, + 0xd45d, 0xd477, + 0xd479, 0xd493, + 0xd495, 0xd4af, + 0xd4b1, 0xd4cb, + 0xd4cd, 0xd4e7, + 0xd4e9, 0xd503, + 0xd505, 0xd51f, + 0xd521, 0xd53b, + 0xd53d, 0xd557, + 0xd559, 0xd573, + 0xd575, 0xd58f, + 0xd591, 0xd5ab, + 0xd5ad, 0xd5c7, + 0xd5c9, 0xd5e3, + 0xd5e5, 0xd5ff, + 0xd601, 0xd61b, + 0xd61d, 0xd637, + 0xd639, 0xd653, + 0xd655, 0xd66f, + 0xd671, 0xd68b, + 0xd68d, 0xd6a7, + 0xd6a9, 0xd6c3, + 0xd6c5, 0xd6df, + 0xd6e1, 0xd6fb, + 0xd6fd, 0xd717, + 0xd719, 0xd733, + 0xd735, 0xd74f, + 0xd751, 0xd76b, + 0xd76d, 0xd787, + 0xd789, 0xd7a3, +}; /* CR_Grapheme_Cluster_Break_LVT */ + +/* 'Grapheme_Cluster_Break_ZWJ': Grapheme_Cluster_Break=ZWJ */ +static const OnigCodePoint CR_Grapheme_Cluster_Break_ZWJ[] = { + 1, + 0x200d, 0x200d, +}; /* CR_Grapheme_Cluster_Break_ZWJ */ + +/* 'In_Basic_Latin': Block */ +#define CR_In_Basic_Latin CR_ASCII + +/* 'In_Latin_1_Supplement': Block */ +static const OnigCodePoint CR_In_Latin_1_Supplement[] = { + 1, + 0x0080, 0x00ff, +}; /* CR_In_Latin_1_Supplement */ + +/* 'In_Latin_Extended_A': Block */ +static const OnigCodePoint CR_In_Latin_Extended_A[] = { + 1, + 0x0100, 0x017f, +}; /* CR_In_Latin_Extended_A */ + +/* 'In_Latin_Extended_B': Block */ +static const OnigCodePoint CR_In_Latin_Extended_B[] = { + 1, + 0x0180, 0x024f, +}; /* CR_In_Latin_Extended_B */ + +/* 'In_IPA_Extensions': Block */ +static const OnigCodePoint CR_In_IPA_Extensions[] = { + 1, + 0x0250, 0x02af, +}; /* CR_In_IPA_Extensions */ + +/* 'In_Spacing_Modifier_Letters': Block */ +static const OnigCodePoint CR_In_Spacing_Modifier_Letters[] = { + 1, + 0x02b0, 0x02ff, +}; /* CR_In_Spacing_Modifier_Letters */ + +/* 'In_Combining_Diacritical_Marks': Block */ +static const OnigCodePoint CR_In_Combining_Diacritical_Marks[] = { + 1, + 0x0300, 0x036f, +}; /* CR_In_Combining_Diacritical_Marks */ + +/* 'In_Greek_and_Coptic': Block */ +static const OnigCodePoint CR_In_Greek_and_Coptic[] = { + 1, + 0x0370, 0x03ff, +}; /* CR_In_Greek_and_Coptic */ + +/* 'In_Cyrillic': Block */ +static const OnigCodePoint CR_In_Cyrillic[] = { + 1, + 0x0400, 0x04ff, +}; /* CR_In_Cyrillic */ + +/* 'In_Cyrillic_Supplement': Block */ +static const OnigCodePoint CR_In_Cyrillic_Supplement[] = { + 1, + 0x0500, 0x052f, +}; /* CR_In_Cyrillic_Supplement */ + +/* 'In_Armenian': Block */ +static const OnigCodePoint CR_In_Armenian[] = { + 1, + 0x0530, 0x058f, +}; /* CR_In_Armenian */ + +/* 'In_Hebrew': Block */ +static const OnigCodePoint CR_In_Hebrew[] = { + 1, + 0x0590, 0x05ff, +}; /* CR_In_Hebrew */ + +/* 'In_Arabic': Block */ +static const OnigCodePoint CR_In_Arabic[] = { + 1, + 0x0600, 0x06ff, +}; /* CR_In_Arabic */ + +/* 'In_Syriac': Block */ +static const OnigCodePoint CR_In_Syriac[] = { + 1, + 0x0700, 0x074f, +}; /* CR_In_Syriac */ + +/* 'In_Arabic_Supplement': Block */ +static const OnigCodePoint CR_In_Arabic_Supplement[] = { + 1, + 0x0750, 0x077f, +}; /* CR_In_Arabic_Supplement */ + +/* 'In_Thaana': Block */ +static const OnigCodePoint CR_In_Thaana[] = { + 1, + 0x0780, 0x07bf, +}; /* CR_In_Thaana */ + +/* 'In_NKo': Block */ +static const OnigCodePoint CR_In_NKo[] = { + 1, + 0x07c0, 0x07ff, +}; /* CR_In_NKo */ + +/* 'In_Samaritan': Block */ +static const OnigCodePoint CR_In_Samaritan[] = { + 1, + 0x0800, 0x083f, +}; /* CR_In_Samaritan */ + +/* 'In_Mandaic': Block */ +static const OnigCodePoint CR_In_Mandaic[] = { + 1, + 0x0840, 0x085f, +}; /* CR_In_Mandaic */ + +/* 'In_Syriac_Supplement': Block */ +static const OnigCodePoint CR_In_Syriac_Supplement[] = { + 1, + 0x0860, 0x086f, +}; /* CR_In_Syriac_Supplement */ + +/* 'In_Arabic_Extended_B': Block */ +static const OnigCodePoint CR_In_Arabic_Extended_B[] = { + 1, + 0x0870, 0x089f, +}; /* CR_In_Arabic_Extended_B */ + +/* 'In_Arabic_Extended_A': Block */ +static const OnigCodePoint CR_In_Arabic_Extended_A[] = { + 1, + 0x08a0, 0x08ff, +}; /* CR_In_Arabic_Extended_A */ + +/* 'In_Devanagari': Block */ +static const OnigCodePoint CR_In_Devanagari[] = { + 1, + 0x0900, 0x097f, +}; /* CR_In_Devanagari */ + +/* 'In_Bengali': Block */ +static const OnigCodePoint CR_In_Bengali[] = { + 1, + 0x0980, 0x09ff, +}; /* CR_In_Bengali */ + +/* 'In_Gurmukhi': Block */ +static const OnigCodePoint CR_In_Gurmukhi[] = { + 1, + 0x0a00, 0x0a7f, +}; /* CR_In_Gurmukhi */ + +/* 'In_Gujarati': Block */ +static const OnigCodePoint CR_In_Gujarati[] = { + 1, + 0x0a80, 0x0aff, +}; /* CR_In_Gujarati */ + +/* 'In_Oriya': Block */ +static const OnigCodePoint CR_In_Oriya[] = { + 1, + 0x0b00, 0x0b7f, +}; /* CR_In_Oriya */ + +/* 'In_Tamil': Block */ +static const OnigCodePoint CR_In_Tamil[] = { + 1, + 0x0b80, 0x0bff, +}; /* CR_In_Tamil */ + +/* 'In_Telugu': Block */ +static const OnigCodePoint CR_In_Telugu[] = { + 1, + 0x0c00, 0x0c7f, +}; /* CR_In_Telugu */ + +/* 'In_Kannada': Block */ +static const OnigCodePoint CR_In_Kannada[] = { + 1, + 0x0c80, 0x0cff, +}; /* CR_In_Kannada */ + +/* 'In_Malayalam': Block */ +static const OnigCodePoint CR_In_Malayalam[] = { + 1, + 0x0d00, 0x0d7f, +}; /* CR_In_Malayalam */ + +/* 'In_Sinhala': Block */ +static const OnigCodePoint CR_In_Sinhala[] = { + 1, + 0x0d80, 0x0dff, +}; /* CR_In_Sinhala */ + +/* 'In_Thai': Block */ +static const OnigCodePoint CR_In_Thai[] = { + 1, + 0x0e00, 0x0e7f, +}; /* CR_In_Thai */ + +/* 'In_Lao': Block */ +static const OnigCodePoint CR_In_Lao[] = { + 1, + 0x0e80, 0x0eff, +}; /* CR_In_Lao */ + +/* 'In_Tibetan': Block */ +static const OnigCodePoint CR_In_Tibetan[] = { + 1, + 0x0f00, 0x0fff, +}; /* CR_In_Tibetan */ + +/* 'In_Myanmar': Block */ +static const OnigCodePoint CR_In_Myanmar[] = { + 1, + 0x1000, 0x109f, +}; /* CR_In_Myanmar */ + +/* 'In_Georgian': Block */ +static const OnigCodePoint CR_In_Georgian[] = { + 1, + 0x10a0, 0x10ff, +}; /* CR_In_Georgian */ + +/* 'In_Hangul_Jamo': Block */ +static const OnigCodePoint CR_In_Hangul_Jamo[] = { + 1, + 0x1100, 0x11ff, +}; /* CR_In_Hangul_Jamo */ + +/* 'In_Ethiopic': Block */ +static const OnigCodePoint CR_In_Ethiopic[] = { + 1, + 0x1200, 0x137f, +}; /* CR_In_Ethiopic */ + +/* 'In_Ethiopic_Supplement': Block */ +static const OnigCodePoint CR_In_Ethiopic_Supplement[] = { + 1, + 0x1380, 0x139f, +}; /* CR_In_Ethiopic_Supplement */ + +/* 'In_Cherokee': Block */ +static const OnigCodePoint CR_In_Cherokee[] = { + 1, + 0x13a0, 0x13ff, +}; /* CR_In_Cherokee */ + +/* 'In_Unified_Canadian_Aboriginal_Syllabics': Block */ +static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics[] = { + 1, + 0x1400, 0x167f, +}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics */ + +/* 'In_Ogham': Block */ +static const OnigCodePoint CR_In_Ogham[] = { + 1, + 0x1680, 0x169f, +}; /* CR_In_Ogham */ + +/* 'In_Runic': Block */ +static const OnigCodePoint CR_In_Runic[] = { + 1, + 0x16a0, 0x16ff, +}; /* CR_In_Runic */ + +/* 'In_Tagalog': Block */ +static const OnigCodePoint CR_In_Tagalog[] = { + 1, + 0x1700, 0x171f, +}; /* CR_In_Tagalog */ + +/* 'In_Hanunoo': Block */ +static const OnigCodePoint CR_In_Hanunoo[] = { + 1, + 0x1720, 0x173f, +}; /* CR_In_Hanunoo */ + +/* 'In_Buhid': Block */ +static const OnigCodePoint CR_In_Buhid[] = { + 1, + 0x1740, 0x175f, +}; /* CR_In_Buhid */ + +/* 'In_Tagbanwa': Block */ +static const OnigCodePoint CR_In_Tagbanwa[] = { + 1, + 0x1760, 0x177f, +}; /* CR_In_Tagbanwa */ + +/* 'In_Khmer': Block */ +static const OnigCodePoint CR_In_Khmer[] = { + 1, + 0x1780, 0x17ff, +}; /* CR_In_Khmer */ + +/* 'In_Mongolian': Block */ +static const OnigCodePoint CR_In_Mongolian[] = { + 1, + 0x1800, 0x18af, +}; /* CR_In_Mongolian */ + +/* 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */ +static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = { + 1, + 0x18b0, 0x18ff, +}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */ + +/* 'In_Limbu': Block */ +static const OnigCodePoint CR_In_Limbu[] = { + 1, + 0x1900, 0x194f, +}; /* CR_In_Limbu */ + +/* 'In_Tai_Le': Block */ +static const OnigCodePoint CR_In_Tai_Le[] = { + 1, + 0x1950, 0x197f, +}; /* CR_In_Tai_Le */ + +/* 'In_New_Tai_Lue': Block */ +static const OnigCodePoint CR_In_New_Tai_Lue[] = { + 1, + 0x1980, 0x19df, +}; /* CR_In_New_Tai_Lue */ + +/* 'In_Khmer_Symbols': Block */ +static const OnigCodePoint CR_In_Khmer_Symbols[] = { + 1, + 0x19e0, 0x19ff, +}; /* CR_In_Khmer_Symbols */ + +/* 'In_Buginese': Block */ +static const OnigCodePoint CR_In_Buginese[] = { + 1, + 0x1a00, 0x1a1f, +}; /* CR_In_Buginese */ + +/* 'In_Tai_Tham': Block */ +static const OnigCodePoint CR_In_Tai_Tham[] = { + 1, + 0x1a20, 0x1aaf, +}; /* CR_In_Tai_Tham */ + +/* 'In_Combining_Diacritical_Marks_Extended': Block */ +static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Extended[] = { + 1, + 0x1ab0, 0x1aff, +}; /* CR_In_Combining_Diacritical_Marks_Extended */ + +/* 'In_Balinese': Block */ +static const OnigCodePoint CR_In_Balinese[] = { + 1, + 0x1b00, 0x1b7f, +}; /* CR_In_Balinese */ + +/* 'In_Sundanese': Block */ +static const OnigCodePoint CR_In_Sundanese[] = { + 1, + 0x1b80, 0x1bbf, +}; /* CR_In_Sundanese */ + +/* 'In_Batak': Block */ +static const OnigCodePoint CR_In_Batak[] = { + 1, + 0x1bc0, 0x1bff, +}; /* CR_In_Batak */ + +/* 'In_Lepcha': Block */ +static const OnigCodePoint CR_In_Lepcha[] = { + 1, + 0x1c00, 0x1c4f, +}; /* CR_In_Lepcha */ + +/* 'In_Ol_Chiki': Block */ +#define CR_In_Ol_Chiki CR_Ol_Chiki + +/* 'In_Cyrillic_Extended_C': Block */ +static const OnigCodePoint CR_In_Cyrillic_Extended_C[] = { + 1, + 0x1c80, 0x1c8f, +}; /* CR_In_Cyrillic_Extended_C */ + +/* 'In_Georgian_Extended': Block */ +static const OnigCodePoint CR_In_Georgian_Extended[] = { + 1, + 0x1c90, 0x1cbf, +}; /* CR_In_Georgian_Extended */ + +/* 'In_Sundanese_Supplement': Block */ +static const OnigCodePoint CR_In_Sundanese_Supplement[] = { + 1, + 0x1cc0, 0x1ccf, +}; /* CR_In_Sundanese_Supplement */ + +/* 'In_Vedic_Extensions': Block */ +static const OnigCodePoint CR_In_Vedic_Extensions[] = { + 1, + 0x1cd0, 0x1cff, +}; /* CR_In_Vedic_Extensions */ + +/* 'In_Phonetic_Extensions': Block */ +static const OnigCodePoint CR_In_Phonetic_Extensions[] = { + 1, + 0x1d00, 0x1d7f, +}; /* CR_In_Phonetic_Extensions */ + +/* 'In_Phonetic_Extensions_Supplement': Block */ +static const OnigCodePoint CR_In_Phonetic_Extensions_Supplement[] = { + 1, + 0x1d80, 0x1dbf, +}; /* CR_In_Phonetic_Extensions_Supplement */ + +/* 'In_Combining_Diacritical_Marks_Supplement': Block */ +static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Supplement[] = { + 1, + 0x1dc0, 0x1dff, +}; /* CR_In_Combining_Diacritical_Marks_Supplement */ + +/* 'In_Latin_Extended_Additional': Block */ +static const OnigCodePoint CR_In_Latin_Extended_Additional[] = { + 1, + 0x1e00, 0x1eff, +}; /* CR_In_Latin_Extended_Additional */ + +/* 'In_Greek_Extended': Block */ +static const OnigCodePoint CR_In_Greek_Extended[] = { + 1, + 0x1f00, 0x1fff, +}; /* CR_In_Greek_Extended */ + +/* 'In_General_Punctuation': Block */ +static const OnigCodePoint CR_In_General_Punctuation[] = { + 1, + 0x2000, 0x206f, +}; /* CR_In_General_Punctuation */ + +/* 'In_Superscripts_and_Subscripts': Block */ +static const OnigCodePoint CR_In_Superscripts_and_Subscripts[] = { + 1, + 0x2070, 0x209f, +}; /* CR_In_Superscripts_and_Subscripts */ + +/* 'In_Currency_Symbols': Block */ +static const OnigCodePoint CR_In_Currency_Symbols[] = { + 1, + 0x20a0, 0x20cf, +}; /* CR_In_Currency_Symbols */ + +/* 'In_Combining_Diacritical_Marks_for_Symbols': Block */ +static const OnigCodePoint CR_In_Combining_Diacritical_Marks_for_Symbols[] = { + 1, + 0x20d0, 0x20ff, +}; /* CR_In_Combining_Diacritical_Marks_for_Symbols */ + +/* 'In_Letterlike_Symbols': Block */ +static const OnigCodePoint CR_In_Letterlike_Symbols[] = { + 1, + 0x2100, 0x214f, +}; /* CR_In_Letterlike_Symbols */ + +/* 'In_Number_Forms': Block */ +static const OnigCodePoint CR_In_Number_Forms[] = { + 1, + 0x2150, 0x218f, +}; /* CR_In_Number_Forms */ + +/* 'In_Arrows': Block */ +static const OnigCodePoint CR_In_Arrows[] = { + 1, + 0x2190, 0x21ff, +}; /* CR_In_Arrows */ + +/* 'In_Mathematical_Operators': Block */ +static const OnigCodePoint CR_In_Mathematical_Operators[] = { + 1, + 0x2200, 0x22ff, +}; /* CR_In_Mathematical_Operators */ + +/* 'In_Miscellaneous_Technical': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Technical[] = { + 1, + 0x2300, 0x23ff, +}; /* CR_In_Miscellaneous_Technical */ + +/* 'In_Control_Pictures': Block */ +static const OnigCodePoint CR_In_Control_Pictures[] = { + 1, + 0x2400, 0x243f, +}; /* CR_In_Control_Pictures */ + +/* 'In_Optical_Character_Recognition': Block */ +static const OnigCodePoint CR_In_Optical_Character_Recognition[] = { + 1, + 0x2440, 0x245f, +}; /* CR_In_Optical_Character_Recognition */ + +/* 'In_Enclosed_Alphanumerics': Block */ +static const OnigCodePoint CR_In_Enclosed_Alphanumerics[] = { + 1, + 0x2460, 0x24ff, +}; /* CR_In_Enclosed_Alphanumerics */ + +/* 'In_Box_Drawing': Block */ +static const OnigCodePoint CR_In_Box_Drawing[] = { + 1, + 0x2500, 0x257f, +}; /* CR_In_Box_Drawing */ + +/* 'In_Block_Elements': Block */ +static const OnigCodePoint CR_In_Block_Elements[] = { + 1, + 0x2580, 0x259f, +}; /* CR_In_Block_Elements */ + +/* 'In_Geometric_Shapes': Block */ +static const OnigCodePoint CR_In_Geometric_Shapes[] = { + 1, + 0x25a0, 0x25ff, +}; /* CR_In_Geometric_Shapes */ + +/* 'In_Miscellaneous_Symbols': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Symbols[] = { + 1, + 0x2600, 0x26ff, +}; /* CR_In_Miscellaneous_Symbols */ + +/* 'In_Dingbats': Block */ +static const OnigCodePoint CR_In_Dingbats[] = { + 1, + 0x2700, 0x27bf, +}; /* CR_In_Dingbats */ + +/* 'In_Miscellaneous_Mathematical_Symbols_A': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_A[] = { + 1, + 0x27c0, 0x27ef, +}; /* CR_In_Miscellaneous_Mathematical_Symbols_A */ + +/* 'In_Supplemental_Arrows_A': Block */ +static const OnigCodePoint CR_In_Supplemental_Arrows_A[] = { + 1, + 0x27f0, 0x27ff, +}; /* CR_In_Supplemental_Arrows_A */ + +/* 'In_Braille_Patterns': Block */ +#define CR_In_Braille_Patterns CR_Braille + +/* 'In_Supplemental_Arrows_B': Block */ +static const OnigCodePoint CR_In_Supplemental_Arrows_B[] = { + 1, + 0x2900, 0x297f, +}; /* CR_In_Supplemental_Arrows_B */ + +/* 'In_Miscellaneous_Mathematical_Symbols_B': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_B[] = { + 1, + 0x2980, 0x29ff, +}; /* CR_In_Miscellaneous_Mathematical_Symbols_B */ + +/* 'In_Supplemental_Mathematical_Operators': Block */ +static const OnigCodePoint CR_In_Supplemental_Mathematical_Operators[] = { + 1, + 0x2a00, 0x2aff, +}; /* CR_In_Supplemental_Mathematical_Operators */ + +/* 'In_Miscellaneous_Symbols_and_Arrows': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Arrows[] = { + 1, + 0x2b00, 0x2bff, +}; /* CR_In_Miscellaneous_Symbols_and_Arrows */ + +/* 'In_Glagolitic': Block */ +static const OnigCodePoint CR_In_Glagolitic[] = { + 1, + 0x2c00, 0x2c5f, +}; /* CR_In_Glagolitic */ + +/* 'In_Latin_Extended_C': Block */ +static const OnigCodePoint CR_In_Latin_Extended_C[] = { + 1, + 0x2c60, 0x2c7f, +}; /* CR_In_Latin_Extended_C */ + +/* 'In_Coptic': Block */ +static const OnigCodePoint CR_In_Coptic[] = { + 1, + 0x2c80, 0x2cff, +}; /* CR_In_Coptic */ + +/* 'In_Georgian_Supplement': Block */ +static const OnigCodePoint CR_In_Georgian_Supplement[] = { + 1, + 0x2d00, 0x2d2f, +}; /* CR_In_Georgian_Supplement */ + +/* 'In_Tifinagh': Block */ +static const OnigCodePoint CR_In_Tifinagh[] = { + 1, + 0x2d30, 0x2d7f, +}; /* CR_In_Tifinagh */ + +/* 'In_Ethiopic_Extended': Block */ +static const OnigCodePoint CR_In_Ethiopic_Extended[] = { + 1, + 0x2d80, 0x2ddf, +}; /* CR_In_Ethiopic_Extended */ + +/* 'In_Cyrillic_Extended_A': Block */ +static const OnigCodePoint CR_In_Cyrillic_Extended_A[] = { + 1, + 0x2de0, 0x2dff, +}; /* CR_In_Cyrillic_Extended_A */ + +/* 'In_Supplemental_Punctuation': Block */ +static const OnigCodePoint CR_In_Supplemental_Punctuation[] = { + 1, + 0x2e00, 0x2e7f, +}; /* CR_In_Supplemental_Punctuation */ + +/* 'In_CJK_Radicals_Supplement': Block */ +static const OnigCodePoint CR_In_CJK_Radicals_Supplement[] = { + 1, + 0x2e80, 0x2eff, +}; /* CR_In_CJK_Radicals_Supplement */ + +/* 'In_Kangxi_Radicals': Block */ +static const OnigCodePoint CR_In_Kangxi_Radicals[] = { + 1, + 0x2f00, 0x2fdf, +}; /* CR_In_Kangxi_Radicals */ + +/* 'In_Ideographic_Description_Characters': Block */ +static const OnigCodePoint CR_In_Ideographic_Description_Characters[] = { + 1, + 0x2ff0, 0x2fff, +}; /* CR_In_Ideographic_Description_Characters */ + +/* 'In_CJK_Symbols_and_Punctuation': Block */ +static const OnigCodePoint CR_In_CJK_Symbols_and_Punctuation[] = { + 1, + 0x3000, 0x303f, +}; /* CR_In_CJK_Symbols_and_Punctuation */ + +/* 'In_Hiragana': Block */ +static const OnigCodePoint CR_In_Hiragana[] = { + 1, + 0x3040, 0x309f, +}; /* CR_In_Hiragana */ + +/* 'In_Katakana': Block */ +static const OnigCodePoint CR_In_Katakana[] = { + 1, + 0x30a0, 0x30ff, +}; /* CR_In_Katakana */ + +/* 'In_Bopomofo': Block */ +static const OnigCodePoint CR_In_Bopomofo[] = { + 1, + 0x3100, 0x312f, +}; /* CR_In_Bopomofo */ + +/* 'In_Hangul_Compatibility_Jamo': Block */ +static const OnigCodePoint CR_In_Hangul_Compatibility_Jamo[] = { + 1, + 0x3130, 0x318f, +}; /* CR_In_Hangul_Compatibility_Jamo */ + +/* 'In_Kanbun': Block */ +static const OnigCodePoint CR_In_Kanbun[] = { + 1, + 0x3190, 0x319f, +}; /* CR_In_Kanbun */ + +/* 'In_Bopomofo_Extended': Block */ +static const OnigCodePoint CR_In_Bopomofo_Extended[] = { + 1, + 0x31a0, 0x31bf, +}; /* CR_In_Bopomofo_Extended */ + +/* 'In_CJK_Strokes': Block */ +static const OnigCodePoint CR_In_CJK_Strokes[] = { + 1, + 0x31c0, 0x31ef, +}; /* CR_In_CJK_Strokes */ + +/* 'In_Katakana_Phonetic_Extensions': Block */ +static const OnigCodePoint CR_In_Katakana_Phonetic_Extensions[] = { + 1, + 0x31f0, 0x31ff, +}; /* CR_In_Katakana_Phonetic_Extensions */ + +/* 'In_Enclosed_CJK_Letters_and_Months': Block */ +static const OnigCodePoint CR_In_Enclosed_CJK_Letters_and_Months[] = { + 1, + 0x3200, 0x32ff, +}; /* CR_In_Enclosed_CJK_Letters_and_Months */ + +/* 'In_CJK_Compatibility': Block */ +static const OnigCodePoint CR_In_CJK_Compatibility[] = { + 1, + 0x3300, 0x33ff, +}; /* CR_In_CJK_Compatibility */ + +/* 'In_CJK_Unified_Ideographs_Extension_A': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_A[] = { + 1, + 0x3400, 0x4dbf, +}; /* CR_In_CJK_Unified_Ideographs_Extension_A */ + +/* 'In_Yijing_Hexagram_Symbols': Block */ +static const OnigCodePoint CR_In_Yijing_Hexagram_Symbols[] = { + 1, + 0x4dc0, 0x4dff, +}; /* CR_In_Yijing_Hexagram_Symbols */ + +/* 'In_CJK_Unified_Ideographs': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs[] = { + 1, + 0x4e00, 0x9fff, +}; /* CR_In_CJK_Unified_Ideographs */ + +/* 'In_Yi_Syllables': Block */ +static const OnigCodePoint CR_In_Yi_Syllables[] = { + 1, + 0xa000, 0xa48f, +}; /* CR_In_Yi_Syllables */ + +/* 'In_Yi_Radicals': Block */ +static const OnigCodePoint CR_In_Yi_Radicals[] = { + 1, + 0xa490, 0xa4cf, +}; /* CR_In_Yi_Radicals */ + +/* 'In_Lisu': Block */ +static const OnigCodePoint CR_In_Lisu[] = { + 1, + 0xa4d0, 0xa4ff, +}; /* CR_In_Lisu */ + +/* 'In_Vai': Block */ +static const OnigCodePoint CR_In_Vai[] = { + 1, + 0xa500, 0xa63f, +}; /* CR_In_Vai */ + +/* 'In_Cyrillic_Extended_B': Block */ +static const OnigCodePoint CR_In_Cyrillic_Extended_B[] = { + 1, + 0xa640, 0xa69f, +}; /* CR_In_Cyrillic_Extended_B */ + +/* 'In_Bamum': Block */ +static const OnigCodePoint CR_In_Bamum[] = { + 1, + 0xa6a0, 0xa6ff, +}; /* CR_In_Bamum */ + +/* 'In_Modifier_Tone_Letters': Block */ +static const OnigCodePoint CR_In_Modifier_Tone_Letters[] = { + 1, + 0xa700, 0xa71f, +}; /* CR_In_Modifier_Tone_Letters */ + +/* 'In_Latin_Extended_D': Block */ +static const OnigCodePoint CR_In_Latin_Extended_D[] = { + 1, + 0xa720, 0xa7ff, +}; /* CR_In_Latin_Extended_D */ + +/* 'In_Syloti_Nagri': Block */ +static const OnigCodePoint CR_In_Syloti_Nagri[] = { + 1, + 0xa800, 0xa82f, +}; /* CR_In_Syloti_Nagri */ + +/* 'In_Common_Indic_Number_Forms': Block */ +static const OnigCodePoint CR_In_Common_Indic_Number_Forms[] = { + 1, + 0xa830, 0xa83f, +}; /* CR_In_Common_Indic_Number_Forms */ + +/* 'In_Phags_pa': Block */ +static const OnigCodePoint CR_In_Phags_pa[] = { + 1, + 0xa840, 0xa87f, +}; /* CR_In_Phags_pa */ + +/* 'In_Saurashtra': Block */ +static const OnigCodePoint CR_In_Saurashtra[] = { + 1, + 0xa880, 0xa8df, +}; /* CR_In_Saurashtra */ + +/* 'In_Devanagari_Extended': Block */ +static const OnigCodePoint CR_In_Devanagari_Extended[] = { + 1, + 0xa8e0, 0xa8ff, +}; /* CR_In_Devanagari_Extended */ + +/* 'In_Kayah_Li': Block */ +static const OnigCodePoint CR_In_Kayah_Li[] = { + 1, + 0xa900, 0xa92f, +}; /* CR_In_Kayah_Li */ + +/* 'In_Rejang': Block */ +static const OnigCodePoint CR_In_Rejang[] = { + 1, + 0xa930, 0xa95f, +}; /* CR_In_Rejang */ + +/* 'In_Hangul_Jamo_Extended_A': Block */ +static const OnigCodePoint CR_In_Hangul_Jamo_Extended_A[] = { + 1, + 0xa960, 0xa97f, +}; /* CR_In_Hangul_Jamo_Extended_A */ + +/* 'In_Javanese': Block */ +static const OnigCodePoint CR_In_Javanese[] = { + 1, + 0xa980, 0xa9df, +}; /* CR_In_Javanese */ + +/* 'In_Myanmar_Extended_B': Block */ +static const OnigCodePoint CR_In_Myanmar_Extended_B[] = { + 1, + 0xa9e0, 0xa9ff, +}; /* CR_In_Myanmar_Extended_B */ + +/* 'In_Cham': Block */ +static const OnigCodePoint CR_In_Cham[] = { + 1, + 0xaa00, 0xaa5f, +}; /* CR_In_Cham */ + +/* 'In_Myanmar_Extended_A': Block */ +static const OnigCodePoint CR_In_Myanmar_Extended_A[] = { + 1, + 0xaa60, 0xaa7f, +}; /* CR_In_Myanmar_Extended_A */ + +/* 'In_Tai_Viet': Block */ +static const OnigCodePoint CR_In_Tai_Viet[] = { + 1, + 0xaa80, 0xaadf, +}; /* CR_In_Tai_Viet */ + +/* 'In_Meetei_Mayek_Extensions': Block */ +static const OnigCodePoint CR_In_Meetei_Mayek_Extensions[] = { + 1, + 0xaae0, 0xaaff, +}; /* CR_In_Meetei_Mayek_Extensions */ + +/* 'In_Ethiopic_Extended_A': Block */ +static const OnigCodePoint CR_In_Ethiopic_Extended_A[] = { + 1, + 0xab00, 0xab2f, +}; /* CR_In_Ethiopic_Extended_A */ + +/* 'In_Latin_Extended_E': Block */ +static const OnigCodePoint CR_In_Latin_Extended_E[] = { + 1, + 0xab30, 0xab6f, +}; /* CR_In_Latin_Extended_E */ + +/* 'In_Cherokee_Supplement': Block */ +static const OnigCodePoint CR_In_Cherokee_Supplement[] = { + 1, + 0xab70, 0xabbf, +}; /* CR_In_Cherokee_Supplement */ + +/* 'In_Meetei_Mayek': Block */ +static const OnigCodePoint CR_In_Meetei_Mayek[] = { + 1, + 0xabc0, 0xabff, +}; /* CR_In_Meetei_Mayek */ + +/* 'In_Hangul_Syllables': Block */ +static const OnigCodePoint CR_In_Hangul_Syllables[] = { + 1, + 0xac00, 0xd7af, +}; /* CR_In_Hangul_Syllables */ + +/* 'In_Hangul_Jamo_Extended_B': Block */ +static const OnigCodePoint CR_In_Hangul_Jamo_Extended_B[] = { + 1, + 0xd7b0, 0xd7ff, +}; /* CR_In_Hangul_Jamo_Extended_B */ + +/* 'In_High_Surrogates': Block */ +static const OnigCodePoint CR_In_High_Surrogates[] = { + 1, + 0xd800, 0xdb7f, +}; /* CR_In_High_Surrogates */ + +/* 'In_High_Private_Use_Surrogates': Block */ +static const OnigCodePoint CR_In_High_Private_Use_Surrogates[] = { + 1, + 0xdb80, 0xdbff, +}; /* CR_In_High_Private_Use_Surrogates */ + +/* 'In_Low_Surrogates': Block */ +static const OnigCodePoint CR_In_Low_Surrogates[] = { + 1, + 0xdc00, 0xdfff, +}; /* CR_In_Low_Surrogates */ + +/* 'In_Private_Use_Area': Block */ +static const OnigCodePoint CR_In_Private_Use_Area[] = { + 1, + 0xe000, 0xf8ff, +}; /* CR_In_Private_Use_Area */ + +/* 'In_CJK_Compatibility_Ideographs': Block */ +static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs[] = { + 1, + 0xf900, 0xfaff, +}; /* CR_In_CJK_Compatibility_Ideographs */ + +/* 'In_Alphabetic_Presentation_Forms': Block */ +static const OnigCodePoint CR_In_Alphabetic_Presentation_Forms[] = { + 1, + 0xfb00, 0xfb4f, +}; /* CR_In_Alphabetic_Presentation_Forms */ + +/* 'In_Arabic_Presentation_Forms_A': Block */ +static const OnigCodePoint CR_In_Arabic_Presentation_Forms_A[] = { + 1, + 0xfb50, 0xfdff, +}; /* CR_In_Arabic_Presentation_Forms_A */ + +/* 'In_Variation_Selectors': Block */ +static const OnigCodePoint CR_In_Variation_Selectors[] = { + 1, + 0xfe00, 0xfe0f, +}; /* CR_In_Variation_Selectors */ + +/* 'In_Vertical_Forms': Block */ +static const OnigCodePoint CR_In_Vertical_Forms[] = { + 1, + 0xfe10, 0xfe1f, +}; /* CR_In_Vertical_Forms */ + +/* 'In_Combining_Half_Marks': Block */ +static const OnigCodePoint CR_In_Combining_Half_Marks[] = { + 1, + 0xfe20, 0xfe2f, +}; /* CR_In_Combining_Half_Marks */ + +/* 'In_CJK_Compatibility_Forms': Block */ +static const OnigCodePoint CR_In_CJK_Compatibility_Forms[] = { + 1, + 0xfe30, 0xfe4f, +}; /* CR_In_CJK_Compatibility_Forms */ + +/* 'In_Small_Form_Variants': Block */ +static const OnigCodePoint CR_In_Small_Form_Variants[] = { + 1, + 0xfe50, 0xfe6f, +}; /* CR_In_Small_Form_Variants */ + +/* 'In_Arabic_Presentation_Forms_B': Block */ +static const OnigCodePoint CR_In_Arabic_Presentation_Forms_B[] = { + 1, + 0xfe70, 0xfeff, +}; /* CR_In_Arabic_Presentation_Forms_B */ + +/* 'In_Halfwidth_and_Fullwidth_Forms': Block */ +static const OnigCodePoint CR_In_Halfwidth_and_Fullwidth_Forms[] = { + 1, + 0xff00, 0xffef, +}; /* CR_In_Halfwidth_and_Fullwidth_Forms */ + +/* 'In_Specials': Block */ +static const OnigCodePoint CR_In_Specials[] = { + 1, + 0xfff0, 0xffff, +}; /* CR_In_Specials */ + +/* 'In_Linear_B_Syllabary': Block */ +static const OnigCodePoint CR_In_Linear_B_Syllabary[] = { + 1, + 0x10000, 0x1007f, +}; /* CR_In_Linear_B_Syllabary */ + +/* 'In_Linear_B_Ideograms': Block */ +static const OnigCodePoint CR_In_Linear_B_Ideograms[] = { + 1, + 0x10080, 0x100ff, +}; /* CR_In_Linear_B_Ideograms */ + +/* 'In_Aegean_Numbers': Block */ +static const OnigCodePoint CR_In_Aegean_Numbers[] = { + 1, + 0x10100, 0x1013f, +}; /* CR_In_Aegean_Numbers */ + +/* 'In_Ancient_Greek_Numbers': Block */ +static const OnigCodePoint CR_In_Ancient_Greek_Numbers[] = { + 1, + 0x10140, 0x1018f, +}; /* CR_In_Ancient_Greek_Numbers */ + +/* 'In_Ancient_Symbols': Block */ +static const OnigCodePoint CR_In_Ancient_Symbols[] = { + 1, + 0x10190, 0x101cf, +}; /* CR_In_Ancient_Symbols */ + +/* 'In_Phaistos_Disc': Block */ +static const OnigCodePoint CR_In_Phaistos_Disc[] = { + 1, + 0x101d0, 0x101ff, +}; /* CR_In_Phaistos_Disc */ + +/* 'In_Lycian': Block */ +static const OnigCodePoint CR_In_Lycian[] = { + 1, + 0x10280, 0x1029f, +}; /* CR_In_Lycian */ + +/* 'In_Carian': Block */ +static const OnigCodePoint CR_In_Carian[] = { + 1, + 0x102a0, 0x102df, +}; /* CR_In_Carian */ + +/* 'In_Coptic_Epact_Numbers': Block */ +static const OnigCodePoint CR_In_Coptic_Epact_Numbers[] = { + 1, + 0x102e0, 0x102ff, +}; /* CR_In_Coptic_Epact_Numbers */ + +/* 'In_Old_Italic': Block */ +static const OnigCodePoint CR_In_Old_Italic[] = { + 1, + 0x10300, 0x1032f, +}; /* CR_In_Old_Italic */ + +/* 'In_Gothic': Block */ +static const OnigCodePoint CR_In_Gothic[] = { + 1, + 0x10330, 0x1034f, +}; /* CR_In_Gothic */ + +/* 'In_Old_Permic': Block */ +static const OnigCodePoint CR_In_Old_Permic[] = { + 1, + 0x10350, 0x1037f, +}; /* CR_In_Old_Permic */ + +/* 'In_Ugaritic': Block */ +static const OnigCodePoint CR_In_Ugaritic[] = { + 1, + 0x10380, 0x1039f, +}; /* CR_In_Ugaritic */ + +/* 'In_Old_Persian': Block */ +static const OnigCodePoint CR_In_Old_Persian[] = { + 1, + 0x103a0, 0x103df, +}; /* CR_In_Old_Persian */ + +/* 'In_Deseret': Block */ +#define CR_In_Deseret CR_Deseret + +/* 'In_Shavian': Block */ +#define CR_In_Shavian CR_Shavian + +/* 'In_Osmanya': Block */ +static const OnigCodePoint CR_In_Osmanya[] = { + 1, + 0x10480, 0x104af, +}; /* CR_In_Osmanya */ + +/* 'In_Osage': Block */ +static const OnigCodePoint CR_In_Osage[] = { + 1, + 0x104b0, 0x104ff, +}; /* CR_In_Osage */ + +/* 'In_Elbasan': Block */ +static const OnigCodePoint CR_In_Elbasan[] = { + 1, + 0x10500, 0x1052f, +}; /* CR_In_Elbasan */ + +/* 'In_Caucasian_Albanian': Block */ +static const OnigCodePoint CR_In_Caucasian_Albanian[] = { + 1, + 0x10530, 0x1056f, +}; /* CR_In_Caucasian_Albanian */ + +/* 'In_Vithkuqi': Block */ +static const OnigCodePoint CR_In_Vithkuqi[] = { + 1, + 0x10570, 0x105bf, +}; /* CR_In_Vithkuqi */ + +/* 'In_Linear_A': Block */ +static const OnigCodePoint CR_In_Linear_A[] = { + 1, + 0x10600, 0x1077f, +}; /* CR_In_Linear_A */ + +/* 'In_Latin_Extended_F': Block */ +static const OnigCodePoint CR_In_Latin_Extended_F[] = { + 1, + 0x10780, 0x107bf, +}; /* CR_In_Latin_Extended_F */ + +/* 'In_Cypriot_Syllabary': Block */ +static const OnigCodePoint CR_In_Cypriot_Syllabary[] = { + 1, + 0x10800, 0x1083f, +}; /* CR_In_Cypriot_Syllabary */ + +/* 'In_Imperial_Aramaic': Block */ +static const OnigCodePoint CR_In_Imperial_Aramaic[] = { + 1, + 0x10840, 0x1085f, +}; /* CR_In_Imperial_Aramaic */ + +/* 'In_Palmyrene': Block */ +#define CR_In_Palmyrene CR_Palmyrene + +/* 'In_Nabataean': Block */ +static const OnigCodePoint CR_In_Nabataean[] = { + 1, + 0x10880, 0x108af, +}; /* CR_In_Nabataean */ + +/* 'In_Hatran': Block */ +static const OnigCodePoint CR_In_Hatran[] = { + 1, + 0x108e0, 0x108ff, +}; /* CR_In_Hatran */ + +/* 'In_Phoenician': Block */ +static const OnigCodePoint CR_In_Phoenician[] = { + 1, + 0x10900, 0x1091f, +}; /* CR_In_Phoenician */ + +/* 'In_Lydian': Block */ +static const OnigCodePoint CR_In_Lydian[] = { + 1, + 0x10920, 0x1093f, +}; /* CR_In_Lydian */ + +/* 'In_Meroitic_Hieroglyphs': Block */ +#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs + +/* 'In_Meroitic_Cursive': Block */ +static const OnigCodePoint CR_In_Meroitic_Cursive[] = { + 1, + 0x109a0, 0x109ff, +}; /* CR_In_Meroitic_Cursive */ + +/* 'In_Kharoshthi': Block */ +static const OnigCodePoint CR_In_Kharoshthi[] = { + 1, + 0x10a00, 0x10a5f, +}; /* CR_In_Kharoshthi */ + +/* 'In_Old_South_Arabian': Block */ +#define CR_In_Old_South_Arabian CR_Old_South_Arabian + +/* 'In_Old_North_Arabian': Block */ +#define CR_In_Old_North_Arabian CR_Old_North_Arabian + +/* 'In_Manichaean': Block */ +static const OnigCodePoint CR_In_Manichaean[] = { + 1, + 0x10ac0, 0x10aff, +}; /* CR_In_Manichaean */ + +/* 'In_Avestan': Block */ +static const OnigCodePoint CR_In_Avestan[] = { + 1, + 0x10b00, 0x10b3f, +}; /* CR_In_Avestan */ + +/* 'In_Inscriptional_Parthian': Block */ +static const OnigCodePoint CR_In_Inscriptional_Parthian[] = { + 1, + 0x10b40, 0x10b5f, +}; /* CR_In_Inscriptional_Parthian */ + +/* 'In_Inscriptional_Pahlavi': Block */ +static const OnigCodePoint CR_In_Inscriptional_Pahlavi[] = { + 1, + 0x10b60, 0x10b7f, +}; /* CR_In_Inscriptional_Pahlavi */ + +/* 'In_Psalter_Pahlavi': Block */ +static const OnigCodePoint CR_In_Psalter_Pahlavi[] = { + 1, + 0x10b80, 0x10baf, +}; /* CR_In_Psalter_Pahlavi */ + +/* 'In_Old_Turkic': Block */ +static const OnigCodePoint CR_In_Old_Turkic[] = { + 1, + 0x10c00, 0x10c4f, +}; /* CR_In_Old_Turkic */ + +/* 'In_Old_Hungarian': Block */ +static const OnigCodePoint CR_In_Old_Hungarian[] = { + 1, + 0x10c80, 0x10cff, +}; /* CR_In_Old_Hungarian */ + +/* 'In_Hanifi_Rohingya': Block */ +static const OnigCodePoint CR_In_Hanifi_Rohingya[] = { + 1, + 0x10d00, 0x10d3f, +}; /* CR_In_Hanifi_Rohingya */ + +/* 'In_Rumi_Numeral_Symbols': Block */ +static const OnigCodePoint CR_In_Rumi_Numeral_Symbols[] = { + 1, + 0x10e60, 0x10e7f, +}; /* CR_In_Rumi_Numeral_Symbols */ + +/* 'In_Yezidi': Block */ +static const OnigCodePoint CR_In_Yezidi[] = { + 1, + 0x10e80, 0x10ebf, +}; /* CR_In_Yezidi */ + +/* 'In_Arabic_Extended_C': Block */ +static const OnigCodePoint CR_In_Arabic_Extended_C[] = { + 1, + 0x10ec0, 0x10eff, +}; /* CR_In_Arabic_Extended_C */ + +/* 'In_Old_Sogdian': Block */ +static const OnigCodePoint CR_In_Old_Sogdian[] = { + 1, + 0x10f00, 0x10f2f, +}; /* CR_In_Old_Sogdian */ + +/* 'In_Sogdian': Block */ +static const OnigCodePoint CR_In_Sogdian[] = { + 1, + 0x10f30, 0x10f6f, +}; /* CR_In_Sogdian */ + +/* 'In_Old_Uyghur': Block */ +static const OnigCodePoint CR_In_Old_Uyghur[] = { + 1, + 0x10f70, 0x10faf, +}; /* CR_In_Old_Uyghur */ + +/* 'In_Chorasmian': Block */ +static const OnigCodePoint CR_In_Chorasmian[] = { + 1, + 0x10fb0, 0x10fdf, +}; /* CR_In_Chorasmian */ + +/* 'In_Elymaic': Block */ +static const OnigCodePoint CR_In_Elymaic[] = { + 1, + 0x10fe0, 0x10fff, +}; /* CR_In_Elymaic */ + +/* 'In_Brahmi': Block */ +static const OnigCodePoint CR_In_Brahmi[] = { + 1, + 0x11000, 0x1107f, +}; /* CR_In_Brahmi */ + +/* 'In_Kaithi': Block */ +static const OnigCodePoint CR_In_Kaithi[] = { + 1, + 0x11080, 0x110cf, +}; /* CR_In_Kaithi */ + +/* 'In_Sora_Sompeng': Block */ +static const OnigCodePoint CR_In_Sora_Sompeng[] = { + 1, + 0x110d0, 0x110ff, +}; /* CR_In_Sora_Sompeng */ + +/* 'In_Chakma': Block */ +static const OnigCodePoint CR_In_Chakma[] = { + 1, + 0x11100, 0x1114f, +}; /* CR_In_Chakma */ + +/* 'In_Mahajani': Block */ +static const OnigCodePoint CR_In_Mahajani[] = { + 1, + 0x11150, 0x1117f, +}; /* CR_In_Mahajani */ + +/* 'In_Sharada': Block */ +#define CR_In_Sharada CR_Sharada + +/* 'In_Sinhala_Archaic_Numbers': Block */ +static const OnigCodePoint CR_In_Sinhala_Archaic_Numbers[] = { + 1, + 0x111e0, 0x111ff, +}; /* CR_In_Sinhala_Archaic_Numbers */ + +/* 'In_Khojki': Block */ +static const OnigCodePoint CR_In_Khojki[] = { + 1, + 0x11200, 0x1124f, +}; /* CR_In_Khojki */ + +/* 'In_Multani': Block */ +static const OnigCodePoint CR_In_Multani[] = { + 1, + 0x11280, 0x112af, +}; /* CR_In_Multani */ + +/* 'In_Khudawadi': Block */ +static const OnigCodePoint CR_In_Khudawadi[] = { + 1, + 0x112b0, 0x112ff, +}; /* CR_In_Khudawadi */ + +/* 'In_Grantha': Block */ +static const OnigCodePoint CR_In_Grantha[] = { + 1, + 0x11300, 0x1137f, +}; /* CR_In_Grantha */ + +/* 'In_Newa': Block */ +static const OnigCodePoint CR_In_Newa[] = { + 1, + 0x11400, 0x1147f, +}; /* CR_In_Newa */ + +/* 'In_Tirhuta': Block */ +static const OnigCodePoint CR_In_Tirhuta[] = { + 1, + 0x11480, 0x114df, +}; /* CR_In_Tirhuta */ + +/* 'In_Siddham': Block */ +static const OnigCodePoint CR_In_Siddham[] = { + 1, + 0x11580, 0x115ff, +}; /* CR_In_Siddham */ + +/* 'In_Modi': Block */ +static const OnigCodePoint CR_In_Modi[] = { + 1, + 0x11600, 0x1165f, +}; /* CR_In_Modi */ + +/* 'In_Mongolian_Supplement': Block */ +static const OnigCodePoint CR_In_Mongolian_Supplement[] = { + 1, + 0x11660, 0x1167f, +}; /* CR_In_Mongolian_Supplement */ + +/* 'In_Takri': Block */ +static const OnigCodePoint CR_In_Takri[] = { + 1, + 0x11680, 0x116cf, +}; /* CR_In_Takri */ + +/* 'In_Ahom': Block */ +static const OnigCodePoint CR_In_Ahom[] = { + 1, + 0x11700, 0x1174f, +}; /* CR_In_Ahom */ + +/* 'In_Dogra': Block */ +static const OnigCodePoint CR_In_Dogra[] = { + 1, + 0x11800, 0x1184f, +}; /* CR_In_Dogra */ + +/* 'In_Warang_Citi': Block */ +static const OnigCodePoint CR_In_Warang_Citi[] = { + 1, + 0x118a0, 0x118ff, +}; /* CR_In_Warang_Citi */ + +/* 'In_Dives_Akuru': Block */ +static const OnigCodePoint CR_In_Dives_Akuru[] = { + 1, + 0x11900, 0x1195f, +}; /* CR_In_Dives_Akuru */ + +/* 'In_Nandinagari': Block */ +static const OnigCodePoint CR_In_Nandinagari[] = { + 1, + 0x119a0, 0x119ff, +}; /* CR_In_Nandinagari */ + +/* 'In_Zanabazar_Square': Block */ +static const OnigCodePoint CR_In_Zanabazar_Square[] = { + 1, + 0x11a00, 0x11a4f, +}; /* CR_In_Zanabazar_Square */ + +/* 'In_Soyombo': Block */ +static const OnigCodePoint CR_In_Soyombo[] = { + 1, + 0x11a50, 0x11aaf, +}; /* CR_In_Soyombo */ + +/* 'In_Unified_Canadian_Aboriginal_Syllabics_Extended_A': Block */ +static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A[] = { + 1, + 0x11ab0, 0x11abf, +}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A */ + +/* 'In_Pau_Cin_Hau': Block */ +static const OnigCodePoint CR_In_Pau_Cin_Hau[] = { + 1, + 0x11ac0, 0x11aff, +}; /* CR_In_Pau_Cin_Hau */ + +/* 'In_Devanagari_Extended_A': Block */ +static const OnigCodePoint CR_In_Devanagari_Extended_A[] = { + 1, + 0x11b00, 0x11b5f, +}; /* CR_In_Devanagari_Extended_A */ + +/* 'In_Bhaiksuki': Block */ +static const OnigCodePoint CR_In_Bhaiksuki[] = { + 1, + 0x11c00, 0x11c6f, +}; /* CR_In_Bhaiksuki */ + +/* 'In_Marchen': Block */ +static const OnigCodePoint CR_In_Marchen[] = { + 1, + 0x11c70, 0x11cbf, +}; /* CR_In_Marchen */ + +/* 'In_Masaram_Gondi': Block */ +static const OnigCodePoint CR_In_Masaram_Gondi[] = { + 1, + 0x11d00, 0x11d5f, +}; /* CR_In_Masaram_Gondi */ + +/* 'In_Gunjala_Gondi': Block */ +static const OnigCodePoint CR_In_Gunjala_Gondi[] = { + 1, + 0x11d60, 0x11daf, +}; /* CR_In_Gunjala_Gondi */ + +/* 'In_Makasar': Block */ +static const OnigCodePoint CR_In_Makasar[] = { + 1, + 0x11ee0, 0x11eff, +}; /* CR_In_Makasar */ + +/* 'In_Kawi': Block */ +static const OnigCodePoint CR_In_Kawi[] = { + 1, + 0x11f00, 0x11f5f, +}; /* CR_In_Kawi */ + +/* 'In_Lisu_Supplement': Block */ +static const OnigCodePoint CR_In_Lisu_Supplement[] = { + 1, + 0x11fb0, 0x11fbf, +}; /* CR_In_Lisu_Supplement */ + +/* 'In_Tamil_Supplement': Block */ +static const OnigCodePoint CR_In_Tamil_Supplement[] = { + 1, + 0x11fc0, 0x11fff, +}; /* CR_In_Tamil_Supplement */ + +/* 'In_Cuneiform': Block */ +static const OnigCodePoint CR_In_Cuneiform[] = { + 1, + 0x12000, 0x123ff, +}; /* CR_In_Cuneiform */ + +/* 'In_Cuneiform_Numbers_and_Punctuation': Block */ +static const OnigCodePoint CR_In_Cuneiform_Numbers_and_Punctuation[] = { + 1, + 0x12400, 0x1247f, +}; /* CR_In_Cuneiform_Numbers_and_Punctuation */ + +/* 'In_Early_Dynastic_Cuneiform': Block */ +static const OnigCodePoint CR_In_Early_Dynastic_Cuneiform[] = { + 1, + 0x12480, 0x1254f, +}; /* CR_In_Early_Dynastic_Cuneiform */ + +/* 'In_Cypro_Minoan': Block */ +static const OnigCodePoint CR_In_Cypro_Minoan[] = { + 1, + 0x12f90, 0x12fff, +}; /* CR_In_Cypro_Minoan */ + +/* 'In_Egyptian_Hieroglyphs': Block */ +static const OnigCodePoint CR_In_Egyptian_Hieroglyphs[] = { + 1, + 0x13000, 0x1342f, +}; /* CR_In_Egyptian_Hieroglyphs */ + +/* 'In_Egyptian_Hieroglyph_Format_Controls': Block */ +static const OnigCodePoint CR_In_Egyptian_Hieroglyph_Format_Controls[] = { + 1, + 0x13430, 0x1345f, +}; /* CR_In_Egyptian_Hieroglyph_Format_Controls */ + +/* 'In_Anatolian_Hieroglyphs': Block */ +static const OnigCodePoint CR_In_Anatolian_Hieroglyphs[] = { + 1, + 0x14400, 0x1467f, +}; /* CR_In_Anatolian_Hieroglyphs */ + +/* 'In_Bamum_Supplement': Block */ +static const OnigCodePoint CR_In_Bamum_Supplement[] = { + 1, + 0x16800, 0x16a3f, +}; /* CR_In_Bamum_Supplement */ + +/* 'In_Mro': Block */ +static const OnigCodePoint CR_In_Mro[] = { + 1, + 0x16a40, 0x16a6f, +}; /* CR_In_Mro */ + +/* 'In_Tangsa': Block */ +static const OnigCodePoint CR_In_Tangsa[] = { + 1, + 0x16a70, 0x16acf, +}; /* CR_In_Tangsa */ + +/* 'In_Bassa_Vah': Block */ +static const OnigCodePoint CR_In_Bassa_Vah[] = { + 1, + 0x16ad0, 0x16aff, +}; /* CR_In_Bassa_Vah */ + +/* 'In_Pahawh_Hmong': Block */ +static const OnigCodePoint CR_In_Pahawh_Hmong[] = { + 1, + 0x16b00, 0x16b8f, +}; /* CR_In_Pahawh_Hmong */ + +/* 'In_Medefaidrin': Block */ +static const OnigCodePoint CR_In_Medefaidrin[] = { + 1, + 0x16e40, 0x16e9f, +}; /* CR_In_Medefaidrin */ + +/* 'In_Miao': Block */ +static const OnigCodePoint CR_In_Miao[] = { + 1, + 0x16f00, 0x16f9f, +}; /* CR_In_Miao */ + +/* 'In_Ideographic_Symbols_and_Punctuation': Block */ +static const OnigCodePoint CR_In_Ideographic_Symbols_and_Punctuation[] = { + 1, + 0x16fe0, 0x16fff, +}; /* CR_In_Ideographic_Symbols_and_Punctuation */ + +/* 'In_Tangut': Block */ +static const OnigCodePoint CR_In_Tangut[] = { + 1, + 0x17000, 0x187ff, +}; /* CR_In_Tangut */ + +/* 'In_Tangut_Components': Block */ +static const OnigCodePoint CR_In_Tangut_Components[] = { + 1, + 0x18800, 0x18aff, +}; /* CR_In_Tangut_Components */ + +/* 'In_Khitan_Small_Script': Block */ +static const OnigCodePoint CR_In_Khitan_Small_Script[] = { + 1, + 0x18b00, 0x18cff, +}; /* CR_In_Khitan_Small_Script */ + +/* 'In_Tangut_Supplement': Block */ +static const OnigCodePoint CR_In_Tangut_Supplement[] = { + 1, + 0x18d00, 0x18d7f, +}; /* CR_In_Tangut_Supplement */ + +/* 'In_Kana_Extended_B': Block */ +static const OnigCodePoint CR_In_Kana_Extended_B[] = { + 1, + 0x1aff0, 0x1afff, +}; /* CR_In_Kana_Extended_B */ + +/* 'In_Kana_Supplement': Block */ +static const OnigCodePoint CR_In_Kana_Supplement[] = { + 1, + 0x1b000, 0x1b0ff, +}; /* CR_In_Kana_Supplement */ + +/* 'In_Kana_Extended_A': Block */ +static const OnigCodePoint CR_In_Kana_Extended_A[] = { + 1, + 0x1b100, 0x1b12f, +}; /* CR_In_Kana_Extended_A */ + +/* 'In_Small_Kana_Extension': Block */ +static const OnigCodePoint CR_In_Small_Kana_Extension[] = { + 1, + 0x1b130, 0x1b16f, +}; /* CR_In_Small_Kana_Extension */ + +/* 'In_Nushu': Block */ +static const OnigCodePoint CR_In_Nushu[] = { + 1, + 0x1b170, 0x1b2ff, +}; /* CR_In_Nushu */ + +/* 'In_Duployan': Block */ +static const OnigCodePoint CR_In_Duployan[] = { + 1, + 0x1bc00, 0x1bc9f, +}; /* CR_In_Duployan */ + +/* 'In_Shorthand_Format_Controls': Block */ +static const OnigCodePoint CR_In_Shorthand_Format_Controls[] = { + 1, + 0x1bca0, 0x1bcaf, +}; /* CR_In_Shorthand_Format_Controls */ + +/* 'In_Znamenny_Musical_Notation': Block */ +static const OnigCodePoint CR_In_Znamenny_Musical_Notation[] = { + 1, + 0x1cf00, 0x1cfcf, +}; /* CR_In_Znamenny_Musical_Notation */ + +/* 'In_Byzantine_Musical_Symbols': Block */ +static const OnigCodePoint CR_In_Byzantine_Musical_Symbols[] = { + 1, + 0x1d000, 0x1d0ff, +}; /* CR_In_Byzantine_Musical_Symbols */ + +/* 'In_Musical_Symbols': Block */ +static const OnigCodePoint CR_In_Musical_Symbols[] = { + 1, + 0x1d100, 0x1d1ff, +}; /* CR_In_Musical_Symbols */ + +/* 'In_Ancient_Greek_Musical_Notation': Block */ +static const OnigCodePoint CR_In_Ancient_Greek_Musical_Notation[] = { + 1, + 0x1d200, 0x1d24f, +}; /* CR_In_Ancient_Greek_Musical_Notation */ + +/* 'In_Kaktovik_Numerals': Block */ +static const OnigCodePoint CR_In_Kaktovik_Numerals[] = { + 1, + 0x1d2c0, 0x1d2df, +}; /* CR_In_Kaktovik_Numerals */ + +/* 'In_Mayan_Numerals': Block */ +static const OnigCodePoint CR_In_Mayan_Numerals[] = { + 1, + 0x1d2e0, 0x1d2ff, +}; /* CR_In_Mayan_Numerals */ + +/* 'In_Tai_Xuan_Jing_Symbols': Block */ +static const OnigCodePoint CR_In_Tai_Xuan_Jing_Symbols[] = { + 1, + 0x1d300, 0x1d35f, +}; /* CR_In_Tai_Xuan_Jing_Symbols */ + +/* 'In_Counting_Rod_Numerals': Block */ +static const OnigCodePoint CR_In_Counting_Rod_Numerals[] = { + 1, + 0x1d360, 0x1d37f, +}; /* CR_In_Counting_Rod_Numerals */ + +/* 'In_Mathematical_Alphanumeric_Symbols': Block */ +static const OnigCodePoint CR_In_Mathematical_Alphanumeric_Symbols[] = { + 1, + 0x1d400, 0x1d7ff, +}; /* CR_In_Mathematical_Alphanumeric_Symbols */ + +/* 'In_Sutton_SignWriting': Block */ +static const OnigCodePoint CR_In_Sutton_SignWriting[] = { + 1, + 0x1d800, 0x1daaf, +}; /* CR_In_Sutton_SignWriting */ + +/* 'In_Latin_Extended_G': Block */ +static const OnigCodePoint CR_In_Latin_Extended_G[] = { + 1, + 0x1df00, 0x1dfff, +}; /* CR_In_Latin_Extended_G */ + +/* 'In_Glagolitic_Supplement': Block */ +static const OnigCodePoint CR_In_Glagolitic_Supplement[] = { + 1, + 0x1e000, 0x1e02f, +}; /* CR_In_Glagolitic_Supplement */ + +/* 'In_Cyrillic_Extended_D': Block */ +static const OnigCodePoint CR_In_Cyrillic_Extended_D[] = { + 1, + 0x1e030, 0x1e08f, +}; /* CR_In_Cyrillic_Extended_D */ + +/* 'In_Nyiakeng_Puachue_Hmong': Block */ +static const OnigCodePoint CR_In_Nyiakeng_Puachue_Hmong[] = { + 1, + 0x1e100, 0x1e14f, +}; /* CR_In_Nyiakeng_Puachue_Hmong */ + +/* 'In_Toto': Block */ +static const OnigCodePoint CR_In_Toto[] = { + 1, + 0x1e290, 0x1e2bf, +}; /* CR_In_Toto */ + +/* 'In_Wancho': Block */ +static const OnigCodePoint CR_In_Wancho[] = { + 1, + 0x1e2c0, 0x1e2ff, +}; /* CR_In_Wancho */ + +/* 'In_Nag_Mundari': Block */ +static const OnigCodePoint CR_In_Nag_Mundari[] = { + 1, + 0x1e4d0, 0x1e4ff, +}; /* CR_In_Nag_Mundari */ + +/* 'In_Ethiopic_Extended_B': Block */ +static const OnigCodePoint CR_In_Ethiopic_Extended_B[] = { + 1, + 0x1e7e0, 0x1e7ff, +}; /* CR_In_Ethiopic_Extended_B */ + +/* 'In_Mende_Kikakui': Block */ +static const OnigCodePoint CR_In_Mende_Kikakui[] = { + 1, + 0x1e800, 0x1e8df, +}; /* CR_In_Mende_Kikakui */ + +/* 'In_Adlam': Block */ +static const OnigCodePoint CR_In_Adlam[] = { + 1, + 0x1e900, 0x1e95f, +}; /* CR_In_Adlam */ + +/* 'In_Indic_Siyaq_Numbers': Block */ +static const OnigCodePoint CR_In_Indic_Siyaq_Numbers[] = { + 1, + 0x1ec70, 0x1ecbf, +}; /* CR_In_Indic_Siyaq_Numbers */ + +/* 'In_Ottoman_Siyaq_Numbers': Block */ +static const OnigCodePoint CR_In_Ottoman_Siyaq_Numbers[] = { + 1, + 0x1ed00, 0x1ed4f, +}; /* CR_In_Ottoman_Siyaq_Numbers */ + +/* 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */ +static const OnigCodePoint CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = { + 1, + 0x1ee00, 0x1eeff, +}; /* CR_In_Arabic_Mathematical_Alphabetic_Symbols */ + +/* 'In_Mahjong_Tiles': Block */ +static const OnigCodePoint CR_In_Mahjong_Tiles[] = { + 1, + 0x1f000, 0x1f02f, +}; /* CR_In_Mahjong_Tiles */ + +/* 'In_Domino_Tiles': Block */ +static const OnigCodePoint CR_In_Domino_Tiles[] = { + 1, + 0x1f030, 0x1f09f, +}; /* CR_In_Domino_Tiles */ + +/* 'In_Playing_Cards': Block */ +static const OnigCodePoint CR_In_Playing_Cards[] = { + 1, + 0x1f0a0, 0x1f0ff, +}; /* CR_In_Playing_Cards */ + +/* 'In_Enclosed_Alphanumeric_Supplement': Block */ +static const OnigCodePoint CR_In_Enclosed_Alphanumeric_Supplement[] = { + 1, + 0x1f100, 0x1f1ff, +}; /* CR_In_Enclosed_Alphanumeric_Supplement */ + +/* 'In_Enclosed_Ideographic_Supplement': Block */ +static const OnigCodePoint CR_In_Enclosed_Ideographic_Supplement[] = { + 1, + 0x1f200, 0x1f2ff, +}; /* CR_In_Enclosed_Ideographic_Supplement */ + +/* 'In_Miscellaneous_Symbols_and_Pictographs': Block */ +static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Pictographs[] = { + 1, + 0x1f300, 0x1f5ff, +}; /* CR_In_Miscellaneous_Symbols_and_Pictographs */ + +/* 'In_Emoticons': Block */ +static const OnigCodePoint CR_In_Emoticons[] = { + 1, + 0x1f600, 0x1f64f, +}; /* CR_In_Emoticons */ + +/* 'In_Ornamental_Dingbats': Block */ +static const OnigCodePoint CR_In_Ornamental_Dingbats[] = { + 1, + 0x1f650, 0x1f67f, +}; /* CR_In_Ornamental_Dingbats */ + +/* 'In_Transport_and_Map_Symbols': Block */ +static const OnigCodePoint CR_In_Transport_and_Map_Symbols[] = { + 1, + 0x1f680, 0x1f6ff, +}; /* CR_In_Transport_and_Map_Symbols */ + +/* 'In_Alchemical_Symbols': Block */ +static const OnigCodePoint CR_In_Alchemical_Symbols[] = { + 1, + 0x1f700, 0x1f77f, +}; /* CR_In_Alchemical_Symbols */ + +/* 'In_Geometric_Shapes_Extended': Block */ +static const OnigCodePoint CR_In_Geometric_Shapes_Extended[] = { + 1, + 0x1f780, 0x1f7ff, +}; /* CR_In_Geometric_Shapes_Extended */ + +/* 'In_Supplemental_Arrows_C': Block */ +static const OnigCodePoint CR_In_Supplemental_Arrows_C[] = { + 1, + 0x1f800, 0x1f8ff, +}; /* CR_In_Supplemental_Arrows_C */ + +/* 'In_Supplemental_Symbols_and_Pictographs': Block */ +static const OnigCodePoint CR_In_Supplemental_Symbols_and_Pictographs[] = { + 1, + 0x1f900, 0x1f9ff, +}; /* CR_In_Supplemental_Symbols_and_Pictographs */ + +/* 'In_Chess_Symbols': Block */ +static const OnigCodePoint CR_In_Chess_Symbols[] = { + 1, + 0x1fa00, 0x1fa6f, +}; /* CR_In_Chess_Symbols */ + +/* 'In_Symbols_and_Pictographs_Extended_A': Block */ +static const OnigCodePoint CR_In_Symbols_and_Pictographs_Extended_A[] = { + 1, + 0x1fa70, 0x1faff, +}; /* CR_In_Symbols_and_Pictographs_Extended_A */ + +/* 'In_Symbols_for_Legacy_Computing': Block */ +static const OnigCodePoint CR_In_Symbols_for_Legacy_Computing[] = { + 1, + 0x1fb00, 0x1fbff, +}; /* CR_In_Symbols_for_Legacy_Computing */ + +/* 'In_CJK_Unified_Ideographs_Extension_B': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_B[] = { + 1, + 0x20000, 0x2a6df, +}; /* CR_In_CJK_Unified_Ideographs_Extension_B */ + +/* 'In_CJK_Unified_Ideographs_Extension_C': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_C[] = { + 1, + 0x2a700, 0x2b73f, +}; /* CR_In_CJK_Unified_Ideographs_Extension_C */ + +/* 'In_CJK_Unified_Ideographs_Extension_D': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_D[] = { + 1, + 0x2b740, 0x2b81f, +}; /* CR_In_CJK_Unified_Ideographs_Extension_D */ + +/* 'In_CJK_Unified_Ideographs_Extension_E': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_E[] = { + 1, + 0x2b820, 0x2ceaf, +}; /* CR_In_CJK_Unified_Ideographs_Extension_E */ + +/* 'In_CJK_Unified_Ideographs_Extension_F': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_F[] = { + 1, + 0x2ceb0, 0x2ebef, +}; /* CR_In_CJK_Unified_Ideographs_Extension_F */ + +/* 'In_CJK_Compatibility_Ideographs_Supplement': Block */ +static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs_Supplement[] = { + 1, + 0x2f800, 0x2fa1f, +}; /* CR_In_CJK_Compatibility_Ideographs_Supplement */ + +/* 'In_CJK_Unified_Ideographs_Extension_G': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_G[] = { + 1, + 0x30000, 0x3134f, +}; /* CR_In_CJK_Unified_Ideographs_Extension_G */ + +/* 'In_CJK_Unified_Ideographs_Extension_H': Block */ +static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_H[] = { + 1, + 0x31350, 0x323af, +}; /* CR_In_CJK_Unified_Ideographs_Extension_H */ + +/* 'In_Tags': Block */ +static const OnigCodePoint CR_In_Tags[] = { + 1, + 0xe0000, 0xe007f, +}; /* CR_In_Tags */ + +/* 'In_Variation_Selectors_Supplement': Block */ +static const OnigCodePoint CR_In_Variation_Selectors_Supplement[] = { + 1, + 0xe0100, 0xe01ef, +}; /* CR_In_Variation_Selectors_Supplement */ + +/* 'In_Supplementary_Private_Use_Area_A': Block */ +static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_A[] = { + 1, + 0xf0000, 0xfffff, +}; /* CR_In_Supplementary_Private_Use_Area_A */ + +/* 'In_Supplementary_Private_Use_Area_B': Block */ +static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_B[] = { + 1, + 0x100000, 0x10ffff, +}; /* CR_In_Supplementary_Private_Use_Area_B */ + +/* 'In_No_Block': Block */ +static const OnigCodePoint CR_In_No_Block[] = { + 51, + 0x2fe0, 0x2fef, + 0x10200, 0x1027f, + 0x103e0, 0x103ff, + 0x105c0, 0x105ff, + 0x107c0, 0x107ff, + 0x108b0, 0x108df, + 0x10940, 0x1097f, + 0x10aa0, 0x10abf, + 0x10bb0, 0x10bff, + 0x10c50, 0x10c7f, + 0x10d40, 0x10e5f, + 0x11250, 0x1127f, + 0x11380, 0x113ff, + 0x114e0, 0x1157f, + 0x116d0, 0x116ff, + 0x11750, 0x117ff, + 0x11850, 0x1189f, + 0x11960, 0x1199f, + 0x11b60, 0x11bff, + 0x11cc0, 0x11cff, + 0x11db0, 0x11edf, + 0x11f60, 0x11faf, + 0x12550, 0x12f8f, + 0x13460, 0x143ff, + 0x14680, 0x167ff, + 0x16b90, 0x16e3f, + 0x16ea0, 0x16eff, + 0x16fa0, 0x16fdf, + 0x18d80, 0x1afef, + 0x1b300, 0x1bbff, + 0x1bcb0, 0x1ceff, + 0x1cfd0, 0x1cfff, + 0x1d250, 0x1d2bf, + 0x1d380, 0x1d3ff, + 0x1dab0, 0x1deff, + 0x1e090, 0x1e0ff, + 0x1e150, 0x1e28f, + 0x1e300, 0x1e4cf, + 0x1e500, 0x1e7df, + 0x1e8e0, 0x1e8ff, + 0x1e960, 0x1ec6f, + 0x1ecc0, 0x1ecff, + 0x1ed50, 0x1edff, + 0x1ef00, 0x1efff, + 0x1fc00, 0x1ffff, + 0x2a6e0, 0x2a6ff, + 0x2ebf0, 0x2f7ff, + 0x2fa20, 0x2ffff, + 0x323b0, 0xdffff, + 0xe0080, 0xe00ff, + 0xe01f0, 0xeffff, +}; /* CR_In_No_Block */ + +#endif /* USE_UNICODE_PROPERTIES */ +static const OnigCodePoint* const CodeRanges[] = { + CR_NEWLINE, + CR_Alpha, + CR_Blank, + CR_Cntrl, + CR_Digit, + CR_Graph, + CR_Lower, + CR_Print, + CR_XPosixPunct, + CR_Space, + CR_Upper, + CR_XDigit, + CR_Word, + CR_Alnum, + CR_ASCII, + CR_Punct, +#ifdef USE_UNICODE_PROPERTIES + CR_Any, + CR_Assigned, + CR_C, + CR_Cc, + CR_Cf, + CR_Cn, + CR_Co, + CR_Cs, + CR_L, + CR_LC, + CR_Ll, + CR_Lm, + CR_Lo, + CR_Lt, + CR_Lu, + CR_M, + CR_Mc, + CR_Me, + CR_Mn, + CR_N, + CR_Nd, + CR_Nl, + CR_No, + CR_P, + CR_Pc, + CR_Pd, + CR_Pe, + CR_Pf, + CR_Pi, + CR_Po, + CR_Ps, + CR_S, + CR_Sc, + CR_Sk, + CR_Sm, + CR_So, + CR_Z, + CR_Zl, + CR_Zp, + CR_Zs, + CR_Math, + CR_Alphabetic, + CR_Lowercase, + CR_Uppercase, + CR_Cased, + CR_Case_Ignorable, + CR_Changes_When_Lowercased, + CR_Changes_When_Uppercased, + CR_Changes_When_Titlecased, + CR_Changes_When_Casefolded, + CR_Changes_When_Casemapped, + CR_ID_Start, + CR_ID_Continue, + CR_XID_Start, + CR_XID_Continue, + CR_Default_Ignorable_Code_Point, + CR_Grapheme_Extend, + CR_Grapheme_Base, + CR_Grapheme_Link, + CR_Common, + CR_Latin, + CR_Greek, + CR_Cyrillic, + CR_Armenian, + CR_Hebrew, + CR_Arabic, + CR_Syriac, + CR_Thaana, + CR_Devanagari, + CR_Bengali, + CR_Gurmukhi, + CR_Gujarati, + CR_Oriya, + CR_Tamil, + CR_Telugu, + CR_Kannada, + CR_Malayalam, + CR_Sinhala, + CR_Thai, + CR_Lao, + CR_Tibetan, + CR_Myanmar, + CR_Georgian, + CR_Hangul, + CR_Ethiopic, + CR_Cherokee, + CR_Canadian_Aboriginal, + CR_Ogham, + CR_Runic, + CR_Khmer, + CR_Mongolian, + CR_Hiragana, + CR_Katakana, + CR_Bopomofo, + CR_Han, + CR_Yi, + CR_Old_Italic, + CR_Gothic, + CR_Deseret, + CR_Inherited, + CR_Tagalog, + CR_Hanunoo, + CR_Buhid, + CR_Tagbanwa, + CR_Limbu, + CR_Tai_Le, + CR_Linear_B, + CR_Ugaritic, + CR_Shavian, + CR_Osmanya, + CR_Cypriot, + CR_Braille, + CR_Buginese, + CR_Coptic, + CR_New_Tai_Lue, + CR_Glagolitic, + CR_Tifinagh, + CR_Syloti_Nagri, + CR_Old_Persian, + CR_Kharoshthi, + CR_Balinese, + CR_Cuneiform, + CR_Phoenician, + CR_Phags_Pa, + CR_Nko, + CR_Sundanese, + CR_Lepcha, + CR_Ol_Chiki, + CR_Vai, + CR_Saurashtra, + CR_Kayah_Li, + CR_Rejang, + CR_Lycian, + CR_Carian, + CR_Lydian, + CR_Cham, + CR_Tai_Tham, + CR_Tai_Viet, + CR_Avestan, + CR_Egyptian_Hieroglyphs, + CR_Samaritan, + CR_Lisu, + CR_Bamum, + CR_Javanese, + CR_Meetei_Mayek, + CR_Imperial_Aramaic, + CR_Old_South_Arabian, + CR_Inscriptional_Parthian, + CR_Inscriptional_Pahlavi, + CR_Old_Turkic, + CR_Kaithi, + CR_Batak, + CR_Brahmi, + CR_Mandaic, + CR_Chakma, + CR_Meroitic_Cursive, + CR_Meroitic_Hieroglyphs, + CR_Miao, + CR_Sharada, + CR_Sora_Sompeng, + CR_Takri, + CR_Caucasian_Albanian, + CR_Bassa_Vah, + CR_Duployan, + CR_Elbasan, + CR_Grantha, + CR_Pahawh_Hmong, + CR_Khojki, + CR_Linear_A, + CR_Mahajani, + CR_Manichaean, + CR_Mende_Kikakui, + CR_Modi, + CR_Mro, + CR_Old_North_Arabian, + CR_Nabataean, + CR_Palmyrene, + CR_Pau_Cin_Hau, + CR_Old_Permic, + CR_Psalter_Pahlavi, + CR_Siddham, + CR_Khudawadi, + CR_Tirhuta, + CR_Warang_Citi, + CR_Ahom, + CR_Anatolian_Hieroglyphs, + CR_Hatran, + CR_Multani, + CR_Old_Hungarian, + CR_SignWriting, + CR_Adlam, + CR_Bhaiksuki, + CR_Marchen, + CR_Newa, + CR_Osage, + CR_Tangut, + CR_Masaram_Gondi, + CR_Nushu, + CR_Soyombo, + CR_Zanabazar_Square, + CR_Dogra, + CR_Gunjala_Gondi, + CR_Makasar, + CR_Medefaidrin, + CR_Hanifi_Rohingya, + CR_Sogdian, + CR_Old_Sogdian, + CR_Elymaic, + CR_Nandinagari, + CR_Nyiakeng_Puachue_Hmong, + CR_Wancho, + CR_Chorasmian, + CR_Dives_Akuru, + CR_Khitan_Small_Script, + CR_Yezidi, + CR_Cypro_Minoan, + CR_Old_Uyghur, + CR_Tangsa, + CR_Toto, + CR_Vithkuqi, + CR_Kawi, + CR_Nag_Mundari, + CR_White_Space, + CR_Bidi_Control, + CR_Join_Control, + CR_Dash, + CR_Hyphen, + CR_Quotation_Mark, + CR_Terminal_Punctuation, + CR_Other_Math, + CR_Hex_Digit, + CR_ASCII_Hex_Digit, + CR_Other_Alphabetic, + CR_Ideographic, + CR_Diacritic, + CR_Extender, + CR_Other_Lowercase, + CR_Other_Uppercase, + CR_Noncharacter_Code_Point, + CR_Other_Grapheme_Extend, + CR_IDS_Binary_Operator, + CR_IDS_Trinary_Operator, + CR_Radical, + CR_Unified_Ideograph, + CR_Other_Default_Ignorable_Code_Point, + CR_Deprecated, + CR_Soft_Dotted, + CR_Logical_Order_Exception, + CR_Other_ID_Start, + CR_Other_ID_Continue, + CR_Sentence_Terminal, + CR_Variation_Selector, + CR_Pattern_White_Space, + CR_Pattern_Syntax, + CR_Prepended_Concatenation_Mark, + CR_Regional_Indicator, + CR_Emoji, + CR_Emoji_Presentation, + CR_Emoji_Modifier, + CR_Emoji_Modifier_Base, + CR_Emoji_Component, + CR_Extended_Pictographic, + CR_Unknown, +#ifdef USE_UNICODE_AGE_PROPERTIES + CR_Age_1_1, + CR_Age_2_0, + CR_Age_2_1, + CR_Age_3_0, + CR_Age_3_1, + CR_Age_3_2, + CR_Age_4_0, + CR_Age_4_1, + CR_Age_5_0, + CR_Age_5_1, + CR_Age_5_2, + CR_Age_6_0, + CR_Age_6_1, + CR_Age_6_2, + CR_Age_6_3, + CR_Age_7_0, + CR_Age_8_0, + CR_Age_9_0, + CR_Age_10_0, + CR_Age_11_0, + CR_Age_12_0, + CR_Age_12_1, + CR_Age_13_0, + CR_Age_14_0, + CR_Age_15_0, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + CR_Grapheme_Cluster_Break_Prepend, + CR_Grapheme_Cluster_Break_CR, + CR_Grapheme_Cluster_Break_LF, + CR_Grapheme_Cluster_Break_Control, + CR_Grapheme_Cluster_Break_Extend, + CR_Grapheme_Cluster_Break_Regional_Indicator, + CR_Grapheme_Cluster_Break_SpacingMark, + CR_Grapheme_Cluster_Break_L, + CR_Grapheme_Cluster_Break_V, + CR_Grapheme_Cluster_Break_T, + CR_Grapheme_Cluster_Break_LV, + CR_Grapheme_Cluster_Break_LVT, + CR_Grapheme_Cluster_Break_ZWJ, + CR_In_Basic_Latin, + CR_In_Latin_1_Supplement, + CR_In_Latin_Extended_A, + CR_In_Latin_Extended_B, + CR_In_IPA_Extensions, + CR_In_Spacing_Modifier_Letters, + CR_In_Combining_Diacritical_Marks, + CR_In_Greek_and_Coptic, + CR_In_Cyrillic, + CR_In_Cyrillic_Supplement, + CR_In_Armenian, + CR_In_Hebrew, + CR_In_Arabic, + CR_In_Syriac, + CR_In_Arabic_Supplement, + CR_In_Thaana, + CR_In_NKo, + CR_In_Samaritan, + CR_In_Mandaic, + CR_In_Syriac_Supplement, + CR_In_Arabic_Extended_B, + CR_In_Arabic_Extended_A, + CR_In_Devanagari, + CR_In_Bengali, + CR_In_Gurmukhi, + CR_In_Gujarati, + CR_In_Oriya, + CR_In_Tamil, + CR_In_Telugu, + CR_In_Kannada, + CR_In_Malayalam, + CR_In_Sinhala, + CR_In_Thai, + CR_In_Lao, + CR_In_Tibetan, + CR_In_Myanmar, + CR_In_Georgian, + CR_In_Hangul_Jamo, + CR_In_Ethiopic, + CR_In_Ethiopic_Supplement, + CR_In_Cherokee, + CR_In_Unified_Canadian_Aboriginal_Syllabics, + CR_In_Ogham, + CR_In_Runic, + CR_In_Tagalog, + CR_In_Hanunoo, + CR_In_Buhid, + CR_In_Tagbanwa, + CR_In_Khmer, + CR_In_Mongolian, + CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended, + CR_In_Limbu, + CR_In_Tai_Le, + CR_In_New_Tai_Lue, + CR_In_Khmer_Symbols, + CR_In_Buginese, + CR_In_Tai_Tham, + CR_In_Combining_Diacritical_Marks_Extended, + CR_In_Balinese, + CR_In_Sundanese, + CR_In_Batak, + CR_In_Lepcha, + CR_In_Ol_Chiki, + CR_In_Cyrillic_Extended_C, + CR_In_Georgian_Extended, + CR_In_Sundanese_Supplement, + CR_In_Vedic_Extensions, + CR_In_Phonetic_Extensions, + CR_In_Phonetic_Extensions_Supplement, + CR_In_Combining_Diacritical_Marks_Supplement, + CR_In_Latin_Extended_Additional, + CR_In_Greek_Extended, + CR_In_General_Punctuation, + CR_In_Superscripts_and_Subscripts, + CR_In_Currency_Symbols, + CR_In_Combining_Diacritical_Marks_for_Symbols, + CR_In_Letterlike_Symbols, + CR_In_Number_Forms, + CR_In_Arrows, + CR_In_Mathematical_Operators, + CR_In_Miscellaneous_Technical, + CR_In_Control_Pictures, + CR_In_Optical_Character_Recognition, + CR_In_Enclosed_Alphanumerics, + CR_In_Box_Drawing, + CR_In_Block_Elements, + CR_In_Geometric_Shapes, + CR_In_Miscellaneous_Symbols, + CR_In_Dingbats, + CR_In_Miscellaneous_Mathematical_Symbols_A, + CR_In_Supplemental_Arrows_A, + CR_In_Braille_Patterns, + CR_In_Supplemental_Arrows_B, + CR_In_Miscellaneous_Mathematical_Symbols_B, + CR_In_Supplemental_Mathematical_Operators, + CR_In_Miscellaneous_Symbols_and_Arrows, + CR_In_Glagolitic, + CR_In_Latin_Extended_C, + CR_In_Coptic, + CR_In_Georgian_Supplement, + CR_In_Tifinagh, + CR_In_Ethiopic_Extended, + CR_In_Cyrillic_Extended_A, + CR_In_Supplemental_Punctuation, + CR_In_CJK_Radicals_Supplement, + CR_In_Kangxi_Radicals, + CR_In_Ideographic_Description_Characters, + CR_In_CJK_Symbols_and_Punctuation, + CR_In_Hiragana, + CR_In_Katakana, + CR_In_Bopomofo, + CR_In_Hangul_Compatibility_Jamo, + CR_In_Kanbun, + CR_In_Bopomofo_Extended, + CR_In_CJK_Strokes, + CR_In_Katakana_Phonetic_Extensions, + CR_In_Enclosed_CJK_Letters_and_Months, + CR_In_CJK_Compatibility, + CR_In_CJK_Unified_Ideographs_Extension_A, + CR_In_Yijing_Hexagram_Symbols, + CR_In_CJK_Unified_Ideographs, + CR_In_Yi_Syllables, + CR_In_Yi_Radicals, + CR_In_Lisu, + CR_In_Vai, + CR_In_Cyrillic_Extended_B, + CR_In_Bamum, + CR_In_Modifier_Tone_Letters, + CR_In_Latin_Extended_D, + CR_In_Syloti_Nagri, + CR_In_Common_Indic_Number_Forms, + CR_In_Phags_pa, + CR_In_Saurashtra, + CR_In_Devanagari_Extended, + CR_In_Kayah_Li, + CR_In_Rejang, + CR_In_Hangul_Jamo_Extended_A, + CR_In_Javanese, + CR_In_Myanmar_Extended_B, + CR_In_Cham, + CR_In_Myanmar_Extended_A, + CR_In_Tai_Viet, + CR_In_Meetei_Mayek_Extensions, + CR_In_Ethiopic_Extended_A, + CR_In_Latin_Extended_E, + CR_In_Cherokee_Supplement, + CR_In_Meetei_Mayek, + CR_In_Hangul_Syllables, + CR_In_Hangul_Jamo_Extended_B, + CR_In_High_Surrogates, + CR_In_High_Private_Use_Surrogates, + CR_In_Low_Surrogates, + CR_In_Private_Use_Area, + CR_In_CJK_Compatibility_Ideographs, + CR_In_Alphabetic_Presentation_Forms, + CR_In_Arabic_Presentation_Forms_A, + CR_In_Variation_Selectors, + CR_In_Vertical_Forms, + CR_In_Combining_Half_Marks, + CR_In_CJK_Compatibility_Forms, + CR_In_Small_Form_Variants, + CR_In_Arabic_Presentation_Forms_B, + CR_In_Halfwidth_and_Fullwidth_Forms, + CR_In_Specials, + CR_In_Linear_B_Syllabary, + CR_In_Linear_B_Ideograms, + CR_In_Aegean_Numbers, + CR_In_Ancient_Greek_Numbers, + CR_In_Ancient_Symbols, + CR_In_Phaistos_Disc, + CR_In_Lycian, + CR_In_Carian, + CR_In_Coptic_Epact_Numbers, + CR_In_Old_Italic, + CR_In_Gothic, + CR_In_Old_Permic, + CR_In_Ugaritic, + CR_In_Old_Persian, + CR_In_Deseret, + CR_In_Shavian, + CR_In_Osmanya, + CR_In_Osage, + CR_In_Elbasan, + CR_In_Caucasian_Albanian, + CR_In_Vithkuqi, + CR_In_Linear_A, + CR_In_Latin_Extended_F, + CR_In_Cypriot_Syllabary, + CR_In_Imperial_Aramaic, + CR_In_Palmyrene, + CR_In_Nabataean, + CR_In_Hatran, + CR_In_Phoenician, + CR_In_Lydian, + CR_In_Meroitic_Hieroglyphs, + CR_In_Meroitic_Cursive, + CR_In_Kharoshthi, + CR_In_Old_South_Arabian, + CR_In_Old_North_Arabian, + CR_In_Manichaean, + CR_In_Avestan, + CR_In_Inscriptional_Parthian, + CR_In_Inscriptional_Pahlavi, + CR_In_Psalter_Pahlavi, + CR_In_Old_Turkic, + CR_In_Old_Hungarian, + CR_In_Hanifi_Rohingya, + CR_In_Rumi_Numeral_Symbols, + CR_In_Yezidi, + CR_In_Arabic_Extended_C, + CR_In_Old_Sogdian, + CR_In_Sogdian, + CR_In_Old_Uyghur, + CR_In_Chorasmian, + CR_In_Elymaic, + CR_In_Brahmi, + CR_In_Kaithi, + CR_In_Sora_Sompeng, + CR_In_Chakma, + CR_In_Mahajani, + CR_In_Sharada, + CR_In_Sinhala_Archaic_Numbers, + CR_In_Khojki, + CR_In_Multani, + CR_In_Khudawadi, + CR_In_Grantha, + CR_In_Newa, + CR_In_Tirhuta, + CR_In_Siddham, + CR_In_Modi, + CR_In_Mongolian_Supplement, + CR_In_Takri, + CR_In_Ahom, + CR_In_Dogra, + CR_In_Warang_Citi, + CR_In_Dives_Akuru, + CR_In_Nandinagari, + CR_In_Zanabazar_Square, + CR_In_Soyombo, + CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A, + CR_In_Pau_Cin_Hau, + CR_In_Devanagari_Extended_A, + CR_In_Bhaiksuki, + CR_In_Marchen, + CR_In_Masaram_Gondi, + CR_In_Gunjala_Gondi, + CR_In_Makasar, + CR_In_Kawi, + CR_In_Lisu_Supplement, + CR_In_Tamil_Supplement, + CR_In_Cuneiform, + CR_In_Cuneiform_Numbers_and_Punctuation, + CR_In_Early_Dynastic_Cuneiform, + CR_In_Cypro_Minoan, + CR_In_Egyptian_Hieroglyphs, + CR_In_Egyptian_Hieroglyph_Format_Controls, + CR_In_Anatolian_Hieroglyphs, + CR_In_Bamum_Supplement, + CR_In_Mro, + CR_In_Tangsa, + CR_In_Bassa_Vah, + CR_In_Pahawh_Hmong, + CR_In_Medefaidrin, + CR_In_Miao, + CR_In_Ideographic_Symbols_and_Punctuation, + CR_In_Tangut, + CR_In_Tangut_Components, + CR_In_Khitan_Small_Script, + CR_In_Tangut_Supplement, + CR_In_Kana_Extended_B, + CR_In_Kana_Supplement, + CR_In_Kana_Extended_A, + CR_In_Small_Kana_Extension, + CR_In_Nushu, + CR_In_Duployan, + CR_In_Shorthand_Format_Controls, + CR_In_Znamenny_Musical_Notation, + CR_In_Byzantine_Musical_Symbols, + CR_In_Musical_Symbols, + CR_In_Ancient_Greek_Musical_Notation, + CR_In_Kaktovik_Numerals, + CR_In_Mayan_Numerals, + CR_In_Tai_Xuan_Jing_Symbols, + CR_In_Counting_Rod_Numerals, + CR_In_Mathematical_Alphanumeric_Symbols, + CR_In_Sutton_SignWriting, + CR_In_Latin_Extended_G, + CR_In_Glagolitic_Supplement, + CR_In_Cyrillic_Extended_D, + CR_In_Nyiakeng_Puachue_Hmong, + CR_In_Toto, + CR_In_Wancho, + CR_In_Nag_Mundari, + CR_In_Ethiopic_Extended_B, + CR_In_Mende_Kikakui, + CR_In_Adlam, + CR_In_Indic_Siyaq_Numbers, + CR_In_Ottoman_Siyaq_Numbers, + CR_In_Arabic_Mathematical_Alphabetic_Symbols, + CR_In_Mahjong_Tiles, + CR_In_Domino_Tiles, + CR_In_Playing_Cards, + CR_In_Enclosed_Alphanumeric_Supplement, + CR_In_Enclosed_Ideographic_Supplement, + CR_In_Miscellaneous_Symbols_and_Pictographs, + CR_In_Emoticons, + CR_In_Ornamental_Dingbats, + CR_In_Transport_and_Map_Symbols, + CR_In_Alchemical_Symbols, + CR_In_Geometric_Shapes_Extended, + CR_In_Supplemental_Arrows_C, + CR_In_Supplemental_Symbols_and_Pictographs, + CR_In_Chess_Symbols, + CR_In_Symbols_and_Pictographs_Extended_A, + CR_In_Symbols_for_Legacy_Computing, + CR_In_CJK_Unified_Ideographs_Extension_B, + CR_In_CJK_Unified_Ideographs_Extension_C, + CR_In_CJK_Unified_Ideographs_Extension_D, + CR_In_CJK_Unified_Ideographs_Extension_E, + CR_In_CJK_Unified_Ideographs_Extension_F, + CR_In_CJK_Compatibility_Ideographs_Supplement, + CR_In_CJK_Unified_Ideographs_Extension_G, + CR_In_CJK_Unified_Ideographs_Extension_H, + CR_In_Tags, + CR_In_Variation_Selectors_Supplement, + CR_In_Supplementary_Private_Use_Area_A, + CR_In_Supplementary_Private_Use_Area_B, + CR_In_No_Block, +#endif /* USE_UNICODE_PROPERTIES */ +}; +struct uniname2ctype_struct { + short name; + unsigned short ctype; +}; +#define uniname2ctype_offset(str) offsetof(struct uniname2ctype_pool_t, uniname2ctype_pool_##str) + +static const struct uniname2ctype_struct *uniname2ctype_p(const char *, size_t); + +#ifndef USE_UNICODE_PROPERTIES +#define TOTAL_KEYWORDS 15 +#define MIN_WORD_LENGTH 4 +#define MAX_WORD_LENGTH 11 +#define MIN_HASH_VALUE 6 +#define MAX_HASH_VALUE 20 +/* maximum key range = 15, duplicates = 0 */ +#else /* USE_UNICODE_PROPERTIES */ +#ifndef USE_UNICODE_AGE_PROPERTIES +#define TOTAL_KEYWORDS 866 +#else /* USE_UNICODE_AGE_PROPERTIES */ +#define TOTAL_KEYWORDS 891 +#endif /* USE_UNICODE_AGE_PROPERTIES */ +#define MIN_WORD_LENGTH 1 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 11 +#define MAX_HASH_VALUE 6098 +/* maximum key range = 6088, duplicates = 0 */ +#endif /* USE_UNICODE_PROPERTIES */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +uniname2ctype_hash (register const char *str, register size_t len) +{ +#ifndef USE_UNICODE_PROPERTIES + static const unsigned char asso_values[] = +#else /* USE_UNICODE_PROPERTIES */ + static const unsigned short asso_values[] = +#endif /* USE_UNICODE_PROPERTIES */ + { +#ifndef USE_UNICODE_PROPERTIES + 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, 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, 3, 12, 5, + 4, 21, 21, 10, 21, 1, 21, 21, 11, 21, + 2, 1, 1, 21, 1, 7, 4, 6, 21, 1, + 4, 21, 21, 21, 21, 21, 21, 21 +#else /* USE_UNICODE_PROPERTIES */ + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, +#ifndef USE_UNICODE_AGE_PROPERTIES + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, +#else /* USE_UNICODE_AGE_PROPERTIES */ + 6099, 6099, 6099, 6099, 6099, 6099, 12, 6099, 3, 1, + 4, 8, 32, 26, 14, 17, 10, 7, 6099, 6099, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, + 6099, 6099, 6099, 6099, 6099, 6099, 6099, 1, 1425, 113, + 437, 37, 1086, 1071, 1051, 4, 1984, 9, 500, 88, + 8, 18, 1371, 1287, 54, 203, 310, 619, 1958, 603, + 275, 1624, 44, 1, 22, 6099, 6099, 6099, 6099, 6099 +#endif /* USE_UNICODE_PROPERTIES */ + }; +#ifndef USE_UNICODE_PROPERTIES + return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]]; +#else /* USE_UNICODE_PROPERTIES */ + register unsigned int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[15]]; + /*FALLTHROUGH*/ + case 15: + case 14: + case 13: + case 12: + hval += asso_values[(unsigned char)str[11]]; + /*FALLTHROUGH*/ + case 11: + case 10: + case 9: + case 8: + case 7: + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + hval += asso_values[(unsigned char)str[1]]; + /*FALLTHROUGH*/ + case 1: + hval += asso_values[(unsigned char)str[0]+2]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +#endif /* USE_UNICODE_PROPERTIES */ +} + +struct uniname2ctype_pool_t + { +#ifndef USE_UNICODE_PROPERTIES + char uniname2ctype_pool_str6[sizeof("word")]; + char uniname2ctype_pool_str7[sizeof("print")]; + char uniname2ctype_pool_str8[sizeof("punct")]; + char uniname2ctype_pool_str9[sizeof("alpha")]; + char uniname2ctype_pool_str10[sizeof("alnum")]; + char uniname2ctype_pool_str11[sizeof("xdigit")]; + char uniname2ctype_pool_str12[sizeof("upper")]; + char uniname2ctype_pool_str13[sizeof("ascii")]; + char uniname2ctype_pool_str14[sizeof("cntrl")]; + char uniname2ctype_pool_str15[sizeof("space")]; + char uniname2ctype_pool_str16[sizeof("xposixpunct")]; + char uniname2ctype_pool_str17[sizeof("lower")]; + char uniname2ctype_pool_str18[sizeof("graph")]; + char uniname2ctype_pool_str19[sizeof("digit")]; + char uniname2ctype_pool_str20[sizeof("blank")]; +#else /* USE_UNICODE_PROPERTIES */ + char uniname2ctype_pool_str11[sizeof("yi")]; + char uniname2ctype_pool_str17[sizeof("yiii")]; + char uniname2ctype_pool_str22[sizeof("lana")]; + char uniname2ctype_pool_str25[sizeof("lina")]; + char uniname2ctype_pool_str33[sizeof("maka")]; + char uniname2ctype_pool_str35[sizeof("mani")]; + char uniname2ctype_pool_str36[sizeof("mn")]; + char uniname2ctype_pool_str45[sizeof("miao")]; + char uniname2ctype_pool_str46[sizeof("lo")]; + char uniname2ctype_pool_str47[sizeof("ci")]; + char uniname2ctype_pool_str48[sizeof("lao")]; + char uniname2ctype_pool_str49[sizeof("laoo")]; + char uniname2ctype_pool_str52[sizeof("inkannada")]; + char uniname2ctype_pool_str55[sizeof("cn")]; + char uniname2ctype_pool_str64[sizeof("pi")]; + char uniname2ctype_pool_str66[sizeof("innko")]; + char uniname2ctype_pool_str67[sizeof("z")]; + char uniname2ctype_pool_str71[sizeof("gran")]; + char uniname2ctype_pool_str75[sizeof("co")]; + char uniname2ctype_pool_str83[sizeof("lineara")]; + char uniname2ctype_pool_str86[sizeof("mark")]; + char uniname2ctype_pool_str90[sizeof("yezi")]; + char uniname2ctype_pool_str92[sizeof("po")]; + char uniname2ctype_pool_str94[sizeof("me")]; + char uniname2ctype_pool_str100[sizeof("cari")]; + char uniname2ctype_pool_str101[sizeof("inkharoshthi")]; + char uniname2ctype_pool_str102[sizeof("kana")]; + char uniname2ctype_pool_str103[sizeof("loe")]; + char uniname2ctype_pool_str107[sizeof("m")]; + char uniname2ctype_pool_str108[sizeof("grek")]; + char uniname2ctype_pool_str111[sizeof("mro")]; + char uniname2ctype_pool_str112[sizeof("mroo")]; + char uniname2ctype_pool_str115[sizeof("carian")]; + char uniname2ctype_pool_str117[sizeof("geor")]; + char uniname2ctype_pool_str118[sizeof("greek")]; + char uniname2ctype_pool_str122[sizeof("gonm")]; + char uniname2ctype_pool_str129[sizeof("mendekikakui")]; + char uniname2ctype_pool_str130[sizeof("pe")]; + char uniname2ctype_pool_str131[sizeof("mero")]; + char uniname2ctype_pool_str134[sizeof("inosmanya")]; + char uniname2ctype_pool_str139[sizeof("cakm")]; + char uniname2ctype_pool_str145[sizeof("inmanichaean")]; + char uniname2ctype_pool_str146[sizeof("inmro")]; + char uniname2ctype_pool_str148[sizeof("inmiao")]; + char uniname2ctype_pool_str149[sizeof("inchakma")]; + char uniname2ctype_pool_str151[sizeof("c")]; + char uniname2ctype_pool_str152[sizeof("mandaic")]; + char uniname2ctype_pool_str153[sizeof("meeteimayek")]; + char uniname2ctype_pool_str158[sizeof("zzzz")]; + char uniname2ctype_pool_str161[sizeof("inarmenian")]; + char uniname2ctype_pool_str177[sizeof("inmyanmar")]; + char uniname2ctype_pool_str178[sizeof("inmakasar")]; + char uniname2ctype_pool_str183[sizeof("common")]; + char uniname2ctype_pool_str186[sizeof("lm")]; + char uniname2ctype_pool_str190[sizeof("marc")]; + char uniname2ctype_pool_str203[sizeof("inrunic")]; + char uniname2ctype_pool_str204[sizeof("incarian")]; + char uniname2ctype_pool_str210[sizeof("inideographicsymbolsandpunctuation")]; + char uniname2ctype_pool_str212[sizeof("inkhmer")]; + char uniname2ctype_pool_str213[sizeof("qaai")]; + char uniname2ctype_pool_str218[sizeof("inahom")]; + char uniname2ctype_pool_str226[sizeof("merc")]; + char uniname2ctype_pool_str230[sizeof("inchorasmian")]; + char uniname2ctype_pool_str231[sizeof("combiningmark")]; + char uniname2ctype_pool_str236[sizeof("lc")]; + char uniname2ctype_pool_str237[sizeof("perm")]; + char uniname2ctype_pool_str246[sizeof("mc")]; + char uniname2ctype_pool_str250[sizeof("connectorpunctuation")]; + char uniname2ctype_pool_str253[sizeof("cans")]; + char uniname2ctype_pool_str260[sizeof("incuneiformnumbersandpunctuation")]; + char uniname2ctype_pool_str263[sizeof("armi")]; + char uniname2ctype_pool_str265[sizeof("cc")]; + char uniname2ctype_pool_str267[sizeof("armn")]; + char uniname2ctype_pool_str268[sizeof("incherokee")]; + char uniname2ctype_pool_str270[sizeof("prependedconcatenationmark")]; + char uniname2ctype_pool_str274[sizeof("incuneiform")]; + char uniname2ctype_pool_str275[sizeof("inavestan")]; + char uniname2ctype_pool_str281[sizeof("inipaextensions")]; + char uniname2ctype_pool_str282[sizeof("pc")]; + char uniname2ctype_pool_str283[sizeof("armenian")]; + char uniname2ctype_pool_str285[sizeof("insharada")]; + char uniname2ctype_pool_str287[sizeof("vai")]; + char uniname2ctype_pool_str288[sizeof("vaii")]; + char uniname2ctype_pool_str289[sizeof("inmarchen")]; + char uniname2ctype_pool_str293[sizeof("makasar")]; + char uniname2ctype_pool_str297[sizeof("masaramgondi")]; + char uniname2ctype_pool_str301[sizeof("inarrows")]; + char uniname2ctype_pool_str311[sizeof("incyrillic")]; + char uniname2ctype_pool_str313[sizeof("incham")]; + char uniname2ctype_pool_str315[sizeof("qmark")]; + char uniname2ctype_pool_str320[sizeof("ri")]; + char uniname2ctype_pool_str322[sizeof("qaac")]; + char uniname2ctype_pool_str328[sizeof("insamaritan")]; + char uniname2ctype_pool_str331[sizeof("latn")]; + char uniname2ctype_pool_str335[sizeof("inmasaramgondi")]; + char uniname2ctype_pool_str338[sizeof("inthaana")]; + char uniname2ctype_pool_str340[sizeof("latin")]; + char uniname2ctype_pool_str342[sizeof("inthai")]; + char uniname2ctype_pool_str345[sizeof("lineseparator")]; + char uniname2ctype_pool_str346[sizeof("pcm")]; + char uniname2ctype_pool_str348[sizeof("inkatakana")]; + char uniname2ctype_pool_str352[sizeof("inkaithi")]; + char uniname2ctype_pool_str362[sizeof("inscriptionalparthian")]; + char uniname2ctype_pool_str366[sizeof("initialpunctuation")]; + char uniname2ctype_pool_str373[sizeof("mtei")]; + char uniname2ctype_pool_str381[sizeof("inzanabazarsquare")]; + char uniname2ctype_pool_str386[sizeof("inkhmersymbols")]; + char uniname2ctype_pool_str399[sizeof("insyriac")]; + char uniname2ctype_pool_str401[sizeof("intakri")]; + char uniname2ctype_pool_str404[sizeof("arabic")]; + char uniname2ctype_pool_str418[sizeof("katakana")]; + char uniname2ctype_pool_str426[sizeof("prti")]; + char uniname2ctype_pool_str430[sizeof("zs")]; + char uniname2ctype_pool_str442[sizeof("ascii")]; + char uniname2ctype_pool_str445[sizeof("cs")]; + char uniname2ctype_pool_str462[sizeof("ps")]; + char uniname2ctype_pool_str468[sizeof("mand")]; + char uniname2ctype_pool_str470[sizeof("privateuse")]; + char uniname2ctype_pool_str475[sizeof("inruminumeralsymbols")]; + char uniname2ctype_pool_str480[sizeof("inmyanmarextendeda")]; + char uniname2ctype_pool_str481[sizeof("modi")]; + char uniname2ctype_pool_str486[sizeof("incjkcompatibilityforms")]; + char uniname2ctype_pool_str488[sizeof("inkanaextendeda")]; + char uniname2ctype_pool_str491[sizeof("incjkcompatibilityideographs")]; + char uniname2ctype_pool_str500[sizeof("brai")]; + char uniname2ctype_pool_str504[sizeof("mend")]; + char uniname2ctype_pool_str505[sizeof("ideo")]; + char uniname2ctype_pool_str506[sizeof("letter")]; + char uniname2ctype_pool_str509[sizeof("l")]; + char uniname2ctype_pool_str511[sizeof("inmeeteimayek")]; + char uniname2ctype_pool_str520[sizeof("inideographicdescriptioncharacters")]; + char uniname2ctype_pool_str533[sizeof("yezidi")]; + char uniname2ctype_pool_str538[sizeof("knda")]; + char uniname2ctype_pool_str541[sizeof("innandinagari")]; + char uniname2ctype_pool_str543[sizeof("kannada")]; + char uniname2ctype_pool_str556[sizeof("inmodi")]; + char uniname2ctype_pool_str558[sizeof("inlao")]; + char uniname2ctype_pool_str559[sizeof("xidcontinue")]; + char uniname2ctype_pool_str560[sizeof("inoldnortharabian")]; + char uniname2ctype_pool_str565[sizeof("intransportandmapsymbols")]; + char uniname2ctype_pool_str566[sizeof("letternumber")]; + char uniname2ctype_pool_str568[sizeof("gothic")]; + char uniname2ctype_pool_str572[sizeof("inlineara")]; + char uniname2ctype_pool_str577[sizeof("inmendekikakui")]; + char uniname2ctype_pool_str579[sizeof("mongolian")]; + char uniname2ctype_pool_str582[sizeof("inmiscellaneousmathematicalsymbolsa")]; + char uniname2ctype_pool_str583[sizeof("inspecials")]; + char uniname2ctype_pool_str590[sizeof("grlink")]; + char uniname2ctype_pool_str594[sizeof("brahmi")]; + char uniname2ctype_pool_str596[sizeof("inemoticons")]; + char uniname2ctype_pool_str597[sizeof("kali")]; + char uniname2ctype_pool_str600[sizeof("inolditalic")]; + char uniname2ctype_pool_str602[sizeof("xidc")]; + char uniname2ctype_pool_str604[sizeof("inmedefaidrin")]; + char uniname2ctype_pool_str605[sizeof("inchesssymbols")]; + char uniname2ctype_pool_str608[sizeof("incjkcompatibilityideographssupplement")]; + char uniname2ctype_pool_str609[sizeof("kits")]; + char uniname2ctype_pool_str614[sizeof("inadlam")]; + char uniname2ctype_pool_str624[sizeof("psalterpahlavi")]; + char uniname2ctype_pool_str625[sizeof("incommonindicnumberforms")]; + char uniname2ctype_pool_str630[sizeof("lt")]; + char uniname2ctype_pool_str636[sizeof("innewa")]; + char uniname2ctype_pool_str639[sizeof("sk")]; + char uniname2ctype_pool_str642[sizeof("control")]; + char uniname2ctype_pool_str643[sizeof("inkawi")]; + char uniname2ctype_pool_str645[sizeof("inancientsymbols")]; + char uniname2ctype_pool_str647[sizeof("palm")]; + char uniname2ctype_pool_str650[sizeof("inlycian")]; + char uniname2ctype_pool_str657[sizeof("so")]; + char uniname2ctype_pool_str660[sizeof("patternwhitespace")]; + char uniname2ctype_pool_str672[sizeof("inmandaic")]; + char uniname2ctype_pool_str675[sizeof("idc")]; + char uniname2ctype_pool_str678[sizeof("meroiticcursive")]; + char uniname2ctype_pool_str679[sizeof("intoto")]; + char uniname2ctype_pool_str683[sizeof("vs")]; + char uniname2ctype_pool_str692[sizeof("xids")]; + char uniname2ctype_pool_str695[sizeof("inwarangciti")]; + char uniname2ctype_pool_str696[sizeof("sora")]; + char uniname2ctype_pool_str697[sizeof("inopticalcharacterrecognition")]; + char uniname2ctype_pool_str700[sizeof("kawi")]; + char uniname2ctype_pool_str703[sizeof("inoldsogdian")]; + char uniname2ctype_pool_str705[sizeof("inmalayalam")]; + char uniname2ctype_pool_str707[sizeof("bamum")]; + char uniname2ctype_pool_str708[sizeof("inkanasupplement")]; + char uniname2ctype_pool_str713[sizeof("insundanese")]; + char uniname2ctype_pool_str720[sizeof("grext")]; + char uniname2ctype_pool_str737[sizeof("print")]; + char uniname2ctype_pool_str738[sizeof("intaitham")]; + char uniname2ctype_pool_str742[sizeof("lower")]; + char uniname2ctype_pool_str745[sizeof("patternsyntax")]; + char uniname2ctype_pool_str753[sizeof("joinc")]; + char uniname2ctype_pool_str755[sizeof("inoldsoutharabian")]; + char uniname2ctype_pool_str760[sizeof("incjkstrokes")]; + char uniname2ctype_pool_str761[sizeof("batk")]; + char uniname2ctype_pool_str766[sizeof("samr")]; + char uniname2ctype_pool_str767[sizeof("inwancho")]; + char uniname2ctype_pool_str771[sizeof("batak")]; + char uniname2ctype_pool_str776[sizeof("patws")]; + char uniname2ctype_pool_str783[sizeof("samaritan")]; + char uniname2ctype_pool_str787[sizeof("idsbinaryoperator")]; + char uniname2ctype_pool_str791[sizeof("pauc")]; + char uniname2ctype_pool_str794[sizeof("insmallkanaextension")]; + char uniname2ctype_pool_str797[sizeof("sm")]; + char uniname2ctype_pool_str799[sizeof("indominotiles")]; + char uniname2ctype_pool_str802[sizeof("alnum")]; + char uniname2ctype_pool_str803[sizeof("inznamennymusicalnotation")]; + char uniname2ctype_pool_str809[sizeof("insylotinagri")]; + char uniname2ctype_pool_str814[sizeof("inugaritic")]; + char uniname2ctype_pool_str818[sizeof("incontrolpictures")]; + char uniname2ctype_pool_str821[sizeof("inlinearbideograms")]; + char uniname2ctype_pool_str822[sizeof("inmusicalsymbols")]; + char uniname2ctype_pool_str823[sizeof("s")]; + char uniname2ctype_pool_str824[sizeof("ital")]; + char uniname2ctype_pool_str825[sizeof("inmodifiertoneletters")]; + char uniname2ctype_pool_str828[sizeof("inancientgreekmusicalnotation")]; + char uniname2ctype_pool_str838[sizeof("lisu")]; + char uniname2ctype_pool_str842[sizeof("lowercase")]; + char uniname2ctype_pool_str845[sizeof("cwcm")]; + char uniname2ctype_pool_str847[sizeof("sc")]; + char uniname2ctype_pool_str848[sizeof("bass")]; + char uniname2ctype_pool_str855[sizeof("ids")]; + char uniname2ctype_pool_str857[sizeof("inlatinextendeda")]; + char uniname2ctype_pool_str875[sizeof("intaile")]; + char uniname2ctype_pool_str886[sizeof("inmiscellaneoussymbols")]; + char uniname2ctype_pool_str895[sizeof("inmiscellaneoussymbolsandarrows")]; + char uniname2ctype_pool_str898[sizeof("incaucasianalbanian")]; + char uniname2ctype_pool_str900[sizeof("inmiscellaneoussymbolsandpictographs")]; + char uniname2ctype_pool_str906[sizeof("inoldturkic")]; + char uniname2ctype_pool_str907[sizeof("insaurashtra")]; + char uniname2ctype_pool_str920[sizeof("incyrillicextendeda")]; + char uniname2ctype_pool_str924[sizeof("idcontinue")]; + char uniname2ctype_pool_str925[sizeof("intaixuanjingsymbols")]; + char uniname2ctype_pool_str926[sizeof("intamil")]; + char uniname2ctype_pool_str928[sizeof("inmultani")]; + char uniname2ctype_pool_str929[sizeof("inlatinextendede")]; + char uniname2ctype_pool_str930[sizeof("pd")]; + char uniname2ctype_pool_str946[sizeof("bali")]; + char uniname2ctype_pool_str961[sizeof("blank")]; + char uniname2ctype_pool_str963[sizeof("idst")]; + char uniname2ctype_pool_str974[sizeof("inlydian")]; + char uniname2ctype_pool_str986[sizeof("innewtailue")]; + char uniname2ctype_pool_str994[sizeof("bengali")]; + char uniname2ctype_pool_str995[sizeof("runr")]; + char uniname2ctype_pool_str1010[sizeof("ll")]; + char uniname2ctype_pool_str1013[sizeof("indeseret")]; + char uniname2ctype_pool_str1015[sizeof("inancientgreeknumbers")]; + char uniname2ctype_pool_str1021[sizeof("idstart")]; + char uniname2ctype_pool_str1024[sizeof("zl")]; + char uniname2ctype_pool_str1025[sizeof("inmeeteimayekextensions")]; + char uniname2ctype_pool_str1028[sizeof("balinese")]; + char uniname2ctype_pool_str1032[sizeof("incyrillicextendedc")]; + char uniname2ctype_pool_str1035[sizeof("inspacingmodifierletters")]; + char uniname2ctype_pool_str1036[sizeof("inearlydynasticcuneiform")]; + char uniname2ctype_pool_str1049[sizeof("plrd")]; + char uniname2ctype_pool_str1067[sizeof("canadianaboriginal")]; + char uniname2ctype_pool_str1072[sizeof("sind")]; + char uniname2ctype_pool_str1081[sizeof("inlatinextendedc")]; + char uniname2ctype_pool_str1085[sizeof("uideo")]; + char uniname2ctype_pool_str1087[sizeof("incountingrodnumerals")]; + char uniname2ctype_pool_str1089[sizeof("zinh")]; + char uniname2ctype_pool_str1095[sizeof("dia")]; + char uniname2ctype_pool_str1096[sizeof("di")]; + char uniname2ctype_pool_str1097[sizeof("inkhudawadi")]; + char uniname2ctype_pool_str1102[sizeof("inhanifirohingya")]; + char uniname2ctype_pool_str1104[sizeof("diak")]; + char uniname2ctype_pool_str1105[sizeof("gong")]; + char uniname2ctype_pool_str1107[sizeof("ingrantha")]; + char uniname2ctype_pool_str1109[sizeof("bidic")]; + char uniname2ctype_pool_str1114[sizeof("xidstart")]; + char uniname2ctype_pool_str1115[sizeof("xdigit")]; + char uniname2ctype_pool_str1119[sizeof("mong")]; + char uniname2ctype_pool_str1120[sizeof("cased")]; + char uniname2ctype_pool_str1134[sizeof("inhiragana")]; + char uniname2ctype_pool_str1140[sizeof("sinhala")]; + char uniname2ctype_pool_str1142[sizeof("adlm")]; + char uniname2ctype_pool_str1145[sizeof("xsux")]; + char uniname2ctype_pool_str1146[sizeof("glagolitic")]; + char uniname2ctype_pool_str1147[sizeof("sterm")]; + char uniname2ctype_pool_str1149[sizeof("bamu")]; + char uniname2ctype_pool_str1150[sizeof("georgian")]; + char uniname2ctype_pool_str1151[sizeof("inosage")]; + char uniname2ctype_pool_str1152[sizeof("gunjalagondi")]; + char uniname2ctype_pool_str1153[sizeof("phoenician")]; + char uniname2ctype_pool_str1156[sizeof("inolduyghur")]; + char uniname2ctype_pool_str1157[sizeof("multani")]; + char uniname2ctype_pool_str1158[sizeof("kaithi")]; + char uniname2ctype_pool_str1164[sizeof("joincontrol")]; + char uniname2ctype_pool_str1168[sizeof("runic")]; + char uniname2ctype_pool_str1170[sizeof("ingeneralpunctuation")]; + char uniname2ctype_pool_str1171[sizeof("inmahajani")]; + char uniname2ctype_pool_str1174[sizeof("incyrillicsupplement")]; + char uniname2ctype_pool_str1175[sizeof("lowercaseletter")]; + char uniname2ctype_pool_str1176[sizeof("marchen")]; + char uniname2ctype_pool_str1177[sizeof("graphemelink")]; + char uniname2ctype_pool_str1178[sizeof("ingeorgian")]; + char uniname2ctype_pool_str1180[sizeof("khojki")]; + char uniname2ctype_pool_str1181[sizeof("cham")]; + char uniname2ctype_pool_str1182[sizeof("inogham")]; + char uniname2ctype_pool_str1183[sizeof("cher")]; + char uniname2ctype_pool_str1185[sizeof("chakma")]; + char uniname2ctype_pool_str1186[sizeof("inkaktoviknumerals")]; + char uniname2ctype_pool_str1190[sizeof("emoji")]; + char uniname2ctype_pool_str1191[sizeof("insiddham")]; + char uniname2ctype_pool_str1197[sizeof("cherokee")]; + char uniname2ctype_pool_str1198[sizeof("khar")]; + char uniname2ctype_pool_str1203[sizeof("inmongolian")]; + char uniname2ctype_pool_str1204[sizeof("innagmundari")]; + char uniname2ctype_pool_str1207[sizeof("incherokeesupplement")]; + char uniname2ctype_pool_str1209[sizeof("manichaean")]; + char uniname2ctype_pool_str1212[sizeof("inolchiki")]; + char uniname2ctype_pool_str1223[sizeof("inkhitansmallscript")]; + char uniname2ctype_pool_str1227[sizeof("quotationmark")]; + char uniname2ctype_pool_str1229[sizeof("vithkuqi")]; + char uniname2ctype_pool_str1230[sizeof("variationselector")]; + char uniname2ctype_pool_str1231[sizeof("adlam")]; + char uniname2ctype_pool_str1232[sizeof("inethiopic")]; + char uniname2ctype_pool_str1233[sizeof("graphemebase")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1234[sizeof("age=11.0")]; + char uniname2ctype_pool_str1235[sizeof("age=12.1")]; + char uniname2ctype_pool_str1236[sizeof("age=10.0")]; + char uniname2ctype_pool_str1237[sizeof("age=12.0")]; + char uniname2ctype_pool_str1241[sizeof("age=13.0")]; + char uniname2ctype_pool_str1242[sizeof("age=1.1")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1243[sizeof("casedletter")]; + char uniname2ctype_pool_str1244[sizeof("ingurmukhi")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1245[sizeof("age=2.1")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1246[sizeof("incjkunifiedideographsextensiona")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1247[sizeof("age=2.0")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1248[sizeof("lu")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1249[sizeof("age=3.1")]; + char uniname2ctype_pool_str1250[sizeof("age=9.0")]; + char uniname2ctype_pool_str1251[sizeof("age=3.0")]; + char uniname2ctype_pool_str1252[sizeof("age=3.2")]; + char uniname2ctype_pool_str1253[sizeof("age=8.0")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1254[sizeof("intamilsupplement")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1255[sizeof("age=6.1")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1256[sizeof("unknown")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1257[sizeof("age=6.0")]; + char uniname2ctype_pool_str1258[sizeof("age=6.2")]; + char uniname2ctype_pool_str1259[sizeof("age=15.0")]; + char uniname2ctype_pool_str1260[sizeof("age=7.0")]; + char uniname2ctype_pool_str1262[sizeof("age=6.3")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1263[sizeof("cwt")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1265[sizeof("age=14.0")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1266[sizeof("unassigned")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1267[sizeof("age=5.1")]; + char uniname2ctype_pool_str1269[sizeof("age=5.0")]; + char uniname2ctype_pool_str1270[sizeof("age=5.2")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1271[sizeof("diacritic")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1273[sizeof("age=4.1")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1274[sizeof("ahom")]; +#ifdef USE_UNICODE_AGE_PROPERTIES + char uniname2ctype_pool_str1275[sizeof("age=4.0")]; +#endif /* USE_UNICODE_AGE_PROPERTIES */ + char uniname2ctype_pool_str1282[sizeof("incjkunifiedideographsextensione")]; + char uniname2ctype_pool_str1285[sizeof("khmr")]; + char uniname2ctype_pool_str1289[sizeof("insinhala")]; + char uniname2ctype_pool_str1292[sizeof("inmiscellaneoustechnical")]; + char uniname2ctype_pool_str1297[sizeof("saur")]; + char uniname2ctype_pool_str1300[sizeof("guru")]; + char uniname2ctype_pool_str1301[sizeof("sundanese")]; + char uniname2ctype_pool_str1306[sizeof("punct")]; + char uniname2ctype_pool_str1314[sizeof("paucinhau")]; + char uniname2ctype_pool_str1317[sizeof("gurmukhi")]; + char uniname2ctype_pool_str1328[sizeof("chorasmian")]; + char uniname2ctype_pool_str1331[sizeof("logicalorderexception")]; + char uniname2ctype_pool_str1340[sizeof("khmer")]; + char uniname2ctype_pool_str1343[sizeof("limbu")]; + char uniname2ctype_pool_str1349[sizeof("chrs")]; + char uniname2ctype_pool_str1352[sizeof("oriya")]; + char uniname2ctype_pool_str1354[sizeof("inscriptionalpahlavi")]; + char uniname2ctype_pool_str1356[sizeof("incyrillicextendedd")]; + char uniname2ctype_pool_str1358[sizeof("incjkunifiedideographsextensionc")]; + char uniname2ctype_pool_str1360[sizeof("cntrl")]; + char uniname2ctype_pool_str1365[sizeof("inlatinextendedadditional")]; + char uniname2ctype_pool_str1367[sizeof("insorasompeng")]; + char uniname2ctype_pool_str1369[sizeof("radical")]; + char uniname2ctype_pool_str1373[sizeof("emojimodifier")]; + char uniname2ctype_pool_str1375[sizeof("kharoshthi")]; + char uniname2ctype_pool_str1380[sizeof("n")]; + char uniname2ctype_pool_str1384[sizeof("math")]; + char uniname2ctype_pool_str1387[sizeof("goth")]; + char uniname2ctype_pool_str1392[sizeof("phnx")]; + char uniname2ctype_pool_str1400[sizeof("anatolianhieroglyphs")]; + char uniname2ctype_pool_str1401[sizeof("inenclosedalphanumerics")]; + char uniname2ctype_pool_str1407[sizeof("nandinagari")]; + char uniname2ctype_pool_str1409[sizeof("no")]; + char uniname2ctype_pool_str1415[sizeof("intangsa")]; + char uniname2ctype_pool_str1419[sizeof("nko")]; + char uniname2ctype_pool_str1420[sizeof("nkoo")]; + char uniname2ctype_pool_str1422[sizeof("ingreekandcoptic")]; + char uniname2ctype_pool_str1426[sizeof("p")]; + char uniname2ctype_pool_str1428[sizeof("grantha")]; + char uniname2ctype_pool_str1429[sizeof("decimalnumber")]; + char uniname2ctype_pool_str1438[sizeof("incjkunifiedideographs")]; + char uniname2ctype_pool_str1442[sizeof("intirhuta")]; + char uniname2ctype_pool_str1448[sizeof("inhatran")]; + char uniname2ctype_pool_str1449[sizeof("linb")]; + char uniname2ctype_pool_str1451[sizeof("mult")]; + char uniname2ctype_pool_str1454[sizeof("saurashtra")]; + char uniname2ctype_pool_str1457[sizeof("kthi")]; + char uniname2ctype_pool_str1460[sizeof("zanb")]; + char uniname2ctype_pool_str1462[sizeof("inbhaiksuki")]; + char uniname2ctype_pool_str1470[sizeof("innabataean")]; + char uniname2ctype_pool_str1471[sizeof("inphoenician")]; + char uniname2ctype_pool_str1474[sizeof("xpeo")]; + char uniname2ctype_pool_str1475[sizeof("inkanbun")]; + char uniname2ctype_pool_str1476[sizeof("inmeroitichieroglyphs")]; + char uniname2ctype_pool_str1480[sizeof("ahex")]; + char uniname2ctype_pool_str1489[sizeof("enclosingmark")]; + char uniname2ctype_pool_str1495[sizeof("sd")]; + char uniname2ctype_pool_str1497[sizeof("inelbasan")]; + char uniname2ctype_pool_str1499[sizeof("inenclosedideographicsupplement")]; + char uniname2ctype_pool_str1501[sizeof("sidd")]; + char uniname2ctype_pool_str1507[sizeof("linearb")]; + char uniname2ctype_pool_str1508[sizeof("cpmn")]; + char uniname2ctype_pool_str1517[sizeof("inenclosedalphanumericsupplement")]; + char uniname2ctype_pool_str1520[sizeof("bidicontrol")]; + char uniname2ctype_pool_str1524[sizeof("inphaistosdisc")]; + char uniname2ctype_pool_str1529[sizeof("limb")]; + char uniname2ctype_pool_str1531[sizeof("inkangxiradicals")]; + char uniname2ctype_pool_str1533[sizeof("lepc")]; + char uniname2ctype_pool_str1536[sizeof("braille")]; + char uniname2ctype_pool_str1537[sizeof("regionalindicator")]; + char uniname2ctype_pool_str1542[sizeof("inlowsurrogates")]; + char uniname2ctype_pool_str1547[sizeof("brah")]; + char uniname2ctype_pool_str1549[sizeof("inoldhungarian")]; + char uniname2ctype_pool_str1557[sizeof("beng")]; + char uniname2ctype_pool_str1563[sizeof("emojimodifierbase")]; + char uniname2ctype_pool_str1565[sizeof("inarabic")]; + char uniname2ctype_pool_str1570[sizeof("osage")]; + char uniname2ctype_pool_str1572[sizeof("inherited")]; + char uniname2ctype_pool_str1577[sizeof("incyprominoan")]; + char uniname2ctype_pool_str1580[sizeof("glag")]; + char uniname2ctype_pool_str1582[sizeof("medf")]; + char uniname2ctype_pool_str1583[sizeof("osma")]; + char uniname2ctype_pool_str1587[sizeof("indogra")]; + char uniname2ctype_pool_str1597[sizeof("arab")]; + char uniname2ctype_pool_str1598[sizeof("medefaidrin")]; + char uniname2ctype_pool_str1607[sizeof("inshorthandformatcontrols")]; + char uniname2ctype_pool_str1613[sizeof("phli")]; + char uniname2ctype_pool_str1617[sizeof("inimperialaramaic")]; + char uniname2ctype_pool_str1618[sizeof("emod")]; + char uniname2ctype_pool_str1622[sizeof("ingreekextended")]; + char uniname2ctype_pool_str1623[sizeof("inanatolianhieroglyphs")]; + char uniname2ctype_pool_str1629[sizeof("punctuation")]; + char uniname2ctype_pool_str1635[sizeof("graphemeextend")]; + char uniname2ctype_pool_str1643[sizeof("cwl")]; + char uniname2ctype_pool_str1644[sizeof("vith")]; + char uniname2ctype_pool_str1654[sizeof("ingeometricshapes")]; + char uniname2ctype_pool_str1655[sizeof("emojicomponent")]; + char uniname2ctype_pool_str1657[sizeof("dsrt")]; + char uniname2ctype_pool_str1662[sizeof("coptic")]; + char uniname2ctype_pool_str1664[sizeof("inkayahli")]; + char uniname2ctype_pool_str1671[sizeof("inoriya")]; + char uniname2ctype_pool_str1675[sizeof("inarabicpresentationformsa")]; + char uniname2ctype_pool_str1677[sizeof("inbasiclatin")]; + char uniname2ctype_pool_str1682[sizeof("incjkunifiedideographsextensiond")]; + char uniname2ctype_pool_str1684[sizeof("wara")]; + char uniname2ctype_pool_str1686[sizeof("sinh")]; + char uniname2ctype_pool_str1687[sizeof("sund")]; + char uniname2ctype_pool_str1691[sizeof("shavian")]; + char uniname2ctype_pool_str1699[sizeof("insundanesesupplement")]; + char uniname2ctype_pool_str1701[sizeof("inyezidi")]; + char uniname2ctype_pool_str1704[sizeof("bhks")]; + char uniname2ctype_pool_str1714[sizeof("bhaiksuki")]; + char uniname2ctype_pool_str1722[sizeof("inhanunoo")]; + char uniname2ctype_pool_str1724[sizeof("intangut")]; + char uniname2ctype_pool_str1728[sizeof("sogdian")]; + char uniname2ctype_pool_str1729[sizeof("inlatinextendedd")]; + char uniname2ctype_pool_str1730[sizeof("sogo")]; + char uniname2ctype_pool_str1731[sizeof("insinhalaarchaicnumbers")]; + char uniname2ctype_pool_str1732[sizeof("ideographic")]; + char uniname2ctype_pool_str1733[sizeof("ugar")]; + char uniname2ctype_pool_str1734[sizeof("deseret")]; + char uniname2ctype_pool_str1735[sizeof("odi")]; + char uniname2ctype_pool_str1740[sizeof("copt")]; + char uniname2ctype_pool_str1742[sizeof("imperialaramaic")]; + char uniname2ctype_pool_str1745[sizeof("insogdian")]; + char uniname2ctype_pool_str1746[sizeof("indingbats")]; + char uniname2ctype_pool_str1750[sizeof("format")]; + char uniname2ctype_pool_str1752[sizeof("ininscriptionalpahlavi")]; + char uniname2ctype_pool_str1753[sizeof("lyci")]; + char uniname2ctype_pool_str1757[sizeof("ininscriptionalparthian")]; + char uniname2ctype_pool_str1766[sizeof("grbase")]; + char uniname2ctype_pool_str1768[sizeof("lycian")]; + char uniname2ctype_pool_str1769[sizeof("inbatak")]; + char uniname2ctype_pool_str1776[sizeof("cprt")]; + char uniname2ctype_pool_str1781[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; + char uniname2ctype_pool_str1788[sizeof("mymr")]; + char uniname2ctype_pool_str1793[sizeof("myanmar")]; + char uniname2ctype_pool_str1806[sizeof("intibetan")]; + char uniname2ctype_pool_str1810[sizeof("intags")]; + char uniname2ctype_pool_str1811[sizeof("asciihexdigit")]; + char uniname2ctype_pool_str1813[sizeof("sentenceterminal")]; + char uniname2ctype_pool_str1821[sizeof("nand")]; + char uniname2ctype_pool_str1828[sizeof("inblockelements")]; + char uniname2ctype_pool_str1838[sizeof("inornamentaldingbats")]; + char uniname2ctype_pool_str1841[sizeof("inethiopicextendeda")]; + char uniname2ctype_pool_str1842[sizeof("innumberforms")]; + char uniname2ctype_pool_str1843[sizeof("cwcf")]; + char uniname2ctype_pool_str1845[sizeof("oidc")]; + char uniname2ctype_pool_str1848[sizeof("bopo")]; + char uniname2ctype_pool_str1851[sizeof("cuneiform")]; + char uniname2ctype_pool_str1866[sizeof("caseignorable")]; + char uniname2ctype_pool_str1871[sizeof("inoldpersian")]; + char uniname2ctype_pool_str1881[sizeof("cwu")]; + char uniname2ctype_pool_str1888[sizeof("inelymaic")]; + char uniname2ctype_pool_str1889[sizeof("insoyombo")]; + char uniname2ctype_pool_str1896[sizeof("ingeometricshapesextended")]; + char uniname2ctype_pool_str1902[sizeof("incjkcompatibility")]; + char uniname2ctype_pool_str1904[sizeof("inmyanmarextendedb")]; + char uniname2ctype_pool_str1905[sizeof("innushu")]; + char uniname2ctype_pool_str1912[sizeof("inkanaextendedb")]; + char uniname2ctype_pool_str1913[sizeof("olck")]; + char uniname2ctype_pool_str1916[sizeof("inbyzantinemusicalsymbols")]; + char uniname2ctype_pool_str1924[sizeof("olchiki")]; + char uniname2ctype_pool_str1929[sizeof("inkatakanaphoneticextensions")]; + char uniname2ctype_pool_str1932[sizeof("incoptic")]; + char uniname2ctype_pool_str1935[sizeof("oids")]; + char uniname2ctype_pool_str1936[sizeof("inarabicextendeda")]; + char uniname2ctype_pool_str1941[sizeof("modifierletter")]; + char uniname2ctype_pool_str1950[sizeof("incjksymbolsandpunctuation")]; + char uniname2ctype_pool_str1956[sizeof("olower")]; + char uniname2ctype_pool_str1958[sizeof("bopomofo")]; + char uniname2ctype_pool_str1964[sizeof("inlisu")]; + char uniname2ctype_pool_str1967[sizeof("inoldpermic")]; + char uniname2ctype_pool_str1968[sizeof("innoblock")]; + char uniname2ctype_pool_str1969[sizeof("ext")]; + char uniname2ctype_pool_str1974[sizeof("inunifiedcanadianaboriginalsyllabics")]; + char uniname2ctype_pool_str1981[sizeof("takri")]; + char uniname2ctype_pool_str1985[sizeof("inbraillepatterns")]; + char uniname2ctype_pool_str1988[sizeof("invai")]; + char uniname2ctype_pool_str1991[sizeof("alpha")]; + char uniname2ctype_pool_str1993[sizeof("inbalinese")]; + char uniname2ctype_pool_str1994[sizeof("sorasompeng")]; + char uniname2ctype_pool_str1996[sizeof("closepunctuation")]; + char uniname2ctype_pool_str2001[sizeof("hani")]; + char uniname2ctype_pool_str2002[sizeof("inmayannumerals")]; + char uniname2ctype_pool_str2004[sizeof("han")]; + char uniname2ctype_pool_str2006[sizeof("inmiscellaneousmathematicalsymbolsb")]; + char uniname2ctype_pool_str2010[sizeof("inlepcha")]; + char uniname2ctype_pool_str2011[sizeof("patsyn")]; + char uniname2ctype_pool_str2012[sizeof("inlisusupplement")]; + char uniname2ctype_pool_str2014[sizeof("insyriacsupplement")]; + char uniname2ctype_pool_str2015[sizeof("hano")]; + char uniname2ctype_pool_str2016[sizeof("newa")]; + char uniname2ctype_pool_str2023[sizeof("spacingmark")]; + char uniname2ctype_pool_str2024[sizeof("inpalmyrene")]; + char uniname2ctype_pool_str2026[sizeof("takr")]; + char uniname2ctype_pool_str2033[sizeof("xposixpunct")]; + char uniname2ctype_pool_str2040[sizeof("inkhojki")]; + char uniname2ctype_pool_str2042[sizeof("taile")]; + char uniname2ctype_pool_str2043[sizeof("assigned")]; + char uniname2ctype_pool_str2044[sizeof("hanunoo")]; + char uniname2ctype_pool_str2047[sizeof("hira")]; + char uniname2ctype_pool_str2048[sizeof("inarabicextendedc")]; + char uniname2ctype_pool_str2062[sizeof("newtailue")]; + char uniname2ctype_pool_str2070[sizeof("space")]; + char uniname2ctype_pool_str2073[sizeof("intelugu")]; + char uniname2ctype_pool_str2077[sizeof("lydi")]; + char uniname2ctype_pool_str2078[sizeof("idsb")]; + char uniname2ctype_pool_str2090[sizeof("extpict")]; + char uniname2ctype_pool_str2092[sizeof("lydian")]; + char uniname2ctype_pool_str2095[sizeof("inethiopicsupplement")]; + char uniname2ctype_pool_str2103[sizeof("sarb")]; + char uniname2ctype_pool_str2110[sizeof("ugaritic")]; + char uniname2ctype_pool_str2114[sizeof("inyiradicals")]; + char uniname2ctype_pool_str2115[sizeof("inphoneticextensions")]; + char uniname2ctype_pool_str2117[sizeof("sharada")]; + char uniname2ctype_pool_str2128[sizeof("zanabazarsquare")]; + char uniname2ctype_pool_str2135[sizeof("bugi")]; + char uniname2ctype_pool_str2137[sizeof("word")]; + char uniname2ctype_pool_str2141[sizeof("term")]; + char uniname2ctype_pool_str2145[sizeof("separator")]; + char uniname2ctype_pool_str2146[sizeof("ingeorgiansupplement")]; + char uniname2ctype_pool_str2149[sizeof("sogd")]; + char uniname2ctype_pool_str2163[sizeof("extender")]; + char uniname2ctype_pool_str2165[sizeof("shrd")]; + char uniname2ctype_pool_str2166[sizeof("graph")]; + char uniname2ctype_pool_str2174[sizeof("tnsa")]; + char uniname2ctype_pool_str2178[sizeof("tangsa")]; + char uniname2ctype_pool_str2181[sizeof("phag")]; + char uniname2ctype_pool_str2182[sizeof("dogra")]; + char uniname2ctype_pool_str2195[sizeof("inhanguljamo")]; + char uniname2ctype_pool_str2196[sizeof("inshavian")]; + char uniname2ctype_pool_str2207[sizeof("siddham")]; + char uniname2ctype_pool_str2211[sizeof("cf")]; + char uniname2ctype_pool_str2216[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; + char uniname2ctype_pool_str2217[sizeof("buginese")]; + char uniname2ctype_pool_str2218[sizeof("inmongoliansupplement")]; + char uniname2ctype_pool_str2219[sizeof("cyrl")]; + char uniname2ctype_pool_str2224[sizeof("inhanguljamoextendeda")]; + char uniname2ctype_pool_str2228[sizeof("pf")]; + char uniname2ctype_pool_str2229[sizeof("number")]; + char uniname2ctype_pool_str2232[sizeof("inphoneticextensionssupplement")]; + char uniname2ctype_pool_str2233[sizeof("dogr")]; + char uniname2ctype_pool_str2234[sizeof("mlym")]; + char uniname2ctype_pool_str2235[sizeof("incopticepactnumbers")]; + char uniname2ctype_pool_str2241[sizeof("malayalam")]; + char uniname2ctype_pool_str2244[sizeof("inbamum")]; + char uniname2ctype_pool_str2247[sizeof("nd")]; + char uniname2ctype_pool_str2248[sizeof("insuttonsignwriting")]; + char uniname2ctype_pool_str2276[sizeof("inethiopicextended")]; + char uniname2ctype_pool_str2278[sizeof("shaw")]; + char uniname2ctype_pool_str2279[sizeof("palmyrene")]; + char uniname2ctype_pool_str2283[sizeof("soyo")]; + char uniname2ctype_pool_str2296[sizeof("incjkunifiedideographsextensionh")]; + char uniname2ctype_pool_str2305[sizeof("sgnw")]; + char uniname2ctype_pool_str2308[sizeof("toto")]; + char uniname2ctype_pool_str2312[sizeof("caucasianalbanian")]; + char uniname2ctype_pool_str2315[sizeof("inmathematicalalphanumericsymbols")]; + char uniname2ctype_pool_str2316[sizeof("incjkunifiedideographsextensiong")]; + char uniname2ctype_pool_str2318[sizeof("hatran")]; + char uniname2ctype_pool_str2321[sizeof("taiviet")]; + char uniname2ctype_pool_str2323[sizeof("meroitichieroglyphs")]; + char uniname2ctype_pool_str2327[sizeof("ingeorgianextended")]; + char uniname2ctype_pool_str2331[sizeof("incjkunifiedideographsextensionf")]; + char uniname2ctype_pool_str2333[sizeof("oldpersian")]; + char uniname2ctype_pool_str2343[sizeof("induployan")]; + char uniname2ctype_pool_str2344[sizeof("incyrillicextendedb")]; + char uniname2ctype_pool_str2345[sizeof("dash")]; + char uniname2ctype_pool_str2353[sizeof("hatr")]; + char uniname2ctype_pool_str2361[sizeof("innyiakengpuachuehmong")]; + char uniname2ctype_pool_str2364[sizeof("incombiningdiacriticalmarks")]; + char uniname2ctype_pool_str2373[sizeof("nl")]; + char uniname2ctype_pool_str2374[sizeof("incombiningdiacriticalmarksforsymbols")]; + char uniname2ctype_pool_str2375[sizeof("khudawadi")]; + char uniname2ctype_pool_str2397[sizeof("incjkradicalssupplement")]; + char uniname2ctype_pool_str2398[sizeof("inglagolitic")]; + char uniname2ctype_pool_str2405[sizeof("orkh")]; + char uniname2ctype_pool_str2414[sizeof("syrc")]; + char uniname2ctype_pool_str2427[sizeof("surrogate")]; + char uniname2ctype_pool_str2433[sizeof("indevanagari")]; + char uniname2ctype_pool_str2434[sizeof("avestan")]; + char uniname2ctype_pool_str2437[sizeof("oldpermic")]; + char uniname2ctype_pool_str2440[sizeof("ethi")]; + char uniname2ctype_pool_str2451[sizeof("ogam")]; + char uniname2ctype_pool_str2454[sizeof("rohg")]; + char uniname2ctype_pool_str2460[sizeof("idstrinaryoperator")]; + char uniname2ctype_pool_str2464[sizeof("java")]; + char uniname2ctype_pool_str2470[sizeof("inphagspa")]; + char uniname2ctype_pool_str2475[sizeof("lepcha")]; + char uniname2ctype_pool_str2476[sizeof("indevanagariextendeda")]; + char uniname2ctype_pool_str2478[sizeof("intifinagh")]; + char uniname2ctype_pool_str2479[sizeof("intagalog")]; + char uniname2ctype_pool_str2481[sizeof("incombiningdiacriticalmarkssupplement")]; + char uniname2ctype_pool_str2500[sizeof("tale")]; + char uniname2ctype_pool_str2506[sizeof("inbrahmi")]; + char uniname2ctype_pool_str2511[sizeof("terminalpunctuation")]; + char uniname2ctype_pool_str2513[sizeof("insymbolsandpictographsextendeda")]; + char uniname2ctype_pool_str2530[sizeof("syriac")]; + char uniname2ctype_pool_str2534[sizeof("inbengali")]; + char uniname2ctype_pool_str2535[sizeof("nagm")]; + char uniname2ctype_pool_str2545[sizeof("extendedpictographic")]; + char uniname2ctype_pool_str2548[sizeof("buhd")]; + char uniname2ctype_pool_str2549[sizeof("javanese")]; + char uniname2ctype_pool_str2551[sizeof("taml")]; + char uniname2ctype_pool_str2564[sizeof("inbuginese")]; + char uniname2ctype_pool_str2567[sizeof("inlatin1supplement")]; + char uniname2ctype_pool_str2570[sizeof("ingothic")]; + char uniname2ctype_pool_str2572[sizeof("invariationselectors")]; + char uniname2ctype_pool_str2574[sizeof("hex")]; + char uniname2ctype_pool_str2575[sizeof("inverticalforms")]; + char uniname2ctype_pool_str2576[sizeof("ebase")]; + char uniname2ctype_pool_str2582[sizeof("incurrencysymbols")]; + char uniname2ctype_pool_str2588[sizeof("avst")]; + char uniname2ctype_pool_str2602[sizeof("osge")]; + char uniname2ctype_pool_str2606[sizeof("incombiningdiacriticalmarksextended")]; + char uniname2ctype_pool_str2608[sizeof("intaiviet")]; + char uniname2ctype_pool_str2609[sizeof("spaceseparator")]; + char uniname2ctype_pool_str2625[sizeof("softdotted")]; + char uniname2ctype_pool_str2648[sizeof("nchar")]; + char uniname2ctype_pool_str2652[sizeof("invedicextensions")]; + char uniname2ctype_pool_str2656[sizeof("inlimbu")]; + char uniname2ctype_pool_str2657[sizeof("olditalic")]; + char uniname2ctype_pool_str2665[sizeof("gujr")]; + char uniname2ctype_pool_str2666[sizeof("mathsymbol")]; + char uniname2ctype_pool_str2670[sizeof("incjkunifiedideographsextensionb")]; + char uniname2ctype_pool_str2674[sizeof("gujarati")]; + char uniname2ctype_pool_str2688[sizeof("phagspa")]; + char uniname2ctype_pool_str2689[sizeof("invariationselectorssupplement")]; + char uniname2ctype_pool_str2694[sizeof("currencysymbol")]; + char uniname2ctype_pool_str2705[sizeof("inlinearbsyllabary")]; + char uniname2ctype_pool_str2726[sizeof("wancho")]; + char uniname2ctype_pool_str2750[sizeof("inpaucinhau")]; + char uniname2ctype_pool_str2761[sizeof("other")]; + char uniname2ctype_pool_str2762[sizeof("otheridcontinue")]; + char uniname2ctype_pool_str2765[sizeof("sylo")]; + char uniname2ctype_pool_str2766[sizeof("zp")]; + char uniname2ctype_pool_str2769[sizeof("inaegeannumbers")]; + char uniname2ctype_pool_str2772[sizeof("warangciti")]; + char uniname2ctype_pool_str2775[sizeof("othernumber")]; + char uniname2ctype_pool_str2786[sizeof("digit")]; + char uniname2ctype_pool_str2793[sizeof("nonspacingmark")]; + char uniname2ctype_pool_str2801[sizeof("titlecaseletter")]; + char uniname2ctype_pool_str2808[sizeof("inmeroiticcursive")]; + char uniname2ctype_pool_str2810[sizeof("wcho")]; + char uniname2ctype_pool_str2816[sizeof("graphemeclusterbreak=spacingmark")]; + char uniname2ctype_pool_str2821[sizeof("inletterlikesymbols")]; + char uniname2ctype_pool_str2830[sizeof("inottomansiyaqnumbers")]; + char uniname2ctype_pool_str2834[sizeof("intagbanwa")]; + char uniname2ctype_pool_str2836[sizeof("cyrillic")]; + char uniname2ctype_pool_str2847[sizeof("oalpha")]; + char uniname2ctype_pool_str2852[sizeof("graphemeclusterbreak=cr")]; + char uniname2ctype_pool_str2855[sizeof("narb")]; + char uniname2ctype_pool_str2856[sizeof("changeswhencasemapped")]; + char uniname2ctype_pool_str2859[sizeof("inbopomofo")]; + char uniname2ctype_pool_str2867[sizeof("graphemeclusterbreak=regionalindicator")]; + char uniname2ctype_pool_str2868[sizeof("otheralphabetic")]; + char uniname2ctype_pool_str2871[sizeof("noncharactercodepoint")]; + char uniname2ctype_pool_str2879[sizeof("oldhungarian")]; + char uniname2ctype_pool_str2886[sizeof("insymbolsforlegacycomputing")]; + char uniname2ctype_pool_str2902[sizeof("insmallformvariants")]; + char uniname2ctype_pool_str2904[sizeof("inhangulsyllables")]; + char uniname2ctype_pool_str2905[sizeof("emojipresentation")]; + char uniname2ctype_pool_str2907[sizeof("epres")]; + char uniname2ctype_pool_str2909[sizeof("inbassavah")]; + char uniname2ctype_pool_str2911[sizeof("indevanagariextended")]; + char uniname2ctype_pool_str2941[sizeof("inbuhid")]; + char uniname2ctype_pool_str2953[sizeof("tirhuta")]; + char uniname2ctype_pool_str2964[sizeof("inpsalterpahlavi")]; + char uniname2ctype_pool_str2966[sizeof("whitespace")]; + char uniname2ctype_pool_str2967[sizeof("finalpunctuation")]; + char uniname2ctype_pool_str2970[sizeof("orya")]; + char uniname2ctype_pool_str2980[sizeof("phlp")]; + char uniname2ctype_pool_str2984[sizeof("inbamumsupplement")]; + char uniname2ctype_pool_str2986[sizeof("buhid")]; + char uniname2ctype_pool_str2987[sizeof("paragraphseparator")]; + char uniname2ctype_pool_str2988[sizeof("inalphabeticpresentationforms")]; + char uniname2ctype_pool_str2997[sizeof("inlatinextendedg")]; + char uniname2ctype_pool_str3001[sizeof("elba")]; + char uniname2ctype_pool_str3002[sizeof("changeswhentitlecased")]; + char uniname2ctype_pool_str3005[sizeof("incombininghalfmarks")]; + char uniname2ctype_pool_str3006[sizeof("intangutcomponents")]; + char uniname2ctype_pool_str3015[sizeof("thaa")]; + char uniname2ctype_pool_str3018[sizeof("thai")]; + char uniname2ctype_pool_str3019[sizeof("oldturkic")]; + char uniname2ctype_pool_str3026[sizeof("thaana")]; + char uniname2ctype_pool_str3027[sizeof("inlatinextendedf")]; + char uniname2ctype_pool_str3035[sizeof("ougr")]; + char uniname2ctype_pool_str3042[sizeof("tang")]; + char uniname2ctype_pool_str3045[sizeof("inarabicmathematicalalphabeticsymbols")]; + char uniname2ctype_pool_str3048[sizeof("tagbanwa")]; + char uniname2ctype_pool_str3052[sizeof("tamil")]; + char uniname2ctype_pool_str3053[sizeof("khitansmallscript")]; + char uniname2ctype_pool_str3058[sizeof("mahj")]; + char uniname2ctype_pool_str3067[sizeof("mahajani")]; + char uniname2ctype_pool_str3068[sizeof("hang")]; + char uniname2ctype_pool_str3071[sizeof("tirh")]; + char uniname2ctype_pool_str3072[sizeof("sylotinagri")]; + char uniname2ctype_pool_str3082[sizeof("talu")]; + char uniname2ctype_pool_str3084[sizeof("nagmundari")]; + char uniname2ctype_pool_str3086[sizeof("deva")]; + char uniname2ctype_pool_str3087[sizeof("ingujarati")]; + char uniname2ctype_pool_str3091[sizeof("deprecated")]; + char uniname2ctype_pool_str3099[sizeof("inarabicpresentationformsb")]; + char uniname2ctype_pool_str3104[sizeof("devanagari")]; + char uniname2ctype_pool_str3106[sizeof("ingunjalagondi")]; + char uniname2ctype_pool_str3107[sizeof("graphemeclusterbreak=t")]; + char uniname2ctype_pool_str3109[sizeof("graphemeclusterbreak=lvt")]; + char uniname2ctype_pool_str3110[sizeof("taitham")]; + char uniname2ctype_pool_str3111[sizeof("nbat")]; + char uniname2ctype_pool_str3118[sizeof("telu")]; + char uniname2ctype_pool_str3123[sizeof("hiragana")]; + char uniname2ctype_pool_str3125[sizeof("nabataean")]; + char uniname2ctype_pool_str3135[sizeof("inrejang")]; + char uniname2ctype_pool_str3142[sizeof("intangutsupplement")]; + char uniname2ctype_pool_str3145[sizeof("khoj")]; + char uniname2ctype_pool_str3155[sizeof("hmng")]; + char uniname2ctype_pool_str3157[sizeof("cyprominoan")]; + char uniname2ctype_pool_str3158[sizeof("inhebrew")]; + char uniname2ctype_pool_str3176[sizeof("inmathematicaloperators")]; + char uniname2ctype_pool_str3180[sizeof("inarabicsupplement")]; + char uniname2ctype_pool_str3193[sizeof("inenclosedcjklettersandmonths")]; + char uniname2ctype_pool_str3209[sizeof("changeswhenlowercased")]; + char uniname2ctype_pool_str3212[sizeof("tangut")]; + char uniname2ctype_pool_str3215[sizeof("elbasan")]; + char uniname2ctype_pool_str3218[sizeof("osmanya")]; + char uniname2ctype_pool_str3237[sizeof("insuperscriptsandsubscripts")]; + char uniname2ctype_pool_str3239[sizeof("graphemeclusterbreak=extend")]; + char uniname2ctype_pool_str3240[sizeof("graphemeclusterbreak=prepend")]; + char uniname2ctype_pool_str3248[sizeof("nshu")]; + char uniname2ctype_pool_str3254[sizeof("otherlowercase")]; + char uniname2ctype_pool_str3265[sizeof("inethiopicextendedb")]; + char uniname2ctype_pool_str3267[sizeof("otherletter")]; + char uniname2ctype_pool_str3275[sizeof("kayahli")]; + char uniname2ctype_pool_str3284[sizeof("inplayingcards")]; + char uniname2ctype_pool_str3287[sizeof("elym")]; + char uniname2ctype_pool_str3297[sizeof("graphemeclusterbreak=l")]; + char uniname2ctype_pool_str3303[sizeof("graphemeclusterbreak=control")]; + char uniname2ctype_pool_str3313[sizeof("ogrext")]; + char uniname2ctype_pool_str3320[sizeof("elymaic")]; + char uniname2ctype_pool_str3328[sizeof("changeswhenuppercased")]; + char uniname2ctype_pool_str3329[sizeof("inalchemicalsymbols")]; + char uniname2ctype_pool_str3331[sizeof("oldsogdian")]; + char uniname2ctype_pool_str3338[sizeof("otheridstart")]; + char uniname2ctype_pool_str3348[sizeof("insupplementalarrowsa")]; + char uniname2ctype_pool_str3350[sizeof("invithkuqi")]; + char uniname2ctype_pool_str3355[sizeof("symbol")]; + char uniname2ctype_pool_str3360[sizeof("inarabicextendedb")]; + char uniname2ctype_pool_str3371[sizeof("cypriot")]; + char uniname2ctype_pool_str3372[sizeof("any")]; + char uniname2ctype_pool_str3373[sizeof("otheruppercase")]; + char uniname2ctype_pool_str3377[sizeof("rjng")]; + char uniname2ctype_pool_str3391[sizeof("wspace")]; + char uniname2ctype_pool_str3396[sizeof("inindicsiyaqnumbers")]; + char uniname2ctype_pool_str3405[sizeof("inprivateusearea")]; + char uniname2ctype_pool_str3416[sizeof("othersymbol")]; + char uniname2ctype_pool_str3428[sizeof("oupper")]; + char uniname2ctype_pool_str3433[sizeof("signwriting")]; + char uniname2ctype_pool_str3436[sizeof("nushu")]; + char uniname2ctype_pool_str3455[sizeof("hmnp")]; + char uniname2ctype_pool_str3458[sizeof("upper")]; + char uniname2ctype_pool_str3460[sizeof("insupplementalarrowsc")]; + char uniname2ctype_pool_str3483[sizeof("omath")]; + char uniname2ctype_pool_str3502[sizeof("modifiersymbol")]; + char uniname2ctype_pool_str3504[sizeof("hebr")]; + char uniname2ctype_pool_str3505[sizeof("inhalfwidthandfullwidthforms")]; + char uniname2ctype_pool_str3511[sizeof("insupplementalmathematicaloperators")]; + char uniname2ctype_pool_str3532[sizeof("inpahawhhmong")]; + char uniname2ctype_pool_str3533[sizeof("alphabetic")]; + char uniname2ctype_pool_str3558[sizeof("uppercase")]; + char uniname2ctype_pool_str3580[sizeof("dupl")]; + char uniname2ctype_pool_str3590[sizeof("ogham")]; + char uniname2ctype_pool_str3613[sizeof("dashpunctuation")]; + char uniname2ctype_pool_str3618[sizeof("hangul")]; + char uniname2ctype_pool_str3648[sizeof("inhanguljamoextendedb")]; + char uniname2ctype_pool_str3659[sizeof("bassavah")]; + char uniname2ctype_pool_str3664[sizeof("aghb")]; + char uniname2ctype_pool_str3686[sizeof("hung")]; + char uniname2ctype_pool_str3689[sizeof("hexdigit")]; + char uniname2ctype_pool_str3698[sizeof("incypriotsyllabary")]; + char uniname2ctype_pool_str3699[sizeof("indivesakuru")]; + char uniname2ctype_pool_str3701[sizeof("tibt")]; + char uniname2ctype_pool_str3705[sizeof("inlatinextendedb")]; + char uniname2ctype_pool_str3710[sizeof("hluw")]; + char uniname2ctype_pool_str3713[sizeof("tibetan")]; + char uniname2ctype_pool_str3721[sizeof("inyisyllables")]; + char uniname2ctype_pool_str3744[sizeof("oldnortharabian")]; + char uniname2ctype_pool_str3754[sizeof("defaultignorablecodepoint")]; + char uniname2ctype_pool_str3766[sizeof("inhighprivateusesurrogates")]; + char uniname2ctype_pool_str3799[sizeof("soyombo")]; + char uniname2ctype_pool_str3807[sizeof("otherdefaultignorablecodepoint")]; + char uniname2ctype_pool_str3842[sizeof("pahawhhmong")]; + char uniname2ctype_pool_str3845[sizeof("unifiedideograph")]; + char uniname2ctype_pool_str3850[sizeof("othermath")]; + char uniname2ctype_pool_str3854[sizeof("changeswhencasefolded")]; + char uniname2ctype_pool_str3857[sizeof("inmahjongtiles")]; + char uniname2ctype_pool_str3868[sizeof("dep")]; + char uniname2ctype_pool_str3881[sizeof("divesakuru")]; + char uniname2ctype_pool_str3884[sizeof("graphemeclusterbreak=lf")]; + char uniname2ctype_pool_str3891[sizeof("uppercaseletter")]; + char uniname2ctype_pool_str3924[sizeof("insupplementalpunctuation")]; + char uniname2ctype_pool_str3942[sizeof("ethiopic")]; + char uniname2ctype_pool_str3944[sizeof("inyijinghexagramsymbols")]; + char uniname2ctype_pool_str3949[sizeof("ecomp")]; + char uniname2ctype_pool_str3976[sizeof("inglagoliticsupplement")]; + char uniname2ctype_pool_str3998[sizeof("inbopomofoextended")]; + char uniname2ctype_pool_str4007[sizeof("injavanese")]; + char uniname2ctype_pool_str4106[sizeof("otherpunctuation")]; + char uniname2ctype_pool_str4116[sizeof("tifinagh")]; + char uniname2ctype_pool_str4127[sizeof("tfng")]; + char uniname2ctype_pool_str4169[sizeof("hanifirohingya")]; + char uniname2ctype_pool_str4231[sizeof("tavt")]; + char uniname2ctype_pool_str4308[sizeof("inboxdrawing")]; + char uniname2ctype_pool_str4309[sizeof("oldsoutharabian")]; + char uniname2ctype_pool_str4348[sizeof("inegyptianhieroglyphs")]; + char uniname2ctype_pool_str4361[sizeof("inegyptianhieroglyphformatcontrols")]; + char uniname2ctype_pool_str4459[sizeof("tagb")]; + char uniname2ctype_pool_str4487[sizeof("rejang")]; + char uniname2ctype_pool_str4604[sizeof("tglg")]; + char uniname2ctype_pool_str4626[sizeof("tagalog")]; + char uniname2ctype_pool_str4627[sizeof("othergraphemeextend")]; + char uniname2ctype_pool_str4674[sizeof("insupplementaryprivateuseareaa")]; + char uniname2ctype_pool_str4683[sizeof("inhighsurrogates")]; + char uniname2ctype_pool_str4695[sizeof("hebrew")]; + char uniname2ctype_pool_str4734[sizeof("duployan")]; + char uniname2ctype_pool_str4755[sizeof("graphemeclusterbreak=v")]; + char uniname2ctype_pool_str4756[sizeof("graphemeclusterbreak=lv")]; + char uniname2ctype_pool_str4772[sizeof("insupplementalarrowsb")]; + char uniname2ctype_pool_str4783[sizeof("graphemeclusterbreak=zwj")]; + char uniname2ctype_pool_str4810[sizeof("telugu")]; + char uniname2ctype_pool_str4898[sizeof("zyyy")]; + char uniname2ctype_pool_str4982[sizeof("olduyghur")]; + char uniname2ctype_pool_str4986[sizeof("inhangulcompatibilityjamo")]; + char uniname2ctype_pool_str5018[sizeof("openpunctuation")]; + char uniname2ctype_pool_str5038[sizeof("hyphen")]; + char uniname2ctype_pool_str5134[sizeof("insupplementalsymbolsandpictographs")]; + char uniname2ctype_pool_str5141[sizeof("egyp")]; + char uniname2ctype_pool_str5300[sizeof("nyiakengpuachuehmong")]; + char uniname2ctype_pool_str5980[sizeof("egyptianhieroglyphs")]; + char uniname2ctype_pool_str6098[sizeof("insupplementaryprivateuseareab")]; +#endif /* USE_UNICODE_PROPERTIES */ + }; +static const struct uniname2ctype_pool_t uniname2ctype_pool_contents = + { +#ifndef USE_UNICODE_PROPERTIES + "word", +#else /* USE_UNICODE_PROPERTIES */ + "yi", + "yiii", + "lana", + "lina", + "maka", + "mani", + "mn", + "miao", + "lo", + "ci", + "lao", + "laoo", + "inkannada", + "cn", + "pi", + "innko", + "z", + "gran", + "co", + "lineara", + "mark", + "yezi", + "po", + "me", + "cari", + "inkharoshthi", + "kana", + "loe", + "m", + "grek", + "mro", + "mroo", + "carian", + "geor", + "greek", + "gonm", + "mendekikakui", + "pe", + "mero", + "inosmanya", + "cakm", + "inmanichaean", + "inmro", + "inmiao", + "inchakma", + "c", + "mandaic", + "meeteimayek", + "zzzz", + "inarmenian", + "inmyanmar", + "inmakasar", + "common", + "lm", + "marc", + "inrunic", + "incarian", + "inideographicsymbolsandpunctuation", + "inkhmer", + "qaai", + "inahom", + "merc", + "inchorasmian", + "combiningmark", + "lc", + "perm", + "mc", + "connectorpunctuation", + "cans", + "incuneiformnumbersandpunctuation", + "armi", + "cc", + "armn", + "incherokee", + "prependedconcatenationmark", + "incuneiform", + "inavestan", + "inipaextensions", + "pc", + "armenian", + "insharada", + "vai", + "vaii", + "inmarchen", + "makasar", + "masaramgondi", + "inarrows", + "incyrillic", + "incham", + "qmark", + "ri", + "qaac", + "insamaritan", + "latn", + "inmasaramgondi", + "inthaana", + "latin", + "inthai", + "lineseparator", + "pcm", + "inkatakana", + "inkaithi", + "inscriptionalparthian", + "initialpunctuation", + "mtei", + "inzanabazarsquare", + "inkhmersymbols", + "insyriac", + "intakri", + "arabic", + "katakana", + "prti", + "zs", + "ascii", + "cs", + "ps", + "mand", + "privateuse", + "inruminumeralsymbols", + "inmyanmarextendeda", + "modi", + "incjkcompatibilityforms", + "inkanaextendeda", + "incjkcompatibilityideographs", + "brai", + "mend", + "ideo", + "letter", + "l", + "inmeeteimayek", + "inideographicdescriptioncharacters", + "yezidi", + "knda", + "innandinagari", + "kannada", + "inmodi", + "inlao", + "xidcontinue", + "inoldnortharabian", + "intransportandmapsymbols", + "letternumber", + "gothic", + "inlineara", + "inmendekikakui", + "mongolian", + "inmiscellaneousmathematicalsymbolsa", + "inspecials", + "grlink", + "brahmi", + "inemoticons", + "kali", + "inolditalic", + "xidc", + "inmedefaidrin", + "inchesssymbols", + "incjkcompatibilityideographssupplement", + "kits", + "inadlam", + "psalterpahlavi", + "incommonindicnumberforms", + "lt", + "innewa", + "sk", + "control", + "inkawi", + "inancientsymbols", + "palm", + "inlycian", + "so", + "patternwhitespace", + "inmandaic", + "idc", + "meroiticcursive", + "intoto", + "vs", + "xids", + "inwarangciti", + "sora", + "inopticalcharacterrecognition", + "kawi", + "inoldsogdian", + "inmalayalam", + "bamum", + "inkanasupplement", + "insundanese", + "grext", +#endif /* USE_UNICODE_PROPERTIES */ + "print", +#ifndef USE_UNICODE_PROPERTIES + "punct", + "alpha", +#else /* USE_UNICODE_PROPERTIES */ + "intaitham", + "lower", + "patternsyntax", + "joinc", + "inoldsoutharabian", + "incjkstrokes", + "batk", + "samr", + "inwancho", + "batak", + "patws", + "samaritan", + "idsbinaryoperator", + "pauc", + "insmallkanaextension", + "sm", + "indominotiles", +#endif /* USE_UNICODE_PROPERTIES */ + "alnum", +#ifdef USE_UNICODE_PROPERTIES + "inznamennymusicalnotation", + "insylotinagri", + "inugaritic", + "incontrolpictures", + "inlinearbideograms", + "inmusicalsymbols", + "s", + "ital", + "inmodifiertoneletters", + "inancientgreekmusicalnotation", + "lisu", + "lowercase", + "cwcm", + "sc", + "bass", + "ids", + "inlatinextendeda", + "intaile", + "inmiscellaneoussymbols", + "inmiscellaneoussymbolsandarrows", + "incaucasianalbanian", + "inmiscellaneoussymbolsandpictographs", + "inoldturkic", + "insaurashtra", + "incyrillicextendeda", + "idcontinue", + "intaixuanjingsymbols", + "intamil", + "inmultani", + "inlatinextendede", + "pd", + "bali", + "blank", + "idst", + "inlydian", + "innewtailue", + "bengali", + "runr", + "ll", + "indeseret", + "inancientgreeknumbers", + "idstart", + "zl", + "inmeeteimayekextensions", + "balinese", + "incyrillicextendedc", + "inspacingmodifierletters", + "inearlydynasticcuneiform", + "plrd", + "canadianaboriginal", + "sind", + "inlatinextendedc", + "uideo", + "incountingrodnumerals", + "zinh", + "dia", + "di", + "inkhudawadi", + "inhanifirohingya", + "diak", + "gong", + "ingrantha", + "bidic", + "xidstart", +#endif /* USE_UNICODE_PROPERTIES */ + "xdigit", +#ifndef USE_UNICODE_PROPERTIES + "upper", + "ascii", +#else /* USE_UNICODE_PROPERTIES */ + "mong", + "cased", + "inhiragana", + "sinhala", + "adlm", + "xsux", + "glagolitic", + "sterm", + "bamu", + "georgian", + "inosage", + "gunjalagondi", + "phoenician", + "inolduyghur", + "multani", + "kaithi", + "joincontrol", + "runic", + "ingeneralpunctuation", + "inmahajani", + "incyrillicsupplement", + "lowercaseletter", + "marchen", + "graphemelink", + "ingeorgian", + "khojki", + "cham", + "inogham", + "cher", + "chakma", + "inkaktoviknumerals", + "emoji", + "insiddham", + "cherokee", + "khar", + "inmongolian", + "innagmundari", + "incherokeesupplement", + "manichaean", + "inolchiki", + "inkhitansmallscript", + "quotationmark", + "vithkuqi", + "variationselector", + "adlam", + "inethiopic", + "graphemebase", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=11.0", + "age=12.1", + "age=10.0", + "age=12.0", + "age=13.0", + "age=1.1", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "casedletter", + "ingurmukhi", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=2.1", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "incjkunifiedideographsextensiona", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=2.0", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "lu", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=3.1", + "age=9.0", + "age=3.0", + "age=3.2", + "age=8.0", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "intamilsupplement", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=6.1", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "unknown", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=6.0", + "age=6.2", + "age=15.0", + "age=7.0", + "age=6.3", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "cwt", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=14.0", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "unassigned", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=5.1", + "age=5.0", + "age=5.2", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "diacritic", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=4.1", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "ahom", +#ifdef USE_UNICODE_AGE_PROPERTIES + "age=4.0", +#endif /* USE_UNICODE_AGE_PROPERTIES */ + "incjkunifiedideographsextensione", + "khmr", + "insinhala", + "inmiscellaneoustechnical", + "saur", + "guru", + "sundanese", + "punct", + "paucinhau", + "gurmukhi", + "chorasmian", + "logicalorderexception", + "khmer", + "limbu", + "chrs", + "oriya", + "inscriptionalpahlavi", + "incyrillicextendedd", + "incjkunifiedideographsextensionc", +#endif /* USE_UNICODE_PROPERTIES */ + "cntrl", +#ifndef USE_UNICODE_PROPERTIES + "space", +#else /* USE_UNICODE_PROPERTIES */ + "inlatinextendedadditional", + "insorasompeng", + "radical", + "emojimodifier", + "kharoshthi", + "n", + "math", + "goth", + "phnx", + "anatolianhieroglyphs", + "inenclosedalphanumerics", + "nandinagari", + "no", + "intangsa", + "nko", + "nkoo", + "ingreekandcoptic", + "p", + "grantha", + "decimalnumber", + "incjkunifiedideographs", + "intirhuta", + "inhatran", + "linb", + "mult", + "saurashtra", + "kthi", + "zanb", + "inbhaiksuki", + "innabataean", + "inphoenician", + "xpeo", + "inkanbun", + "inmeroitichieroglyphs", + "ahex", + "enclosingmark", + "sd", + "inelbasan", + "inenclosedideographicsupplement", + "sidd", + "linearb", + "cpmn", + "inenclosedalphanumericsupplement", + "bidicontrol", + "inphaistosdisc", + "limb", + "inkangxiradicals", + "lepc", + "braille", + "regionalindicator", + "inlowsurrogates", + "brah", + "inoldhungarian", + "beng", + "emojimodifierbase", + "inarabic", + "osage", + "inherited", + "incyprominoan", + "glag", + "medf", + "osma", + "indogra", + "arab", + "medefaidrin", + "inshorthandformatcontrols", + "phli", + "inimperialaramaic", + "emod", + "ingreekextended", + "inanatolianhieroglyphs", + "punctuation", + "graphemeextend", + "cwl", + "vith", + "ingeometricshapes", + "emojicomponent", + "dsrt", + "coptic", + "inkayahli", + "inoriya", + "inarabicpresentationformsa", + "inbasiclatin", + "incjkunifiedideographsextensiond", + "wara", + "sinh", + "sund", + "shavian", + "insundanesesupplement", + "inyezidi", + "bhks", + "bhaiksuki", + "inhanunoo", + "intangut", + "sogdian", + "inlatinextendedd", + "sogo", + "insinhalaarchaicnumbers", + "ideographic", + "ugar", + "deseret", + "odi", + "copt", + "imperialaramaic", + "insogdian", + "indingbats", + "format", + "ininscriptionalpahlavi", + "lyci", + "ininscriptionalparthian", + "grbase", + "lycian", + "inbatak", + "cprt", + "inunifiedcanadianaboriginalsyllabicsextendeda", + "mymr", + "myanmar", + "intibetan", + "intags", + "asciihexdigit", + "sentenceterminal", + "nand", + "inblockelements", + "inornamentaldingbats", + "inethiopicextendeda", + "innumberforms", + "cwcf", + "oidc", + "bopo", + "cuneiform", + "caseignorable", + "inoldpersian", + "cwu", + "inelymaic", + "insoyombo", + "ingeometricshapesextended", + "incjkcompatibility", + "inmyanmarextendedb", + "innushu", + "inkanaextendedb", + "olck", + "inbyzantinemusicalsymbols", + "olchiki", + "inkatakanaphoneticextensions", + "incoptic", + "oids", + "inarabicextendeda", + "modifierletter", + "incjksymbolsandpunctuation", + "olower", + "bopomofo", + "inlisu", + "inoldpermic", + "innoblock", + "ext", + "inunifiedcanadianaboriginalsyllabics", + "takri", + "inbraillepatterns", + "invai", + "alpha", + "inbalinese", + "sorasompeng", + "closepunctuation", + "hani", + "inmayannumerals", + "han", + "inmiscellaneousmathematicalsymbolsb", + "inlepcha", + "patsyn", + "inlisusupplement", + "insyriacsupplement", + "hano", + "newa", + "spacingmark", + "inpalmyrene", + "takr", +#endif /* USE_UNICODE_PROPERTIES */ + "xposixpunct", +#ifndef USE_UNICODE_PROPERTIES + "lower", +#else /* USE_UNICODE_PROPERTIES */ + "inkhojki", + "taile", + "assigned", + "hanunoo", + "hira", + "inarabicextendedc", + "newtailue", + "space", + "intelugu", + "lydi", + "idsb", + "extpict", + "lydian", + "inethiopicsupplement", + "sarb", + "ugaritic", + "inyiradicals", + "inphoneticextensions", + "sharada", + "zanabazarsquare", + "bugi", + "word", + "term", + "separator", + "ingeorgiansupplement", + "sogd", + "extender", + "shrd", +#endif /* USE_UNICODE_PROPERTIES */ + "graph", +#ifdef USE_UNICODE_PROPERTIES + "tnsa", + "tangsa", + "phag", + "dogra", + "inhanguljamo", + "inshavian", + "siddham", + "cf", + "inunifiedcanadianaboriginalsyllabicsextended", + "buginese", + "inmongoliansupplement", + "cyrl", + "inhanguljamoextendeda", + "pf", + "number", + "inphoneticextensionssupplement", + "dogr", + "mlym", + "incopticepactnumbers", + "malayalam", + "inbamum", + "nd", + "insuttonsignwriting", + "inethiopicextended", + "shaw", + "palmyrene", + "soyo", + "incjkunifiedideographsextensionh", + "sgnw", + "toto", + "caucasianalbanian", + "inmathematicalalphanumericsymbols", + "incjkunifiedideographsextensiong", + "hatran", + "taiviet", + "meroitichieroglyphs", + "ingeorgianextended", + "incjkunifiedideographsextensionf", + "oldpersian", + "induployan", + "incyrillicextendedb", + "dash", + "hatr", + "innyiakengpuachuehmong", + "incombiningdiacriticalmarks", + "nl", + "incombiningdiacriticalmarksforsymbols", + "khudawadi", + "incjkradicalssupplement", + "inglagolitic", + "orkh", + "syrc", + "surrogate", + "indevanagari", + "avestan", + "oldpermic", + "ethi", + "ogam", + "rohg", + "idstrinaryoperator", + "java", + "inphagspa", + "lepcha", + "indevanagariextendeda", + "intifinagh", + "intagalog", + "incombiningdiacriticalmarkssupplement", + "tale", + "inbrahmi", + "terminalpunctuation", + "insymbolsandpictographsextendeda", + "syriac", + "inbengali", + "nagm", + "extendedpictographic", + "buhd", + "javanese", + "taml", + "inbuginese", + "inlatin1supplement", + "ingothic", + "invariationselectors", + "hex", + "inverticalforms", + "ebase", + "incurrencysymbols", + "avst", + "osge", + "incombiningdiacriticalmarksextended", + "intaiviet", + "spaceseparator", + "softdotted", + "nchar", + "invedicextensions", + "inlimbu", + "olditalic", + "gujr", + "mathsymbol", + "incjkunifiedideographsextensionb", + "gujarati", + "phagspa", + "invariationselectorssupplement", + "currencysymbol", + "inlinearbsyllabary", + "wancho", + "inpaucinhau", + "other", + "otheridcontinue", + "sylo", + "zp", + "inaegeannumbers", + "warangciti", + "othernumber", +#endif /* USE_UNICODE_PROPERTIES */ + "digit", +#ifndef USE_UNICODE_PROPERTIES + "blank" +#else /* USE_UNICODE_PROPERTIES */ + "nonspacingmark", + "titlecaseletter", + "inmeroiticcursive", + "wcho", + "graphemeclusterbreak=spacingmark", + "inletterlikesymbols", + "inottomansiyaqnumbers", + "intagbanwa", + "cyrillic", + "oalpha", + "graphemeclusterbreak=cr", + "narb", + "changeswhencasemapped", + "inbopomofo", + "graphemeclusterbreak=regionalindicator", + "otheralphabetic", + "noncharactercodepoint", + "oldhungarian", + "insymbolsforlegacycomputing", + "insmallformvariants", + "inhangulsyllables", + "emojipresentation", + "epres", + "inbassavah", + "indevanagariextended", + "inbuhid", + "tirhuta", + "inpsalterpahlavi", + "whitespace", + "finalpunctuation", + "orya", + "phlp", + "inbamumsupplement", + "buhid", + "paragraphseparator", + "inalphabeticpresentationforms", + "inlatinextendedg", + "elba", + "changeswhentitlecased", + "incombininghalfmarks", + "intangutcomponents", + "thaa", + "thai", + "oldturkic", + "thaana", + "inlatinextendedf", + "ougr", + "tang", + "inarabicmathematicalalphabeticsymbols", + "tagbanwa", + "tamil", + "khitansmallscript", + "mahj", + "mahajani", + "hang", + "tirh", + "sylotinagri", + "talu", + "nagmundari", + "deva", + "ingujarati", + "deprecated", + "inarabicpresentationformsb", + "devanagari", + "ingunjalagondi", + "graphemeclusterbreak=t", + "graphemeclusterbreak=lvt", + "taitham", + "nbat", + "telu", + "hiragana", + "nabataean", + "inrejang", + "intangutsupplement", + "khoj", + "hmng", + "cyprominoan", + "inhebrew", + "inmathematicaloperators", + "inarabicsupplement", + "inenclosedcjklettersandmonths", + "changeswhenlowercased", + "tangut", + "elbasan", + "osmanya", + "insuperscriptsandsubscripts", + "graphemeclusterbreak=extend", + "graphemeclusterbreak=prepend", + "nshu", + "otherlowercase", + "inethiopicextendedb", + "otherletter", + "kayahli", + "inplayingcards", + "elym", + "graphemeclusterbreak=l", + "graphemeclusterbreak=control", + "ogrext", + "elymaic", + "changeswhenuppercased", + "inalchemicalsymbols", + "oldsogdian", + "otheridstart", + "insupplementalarrowsa", + "invithkuqi", + "symbol", + "inarabicextendedb", + "cypriot", + "any", + "otheruppercase", + "rjng", + "wspace", + "inindicsiyaqnumbers", + "inprivateusearea", + "othersymbol", + "oupper", + "signwriting", + "nushu", + "hmnp", + "upper", + "insupplementalarrowsc", + "omath", + "modifiersymbol", + "hebr", + "inhalfwidthandfullwidthforms", + "insupplementalmathematicaloperators", + "inpahawhhmong", + "alphabetic", + "uppercase", + "dupl", + "ogham", + "dashpunctuation", + "hangul", + "inhanguljamoextendedb", + "bassavah", + "aghb", + "hung", + "hexdigit", + "incypriotsyllabary", + "indivesakuru", + "tibt", + "inlatinextendedb", + "hluw", + "tibetan", + "inyisyllables", + "oldnortharabian", + "defaultignorablecodepoint", + "inhighprivateusesurrogates", + "soyombo", + "otherdefaultignorablecodepoint", + "pahawhhmong", + "unifiedideograph", + "othermath", + "changeswhencasefolded", + "inmahjongtiles", + "dep", + "divesakuru", + "graphemeclusterbreak=lf", + "uppercaseletter", + "insupplementalpunctuation", + "ethiopic", + "inyijinghexagramsymbols", + "ecomp", + "inglagoliticsupplement", + "inbopomofoextended", + "injavanese", + "otherpunctuation", + "tifinagh", + "tfng", + "hanifirohingya", + "tavt", + "inboxdrawing", + "oldsoutharabian", + "inegyptianhieroglyphs", + "inegyptianhieroglyphformatcontrols", + "tagb", + "rejang", + "tglg", + "tagalog", + "othergraphemeextend", + "insupplementaryprivateuseareaa", + "inhighsurrogates", + "hebrew", + "duployan", + "graphemeclusterbreak=v", + "graphemeclusterbreak=lv", + "insupplementalarrowsb", + "graphemeclusterbreak=zwj", + "telugu", + "zyyy", + "olduyghur", + "inhangulcompatibilityjamo", + "openpunctuation", + "hyphen", + "insupplementalsymbolsandpictographs", + "egyp", + "nyiakengpuachuehmong", + "egyptianhieroglyphs", + "insupplementaryprivateuseareab" +#endif /* USE_UNICODE_PROPERTIES */ + }; +#define uniname2ctype_pool ((const char *) &uniname2ctype_pool_contents) +const struct uniname2ctype_struct * +uniname2ctype_p (register const char *str, register size_t len) +{ + static const struct uniname2ctype_struct wordlist[] = + { +#ifdef USE_UNICODE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str11), 111}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str17), 111}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str22), 152}, + {-1}, {-1}, + {uniname2ctype_offset(str25), 184}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str33), 218}, + {-1}, + {uniname2ctype_offset(str35), 186}, + {uniname2ctype_offset(str36), 34}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str45), 173}, + {uniname2ctype_offset(str46), 28}, + {uniname2ctype_offset(str47), 61}, + {uniname2ctype_offset(str48), 95}, + {uniname2ctype_offset(str49), 95}, + {-1}, {-1}, + {uniname2ctype_offset(str52), 346}, + {-1}, {-1}, + {uniname2ctype_offset(str55), 21}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str64), 44}, + {-1}, + {uniname2ctype_offset(str66), 333}, + {uniname2ctype_offset(str67), 52}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str71), 181}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str75), 22}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str83), 184}, + {-1}, {-1}, + {uniname2ctype_offset(str86), 31}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str90), 230}, + {-1}, + {uniname2ctype_offset(str92), 45}, + {-1}, + {uniname2ctype_offset(str94), 33}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str100), 149}, + {uniname2ctype_offset(str101), 513}, + {uniname2ctype_offset(str102), 108}, + {uniname2ctype_offset(str103), 263}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str107), 31}, + {uniname2ctype_offset(str108), 77}, + {-1}, {-1}, + {uniname2ctype_offset(str111), 189}, + {uniname2ctype_offset(str112), 189}, + {-1}, {-1}, + {uniname2ctype_offset(str115), 149}, + {-1}, + {uniname2ctype_offset(str117), 98}, + {uniname2ctype_offset(str118), 77}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str122), 212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str129), 187}, + {uniname2ctype_offset(str130), 42}, + {uniname2ctype_offset(str131), 172}, + {-1}, {-1}, + {uniname2ctype_offset(str134), 497}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str139), 170}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str145), 516}, + {uniname2ctype_offset(str146), 575}, + {-1}, + {uniname2ctype_offset(str148), 580}, + {uniname2ctype_offset(str149), 535}, + {-1}, + {uniname2ctype_offset(str151), 18}, + {uniname2ctype_offset(str152), 169}, + {uniname2ctype_offset(str153), 160}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str158), 278}, + {-1}, {-1}, + {uniname2ctype_offset(str161), 327}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str177), 352}, + {uniname2ctype_offset(str178), 563}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str183), 75}, + {-1}, {-1}, + {uniname2ctype_offset(str186), 27}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str190), 208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str203), 360}, + {uniname2ctype_offset(str204), 488}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str210), 581}, + {-1}, + {uniname2ctype_offset(str212), 365}, + {uniname2ctype_offset(str213), 115}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str218), 549}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str226), 171}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str230), 530}, + {uniname2ctype_offset(str231), 31}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str236), 25}, + {uniname2ctype_offset(str237), 194}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str246), 32}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str250), 40}, + {-1}, {-1}, + {uniname2ctype_offset(str253), 102}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str260), 568}, + {-1}, {-1}, + {uniname2ctype_offset(str263), 161}, + {-1}, + {uniname2ctype_offset(str265), 19}, + {-1}, + {uniname2ctype_offset(str267), 79}, + {uniname2ctype_offset(str268), 357}, + {-1}, + {uniname2ctype_offset(str270), 270}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str274), 567}, + {uniname2ctype_offset(str275), 517}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str281), 321}, + {uniname2ctype_offset(str282), 40}, + {uniname2ctype_offset(str283), 79}, + {-1}, + {uniname2ctype_offset(str285), 537}, + {-1}, + {uniname2ctype_offset(str287), 144}, + {uniname2ctype_offset(str288), 144}, + {uniname2ctype_offset(str289), 560}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str293), 218}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str297), 212}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str301), 395}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str311), 325}, + {-1}, + {uniname2ctype_offset(str313), 456}, + {-1}, + {uniname2ctype_offset(str315), 243}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str320), 271}, + {-1}, + {uniname2ctype_offset(str322), 129}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str328), 334}, + {-1}, {-1}, + {uniname2ctype_offset(str331), 76}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str335), 561}, + {-1}, {-1}, + {uniname2ctype_offset(str338), 332}, + {-1}, + {uniname2ctype_offset(str340), 76}, + {-1}, + {uniname2ctype_offset(str342), 349}, + {-1}, {-1}, + {uniname2ctype_offset(str345), 53}, + {uniname2ctype_offset(str346), 270}, + {-1}, + {uniname2ctype_offset(str348), 426}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str352), 533}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str362), 163}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str366), 44}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str373), 160}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str381), 554}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str386), 371}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str399), 330}, + {-1}, + {uniname2ctype_offset(str401), 548}, + {-1}, {-1}, + {uniname2ctype_offset(str404), 81}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str418), 108}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str426), 163}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str430), 55}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str442), 14}, + {-1}, {-1}, + {uniname2ctype_offset(str445), 23}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str462), 46}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str468), 169}, + {-1}, + {uniname2ctype_offset(str470), 22}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str475), 524}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str480), 457}, + {uniname2ctype_offset(str481), 188}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str486), 476}, + {-1}, + {uniname2ctype_offset(str488), 588}, + {-1}, {-1}, + {uniname2ctype_offset(str491), 470}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str500), 127}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str504), 187}, + {uniname2ctype_offset(str505), 249}, + {uniname2ctype_offset(str506), 24}, + {-1}, {-1}, + {uniname2ctype_offset(str509), 24}, + {-1}, + {uniname2ctype_offset(str511), 463}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str520), 423}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str533), 230}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str538), 91}, + {-1}, {-1}, + {uniname2ctype_offset(str541), 553}, + {-1}, + {uniname2ctype_offset(str543), 91}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str556), 546}, + {-1}, + {uniname2ctype_offset(str558), 350}, + {uniname2ctype_offset(str559), 70}, + {uniname2ctype_offset(str560), 515}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str565), 624}, + {uniname2ctype_offset(str566), 37}, + {-1}, + {uniname2ctype_offset(str568), 113}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str572), 502}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str577), 611}, + {-1}, + {uniname2ctype_offset(str579), 106}, + {-1}, {-1}, + {uniname2ctype_offset(str582), 406}, + {uniname2ctype_offset(str583), 480}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str590), 74}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str594), 168}, + {-1}, + {uniname2ctype_offset(str596), 622}, + {uniname2ctype_offset(str597), 146}, + {-1}, {-1}, + {uniname2ctype_offset(str600), 490}, + {-1}, + {uniname2ctype_offset(str602), 70}, + {-1}, + {uniname2ctype_offset(str604), 579}, + {uniname2ctype_offset(str605), 629}, + {-1}, {-1}, + {uniname2ctype_offset(str608), 637}, + {uniname2ctype_offset(str609), 229}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str614), 612}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str624), 195}, + {uniname2ctype_offset(str625), 447}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str630), 29}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str636), 543}, + {-1}, {-1}, + {uniname2ctype_offset(str639), 49}, + {-1}, {-1}, + {uniname2ctype_offset(str642), 19}, + {uniname2ctype_offset(str643), 564}, + {-1}, + {uniname2ctype_offset(str645), 485}, + {-1}, + {uniname2ctype_offset(str647), 192}, + {-1}, {-1}, + {uniname2ctype_offset(str650), 487}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str657), 51}, + {-1}, {-1}, + {uniname2ctype_offset(str660), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str672), 335}, + {-1}, {-1}, + {uniname2ctype_offset(str675), 68}, + {-1}, {-1}, + {uniname2ctype_offset(str678), 171}, + {uniname2ctype_offset(str679), 607}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str683), 267}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str692), 69}, + {-1}, {-1}, + {uniname2ctype_offset(str695), 551}, + {uniname2ctype_offset(str696), 175}, + {uniname2ctype_offset(str697), 399}, + {-1}, {-1}, + {uniname2ctype_offset(str700), 236}, + {-1}, {-1}, + {uniname2ctype_offset(str703), 527}, + {-1}, + {uniname2ctype_offset(str705), 347}, + {-1}, + {uniname2ctype_offset(str707), 158}, + {uniname2ctype_offset(str708), 587}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str713), 376}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str720), 72}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str737), 7}, + {uniname2ctype_offset(str738), 373}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str742), 6}, + {-1}, {-1}, + {uniname2ctype_offset(str745), 269}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str753), 240}, + {-1}, + {uniname2ctype_offset(str755), 514}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str760), 431}, + {uniname2ctype_offset(str761), 167}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str766), 156}, + {uniname2ctype_offset(str767), 608}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str771), 167}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str776), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str783), 156}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str787), 256}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str791), 193}, + {-1}, {-1}, + {uniname2ctype_offset(str794), 589}, + {-1}, {-1}, + {uniname2ctype_offset(str797), 50}, + {-1}, + {uniname2ctype_offset(str799), 617}, + {-1}, {-1}, + {uniname2ctype_offset(str802), 13}, + {uniname2ctype_offset(str803), 593}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str809), 446}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str814), 493}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str818), 398}, + {-1}, {-1}, + {uniname2ctype_offset(str821), 482}, + {uniname2ctype_offset(str822), 595}, + {uniname2ctype_offset(str823), 47}, + {uniname2ctype_offset(str824), 112}, + {uniname2ctype_offset(str825), 444}, + {-1}, {-1}, + {uniname2ctype_offset(str828), 596}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str838), 157}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str842), 58}, + {-1}, {-1}, + {uniname2ctype_offset(str845), 66}, + {-1}, + {uniname2ctype_offset(str847), 48}, + {uniname2ctype_offset(str848), 178}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str855), 67}, + {-1}, + {uniname2ctype_offset(str857), 319}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str875), 369}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str886), 404}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str895), 412}, + {-1}, {-1}, + {uniname2ctype_offset(str898), 500}, + {-1}, + {uniname2ctype_offset(str900), 621}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str906), 521}, + {uniname2ctype_offset(str907), 449}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str920), 419}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str924), 68}, + {uniname2ctype_offset(str925), 599}, + {uniname2ctype_offset(str926), 344}, + {-1}, + {uniname2ctype_offset(str928), 540}, + {uniname2ctype_offset(str929), 461}, + {uniname2ctype_offset(str930), 41}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str946), 136}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str961), 2}, + {-1}, + {uniname2ctype_offset(str963), 257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str974), 510}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str986), 370}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str994), 85}, + {uniname2ctype_offset(str995), 104}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1010), 26}, + {-1}, {-1}, + {uniname2ctype_offset(str1013), 495}, + {-1}, + {uniname2ctype_offset(str1015), 484}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1021), 67}, + {-1}, {-1}, + {uniname2ctype_offset(str1024), 53}, + {uniname2ctype_offset(str1025), 459}, + {-1}, {-1}, + {uniname2ctype_offset(str1028), 136}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1032), 380}, + {-1}, {-1}, + {uniname2ctype_offset(str1035), 322}, + {uniname2ctype_offset(str1036), 569}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1049), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1067), 102}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1072), 197}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1081), 414}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1085), 259}, + {-1}, + {uniname2ctype_offset(str1087), 600}, + {-1}, + {uniname2ctype_offset(str1089), 115}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1095), 250}, + {uniname2ctype_offset(str1096), 71}, + {uniname2ctype_offset(str1097), 541}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1102), 523}, + {-1}, + {uniname2ctype_offset(str1104), 228}, + {uniname2ctype_offset(str1105), 217}, + {-1}, + {uniname2ctype_offset(str1107), 542}, + {-1}, + {uniname2ctype_offset(str1109), 239}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1114), 69}, + {uniname2ctype_offset(str1115), 11}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1119), 106}, + {uniname2ctype_offset(str1120), 60}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1134), 425}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1140), 93}, + {-1}, + {uniname2ctype_offset(str1142), 206}, + {-1}, {-1}, + {uniname2ctype_offset(str1145), 137}, + {uniname2ctype_offset(str1146), 131}, + {uniname2ctype_offset(str1147), 266}, + {-1}, + {uniname2ctype_offset(str1149), 158}, + {uniname2ctype_offset(str1150), 98}, + {uniname2ctype_offset(str1151), 498}, + {uniname2ctype_offset(str1152), 217}, + {uniname2ctype_offset(str1153), 138}, + {-1}, {-1}, + {uniname2ctype_offset(str1156), 529}, + {uniname2ctype_offset(str1157), 203}, + {uniname2ctype_offset(str1158), 166}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1164), 240}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1168), 104}, + {-1}, + {uniname2ctype_offset(str1170), 389}, + {uniname2ctype_offset(str1171), 536}, + {-1}, {-1}, + {uniname2ctype_offset(str1174), 326}, + {uniname2ctype_offset(str1175), 26}, + {uniname2ctype_offset(str1176), 208}, + {uniname2ctype_offset(str1177), 74}, + {uniname2ctype_offset(str1178), 353}, + {-1}, + {uniname2ctype_offset(str1180), 183}, + {uniname2ctype_offset(str1181), 151}, + {uniname2ctype_offset(str1182), 359}, + {uniname2ctype_offset(str1183), 101}, + {-1}, + {uniname2ctype_offset(str1185), 170}, + {uniname2ctype_offset(str1186), 597}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1190), 272}, + {uniname2ctype_offset(str1191), 545}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1197), 101}, + {uniname2ctype_offset(str1198), 135}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1203), 366}, + {uniname2ctype_offset(str1204), 609}, + {-1}, {-1}, + {uniname2ctype_offset(str1207), 462}, + {-1}, + {uniname2ctype_offset(str1209), 186}, + {-1}, {-1}, + {uniname2ctype_offset(str1212), 379}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str1223), 584}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1227), 243}, + {-1}, + {uniname2ctype_offset(str1229), 235}, + {uniname2ctype_offset(str1230), 267}, + {uniname2ctype_offset(str1231), 206}, + {uniname2ctype_offset(str1232), 355}, + {uniname2ctype_offset(str1233), 73}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1234), 298}, + {uniname2ctype_offset(str1235), 300}, + {uniname2ctype_offset(str1236), 297}, + {uniname2ctype_offset(str1237), 299}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1241), 301}, + {uniname2ctype_offset(str1242), 279}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1243), 25}, + {uniname2ctype_offset(str1244), 341}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1245), 281}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1246), 435}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1247), 280}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1248), 30}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1249), 283}, + {uniname2ctype_offset(str1250), 296}, + {uniname2ctype_offset(str1251), 282}, + {uniname2ctype_offset(str1252), 284}, + {uniname2ctype_offset(str1253), 295}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1254), 566}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1255), 291}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1256), 278}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1257), 290}, + {uniname2ctype_offset(str1258), 292}, + {uniname2ctype_offset(str1259), 303}, + {uniname2ctype_offset(str1260), 294}, + {-1}, + {uniname2ctype_offset(str1262), 293}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1263), 64}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {-1}, + {uniname2ctype_offset(str1265), 302}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1266), 21}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1267), 288}, + {-1}, + {uniname2ctype_offset(str1269), 287}, + {uniname2ctype_offset(str1270), 289}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1271), 250}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {-1}, + {uniname2ctype_offset(str1273), 286}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1274), 200}, +#ifndef USE_UNICODE_AGE_PROPERTIES + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#else /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1275), 285}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#endif /* USE_UNICODE_AGE_PROPERTIES */ + {uniname2ctype_offset(str1282), 635}, + {-1}, {-1}, + {uniname2ctype_offset(str1285), 105}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1289), 348}, + {-1}, {-1}, + {uniname2ctype_offset(str1292), 397}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1297), 145}, + {-1}, {-1}, + {uniname2ctype_offset(str1300), 86}, + {uniname2ctype_offset(str1301), 141}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1306), 15}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1314), 193}, + {-1}, {-1}, + {uniname2ctype_offset(str1317), 86}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str1328), 227}, + {-1}, {-1}, + {uniname2ctype_offset(str1331), 263}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1340), 105}, + {-1}, {-1}, + {uniname2ctype_offset(str1343), 120}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1349), 227}, + {-1}, {-1}, + {uniname2ctype_offset(str1352), 88}, + {-1}, + {uniname2ctype_offset(str1354), 164}, + {-1}, + {uniname2ctype_offset(str1356), 605}, + {-1}, + {uniname2ctype_offset(str1358), 633}, + {-1}, + {uniname2ctype_offset(str1360), 3}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1365), 387}, + {-1}, + {uniname2ctype_offset(str1367), 534}, + {-1}, + {uniname2ctype_offset(str1369), 258}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1373), 274}, + {-1}, + {uniname2ctype_offset(str1375), 135}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1380), 35}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1384), 56}, + {-1}, {-1}, + {uniname2ctype_offset(str1387), 113}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1392), 138}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1400), 201}, + {uniname2ctype_offset(str1401), 400}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1407), 224}, + {-1}, + {uniname2ctype_offset(str1409), 38}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1415), 576}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1419), 140}, + {uniname2ctype_offset(str1420), 140}, + {-1}, + {uniname2ctype_offset(str1422), 324}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1426), 39}, + {-1}, + {uniname2ctype_offset(str1428), 181}, + {uniname2ctype_offset(str1429), 36}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1438), 437}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1442), 544}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1448), 508}, + {uniname2ctype_offset(str1449), 122}, + {-1}, + {uniname2ctype_offset(str1451), 203}, + {-1}, {-1}, + {uniname2ctype_offset(str1454), 145}, + {-1}, {-1}, + {uniname2ctype_offset(str1457), 166}, + {-1}, {-1}, + {uniname2ctype_offset(str1460), 215}, + {-1}, + {uniname2ctype_offset(str1462), 559}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1470), 507}, + {uniname2ctype_offset(str1471), 509}, + {-1}, {-1}, + {uniname2ctype_offset(str1474), 134}, + {uniname2ctype_offset(str1475), 429}, + {uniname2ctype_offset(str1476), 511}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1480), 247}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1489), 33}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1495), 262}, + {-1}, + {uniname2ctype_offset(str1497), 499}, + {-1}, + {uniname2ctype_offset(str1499), 620}, + {-1}, + {uniname2ctype_offset(str1501), 196}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1507), 122}, + {uniname2ctype_offset(str1508), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1517), 619}, + {-1}, {-1}, + {uniname2ctype_offset(str1520), 239}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1524), 486}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1529), 120}, + {-1}, + {uniname2ctype_offset(str1531), 422}, + {-1}, + {uniname2ctype_offset(str1533), 142}, + {-1}, {-1}, + {uniname2ctype_offset(str1536), 127}, + {uniname2ctype_offset(str1537), 271}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1542), 468}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1547), 168}, + {-1}, + {uniname2ctype_offset(str1549), 522}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1557), 85}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1563), 275}, + {-1}, + {uniname2ctype_offset(str1565), 329}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1570), 210}, + {-1}, + {uniname2ctype_offset(str1572), 115}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1577), 570}, + {-1}, {-1}, + {uniname2ctype_offset(str1580), 131}, + {-1}, + {uniname2ctype_offset(str1582), 219}, + {uniname2ctype_offset(str1583), 125}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1587), 550}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1597), 81}, + {uniname2ctype_offset(str1598), 219}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1607), 592}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1613), 164}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1617), 505}, + {uniname2ctype_offset(str1618), 274}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1622), 388}, + {uniname2ctype_offset(str1623), 573}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1629), 39}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1635), 72}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1643), 62}, + {uniname2ctype_offset(str1644), 235}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1654), 403}, + {uniname2ctype_offset(str1655), 276}, + {-1}, + {uniname2ctype_offset(str1657), 114}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1662), 129}, + {-1}, + {uniname2ctype_offset(str1664), 451}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1671), 343}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1675), 472}, + {-1}, + {uniname2ctype_offset(str1677), 317}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1682), 634}, + {-1}, + {uniname2ctype_offset(str1684), 199}, + {-1}, + {uniname2ctype_offset(str1686), 93}, + {uniname2ctype_offset(str1687), 141}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1691), 124}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1699), 382}, + {-1}, + {uniname2ctype_offset(str1701), 525}, + {-1}, {-1}, + {uniname2ctype_offset(str1704), 207}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1714), 207}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1722), 362}, + {-1}, + {uniname2ctype_offset(str1724), 582}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1728), 221}, + {uniname2ctype_offset(str1729), 445}, + {uniname2ctype_offset(str1730), 222}, + {uniname2ctype_offset(str1731), 538}, + {uniname2ctype_offset(str1732), 249}, + {uniname2ctype_offset(str1733), 123}, + {uniname2ctype_offset(str1734), 114}, + {uniname2ctype_offset(str1735), 260}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1740), 129}, + {-1}, + {uniname2ctype_offset(str1742), 161}, + {-1}, {-1}, + {uniname2ctype_offset(str1745), 528}, + {uniname2ctype_offset(str1746), 405}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1750), 20}, + {-1}, + {uniname2ctype_offset(str1752), 519}, + {uniname2ctype_offset(str1753), 148}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1757), 518}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1766), 73}, + {-1}, + {uniname2ctype_offset(str1768), 148}, + {uniname2ctype_offset(str1769), 377}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1776), 126}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1781), 556}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1788), 97}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1793), 97}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1806), 351}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1810), 640}, + {uniname2ctype_offset(str1811), 247}, + {-1}, + {uniname2ctype_offset(str1813), 266}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1821), 224}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1828), 402}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1838), 623}, + {-1}, {-1}, + {uniname2ctype_offset(str1841), 460}, + {uniname2ctype_offset(str1842), 394}, + {uniname2ctype_offset(str1843), 65}, + {-1}, + {uniname2ctype_offset(str1845), 265}, + {-1}, {-1}, + {uniname2ctype_offset(str1848), 109}, + {-1}, {-1}, + {uniname2ctype_offset(str1851), 137}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1866), 61}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1871), 494}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1881), 63}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1888), 531}, + {uniname2ctype_offset(str1889), 555}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1896), 626}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1902), 434}, + {-1}, + {uniname2ctype_offset(str1904), 455}, + {uniname2ctype_offset(str1905), 590}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1912), 586}, + {uniname2ctype_offset(str1913), 143}, + {-1}, {-1}, + {uniname2ctype_offset(str1916), 594}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1924), 143}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1929), 432}, + {-1}, {-1}, + {uniname2ctype_offset(str1932), 415}, + {-1}, {-1}, + {uniname2ctype_offset(str1935), 264}, + {uniname2ctype_offset(str1936), 338}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1941), 27}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1950), 424}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1956), 252}, + {-1}, + {uniname2ctype_offset(str1958), 109}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1964), 440}, + {-1}, {-1}, + {uniname2ctype_offset(str1967), 492}, + {uniname2ctype_offset(str1968), 644}, + {uniname2ctype_offset(str1969), 251}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1974), 358}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1981), 176}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str1985), 408}, + {-1}, {-1}, + {uniname2ctype_offset(str1988), 441}, + {-1}, {-1}, + {uniname2ctype_offset(str1991), 1}, + {-1}, + {uniname2ctype_offset(str1993), 375}, + {uniname2ctype_offset(str1994), 175}, + {-1}, + {uniname2ctype_offset(str1996), 42}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2001), 110}, + {uniname2ctype_offset(str2002), 598}, + {-1}, + {uniname2ctype_offset(str2004), 110}, + {-1}, + {uniname2ctype_offset(str2006), 410}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2010), 378}, + {uniname2ctype_offset(str2011), 269}, + {uniname2ctype_offset(str2012), 565}, + {-1}, + {uniname2ctype_offset(str2014), 336}, + {uniname2ctype_offset(str2015), 117}, + {uniname2ctype_offset(str2016), 209}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2023), 32}, + {uniname2ctype_offset(str2024), 506}, + {-1}, + {uniname2ctype_offset(str2026), 176}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2033), 8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2040), 539}, + {-1}, + {uniname2ctype_offset(str2042), 121}, + {uniname2ctype_offset(str2043), 17}, + {uniname2ctype_offset(str2044), 117}, + {-1}, {-1}, + {uniname2ctype_offset(str2047), 107}, + {uniname2ctype_offset(str2048), 526}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2062), 130}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2070), 9}, + {-1}, {-1}, + {uniname2ctype_offset(str2073), 345}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2077), 150}, + {uniname2ctype_offset(str2078), 256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str2090), 277}, + {-1}, + {uniname2ctype_offset(str2092), 150}, + {-1}, {-1}, + {uniname2ctype_offset(str2095), 356}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2103), 162}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2110), 123}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2114), 439}, + {uniname2ctype_offset(str2115), 384}, + {-1}, + {uniname2ctype_offset(str2117), 174}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2128), 215}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2135), 128}, + {-1}, + {uniname2ctype_offset(str2137), 12}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2141), 244}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2145), 52}, + {uniname2ctype_offset(str2146), 416}, + {-1}, {-1}, + {uniname2ctype_offset(str2149), 221}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2163), 251}, + {-1}, + {uniname2ctype_offset(str2165), 174}, + {uniname2ctype_offset(str2166), 5}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2174), 233}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2178), 233}, + {-1}, {-1}, + {uniname2ctype_offset(str2181), 139}, + {uniname2ctype_offset(str2182), 216}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2195), 354}, + {uniname2ctype_offset(str2196), 496}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2207), 196}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2211), 20}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2216), 367}, + {uniname2ctype_offset(str2217), 128}, + {uniname2ctype_offset(str2218), 547}, + {uniname2ctype_offset(str2219), 78}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2224), 453}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2228), 43}, + {uniname2ctype_offset(str2229), 35}, + {-1}, {-1}, + {uniname2ctype_offset(str2232), 385}, + {uniname2ctype_offset(str2233), 216}, + {uniname2ctype_offset(str2234), 92}, + {uniname2ctype_offset(str2235), 489}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2241), 92}, + {-1}, {-1}, + {uniname2ctype_offset(str2244), 443}, + {-1}, {-1}, + {uniname2ctype_offset(str2247), 36}, + {uniname2ctype_offset(str2248), 602}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2276), 418}, + {-1}, + {uniname2ctype_offset(str2278), 124}, + {uniname2ctype_offset(str2279), 192}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2283), 214}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2296), 639}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2305), 205}, + {-1}, {-1}, + {uniname2ctype_offset(str2308), 234}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2312), 177}, + {-1}, {-1}, + {uniname2ctype_offset(str2315), 601}, + {uniname2ctype_offset(str2316), 638}, + {-1}, + {uniname2ctype_offset(str2318), 202}, + {-1}, {-1}, + {uniname2ctype_offset(str2321), 153}, + {-1}, + {uniname2ctype_offset(str2323), 172}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2327), 381}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2331), 636}, + {-1}, + {uniname2ctype_offset(str2333), 134}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2343), 591}, + {uniname2ctype_offset(str2344), 442}, + {uniname2ctype_offset(str2345), 241}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2353), 202}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2361), 606}, + {-1}, {-1}, + {uniname2ctype_offset(str2364), 323}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2373), 37}, + {uniname2ctype_offset(str2374), 392}, + {uniname2ctype_offset(str2375), 197}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2397), 421}, + {uniname2ctype_offset(str2398), 413}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2405), 165}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2414), 82}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2427), 23}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2433), 339}, + {uniname2ctype_offset(str2434), 154}, + {-1}, {-1}, + {uniname2ctype_offset(str2437), 194}, + {-1}, {-1}, + {uniname2ctype_offset(str2440), 100}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2451), 103}, + {-1}, {-1}, + {uniname2ctype_offset(str2454), 220}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2460), 257}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2464), 159}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2470), 448}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2475), 142}, + {uniname2ctype_offset(str2476), 558}, + {-1}, + {uniname2ctype_offset(str2478), 417}, + {uniname2ctype_offset(str2479), 361}, + {-1}, + {uniname2ctype_offset(str2481), 386}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2500), 121}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2506), 532}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2511), 244}, + {-1}, + {uniname2ctype_offset(str2513), 630}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2530), 82}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2534), 340}, + {uniname2ctype_offset(str2535), 237}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2545), 277}, + {-1}, {-1}, + {uniname2ctype_offset(str2548), 118}, + {uniname2ctype_offset(str2549), 159}, + {-1}, + {uniname2ctype_offset(str2551), 89}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2564), 372}, + {-1}, {-1}, + {uniname2ctype_offset(str2567), 318}, + {-1}, {-1}, + {uniname2ctype_offset(str2570), 491}, + {-1}, + {uniname2ctype_offset(str2572), 473}, + {-1}, + {uniname2ctype_offset(str2574), 246}, + {uniname2ctype_offset(str2575), 474}, + {uniname2ctype_offset(str2576), 275}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2582), 391}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2588), 154}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2602), 210}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2606), 374}, + {-1}, + {uniname2ctype_offset(str2608), 458}, + {uniname2ctype_offset(str2609), 55}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2625), 262}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2648), 254}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2652), 383}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2656), 368}, + {uniname2ctype_offset(str2657), 112}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2665), 87}, + {uniname2ctype_offset(str2666), 50}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2670), 632}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2674), 87}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2688), 139}, + {uniname2ctype_offset(str2689), 641}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2694), 48}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2705), 481}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str2726), 226}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2750), 557}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2761), 18}, + {uniname2ctype_offset(str2762), 265}, + {-1}, {-1}, + {uniname2ctype_offset(str2765), 133}, + {uniname2ctype_offset(str2766), 54}, + {-1}, {-1}, + {uniname2ctype_offset(str2769), 483}, + {-1}, {-1}, + {uniname2ctype_offset(str2772), 199}, + {-1}, {-1}, + {uniname2ctype_offset(str2775), 38}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2786), 4}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2793), 34}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2801), 29}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2808), 512}, + {-1}, + {uniname2ctype_offset(str2810), 226}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2816), 310}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2821), 393}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2830), 614}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2834), 364}, + {-1}, + {uniname2ctype_offset(str2836), 78}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2847), 248}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2852), 305}, + {-1}, {-1}, + {uniname2ctype_offset(str2855), 190}, + {uniname2ctype_offset(str2856), 66}, + {-1}, {-1}, + {uniname2ctype_offset(str2859), 427}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2867), 309}, + {uniname2ctype_offset(str2868), 248}, + {-1}, {-1}, + {uniname2ctype_offset(str2871), 254}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2879), 204}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2886), 631}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2902), 477}, + {-1}, + {uniname2ctype_offset(str2904), 464}, + {uniname2ctype_offset(str2905), 273}, + {-1}, + {uniname2ctype_offset(str2907), 273}, + {-1}, + {uniname2ctype_offset(str2909), 577}, + {-1}, + {uniname2ctype_offset(str2911), 450}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str2941), 363}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str2953), 198}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str2964), 520}, + {-1}, + {uniname2ctype_offset(str2966), 238}, + {uniname2ctype_offset(str2967), 43}, + {-1}, {-1}, + {uniname2ctype_offset(str2970), 88}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2980), 195}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2984), 574}, + {-1}, + {uniname2ctype_offset(str2986), 118}, + {uniname2ctype_offset(str2987), 54}, + {uniname2ctype_offset(str2988), 471}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str2997), 603}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3001), 180}, + {uniname2ctype_offset(str3002), 64}, + {-1}, {-1}, + {uniname2ctype_offset(str3005), 475}, + {uniname2ctype_offset(str3006), 583}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3015), 83}, + {-1}, {-1}, + {uniname2ctype_offset(str3018), 94}, + {uniname2ctype_offset(str3019), 165}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3026), 83}, + {uniname2ctype_offset(str3027), 503}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3035), 232}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3042), 211}, + {-1}, {-1}, + {uniname2ctype_offset(str3045), 615}, + {-1}, {-1}, + {uniname2ctype_offset(str3048), 119}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3052), 89}, + {uniname2ctype_offset(str3053), 229}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3058), 185}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3067), 185}, + {uniname2ctype_offset(str3068), 99}, + {-1}, {-1}, + {uniname2ctype_offset(str3071), 198}, + {uniname2ctype_offset(str3072), 133}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3082), 130}, + {-1}, + {uniname2ctype_offset(str3084), 237}, + {-1}, + {uniname2ctype_offset(str3086), 84}, + {uniname2ctype_offset(str3087), 342}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3091), 261}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3099), 478}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3104), 84}, + {-1}, + {uniname2ctype_offset(str3106), 562}, + {uniname2ctype_offset(str3107), 313}, + {-1}, + {uniname2ctype_offset(str3109), 315}, + {uniname2ctype_offset(str3110), 152}, + {uniname2ctype_offset(str3111), 191}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3118), 90}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3123), 107}, + {-1}, + {uniname2ctype_offset(str3125), 191}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3135), 452}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3142), 585}, + {-1}, {-1}, + {uniname2ctype_offset(str3145), 183}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3155), 182}, + {-1}, + {uniname2ctype_offset(str3157), 231}, + {uniname2ctype_offset(str3158), 328}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3176), 396}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3180), 331}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3193), 433}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3209), 62}, + {-1}, {-1}, + {uniname2ctype_offset(str3212), 211}, + {-1}, {-1}, + {uniname2ctype_offset(str3215), 180}, + {-1}, {-1}, + {uniname2ctype_offset(str3218), 125}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3237), 390}, + {-1}, + {uniname2ctype_offset(str3239), 308}, + {uniname2ctype_offset(str3240), 304}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3248), 213}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3254), 252}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str3265), 610}, + {-1}, + {uniname2ctype_offset(str3267), 28}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3275), 146}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3284), 618}, + {-1}, {-1}, + {uniname2ctype_offset(str3287), 223}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3297), 311}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3303), 307}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3313), 255}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3320), 223}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3328), 63}, + {uniname2ctype_offset(str3329), 625}, + {-1}, + {uniname2ctype_offset(str3331), 222}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3338), 264}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3348), 407}, + {-1}, + {uniname2ctype_offset(str3350), 501}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3355), 47}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3360), 337}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str3371), 126}, + {uniname2ctype_offset(str3372), 16}, + {uniname2ctype_offset(str3373), 253}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3377), 147}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3391), 238}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3396), 613}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3405), 469}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str3416), 51}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str3428), 253}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3433), 205}, + {-1}, {-1}, + {uniname2ctype_offset(str3436), 213}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3455), 225}, + {-1}, {-1}, + {uniname2ctype_offset(str3458), 10}, + {-1}, + {uniname2ctype_offset(str3460), 627}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3483), 245}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3502), 49}, + {-1}, + {uniname2ctype_offset(str3504), 80}, + {uniname2ctype_offset(str3505), 479}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3511), 411}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str3532), 578}, + {uniname2ctype_offset(str3533), 57}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3558), 59}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3580), 179}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3590), 103}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3613), 41}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3618), 99}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str3648), 465}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str3659), 178}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3664), 177}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3686), 204}, + {-1}, {-1}, + {uniname2ctype_offset(str3689), 246}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3698), 504}, + {uniname2ctype_offset(str3699), 552}, + {-1}, + {uniname2ctype_offset(str3701), 96}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3705), 320}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3710), 201}, + {-1}, {-1}, + {uniname2ctype_offset(str3713), 96}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3721), 438}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3744), 190}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3754), 71}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str3766), 467}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3799), 214}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3807), 260}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3842), 182}, + {-1}, {-1}, + {uniname2ctype_offset(str3845), 259}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3850), 245}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3854), 65}, + {-1}, {-1}, + {uniname2ctype_offset(str3857), 616}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str3868), 261}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3881), 228}, + {-1}, {-1}, + {uniname2ctype_offset(str3884), 306}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3891), 30}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3924), 420}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3942), 100}, + {-1}, + {uniname2ctype_offset(str3944), 436}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3949), 276}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3976), 604}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str3998), 430}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4007), 454}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4106), 45}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4116), 132}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str4127), 132}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4169), 220}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4231), 153}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4308), 401}, + {uniname2ctype_offset(str4309), 162}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str4348), 571}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4361), 572}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4459), 119}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4487), 147}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4604), 116}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4626), 116}, + {uniname2ctype_offset(str4627), 255}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str4674), 642}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4683), 466}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str4695), 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}, + {uniname2ctype_offset(str4734), 179}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str4755), 312}, + {uniname2ctype_offset(str4756), 314}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4772), 409}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str4783), 316}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4810), 90}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4898), 75}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + {uniname2ctype_offset(str4982), 232}, + {-1}, {-1}, {-1}, + {uniname2ctype_offset(str4986), 428}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str5018), 46}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + {uniname2ctype_offset(str5038), 242}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str5134), 628}, +#endif /* USE_UNICODE_PROPERTIES */ + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#ifndef USE_UNICODE_PROPERTIES + {uniname2ctype_offset(str6), 12}, + {uniname2ctype_offset(str7), 7}, + {uniname2ctype_offset(str8), 15}, + {uniname2ctype_offset(str9), 1}, + {uniname2ctype_offset(str10), 13}, + {uniname2ctype_offset(str11), 11}, + {uniname2ctype_offset(str12), 10}, + {uniname2ctype_offset(str13), 14}, + {uniname2ctype_offset(str14), 3}, + {uniname2ctype_offset(str15), 9}, + {uniname2ctype_offset(str16), 8}, + {uniname2ctype_offset(str17), 6}, + {uniname2ctype_offset(str18), 5}, + {uniname2ctype_offset(str19), 4}, + {uniname2ctype_offset(str20), 2} +#else /* USE_UNICODE_PROPERTIES */ + {uniname2ctype_offset(str5141), 155}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str5300), 225}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str5980), 155}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {uniname2ctype_offset(str6098), 643} +#endif /* USE_UNICODE_PROPERTIES */ + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register unsigned int key = uniname2ctype_hash (str, len); + + if (key <= MAX_HASH_VALUE) + { + register int o = wordlist[key].name; + if (o >= 0) + { + register const char *s = o + uniname2ctype_pool; + + if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') + return &wordlist[key]; + } + } + } + return 0; +} + +static int +uniname2ctype(const UChar *name, unsigned int len) +{ + const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len); + if (p) return p->ctype; + return -1; +} +#if defined ONIG_UNICODE_VERSION_STRING && !( \ + ONIG_UNICODE_VERSION_MAJOR == 15 && \ + ONIG_UNICODE_VERSION_MINOR == 0 && \ + ONIG_UNICODE_VERSION_TEENY == 0 && \ + 1) +# error ONIG_UNICODE_VERSION_STRING mismatch +#endif +#define ONIG_UNICODE_VERSION_STRING "15.0.0" +#define ONIG_UNICODE_VERSION_MAJOR 15 +#define ONIG_UNICODE_VERSION_MINOR 0 +#define ONIG_UNICODE_VERSION_TEENY 0 diff --git a/src/fluent-bit/lib/onigmo/enc/us_ascii.c b/src/fluent-bit/lib/onigmo/enc/us_ascii.c new file mode 100644 index 000000000..253ee6957 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/us_ascii.c @@ -0,0 +1,45 @@ +#include "regenc.h" +#ifdef RUBY +# include "encindex.h" +#endif + +#ifndef ENCINDEX_US_ASCII +# define ENCINDEX_US_ASCII 0 +#endif + +static int +us_ascii_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc) +{ + if (*p & 0x80) + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1); +} + +OnigEncodingDefine(us_ascii, US_ASCII) = { + us_ascii_mbc_enc_len, + "US-ASCII",/* name */ + 1, /* max byte length */ + 1, /* min byte length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + onigenc_ascii_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_single_byte_ascii_only_case_map, +#else + NULL, +#endif + ENCINDEX_US_ASCII, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("ASCII", "US-ASCII") +ENC_ALIAS("ANSI_X3.4-1968", "US-ASCII") +ENC_ALIAS("646", "US-ASCII") diff --git a/src/fluent-bit/lib/onigmo/enc/utf_16be.c b/src/fluent-bit/lib/onigmo/enc/utf_16be.c new file mode 100644 index 000000000..0086040b5 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/utf_16be.c @@ -0,0 +1,260 @@ +/********************************************************************** + utf_16be.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#if 0 +static const int EncLen_UTF16[] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; +#endif + +static int +utf16be_mbc_enc_len(const UChar* p, const OnigUChar* e ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + int byte = p[0]; + if (!UTF16_IS_SURROGATE(byte)) { + if (2 <= e-p) + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2); + else + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(1); + } + if (UTF16_IS_SURROGATE_FIRST(byte)) { + switch (e-p) { + case 1: return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(3); + case 2: return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(2); + case 3: + if (UTF16_IS_SURROGATE_SECOND(p[2])) + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(1); + break; + default: + if (UTF16_IS_SURROGATE_SECOND(p[2])) + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4); + break; + } + } + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +} + +static int +utf16be_is_mbc_newline(const UChar* p, const UChar* end, + OnigEncoding enc) +{ + if (p + 1 < end) { + if (*(p+1) == 0x0a && *p == 0x00) + return 1; +#ifdef USE_UNICODE_ALL_LINE_TERMINATORS + if ((*(p+1) == 0x0b || *(p+1) == 0x0c || *(p+1) == 0x0d || *(p+1) == 0x85) + && *p == 0x00) + return 1; + if (*p == 0x20 && (*(p+1) == 0x29 || *(p+1) == 0x28)) + return 1; +#endif + } + return 0; +} + +static OnigCodePoint +utf16be_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED, + OnigEncoding enc) +{ + OnigCodePoint code; + + if (UTF16_IS_SURROGATE_FIRST(*p)) { + code = ((((p[0] << 8) + p[1]) & 0x03ff) << 10) + + (((p[2] << 8) + p[3]) & 0x03ff) + 0x10000; + } + else { + code = p[0] * 256 + p[1]; + } + return code; +} + +static int +utf16be_code_to_mbclen(OnigCodePoint code, + OnigEncoding enc) +{ + return (code > 0xffff ? 4 : 2); +} + +static int +utf16be_code_to_mbc(OnigCodePoint code, UChar *buf, + OnigEncoding enc) +{ + UChar* p = buf; + + if (code > 0xffff) { + unsigned int high = (code >> 10) + 0xD7C0; + unsigned int low = (code & 0x3FF) + 0xDC00; + *p++ = (high >> 8) & 0xFF; + *p++ = high & 0xFF; + *p++ = (low >> 8) & 0xFF; + *p++ = low & 0xFF; + return 4; + } + else { + *p++ = (UChar )((code & 0xff00) >> 8); + *p++ = (UChar )(code & 0xff); + return 2; + } +} + +static int +utf16be_mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* fold, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_ASCII_CODE(*(p+1)) && *p == 0) { + p++; +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*p == 0x49) { + *fold++ = 0x01; + *fold = 0x31; + (*pp) += 2; + return 2; + } + } +#endif + + *fold++ = 0; + *fold = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + *pp += 2; + return 2; + } + else + return onigenc_unicode_mbc_case_fold(enc, flag, + pp, end, fold); +} + +#if 0 +static int +utf16be_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + const UChar* p = *pp; + + (*pp) += EncLen_UTF16[*p]; + + if (*p == 0) { + int c, v; + + p++; + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + return TRUE; + } + + c = *p; + v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c, + (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (c >= 0xaa && c <= 0xba) + return FALSE; + else + return TRUE; + } + return (v != 0 ? TRUE : FALSE); + } + + return FALSE; +} +#endif + +static UChar* +utf16be_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + if (s <= start) return (UChar* )s; + + if ((s - start) % 2 == 1) { + s--; + } + + if (UTF16_IS_SURROGATE_SECOND(*s) && s > start + 1) + s -= 2; + + return (UChar* )s; +} + +static int +utf16be_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc) +{ + return onigenc_unicode_get_case_fold_codes_by_str(enc, + flag, p, end, items); +} + +OnigEncodingDefine(utf_16be, UTF_16BE) = { + utf16be_mbc_enc_len, + "UTF-16BE", /* name */ + 4, /* max byte length */ + 2, /* min byte length */ + utf16be_is_mbc_newline, + utf16be_mbc_to_code, + utf16be_code_to_mbclen, + utf16be_code_to_mbc, + utf16be_mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + utf16be_get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + onigenc_utf16_32_get_ctype_code_range, + utf16be_left_adjust_char_head, + onigenc_always_false_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_unicode_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_UNICODE, +}; +ENC_ALIAS("UCS-2BE", "UTF-16BE") diff --git a/src/fluent-bit/lib/onigmo/enc/utf_16le.c b/src/fluent-bit/lib/onigmo/enc/utf_16le.c new file mode 100644 index 000000000..ca0fce538 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/utf_16le.c @@ -0,0 +1,252 @@ +/********************************************************************** + utf_16le.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#if 0 +static const int EncLen_UTF16[] = { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; +#endif + +static int +utf16le_mbc_enc_len(const UChar* p, const OnigUChar* e, + OnigEncoding enc ARG_UNUSED) +{ + int len = (int)(e - p); + UChar byte; + if (len < 2) + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(1); + byte = p[1]; + if (!UTF16_IS_SURROGATE(byte)) { + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2); + } + if (UTF16_IS_SURROGATE_FIRST(byte)) { + if (len < 4) + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-len); + if (UTF16_IS_SURROGATE_SECOND(p[3])) + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4); + } + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +} + +static int +utf16le_is_mbc_newline(const UChar* p, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + if (p + 1 < end) { + if (*p == 0x0a && *(p+1) == 0x00) + return 1; +#ifdef USE_UNICODE_ALL_LINE_TERMINATORS + if ((*p == 0x0b || *p == 0x0c || *p == 0x0d || *p == 0x85) + && *(p+1) == 0x00) + return 1; + if (*(p+1) == 0x20 && (*p == 0x29 || *p == 0x28)) + return 1; +#endif + } + return 0; +} + +static OnigCodePoint +utf16le_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + OnigCodePoint code; + UChar c0 = *p; + UChar c1 = *(p+1); + + if (UTF16_IS_SURROGATE_FIRST(c1)) { + code = ((((c1 << 8) + c0) & 0x03ff) << 10) + + (((p[3] << 8) + p[2]) & 0x03ff) + 0x10000; + } + else { + code = c1 * 256 + p[0]; + } + return code; +} + +static int +utf16le_code_to_mbclen(OnigCodePoint code, + OnigEncoding enc ARG_UNUSED) +{ + return (code > 0xffff ? 4 : 2); +} + +static int +utf16le_code_to_mbc(OnigCodePoint code, UChar *buf, + OnigEncoding enc ARG_UNUSED) +{ + UChar* p = buf; + + if (code > 0xffff) { + unsigned int high = (code >> 10) + 0xD7C0; + unsigned int low = (code & 0x3FF) + 0xDC00; + *p++ = high & 0xFF; + *p++ = (high >> 8) & 0xFF; + *p++ = low & 0xFF; + *p++ = (low >> 8) & 0xFF; + return 4; + } + else { + *p++ = (UChar )(code & 0xff); + *p++ = (UChar )((code & 0xff00) >> 8); + return 2; + } +} + +static int +utf16le_mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* fold, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_ASCII_CODE(*p) && *(p+1) == 0) { +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*p == 0x49) { + *fold++ = 0x31; + *fold = 0x01; + (*pp) += 2; + return 2; + } + } +#endif + + *fold++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + *fold = 0; + *pp += 2; + return 2; + } + else + return onigenc_unicode_mbc_case_fold(enc, flag, pp, + end, fold); +} + +#if 0 +static int +utf16le_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, + const UChar* end) +{ + const UChar* p = *pp; + + (*pp) += EncLen_UTF16[*(p+1)]; + + if (*(p+1) == 0) { + int c, v; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + return TRUE; + } + + c = *p; + v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c, + (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (c >= 0xaa && c <= 0xba) + return FALSE; + else + return TRUE; + } + return (v != 0 ? TRUE : FALSE); + } + + return FALSE; +} +#endif + +static UChar* +utf16le_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + if (s <= start) return (UChar* )s; + + if ((s - start) % 2 == 1) { + s--; + } + + if (UTF16_IS_SURROGATE_SECOND(*(s+1)) && s > start + 1) + s -= 2; + + return (UChar* )s; +} + +static int +utf16le_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc) +{ + return onigenc_unicode_get_case_fold_codes_by_str(enc, + flag, p, end, items); +} + +OnigEncodingDefine(utf_16le, UTF_16LE) = { + utf16le_mbc_enc_len, + "UTF-16LE", /* name */ + 4, /* max byte length */ + 2, /* min byte length */ + utf16le_is_mbc_newline, + utf16le_mbc_to_code, + utf16le_code_to_mbclen, + utf16le_code_to_mbc, + utf16le_mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + utf16le_get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + onigenc_utf16_32_get_ctype_code_range, + utf16le_left_adjust_char_head, + onigenc_always_false_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_unicode_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_UNICODE, +}; diff --git a/src/fluent-bit/lib/onigmo/enc/utf_32be.c b/src/fluent-bit/lib/onigmo/enc/utf_32be.c new file mode 100644 index 000000000..e05cfaf1b --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/utf_32be.c @@ -0,0 +1,210 @@ +/********************************************************************** + utf_32be.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +static OnigCodePoint utf32be_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc); +static int +utf32be_mbc_enc_len(const UChar* p ARG_UNUSED, const OnigUChar* e, + OnigEncoding enc) +{ + if (e < p) { + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + } + else if (e-p < 4) { + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-(int)(e-p)); + } + else { + OnigCodePoint c = utf32be_mbc_to_code(p, e, enc); + if (!UNICODE_VALID_CODEPOINT_P(c)) + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4); + } +} + +static int +utf32be_is_mbc_newline(const UChar* p, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + if (p + 3 < end) { + if (*(p+3) == 0x0a && *(p+2) == 0 && *(p+1) == 0 && *p == 0) + return 1; +#ifdef USE_UNICODE_ALL_LINE_TERMINATORS + if ((*(p+3) == 0x0b || *(p+3) == 0x0c || *(p+3) == 0x0d || *(p+3) == 0x85) + && *(p+2) == 0 && *(p+1) == 0 && *p == 0x00) + return 1; + if (*(p+2) == 0x20 && (*(p+3) == 0x29 || *(p+3) == 0x28) + && *(p+1) == 0 && *p == 0) + return 1; +#endif + } + return 0; +} + +static OnigCodePoint +utf32be_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + return (OnigCodePoint )(((p[0] * 256 + p[1]) * 256 + p[2]) * 256 + p[3]); +} + +static int +utf32be_code_to_mbclen(OnigCodePoint code ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + return 4; +} + +static int +utf32be_code_to_mbc(OnigCodePoint code, UChar *buf, + OnigEncoding enc ARG_UNUSED) +{ + UChar* p = buf; + + *p++ = (UChar )((code & 0xff000000) >>24); + *p++ = (UChar )((code & 0xff0000) >>16); + *p++ = (UChar )((code & 0xff00) >> 8); + *p++ = (UChar ) (code & 0xff); + return 4; +} + +static int +utf32be_mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* fold, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_ASCII_CODE(*(p+3)) && *(p+2) == 0 && *(p+1) == 0 && *p == 0) { + *fold++ = 0; + *fold++ = 0; + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*(p+3) == 0x49) { + *fold++ = 0x01; + *fold = 0x31; + (*pp) += 4; + return 4; + } + } +#endif + + *fold++ = 0; + *fold = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*(p+3)); + *pp += 4; + return 4; + } + else + return onigenc_unicode_mbc_case_fold(enc, flag, pp, + end, fold); +} + +#if 0 +static int +utf32be_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + const UChar* p = *pp; + + (*pp) += 4; + + if (*(p+2) == 0 && *(p+1) == 0 && *p == 0) { + int c, v; + + p += 3; + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + return TRUE; + } + + c = *p; + v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c, + (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (c >= 0xaa && c <= 0xba) + return FALSE; + else + return TRUE; + } + return (v != 0 ? TRUE : FALSE); + } + + return FALSE; +} +#endif + +static UChar* +utf32be_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + ptrdiff_t rem; + + if (s <= start) return (UChar* )s; + + rem = (int )((s - start) % 4); + return (UChar* )(s - rem); +} + +static int +utf32be_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc) +{ + return onigenc_unicode_get_case_fold_codes_by_str(enc, + flag, p, end, items); +} + +OnigEncodingDefine(utf_32be, UTF_32BE) = { + utf32be_mbc_enc_len, + "UTF-32BE", /* name */ + 4, /* max byte length */ + 4, /* min byte length */ + utf32be_is_mbc_newline, + utf32be_mbc_to_code, + utf32be_code_to_mbclen, + utf32be_code_to_mbc, + utf32be_mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + utf32be_get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + onigenc_utf16_32_get_ctype_code_range, + utf32be_left_adjust_char_head, + onigenc_always_false_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_unicode_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_UNICODE, +}; +ENC_ALIAS("UCS-4BE", "UTF-32BE") diff --git a/src/fluent-bit/lib/onigmo/enc/utf_32le.c b/src/fluent-bit/lib/onigmo/enc/utf_32le.c new file mode 100644 index 000000000..651efdcec --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/utf_32le.c @@ -0,0 +1,210 @@ +/********************************************************************** + utf_32le.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +static OnigCodePoint utf32le_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc); +static int +utf32le_mbc_enc_len(const UChar* p ARG_UNUSED, const OnigUChar* e, + OnigEncoding enc) +{ + if (e < p) { + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + } + else if (e-p < 4) { + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-(int)(e-p)); + } + else { + OnigCodePoint c = utf32le_mbc_to_code(p, e, enc); + if (!UNICODE_VALID_CODEPOINT_P(c)) + return ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4); + } +} + +static int +utf32le_is_mbc_newline(const UChar* p, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + if (p + 3 < end) { + if (*p == 0x0a && *(p+1) == 0 && *(p+2) == 0 && *(p+3) == 0) + return 1; +#ifdef USE_UNICODE_ALL_LINE_TERMINATORS + if ((*p == 0x0b ||*p == 0x0c ||*p == 0x0d || *p == 0x85) + && *(p+1) == 0x00 && (p+2) == 0x00 && *(p+3) == 0x00) + return 1; + if (*(p+1) == 0x20 && (*p == 0x29 || *p == 0x28) + && *(p+2) == 0x00 && *(p+3) == 0x00) + return 1; +#endif + } + return 0; +} + +static OnigCodePoint +utf32le_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + return (OnigCodePoint )(((p[3] * 256 + p[2]) * 256 + p[1]) * 256 + p[0]); +} + +static int +utf32le_code_to_mbclen(OnigCodePoint code ARG_UNUSED, + OnigEncoding enc ARG_UNUSED) +{ + return 4; +} + +static int +utf32le_code_to_mbc(OnigCodePoint code, UChar *buf, + OnigEncoding enc ARG_UNUSED) +{ + UChar* p = buf; + + *p++ = (UChar ) (code & 0xff); + *p++ = (UChar )((code & 0xff00) >> 8); + *p++ = (UChar )((code & 0xff0000) >>16); + *p++ = (UChar )((code & 0xff000000) >>24); + return 4; +} + +static int +utf32le_mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* fold, + OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_ASCII_CODE(*p) && *(p+1) == 0 && *(p+2) == 0 && *(p+3) == 0) { +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*p == 0x49) { + *fold++ = 0x31; + *fold++ = 0x01; + } + } + else { +#endif + *fold++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + *fold++ = 0; +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + } +#endif + + *fold++ = 0; + *fold = 0; + *pp += 4; + return 4; + } + else + return onigenc_unicode_mbc_case_fold(enc, flag, pp, + end, fold); +} + +#if 0 +static int +utf32le_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + const UChar* p = *pp; + + (*pp) += 4; + + if (*(p+1) == 0 && *(p+2) == 0 && *(p+3) == 0) { + int c, v; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + return TRUE; + } + + c = *p; + v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c, + (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ + if (c >= 0xaa && c <= 0xba) + return FALSE; + else + return TRUE; + } + return (v != 0 ? TRUE : FALSE); + } + + return FALSE; +} +#endif + +static UChar* +utf32le_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, + OnigEncoding enc ARG_UNUSED) +{ + ptrdiff_t rem; + + if (s <= start) return (UChar* )s; + + rem = (int )((s - start) % 4); + return (UChar* )(s - rem); +} + +static int +utf32le_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc) +{ + return onigenc_unicode_get_case_fold_codes_by_str(enc, + flag, p, end, items); +} + +OnigEncodingDefine(utf_32le, UTF_32LE) = { + utf32le_mbc_enc_len, + "UTF-32LE", /* name */ + 4, /* max byte length */ + 4, /* min byte length */ + utf32le_is_mbc_newline, + utf32le_mbc_to_code, + utf32le_code_to_mbclen, + utf32le_code_to_mbc, + utf32le_mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + utf32le_get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + onigenc_utf16_32_get_ctype_code_range, + utf32le_left_adjust_char_head, + onigenc_always_false_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_unicode_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_UNICODE, +}; +ENC_ALIAS("UCS-4LE", "UTF-32LE") diff --git a/src/fluent-bit/lib/onigmo/enc/utf_8.c b/src/fluent-bit/lib/onigmo/enc/utf_8.c new file mode 100644 index 000000000..cb233feea --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/utf_8.c @@ -0,0 +1,590 @@ +/********************************************************************** + utf_8.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#ifdef RUBY +# include "encindex.h" +#endif + +#ifndef ENCINDEX_UTF_8 +# define ENCINDEX_UTF_8 0 +#endif + +#define USE_INVALID_CODE_SCHEME +/* #define USE_UTF8_31BITS */ + +#ifdef USE_INVALID_CODE_SCHEME +/* virtual codepoint values for invalid encoding byte 0xfe and 0xff */ +# define INVALID_CODE_FE 0xfffffffe +# define INVALID_CODE_FF 0xffffffff +#endif + +#ifndef USE_UTF8_31BITS +#define VALID_CODE_LIMIT 0x0010ffff +#else +#define VALID_CODE_LIMIT 0x7fffffff +#endif + +#define utf8_islead(c) ((UChar )((c) & 0xc0) != 0x80) + +static const int EncLen_UTF8[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +#ifndef USE_UTF8_31BITS + 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +#else + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 1, 1 +#endif +}; + +typedef enum { + FAILURE = -2, + ACCEPT, + S0, S1, S2, S3, + S4, S5, S6, S7, + S8, S9,S10,S11, +} state_t; +#define A ACCEPT +#define F FAILURE +static const signed char trans[][0x100] = { + { /* S0 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* e */ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, +#ifndef USE_UTF8_31BITS + /* f */ 5, 6, 6, 6, 7, F, F, F, F, F, F, F, F, F, F, F +#else + /* f */ 5, 6, 6, 6, 6, 6, 6, 6, 8, 9, 9, 9,10,11, F, F +#endif + }, + { /* S1 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S2 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S3 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S4 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S5 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 9 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* a */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* b */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S6 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* 9 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* a */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* b */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S7 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, +#ifdef USE_UTF8_31BITS + { /* S8 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, F, F, F, F, 6, 6, 6, 6, 6, 6, 6, 6, + /* 9 */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* a */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* b */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S9 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* 9 */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* a */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* b */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S10 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ F, F, F, F, 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, + /* a */ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + /* b */ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, + { /* S11 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* 8 */ 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, + /* a */ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + /* b */ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, + /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F + }, +#endif // USE_UTF8_31BITS +}; +#undef A +#undef F + +static int +mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED) +{ + int firstbyte = *p++; + state_t s; + s = trans[0][firstbyte]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_UTF8[firstbyte]-1); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_UTF8[firstbyte]-2); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_UTF8[firstbyte]-3); + s = trans[s][*p++]; + +#ifndef USE_UTF8_31BITS + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +#else + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_UTF8[firstbyte]-4); + s = trans[s][*p++]; + if (s < 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(5) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); + + if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_UTF8[firstbyte]-5); + s = trans[s][*p++]; + return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(6) : + ONIGENC_CONSTRUCT_MBCLEN_INVALID(); +#endif +} + +static int +is_mbc_newline(const UChar* p, const UChar* end, OnigEncoding enc) +{ + if (p < end) { + if (*p == 0x0a) return 1; + +#ifdef USE_UNICODE_ALL_LINE_TERMINATORS + if (*p == 0x0b || *p == 0x0c || *p == 0x0d) return 1; + if (p + 1 < end) { + if (*(p+1) == 0x85 && *p == 0xc2) /* U+0085 */ + return 1; + if (p + 2 < end) { + if ((*(p+2) == 0xa8 || *(p+2) == 0xa9) + && *(p+1) == 0x80 && *p == 0xe2) /* U+2028, U+2029 */ + return 1; + } + } +#endif + } + + return 0; +} + +static OnigCodePoint +mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc) +{ + int c, len; + OnigCodePoint n; + + len = mbc_enc_len(p, end, enc); + c = *p++; + if (len > 1) { + len--; + n = c & ((1 << (6 - len)) - 1); + while (len--) { + c = *p++; + n = (n << 6) | (c & ((1 << 6) - 1)); + } + return n; + } + else { +#ifdef USE_INVALID_CODE_SCHEME + if (c > 0xfd) { + return ((c == 0xfe) ? INVALID_CODE_FE : INVALID_CODE_FF); + } +#endif + return (OnigCodePoint )c; + } +} + +static int +code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED) +{ + if ((code & 0xffffff80) == 0) return 1; + else if ((code & 0xfffff800) == 0) return 2; + else if ((code & 0xffff0000) == 0) return 3; +#ifndef USE_UTF8_31BITS + else if (code <= VALID_CODE_LIMIT) return 4; +#else + else if ((code & 0xffe00000) == 0) return 4; + else if ((code & 0xfc000000) == 0) return 5; + else if (code <= VALID_CODE_LIMIT) return 6; +#endif +#ifdef USE_INVALID_CODE_SCHEME + else if (code == INVALID_CODE_FE) return 1; + else if (code == INVALID_CODE_FF) return 1; +#endif + else + return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; +} + +static int +code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc ARG_UNUSED) +{ +#define UTF8_TRAILS(code, shift) (UChar )((((code) >> (shift)) & 0x3f) | 0x80) +#define UTF8_TRAIL0(code) (UChar )(((code) & 0x3f) | 0x80) + + if ((code & 0xffffff80) == 0) { + *buf = (UChar )code; + return 1; + } + else { + UChar *p = buf; + + if ((code & 0xfffff800) == 0) { + *p++ = (UChar )(((code>>6)& 0x1f) | 0xc0); + } + else if ((code & 0xffff0000) == 0) { + *p++ = (UChar )(((code>>12) & 0x0f) | 0xe0); + *p++ = UTF8_TRAILS(code, 6); + } +#ifndef USE_UTF8_31BITS + else if (code <= VALID_CODE_LIMIT) { + *p++ = (UChar )(((code>>18) & 0x07) | 0xf0); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } +#else + else if ((code & 0xffe00000) == 0) { + *p++ = (UChar )(((code>>18) & 0x07) | 0xf0); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } + else if ((code & 0xfc000000) == 0) { + *p++ = (UChar )(((code>>24) & 0x03) | 0xf8); + *p++ = UTF8_TRAILS(code, 18); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } + else if (code <= VALID_CODE_LIMIT) { + *p++ = (UChar )(((code>>30) & 0x01) | 0xfc); + *p++ = UTF8_TRAILS(code, 24); + *p++ = UTF8_TRAILS(code, 18); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } +#endif + +#ifdef USE_INVALID_CODE_SCHEME + else if (code == INVALID_CODE_FE) { + *p = 0xfe; + return 1; + } + else if (code == INVALID_CODE_FF) { + *p = 0xff; + return 1; + } +#endif + else { + return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; + } + + *p++ = UTF8_TRAIL0(code); + return (int )(p - buf); + } +} + +static int +mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, + const UChar* end, UChar* fold, OnigEncoding enc) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*p == 0x49) { + *fold++ = 0xc4; + *fold = 0xb1; + (*pp)++; + return 2; + } + } +#endif + + *fold = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ + } + else { + return onigenc_unicode_mbc_case_fold(enc, flag, pp, end, fold); + } +} + + +static int +get_ctype_code_range(OnigCtype ctype, OnigCodePoint *sb_out, + const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED) +{ + *sb_out = 0x80; + return onigenc_unicode_ctype_code_range(ctype, ranges); +} + + +static UChar* +left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED) +{ + const UChar *p; + + if (s <= start) return (UChar* )s; + p = s; + + while (!utf8_islead(*p) && p > start) p--; + return (UChar* )p; +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], + OnigEncoding enc) +{ + return onigenc_unicode_get_case_fold_codes_by_str(enc, flag, p, end, items); +} + +OnigEncodingDefine(utf_8, UTF_8) = { + mbc_enc_len, + "UTF-8", /* name */ +#ifndef USE_UTF8_31BITS + 4, /* max byte length */ +#else + 6, /* max byte length */ +#endif + 1, /* min byte length */ + is_mbc_newline, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + get_ctype_code_range, + left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_unicode_case_map, +#else + NULL, +#endif + ENCINDEX_UTF_8, + ONIGENC_FLAG_UNICODE, +}; +ENC_ALIAS("CP65001", "UTF-8") + +/* + * Name: UTF8-MAC + * Link: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/BPFileSystem.html + * Link: http://developer.apple.com/qa/qa2001/qa1235.html + * Link: http://developer.apple.com/jp/qa/qa2001/qa1235.html + * Link: http://www.gnu.org/software/emacs/NEWS.23.2 + */ +ENC_REPLICATE("UTF8-MAC", "UTF-8") +ENC_ALIAS("UTF-8-MAC", "UTF8-MAC") +ENC_ALIAS("UTF-8-HFS", "UTF8-MAC") /* Emacs 23.2 */ diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1250.c b/src/fluent-bit/lib/onigmo/enc/windows_1250.c new file mode 100644 index 000000000..ca52444d1 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1250.c @@ -0,0 +1,277 @@ +/********************************************************************** + windows_1250.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2006-2007 Byte <byte AT mail DOT kna DOT ru> + * K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_CP1250_TO_LOWER_CASE(c) EncCP1250_ToLowerCaseTable[c] +#define ENC_IS_CP1250_CTYPE(code,ctype) \ + ((EncCP1250_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1250_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\232', '\213', '\234', '\235', '\236', '\237', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\263', '\244', '\271', '\246', '\247', + '\250', '\251', '\272', '\253', '\254', '\255', '\256', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\276', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; + +static const unsigned short EncCP1250_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x00a0, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,/* 8 */ + 0x0008, 0x0008, 0x34a2, 0x0008, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,/* 9 */ + 0x0008, 0x0008, 0x30e2, 0x0008, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x0284, 0x01a0, 0x00a0, 0x34a2, 0x00a0, 0x34a2, 0x00a0, 0x00a0,/* A */ + 0x00a0, 0x00a0, 0x34a2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x34a2, + 0x00a0, 0x00a0, 0x10a0, 0x30e2, 0x00a0, 0x30e2, 0x00a0, 0x01a0,/* B */ + 0x00a0, 0x30e2, 0x30e2, 0x01a0, 0x34a2, 0x10a0, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,/* C */ + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,/* D */ + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,/* E */ + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,/* F */ + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, +}; + +static int +cp1250_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_CP1250_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +static int +cp1250_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1250_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0x8a, 0x9a }, + { 0x8c, 0x9c }, + { 0x8d, 0x9d }, + { 0x8e, 0x9e }, + { 0x8f, 0x9f }, + + { 0xa3, 0xb3 }, + { 0xa5, 0xb9 }, + { 0xaa, 0xba }, + { 0xaf, 0xbf }, + + { 0xbc, 0xbe }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe }, +}; + +static int +cp1250_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1, + flag, f, arg); +} + +static int +cp1250_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncCP1250_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_CP1250_TO_LOWER_CASE(code); + } + else if (code == 0xB5) + ; + else if ((EncCP1250_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xB9) + code = 0xA5; + else if (code == 0xBE) + code = 0xBC; + else if (code >= 0x8A && code <= 0xBF && code!=0xB9) + code -= 0x10; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1250, Windows_1250) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1250", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + cp1250_mbc_case_fold, + cp1250_apply_all_case_fold, + cp1250_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + cp1250_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: windows-1250 + * MIBenum: 2251 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1250.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1250 + */ +ENC_ALIAS("CP1250", "Windows-1250") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1251.c b/src/fluent-bit/lib/onigmo/enc/windows_1251.c new file mode 100644 index 000000000..08002d02a --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1251.c @@ -0,0 +1,259 @@ +/********************************************************************** + windows_1251.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2006-2007 Byte <byte AT mail DOT kna DOT ru> + * K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +#define ENC_CP1251_TO_LOWER_CASE(c) EncCP1251_ToLowerCaseTable[c] +#define ENC_IS_CP1251_CTYPE(code,ctype) \ + ((EncCP1251_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1251_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\220', '\203', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\232', '\213', '\234', '\235', '\236', '\237', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\242', '\242', '\274', '\244', '\264', '\246', '\247', + '\270', '\251', '\272', '\253', '\254', '\255', '\256', '\277', + '\260', '\261', '\263', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\276', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncCP1251_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x428c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x34a2, 0x34a2, 0x01a0, 0x30e2, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x0000, 0x01a0, 0x34a2, 0x01a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x30e2, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x0008, 0x0000, 0x30e2, 0x01a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x0280, 0x34a2, 0x30e2, 0x34a2, 0x01a0, 0x34a2, 0x01a0, 0x01a0, + 0x34a2, 0x01a0, 0x34a2, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x34a2, + 0x01a0, 0x01a0, 0x34a2, 0x30e2, 0x30e2, 0x31e2, 0x01a0, 0x01a0, + 0x30e2, 0x0000, 0x30e2, 0x01a0, 0x30e2, 0x34a2, 0x30e2, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +cp1251_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_CP1251_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +static int +cp1251_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1251_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xb8, 0xa8 }, + + { 0xe0, 0xc0 }, + { 0xe1, 0xc1 }, + { 0xe2, 0xc2 }, + { 0xe3, 0xc3 }, + { 0xe4, 0xc4 }, + { 0xe5, 0xc5 }, + { 0xe6, 0xc6 }, + { 0xe7, 0xc7 }, + { 0xe8, 0xc8 }, + { 0xe9, 0xc9 }, + { 0xea, 0xca }, + { 0xeb, 0xcb }, + { 0xec, 0xcc }, + { 0xed, 0xcd }, + { 0xee, 0xce }, + { 0xef, 0xcf }, + + { 0xf0, 0xd0 }, + { 0xf1, 0xd1 }, + { 0xf2, 0xd2 }, + { 0xf3, 0xd3 }, + { 0xf4, 0xd4 }, + { 0xf5, 0xd5 }, + { 0xf6, 0xd6 }, + { 0xf7, 0xd7 }, + { 0xf8, 0xd8 }, + { 0xf9, 0xd9 }, + { 0xfa, 0xda }, + { 0xfb, 0xdb }, + { 0xfc, 0xdc }, + { 0xfd, 0xdd }, + { 0xfe, 0xde }, + { 0xff, 0xdf } +}; + +static int +cp1251_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +cp1251_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if ((EncCP1251_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_CP1251_TO_LOWER_CASE(code); + } + else if (code == 0xB5) + ; + else if ((EncCP1251_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if ((0x61 <= code && code <= 0x7A) || (0xE0 <= code && code <= 0xFF)) + code -= 0x20; + else if (code == 0xA2 || code == 0xB3 || code == 0xBE) + code -= 0x01; + else if (code == 0x83) + code = 0x81; + else if (code == 0xBC) + code = 0xA3; + else if (code == 0xB4) + code = 0xA5; + else + code -= 0x10; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1251, Windows_1251) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1251",/* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + cp1251_mbc_case_fold, + cp1251_apply_all_case_fold, + cp1251_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + cp1251_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: windows-1251 + * MIBenum: 2251 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1251.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1251 + */ +ENC_ALIAS("CP1251", "Windows-1251") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1252.c b/src/fluent-bit/lib/onigmo/enc/windows_1252.c new file mode 100644 index 000000000..b833df956 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1252.c @@ -0,0 +1,266 @@ +/********************************************************************** + windows_1252.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2006-2007 Byte <byte AT mail DOT kna DOT ru> + * K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_CP1252_TO_LOWER_CASE(c) EncCP1252_ToLowerCaseTable[c] +#define ENC_IS_CP1252_CTYPE(code,ctype) \ + ((EncCP1252_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1252_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\232', '\213', '\234', '\215', '\236', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\377', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; + +static const unsigned short EncCP1252_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x00a0, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x34a2, 0x0008, 0x34a2, 0x0000, 0x34a2, 0x0000, + 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x30e2, 0x0008, 0x30e2, 0x0000, 0x30e2, 0x34a2, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, +}; + +static int +cp1252_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_CP1252_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} +static int +cp1252_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1252_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0x8a, 0x9a }, + { 0x8c, 0x9c }, + { 0x8e, 0x9e }, + { 0x9f, 0xff }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe }, +}; + +static int +cp1252_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1, + flag, f, arg); +} + +static int +cp1252_get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncCP1252_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_CP1252_TO_LOWER_CASE(code); + } + else if (code == 0x83 || code == 0xAA || code == 0xBA || code == 0xB5) + ; + else if ((EncCP1252_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0x9A || code == 0x9C || code == 0x9E) + code -= 0x10; + else if (code == 0xFF) + code -= 0x60; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1252, Windows_1252) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1252", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + cp1252_mbc_case_fold, + cp1252_apply_all_case_fold, + cp1252_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + cp1252_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: windows-1252 + * MIBenum: 2251 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1252 + */ +ENC_ALIAS("CP1252", "Windows-1252") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1253.c b/src/fluent-bit/lib/onigmo/enc/windows_1253.c new file mode 100644 index 000000000..4a1b5e427 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1253.c @@ -0,0 +1,303 @@ +/********************************************************************** + windows_1253.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Name: windows-1253 + * MIBenum: 2253 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1253.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1253 + */ + +#include "regenc.h" + +#define ENC_CP1253_TO_LOWER_CASE(c) EncCP1253_ToLowerCaseTable[c] +#define ENC_IS_CP1253_CTYPE(code,ctype) \ + ((EncCP1253_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1253_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\334', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\354', '\334', '\267', + '\335', '\336', '\337', '\273', '\374', '\275', '\375', '\376', + '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\322', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncCP1253_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x34a2, 0x00a0, 0x0000, 0x0000, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x0000, 0x01a0, 0x00a0, 0x01a0, 0x0000, 0x01a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x34a2, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x10a0, 0x34a2, 0x34a2, + 0x30e2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x0000 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + *lower = ENC_CP1253_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, + const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + (*pp)++; + v = (EncCP1253_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + if (*p == 0xc0 || *p == 0xe0) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1253_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xb6, 0xdc }, + { 0xb8, 0xdd }, + { 0xb9, 0xde }, + { 0xba, 0xdf }, + { 0xbc, 0xfc }, + { 0xbe, 0xfd }, + { 0xbf, 0xfe }, + + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd7, 0xf7 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 0, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == 0xF2) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xD3; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xF3; + } + } + else if (code == 0xB5) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xCC; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + code = 0xEC; + } + } + else if (code == 0xC0 || code == 0xE0 || code == 0xB6) + ; + else if ((EncCP1253_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + code = ENC_CP1253_TO_LOWER_CASE(code); + } + else if ((EncCP1253_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 0xDC) + code = 0xA2; + else if (code >= 0xDD && code <= 0xDF) + code -= 0x25; + else if (code == 0xFC) + code = 0xBC; + else if (code == 0xFD || code == 0xFE) + code -= 0x3F; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1253, Windows_1253) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1253", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("CP1253", "Windows-1253") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1254.c b/src/fluent-bit/lib/onigmo/enc/windows_1254.c new file mode 100644 index 000000000..fbb19d756 --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1254.c @@ -0,0 +1,308 @@ +/********************************************************************** + windows_1254.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Name: windows-1254 + * MIBenum: 2254 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1254.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1254 + */ + +#include "regenc.h" +#include "iso_8859.h" + +#define ENC_CP1254_TO_LOWER_CASE(c) EncCP1254_ToLowerCaseTable[c] +#define ENC_IS_CP1254_CTYPE(code,ctype) \ + ((EncCP1254_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1254_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\232', '\213', '\234', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\377', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\151', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncCP1254_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x34a2, 0x0008, 0x34a2, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x30e2, 0x0008, 0x30e2, 0x0008, 0x0008, 0x34a2, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, + 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower, + OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_CP1254_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncCP1254_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf etc.. are lower case letter, but can't convert. */ + if (*p >= 0xaa && *p <= 0xba) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1254_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +#define DOTLESS_i (0xFD) +#define I_WITH_DOT_ABOVE (0xDD) +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if ((EncCP1254_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'I') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? DOTLESS_i : 'i'; + else + code = ENC_CP1254_TO_LOWER_CASE(code); + } + else if (code == 0x83 || code == 0xAA || code == 0xBA || code == 0xB5) + ; + else if ((EncCP1254_CtypeTable[code] & BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'i') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? I_WITH_DOT_ABOVE : 'I'; + else if (code == DOTLESS_i) + code = 'I'; + else if (code == 0x9A || code == 0x9C || code == 0x9E) + code -= 0x10; + else if (code == 0xFF) + code -= 0x60; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1254, Windows_1254) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1254", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("CP1254", "Windows-1254") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_1257.c b/src/fluent-bit/lib/onigmo/enc/windows_1257.c new file mode 100644 index 000000000..9f8d5bd7b --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_1257.c @@ -0,0 +1,310 @@ +/********************************************************************** + windows_1257.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" +#include "iso_8859.h" + +/* + * Name: windows-1257 + * MIBenum: 2257 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/sbcs/1257.mspx + * Link: http://en.wikipedia.org/wiki/Windows-1257 + */ + +#define ENC_CP1252_TO_LOWER_CASE(c) EncCP1252_ToLowerCaseTable[c] +#define ENC_IS_CP1252_CTYPE(code,ctype) \ + ((EncCP1252_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const UChar EncCP1252_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\270', '\251', '\272', '\253', '\254', '\255', '\256', '\277', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +static const unsigned short EncCP1252_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0, + 0x34a2, 0x00a0, 0x34a2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x34a2, + 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x00a0, 0x01a0, + 0x30e2, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x30e2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0 +}; + +static int +mbc_case_fold(OnigCaseFoldType flag, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower, OnigEncoding enc ARG_UNUSED) +{ + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + *lower++ = 's'; + *lower = 's'; + (*pp)++; + return 2; + } + + *lower = ENC_CP1252_TO_LOWER_CASE(*p); + (*pp)++; + return 1; +} + +#if 0 +static int +is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end) +{ + int v; + const UChar* p = *pp; + + if (*p == SHARP_s && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + (*pp)++; + return TRUE; + } + + (*pp)++; + v = (EncCP1252_CtypeTable[*p] & (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); + if ((v | BIT_CTYPE_LOWER) != 0) { + /* 0xdf, 0xb5 are lower case letter, but can't convert. */ + if (*p == 0xb5) + return FALSE; + else + return TRUE; + } + + return (v != 0 ? TRUE : FALSE); +} +#endif + +static int +is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED) +{ + if (code < 256) + return ENC_IS_CP1252_CTYPE(code, ctype); + else + return FALSE; +} + +static const OnigPairCaseFoldCodes CaseFoldMap[] = { + { 0xa8, 0xb8 }, + { 0xaa, 0xba }, + { 0xaf, 0xbf }, + + { 0xc0, 0xe0 }, + { 0xc1, 0xe1 }, + { 0xc2, 0xe2 }, + { 0xc3, 0xe3 }, + { 0xc4, 0xe4 }, + { 0xc5, 0xe5 }, + { 0xc6, 0xe6 }, + { 0xc7, 0xe7 }, + { 0xc8, 0xe8 }, + { 0xc9, 0xe9 }, + { 0xca, 0xea }, + { 0xcb, 0xeb }, + { 0xcc, 0xec }, + { 0xcd, 0xed }, + { 0xce, 0xee }, + { 0xcf, 0xef }, + + { 0xd0, 0xf0 }, + { 0xd1, 0xf1 }, + { 0xd2, 0xf2 }, + { 0xd3, 0xf3 }, + { 0xd4, 0xf4 }, + { 0xd5, 0xf5 }, + { 0xd6, 0xf6 }, + { 0xd8, 0xf8 }, + { 0xd9, 0xf9 }, + { 0xda, 0xfa }, + { 0xdb, 0xfb }, + { 0xdc, 0xfc }, + { 0xdd, 0xfd }, + { 0xde, 0xfe } +}; + +static int +apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg, + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_apply_all_case_fold_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, f, arg); +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[], + OnigEncoding enc ARG_UNUSED) +{ + return onigenc_get_case_fold_codes_by_str_with_map( + numberof(CaseFoldMap), CaseFoldMap, 1, + flag, p, end, items); +} + +#ifdef USE_CASE_MAP_API +#define DOTLESS_i (0xB9) +#define I_WITH_DOT_ABOVE (0xA9) +static int +case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, + const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, + const struct OnigEncodingTypeST* enc) +{ + OnigCodePoint code; + OnigUChar *to_start = to; + OnigCaseFoldType flags = *flagP; + + while (*pp < end && to < to_end) { + code = *(*pp)++; + if (code == SHARP_s) { + if (flags & ONIGENC_CASE_UPCASE) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 'S'; + code = (flags & ONIGENC_CASE_TITLECASE) ? 's' : 'S'; + } + else if (flags & ONIGENC_CASE_FOLD) { + flags |= ONIGENC_CASE_MODIFIED; + *to++ = 's'; + code = 's'; + } + } + else if (code == 0xB5) + ; + else if ((EncCP1252_CtypeTable[code] & BIT_CTYPE_UPPER) + && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'I') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? DOTLESS_i : 'i'; + else + code = ENC_CP1252_TO_LOWER_CASE(code); + } + else if ((EncCP1252_CtypeTable[code]&BIT_CTYPE_LOWER) + && (flags & ONIGENC_CASE_UPCASE)) { + flags |= ONIGENC_CASE_MODIFIED; + if (code == 'i') + code = flags & ONIGENC_CASE_FOLD_TURKISH_AZERI ? I_WITH_DOT_ABOVE : 'I'; + else if (code == DOTLESS_i) + code = 'I'; + else if (code >= 0xB0 && code <= 0xBF) + code -= 0x10; + else + code -= 0x20; + } + *to++ = code; + if (flags & ONIGENC_CASE_TITLECASE) /* switch from titlecase to lowercase for capitalize */ + flags ^= (ONIGENC_CASE_UPCASE | ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_TITLECASE); + } + *flagP = flags; + return (int )(to - to_start); +} +#endif + +OnigEncodingDefine(windows_1257, Windows_1257) = { + onigenc_single_byte_mbc_enc_len, + "Windows-1257", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +ENC_ALIAS("CP1257", "Windows-1257") diff --git a/src/fluent-bit/lib/onigmo/enc/windows_31j.c b/src/fluent-bit/lib/onigmo/enc/windows_31j.c new file mode 100644 index 000000000..0fd6d1e8f --- /dev/null +++ b/src/fluent-bit/lib/onigmo/enc/windows_31j.c @@ -0,0 +1,85 @@ +/********************************************************************** + windows_31j.c - Onigmo (Oniguruma-mod) (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2009 K.Kosako <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#define ENC_CP932 +#include "shift_jis.h" + +OnigEncodingDefine(windows_31j, Windows_31J) = { + mbc_enc_len, + "Windows-31J", /* name */ + 2, /* max byte length */ + 1, /* min byte length */ + onigenc_is_mbc_newline_0x0a, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + apply_all_case_fold, + get_case_fold_codes_by_str, + property_name_to_ctype, + is_code_ctype, + get_ctype_code_range, + left_adjust_char_head, + is_allowed_reverse_match, +#ifdef USE_CASE_MAP_API + onigenc_ascii_only_case_map, +#else + NULL, +#endif + 0, + ONIGENC_FLAG_NONE, +}; +/* + * Name: Windows-31J + * MIBenum: 2024 + * Link: http://www.iana.org/assignments/character-sets + * Link: http://www.microsoft.com/globaldev/reference/dbcs/932.mspx + * Link: http://ja.wikipedia.org/wiki/Windows-31J + * Link: http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-932-2000.ucm + * + * Windows Standard Character Set and its mapping to Unicode by Microsoft. + * Since 1.9.3, SJIS is the alias of Windows-31J because its character + * set is usually this one even if its mapping may differ. + */ +ENC_ALIAS("CP932", "Windows-31J") +ENC_ALIAS("csWindows31J", "Windows-31J") /* IANA. IE6 don't accept Windows-31J but csWindows31J. */ +ENC_ALIAS("SJIS", "Windows-31J") + +/* + * Name: PCK + * Link: http://download.oracle.com/docs/cd/E19253-01/819-0606/x-2chn0/index.html + * Link: http://download.oracle.com/docs/cd/E19253-01/819-0606/appb-pckwarn-1/index.html + * + * Solaris's SJIS variant. Its set is Windows Standard Character Set; it + * consists JIS X 0201 Latin (US-ASCII), JIS X 0201 Katakana, JIS X 0208, NEC + * special characters, NEC-selected IBM extended characters, and IBM extended + * characters. Solaris's iconv seems to use SJIS-open. + */ +ENC_ALIAS("PCK", "Windows-31J") |