From 450fd004b8f8358dc46e1bcc1bceae821f7ae158 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 5 Apr 2024 14:26:33 +0200 Subject: Add boolean properties to unicode/prop.h --- gen/prop/bool-props | 114 +++ gen/prop/bool-props.awk | 79 ++ include/unicode/prop.h | 54 +- lib/unicode/prop/uprop_is_ahex.c | 21 + lib/unicode/prop/uprop_is_alpha.c | 754 +++++++++++++++++ lib/unicode/prop/uprop_is_bidi_c.c | 25 + lib/unicode/prop/uprop_is_bidi_m.c | 133 +++ lib/unicode/prop/uprop_is_cased.c | 178 ++++ lib/unicode/prop/uprop_is_ci.c | 455 +++++++++++ lib/unicode/prop/uprop_is_cwcf.c | 646 +++++++++++++++ lib/unicode/prop/uprop_is_cwcm.c | 154 ++++ lib/unicode/prop/uprop_is_cwkcf.c | 856 ++++++++++++++++++++ lib/unicode/prop/uprop_is_cwl.c | 634 +++++++++++++++ lib/unicode/prop/uprop_is_cwt.c | 650 +++++++++++++++ lib/unicode/prop/uprop_is_cwu.c | 651 +++++++++++++++ lib/unicode/prop/uprop_is_dash.c | 50 ++ lib/unicode/prop/uprop_is_dep.c | 29 + lib/unicode/prop/uprop_is_di.c | 44 + lib/unicode/prop/uprop_is_dia.c | 217 +++++ lib/unicode/prop/uprop_is_ebase.c | 61 ++ lib/unicode/prop/uprop_is_ecomp.c | 35 + lib/unicode/prop/uprop_is_emod.c | 22 + lib/unicode/prop/uprop_is_emoji.c | 174 ++++ lib/unicode/prop/uprop_is_epres.c | 102 +++ lib/unicode/prop/uprop_is_ext.c | 60 ++ lib/unicode/prop/uprop_is_extpic.c | 104 +++ lib/unicode/prop/uprop_is_gr_base.c | 901 +++++++++++++++++++++ lib/unicode/prop/uprop_is_gr_ext.c | 384 +++++++++ lib/unicode/prop/uprop_is_hex.c | 31 + .../prop/uprop_is_id_compat_math_continue.c | 44 + lib/unicode/prop/uprop_is_id_compat_math_start.c | 34 + lib/unicode/prop/uprop_is_idbo.c | 24 + lib/unicode/prop/uprop_is_idc.c | 787 ++++++++++++++++++ lib/unicode/prop/uprop_is_ideo.c | 42 + lib/unicode/prop/uprop_is_ids.c | 681 ++++++++++++++++ lib/unicode/prop/uprop_is_incb.c | 221 +++++ lib/unicode/prop/uprop_is_loe.c | 28 + lib/unicode/prop/uprop_is_lower.c | 693 ++++++++++++++++ lib/unicode/prop/uprop_is_math.c | 157 ++++ lib/unicode/prop/uprop_is_pat_syn.c | 41 + lib/unicode/prop/uprop_is_pcm.c | 28 + lib/unicode/prop/uprop_is_qmark.c | 37 + lib/unicode/prop/uprop_is_radical.c | 24 + lib/unicode/prop/uprop_is_sd.c | 61 ++ lib/unicode/prop/uprop_is_sterm.c | 106 +++ lib/unicode/prop/uprop_is_term.c | 131 +++ lib/unicode/prop/uprop_is_uideo.c | 38 + lib/unicode/prop/uprop_is_upper.c | 676 ++++++++++++++++ lib/unicode/prop/uprop_is_vs.c | 25 + lib/unicode/prop/uprop_is_wspace.c | 34 + lib/unicode/prop/uprop_is_xidc.c | 794 ++++++++++++++++++ lib/unicode/prop/uprop_is_xids.c | 688 ++++++++++++++++ 52 files changed, 13011 insertions(+), 1 deletion(-) create mode 100755 gen/prop/bool-props create mode 100644 gen/prop/bool-props.awk create mode 100644 lib/unicode/prop/uprop_is_ahex.c create mode 100644 lib/unicode/prop/uprop_is_alpha.c create mode 100644 lib/unicode/prop/uprop_is_bidi_c.c create mode 100644 lib/unicode/prop/uprop_is_bidi_m.c create mode 100644 lib/unicode/prop/uprop_is_cased.c create mode 100644 lib/unicode/prop/uprop_is_ci.c create mode 100644 lib/unicode/prop/uprop_is_cwcf.c create mode 100644 lib/unicode/prop/uprop_is_cwcm.c create mode 100644 lib/unicode/prop/uprop_is_cwkcf.c create mode 100644 lib/unicode/prop/uprop_is_cwl.c create mode 100644 lib/unicode/prop/uprop_is_cwt.c create mode 100644 lib/unicode/prop/uprop_is_cwu.c create mode 100644 lib/unicode/prop/uprop_is_dash.c create mode 100644 lib/unicode/prop/uprop_is_dep.c create mode 100644 lib/unicode/prop/uprop_is_di.c create mode 100644 lib/unicode/prop/uprop_is_dia.c create mode 100644 lib/unicode/prop/uprop_is_ebase.c create mode 100644 lib/unicode/prop/uprop_is_ecomp.c create mode 100644 lib/unicode/prop/uprop_is_emod.c create mode 100644 lib/unicode/prop/uprop_is_emoji.c create mode 100644 lib/unicode/prop/uprop_is_epres.c create mode 100644 lib/unicode/prop/uprop_is_ext.c create mode 100644 lib/unicode/prop/uprop_is_extpic.c create mode 100644 lib/unicode/prop/uprop_is_gr_base.c create mode 100644 lib/unicode/prop/uprop_is_gr_ext.c create mode 100644 lib/unicode/prop/uprop_is_hex.c create mode 100644 lib/unicode/prop/uprop_is_id_compat_math_continue.c create mode 100644 lib/unicode/prop/uprop_is_id_compat_math_start.c create mode 100644 lib/unicode/prop/uprop_is_idbo.c create mode 100644 lib/unicode/prop/uprop_is_idc.c create mode 100644 lib/unicode/prop/uprop_is_ideo.c create mode 100644 lib/unicode/prop/uprop_is_ids.c create mode 100644 lib/unicode/prop/uprop_is_incb.c create mode 100644 lib/unicode/prop/uprop_is_loe.c create mode 100644 lib/unicode/prop/uprop_is_lower.c create mode 100644 lib/unicode/prop/uprop_is_math.c create mode 100644 lib/unicode/prop/uprop_is_pat_syn.c create mode 100644 lib/unicode/prop/uprop_is_pcm.c create mode 100644 lib/unicode/prop/uprop_is_qmark.c create mode 100644 lib/unicode/prop/uprop_is_radical.c create mode 100644 lib/unicode/prop/uprop_is_sd.c create mode 100644 lib/unicode/prop/uprop_is_sterm.c create mode 100644 lib/unicode/prop/uprop_is_term.c create mode 100644 lib/unicode/prop/uprop_is_uideo.c create mode 100644 lib/unicode/prop/uprop_is_upper.c create mode 100644 lib/unicode/prop/uprop_is_vs.c create mode 100644 lib/unicode/prop/uprop_is_wspace.c create mode 100644 lib/unicode/prop/uprop_is_xidc.c create mode 100644 lib/unicode/prop/uprop_is_xids.c diff --git a/gen/prop/bool-props b/gen/prop/bool-props new file mode 100755 index 0000000..261caa6 --- /dev/null +++ b/gen/prop/bool-props @@ -0,0 +1,114 @@ +#!/bin/sh + +set -e +cd "${0%/*}/../.." + +props1=' +ahex=ASCII_Hex_Digit +bidi_c=Bidi_Control +dash=Dash +dep=Deprecated +dia=Diacritic +ext=Extender +hex=Hex_Digit +idbo=IDS_Binary_Operator +id_compat_math_continue=ID_Compat_Math_Continue +id_compat_math_start=ID_Compat_Math_Start +ideo=Ideographic +loe=Logical_Order_Exception +pat_syn=Pattern_Syntax +pcm=Prepended_Concatenation_Mark +qmark=Quotation_Mark +radical=Radical +sd=Soft_Dotted +sterm=Sentence_Terminal +term=Terminal_Punctuation +uideo=Unified_Ideograph +vs=Variation_Selector +wspace=White_Space +' + +props2=' +alpha=Alphabetic +cased=Cased +ci=Case_Ignorable +cwcf=Changes_When_Casefolded +cwcm=Changes_When_Casemapped +cwl=Changes_When_Lowercased +cwt=Changes_When_Titlecased +cwu=Changes_When_Uppercased +di=Default_Ignorable_Code_Point +gr_base=Grapheme_Base +gr_ext=Grapheme_Extend +idc=ID_Continue +ids=ID_Start +incb=Indic_Conjunct_Break +lower=Lowercase +math=Math +upper=Uppercase +xidc=XID_Continue +xids=XID_Start +' + +props3=' +ebase=Emoji_Modifier_Base +ecomp=Emoji_Component +emod=Emoji_Modifier +emoji=Emoji +epres=Emoji_Presentation +extpic=Extended_Pictographic +' + +props4=' +cwkcf=Changes_When_NFKC_Casefolded +' + +props5=' +bidi_m=Bidi_Mirrored +' + +manual=' +idst=IDS_Trinary_Operator +idsu=IDS_Unary_Operator +join_c=Join_Control +nchar=Noncharacter_Code_Point +pat_ws=Pattern_White_Space +ri=Regional_Indicator +' + +gen() +{ + local p=${1%%=*} + gawk -M -v prop=${1#*=} -v short=$p \ + -f gen/prop/bool-props.awk data/$2 \ + >lib/unicode/prop/uprop_is_${p}.c + printf 'DONE uprop_is_%s()\n' $p >&2 +} + +for prop in $props1; do gen $prop PropList.txt & done +for prop in $props2; do gen $prop DerivedCoreProperties.txt & done +for prop in $props3; do gen $prop emoji-data.txt & done +for prop in $props4; do gen $prop DerivedNormalizationProps.txt & done +for prop in $props5; do gen $prop DerivedBinaryProperties.txt & done + +printf '[[__nodiscard__, __unsequenced__]] bool uprop_is_%s(rune);\n' \ + $(printf '%s\n' $props1 $props2 $props3 $props4 $props5 | cut -d= -f1) \ +| gawk ' + /PROP PREDICATES END/ { no = 0 } + FILENAME != "-" && !no { print } + FILENAME == "-" { funcs[++i] = $0 } + + /PROP PREDICATES START/ { + no = 1 + asort(funcs) + for (i = 1; i <= length(funcs); i++) + print funcs[i] + } +' - include/unicode/prop.h | sponge include/unicode/prop.h + +wait +for prop in $manual +do + shrt=${prop%%=*} + printf 'Function uprop_is_%s() implemented manually\n' $shrt >&2 +done diff --git a/gen/prop/bool-props.awk b/gen/prop/bool-props.awk new file mode 100644 index 0000000..d9c6299 --- /dev/null +++ b/gen/prop/bool-props.awk @@ -0,0 +1,79 @@ +BEGIN { + FS = "( *#.*| +; +)" + + print "/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */" + print "" + print "#include \"__bsearch.h\"" + print "#include \"bitset.h\"" + print "#include \"rune.h\"" + print "#include \"unicode/prop.h\"" + print "" + print "/* clang-format off */" + print "" +} + +$2 == prop || (prop == "Indic_Conjunct_Break" && $2 ~ /InCB;/) { + n = split($1, a, /\.\./) + lo = strtonum("0x" a[1]) + hi = strtonum("0x" a[n]) + + for (i = lo; i <= hi; i++) + xs[i] = 1 +} + +END { + for (i = 0; i <= 0xFF; i++) { + if (xs[i]) + mask = or(mask, lshift(1, i)) + } + + if (mask > 0) { + print "static constexpr bitset(bs, LATIN1_MAX) = {" + for (i = 0; i < 32; i++) { + if (i % 8 == 0) + printf "\t" + printf "0x%02X,", and(rshift(mask, 8 * i), 0xFF) + printf((i % 8 == 7) ? "\n" : " ") + } + print "};" + print "" + } + + for (i = 0x100; i <= 0x10FFFF; i++) { + if (xs[i]) { + need_big_lookup = 1 + break + } + } + + if (need_big_lookup) { + print "static const struct {" + print "\trune lo, hi;" + print "} lookup[] = {" + + for (i = 0x100; i <= 0x10FFFF; i++) { + if (!xs[i]) + continue + lo = i + while (xs[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", lo, i + } + + print "};" + print "" + print "__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)" + print "" + } + + print "bool" + printf "uprop_is_%s(rune ch)\n", short + print "{" + if (mask > 0 && need_big_lookup) + print "\treturn ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);" + else if (need_big_lookup) + print "\treturn mlib_lookup_contains(ch);" + else + print "\treturn ch <= LATIN1_MAX && TESTBIT(bs, ch);" + print "}" +} diff --git a/include/unicode/prop.h b/include/unicode/prop.h index e3a31ad..291d41b 100644 --- a/include/unicode/prop.h +++ b/include/unicode/prop.h @@ -48,6 +48,58 @@ enum [[clang::flag_enum]] uprop_gc : uint_fast32_t { GC_Z = GC_ZL | GC_ZP | GC_ZS, /* Separator */ }; -enum uprop_gc uprop_get_gc(rune); +[[__nodiscard__, __unsequenced__]] enum uprop_gc uprop_get_gc(rune); + +/* PROP PREDICATES START */ +[[__nodiscard__, __unsequenced__]] bool uprop_is_ahex(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_alpha(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_c(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_m(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cased(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ci(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcf(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcm(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwkcf(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwl(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwt(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_cwu(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_dash(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_dep(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_di(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_dia(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ebase(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ecomp(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_emod(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_emoji(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_epres(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ext(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_extpic(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_base(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_ext(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_hex(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_continue(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_start(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_idbo(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_idc(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ideo(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_ids(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_incb(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_loe(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_lower(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_math(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_pat_syn(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_pcm(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_qmark(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_radical(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_sd(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_sterm(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_term(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_uideo(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_upper(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_vs(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_wspace(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_xidc(rune); +[[__nodiscard__, __unsequenced__]] bool uprop_is_xids(rune); +/* PROP PREDICATES END */ #endif /* !MLIB_UNICODE_PROP_H */ diff --git a/lib/unicode/prop/uprop_is_ahex.c b/lib/unicode/prop/uprop_is_ahex.c new file mode 100644 index 0000000..21dcd97 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ahex.c @@ -0,0 +1,21 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +bool +uprop_is_ahex(rune ch) +{ + return ch <= LATIN1_MAX && TESTBIT(bs, ch); +} diff --git a/lib/unicode/prop/uprop_is_alpha.c b/lib/unicode/prop/uprop_is_alpha.c new file mode 100644 index 0000000..f5328b4 --- /dev/null +++ b/lib/unicode/prop/uprop_is_alpha.c @@ -0,0 +1,754 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005B0), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000657)}, + {RUNE_C(0x000659), RUNE_C(0x00065F)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006E1), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006ED), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00073F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000817)}, + {RUNE_C(0x00081A), RUNE_C(0x00082C)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x0008D4), RUNE_C(0x0008DF)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008E9)}, + {RUNE_C(0x0008F0), RUNE_C(0x00093B)}, + {RUNE_C(0x00093D), RUNE_C(0x00094C)}, + {RUNE_C(0x00094E), RUNE_C(0x000950)}, + {RUNE_C(0x000955), RUNE_C(0x000963)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4C)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A70), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFC)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C)}, + {RUNE_C(0x000B56), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4C)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCC)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E4D), RUNE_C(0x000E4D)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB9)}, + {RUNE_C(0x000EBB), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000ECD), RUNE_C(0x000ECD)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F83)}, + {RUNE_C(0x000F88), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x001000), RUNE_C(0x001036)}, + {RUNE_C(0x001038), RUNE_C(0x001038)}, + {RUNE_C(0x00103B), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x00108F)}, + {RUNE_C(0x00109A), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001713)}, + {RUNE_C(0x00171F), RUNE_C(0x001733)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017B6), RUNE_C(0x0017C8)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x001938)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A61), RUNE_C(0x001A74)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001ABF), RUNE_C(0x001AC0)}, + {RUNE_C(0x001ACC), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B33)}, + {RUNE_C(0x001B35), RUNE_C(0x001B43)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B80), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAC), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001BE7), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C00), RUNE_C(0x001C36)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001DE7), RUNE_C(0x001DF4)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67B)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A827)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C3)}, + {RUNE_C(0x00A8C5), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A92A)}, + {RUNE_C(0x00A930), RUNE_C(0x00A952)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9BF)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AABE)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF5)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011045)}, + {RUNE_C(0x011071), RUNE_C(0x011075)}, + {RUNE_C(0x011080), RUNE_C(0x0110B8)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011100), RUNE_C(0x011132)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111BF)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111CF)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011234)}, + {RUNE_C(0x011237), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112E8)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134C)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011400), RUNE_C(0x011441)}, + {RUNE_C(0x011443), RUNE_C(0x011445)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C1)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x01163E)}, + {RUNE_C(0x011640), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x011838)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193F), RUNE_C(0x011942)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DF)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A32)}, + {RUNE_C(0x011A35), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A50), RUNE_C(0x011A97)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D41)}, + {RUNE_C(0x011D43), RUNE_C(0x011D43)}, + {RUNE_C(0x011D46), RUNE_C(0x011D47)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D96)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F40)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E947), RUNE_C(0x01E947)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_alpha(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_bidi_c.c b/lib/unicode/prop/uprop_is_bidi_c.c new file mode 100644 index 0000000..962c219 --- /dev/null +++ b/lib/unicode/prop/uprop_is_bidi_c.c @@ -0,0 +1,25 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x00200E), RUNE_C(0x00200F)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002066), RUNE_C(0x002069)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_bidi_c(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_bidi_m.c b/lib/unicode/prop/uprop_is_bidi_m.c new file mode 100644 index 0000000..f415fce --- /dev/null +++ b/lib/unicode/prop/uprop_is_bidi_m.c @@ -0,0 +1,133 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000F3A), RUNE_C(0x000F3D)}, + {RUNE_C(0x00169B), RUNE_C(0x00169C)}, + {RUNE_C(0x002039), RUNE_C(0x00203A)}, + {RUNE_C(0x002045), RUNE_C(0x002046)}, + {RUNE_C(0x00207D), RUNE_C(0x00207E)}, + {RUNE_C(0x00208D), RUNE_C(0x00208E)}, + {RUNE_C(0x002140), RUNE_C(0x002140)}, + {RUNE_C(0x002201), RUNE_C(0x002204)}, + {RUNE_C(0x002208), RUNE_C(0x00220D)}, + {RUNE_C(0x002211), RUNE_C(0x002211)}, + {RUNE_C(0x002215), RUNE_C(0x002216)}, + {RUNE_C(0x00221A), RUNE_C(0x00221D)}, + {RUNE_C(0x00221F), RUNE_C(0x002222)}, + {RUNE_C(0x002224), RUNE_C(0x002224)}, + {RUNE_C(0x002226), RUNE_C(0x002226)}, + {RUNE_C(0x00222B), RUNE_C(0x002233)}, + {RUNE_C(0x002239), RUNE_C(0x002239)}, + {RUNE_C(0x00223B), RUNE_C(0x00224C)}, + {RUNE_C(0x002252), RUNE_C(0x002255)}, + {RUNE_C(0x00225F), RUNE_C(0x002260)}, + {RUNE_C(0x002262), RUNE_C(0x002262)}, + {RUNE_C(0x002264), RUNE_C(0x00226B)}, + {RUNE_C(0x00226E), RUNE_C(0x00228C)}, + {RUNE_C(0x00228F), RUNE_C(0x002292)}, + {RUNE_C(0x002298), RUNE_C(0x002298)}, + {RUNE_C(0x0022A2), RUNE_C(0x0022A3)}, + {RUNE_C(0x0022A6), RUNE_C(0x0022B8)}, + {RUNE_C(0x0022BE), RUNE_C(0x0022BF)}, + {RUNE_C(0x0022C9), RUNE_C(0x0022CD)}, + {RUNE_C(0x0022D0), RUNE_C(0x0022D1)}, + {RUNE_C(0x0022D6), RUNE_C(0x0022ED)}, + {RUNE_C(0x0022F0), RUNE_C(0x0022FF)}, + {RUNE_C(0x002308), RUNE_C(0x00230B)}, + {RUNE_C(0x002320), RUNE_C(0x002321)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x002768), RUNE_C(0x002775)}, + {RUNE_C(0x0027C0), RUNE_C(0x0027C0)}, + {RUNE_C(0x0027C3), RUNE_C(0x0027C6)}, + {RUNE_C(0x0027C8), RUNE_C(0x0027C9)}, + {RUNE_C(0x0027CB), RUNE_C(0x0027CD)}, + {RUNE_C(0x0027D3), RUNE_C(0x0027D6)}, + {RUNE_C(0x0027DC), RUNE_C(0x0027DE)}, + {RUNE_C(0x0027E2), RUNE_C(0x0027EF)}, + {RUNE_C(0x002983), RUNE_C(0x002998)}, + {RUNE_C(0x00299B), RUNE_C(0x0029A0)}, + {RUNE_C(0x0029A2), RUNE_C(0x0029AF)}, + {RUNE_C(0x0029B8), RUNE_C(0x0029B8)}, + {RUNE_C(0x0029C0), RUNE_C(0x0029C5)}, + {RUNE_C(0x0029C9), RUNE_C(0x0029C9)}, + {RUNE_C(0x0029CE), RUNE_C(0x0029D2)}, + {RUNE_C(0x0029D4), RUNE_C(0x0029D5)}, + {RUNE_C(0x0029D8), RUNE_C(0x0029DC)}, + {RUNE_C(0x0029E1), RUNE_C(0x0029E1)}, + {RUNE_C(0x0029E3), RUNE_C(0x0029E5)}, + {RUNE_C(0x0029E8), RUNE_C(0x0029E9)}, + {RUNE_C(0x0029F4), RUNE_C(0x0029F9)}, + {RUNE_C(0x0029FC), RUNE_C(0x0029FD)}, + {RUNE_C(0x002A0A), RUNE_C(0x002A1C)}, + {RUNE_C(0x002A1E), RUNE_C(0x002A21)}, + {RUNE_C(0x002A24), RUNE_C(0x002A24)}, + {RUNE_C(0x002A26), RUNE_C(0x002A26)}, + {RUNE_C(0x002A29), RUNE_C(0x002A29)}, + {RUNE_C(0x002A2B), RUNE_C(0x002A2E)}, + {RUNE_C(0x002A34), RUNE_C(0x002A35)}, + {RUNE_C(0x002A3C), RUNE_C(0x002A3E)}, + {RUNE_C(0x002A57), RUNE_C(0x002A58)}, + {RUNE_C(0x002A64), RUNE_C(0x002A65)}, + {RUNE_C(0x002A6A), RUNE_C(0x002A6D)}, + {RUNE_C(0x002A6F), RUNE_C(0x002A70)}, + {RUNE_C(0x002A73), RUNE_C(0x002A74)}, + {RUNE_C(0x002A79), RUNE_C(0x002AA3)}, + {RUNE_C(0x002AA6), RUNE_C(0x002AAD)}, + {RUNE_C(0x002AAF), RUNE_C(0x002AD6)}, + {RUNE_C(0x002ADC), RUNE_C(0x002ADC)}, + {RUNE_C(0x002ADE), RUNE_C(0x002ADE)}, + {RUNE_C(0x002AE2), RUNE_C(0x002AE6)}, + {RUNE_C(0x002AEC), RUNE_C(0x002AEE)}, + {RUNE_C(0x002AF3), RUNE_C(0x002AF3)}, + {RUNE_C(0x002AF7), RUNE_C(0x002AFB)}, + {RUNE_C(0x002AFD), RUNE_C(0x002AFD)}, + {RUNE_C(0x002BFE), RUNE_C(0x002BFE)}, + {RUNE_C(0x002E02), RUNE_C(0x002E05)}, + {RUNE_C(0x002E09), RUNE_C(0x002E0A)}, + {RUNE_C(0x002E0C), RUNE_C(0x002E0D)}, + {RUNE_C(0x002E1C), RUNE_C(0x002E1D)}, + {RUNE_C(0x002E20), RUNE_C(0x002E29)}, + {RUNE_C(0x002E55), RUNE_C(0x002E5C)}, + {RUNE_C(0x003008), RUNE_C(0x003011)}, + {RUNE_C(0x003014), RUNE_C(0x00301B)}, + {RUNE_C(0x00FE59), RUNE_C(0x00FE5E)}, + {RUNE_C(0x00FE64), RUNE_C(0x00FE65)}, + {RUNE_C(0x00FF08), RUNE_C(0x00FF09)}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1C)}, + {RUNE_C(0x00FF1E), RUNE_C(0x00FF1E)}, + {RUNE_C(0x00FF3B), RUNE_C(0x00FF3B)}, + {RUNE_C(0x00FF3D), RUNE_C(0x00FF3D)}, + {RUNE_C(0x00FF5B), RUNE_C(0x00FF5B)}, + {RUNE_C(0x00FF5D), RUNE_C(0x00FF5D)}, + {RUNE_C(0x00FF5F), RUNE_C(0x00FF60)}, + {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_bidi_m(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cased.c b/lib/unicode/prop/uprop_is_cased.c new file mode 100644 index 0000000..ee0b288 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cased.c @@ -0,0 +1,178 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0001BA)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x000293)}, + {RUNE_C(0x000295), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002C0), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000373)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002134)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002184)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A680), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A722), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78E)}, + {RUNE_C(0x00A790), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010400), RUNE_C(0x01044F)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010780), RUNE_C(0x010780)}, + {RUNE_C(0x010783), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF09)}, + {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cased(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ci.c b/lib/unicode/prop/uprop_is_ci.c new file mode 100644 index 0000000..43f0e11 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ci.c @@ -0,0 +1,455 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x90, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x0002B0), RUNE_C(0x00036F)}, + {RUNE_C(0x000374), RUNE_C(0x000375)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x000384), RUNE_C(0x000385)}, + {RUNE_C(0x000387), RUNE_C(0x000387)}, + {RUNE_C(0x000483), RUNE_C(0x000489)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x00055F), RUNE_C(0x00055F)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005F4), RUNE_C(0x0005F4)}, + {RUNE_C(0x000600), RUNE_C(0x000605)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x000640), RUNE_C(0x000640)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DD)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x00070F), RUNE_C(0x00070F)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000888), RUNE_C(0x000888)}, + {RUNE_C(0x000890), RUNE_C(0x000891)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008C9), RUNE_C(0x000902)}, + {RUNE_C(0x00093A), RUNE_C(0x00093A)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x000941), RUNE_C(0x000948)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000957)}, + {RUNE_C(0x000962), RUNE_C(0x000963)}, + {RUNE_C(0x000971), RUNE_C(0x000971)}, + {RUNE_C(0x000981), RUNE_C(0x000981)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A02)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A41), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A70), RUNE_C(0x000A71)}, + {RUNE_C(0x000A75), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A82)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B01)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B3F), RUNE_C(0x000B3F)}, + {RUNE_C(0x000B41), RUNE_C(0x000B44)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B56)}, + {RUNE_C(0x000B62), RUNE_C(0x000B63)}, + {RUNE_C(0x000B82), RUNE_C(0x000B82)}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000C00), RUNE_C(0x000C00)}, + {RUNE_C(0x000C04), RUNE_C(0x000C04)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C62), RUNE_C(0x000C63)}, + {RUNE_C(0x000C81), RUNE_C(0x000C81)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6)}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D01)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D41), RUNE_C(0x000D44)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000D62), RUNE_C(0x000D63)}, + {RUNE_C(0x000D81), RUNE_C(0x000D81)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000E31), RUNE_C(0x000E31)}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E46), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1)}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E)}, + {RUNE_C(0x000F80), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x00102D), RUNE_C(0x001030)}, + {RUNE_C(0x001032), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00103D), RUNE_C(0x00103E)}, + {RUNE_C(0x001058), RUNE_C(0x001059)}, + {RUNE_C(0x00105E), RUNE_C(0x001060)}, + {RUNE_C(0x001071), RUNE_C(0x001074)}, + {RUNE_C(0x001082), RUNE_C(0x001082)}, + {RUNE_C(0x001085), RUNE_C(0x001086)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00109D), RUNE_C(0x00109D)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001712), RUNE_C(0x001714)}, + {RUNE_C(0x001732), RUNE_C(0x001733)}, + {RUNE_C(0x001752), RUNE_C(0x001753)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD)}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x001843), RUNE_C(0x001843)}, + {RUNE_C(0x001885), RUNE_C(0x001886)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001920), RUNE_C(0x001922)}, + {RUNE_C(0x001927), RUNE_C(0x001928)}, + {RUNE_C(0x001932), RUNE_C(0x001932)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A56), RUNE_C(0x001A56)}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A62), RUNE_C(0x001A62)}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C)}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B03)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B36), RUNE_C(0x001B3A)}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C)}, + {RUNE_C(0x001B42), RUNE_C(0x001B42)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001B81)}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5)}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9)}, + {RUNE_C(0x001BED), RUNE_C(0x001BED)}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001C78), RUNE_C(0x001C7D)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D6A)}, + {RUNE_C(0x001D78), RUNE_C(0x001D78)}, + {RUNE_C(0x001D9B), RUNE_C(0x001DFF)}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD)}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC1)}, + {RUNE_C(0x001FCD), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FED), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FFD), RUNE_C(0x001FFE)}, + {RUNE_C(0x00200B), RUNE_C(0x00200F)}, + {RUNE_C(0x002018), RUNE_C(0x002019)}, + {RUNE_C(0x002024), RUNE_C(0x002024)}, + {RUNE_C(0x002027), RUNE_C(0x002027)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002060), RUNE_C(0x002064)}, + {RUNE_C(0x002066), RUNE_C(0x00206F)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020F0)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7D)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x003005), RUNE_C(0x003005)}, + {RUNE_C(0x00302A), RUNE_C(0x00302D)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x00303B), RUNE_C(0x00303B)}, + {RUNE_C(0x003099), RUNE_C(0x00309E)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FE)}, + {RUNE_C(0x00A015), RUNE_C(0x00A015)}, + {RUNE_C(0x00A4F8), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A60C), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A672)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A67F)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A700), RUNE_C(0x00A721)}, + {RUNE_C(0x00A770), RUNE_C(0x00A770)}, + {RUNE_C(0x00A788), RUNE_C(0x00A78A)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00A802), RUNE_C(0x00A802)}, + {RUNE_C(0x00A806), RUNE_C(0x00A806)}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B)}, + {RUNE_C(0x00A825), RUNE_C(0x00A826)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A947), RUNE_C(0x00A951)}, + {RUNE_C(0x00A980), RUNE_C(0x00A982)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E6)}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32)}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43)}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)}, + {RUNE_C(0x00AA70), RUNE_C(0x00AA70)}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AADD), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)}, + {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FBB2), RUNE_C(0x00FBC2)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE13), RUNE_C(0x00FE13)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE52), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE55), RUNE_C(0x00FE55)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FF07), RUNE_C(0x00FF07)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1A)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF40)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)}, + {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010A01), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011001), RUNE_C(0x011001)}, + {RUNE_C(0x011038), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x011073), RUNE_C(0x011074)}, + {RUNE_C(0x01107F), RUNE_C(0x011081)}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110BD), RUNE_C(0x0110BD)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110CD), RUNE_C(0x0110CD)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011127), RUNE_C(0x01112B)}, + {RUNE_C(0x01112D), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x011180), RUNE_C(0x011181)}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF)}, + {RUNE_C(0x01122F), RUNE_C(0x011231)}, + {RUNE_C(0x011234), RUNE_C(0x011234)}, + {RUNE_C(0x011236), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x01123E)}, + {RUNE_C(0x011241), RUNE_C(0x011241)}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF)}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA)}, + {RUNE_C(0x011300), RUNE_C(0x011301)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x011340), RUNE_C(0x011340)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011438), RUNE_C(0x01143F)}, + {RUNE_C(0x011442), RUNE_C(0x011444)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8)}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA)}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD)}, + {RUNE_C(0x011633), RUNE_C(0x01163A)}, + {RUNE_C(0x01163D), RUNE_C(0x01163D)}, + {RUNE_C(0x01163F), RUNE_C(0x011640)}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB)}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD)}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01171D), RUNE_C(0x01171F)}, + {RUNE_C(0x011722), RUNE_C(0x011725)}, + {RUNE_C(0x011727), RUNE_C(0x01172B)}, + {RUNE_C(0x01182F), RUNE_C(0x011837)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A)}, + {RUNE_C(0x011A33), RUNE_C(0x011A38)}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A51), RUNE_C(0x011A56)}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B)}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96)}, + {RUNE_C(0x011A98), RUNE_C(0x011A99)}, + {RUNE_C(0x011C30), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0)}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3)}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D31), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45)}, + {RUNE_C(0x011D47), RUNE_C(0x011D47)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D95), RUNE_C(0x011D95)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4)}, + {RUNE_C(0x011F00), RUNE_C(0x011F01)}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F40), RUNE_C(0x011F40)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x013430), RUNE_C(0x013440)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D173), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EB), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94B)}, + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ci(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwcf.c b/lib/unicode/prop/uprop_is_cwcf.c new file mode 100644 index 0000000..beefb71 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwcf.c @@ -0,0 +1,646 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x000149), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x00017F), RUNE_C(0x00017F)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C5)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C8)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CB)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F2)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003C2), RUNE_C(0x0003C2)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D6)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000587), RUNE_C(0x000587)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9A), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F80), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB2), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB7), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC7), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF7), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwcf(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwcm.c b/lib/unicode/prop/uprop_is_cwcm.c new file mode 100644 index 0000000..b031ce3 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwcm.c @@ -0,0 +1,154 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x000137)}, + {RUNE_C(0x000139), RUNE_C(0x00018C)}, + {RUNE_C(0x00018E), RUNE_C(0x00019A)}, + {RUNE_C(0x00019C), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000233)}, + {RUNE_C(0x00023A), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000373)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003FB)}, + {RUNE_C(0x0003FD), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FD), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E00), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002184)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C73)}, + {RUNE_C(0x002C75), RUNE_C(0x002C76)}, + {RUNE_C(0x002C7E), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A680), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A722), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A732), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A779), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A794)}, + {RUNE_C(0x00A796), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010400), RUNE_C(0x01044F)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwcm(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwkcf.c b/lib/unicode/prop/uprop_is_cwkcf.c new file mode 100644 index 0000000..33a7c48 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwkcf.c @@ -0,0 +1,856 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xA5, 0x3C, 0x77, + 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x000149), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x00017F), RUNE_C(0x00017F)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x0002B0), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002D8), RUNE_C(0x0002DD)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000340), RUNE_C(0x000341)}, + {RUNE_C(0x000343), RUNE_C(0x000345)}, + {RUNE_C(0x00034F), RUNE_C(0x00034F)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000374), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x00037E), RUNE_C(0x00037F)}, + {RUNE_C(0x000384), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003C2), RUNE_C(0x0003C2)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003D6)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F2)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000587), RUNE_C(0x000587)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x000675), RUNE_C(0x000678)}, + {RUNE_C(0x000958), RUNE_C(0x00095F)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF)}, + {RUNE_C(0x000A33), RUNE_C(0x000A33)}, + {RUNE_C(0x000A36), RUNE_C(0x000A36)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5B)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000E33), RUNE_C(0x000E33)}, + {RUNE_C(0x000EB3), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDD)}, + {RUNE_C(0x000F0C), RUNE_C(0x000F0C)}, + {RUNE_C(0x000F43), RUNE_C(0x000F43)}, + {RUNE_C(0x000F4D), RUNE_C(0x000F4D)}, + {RUNE_C(0x000F52), RUNE_C(0x000F52)}, + {RUNE_C(0x000F57), RUNE_C(0x000F57)}, + {RUNE_C(0x000F5C), RUNE_C(0x000F5C)}, + {RUNE_C(0x000F69), RUNE_C(0x000F69)}, + {RUNE_C(0x000F73), RUNE_C(0x000F73)}, + {RUNE_C(0x000F75), RUNE_C(0x000F79)}, + {RUNE_C(0x000F81), RUNE_C(0x000F81)}, + {RUNE_C(0x000F93), RUNE_C(0x000F93)}, + {RUNE_C(0x000F9D), RUNE_C(0x000F9D)}, + {RUNE_C(0x000FA2), RUNE_C(0x000FA2)}, + {RUNE_C(0x000FA7), RUNE_C(0x000FA7)}, + {RUNE_C(0x000FAC), RUNE_C(0x000FAC)}, + {RUNE_C(0x000FB9), RUNE_C(0x000FB9)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC)}, + {RUNE_C(0x00115F), RUNE_C(0x001160)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D2E)}, + {RUNE_C(0x001D30), RUNE_C(0x001D3A)}, + {RUNE_C(0x001D3C), RUNE_C(0x001D4D)}, + {RUNE_C(0x001D4F), RUNE_C(0x001D6A)}, + {RUNE_C(0x001D78), RUNE_C(0x001D78)}, + {RUNE_C(0x001D9B), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9A), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F71), RUNE_C(0x001F71)}, + {RUNE_C(0x001F73), RUNE_C(0x001F73)}, + {RUNE_C(0x001F75), RUNE_C(0x001F75)}, + {RUNE_C(0x001F77), RUNE_C(0x001F77)}, + {RUNE_C(0x001F79), RUNE_C(0x001F79)}, + {RUNE_C(0x001F7B), RUNE_C(0x001F7B)}, + {RUNE_C(0x001F7D), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB2), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB7), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC7), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FD3), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FE3), RUNE_C(0x001FE3)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF7), RUNE_C(0x001FFE)}, + {RUNE_C(0x002000), RUNE_C(0x00200F)}, + {RUNE_C(0x002011), RUNE_C(0x002011)}, + {RUNE_C(0x002017), RUNE_C(0x002017)}, + {RUNE_C(0x002024), RUNE_C(0x002026)}, + {RUNE_C(0x00202A), RUNE_C(0x00202F)}, + {RUNE_C(0x002033), RUNE_C(0x002034)}, + {RUNE_C(0x002036), RUNE_C(0x002037)}, + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x00203E), RUNE_C(0x00203E)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002057), RUNE_C(0x002057)}, + {RUNE_C(0x00205F), RUNE_C(0x002071)}, + {RUNE_C(0x002074), RUNE_C(0x00208E)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020A8), RUNE_C(0x0020A8)}, + {RUNE_C(0x002100), RUNE_C(0x002103)}, + {RUNE_C(0x002105), RUNE_C(0x002107)}, + {RUNE_C(0x002109), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002116)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002120), RUNE_C(0x002122)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002139)}, + {RUNE_C(0x00213B), RUNE_C(0x002140)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x002150), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x002189), RUNE_C(0x002189)}, + {RUNE_C(0x00222C), RUNE_C(0x00222D)}, + {RUNE_C(0x00222F), RUNE_C(0x002230)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x002460), RUNE_C(0x0024EA)}, + {RUNE_C(0x002A0C), RUNE_C(0x002A0C)}, + {RUNE_C(0x002A74), RUNE_C(0x002A76)}, + {RUNE_C(0x002ADC), RUNE_C(0x002ADC)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002E9F), RUNE_C(0x002E9F)}, + {RUNE_C(0x002EF3), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, + {RUNE_C(0x003000), RUNE_C(0x003000)}, + {RUNE_C(0x003036), RUNE_C(0x003036)}, + {RUNE_C(0x003038), RUNE_C(0x00303A)}, + {RUNE_C(0x00309B), RUNE_C(0x00309C)}, + {RUNE_C(0x00309F), RUNE_C(0x00309F)}, + {RUNE_C(0x0030FF), RUNE_C(0x0030FF)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x003192), RUNE_C(0x00319F)}, + {RUNE_C(0x003200), RUNE_C(0x00321E)}, + {RUNE_C(0x003220), RUNE_C(0x003247)}, + {RUNE_C(0x003250), RUNE_C(0x00327E)}, + {RUNE_C(0x003280), RUNE_C(0x0033FF)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A770), RUNE_C(0x00A770)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA0D)}, + {RUNE_C(0x00FA10), RUNE_C(0x00FA10)}, + {RUNE_C(0x00FA12), RUNE_C(0x00FA12)}, + {RUNE_C(0x00FA15), RUNE_C(0x00FA1E)}, + {RUNE_C(0x00FA20), RUNE_C(0x00FA20)}, + {RUNE_C(0x00FA22), RUNE_C(0x00FA22)}, + {RUNE_C(0x00FA25), RUNE_C(0x00FA26)}, + {RUNE_C(0x00FA2A), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFC)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE19)}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE44)}, + {RUNE_C(0x00FE47), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE72)}, + {RUNE_C(0x00FE74), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010781), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01D15E), RUNE_C(0x01D164)}, + {RUNE_C(0x01D173), RUNE_C(0x01D17A)}, + {RUNE_C(0x01D1BB), RUNE_C(0x01D1C0)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01F100), RUNE_C(0x01F10A)}, + {RUNE_C(0x01F110), RUNE_C(0x01F12E)}, + {RUNE_C(0x01F130), RUNE_C(0x01F14F)}, + {RUNE_C(0x01F16A), RUNE_C(0x01F16C)}, + {RUNE_C(0x01F190), RUNE_C(0x01F190)}, + {RUNE_C(0x01F200), RUNE_C(0x01F202)}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B)}, + {RUNE_C(0x01F240), RUNE_C(0x01F248)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwkcf(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwl.c b/lib/unicode/prop/uprop_is_cwl.c new file mode 100644 index 0000000..5232692 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwl.c @@ -0,0 +1,634 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x00014A), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C5)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C8)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CB)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F2)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003CF)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F4)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F88), RUNE_C(0x001F8F)}, + {RUNE_C(0x001F98), RUNE_C(0x001F9F)}, + {RUNE_C(0x001FA8), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB8), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FC8), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF8), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwl(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwt.c b/lib/unicode/prop/uprop_is_cwt.c new file mode 100644 index 0000000..1b32828 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwt.c @@ -0,0 +1,650 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000137)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018C)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019A)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C4)}, + {RUNE_C(0x0001C6), RUNE_C(0x0001C7)}, + {RUNE_C(0x0001C9), RUNE_C(0x0001CA)}, + {RUNE_C(0x0001CC), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F1)}, + {RUNE_C(0x0001F3), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000233)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FB)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9B)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001F87)}, + {RUNE_C(0x001F90), RUNE_C(0x001F97)}, + {RUNE_C(0x001FA0), RUNE_C(0x001FA7)}, + {RUNE_C(0x001FB0), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C73), RUNE_C(0x002C73)}, + {RUNE_C(0x002C76), RUNE_C(0x002C76)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A794)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwt(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_cwu.c b/lib/unicode/prop/uprop_is_cwu.c new file mode 100644 index 0000000..27bf088 --- /dev/null +++ b/lib/unicode/prop/uprop_is_cwu.c @@ -0,0 +1,651 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000137)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018C)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019A)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C5), RUNE_C(0x0001C6)}, + {RUNE_C(0x0001C8), RUNE_C(0x0001C9)}, + {RUNE_C(0x0001CB), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F0)}, + {RUNE_C(0x0001F2), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000233)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FB)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FD), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9B)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBC), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FCC), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x001FFC), RUNE_C(0x001FFC)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C73), RUNE_C(0x002C73)}, + {RUNE_C(0x002C76), RUNE_C(0x002C76)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A794)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_cwu(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_dash.c b/lib/unicode/prop/uprop_is_dash.c new file mode 100644 index 0000000..7b326f7 --- /dev/null +++ b/lib/unicode/prop/uprop_is_dash.c @@ -0,0 +1,50 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00058A), RUNE_C(0x00058A)}, + {RUNE_C(0x0005BE), RUNE_C(0x0005BE)}, + {RUNE_C(0x001400), RUNE_C(0x001400)}, + {RUNE_C(0x001806), RUNE_C(0x001806)}, + {RUNE_C(0x002010), RUNE_C(0x002015)}, + {RUNE_C(0x002053), RUNE_C(0x002053)}, + {RUNE_C(0x00207B), RUNE_C(0x00207B)}, + {RUNE_C(0x00208B), RUNE_C(0x00208B)}, + {RUNE_C(0x002212), RUNE_C(0x002212)}, + {RUNE_C(0x002E17), RUNE_C(0x002E17)}, + {RUNE_C(0x002E1A), RUNE_C(0x002E1A)}, + {RUNE_C(0x002E3A), RUNE_C(0x002E3B)}, + {RUNE_C(0x002E40), RUNE_C(0x002E40)}, + {RUNE_C(0x002E5D), RUNE_C(0x002E5D)}, + {RUNE_C(0x00301C), RUNE_C(0x00301C)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x0030A0), RUNE_C(0x0030A0)}, + {RUNE_C(0x00FE31), RUNE_C(0x00FE32)}, + {RUNE_C(0x00FE58), RUNE_C(0x00FE58)}, + {RUNE_C(0x00FE63), RUNE_C(0x00FE63)}, + {RUNE_C(0x00FF0D), RUNE_C(0x00FF0D)}, + {RUNE_C(0x010EAD), RUNE_C(0x010EAD)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_dash(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_dep.c b/lib/unicode/prop/uprop_is_dep.c new file mode 100644 index 0000000..aed1401 --- /dev/null +++ b/lib/unicode/prop/uprop_is_dep.c @@ -0,0 +1,29 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000149), RUNE_C(0x000149)}, + {RUNE_C(0x000673), RUNE_C(0x000673)}, + {RUNE_C(0x000F77), RUNE_C(0x000F77)}, + {RUNE_C(0x000F79), RUNE_C(0x000F79)}, + {RUNE_C(0x0017A3), RUNE_C(0x0017A4)}, + {RUNE_C(0x00206A), RUNE_C(0x00206F)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_dep(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_di.c b/lib/unicode/prop/uprop_is_di.c new file mode 100644 index 0000000..c4dc596 --- /dev/null +++ b/lib/unicode/prop/uprop_is_di.c @@ -0,0 +1,44 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00034F), RUNE_C(0x00034F)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x00115F), RUNE_C(0x001160)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x00200B), RUNE_C(0x00200F)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002060), RUNE_C(0x00206F)}, + {RUNE_C(0x003164), RUNE_C(0x003164)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFA0)}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01D173), RUNE_C(0x01D17A)}, + {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_di(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_dia.c b/lib/unicode/prop/uprop_is_dia.c new file mode 100644 index 0000000..3d0a783 --- /dev/null +++ b/lib/unicode/prop/uprop_is_dia.c @@ -0,0 +1,217 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x90, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x0002B0), RUNE_C(0x00034E)}, + {RUNE_C(0x000350), RUNE_C(0x000357)}, + {RUNE_C(0x00035D), RUNE_C(0x000362)}, + {RUNE_C(0x000374), RUNE_C(0x000375)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x000384), RUNE_C(0x000385)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000591), RUNE_C(0x0005A1)}, + {RUNE_C(0x0005A3), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C4)}, + {RUNE_C(0x00064B), RUNE_C(0x000652)}, + {RUNE_C(0x000657), RUNE_C(0x000658)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E0)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006EC)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F5)}, + {RUNE_C(0x000818), RUNE_C(0x000819)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008C9), RUNE_C(0x0008D2)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008FE)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000954)}, + {RUNE_C(0x000971), RUNE_C(0x000971)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A4D), RUNE_C(0x000A4D)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AFD), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B55)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CCD), RUNE_C(0x000CCD)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000E47), RUNE_C(0x000E4C)}, + {RUNE_C(0x000E4E), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EBA), RUNE_C(0x000EBA)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECC)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F3F)}, + {RUNE_C(0x000F82), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001037), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x001063), RUNE_C(0x001064)}, + {RUNE_C(0x001069), RUNE_C(0x00106D)}, + {RUNE_C(0x001087), RUNE_C(0x00108D)}, + {RUNE_C(0x00108F), RUNE_C(0x00108F)}, + {RUNE_C(0x00109A), RUNE_C(0x00109B)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001714), RUNE_C(0x001715)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A75), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABE)}, + {RUNE_C(0x001AC1), RUNE_C(0x001ACB)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B44), RUNE_C(0x001B44)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAB)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001C78), RUNE_C(0x001C7D)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF7), RUNE_C(0x001CF9)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D6A)}, + {RUNE_C(0x001DC4), RUNE_C(0x001DCF)}, + {RUNE_C(0x001DF5), RUNE_C(0x001DFF)}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD)}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC1)}, + {RUNE_C(0x001FCD), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FED), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FFD), RUNE_C(0x001FFE)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309C)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FC)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A67C), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A67F)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A700), RUNE_C(0x00A721)}, + {RUNE_C(0x00A788), RUNE_C(0x00A78A)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C4)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92E)}, + {RUNE_C(0x00A953), RUNE_C(0x00A953)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9C0), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)}, + {RUNE_C(0x00AA7B), RUNE_C(0x00AA7D)}, + {RUNE_C(0x00AABF), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF40)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D22), RUNE_C(0x010D27)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011046), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x011133), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x0111C0), RUNE_C(0x0111C0)}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CC)}, + {RUNE_C(0x011235), RUNE_C(0x011236)}, + {RUNE_C(0x0112E9), RUNE_C(0x0112EA)}, + {RUNE_C(0x01133C), RUNE_C(0x01133C)}, + {RUNE_C(0x01134D), RUNE_C(0x01134D)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011442), RUNE_C(0x011442)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x01163F), RUNE_C(0x01163F)}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B7)}, + {RUNE_C(0x01172B), RUNE_C(0x01172B)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x01193D), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A34), RUNE_C(0x011A34)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A99), RUNE_C(0x011A99)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011D42), RUNE_C(0x011D42)}, + {RUNE_C(0x011D44), RUNE_C(0x011D45)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E946)}, + {RUNE_C(0x01E948), RUNE_C(0x01E94A)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_dia(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ebase.c b/lib/unicode/prop/uprop_is_ebase.c new file mode 100644 index 0000000..99da199 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ebase.c @@ -0,0 +1,61 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00261D), RUNE_C(0x00261D)}, + {RUNE_C(0x0026F9), RUNE_C(0x0026F9)}, + {RUNE_C(0x00270A), RUNE_C(0x00270D)}, + {RUNE_C(0x01F385), RUNE_C(0x01F385)}, + {RUNE_C(0x01F3C2), RUNE_C(0x01F3C4)}, + {RUNE_C(0x01F3C7), RUNE_C(0x01F3C7)}, + {RUNE_C(0x01F3CA), RUNE_C(0x01F3CC)}, + {RUNE_C(0x01F442), RUNE_C(0x01F443)}, + {RUNE_C(0x01F446), RUNE_C(0x01F450)}, + {RUNE_C(0x01F466), RUNE_C(0x01F478)}, + {RUNE_C(0x01F47C), RUNE_C(0x01F47C)}, + {RUNE_C(0x01F481), RUNE_C(0x01F483)}, + {RUNE_C(0x01F485), RUNE_C(0x01F487)}, + {RUNE_C(0x01F48F), RUNE_C(0x01F48F)}, + {RUNE_C(0x01F491), RUNE_C(0x01F491)}, + {RUNE_C(0x01F4AA), RUNE_C(0x01F4AA)}, + {RUNE_C(0x01F574), RUNE_C(0x01F575)}, + {RUNE_C(0x01F57A), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F590), RUNE_C(0x01F590)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F645), RUNE_C(0x01F647)}, + {RUNE_C(0x01F64B), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F6A3), RUNE_C(0x01F6A3)}, + {RUNE_C(0x01F6B4), RUNE_C(0x01F6B6)}, + {RUNE_C(0x01F6C0), RUNE_C(0x01F6C0)}, + {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F90C)}, + {RUNE_C(0x01F90F), RUNE_C(0x01F90F)}, + {RUNE_C(0x01F918), RUNE_C(0x01F91F)}, + {RUNE_C(0x01F926), RUNE_C(0x01F926)}, + {RUNE_C(0x01F930), RUNE_C(0x01F939)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F93E)}, + {RUNE_C(0x01F977), RUNE_C(0x01F977)}, + {RUNE_C(0x01F9B5), RUNE_C(0x01F9B6)}, + {RUNE_C(0x01F9B8), RUNE_C(0x01F9B9)}, + {RUNE_C(0x01F9BB), RUNE_C(0x01F9BB)}, + {RUNE_C(0x01F9CD), RUNE_C(0x01F9CF)}, + {RUNE_C(0x01F9D1), RUNE_C(0x01F9DD)}, + {RUNE_C(0x01FAC3), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ebase(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ecomp.c b/lib/unicode/prop/uprop_is_ecomp.c new file mode 100644 index 0000000..aa61aa3 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ecomp.c @@ -0,0 +1,35 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00200D), RUNE_C(0x00200D)}, + {RUNE_C(0x0020E3), RUNE_C(0x0020E3)}, + {RUNE_C(0x00FE0F), RUNE_C(0x00FE0F)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, + {RUNE_C(0x01F9B0), RUNE_C(0x01F9B3)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ecomp(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_emod.c b/lib/unicode/prop/uprop_is_emod.c new file mode 100644 index 0000000..b560ed9 --- /dev/null +++ b/lib/unicode/prop/uprop_is_emod.c @@ -0,0 +1,22 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_emod(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_emoji.c b/lib/unicode/prop/uprop_is_emoji.c new file mode 100644 index 0000000..d689b14 --- /dev/null +++ b/lib/unicode/prop/uprop_is_emoji.c @@ -0,0 +1,174 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x002049), RUNE_C(0x002049)}, + {RUNE_C(0x002122), RUNE_C(0x002122)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x002194), RUNE_C(0x002199)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AA)}, + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x002328), RUNE_C(0x002328)}, + {RUNE_C(0x0023CF), RUNE_C(0x0023CF)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023F3)}, + {RUNE_C(0x0023F8), RUNE_C(0x0023FA)}, + {RUNE_C(0x0024C2), RUNE_C(0x0024C2)}, + {RUNE_C(0x0025AA), RUNE_C(0x0025AB)}, + {RUNE_C(0x0025B6), RUNE_C(0x0025B6)}, + {RUNE_C(0x0025C0), RUNE_C(0x0025C0)}, + {RUNE_C(0x0025FB), RUNE_C(0x0025FE)}, + {RUNE_C(0x002600), RUNE_C(0x002604)}, + {RUNE_C(0x00260E), RUNE_C(0x00260E)}, + {RUNE_C(0x002611), RUNE_C(0x002611)}, + {RUNE_C(0x002614), RUNE_C(0x002615)}, + {RUNE_C(0x002618), RUNE_C(0x002618)}, + {RUNE_C(0x00261D), RUNE_C(0x00261D)}, + {RUNE_C(0x002620), RUNE_C(0x002620)}, + {RUNE_C(0x002622), RUNE_C(0x002623)}, + {RUNE_C(0x002626), RUNE_C(0x002626)}, + {RUNE_C(0x00262A), RUNE_C(0x00262A)}, + {RUNE_C(0x00262E), RUNE_C(0x00262F)}, + {RUNE_C(0x002638), RUNE_C(0x00263A)}, + {RUNE_C(0x002640), RUNE_C(0x002640)}, + {RUNE_C(0x002642), RUNE_C(0x002642)}, + {RUNE_C(0x002648), RUNE_C(0x002653)}, + {RUNE_C(0x00265F), RUNE_C(0x002660)}, + {RUNE_C(0x002663), RUNE_C(0x002663)}, + {RUNE_C(0x002665), RUNE_C(0x002666)}, + {RUNE_C(0x002668), RUNE_C(0x002668)}, + {RUNE_C(0x00267B), RUNE_C(0x00267B)}, + {RUNE_C(0x00267E), RUNE_C(0x00267F)}, + {RUNE_C(0x002692), RUNE_C(0x002697)}, + {RUNE_C(0x002699), RUNE_C(0x002699)}, + {RUNE_C(0x00269B), RUNE_C(0x00269C)}, + {RUNE_C(0x0026A0), RUNE_C(0x0026A1)}, + {RUNE_C(0x0026A7), RUNE_C(0x0026A7)}, + {RUNE_C(0x0026AA), RUNE_C(0x0026AB)}, + {RUNE_C(0x0026B0), RUNE_C(0x0026B1)}, + {RUNE_C(0x0026BD), RUNE_C(0x0026BE)}, + {RUNE_C(0x0026C4), RUNE_C(0x0026C5)}, + {RUNE_C(0x0026C8), RUNE_C(0x0026C8)}, + {RUNE_C(0x0026CE), RUNE_C(0x0026CF)}, + {RUNE_C(0x0026D1), RUNE_C(0x0026D1)}, + {RUNE_C(0x0026D3), RUNE_C(0x0026D4)}, + {RUNE_C(0x0026E9), RUNE_C(0x0026EA)}, + {RUNE_C(0x0026F0), RUNE_C(0x0026F5)}, + {RUNE_C(0x0026F7), RUNE_C(0x0026FA)}, + {RUNE_C(0x0026FD), RUNE_C(0x0026FD)}, + {RUNE_C(0x002702), RUNE_C(0x002702)}, + {RUNE_C(0x002705), RUNE_C(0x002705)}, + {RUNE_C(0x002708), RUNE_C(0x00270D)}, + {RUNE_C(0x00270F), RUNE_C(0x00270F)}, + {RUNE_C(0x002712), RUNE_C(0x002712)}, + {RUNE_C(0x002714), RUNE_C(0x002714)}, + {RUNE_C(0x002716), RUNE_C(0x002716)}, + {RUNE_C(0x00271D), RUNE_C(0x00271D)}, + {RUNE_C(0x002721), RUNE_C(0x002721)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x002733), RUNE_C(0x002734)}, + {RUNE_C(0x002744), RUNE_C(0x002744)}, + {RUNE_C(0x002747), RUNE_C(0x002747)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002763), RUNE_C(0x002764)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027A1), RUNE_C(0x0027A1)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002934), RUNE_C(0x002935)}, + {RUNE_C(0x002B05), RUNE_C(0x002B07)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00303D), RUNE_C(0x00303D)}, + {RUNE_C(0x003297), RUNE_C(0x003297)}, + {RUNE_C(0x003299), RUNE_C(0x003299)}, + {RUNE_C(0x01F004), RUNE_C(0x01F004)}, + {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F170), RUNE_C(0x01F171)}, + {RUNE_C(0x01F17E), RUNE_C(0x01F17F)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F201), RUNE_C(0x01F202)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F300), RUNE_C(0x01F321)}, + {RUNE_C(0x01F324), RUNE_C(0x01F393)}, + {RUNE_C(0x01F396), RUNE_C(0x01F397)}, + {RUNE_C(0x01F399), RUNE_C(0x01F39B)}, + {RUNE_C(0x01F39E), RUNE_C(0x01F3F0)}, + {RUNE_C(0x01F3F3), RUNE_C(0x01F3F5)}, + {RUNE_C(0x01F3F7), RUNE_C(0x01F4FD)}, + {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F549), RUNE_C(0x01F54E)}, + {RUNE_C(0x01F550), RUNE_C(0x01F567)}, + {RUNE_C(0x01F56F), RUNE_C(0x01F570)}, + {RUNE_C(0x01F573), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F587), RUNE_C(0x01F587)}, + {RUNE_C(0x01F58A), RUNE_C(0x01F58D)}, + {RUNE_C(0x01F590), RUNE_C(0x01F590)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F5A4), RUNE_C(0x01F5A5)}, + {RUNE_C(0x01F5A8), RUNE_C(0x01F5A8)}, + {RUNE_C(0x01F5B1), RUNE_C(0x01F5B2)}, + {RUNE_C(0x01F5BC), RUNE_C(0x01F5BC)}, + {RUNE_C(0x01F5C2), RUNE_C(0x01F5C4)}, + {RUNE_C(0x01F5D1), RUNE_C(0x01F5D3)}, + {RUNE_C(0x01F5DC), RUNE_C(0x01F5DE)}, + {RUNE_C(0x01F5E1), RUNE_C(0x01F5E1)}, + {RUNE_C(0x01F5E3), RUNE_C(0x01F5E3)}, + {RUNE_C(0x01F5E8), RUNE_C(0x01F5E8)}, + {RUNE_C(0x01F5EF), RUNE_C(0x01F5EF)}, + {RUNE_C(0x01F5F3), RUNE_C(0x01F5F3)}, + {RUNE_C(0x01F5FA), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6C5)}, + {RUNE_C(0x01F6CB), RUNE_C(0x01F6D2)}, + {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6E5)}, + {RUNE_C(0x01F6E9), RUNE_C(0x01F6E9)}, + {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F0), RUNE_C(0x01F6F0)}, + {RUNE_C(0x01F6F3), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01F9FF)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_emoji(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_epres.c b/lib/unicode/prop/uprop_is_epres.c new file mode 100644 index 0000000..45959db --- /dev/null +++ b/lib/unicode/prop/uprop_is_epres.c @@ -0,0 +1,102 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023EC)}, + {RUNE_C(0x0023F0), RUNE_C(0x0023F0)}, + {RUNE_C(0x0023F3), RUNE_C(0x0023F3)}, + {RUNE_C(0x0025FD), RUNE_C(0x0025FE)}, + {RUNE_C(0x002614), RUNE_C(0x002615)}, + {RUNE_C(0x002648), RUNE_C(0x002653)}, + {RUNE_C(0x00267F), RUNE_C(0x00267F)}, + {RUNE_C(0x002693), RUNE_C(0x002693)}, + {RUNE_C(0x0026A1), RUNE_C(0x0026A1)}, + {RUNE_C(0x0026AA), RUNE_C(0x0026AB)}, + {RUNE_C(0x0026BD), RUNE_C(0x0026BE)}, + {RUNE_C(0x0026C4), RUNE_C(0x0026C5)}, + {RUNE_C(0x0026CE), RUNE_C(0x0026CE)}, + {RUNE_C(0x0026D4), RUNE_C(0x0026D4)}, + {RUNE_C(0x0026EA), RUNE_C(0x0026EA)}, + {RUNE_C(0x0026F2), RUNE_C(0x0026F3)}, + {RUNE_C(0x0026F5), RUNE_C(0x0026F5)}, + {RUNE_C(0x0026FA), RUNE_C(0x0026FA)}, + {RUNE_C(0x0026FD), RUNE_C(0x0026FD)}, + {RUNE_C(0x002705), RUNE_C(0x002705)}, + {RUNE_C(0x00270A), RUNE_C(0x00270B)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x01F004), RUNE_C(0x01F004)}, + {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F201), RUNE_C(0x01F201)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F236)}, + {RUNE_C(0x01F238), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F300), RUNE_C(0x01F320)}, + {RUNE_C(0x01F32D), RUNE_C(0x01F335)}, + {RUNE_C(0x01F337), RUNE_C(0x01F37C)}, + {RUNE_C(0x01F37E), RUNE_C(0x01F393)}, + {RUNE_C(0x01F3A0), RUNE_C(0x01F3CA)}, + {RUNE_C(0x01F3CF), RUNE_C(0x01F3D3)}, + {RUNE_C(0x01F3E0), RUNE_C(0x01F3F0)}, + {RUNE_C(0x01F3F4), RUNE_C(0x01F3F4)}, + {RUNE_C(0x01F3F8), RUNE_C(0x01F43E)}, + {RUNE_C(0x01F440), RUNE_C(0x01F440)}, + {RUNE_C(0x01F442), RUNE_C(0x01F4FC)}, + {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F54B), RUNE_C(0x01F54E)}, + {RUNE_C(0x01F550), RUNE_C(0x01F567)}, + {RUNE_C(0x01F57A), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F5A4), RUNE_C(0x01F5A4)}, + {RUNE_C(0x01F5FB), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6C5)}, + {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)}, + {RUNE_C(0x01F6D0), RUNE_C(0x01F6D2)}, + {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6DF)}, + {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F4), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01F9FF)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_epres(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ext.c b/lib/unicode/prop/uprop_is_ext.c new file mode 100644 index 0000000..09d5366 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ext.c @@ -0,0 +1,60 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x0002D0), RUNE_C(0x0002D1)}, + {RUNE_C(0x000640), RUNE_C(0x000640)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000B55), RUNE_C(0x000B55)}, + {RUNE_C(0x000E46), RUNE_C(0x000E46)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x00180A), RUNE_C(0x00180A)}, + {RUNE_C(0x001843), RUNE_C(0x001843)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001C36), RUNE_C(0x001C36)}, + {RUNE_C(0x001C7B), RUNE_C(0x001C7B)}, + {RUNE_C(0x003005), RUNE_C(0x003005)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x00309D), RUNE_C(0x00309E)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FE)}, + {RUNE_C(0x00A015), RUNE_C(0x00A015)}, + {RUNE_C(0x00A60C), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9E6)}, + {RUNE_C(0x00AA70), RUNE_C(0x00AA70)}, + {RUNE_C(0x00AADD), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x010781), RUNE_C(0x010782)}, + {RUNE_C(0x01135D), RUNE_C(0x01135D)}, + {RUNE_C(0x0115C6), RUNE_C(0x0115C8)}, + {RUNE_C(0x011A98), RUNE_C(0x011A98)}, + {RUNE_C(0x016B42), RUNE_C(0x016B43)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x01E13C), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E944), RUNE_C(0x01E946)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ext(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_extpic.c b/lib/unicode/prop/uprop_is_extpic.c new file mode 100644 index 0000000..06075e7 --- /dev/null +++ b/lib/unicode/prop/uprop_is_extpic.c @@ -0,0 +1,104 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x002049), RUNE_C(0x002049)}, + {RUNE_C(0x002122), RUNE_C(0x002122)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x002194), RUNE_C(0x002199)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AA)}, + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x002328), RUNE_C(0x002328)}, + {RUNE_C(0x002388), RUNE_C(0x002388)}, + {RUNE_C(0x0023CF), RUNE_C(0x0023CF)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023F3)}, + {RUNE_C(0x0023F8), RUNE_C(0x0023FA)}, + {RUNE_C(0x0024C2), RUNE_C(0x0024C2)}, + {RUNE_C(0x0025AA), RUNE_C(0x0025AB)}, + {RUNE_C(0x0025B6), RUNE_C(0x0025B6)}, + {RUNE_C(0x0025C0), RUNE_C(0x0025C0)}, + {RUNE_C(0x0025FB), RUNE_C(0x0025FE)}, + {RUNE_C(0x002600), RUNE_C(0x002605)}, + {RUNE_C(0x002607), RUNE_C(0x002612)}, + {RUNE_C(0x002614), RUNE_C(0x002685)}, + {RUNE_C(0x002690), RUNE_C(0x002705)}, + {RUNE_C(0x002708), RUNE_C(0x002712)}, + {RUNE_C(0x002714), RUNE_C(0x002714)}, + {RUNE_C(0x002716), RUNE_C(0x002716)}, + {RUNE_C(0x00271D), RUNE_C(0x00271D)}, + {RUNE_C(0x002721), RUNE_C(0x002721)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x002733), RUNE_C(0x002734)}, + {RUNE_C(0x002744), RUNE_C(0x002744)}, + {RUNE_C(0x002747), RUNE_C(0x002747)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002763), RUNE_C(0x002767)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027A1), RUNE_C(0x0027A1)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002934), RUNE_C(0x002935)}, + {RUNE_C(0x002B05), RUNE_C(0x002B07)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00303D), RUNE_C(0x00303D)}, + {RUNE_C(0x003297), RUNE_C(0x003297)}, + {RUNE_C(0x003299), RUNE_C(0x003299)}, + {RUNE_C(0x01F000), RUNE_C(0x01F0FF)}, + {RUNE_C(0x01F10D), RUNE_C(0x01F10F)}, + {RUNE_C(0x01F12F), RUNE_C(0x01F12F)}, + {RUNE_C(0x01F16C), RUNE_C(0x01F171)}, + {RUNE_C(0x01F17E), RUNE_C(0x01F17F)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1AD), RUNE_C(0x01F1E5)}, + {RUNE_C(0x01F201), RUNE_C(0x01F20F)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F23C), RUNE_C(0x01F23F)}, + {RUNE_C(0x01F249), RUNE_C(0x01F3FA)}, + {RUNE_C(0x01F400), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F546), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6FF)}, + {RUNE_C(0x01F774), RUNE_C(0x01F77F)}, + {RUNE_C(0x01F7D5), RUNE_C(0x01F7FF)}, + {RUNE_C(0x01F80C), RUNE_C(0x01F80F)}, + {RUNE_C(0x01F848), RUNE_C(0x01F84F)}, + {RUNE_C(0x01F85A), RUNE_C(0x01F85F)}, + {RUNE_C(0x01F888), RUNE_C(0x01F88F)}, + {RUNE_C(0x01F8AE), RUNE_C(0x01F8FF)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01FAFF)}, + {RUNE_C(0x01FC00), RUNE_C(0x01FFFD)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_extpic(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_gr_base.c b/lib/unicode/prop/uprop_is_gr_base.c new file mode 100644 index 0000000..e76ed48 --- /dev/null +++ b/lib/unicode/prop/uprop_is_gr_base.c @@ -0,0 +1,901 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002FF)}, + {RUNE_C(0x000370), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037F)}, + {RUNE_C(0x000384), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x000482)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x00058A)}, + {RUNE_C(0x00058D), RUNE_C(0x00058F)}, + {RUNE_C(0x0005BE), RUNE_C(0x0005BE)}, + {RUNE_C(0x0005C0), RUNE_C(0x0005C0)}, + {RUNE_C(0x0005C3), RUNE_C(0x0005C3)}, + {RUNE_C(0x0005C6), RUNE_C(0x0005C6)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F4)}, + {RUNE_C(0x000606), RUNE_C(0x00060F)}, + {RUNE_C(0x00061B), RUNE_C(0x00061B)}, + {RUNE_C(0x00061D), RUNE_C(0x00064A)}, + {RUNE_C(0x000660), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006DE), RUNE_C(0x0006DE)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006E9), RUNE_C(0x0006E9)}, + {RUNE_C(0x0006EE), RUNE_C(0x00070D)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FE), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000830), RUNE_C(0x00083E)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x00085E), RUNE_C(0x00085E)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000903), RUNE_C(0x000939)}, + {RUNE_C(0x00093B), RUNE_C(0x00093B)}, + {RUNE_C(0x00093D), RUNE_C(0x000940)}, + {RUNE_C(0x000949), RUNE_C(0x00094C)}, + {RUNE_C(0x00094E), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000964), RUNE_C(0x000980)}, + {RUNE_C(0x000982), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009BF), RUNE_C(0x0009C0)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009FD)}, + {RUNE_C(0x000A03), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A40)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A6F)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A76), RUNE_C(0x000A76)}, + {RUNE_C(0x000A83), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000AC0)}, + {RUNE_C(0x000AC9), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AF1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B02), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B40), RUNE_C(0x000B40)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B66), RUNE_C(0x000B77)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBF), RUNE_C(0x000BBF)}, + {RUNE_C(0x000BC1), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BFA)}, + {RUNE_C(0x000C01), RUNE_C(0x000C03)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C41), RUNE_C(0x000C44)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C77), RUNE_C(0x000C80)}, + {RUNE_C(0x000C82), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBE)}, + {RUNE_C(0x000CC0), RUNE_C(0x000CC1)}, + {RUNE_C(0x000CC3), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC7), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCB)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D02), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D3F), RUNE_C(0x000D40)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4F)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D58), RUNE_C(0x000D61)}, + {RUNE_C(0x000D66), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D82), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DD0), RUNE_C(0x000DD1)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDE)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF4)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E33)}, + {RUNE_C(0x000E3F), RUNE_C(0x000E46)}, + {RUNE_C(0x000E4F), RUNE_C(0x000E5B)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F17)}, + {RUNE_C(0x000F1A), RUNE_C(0x000F34)}, + {RUNE_C(0x000F36), RUNE_C(0x000F36)}, + {RUNE_C(0x000F38), RUNE_C(0x000F38)}, + {RUNE_C(0x000F3A), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F7F), RUNE_C(0x000F7F)}, + {RUNE_C(0x000F85), RUNE_C(0x000F85)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x000FBE), RUNE_C(0x000FC5)}, + {RUNE_C(0x000FC7), RUNE_C(0x000FCC)}, + {RUNE_C(0x000FCE), RUNE_C(0x000FDA)}, + {RUNE_C(0x001000), RUNE_C(0x00102C)}, + {RUNE_C(0x001031), RUNE_C(0x001031)}, + {RUNE_C(0x001038), RUNE_C(0x001038)}, + {RUNE_C(0x00103B), RUNE_C(0x00103C)}, + {RUNE_C(0x00103F), RUNE_C(0x001057)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x001083), RUNE_C(0x001084)}, + {RUNE_C(0x001087), RUNE_C(0x00108C)}, + {RUNE_C(0x00108E), RUNE_C(0x00109C)}, + {RUNE_C(0x00109E), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001360), RUNE_C(0x00137C)}, + {RUNE_C(0x001380), RUNE_C(0x001399)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001400), RUNE_C(0x00169C)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x001715), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001734), RUNE_C(0x001736)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017B6), RUNE_C(0x0017B6)}, + {RUNE_C(0x0017BE), RUNE_C(0x0017C5)}, + {RUNE_C(0x0017C7), RUNE_C(0x0017C8)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017DC)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x0017F0), RUNE_C(0x0017F9)}, + {RUNE_C(0x001800), RUNE_C(0x00180A)}, + {RUNE_C(0x001810), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x001884)}, + {RUNE_C(0x001887), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001923), RUNE_C(0x001926)}, + {RUNE_C(0x001929), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x001931)}, + {RUNE_C(0x001933), RUNE_C(0x001938)}, + {RUNE_C(0x001940), RUNE_C(0x001940)}, + {RUNE_C(0x001944), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x0019DE), RUNE_C(0x001A16)}, + {RUNE_C(0x001A19), RUNE_C(0x001A1A)}, + {RUNE_C(0x001A1E), RUNE_C(0x001A55)}, + {RUNE_C(0x001A57), RUNE_C(0x001A57)}, + {RUNE_C(0x001A61), RUNE_C(0x001A61)}, + {RUNE_C(0x001A63), RUNE_C(0x001A64)}, + {RUNE_C(0x001A6D), RUNE_C(0x001A72)}, + {RUNE_C(0x001A80), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA0), RUNE_C(0x001AAD)}, + {RUNE_C(0x001B04), RUNE_C(0x001B33)}, + {RUNE_C(0x001B3B), RUNE_C(0x001B3B)}, + {RUNE_C(0x001B3D), RUNE_C(0x001B41)}, + {RUNE_C(0x001B43), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B6A)}, + {RUNE_C(0x001B74), RUNE_C(0x001B7E)}, + {RUNE_C(0x001B82), RUNE_C(0x001BA1)}, + {RUNE_C(0x001BA6), RUNE_C(0x001BA7)}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAA)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BE5)}, + {RUNE_C(0x001BE7), RUNE_C(0x001BE7)}, + {RUNE_C(0x001BEA), RUNE_C(0x001BEC)}, + {RUNE_C(0x001BEE), RUNE_C(0x001BEE)}, + {RUNE_C(0x001BF2), RUNE_C(0x001BF3)}, + {RUNE_C(0x001BFC), RUNE_C(0x001C2B)}, + {RUNE_C(0x001C34), RUNE_C(0x001C35)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CC7)}, + {RUNE_C(0x001CD3), RUNE_C(0x001CD3)}, + {RUNE_C(0x001CE1), RUNE_C(0x001CE1)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF7)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFE)}, + {RUNE_C(0x002000), RUNE_C(0x00200A)}, + {RUNE_C(0x002010), RUNE_C(0x002027)}, + {RUNE_C(0x00202F), RUNE_C(0x00205F)}, + {RUNE_C(0x002070), RUNE_C(0x002071)}, + {RUNE_C(0x002074), RUNE_C(0x00208E)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020A0), RUNE_C(0x0020C0)}, + {RUNE_C(0x002100), RUNE_C(0x00218B)}, + {RUNE_C(0x002190), RUNE_C(0x002426)}, + {RUNE_C(0x002440), RUNE_C(0x00244A)}, + {RUNE_C(0x002460), RUNE_C(0x002B73)}, + {RUNE_C(0x002B76), RUNE_C(0x002B95)}, + {RUNE_C(0x002B97), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002CF9), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D70)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002E00), RUNE_C(0x002E5D)}, + {RUNE_C(0x002E80), RUNE_C(0x002E99)}, + {RUNE_C(0x002E9B), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, + {RUNE_C(0x002FF0), RUNE_C(0x003029)}, + {RUNE_C(0x003030), RUNE_C(0x00303F)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309B), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x003190), RUNE_C(0x0031E3)}, + {RUNE_C(0x0031EF), RUNE_C(0x00321E)}, + {RUNE_C(0x003220), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A490), RUNE_C(0x00A4C6)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A673), RUNE_C(0x00A673)}, + {RUNE_C(0x00A67E), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A6F2), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A700), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A824)}, + {RUNE_C(0x00A827), RUNE_C(0x00A82B)}, + {RUNE_C(0x00A830), RUNE_C(0x00A839)}, + {RUNE_C(0x00A840), RUNE_C(0x00A877)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C3)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A900), RUNE_C(0x00A925)}, + {RUNE_C(0x00A92E), RUNE_C(0x00A946)}, + {RUNE_C(0x00A952), RUNE_C(0x00A953)}, + {RUNE_C(0x00A95F), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A983), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9B5)}, + {RUNE_C(0x00A9BA), RUNE_C(0x00A9BB)}, + {RUNE_C(0x00A9BE), RUNE_C(0x00A9CD)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9DE), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA2F), RUNE_C(0x00AA30)}, + {RUNE_C(0x00AA33), RUNE_C(0x00AA34)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA4D), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA5C), RUNE_C(0x00AA7B)}, + {RUNE_C(0x00AA7D), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AAEB)}, + {RUNE_C(0x00AAEE), RUNE_C(0x00AAF5)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE4)}, + {RUNE_C(0x00ABE6), RUNE_C(0x00ABE7)}, + {RUNE_C(0x00ABE9), RUNE_C(0x00ABEC)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBC2)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDCF), RUNE_C(0x00FDCF)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFF)}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE19)}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF9D)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)}, + {RUNE_C(0x00FFFC), RUNE_C(0x00FFFD)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010100), RUNE_C(0x010102)}, + {RUNE_C(0x010107), RUNE_C(0x010133)}, + {RUNE_C(0x010137), RUNE_C(0x01018E)}, + {RUNE_C(0x010190), RUNE_C(0x01019C)}, + {RUNE_C(0x0101A0), RUNE_C(0x0101A0)}, + {RUNE_C(0x0101D0), RUNE_C(0x0101FC)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E1), RUNE_C(0x0102FB)}, + {RUNE_C(0x010300), RUNE_C(0x010323)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x01039F), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x01056F), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010857), RUNE_C(0x01089E)}, + {RUNE_C(0x0108A7), RUNE_C(0x0108AF)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x0108FB), RUNE_C(0x01091B)}, + {RUNE_C(0x01091F), RUNE_C(0x010939)}, + {RUNE_C(0x01093F), RUNE_C(0x01093F)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BC), RUNE_C(0x0109CF)}, + {RUNE_C(0x0109D2), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A40), RUNE_C(0x010A48)}, + {RUNE_C(0x010A50), RUNE_C(0x010A58)}, + {RUNE_C(0x010A60), RUNE_C(0x010A9F)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AE4)}, + {RUNE_C(0x010AEB), RUNE_C(0x010AF6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B39), RUNE_C(0x010B55)}, + {RUNE_C(0x010B58), RUNE_C(0x010B72)}, + {RUNE_C(0x010B78), RUNE_C(0x010B91)}, + {RUNE_C(0x010B99), RUNE_C(0x010B9C)}, + {RUNE_C(0x010BA9), RUNE_C(0x010BAF)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010CFA), RUNE_C(0x010D23)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E60), RUNE_C(0x010E7E)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAD), RUNE_C(0x010EAD)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F51), RUNE_C(0x010F59)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FCB)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011000)}, + {RUNE_C(0x011002), RUNE_C(0x011037)}, + {RUNE_C(0x011047), RUNE_C(0x01104D)}, + {RUNE_C(0x011052), RUNE_C(0x01106F)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011082), RUNE_C(0x0110B2)}, + {RUNE_C(0x0110B7), RUNE_C(0x0110B8)}, + {RUNE_C(0x0110BB), RUNE_C(0x0110BC)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x01112C), RUNE_C(0x01112C)}, + {RUNE_C(0x011136), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011174), RUNE_C(0x011176)}, + {RUNE_C(0x011182), RUNE_C(0x0111B5)}, + {RUNE_C(0x0111BF), RUNE_C(0x0111C8)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CE)}, + {RUNE_C(0x0111D0), RUNE_C(0x0111DF)}, + {RUNE_C(0x0111E1), RUNE_C(0x0111F4)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122E)}, + {RUNE_C(0x011232), RUNE_C(0x011233)}, + {RUNE_C(0x011235), RUNE_C(0x011235)}, + {RUNE_C(0x011238), RUNE_C(0x01123D)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A9)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x0112E0), RUNE_C(0x0112E2)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011302), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x01133F), RUNE_C(0x01133F)}, + {RUNE_C(0x011341), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011400), RUNE_C(0x011437)}, + {RUNE_C(0x011440), RUNE_C(0x011441)}, + {RUNE_C(0x011445), RUNE_C(0x011445)}, + {RUNE_C(0x011447), RUNE_C(0x01145B)}, + {RUNE_C(0x01145D), RUNE_C(0x01145D)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114B1), RUNE_C(0x0114B2)}, + {RUNE_C(0x0114B9), RUNE_C(0x0114B9)}, + {RUNE_C(0x0114BB), RUNE_C(0x0114BC)}, + {RUNE_C(0x0114BE), RUNE_C(0x0114BE)}, + {RUNE_C(0x0114C1), RUNE_C(0x0114C1)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115B0), RUNE_C(0x0115B1)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BB)}, + {RUNE_C(0x0115BE), RUNE_C(0x0115BE)}, + {RUNE_C(0x0115C1), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x011632)}, + {RUNE_C(0x01163B), RUNE_C(0x01163C)}, + {RUNE_C(0x01163E), RUNE_C(0x01163E)}, + {RUNE_C(0x011641), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011660), RUNE_C(0x01166C)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116AC), RUNE_C(0x0116AC)}, + {RUNE_C(0x0116AE), RUNE_C(0x0116AF)}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B6)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B9)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011720), RUNE_C(0x011721)}, + {RUNE_C(0x011726), RUNE_C(0x011726)}, + {RUNE_C(0x011730), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182E)}, + {RUNE_C(0x011838), RUNE_C(0x011838)}, + {RUNE_C(0x01183B), RUNE_C(0x01183B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118F2)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x011931), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193D), RUNE_C(0x01193D)}, + {RUNE_C(0x01193F), RUNE_C(0x011942)}, + {RUNE_C(0x011944), RUNE_C(0x011946)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D3)}, + {RUNE_C(0x0119DC), RUNE_C(0x0119DF)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A39), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A3F), RUNE_C(0x011A46)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A57), RUNE_C(0x011A58)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A97), RUNE_C(0x011A97)}, + {RUNE_C(0x011A9A), RUNE_C(0x011AA2)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011B00), RUNE_C(0x011B09)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2F)}, + {RUNE_C(0x011C3E), RUNE_C(0x011C3E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C45)}, + {RUNE_C(0x011C50), RUNE_C(0x011C6C)}, + {RUNE_C(0x011C70), RUNE_C(0x011C8F)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CA9)}, + {RUNE_C(0x011CB1), RUNE_C(0x011CB1)}, + {RUNE_C(0x011CB4), RUNE_C(0x011CB4)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D93), RUNE_C(0x011D94)}, + {RUNE_C(0x011D96), RUNE_C(0x011D96)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011EF5), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F02), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F35)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F3F)}, + {RUNE_C(0x011F41), RUNE_C(0x011F41)}, + {RUNE_C(0x011F43), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x011FC0), RUNE_C(0x011FF1)}, + {RUNE_C(0x011FFF), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012470), RUNE_C(0x012474)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF2)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A6E), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B37), RUNE_C(0x016B45)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B5B), RUNE_C(0x016B61)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E9A)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F87)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE3)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9C), RUNE_C(0x01BC9C)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01CF50), RUNE_C(0x01CFC3)}, + {RUNE_C(0x01D000), RUNE_C(0x01D0F5)}, + {RUNE_C(0x01D100), RUNE_C(0x01D126)}, + {RUNE_C(0x01D129), RUNE_C(0x01D164)}, + {RUNE_C(0x01D166), RUNE_C(0x01D166)}, + {RUNE_C(0x01D16A), RUNE_C(0x01D16D)}, + {RUNE_C(0x01D183), RUNE_C(0x01D184)}, + {RUNE_C(0x01D18C), RUNE_C(0x01D1A9)}, + {RUNE_C(0x01D1AE), RUNE_C(0x01D1EA)}, + {RUNE_C(0x01D200), RUNE_C(0x01D241)}, + {RUNE_C(0x01D245), RUNE_C(0x01D245)}, + {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3)}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3)}, + {RUNE_C(0x01D300), RUNE_C(0x01D356)}, + {RUNE_C(0x01D360), RUNE_C(0x01D378)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D9FF)}, + {RUNE_C(0x01DA37), RUNE_C(0x01DA3A)}, + {RUNE_C(0x01DA6D), RUNE_C(0x01DA74)}, + {RUNE_C(0x01DA76), RUNE_C(0x01DA83)}, + {RUNE_C(0x01DA85), RUNE_C(0x01DA8B)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14F)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E2F0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E2FF), RUNE_C(0x01E2FF)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E4F0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8C7), RUNE_C(0x01E8CF)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01E95E), RUNE_C(0x01E95F)}, + {RUNE_C(0x01EC71), RUNE_C(0x01ECB4)}, + {RUNE_C(0x01ED01), RUNE_C(0x01ED3D)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)}, + {RUNE_C(0x01F000), RUNE_C(0x01F02B)}, + {RUNE_C(0x01F030), RUNE_C(0x01F093)}, + {RUNE_C(0x01F0A0), RUNE_C(0x01F0AE)}, + {RUNE_C(0x01F0B1), RUNE_C(0x01F0BF)}, + {RUNE_C(0x01F0C1), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F0D1), RUNE_C(0x01F0F5)}, + {RUNE_C(0x01F100), RUNE_C(0x01F1AD)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F202)}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B)}, + {RUNE_C(0x01F240), RUNE_C(0x01F248)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F260), RUNE_C(0x01F265)}, + {RUNE_C(0x01F300), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F0), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F700), RUNE_C(0x01F776)}, + {RUNE_C(0x01F77B), RUNE_C(0x01F7D9)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F800), RUNE_C(0x01F80B)}, + {RUNE_C(0x01F810), RUNE_C(0x01F847)}, + {RUNE_C(0x01F850), RUNE_C(0x01F859)}, + {RUNE_C(0x01F860), RUNE_C(0x01F887)}, + {RUNE_C(0x01F890), RUNE_C(0x01F8AD)}, + {RUNE_C(0x01F8B0), RUNE_C(0x01F8B1)}, + {RUNE_C(0x01F900), RUNE_C(0x01FA53)}, + {RUNE_C(0x01FA60), RUNE_C(0x01FA6D)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, + {RUNE_C(0x01FB00), RUNE_C(0x01FB92)}, + {RUNE_C(0x01FB94), RUNE_C(0x01FBCA)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_gr_base(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_gr_ext.c b/lib/unicode/prop/uprop_is_gr_ext.c new file mode 100644 index 0000000..d0b0d93 --- /dev/null +++ b/lib/unicode/prop/uprop_is_gr_ext.c @@ -0,0 +1,384 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000300), RUNE_C(0x00036F)}, + {RUNE_C(0x000483), RUNE_C(0x000489)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4)}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x000819)}, + {RUNE_C(0x00081B), RUNE_C(0x000823)}, + {RUNE_C(0x000825), RUNE_C(0x000827)}, + {RUNE_C(0x000829), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000902)}, + {RUNE_C(0x00093A), RUNE_C(0x00093A)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x000941), RUNE_C(0x000948)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000957)}, + {RUNE_C(0x000962), RUNE_C(0x000963)}, + {RUNE_C(0x000981), RUNE_C(0x000981)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009BE), RUNE_C(0x0009BE)}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A02)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A41), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A70), RUNE_C(0x000A71)}, + {RUNE_C(0x000A75), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A82)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B01)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B3E), RUNE_C(0x000B3F)}, + {RUNE_C(0x000B41), RUNE_C(0x000B44)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B62), RUNE_C(0x000B63)}, + {RUNE_C(0x000B82), RUNE_C(0x000B82)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BBE)}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000C00), RUNE_C(0x000C00)}, + {RUNE_C(0x000C04), RUNE_C(0x000C04)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C62), RUNE_C(0x000C63)}, + {RUNE_C(0x000C81), RUNE_C(0x000C81)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF)}, + {RUNE_C(0x000CC2), RUNE_C(0x000CC2)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6)}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D01)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D3E), RUNE_C(0x000D3E)}, + {RUNE_C(0x000D41), RUNE_C(0x000D44)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000D57), RUNE_C(0x000D57)}, + {RUNE_C(0x000D62), RUNE_C(0x000D63)}, + {RUNE_C(0x000D81), RUNE_C(0x000D81)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DCF)}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DDF), RUNE_C(0x000DDF)}, + {RUNE_C(0x000E31), RUNE_C(0x000E31)}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E47), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1)}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E)}, + {RUNE_C(0x000F80), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x00102D), RUNE_C(0x001030)}, + {RUNE_C(0x001032), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00103D), RUNE_C(0x00103E)}, + {RUNE_C(0x001058), RUNE_C(0x001059)}, + {RUNE_C(0x00105E), RUNE_C(0x001060)}, + {RUNE_C(0x001071), RUNE_C(0x001074)}, + {RUNE_C(0x001082), RUNE_C(0x001082)}, + {RUNE_C(0x001085), RUNE_C(0x001086)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00109D), RUNE_C(0x00109D)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001712), RUNE_C(0x001714)}, + {RUNE_C(0x001732), RUNE_C(0x001733)}, + {RUNE_C(0x001752), RUNE_C(0x001753)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD)}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x00180F)}, + {RUNE_C(0x001885), RUNE_C(0x001886)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001920), RUNE_C(0x001922)}, + {RUNE_C(0x001927), RUNE_C(0x001928)}, + {RUNE_C(0x001932), RUNE_C(0x001932)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A56), RUNE_C(0x001A56)}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A62), RUNE_C(0x001A62)}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C)}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B03)}, + {RUNE_C(0x001B34), RUNE_C(0x001B3A)}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C)}, + {RUNE_C(0x001B42), RUNE_C(0x001B42)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001B81)}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5)}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9)}, + {RUNE_C(0x001BED), RUNE_C(0x001BED)}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF)}, + {RUNE_C(0x00200C), RUNE_C(0x00200C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020F0)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A672)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A802), RUNE_C(0x00A802)}, + {RUNE_C(0x00A806), RUNE_C(0x00A806)}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B)}, + {RUNE_C(0x00A825), RUNE_C(0x00A826)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A947), RUNE_C(0x00A951)}, + {RUNE_C(0x00A980), RUNE_C(0x00A982)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32)}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43)}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010A01), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011001), RUNE_C(0x011001)}, + {RUNE_C(0x011038), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x011073), RUNE_C(0x011074)}, + {RUNE_C(0x01107F), RUNE_C(0x011081)}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011127), RUNE_C(0x01112B)}, + {RUNE_C(0x01112D), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x011180), RUNE_C(0x011181)}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF)}, + {RUNE_C(0x01122F), RUNE_C(0x011231)}, + {RUNE_C(0x011234), RUNE_C(0x011234)}, + {RUNE_C(0x011236), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x01123E)}, + {RUNE_C(0x011241), RUNE_C(0x011241)}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF)}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA)}, + {RUNE_C(0x011300), RUNE_C(0x011301)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x01133E), RUNE_C(0x01133E)}, + {RUNE_C(0x011340), RUNE_C(0x011340)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011438), RUNE_C(0x01143F)}, + {RUNE_C(0x011442), RUNE_C(0x011444)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114B0), RUNE_C(0x0114B0)}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8)}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA)}, + {RUNE_C(0x0114BD), RUNE_C(0x0114BD)}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115AF), RUNE_C(0x0115AF)}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD)}, + {RUNE_C(0x011633), RUNE_C(0x01163A)}, + {RUNE_C(0x01163D), RUNE_C(0x01163D)}, + {RUNE_C(0x01163F), RUNE_C(0x011640)}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB)}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD)}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01171D), RUNE_C(0x01171F)}, + {RUNE_C(0x011722), RUNE_C(0x011725)}, + {RUNE_C(0x011727), RUNE_C(0x01172B)}, + {RUNE_C(0x01182F), RUNE_C(0x011837)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x011930), RUNE_C(0x011930)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A)}, + {RUNE_C(0x011A33), RUNE_C(0x011A38)}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A51), RUNE_C(0x011A56)}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B)}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96)}, + {RUNE_C(0x011A98), RUNE_C(0x011A99)}, + {RUNE_C(0x011C30), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0)}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3)}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D31), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45)}, + {RUNE_C(0x011D47), RUNE_C(0x011D47)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D95), RUNE_C(0x011D95)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4)}, + {RUNE_C(0x011F00), RUNE_C(0x011F01)}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F40), RUNE_C(0x011F40)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x013440), RUNE_C(0x013440)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F92)}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D165)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16E), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94A)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_gr_ext(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_hex.c b/lib/unicode/prop/uprop_is_hex.c new file mode 100644 index 0000000..c2e6793 --- /dev/null +++ b/lib/unicode/prop/uprop_is_hex.c @@ -0,0 +1,31 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF26)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF46)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_hex(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_id_compat_math_continue.c b/lib/unicode/prop/uprop_is_id_compat_math_continue.c new file mode 100644 index 0000000..2cde8a1 --- /dev/null +++ b/lib/unicode/prop/uprop_is_id_compat_math_continue.c @@ -0,0 +1,44 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002070), RUNE_C(0x002070)}, + {RUNE_C(0x002074), RUNE_C(0x00207E)}, + {RUNE_C(0x002080), RUNE_C(0x00208E)}, + {RUNE_C(0x002202), RUNE_C(0x002202)}, + {RUNE_C(0x002207), RUNE_C(0x002207)}, + {RUNE_C(0x00221E), RUNE_C(0x00221E)}, + {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D735), RUNE_C(0x01D735)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D76F), RUNE_C(0x01D76F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_id_compat_math_continue(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_id_compat_math_start.c b/lib/unicode/prop/uprop_is_id_compat_math_start.c new file mode 100644 index 0000000..e89ef5d --- /dev/null +++ b/lib/unicode/prop/uprop_is_id_compat_math_start.c @@ -0,0 +1,34 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002202), RUNE_C(0x002202)}, + {RUNE_C(0x002207), RUNE_C(0x002207)}, + {RUNE_C(0x00221E), RUNE_C(0x00221E)}, + {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D735), RUNE_C(0x01D735)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D76F), RUNE_C(0x01D76F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_id_compat_math_start(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_idbo.c b/lib/unicode/prop/uprop_is_idbo.c new file mode 100644 index 0000000..44f952e --- /dev/null +++ b/lib/unicode/prop/uprop_is_idbo.c @@ -0,0 +1,24 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002FF0), RUNE_C(0x002FF1)}, + {RUNE_C(0x002FF4), RUNE_C(0x002FFD)}, + {RUNE_C(0x0031EF), RUNE_C(0x0031EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_idbo(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_idc.c b/lib/unicode/prop/uprop_is_idc.c new file mode 100644 index 0000000..f02ad69 --- /dev/null +++ b/lib/unicode/prop/uprop_is_idc.c @@ -0,0 +1,787 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA0, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000300), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000669)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00074A)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000800), RUNE_C(0x00082D)}, + {RUNE_C(0x000840), RUNE_C(0x00085B)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x000898), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000963)}, + {RUNE_C(0x000966), RUNE_C(0x00096F)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E4E)}, + {RUNE_C(0x000E50), RUNE_C(0x000E59)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F20), RUNE_C(0x000F29)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001000), RUNE_C(0x001049)}, + {RUNE_C(0x001050), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001369), RUNE_C(0x001371)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001734)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DD)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x00193B)}, + {RUNE_C(0x001946), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B59)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001BF3)}, + {RUNE_C(0x001C00), RUNE_C(0x001C37)}, + {RUNE_C(0x001C40), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x00200C), RUNE_C(0x00200D)}, + {RUNE_C(0x00203F), RUNE_C(0x002040)}, + {RUNE_C(0x002054), RUNE_C(0x002054)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x00302F)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x003099), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A827)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A930), RUNE_C(0x00A953)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE33), RUNE_C(0x00FE34)}, + {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010EFD), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F50)}, + {RUNE_C(0x010F70), RUNE_C(0x010F85)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011046)}, + {RUNE_C(0x011066), RUNE_C(0x011075)}, + {RUNE_C(0x01107F), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011100), RUNE_C(0x011134)}, + {RUNE_C(0x011136), RUNE_C(0x01113F)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011173)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112EA)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133B), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011400), RUNE_C(0x01144A)}, + {RUNE_C(0x011450), RUNE_C(0x011459)}, + {RUNE_C(0x01145E), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011680), RUNE_C(0x0116B8)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172B)}, + {RUNE_C(0x011730), RUNE_C(0x011739)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01183A)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118E9)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x011943)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A50), RUNE_C(0x011A99)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C40)}, + {RUNE_C(0x011C50), RUNE_C(0x011C59)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D47)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F42)}, + {RUNE_C(0x011F50), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013440), RUNE_C(0x013455)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B00), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E900), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_idc(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ideo.c b/lib/unicode/prop/uprop_is_ideo.c new file mode 100644 index 0000000..54b535c --- /dev/null +++ b/lib/unicode/prop/uprop_is_ideo.c @@ -0,0 +1,42 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x003006), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003038), RUNE_C(0x00303A)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x009FFF)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ideo(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_ids.c b/lib/unicode/prop/uprop_is_ids.c new file mode 100644 index 0000000..0730213 --- /dev/null +++ b/lib/unicode/prop/uprop_is_ids.c @@ -0,0 +1,681 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000620), RUNE_C(0x00064A)}, + {RUNE_C(0x00066E), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000904), RUNE_C(0x000939)}, + {RUNE_C(0x00093D), RUNE_C(0x00093D)}, + {RUNE_C(0x000950), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000971), RUNE_C(0x000980)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C80), RUNE_C(0x000C80)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2)}, + {RUNE_C(0x000D04), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E33)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x001000), RUNE_C(0x00102A)}, + {RUNE_C(0x00103F), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x001055)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001061)}, + {RUNE_C(0x001065), RUNE_C(0x001066)}, + {RUNE_C(0x00106E), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x00108E), RUNE_C(0x00108E)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A16)}, + {RUNE_C(0x001A20), RUNE_C(0x001A54)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001B05), RUNE_C(0x001B33)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B83), RUNE_C(0x001BA0)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001C00), RUNE_C(0x001C23)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309B), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A882), RUNE_C(0x00A8B3)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A925)}, + {RUNE_C(0x00A930), RUNE_C(0x00A946)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A984), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D23)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011003), RUNE_C(0x011037)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011083), RUNE_C(0x0110AF)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x011144), RUNE_C(0x011144)}, + {RUNE_C(0x011147), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011183), RUNE_C(0x0111B2)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122B)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011361)}, + {RUNE_C(0x011400), RUNE_C(0x011434)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x01162F)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x01193F), RUNE_C(0x01193F)}, + {RUNE_C(0x011941), RUNE_C(0x011941)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D0)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E3)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D89)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011F02), RUNE_C(0x011F02)}, + {RUNE_C(0x011F04), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F33)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F50)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_ids(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_incb.c b/lib/unicode/prop/uprop_is_incb.c new file mode 100644 index 0000000..622b9ac --- /dev/null +++ b/lib/unicode/prop/uprop_is_incb.c @@ -0,0 +1,221 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000300), RUNE_C(0x00034E)}, + {RUNE_C(0x000350), RUNE_C(0x00036F)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4)}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x000819)}, + {RUNE_C(0x00081B), RUNE_C(0x000823)}, + {RUNE_C(0x000825), RUNE_C(0x000827)}, + {RUNE_C(0x000829), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008FF)}, + {RUNE_C(0x000915), RUNE_C(0x000939)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000954)}, + {RUNE_C(0x000958), RUNE_C(0x00095F)}, + {RUNE_C(0x000978), RUNE_C(0x00097F)}, + {RUNE_C(0x000995), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A95), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B15), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B5F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000C15), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000D15), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000E38), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E48), RUNE_C(0x000E4B)}, + {RUNE_C(0x000EB8), RUNE_C(0x000EBA)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECB)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F72)}, + {RUNE_C(0x000F74), RUNE_C(0x000F74)}, + {RUNE_C(0x000F7A), RUNE_C(0x000F7D)}, + {RUNE_C(0x000F80), RUNE_C(0x000F80)}, + {RUNE_C(0x000F82), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001037), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001714), RUNE_C(0x001714)}, + {RUNE_C(0x0017D2), RUNE_C(0x0017D2)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A75), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAB)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001C37), RUNE_C(0x001C37)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF)}, + {RUNE_C(0x00200D), RUNE_C(0x00200D)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010A0D), RUNE_C(0x010A0D)}, + {RUNE_C(0x010A0F), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x01107F), RUNE_C(0x01107F)}, + {RUNE_C(0x0110BA), RUNE_C(0x0110BA)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011133), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CA)}, + {RUNE_C(0x011236), RUNE_C(0x011236)}, + {RUNE_C(0x0112E9), RUNE_C(0x0112EA)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114C3), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115C0), RUNE_C(0x0115C0)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01172B), RUNE_C(0x01172B)}, + {RUNE_C(0x01183A), RUNE_C(0x01183A)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x011A34), RUNE_C(0x011A34)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A99), RUNE_C(0x011A99)}, + {RUNE_C(0x011D42), RUNE_C(0x011D42)}, + {RUNE_C(0x011D44), RUNE_C(0x011D45)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01D165), RUNE_C(0x01D165)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16E), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94A)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_incb(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_loe.c b/lib/unicode/prop/uprop_is_loe.c new file mode 100644 index 0000000..699b100 --- /dev/null +++ b/lib/unicode/prop/uprop_is_loe.c @@ -0,0 +1,28 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000E40), RUNE_C(0x000E44)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x0019B5), RUNE_C(0x0019B7)}, + {RUNE_C(0x0019BA), RUNE_C(0x0019BA)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AAB9)}, + {RUNE_C(0x00AABB), RUNE_C(0x00AABC)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_loe(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_lower.c b/lib/unicode/prop/uprop_is_lower.c new file mode 100644 index 0000000..3d3f6a9 --- /dev/null +++ b/lib/unicode/prop/uprop_is_lower.c @@ -0,0 +1,693 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, + 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000138)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018D)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019B)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AA), RUNE_C(0x0001AB)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001BA)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C6), RUNE_C(0x0001C6)}, + {RUNE_C(0x0001C9), RUNE_C(0x0001C9)}, + {RUNE_C(0x0001CC), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F0)}, + {RUNE_C(0x0001F3), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000221), RUNE_C(0x000221)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000239)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000293)}, + {RUNE_C(0x000295), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002C0), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FC)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9D)}, + {RUNE_C(0x001E9F), RUNE_C(0x001E9F)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001F87)}, + {RUNE_C(0x001F90), RUNE_C(0x001F97)}, + {RUNE_C(0x001FA0), RUNE_C(0x001FA7)}, + {RUNE_C(0x001FB0), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x00210A), RUNE_C(0x00210A)}, + {RUNE_C(0x00210E), RUNE_C(0x00210F)}, + {RUNE_C(0x002113), RUNE_C(0x002113)}, + {RUNE_C(0x00212F), RUNE_C(0x00212F)}, + {RUNE_C(0x002134), RUNE_C(0x002134)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213D)}, + {RUNE_C(0x002146), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C71), RUNE_C(0x002C71)}, + {RUNE_C(0x002C73), RUNE_C(0x002C74)}, + {RUNE_C(0x002C76), RUNE_C(0x002C7D)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A731)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A778)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A78E), RUNE_C(0x00A78E)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A795)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7AF), RUNE_C(0x00A7AF)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D5)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010780), RUNE_C(0x010780)}, + {RUNE_C(0x010783), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01D41A), RUNE_C(0x01D433)}, + {RUNE_C(0x01D44E), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D467)}, + {RUNE_C(0x01D482), RUNE_C(0x01D49B)}, + {RUNE_C(0x01D4B6), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D4CF)}, + {RUNE_C(0x01D4EA), RUNE_C(0x01D503)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D537)}, + {RUNE_C(0x01D552), RUNE_C(0x01D56B)}, + {RUNE_C(0x01D586), RUNE_C(0x01D59F)}, + {RUNE_C(0x01D5BA), RUNE_C(0x01D5D3)}, + {RUNE_C(0x01D5EE), RUNE_C(0x01D607)}, + {RUNE_C(0x01D622), RUNE_C(0x01D63B)}, + {RUNE_C(0x01D656), RUNE_C(0x01D66F)}, + {RUNE_C(0x01D68A), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6E1)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D71B)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D755)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D78F)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7C9)}, + {RUNE_C(0x01D7CB), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF09)}, + {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_lower(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_math.c b/lib/unicode/prop/uprop_is_math.c new file mode 100644 index 0000000..d53d487 --- /dev/null +++ b/lib/unicode/prop/uprop_is_math.c @@ -0,0 +1,157 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x0003D0), RUNE_C(0x0003D2)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D5)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F6)}, + {RUNE_C(0x000606), RUNE_C(0x000608)}, + {RUNE_C(0x002016), RUNE_C(0x002016)}, + {RUNE_C(0x002032), RUNE_C(0x002034)}, + {RUNE_C(0x002040), RUNE_C(0x002040)}, + {RUNE_C(0x002044), RUNE_C(0x002044)}, + {RUNE_C(0x002052), RUNE_C(0x002052)}, + {RUNE_C(0x002061), RUNE_C(0x002064)}, + {RUNE_C(0x00207A), RUNE_C(0x00207E)}, + {RUNE_C(0x00208A), RUNE_C(0x00208E)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020E6)}, + {RUNE_C(0x0020EB), RUNE_C(0x0020EF)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002128), RUNE_C(0x002129)}, + {RUNE_C(0x00212C), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002131)}, + {RUNE_C(0x002133), RUNE_C(0x002138)}, + {RUNE_C(0x00213C), RUNE_C(0x002149)}, + {RUNE_C(0x00214B), RUNE_C(0x00214B)}, + {RUNE_C(0x002190), RUNE_C(0x0021A7)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AE)}, + {RUNE_C(0x0021B0), RUNE_C(0x0021B1)}, + {RUNE_C(0x0021B6), RUNE_C(0x0021B7)}, + {RUNE_C(0x0021BC), RUNE_C(0x0021DB)}, + {RUNE_C(0x0021DD), RUNE_C(0x0021DD)}, + {RUNE_C(0x0021E4), RUNE_C(0x0021E5)}, + {RUNE_C(0x0021F4), RUNE_C(0x0022FF)}, + {RUNE_C(0x002308), RUNE_C(0x00230B)}, + {RUNE_C(0x002320), RUNE_C(0x002321)}, + {RUNE_C(0x00237C), RUNE_C(0x00237C)}, + {RUNE_C(0x00239B), RUNE_C(0x0023B5)}, + {RUNE_C(0x0023B7), RUNE_C(0x0023B7)}, + {RUNE_C(0x0023D0), RUNE_C(0x0023D0)}, + {RUNE_C(0x0023DC), RUNE_C(0x0023E2)}, + {RUNE_C(0x0025A0), RUNE_C(0x0025A1)}, + {RUNE_C(0x0025AE), RUNE_C(0x0025B7)}, + {RUNE_C(0x0025BC), RUNE_C(0x0025C1)}, + {RUNE_C(0x0025C6), RUNE_C(0x0025C7)}, + {RUNE_C(0x0025CA), RUNE_C(0x0025CB)}, + {RUNE_C(0x0025CF), RUNE_C(0x0025D3)}, + {RUNE_C(0x0025E2), RUNE_C(0x0025E2)}, + {RUNE_C(0x0025E4), RUNE_C(0x0025E4)}, + {RUNE_C(0x0025E7), RUNE_C(0x0025EC)}, + {RUNE_C(0x0025F8), RUNE_C(0x0025FF)}, + {RUNE_C(0x002605), RUNE_C(0x002606)}, + {RUNE_C(0x002640), RUNE_C(0x002640)}, + {RUNE_C(0x002642), RUNE_C(0x002642)}, + {RUNE_C(0x002660), RUNE_C(0x002663)}, + {RUNE_C(0x00266D), RUNE_C(0x00266F)}, + {RUNE_C(0x0027C0), RUNE_C(0x0027FF)}, + {RUNE_C(0x002900), RUNE_C(0x002AFF)}, + {RUNE_C(0x002B30), RUNE_C(0x002B44)}, + {RUNE_C(0x002B47), RUNE_C(0x002B4C)}, + {RUNE_C(0x00FB29), RUNE_C(0x00FB29)}, + {RUNE_C(0x00FE61), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE68)}, + {RUNE_C(0x00FF0B), RUNE_C(0x00FF0B)}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)}, + {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF5C), RUNE_C(0x00FF5C)}, + {RUNE_C(0x00FF5E), RUNE_C(0x00FF5E)}, + {RUNE_C(0x00FFE2), RUNE_C(0x00FFE2)}, + {RUNE_C(0x00FFE9), RUNE_C(0x00FFEC)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_math(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_pat_syn.c b/lib/unicode/prop/uprop_is_pat_syn.c new file mode 100644 index 0000000..cab14e8 --- /dev/null +++ b/lib/unicode/prop/uprop_is_pat_syn.c @@ -0,0 +1,41 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFC, + 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x5A, 0x43, 0x88, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002010), RUNE_C(0x002027)}, + {RUNE_C(0x002030), RUNE_C(0x00203E)}, + {RUNE_C(0x002041), RUNE_C(0x002053)}, + {RUNE_C(0x002055), RUNE_C(0x00205E)}, + {RUNE_C(0x002190), RUNE_C(0x00245F)}, + {RUNE_C(0x002500), RUNE_C(0x002775)}, + {RUNE_C(0x002794), RUNE_C(0x002BFF)}, + {RUNE_C(0x002E00), RUNE_C(0x002E7F)}, + {RUNE_C(0x003001), RUNE_C(0x003003)}, + {RUNE_C(0x003008), RUNE_C(0x003020)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00FD3E), RUNE_C(0x00FD3F)}, + {RUNE_C(0x00FE45), RUNE_C(0x00FE46)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_pat_syn(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_pcm.c b/lib/unicode/prop/uprop_is_pcm.c new file mode 100644 index 0000000..eb28cbb --- /dev/null +++ b/lib/unicode/prop/uprop_is_pcm.c @@ -0,0 +1,28 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000600), RUNE_C(0x000605)}, + {RUNE_C(0x0006DD), RUNE_C(0x0006DD)}, + {RUNE_C(0x00070F), RUNE_C(0x00070F)}, + {RUNE_C(0x000890), RUNE_C(0x000891)}, + {RUNE_C(0x0008E2), RUNE_C(0x0008E2)}, + {RUNE_C(0x0110BD), RUNE_C(0x0110BD)}, + {RUNE_C(0x0110CD), RUNE_C(0x0110CD)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_pcm(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_qmark.c b/lib/unicode/prop/uprop_is_qmark.c new file mode 100644 index 0000000..44925e5 --- /dev/null +++ b/lib/unicode/prop/uprop_is_qmark.c @@ -0,0 +1,37 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002018), RUNE_C(0x00201F)}, + {RUNE_C(0x002039), RUNE_C(0x00203A)}, + {RUNE_C(0x002E42), RUNE_C(0x002E42)}, + {RUNE_C(0x00300C), RUNE_C(0x00300F)}, + {RUNE_C(0x00301D), RUNE_C(0x00301F)}, + {RUNE_C(0x00FE41), RUNE_C(0x00FE44)}, + {RUNE_C(0x00FF02), RUNE_C(0x00FF02)}, + {RUNE_C(0x00FF07), RUNE_C(0x00FF07)}, + {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_qmark(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_radical.c b/lib/unicode/prop/uprop_is_radical.c new file mode 100644 index 0000000..ff4a376 --- /dev/null +++ b/lib/unicode/prop/uprop_is_radical.c @@ -0,0 +1,24 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x002E80), RUNE_C(0x002E99)}, + {RUNE_C(0x002E9B), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_radical(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_sd.c b/lib/unicode/prop/uprop_is_sd.c new file mode 100644 index 0000000..e547820 --- /dev/null +++ b/lib/unicode/prop/uprop_is_sd.c @@ -0,0 +1,61 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x000268), RUNE_C(0x000268)}, + {RUNE_C(0x00029D), RUNE_C(0x00029D)}, + {RUNE_C(0x0002B2), RUNE_C(0x0002B2)}, + {RUNE_C(0x0003F3), RUNE_C(0x0003F3)}, + {RUNE_C(0x000456), RUNE_C(0x000456)}, + {RUNE_C(0x000458), RUNE_C(0x000458)}, + {RUNE_C(0x001D62), RUNE_C(0x001D62)}, + {RUNE_C(0x001D96), RUNE_C(0x001D96)}, + {RUNE_C(0x001DA4), RUNE_C(0x001DA4)}, + {RUNE_C(0x001DA8), RUNE_C(0x001DA8)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x002148), RUNE_C(0x002149)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7C)}, + {RUNE_C(0x01D422), RUNE_C(0x01D423)}, + {RUNE_C(0x01D456), RUNE_C(0x01D457)}, + {RUNE_C(0x01D48A), RUNE_C(0x01D48B)}, + {RUNE_C(0x01D4BE), RUNE_C(0x01D4BF)}, + {RUNE_C(0x01D4F2), RUNE_C(0x01D4F3)}, + {RUNE_C(0x01D526), RUNE_C(0x01D527)}, + {RUNE_C(0x01D55A), RUNE_C(0x01D55B)}, + {RUNE_C(0x01D58E), RUNE_C(0x01D58F)}, + {RUNE_C(0x01D5C2), RUNE_C(0x01D5C3)}, + {RUNE_C(0x01D5F6), RUNE_C(0x01D5F7)}, + {RUNE_C(0x01D62A), RUNE_C(0x01D62B)}, + {RUNE_C(0x01D65E), RUNE_C(0x01D65F)}, + {RUNE_C(0x01D692), RUNE_C(0x01D693)}, + {RUNE_C(0x01DF1A), RUNE_C(0x01DF1A)}, + {RUNE_C(0x01E04C), RUNE_C(0x01E04D)}, + {RUNE_C(0x01E068), RUNE_C(0x01E068)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_sd(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_sterm.c b/lib/unicode/prop/uprop_is_sterm.c new file mode 100644 index 0000000..a375061 --- /dev/null +++ b/lib/unicode/prop/uprop_is_sterm.c @@ -0,0 +1,106 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000589), RUNE_C(0x000589)}, + {RUNE_C(0x00061D), RUNE_C(0x00061F)}, + {RUNE_C(0x0006D4), RUNE_C(0x0006D4)}, + {RUNE_C(0x000700), RUNE_C(0x000702)}, + {RUNE_C(0x0007F9), RUNE_C(0x0007F9)}, + {RUNE_C(0x000837), RUNE_C(0x000837)}, + {RUNE_C(0x000839), RUNE_C(0x000839)}, + {RUNE_C(0x00083D), RUNE_C(0x00083E)}, + {RUNE_C(0x000964), RUNE_C(0x000965)}, + {RUNE_C(0x00104A), RUNE_C(0x00104B)}, + {RUNE_C(0x001362), RUNE_C(0x001362)}, + {RUNE_C(0x001367), RUNE_C(0x001368)}, + {RUNE_C(0x00166E), RUNE_C(0x00166E)}, + {RUNE_C(0x001735), RUNE_C(0x001736)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017D5)}, + {RUNE_C(0x001803), RUNE_C(0x001803)}, + {RUNE_C(0x001809), RUNE_C(0x001809)}, + {RUNE_C(0x001944), RUNE_C(0x001945)}, + {RUNE_C(0x001AA8), RUNE_C(0x001AAB)}, + {RUNE_C(0x001B5A), RUNE_C(0x001B5B)}, + {RUNE_C(0x001B5E), RUNE_C(0x001B5F)}, + {RUNE_C(0x001B7D), RUNE_C(0x001B7E)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C3C)}, + {RUNE_C(0x001C7E), RUNE_C(0x001C7F)}, + {RUNE_C(0x00203C), RUNE_C(0x00203D)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002E2E), RUNE_C(0x002E2E)}, + {RUNE_C(0x002E3C), RUNE_C(0x002E3C)}, + {RUNE_C(0x002E53), RUNE_C(0x002E54)}, + {RUNE_C(0x003002), RUNE_C(0x003002)}, + {RUNE_C(0x00A4FF), RUNE_C(0x00A4FF)}, + {RUNE_C(0x00A60E), RUNE_C(0x00A60F)}, + {RUNE_C(0x00A6F3), RUNE_C(0x00A6F3)}, + {RUNE_C(0x00A6F7), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A876), RUNE_C(0x00A877)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)}, + {RUNE_C(0x00A92F), RUNE_C(0x00A92F)}, + {RUNE_C(0x00A9C8), RUNE_C(0x00A9C9)}, + {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)}, + {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)}, + {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)}, + {RUNE_C(0x00FE52), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE56), RUNE_C(0x00FE57)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF01)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)}, + {RUNE_C(0x00FF61), RUNE_C(0x00FF61)}, + {RUNE_C(0x010A56), RUNE_C(0x010A57)}, + {RUNE_C(0x010F55), RUNE_C(0x010F59)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x011047), RUNE_C(0x011048)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x011141), RUNE_C(0x011143)}, + {RUNE_C(0x0111C5), RUNE_C(0x0111C6)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CD)}, + {RUNE_C(0x0111DE), RUNE_C(0x0111DF)}, + {RUNE_C(0x011238), RUNE_C(0x011239)}, + {RUNE_C(0x01123B), RUNE_C(0x01123C)}, + {RUNE_C(0x0112A9), RUNE_C(0x0112A9)}, + {RUNE_C(0x01144B), RUNE_C(0x01144C)}, + {RUNE_C(0x0115C2), RUNE_C(0x0115C3)}, + {RUNE_C(0x0115C9), RUNE_C(0x0115D7)}, + {RUNE_C(0x011641), RUNE_C(0x011642)}, + {RUNE_C(0x01173C), RUNE_C(0x01173E)}, + {RUNE_C(0x011944), RUNE_C(0x011944)}, + {RUNE_C(0x011946), RUNE_C(0x011946)}, + {RUNE_C(0x011A42), RUNE_C(0x011A43)}, + {RUNE_C(0x011A9B), RUNE_C(0x011A9C)}, + {RUNE_C(0x011C41), RUNE_C(0x011C42)}, + {RUNE_C(0x011EF7), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F43), RUNE_C(0x011F44)}, + {RUNE_C(0x016A6E), RUNE_C(0x016A6F)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B37), RUNE_C(0x016B38)}, + {RUNE_C(0x016B44), RUNE_C(0x016B44)}, + {RUNE_C(0x016E98), RUNE_C(0x016E98)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01DA88), RUNE_C(0x01DA88)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_sterm(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_term.c b/lib/unicode/prop/uprop_is_term.c new file mode 100644 index 0000000..4789e1a --- /dev/null +++ b/lib/unicode/prop/uprop_is_term.c @@ -0,0 +1,131 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x02, 0x50, 0x00, 0x8C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00037E), RUNE_C(0x00037E)}, + {RUNE_C(0x000387), RUNE_C(0x000387)}, + {RUNE_C(0x000589), RUNE_C(0x000589)}, + {RUNE_C(0x0005C3), RUNE_C(0x0005C3)}, + {RUNE_C(0x00060C), RUNE_C(0x00060C)}, + {RUNE_C(0x00061B), RUNE_C(0x00061B)}, + {RUNE_C(0x00061D), RUNE_C(0x00061F)}, + {RUNE_C(0x0006D4), RUNE_C(0x0006D4)}, + {RUNE_C(0x000700), RUNE_C(0x00070A)}, + {RUNE_C(0x00070C), RUNE_C(0x00070C)}, + {RUNE_C(0x0007F8), RUNE_C(0x0007F9)}, + {RUNE_C(0x000830), RUNE_C(0x00083E)}, + {RUNE_C(0x00085E), RUNE_C(0x00085E)}, + {RUNE_C(0x000964), RUNE_C(0x000965)}, + {RUNE_C(0x000E5A), RUNE_C(0x000E5B)}, + {RUNE_C(0x000F08), RUNE_C(0x000F08)}, + {RUNE_C(0x000F0D), RUNE_C(0x000F12)}, + {RUNE_C(0x00104A), RUNE_C(0x00104B)}, + {RUNE_C(0x001361), RUNE_C(0x001368)}, + {RUNE_C(0x00166E), RUNE_C(0x00166E)}, + {RUNE_C(0x0016EB), RUNE_C(0x0016ED)}, + {RUNE_C(0x001735), RUNE_C(0x001736)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017D6)}, + {RUNE_C(0x0017DA), RUNE_C(0x0017DA)}, + {RUNE_C(0x001802), RUNE_C(0x001805)}, + {RUNE_C(0x001808), RUNE_C(0x001809)}, + {RUNE_C(0x001944), RUNE_C(0x001945)}, + {RUNE_C(0x001AA8), RUNE_C(0x001AAB)}, + {RUNE_C(0x001B5A), RUNE_C(0x001B5B)}, + {RUNE_C(0x001B5D), RUNE_C(0x001B5F)}, + {RUNE_C(0x001B7D), RUNE_C(0x001B7E)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C3F)}, + {RUNE_C(0x001C7E), RUNE_C(0x001C7F)}, + {RUNE_C(0x00203C), RUNE_C(0x00203D)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002E2E), RUNE_C(0x002E2E)}, + {RUNE_C(0x002E3C), RUNE_C(0x002E3C)}, + {RUNE_C(0x002E41), RUNE_C(0x002E41)}, + {RUNE_C(0x002E4C), RUNE_C(0x002E4C)}, + {RUNE_C(0x002E4E), RUNE_C(0x002E4F)}, + {RUNE_C(0x002E53), RUNE_C(0x002E54)}, + {RUNE_C(0x003001), RUNE_C(0x003002)}, + {RUNE_C(0x00A4FE), RUNE_C(0x00A4FF)}, + {RUNE_C(0x00A60D), RUNE_C(0x00A60F)}, + {RUNE_C(0x00A6F3), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A876), RUNE_C(0x00A877)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)}, + {RUNE_C(0x00A92F), RUNE_C(0x00A92F)}, + {RUNE_C(0x00A9C7), RUNE_C(0x00A9C9)}, + {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)}, + {RUNE_C(0x00AADF), RUNE_C(0x00AADF)}, + {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)}, + {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE57)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF01)}, + {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B)}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)}, + {RUNE_C(0x00FF61), RUNE_C(0x00FF61)}, + {RUNE_C(0x00FF64), RUNE_C(0x00FF64)}, + {RUNE_C(0x01039F), RUNE_C(0x01039F)}, + {RUNE_C(0x0103D0), RUNE_C(0x0103D0)}, + {RUNE_C(0x010857), RUNE_C(0x010857)}, + {RUNE_C(0x01091F), RUNE_C(0x01091F)}, + {RUNE_C(0x010A56), RUNE_C(0x010A57)}, + {RUNE_C(0x010AF0), RUNE_C(0x010AF5)}, + {RUNE_C(0x010B3A), RUNE_C(0x010B3F)}, + {RUNE_C(0x010B99), RUNE_C(0x010B9C)}, + {RUNE_C(0x010F55), RUNE_C(0x010F59)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x011047), RUNE_C(0x01104D)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x011141), RUNE_C(0x011143)}, + {RUNE_C(0x0111C5), RUNE_C(0x0111C6)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CD)}, + {RUNE_C(0x0111DE), RUNE_C(0x0111DF)}, + {RUNE_C(0x011238), RUNE_C(0x01123C)}, + {RUNE_C(0x0112A9), RUNE_C(0x0112A9)}, + {RUNE_C(0x01144B), RUNE_C(0x01144D)}, + {RUNE_C(0x01145A), RUNE_C(0x01145B)}, + {RUNE_C(0x0115C2), RUNE_C(0x0115C5)}, + {RUNE_C(0x0115C9), RUNE_C(0x0115D7)}, + {RUNE_C(0x011641), RUNE_C(0x011642)}, + {RUNE_C(0x01173C), RUNE_C(0x01173E)}, + {RUNE_C(0x011944), RUNE_C(0x011944)}, + {RUNE_C(0x011946), RUNE_C(0x011946)}, + {RUNE_C(0x011A42), RUNE_C(0x011A43)}, + {RUNE_C(0x011A9B), RUNE_C(0x011A9C)}, + {RUNE_C(0x011AA1), RUNE_C(0x011AA2)}, + {RUNE_C(0x011C41), RUNE_C(0x011C43)}, + {RUNE_C(0x011C71), RUNE_C(0x011C71)}, + {RUNE_C(0x011EF7), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F43), RUNE_C(0x011F44)}, + {RUNE_C(0x012470), RUNE_C(0x012474)}, + {RUNE_C(0x016A6E), RUNE_C(0x016A6F)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B37), RUNE_C(0x016B39)}, + {RUNE_C(0x016B44), RUNE_C(0x016B44)}, + {RUNE_C(0x016E97), RUNE_C(0x016E98)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01DA87), RUNE_C(0x01DA8A)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_term(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_uideo.c b/lib/unicode/prop/uprop_is_uideo.c new file mode 100644 index 0000000..d90cfea --- /dev/null +++ b/lib/unicode/prop/uprop_is_uideo.c @@ -0,0 +1,38 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x009FFF)}, + {RUNE_C(0x00FA0E), RUNE_C(0x00FA0F)}, + {RUNE_C(0x00FA11), RUNE_C(0x00FA11)}, + {RUNE_C(0x00FA13), RUNE_C(0x00FA14)}, + {RUNE_C(0x00FA1F), RUNE_C(0x00FA1F)}, + {RUNE_C(0x00FA21), RUNE_C(0x00FA21)}, + {RUNE_C(0x00FA23), RUNE_C(0x00FA24)}, + {RUNE_C(0x00FA27), RUNE_C(0x00FA29)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_uideo(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_upper.c b/lib/unicode/prop/uprop_is_upper.c new file mode 100644 index 0000000..a5ceee0 --- /dev/null +++ b/lib/unicode/prop/uprop_is_upper.c @@ -0,0 +1,676 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x00014A), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C4)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C7)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CA)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F1)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003CF)}, + {RUNE_C(0x0003D2), RUNE_C(0x0003D4)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F4)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001FB8), RUNE_C(0x001FBB)}, + {RUNE_C(0x001FC8), RUNE_C(0x001FCB)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF8), RUNE_C(0x001FFB)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210B), RUNE_C(0x00210D)}, + {RUNE_C(0x002110), RUNE_C(0x002112)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x002130), RUNE_C(0x002133)}, + {RUNE_C(0x00213E), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002145)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01D400), RUNE_C(0x01D419)}, + {RUNE_C(0x01D434), RUNE_C(0x01D44D)}, + {RUNE_C(0x01D468), RUNE_C(0x01D481)}, + {RUNE_C(0x01D49C), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B5)}, + {RUNE_C(0x01D4D0), RUNE_C(0x01D4E9)}, + {RUNE_C(0x01D504), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D538), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D56C), RUNE_C(0x01D585)}, + {RUNE_C(0x01D5A0), RUNE_C(0x01D5B9)}, + {RUNE_C(0x01D5D4), RUNE_C(0x01D5ED)}, + {RUNE_C(0x01D608), RUNE_C(0x01D621)}, + {RUNE_C(0x01D63C), RUNE_C(0x01D655)}, + {RUNE_C(0x01D670), RUNE_C(0x01D689)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6E2), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D71C), RUNE_C(0x01D734)}, + {RUNE_C(0x01D756), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D790), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7CA), RUNE_C(0x01D7CA)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_upper(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_vs.c b/lib/unicode/prop/uprop_is_vs.c new file mode 100644 index 0000000..25751aa --- /dev/null +++ b/lib/unicode/prop/uprop_is_vs.c @@ -0,0 +1,25 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x00180F)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_vs(rune ch) +{ + return mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_wspace.c b/lib/unicode/prop/uprop_is_wspace.c new file mode 100644 index 0000000..3306eec --- /dev/null +++ b/lib/unicode/prop/uprop_is_wspace.c @@ -0,0 +1,34 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x3E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x001680), RUNE_C(0x001680)}, + {RUNE_C(0x002000), RUNE_C(0x00200A)}, + {RUNE_C(0x002028), RUNE_C(0x002029)}, + {RUNE_C(0x00202F), RUNE_C(0x00202F)}, + {RUNE_C(0x00205F), RUNE_C(0x00205F)}, + {RUNE_C(0x003000), RUNE_C(0x003000)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_wspace(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_xidc.c b/lib/unicode/prop/uprop_is_xidc.c new file mode 100644 index 0000000..2aa4033 --- /dev/null +++ b/lib/unicode/prop/uprop_is_xidc.c @@ -0,0 +1,794 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA0, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000300), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000669)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00074A)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000800), RUNE_C(0x00082D)}, + {RUNE_C(0x000840), RUNE_C(0x00085B)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x000898), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000963)}, + {RUNE_C(0x000966), RUNE_C(0x00096F)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E4E)}, + {RUNE_C(0x000E50), RUNE_C(0x000E59)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F20), RUNE_C(0x000F29)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001000), RUNE_C(0x001049)}, + {RUNE_C(0x001050), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001369), RUNE_C(0x001371)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001734)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DD)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x00193B)}, + {RUNE_C(0x001946), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B59)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001BF3)}, + {RUNE_C(0x001C00), RUNE_C(0x001C37)}, + {RUNE_C(0x001C40), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x00200C), RUNE_C(0x00200D)}, + {RUNE_C(0x00203F), RUNE_C(0x002040)}, + {RUNE_C(0x002054), RUNE_C(0x002054)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x00302F)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A827)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A930), RUNE_C(0x00A953)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)}, + {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE33), RUNE_C(0x00FE34)}, + {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)}, + {RUNE_C(0x00FE71), RUNE_C(0x00FE71)}, + {RUNE_C(0x00FE73), RUNE_C(0x00FE73)}, + {RUNE_C(0x00FE77), RUNE_C(0x00FE77)}, + {RUNE_C(0x00FE79), RUNE_C(0x00FE79)}, + {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)}, + {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)}, + {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010EFD), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F50)}, + {RUNE_C(0x010F70), RUNE_C(0x010F85)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011046)}, + {RUNE_C(0x011066), RUNE_C(0x011075)}, + {RUNE_C(0x01107F), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011100), RUNE_C(0x011134)}, + {RUNE_C(0x011136), RUNE_C(0x01113F)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011173)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112EA)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133B), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011400), RUNE_C(0x01144A)}, + {RUNE_C(0x011450), RUNE_C(0x011459)}, + {RUNE_C(0x01145E), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011680), RUNE_C(0x0116B8)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172B)}, + {RUNE_C(0x011730), RUNE_C(0x011739)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01183A)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118E9)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x011943)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A50), RUNE_C(0x011A99)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C40)}, + {RUNE_C(0x011C50), RUNE_C(0x011C59)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D47)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F42)}, + {RUNE_C(0x011F50), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013440), RUNE_C(0x013455)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B00), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E900), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_xidc(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} diff --git a/lib/unicode/prop/uprop_is_xids.c b/lib/unicode/prop/uprop_is_xids.c new file mode 100644 index 0000000..4ee559e --- /dev/null +++ b/lib/unicode/prop/uprop_is_xids.c @@ -0,0 +1,688 @@ +/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "bitset.h" +#include "rune.h" +#include "unicode/prop.h" + +/* clang-format off */ + +static constexpr bitset(bs, LATIN1_MAX) = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, + 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, +}; + +static const struct { + rune lo, hi; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000620), RUNE_C(0x00064A)}, + {RUNE_C(0x00066E), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000904), RUNE_C(0x000939)}, + {RUNE_C(0x00093D), RUNE_C(0x00093D)}, + {RUNE_C(0x000950), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000971), RUNE_C(0x000980)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C80), RUNE_C(0x000C80)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2)}, + {RUNE_C(0x000D04), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E32)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB2)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x001000), RUNE_C(0x00102A)}, + {RUNE_C(0x00103F), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x001055)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001061)}, + {RUNE_C(0x001065), RUNE_C(0x001066)}, + {RUNE_C(0x00106E), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x00108E), RUNE_C(0x00108E)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A16)}, + {RUNE_C(0x001A20), RUNE_C(0x001A54)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001B05), RUNE_C(0x001B33)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B83), RUNE_C(0x001BA0)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001C00), RUNE_C(0x001C23)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A882), RUNE_C(0x00A8B3)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A925)}, + {RUNE_C(0x00A930), RUNE_C(0x00A946)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A984), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)}, + {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)}, + {RUNE_C(0x00FE71), RUNE_C(0x00FE71)}, + {RUNE_C(0x00FE73), RUNE_C(0x00FE73)}, + {RUNE_C(0x00FE77), RUNE_C(0x00FE77)}, + {RUNE_C(0x00FE79), RUNE_C(0x00FE79)}, + {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)}, + {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)}, + {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FF9D)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D23)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011003), RUNE_C(0x011037)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011083), RUNE_C(0x0110AF)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x011144), RUNE_C(0x011144)}, + {RUNE_C(0x011147), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011183), RUNE_C(0x0111B2)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122B)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011361)}, + {RUNE_C(0x011400), RUNE_C(0x011434)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x01162F)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x01193F), RUNE_C(0x01193F)}, + {RUNE_C(0x011941), RUNE_C(0x011941)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D0)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E3)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D89)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011F02), RUNE_C(0x011F02)}, + {RUNE_C(0x011F04), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F33)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F50)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +__MLIB_DEFINE_BSEARCH_CONTAINS(lookup) + +bool +uprop_is_xids(rune ch) +{ + return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch); +} -- cgit v1.2.3