25
26 package java.lang;
27
28 import java.util.Arrays;
29 import java.util.Map;
30 import java.util.HashMap;
31 import java.util.Locale;
32
33 import jdk.internal.HotSpotIntrinsicCandidate;
34
35 /**
36 * The {@code Character} class wraps a value of the primitive
37 * type {@code char} in an object. An object of type
38 * {@code Character} contains a single field whose type is
39 * {@code char}.
40 * <p>
41 * In addition, this class provides several methods for determining
42 * a character's category (lowercase letter, digit, etc.) and for converting
43 * characters from uppercase to lowercase and vice versa.
44 * <p>
45 * Character information is based on the Unicode Standard, version 8.0.0.
46 * <p>
47 * The methods and data of class {@code Character} are defined by
48 * the information in the <i>UnicodeData</i> file that is part of the
49 * Unicode Character Database maintained by the Unicode
50 * Consortium. This file specifies various properties including name
51 * and general category for every defined Unicode code point or
52 * character range.
53 * <p>
54 * The file and its description are available from the Unicode Consortium at:
55 * <ul>
56 * <li><a href="http://www.unicode.org">http://www.unicode.org</a>
57 * </ul>
58 *
59 * <h3><a id="unicode">Unicode Character Representations</a></h3>
60 *
61 * <p>The {@code char} data type (and therefore the value that a
62 * {@code Character} object encapsulates) are based on the
63 * original Unicode specification, which defined characters as
64 * fixed-width 16-bit entities. The Unicode Standard has since been
65 * changed to allow for characters whose representation requires more
659 }
660 }
661
662 // See http://www.unicode.org/Public/UNIDATA/Blocks.txt
663 // for the latest specification of Unicode Blocks.
664
665 /**
666 * A family of character subsets representing the character blocks in the
667 * Unicode specification. Character blocks generally define characters
668 * used for a specific script or purpose. A character is contained by
669 * at most one Unicode block.
670 *
671 * @since 1.2
672 */
673 public static final class UnicodeBlock extends Subset {
674 /**
675 * 510 - the expected number of entities
676 * 0.75 - the default load factor of HashMap
677 */
678 private static Map<String, UnicodeBlock> map =
679 new HashMap<>((int)(510 / 0.75f + 1.0f));
680
681 /**
682 * Creates a UnicodeBlock with the given identifier name.
683 * This name must be the same as the block identifier.
684 */
685 private UnicodeBlock(String idName) {
686 super(idName);
687 map.put(idName, this);
688 }
689
690 /**
691 * Creates a UnicodeBlock with the given identifier name and
692 * alias name.
693 */
694 private UnicodeBlock(String idName, String alias) {
695 this(idName);
696 map.put(alias, this);
697 }
698
699 /**
2919 /**
2920 * Constant for the "Supplemental Symbols and Pictographs" Unicode
2921 * character block.
2922 * @since 9
2923 */
2924 public static final UnicodeBlock SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS =
2925 new UnicodeBlock("SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS",
2926 "SUPPLEMENTAL SYMBOLS AND PICTOGRAPHS",
2927 "SUPPLEMENTALSYMBOLSANDPICTOGRAPHS");
2928
2929 /**
2930 * Constant for the "CJK Unified Ideographs Extension E" Unicode
2931 * character block.
2932 * @since 9
2933 */
2934 public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E =
2935 new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E",
2936 "CJK UNIFIED IDEOGRAPHS EXTENSION E",
2937 "CJKUNIFIEDIDEOGRAPHSEXTENSIONE");
2938
2939
2940 private static final int blockStarts[] = {
2941 0x0000, // 0000..007F; Basic Latin
2942 0x0080, // 0080..00FF; Latin-1 Supplement
2943 0x0100, // 0100..017F; Latin Extended-A
2944 0x0180, // 0180..024F; Latin Extended-B
2945 0x0250, // 0250..02AF; IPA Extensions
2946 0x02B0, // 02B0..02FF; Spacing Modifier Letters
2947 0x0300, // 0300..036F; Combining Diacritical Marks
2948 0x0370, // 0370..03FF; Greek and Coptic
2949 0x0400, // 0400..04FF; Cyrillic
2950 0x0500, // 0500..052F; Cyrillic Supplement
2951 0x0530, // 0530..058F; Armenian
2952 0x0590, // 0590..05FF; Hebrew
2953 0x0600, // 0600..06FF; Arabic
2954 0x0700, // 0700..074F; Syriac
2955 0x0750, // 0750..077F; Arabic Supplement
2956 0x0780, // 0780..07BF; Thaana
2957 0x07C0, // 07C0..07FF; NKo
2958 0x0800, // 0800..083F; Samaritan
2959 0x0840, // 0840..085F; Mandaic
2960 0x0860, // unassigned
2961 0x08A0, // 08A0..08FF; Arabic Extended-A
2962 0x0900, // 0900..097F; Devanagari
2963 0x0980, // 0980..09FF; Bengali
2964 0x0A00, // 0A00..0A7F; Gurmukhi
2965 0x0A80, // 0A80..0AFF; Gujarati
2966 0x0B00, // 0B00..0B7F; Oriya
2967 0x0B80, // 0B80..0BFF; Tamil
2968 0x0C00, // 0C00..0C7F; Telugu
2969 0x0C80, // 0C80..0CFF; Kannada
2970 0x0D00, // 0D00..0D7F; Malayalam
2971 0x0D80, // 0D80..0DFF; Sinhala
2972 0x0E00, // 0E00..0E7F; Thai
2973 0x0E80, // 0E80..0EFF; Lao
2974 0x0F00, // 0F00..0FFF; Tibetan
2975 0x1000, // 1000..109F; Myanmar
2976 0x10A0, // 10A0..10FF; Georgian
2977 0x1100, // 1100..11FF; Hangul Jamo
2978 0x1200, // 1200..137F; Ethiopic
2979 0x1380, // 1380..139F; Ethiopic Supplement
2980 0x13A0, // 13A0..13FF; Cherokee
2983 0x16A0, // 16A0..16FF; Runic
2984 0x1700, // 1700..171F; Tagalog
2985 0x1720, // 1720..173F; Hanunoo
2986 0x1740, // 1740..175F; Buhid
2987 0x1760, // 1760..177F; Tagbanwa
2988 0x1780, // 1780..17FF; Khmer
2989 0x1800, // 1800..18AF; Mongolian
2990 0x18B0, // 18B0..18FF; Unified Canadian Aboriginal Syllabics Extended
2991 0x1900, // 1900..194F; Limbu
2992 0x1950, // 1950..197F; Tai Le
2993 0x1980, // 1980..19DF; New Tai Lue
2994 0x19E0, // 19E0..19FF; Khmer Symbols
2995 0x1A00, // 1A00..1A1F; Buginese
2996 0x1A20, // 1A20..1AAF; Tai Tham
2997 0x1AB0, // 1AB0..1AFF; Combining Diacritical Marks Extended
2998 0x1B00, // 1B00..1B7F; Balinese
2999 0x1B80, // 1B80..1BBF; Sundanese
3000 0x1BC0, // 1BC0..1BFF; Batak
3001 0x1C00, // 1C00..1C4F; Lepcha
3002 0x1C50, // 1C50..1C7F; Ol Chiki
3003 0x1C80, // unassigned
3004 0x1CC0, // 1CC0..1CCF; Sundanese Supplement
3005 0x1CD0, // 1CD0..1CFF; Vedic Extensions
3006 0x1D00, // 1D00..1D7F; Phonetic Extensions
3007 0x1D80, // 1D80..1DBF; Phonetic Extensions Supplement
3008 0x1DC0, // 1DC0..1DFF; Combining Diacritical Marks Supplement
3009 0x1E00, // 1E00..1EFF; Latin Extended Additional
3010 0x1F00, // 1F00..1FFF; Greek Extended
3011 0x2000, // 2000..206F; General Punctuation
3012 0x2070, // 2070..209F; Superscripts and Subscripts
3013 0x20A0, // 20A0..20CF; Currency Symbols
3014 0x20D0, // 20D0..20FF; Combining Diacritical Marks for Symbols
3015 0x2100, // 2100..214F; Letterlike Symbols
3016 0x2150, // 2150..218F; Number Forms
3017 0x2190, // 2190..21FF; Arrows
3018 0x2200, // 2200..22FF; Mathematical Operators
3019 0x2300, // 2300..23FF; Miscellaneous Technical
3020 0x2400, // 2400..243F; Control Pictures
3021 0x2440, // 2440..245F; Optical Character Recognition
3022 0x2460, // 2460..24FF; Enclosed Alphanumerics
3023 0x2500, // 2500..257F; Box Drawing
3103 0xFFF0, // FFF0..FFFF; Specials
3104 0x10000, // 10000..1007F; Linear B Syllabary
3105 0x10080, // 10080..100FF; Linear B Ideograms
3106 0x10100, // 10100..1013F; Aegean Numbers
3107 0x10140, // 10140..1018F; Ancient Greek Numbers
3108 0x10190, // 10190..101CF; Ancient Symbols
3109 0x101D0, // 101D0..101FF; Phaistos Disc
3110 0x10200, // unassigned
3111 0x10280, // 10280..1029F; Lycian
3112 0x102A0, // 102A0..102DF; Carian
3113 0x102E0, // 102E0..102FF; Coptic Epact Numbers
3114 0x10300, // 10300..1032F; Old Italic
3115 0x10330, // 10330..1034F; Gothic
3116 0x10350, // 10350..1037F; Old Permic
3117 0x10380, // 10380..1039F; Ugaritic
3118 0x103A0, // 103A0..103DF; Old Persian
3119 0x103E0, // unassigned
3120 0x10400, // 10400..1044F; Deseret
3121 0x10450, // 10450..1047F; Shavian
3122 0x10480, // 10480..104AF; Osmanya
3123 0x104B0, // unassigned
3124 0x10500, // 10500..1052F; Elbasan
3125 0x10530, // 10530..1056F; Caucasian Albanian
3126 0x10570, // unassigned
3127 0x10600, // 10600..1077F; Linear A
3128 0x10780, // unassigned
3129 0x10800, // 10800..1083F; Cypriot Syllabary
3130 0x10840, // 10840..1085F; Imperial Aramaic
3131 0x10860, // 10860..1087F; Palmyrene
3132 0x10880, // 10880..108AF; Nabataean
3133 0x108B0, // unassigned
3134 0x108E0, // 108E0..108FF; Hatran
3135 0x10900, // 10900..1091F; Phoenician
3136 0x10920, // 10920..1093F; Lydian
3137 0x10940, // unassigned
3138 0x10980, // 10980..1099F; Meroitic Hieroglyphs
3139 0x109A0, // 109A0..109FF; Meroitic Cursive
3140 0x10A00, // 10A00..10A5F; Kharoshthi
3141 0x10A60, // 10A60..10A7F; Old South Arabian
3142 0x10A80, // 10A80..10A9F; Old North Arabian
3143 0x10AA0, // unassigned
3149 0x10BB0, // unassigned
3150 0x10C00, // 10C00..10C4F; Old Turkic
3151 0x10C50, // unassigned
3152 0x10C80, // 10C80..10CFF; Old Hungarian
3153 0x10D00, // unassigned
3154 0x10E60, // 10E60..10E7F; Rumi Numeral Symbols
3155 0x10E80, // unassigned
3156 0x11000, // 11000..1107F; Brahmi
3157 0x11080, // 11080..110CF; Kaithi
3158 0x110D0, // 110D0..110FF; Sora Sompeng
3159 0x11100, // 11100..1114F; Chakma
3160 0x11150, // 11150..1117F; Mahajani
3161 0x11180, // 11180..111DF; Sharada
3162 0x111E0, // 111E0..111FF; Sinhala Archaic Numbers
3163 0x11200, // 11200..1124F; Khojki
3164 0x11250, // unassigned
3165 0x11280, // 11280..112AF; Multani
3166 0x112B0, // 112B0..112FF; Khudawadi
3167 0x11300, // 11300..1137F; Grantha
3168 0x11380, // unassigned
3169 0x11480, // 11480..114DF; Tirhuta
3170 0x114E0, // unassigned
3171 0x11580, // 11580..115FF; Siddham
3172 0x11600, // 11600..1165F; Modi
3173 0x11660, // unassigned
3174 0x11680, // 11680..116CF; Takri
3175 0x116D0, // unassigned
3176 0x11700, // 11700..1173F; Ahom
3177 0x11740, // unassigned
3178 0x118A0, // 118A0..118FF; Warang Citi
3179 0x11900, // unassigned
3180 0x11AC0, // 11AC0..11AFF; Pau Cin Hau
3181 0x11B00, // unassigned
3182 0x12000, // 12000..123FF; Cuneiform
3183 0x12400, // 12400..1247F; Cuneiform Numbers and Punctuation
3184 0x12480, // 12480..1254F; Early Dynastic Cuneiform
3185 0x12550, // unassigned
3186 0x13000, // 13000..1342F; Egyptian Hieroglyphs
3187 0x13430, // unassigned
3188 0x14400, // 14400..1467F; Anatolian Hieroglyphs
3189 0x14680, // unassigned
3190 0x16800, // 16800..16A3F; Bamum Supplement
3191 0x16A40, // 16A40..16A6F; Mro
3192 0x16A70, // unassigned
3193 0x16AD0, // 16AD0..16AFF; Bassa Vah
3194 0x16B00, // 16B00..16B8F; Pahawh Hmong
3195 0x16B90, // unassigned
3196 0x16F00, // 16F00..16F9F; Miao
3197 0x16FA0, // unassigned
3198 0x1B000, // 1B000..1B0FF; Kana Supplement
3199 0x1B100, // unassigned
3200 0x1BC00, // 1BC00..1BC9F; Duployan
3201 0x1BCA0, // 1BCA0..1BCAF; Shorthand Format Controls
3202 0x1BCB0, // unassigned
3203 0x1D000, // 1D000..1D0FF; Byzantine Musical Symbols
3204 0x1D100, // 1D100..1D1FF; Musical Symbols
3205 0x1D200, // 1D200..1D24F; Ancient Greek Musical Notation
3206 0x1D250, // unassigned
3207 0x1D300, // 1D300..1D35F; Tai Xuan Jing Symbols
3208 0x1D360, // 1D360..1D37F; Counting Rod Numerals
3209 0x1D380, // unassigned
3210 0x1D400, // 1D400..1D7FF; Mathematical Alphanumeric Symbols
3211 0x1D800, // 1D800..1DAAF; Sutton SignWriting
3212 0x1DAB0, // unassigned
3213 0x1E800, // 1E800..1E8DF; Mende Kikakui
3214 0x1E8E0, // unassigned
3215 0x1EE00, // 1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
3216 0x1EF00, // unassigned
3217 0x1F000, // 1F000..1F02F; Mahjong Tiles
3218 0x1F030, // 1F030..1F09F; Domino Tiles
3219 0x1F0A0, // 1F0A0..1F0FF; Playing Cards
3220 0x1F100, // 1F100..1F1FF; Enclosed Alphanumeric Supplement
3221 0x1F200, // 1F200..1F2FF; Enclosed Ideographic Supplement
3222 0x1F300, // 1F300..1F5FF; Miscellaneous Symbols and Pictographs
3223 0x1F600, // 1F600..1F64F; Emoticons
3224 0x1F650, // 1F650..1F67F; Ornamental Dingbats
3225 0x1F680, // 1F680..1F6FF; Transport and Map Symbols
3226 0x1F700, // 1F700..1F77F; Alchemical Symbols
3227 0x1F780, // 1F780..1F7FF; Geometric Shapes Extended
3228 0x1F800, // 1F800..1F8FF; Supplemental Arrows-C
3229 0x1F900, // 1F900..1F9FF; Supplemental Symbols and Pictographs
3230 0x1FA00, // unassigned
3231 0x20000, // 20000..2A6DF; CJK Unified Ideographs Extension B
3232 0x2A6E0, // unassigned
3233 0x2A700, // 2A700..2B73F; CJK Unified Ideographs Extension C
3234 0x2B740, // 2B740..2B81F; CJK Unified Ideographs Extension D
3235 0x2B820, // 2B820..2CEAF; CJK Unified Ideographs Extension E
3236 0x2CEB0, // unassigned
3237 0x2F800, // 2F800..2FA1F; CJK Compatibility Ideographs Supplement
3238 0x2FA20, // unassigned
3239 0xE0000, // E0000..E007F; Tags
3240 0xE0080, // unassigned
3241 0xE0100, // E0100..E01EF; Variation Selectors Supplement
3242 0xE01F0, // unassigned
3243 0xF0000, // F0000..FFFFF; Supplementary Private Use Area-A
3244 0x100000 // 100000..10FFFF; Supplementary Private Use Area-B
3245 };
3246
3247 private static final UnicodeBlock[] blocks = {
3248 BASIC_LATIN,
3249 LATIN_1_SUPPLEMENT,
3250 LATIN_EXTENDED_A,
3251 LATIN_EXTENDED_B,
3252 IPA_EXTENSIONS,
3253 SPACING_MODIFIER_LETTERS,
3254 COMBINING_DIACRITICAL_MARKS,
3255 GREEK,
3256 CYRILLIC,
3257 CYRILLIC_SUPPLEMENTARY,
3258 ARMENIAN,
3259 HEBREW,
3260 ARABIC,
3261 SYRIAC,
3262 ARABIC_SUPPLEMENT,
3263 THAANA,
3264 NKO,
3265 SAMARITAN,
3266 MANDAIC,
3267 null,
3268 ARABIC_EXTENDED_A,
3269 DEVANAGARI,
3270 BENGALI,
3271 GURMUKHI,
3272 GUJARATI,
3273 ORIYA,
3274 TAMIL,
3275 TELUGU,
3276 KANNADA,
3277 MALAYALAM,
3278 SINHALA,
3279 THAI,
3280 LAO,
3281 TIBETAN,
3282 MYANMAR,
3283 GEORGIAN,
3284 HANGUL_JAMO,
3285 ETHIOPIC,
3286 ETHIOPIC_SUPPLEMENT,
3290 RUNIC,
3291 TAGALOG,
3292 HANUNOO,
3293 BUHID,
3294 TAGBANWA,
3295 KHMER,
3296 MONGOLIAN,
3297 UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED,
3298 LIMBU,
3299 TAI_LE,
3300 NEW_TAI_LUE,
3301 KHMER_SYMBOLS,
3302 BUGINESE,
3303 TAI_THAM,
3304 COMBINING_DIACRITICAL_MARKS_EXTENDED,
3305 BALINESE,
3306 SUNDANESE,
3307 BATAK,
3308 LEPCHA,
3309 OL_CHIKI,
3310 null,
3311 SUNDANESE_SUPPLEMENT,
3312 VEDIC_EXTENSIONS,
3313 PHONETIC_EXTENSIONS,
3314 PHONETIC_EXTENSIONS_SUPPLEMENT,
3315 COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,
3316 LATIN_EXTENDED_ADDITIONAL,
3317 GREEK_EXTENDED,
3318 GENERAL_PUNCTUATION,
3319 SUPERSCRIPTS_AND_SUBSCRIPTS,
3320 CURRENCY_SYMBOLS,
3321 COMBINING_MARKS_FOR_SYMBOLS,
3322 LETTERLIKE_SYMBOLS,
3323 NUMBER_FORMS,
3324 ARROWS,
3325 MATHEMATICAL_OPERATORS,
3326 MISCELLANEOUS_TECHNICAL,
3327 CONTROL_PICTURES,
3328 OPTICAL_CHARACTER_RECOGNITION,
3329 ENCLOSED_ALPHANUMERICS,
3410 SPECIALS,
3411 LINEAR_B_SYLLABARY,
3412 LINEAR_B_IDEOGRAMS,
3413 AEGEAN_NUMBERS,
3414 ANCIENT_GREEK_NUMBERS,
3415 ANCIENT_SYMBOLS,
3416 PHAISTOS_DISC,
3417 null,
3418 LYCIAN,
3419 CARIAN,
3420 COPTIC_EPACT_NUMBERS,
3421 OLD_ITALIC,
3422 GOTHIC,
3423 OLD_PERMIC,
3424 UGARITIC,
3425 OLD_PERSIAN,
3426 null,
3427 DESERET,
3428 SHAVIAN,
3429 OSMANYA,
3430 null,
3431 ELBASAN,
3432 CAUCASIAN_ALBANIAN,
3433 null,
3434 LINEAR_A,
3435 null,
3436 CYPRIOT_SYLLABARY,
3437 IMPERIAL_ARAMAIC,
3438 PALMYRENE,
3439 NABATAEAN,
3440 null,
3441 HATRAN,
3442 PHOENICIAN,
3443 LYDIAN,
3444 null,
3445 MEROITIC_HIEROGLYPHS,
3446 MEROITIC_CURSIVE,
3447 KHAROSHTHI,
3448 OLD_SOUTH_ARABIAN,
3449 OLD_NORTH_ARABIAN,
3450 null,
3456 null,
3457 OLD_TURKIC,
3458 null,
3459 OLD_HUNGARIAN,
3460 null,
3461 RUMI_NUMERAL_SYMBOLS,
3462 null,
3463 BRAHMI,
3464 KAITHI,
3465 SORA_SOMPENG,
3466 CHAKMA,
3467 MAHAJANI,
3468 SHARADA,
3469 SINHALA_ARCHAIC_NUMBERS,
3470 KHOJKI,
3471 null,
3472 MULTANI,
3473 KHUDAWADI,
3474 GRANTHA,
3475 null,
3476 TIRHUTA,
3477 null,
3478 SIDDHAM,
3479 MODI,
3480 null,
3481 TAKRI,
3482 null,
3483 AHOM,
3484 null,
3485 WARANG_CITI,
3486 null,
3487 PAU_CIN_HAU,
3488 null,
3489 CUNEIFORM,
3490 CUNEIFORM_NUMBERS_AND_PUNCTUATION,
3491 EARLY_DYNASTIC_CUNEIFORM,
3492 null,
3493 EGYPTIAN_HIEROGLYPHS,
3494 null,
3495 ANATOLIAN_HIEROGLYPHS,
3496 null,
3497 BAMUM_SUPPLEMENT,
3498 MRO,
3499 null,
3500 BASSA_VAH,
3501 PAHAWH_HMONG,
3502 null,
3503 MIAO,
3504 null,
3505 KANA_SUPPLEMENT,
3506 null,
3507 DUPLOYAN,
3508 SHORTHAND_FORMAT_CONTROLS,
3509 null,
3510 BYZANTINE_MUSICAL_SYMBOLS,
3511 MUSICAL_SYMBOLS,
3512 ANCIENT_GREEK_MUSICAL_NOTATION,
3513 null,
3514 TAI_XUAN_JING_SYMBOLS,
3515 COUNTING_ROD_NUMERALS,
3516 null,
3517 MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
3518 SUTTON_SIGNWRITING,
3519 null,
3520 MENDE_KIKAKUI,
3521 null,
3522 ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS,
3523 null,
3524 MAHJONG_TILES,
3525 DOMINO_TILES,
3526 PLAYING_CARDS,
3527 ENCLOSED_ALPHANUMERIC_SUPPLEMENT,
3528 ENCLOSED_IDEOGRAPHIC_SUPPLEMENT,
3529 MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS,
3530 EMOTICONS,
3531 ORNAMENTAL_DINGBATS,
3532 TRANSPORT_AND_MAP_SYMBOLS,
3533 ALCHEMICAL_SYMBOLS,
3534 GEOMETRIC_SHAPES_EXTENDED,
3535 SUPPLEMENTAL_ARROWS_C,
3536 SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS,
3537 null,
3538 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,
3539 null,
3540 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C,
3541 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,
3542 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E,
3543 null,
3544 CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,
3545 null,
3546 TAGS,
3547 null,
3548 VARIATION_SELECTORS_SUPPLEMENT,
3549 null,
3550 SUPPLEMENTARY_PRIVATE_USE_AREA_A,
3551 SUPPLEMENTARY_PRIVATE_USE_AREA_B
3552 };
3553
3554
3555 /**
3556 * Returns the object representing the Unicode block containing the
3557 * given character, or {@code null} if the character is not a
3558 * member of a defined block.
3559 *
3560 * <p><b>Note:</b> This method cannot handle
3561 * <a href="Character.html#supplementary"> supplementary
3562 * characters</a>. To support all Unicode characters, including
4345
4346 /**
4347 * Unicode script "Multani".
4348 * @since 9
4349 */
4350 MULTANI,
4351
4352 /**
4353 * Unicode script "Old Hungarian".
4354 * @since 9
4355 */
4356 OLD_HUNGARIAN,
4357
4358 /**
4359 * Unicode script "SignWriting".
4360 * @since 9
4361 */
4362 SIGNWRITING,
4363
4364 /**
4365 * Unicode script "Unknown".
4366 */
4367 UNKNOWN;
4368
4369 private static final int[] scriptStarts = {
4370 0x0000, // 0000..0040; COMMON
4371 0x0041, // 0041..005A; LATIN
4372 0x005B, // 005B..0060; COMMON
4373 0x0061, // 0061..007A; LATIN
4374 0x007B, // 007B..00A9; COMMON
4375 0x00AA, // 00AA ; LATIN
4376 0x00AB, // 00AB..00B9; COMMON
4377 0x00BA, // 00BA ; LATIN
4378 0x00BB, // 00BB..00BF; COMMON
4379 0x00C0, // 00C0..00D6; LATIN
4380 0x00D7, // 00D7 ; COMMON
4381 0x00D8, // 00D8..00F6; LATIN
4382 0x00F7, // 00F7 ; COMMON
4383 0x00F8, // 00F8..02B8; LATIN
4384 0x02B9, // 02B9..02DF; COMMON
4417 0x0559, // 0559..055F; ARMENIAN
4418 0x0560, // 0560 ; UNKNOWN
4419 0x0561, // 0561..0587; ARMENIAN
4420 0x0588, // 0588 ; UNKNOWN
4421 0x0589, // 0589 ; COMMON
4422 0x058A, // 058A ; ARMENIAN
4423 0x058B, // 058B..058C; UNKNOWN
4424 0x058D, // 058D..058F; ARMENIAN
4425 0x0590, // 0590 ; UNKNOWN
4426 0x0591, // 0591..05C7; HEBREW
4427 0x05C8, // 05C8..05CF; UNKNOWN
4428 0x05D0, // 05D0..05EA; HEBREW
4429 0x05EB, // 05EB..05EF; UNKNOWN
4430 0x05F0, // 05F0..05F4; HEBREW
4431 0x05F5, // 05F5..05FF; UNKNOWN
4432 0x0600, // 0600..0604; ARABIC
4433 0x0605, // 0605 ; COMMON
4434 0x0606, // 0606..060B; ARABIC
4435 0x060C, // 060C ; COMMON
4436 0x060D, // 060D..061A; ARABIC
4437 0x061B, // 061B..061C; COMMON
4438 0x061D, // 061D ; UNKNOWN
4439 0x061E, // 061E ; ARABIC
4440 0x061F, // 061F ; COMMON
4441 0x0620, // 0620..063F; ARABIC
4442 0x0640, // 0640 ; COMMON
4443 0x0641, // 0641..064A; ARABIC
4444 0x064B, // 064B..0655; INHERITED
4445 0x0656, // 0656..066F; ARABIC
4446 0x0670, // 0670 ; INHERITED
4447 0x0671, // 0671..06DC; ARABIC
4448 0x06DD, // 06DD ; COMMON
4449 0x06DE, // 06DE..06FF; ARABIC
4450 0x0700, // 0700..070D; SYRIAC
4451 0x070E, // 070E ; UNKNOWN
4452 0x070F, // 070F..074A; SYRIAC
4453 0x074B, // 074B..074C; UNKNOWN
4454 0x074D, // 074D..074F; SYRIAC
4455 0x0750, // 0750..077F; ARABIC
4456 0x0780, // 0780..07B1; THAANA
4457 0x07B2, // 07B2..07BF; UNKNOWN
4458 0x07C0, // 07C0..07FA; NKO
4459 0x07FB, // 07FB..07FF; UNKNOWN
4460 0x0800, // 0800..082D; SAMARITAN
4461 0x082E, // 082E..082F; UNKNOWN
4462 0x0830, // 0830..083E; SAMARITAN
4463 0x083F, // 083F ; UNKNOWN
4464 0x0840, // 0840..085B; MANDAIC
4465 0x085C, // 085C..085D; UNKNOWN
4466 0x085E, // 085E ; MANDAIC
4467 0x085F, // 085F..089F; UNKNOWN
4468 0x08A0, // 08A0..08B4; ARABIC
4469 0x08B5, // 08B5..08E2; UNKNOWN
4470 0x08E3, // 08E3..08FF; ARABIC
4471 0x0900, // 0900..0950; DEVANAGARI
4472 0x0951, // 0951..0952; INHERITED
4473 0x0953, // 0953..0963; DEVANAGARI
4474 0x0964, // 0964..0965; COMMON
4475 0x0966, // 0966..097F; DEVANAGARI
4476 0x0980, // 0980..0983; BENGALI
4477 0x0984, // 0984 ; UNKNOWN
4478 0x0985, // 0985..098C; BENGALI
4479 0x098D, // 098D..098E; UNKNOWN
4480 0x098F, // 098F..0990; BENGALI
4481 0x0991, // 0991..0992; UNKNOWN
4482 0x0993, // 0993..09A8; BENGALI
4483 0x09A9, // 09A9 ; UNKNOWN
4484 0x09AA, // 09AA..09B0; BENGALI
4485 0x09B1, // 09B1 ; UNKNOWN
4486 0x09B2, // 09B2 ; BENGALI
4487 0x09B3, // 09B3..09B5; UNKNOWN
4488 0x09B6, // 09B6..09B9; BENGALI
4489 0x09BA, // 09BA..09BB; UNKNOWN
4490 0x09BC, // 09BC..09C4; BENGALI
4491 0x09C5, // 09C5..09C6; UNKNOWN
4492 0x09C7, // 09C7..09C8; BENGALI
4493 0x09C9, // 09C9..09CA; UNKNOWN
4494 0x09CB, // 09CB..09CE; BENGALI
4495 0x09CF, // 09CF..09D6; UNKNOWN
4496 0x09D7, // 09D7 ; BENGALI
4497 0x09D8, // 09D8..09DB; UNKNOWN
4498 0x09DC, // 09DC..09DD; BENGALI
4499 0x09DE, // 09DE ; UNKNOWN
4500 0x09DF, // 09DF..09E3; BENGALI
4501 0x09E4, // 09E4..09E5; UNKNOWN
4502 0x09E6, // 09E6..09FB; BENGALI
4503 0x09FC, // 09FC..0A00; UNKNOWN
4504 0x0A01, // 0A01..0A03; GURMUKHI
4505 0x0A04, // 0A04 ; UNKNOWN
4506 0x0A05, // 0A05..0A0A; GURMUKHI
4507 0x0A0B, // 0A0B..0A0E; UNKNOWN
4508 0x0A0F, // 0A0F..0A10; GURMUKHI
4509 0x0A11, // 0A11..0A12; UNKNOWN
4510 0x0A13, // 0A13..0A28; GURMUKHI
4511 0x0A29, // 0A29 ; UNKNOWN
4512 0x0A2A, // 0A2A..0A30; GURMUKHI
4513 0x0A31, // 0A31 ; UNKNOWN
4514 0x0A32, // 0A32..0A33; GURMUKHI
4515 0x0A34, // 0A34 ; UNKNOWN
4516 0x0A35, // 0A35..0A36; GURMUKHI
4517 0x0A37, // 0A37 ; UNKNOWN
4518 0x0A38, // 0A38..0A39; GURMUKHI
4519 0x0A3A, // 0A3A..0A3B; UNKNOWN
4520 0x0A3C, // 0A3C ; GURMUKHI
4521 0x0A3D, // 0A3D ; UNKNOWN
4522 0x0A3E, // 0A3E..0A42; GURMUKHI
4523 0x0A43, // 0A43..0A46; UNKNOWN
4542 0x0A93, // 0A93..0AA8; GUJARATI
4543 0x0AA9, // 0AA9 ; UNKNOWN
4544 0x0AAA, // 0AAA..0AB0; GUJARATI
4545 0x0AB1, // 0AB1 ; UNKNOWN
4546 0x0AB2, // 0AB2..0AB3; GUJARATI
4547 0x0AB4, // 0AB4 ; UNKNOWN
4548 0x0AB5, // 0AB5..0AB9; GUJARATI
4549 0x0ABA, // 0ABA..0ABB; UNKNOWN
4550 0x0ABC, // 0ABC..0AC5; GUJARATI
4551 0x0AC6, // 0AC6 ; UNKNOWN
4552 0x0AC7, // 0AC7..0AC9; GUJARATI
4553 0x0ACA, // 0ACA ; UNKNOWN
4554 0x0ACB, // 0ACB..0ACD; GUJARATI
4555 0x0ACE, // 0ACE..0ACF; UNKNOWN
4556 0x0AD0, // 0AD0 ; GUJARATI
4557 0x0AD1, // 0AD1..0ADF; UNKNOWN
4558 0x0AE0, // 0AE0..0AE3; GUJARATI
4559 0x0AE4, // 0AE4..0AE5; UNKNOWN
4560 0x0AE6, // 0AE6..0AF1; GUJARATI
4561 0x0AF2, // 0AF2..0AF8; UNKNOWN
4562 0x0AF9, // 0AF9 ; GUJARATI
4563 0x0AFA, // 0AFA..0B00; UNKNOWN
4564 0x0B01, // 0B01..0B03; ORIYA
4565 0x0B04, // 0B04 ; UNKNOWN
4566 0x0B05, // 0B05..0B0C; ORIYA
4567 0x0B0D, // 0B0D..0B0E; UNKNOWN
4568 0x0B0F, // 0B0F..0B10; ORIYA
4569 0x0B11, // 0B11..0B12; UNKNOWN
4570 0x0B13, // 0B13..0B28; ORIYA
4571 0x0B29, // 0B29 ; UNKNOWN
4572 0x0B2A, // 0B2A..0B30; ORIYA
4573 0x0B31, // 0B31 ; UNKNOWN
4574 0x0B32, // 0B32..0B33; ORIYA
4575 0x0B34, // 0B34 ; UNKNOWN
4576 0x0B35, // 0B35..0B39; ORIYA
4577 0x0B3A, // 0B3A..0B3B; UNKNOWN
4578 0x0B3C, // 0B3C..0B44; ORIYA
4579 0x0B45, // 0B45..0B46; UNKNOWN
4580 0x0B47, // 0B47..0B48; ORIYA
4581 0x0B49, // 0B49..0B4A; UNKNOWN
4582 0x0B4B, // 0B4B..0B4D; ORIYA
4583 0x0B4E, // 0B4E..0B55; UNKNOWN
4629 0x0C11, // 0C11 ; UNKNOWN
4630 0x0C12, // 0C12..0C28; TELUGU
4631 0x0C29, // 0C29 ; UNKNOWN
4632 0x0C2A, // 0C2A..0C39; TELUGU
4633 0x0C3A, // 0C3A..0C3C; UNKNOWN
4634 0x0C3D, // 0C3D..0C44; TELUGU
4635 0x0C45, // 0C45 ; UNKNOWN
4636 0x0C46, // 0C46..0C48; TELUGU
4637 0x0C49, // 0C49 ; UNKNOWN
4638 0x0C4A, // 0C4A..0C4D; TELUGU
4639 0x0C4E, // 0C4E..0C54; UNKNOWN
4640 0x0C55, // 0C55..0C56; TELUGU
4641 0x0C57, // 0C57 ; UNKNOWN
4642 0x0C58, // 0C58..0C5A; TELUGU
4643 0x0C5B, // 0C5B..0C5F; UNKNOWN
4644 0x0C60, // 0C60..0C63; TELUGU
4645 0x0C64, // 0C64..0C65; UNKNOWN
4646 0x0C66, // 0C66..0C6F; TELUGU
4647 0x0C70, // 0C70..0C77; UNKNOWN
4648 0x0C78, // 0C78..0C7F; TELUGU
4649 0x0C80, // 0C80 ; UNKNOWN
4650 0x0C81, // 0C81..0C83; KANNADA
4651 0x0C84, // 0C84 ; UNKNOWN
4652 0x0C85, // 0C85..0C8C; KANNADA
4653 0x0C8D, // 0C8D ; UNKNOWN
4654 0x0C8E, // 0C8E..0C90; KANNADA
4655 0x0C91, // 0C91 ; UNKNOWN
4656 0x0C92, // 0C92..0CA8; KANNADA
4657 0x0CA9, // 0CA9 ; UNKNOWN
4658 0x0CAA, // 0CAA..0CB3; KANNADA
4659 0x0CB4, // 0CB4 ; UNKNOWN
4660 0x0CB5, // 0CB5..0CB9; KANNADA
4661 0x0CBA, // 0CBA..0CBB; UNKNOWN
4662 0x0CBC, // 0CBC..0CC4; KANNADA
4663 0x0CC5, // 0CC5 ; UNKNOWN
4664 0x0CC6, // 0CC6..0CC8; KANNADA
4665 0x0CC9, // 0CC9 ; UNKNOWN
4666 0x0CCA, // 0CCA..0CCD; KANNADA
4667 0x0CCE, // 0CCE..0CD4; UNKNOWN
4668 0x0CD5, // 0CD5..0CD6; KANNADA
4669 0x0CD7, // 0CD7..0CDD; UNKNOWN
4670 0x0CDE, // 0CDE ; KANNADA
4671 0x0CDF, // 0CDF ; UNKNOWN
4672 0x0CE0, // 0CE0..0CE3; KANNADA
4673 0x0CE4, // 0CE4..0CE5; UNKNOWN
4674 0x0CE6, // 0CE6..0CEF; KANNADA
4675 0x0CF0, // 0CF0 ; UNKNOWN
4676 0x0CF1, // 0CF1..0CF2; KANNADA
4677 0x0CF3, // 0CF3..0D00; UNKNOWN
4678 0x0D01, // 0D01..0D03; MALAYALAM
4679 0x0D04, // 0D04 ; UNKNOWN
4680 0x0D05, // 0D05..0D0C; MALAYALAM
4681 0x0D0D, // 0D0D ; UNKNOWN
4682 0x0D0E, // 0D0E..0D10; MALAYALAM
4683 0x0D11, // 0D11 ; UNKNOWN
4684 0x0D12, // 0D12..0D3A; MALAYALAM
4685 0x0D3B, // 0D3B..0D3C; UNKNOWN
4686 0x0D3D, // 0D3D..0D44; MALAYALAM
4687 0x0D45, // 0D45 ; UNKNOWN
4688 0x0D46, // 0D46..0D48; MALAYALAM
4689 0x0D49, // 0D49 ; UNKNOWN
4690 0x0D4A, // 0D4A..0D4E; MALAYALAM
4691 0x0D4F, // 0D4F..0D56; UNKNOWN
4692 0x0D57, // 0D57 ; MALAYALAM
4693 0x0D58, // 0D58..0D5E; UNKNOWN
4694 0x0D5F, // 0D5F..0D63; MALAYALAM
4695 0x0D64, // 0D64..0D65; UNKNOWN
4696 0x0D66, // 0D66..0D75; MALAYALAM
4697 0x0D76, // 0D76..0D78; UNKNOWN
4698 0x0D79, // 0D79..0D7F; MALAYALAM
4699 0x0D80, // 0D80..0D81; UNKNOWN
4700 0x0D82, // 0D82..0D83; SINHALA
4701 0x0D84, // 0D84 ; UNKNOWN
4702 0x0D85, // 0D85..0D96; SINHALA
4703 0x0D97, // 0D97..0D99; UNKNOWN
4704 0x0D9A, // 0D9A..0DB1; SINHALA
4705 0x0DB2, // 0DB2 ; UNKNOWN
4706 0x0DB3, // 0DB3..0DBB; SINHALA
4707 0x0DBC, // 0DBC ; UNKNOWN
4708 0x0DBD, // 0DBD ; SINHALA
4709 0x0DBE, // 0DBE..0DBF; UNKNOWN
4710 0x0DC0, // 0DC0..0DC6; SINHALA
4711 0x0DC7, // 0DC7..0DC9; UNKNOWN
4712 0x0DCA, // 0DCA ; SINHALA
4713 0x0DCB, // 0DCB..0DCE; UNKNOWN
4714 0x0DCF, // 0DCF..0DD4; SINHALA
4715 0x0DD5, // 0DD5 ; UNKNOWN
4716 0x0DD6, // 0DD6 ; SINHALA
4717 0x0DD7, // 0DD7 ; UNKNOWN
4718 0x0DD8, // 0DD8..0DDF; SINHALA
4902 0x1A90, // 1A90..1A99; TAI_THAM
4903 0x1A9A, // 1A9A..1A9F; UNKNOWN
4904 0x1AA0, // 1AA0..1AAD; TAI_THAM
4905 0x1AAE, // 1AAE..1AAF; UNKNOWN
4906 0x1AB0, // 1AB0..1ABE; INHERITED
4907 0x1ABF, // 1ABF..1AFF; UNKNOWN
4908 0x1B00, // 1B00..1B4B; BALINESE
4909 0x1B4C, // 1B4C..1B4F; UNKNOWN
4910 0x1B50, // 1B50..1B7C; BALINESE
4911 0x1B7D, // 1B7D..1B7F; UNKNOWN
4912 0x1B80, // 1B80..1BBF; SUNDANESE
4913 0x1BC0, // 1BC0..1BF3; BATAK
4914 0x1BF4, // 1BF4..1BFB; UNKNOWN
4915 0x1BFC, // 1BFC..1BFF; BATAK
4916 0x1C00, // 1C00..1C37; LEPCHA
4917 0x1C38, // 1C38..1C3A; UNKNOWN
4918 0x1C3B, // 1C3B..1C49; LEPCHA
4919 0x1C4A, // 1C4A..1C4C; UNKNOWN
4920 0x1C4D, // 1C4D..1C4F; LEPCHA
4921 0x1C50, // 1C50..1C7F; OL_CHIKI
4922 0x1C80, // 1C80..1CBF; UNKNOWN
4923 0x1CC0, // 1CC0..1CC7; SUNDANESE
4924 0x1CC8, // 1CC8..1CCF; UNKNOWN
4925 0x1CD0, // 1CD0..1CD2; INHERITED
4926 0x1CD3, // 1CD3 ; COMMON
4927 0x1CD4, // 1CD4..1CE0; INHERITED
4928 0x1CE1, // 1CE1 ; COMMON
4929 0x1CE2, // 1CE2..1CE8; INHERITED
4930 0x1CE9, // 1CE9..1CEC; COMMON
4931 0x1CED, // 1CED ; INHERITED
4932 0x1CEE, // 1CEE..1CF3; COMMON
4933 0x1CF4, // 1CF4 ; INHERITED
4934 0x1CF5, // 1CF5..1CF6; COMMON
4935 0x1CF7, // 1CF7 ; UNKNOWN
4936 0x1CF8, // 1CF8..1CF9; INHERITED
4937 0x1CFA, // 1CFA..1CFF; UNKNOWN
4938 0x1D00, // 1D00..1D25; LATIN
4939 0x1D26, // 1D26..1D2A; GREEK
4940 0x1D2B, // 1D2B ; CYRILLIC
4941 0x1D2C, // 1D2C..1D5C; LATIN
4942 0x1D5D, // 1D5D..1D61; GREEK
4943 0x1D62, // 1D62..1D65; LATIN
4944 0x1D66, // 1D66..1D6A; GREEK
4945 0x1D6B, // 1D6B..1D77; LATIN
4946 0x1D78, // 1D78 ; CYRILLIC
4947 0x1D79, // 1D79..1DBE; LATIN
4948 0x1DBF, // 1DBF ; GREEK
4949 0x1DC0, // 1DC0..1DF5; INHERITED
4950 0x1DF6, // 1DF6..1DFB; UNKNOWN
4951 0x1DFC, // 1DFC..1DFF; INHERITED
4952 0x1E00, // 1E00..1EFF; LATIN
4953 0x1F00, // 1F00..1F15; GREEK
4954 0x1F16, // 1F16..1F17; UNKNOWN
4955 0x1F18, // 1F18..1F1D; GREEK
4956 0x1F1E, // 1F1E..1F1F; UNKNOWN
4957 0x1F20, // 1F20..1F45; GREEK
4958 0x1F46, // 1F46..1F47; UNKNOWN
4959 0x1F48, // 1F48..1F4D; GREEK
4960 0x1F4E, // 1F4E..1F4F; UNKNOWN
4961 0x1F50, // 1F50..1F57; GREEK
4962 0x1F58, // 1F58 ; UNKNOWN
4963 0x1F59, // 1F59 ; GREEK
4964 0x1F5A, // 1F5A ; UNKNOWN
4965 0x1F5B, // 1F5B ; GREEK
4966 0x1F5C, // 1F5C ; UNKNOWN
4967 0x1F5D, // 1F5D ; GREEK
4968 0x1F5E, // 1F5E ; UNKNOWN
4969 0x1F5F, // 1F5F..1F7D; GREEK
4970 0x1F7E, // 1F7E..1F7F; UNKNOWN
4971 0x1F80, // 1F80..1FB4; GREEK
4978 0x1FDC, // 1FDC ; UNKNOWN
4979 0x1FDD, // 1FDD..1FEF; GREEK
4980 0x1FF0, // 1FF0..1FF1; UNKNOWN
4981 0x1FF2, // 1FF2..1FF4; GREEK
4982 0x1FF5, // 1FF5 ; UNKNOWN
4983 0x1FF6, // 1FF6..1FFE; GREEK
4984 0x1FFF, // 1FFF ; UNKNOWN
4985 0x2000, // 2000..200B; COMMON
4986 0x200C, // 200C..200D; INHERITED
4987 0x200E, // 200E..2064; COMMON
4988 0x2065, // 2065 ; UNKNOWN
4989 0x2066, // 2066..2070; COMMON
4990 0x2071, // 2071 ; LATIN
4991 0x2072, // 2072..2073; UNKNOWN
4992 0x2074, // 2074..207E; COMMON
4993 0x207F, // 207F ; LATIN
4994 0x2080, // 2080..208E; COMMON
4995 0x208F, // 208F ; UNKNOWN
4996 0x2090, // 2090..209C; LATIN
4997 0x209D, // 209D..209F; UNKNOWN
4998 0x20A0, // 20A0..20BE; COMMON
4999 0x20BF, // 20BF..20CF; UNKNOWN
5000 0x20D0, // 20D0..20F0; INHERITED
5001 0x20F1, // 20F1..20FF; UNKNOWN
5002 0x2100, // 2100..2125; COMMON
5003 0x2126, // 2126 ; GREEK
5004 0x2127, // 2127..2129; COMMON
5005 0x212A, // 212A..212B; LATIN
5006 0x212C, // 212C..2131; COMMON
5007 0x2132, // 2132 ; LATIN
5008 0x2133, // 2133..214D; COMMON
5009 0x214E, // 214E ; LATIN
5010 0x214F, // 214F..215F; COMMON
5011 0x2160, // 2160..2188; LATIN
5012 0x2189, // 2189..218B; COMMON
5013 0x218C, // 218C..218F; UNKNOWN
5014 0x2190, // 2190..23FA; COMMON
5015 0x23FB, // 23FB..23FF; UNKNOWN
5016 0x2400, // 2400..2426; COMMON
5017 0x2427, // 2427..243F; UNKNOWN
5018 0x2440, // 2440..244A; COMMON
5019 0x244B, // 244B..245F; UNKNOWN
5020 0x2460, // 2460..27FF; COMMON
5021 0x2800, // 2800..28FF; BRAILLE
5022 0x2900, // 2900..2B73; COMMON
5023 0x2B74, // 2B74..2B75; UNKNOWN
5024 0x2B76, // 2B76..2B95; COMMON
5025 0x2B96, // 2B96..2B97; UNKNOWN
5026 0x2B98, // 2B98..2BB9; COMMON
5027 0x2BBA, // 2BBA..2BBC; UNKNOWN
5028 0x2BBD, // 2BBD..2BC8; COMMON
5029 0x2BC9, // 2BC9 ; UNKNOWN
5030 0x2BCA, // 2BCA..2BD1; COMMON
5031 0x2BD2, // 2BD2..2BEB; UNKNOWN
5032 0x2BEC, // 2BEC..2BEF; COMMON
5033 0x2BF0, // 2BF0..2BFF; UNKNOWN
5034 0x2C00, // 2C00..2C2E; GLAGOLITIC
5035 0x2C2F, // 2C2F ; UNKNOWN
5036 0x2C30, // 2C30..2C5E; GLAGOLITIC
5037 0x2C5F, // 2C5F ; UNKNOWN
5038 0x2C60, // 2C60..2C7F; LATIN
5039 0x2C80, // 2C80..2CF3; COPTIC
5040 0x2CF4, // 2CF4..2CF8; UNKNOWN
5041 0x2CF9, // 2CF9..2CFF; COPTIC
5042 0x2D00, // 2D00..2D25; GEORGIAN
5043 0x2D26, // 2D26 ; UNKNOWN
5044 0x2D27, // 2D27 ; GEORGIAN
5045 0x2D28, // 2D28..2D2C; UNKNOWN
5046 0x2D2D, // 2D2D ; GEORGIAN
5047 0x2D2E, // 2D2E..2D2F; UNKNOWN
5048 0x2D30, // 2D30..2D67; TIFINAGH
5049 0x2D68, // 2D68..2D6E; UNKNOWN
5050 0x2D6F, // 2D6F..2D70; TIFINAGH
5051 0x2D71, // 2D71..2D7E; UNKNOWN
5052 0x2D7F, // 2D7F ; TIFINAGH
5053 0x2D80, // 2D80..2D96; ETHIOPIC
5054 0x2D97, // 2D97..2D9F; UNKNOWN
5055 0x2DA0, // 2DA0..2DA6; ETHIOPIC
5056 0x2DA7, // 2DA7 ; UNKNOWN
5057 0x2DA8, // 2DA8..2DAE; ETHIOPIC
5058 0x2DAF, // 2DAF ; UNKNOWN
5059 0x2DB0, // 2DB0..2DB6; ETHIOPIC
5060 0x2DB7, // 2DB7 ; UNKNOWN
5061 0x2DB8, // 2DB8..2DBE; ETHIOPIC
5062 0x2DBF, // 2DBF ; UNKNOWN
5063 0x2DC0, // 2DC0..2DC6; ETHIOPIC
5064 0x2DC7, // 2DC7 ; UNKNOWN
5065 0x2DC8, // 2DC8..2DCE; ETHIOPIC
5066 0x2DCF, // 2DCF ; UNKNOWN
5067 0x2DD0, // 2DD0..2DD6; ETHIOPIC
5068 0x2DD7, // 2DD7 ; UNKNOWN
5069 0x2DD8, // 2DD8..2DDE; ETHIOPIC
5070 0x2DDF, // 2DDF ; UNKNOWN
5071 0x2DE0, // 2DE0..2DFF; CYRILLIC
5072 0x2E00, // 2E00..2E42; COMMON
5073 0x2E43, // 2E43..2E7F; UNKNOWN
5074 0x2E80, // 2E80..2E99; HAN
5075 0x2E9A, // 2E9A ; UNKNOWN
5076 0x2E9B, // 2E9B..2EF3; HAN
5077 0x2EF4, // 2EF4..2EFF; UNKNOWN
5078 0x2F00, // 2F00..2FD5; HAN
5079 0x2FD6, // 2FD6..2FEF; UNKNOWN
5080 0x2FF0, // 2FF0..2FFB; COMMON
5081 0x2FFC, // 2FFC..2FFF; UNKNOWN
5082 0x3000, // 3000..3004; COMMON
5083 0x3005, // 3005 ; HAN
5084 0x3006, // 3006 ; COMMON
5085 0x3007, // 3007 ; HAN
5086 0x3008, // 3008..3020; COMMON
5087 0x3021, // 3021..3029; HAN
5088 0x302A, // 302A..302D; INHERITED
5089 0x302E, // 302E..302F; HANGUL
5090 0x3030, // 3030..3037; COMMON
5091 0x3038, // 3038..303B; HAN
5092 0x303C, // 303C..303F; COMMON
5093 0x3040, // 3040 ; UNKNOWN
5094 0x3041, // 3041..3096; HIRAGANA
5095 0x3097, // 3097..3098; UNKNOWN
5096 0x3099, // 3099..309A; INHERITED
5097 0x309B, // 309B..309C; COMMON
5098 0x309D, // 309D..309F; HIRAGANA
5099 0x30A0, // 30A0 ; COMMON
5100 0x30A1, // 30A1..30FA; KATAKANA
5101 0x30FB, // 30FB..30FC; COMMON
5102 0x30FD, // 30FD..30FF; KATAKANA
5103 0x3100, // 3100..3104; UNKNOWN
5104 0x3105, // 3105..312D; BOPOMOFO
5105 0x312E, // 312E..3130; UNKNOWN
5106 0x3131, // 3131..318E; HANGUL
5107 0x318F, // 318F ; UNKNOWN
5108 0x3190, // 3190..319F; COMMON
5109 0x31A0, // 31A0..31BA; BOPOMOFO
5110 0x31BB, // 31BB..31BF; UNKNOWN
5111 0x31C0, // 31C0..31E3; COMMON
5112 0x31E4, // 31E4..31EF; UNKNOWN
5113 0x31F0, // 31F0..31FF; KATAKANA
5114 0x3200, // 3200..321E; HANGUL
5115 0x321F, // 321F ; UNKNOWN
5116 0x3220, // 3220..325F; COMMON
5117 0x3260, // 3260..327E; HANGUL
5118 0x327F, // 327F..32CF; COMMON
5119 0x32D0, // 32D0..32FE; KATAKANA
5120 0x32FF, // 32FF ; UNKNOWN
5121 0x3300, // 3300..3357; KATAKANA
5122 0x3358, // 3358..33FF; COMMON
5123 0x3400, // 3400..4DB5; HAN
5124 0x4DB6, // 4DB6..4DBF; UNKNOWN
5125 0x4DC0, // 4DC0..4DFF; COMMON
5126 0x4E00, // 4E00..9FD5; HAN
5127 0x9FD6, // 9FD6..9FFF; UNKNOWN
5128 0xA000, // A000..A48C; YI
5129 0xA48D, // A48D..A48F; UNKNOWN
5130 0xA490, // A490..A4C6; YI
5131 0xA4C7, // A4C7..A4CF; UNKNOWN
5132 0xA4D0, // A4D0..A4FF; LISU
5133 0xA500, // A500..A62B; VAI
5134 0xA62C, // A62C..A63F; UNKNOWN
5135 0xA640, // A640..A69F; CYRILLIC
5136 0xA6A0, // A6A0..A6F7; BAMUM
5137 0xA6F8, // A6F8..A6FF; UNKNOWN
5138 0xA700, // A700..A721; COMMON
5139 0xA722, // A722..A787; LATIN
5140 0xA788, // A788..A78A; COMMON
5141 0xA78B, // A78B..A7AD; LATIN
5142 0xA7AE, // A7AE..A7AF; UNKNOWN
5143 0xA7B0, // A7B0..A7B7; LATIN
5144 0xA7B8, // A7B8..A7F6; UNKNOWN
5145 0xA7F7, // A7F7..A7FF; LATIN
5146 0xA800, // A800..A82B; SYLOTI_NAGRI
5147 0xA82C, // A82C..A82F; UNKNOWN
5148 0xA830, // A830..A839; COMMON
5149 0xA83A, // A83A..A83F; UNKNOWN
5150 0xA840, // A840..A877; PHAGS_PA
5151 0xA878, // A878..A87F; UNKNOWN
5152 0xA880, // A880..A8C4; SAURASHTRA
5153 0xA8C5, // A8C5..A8CD; UNKNOWN
5154 0xA8CE, // A8CE..A8D9; SAURASHTRA
5155 0xA8DA, // A8DA..A8DF; UNKNOWN
5156 0xA8E0, // A8E0..A8FD; DEVANAGARI
5157 0xA8FE, // A8FE..A8FF; UNKNOWN
5158 0xA900, // A900..A92D; KAYAH_LI
5159 0xA92E, // A92E ; COMMON
5160 0xA92F, // A92F ; KAYAH_LI
5161 0xA930, // A930..A953; REJANG
5162 0xA954, // A954..A95E; UNKNOWN
5163 0xA95F, // A95F ; REJANG
5164 0xA960, // A960..A97C; HANGUL
5165 0xA97D, // A97D..A97F; UNKNOWN
5166 0xA980, // A980..A9CD; JAVANESE
5167 0xA9CE, // A9CE ; UNKNOWN
5168 0xA9CF, // A9CF ; COMMON
5169 0xA9D0, // A9D0..A9D9; JAVANESE
5170 0xA9DA, // A9DA..A9DD; UNKNOWN
5171 0xA9DE, // A9DE..A9DF; JAVANESE
5172 0xA9E0, // A9E0..A9FE; MYANMAR
5173 0xA9FF, // A9FF ; UNKNOWN
5284 0xFFFE, // FFFE..FFFF; UNKNOWN
5285 0x10000, // 10000..1000B; LINEAR_B
5286 0x1000C, // 1000C ; UNKNOWN
5287 0x1000D, // 1000D..10026; LINEAR_B
5288 0x10027, // 10027 ; UNKNOWN
5289 0x10028, // 10028..1003A; LINEAR_B
5290 0x1003B, // 1003B ; UNKNOWN
5291 0x1003C, // 1003C..1003D; LINEAR_B
5292 0x1003E, // 1003E ; UNKNOWN
5293 0x1003F, // 1003F..1004D; LINEAR_B
5294 0x1004E, // 1004E..1004F; UNKNOWN
5295 0x10050, // 10050..1005D; LINEAR_B
5296 0x1005E, // 1005E..1007F; UNKNOWN
5297 0x10080, // 10080..100FA; LINEAR_B
5298 0x100FB, // 100FB..100FF; UNKNOWN
5299 0x10100, // 10100..10102; COMMON
5300 0x10103, // 10103..10106; UNKNOWN
5301 0x10107, // 10107..10133; COMMON
5302 0x10134, // 10134..10136; UNKNOWN
5303 0x10137, // 10137..1013F; COMMON
5304 0x10140, // 10140..1018C; GREEK
5305 0x1018D, // 1018D..1018F; UNKNOWN
5306 0x10190, // 10190..1019B; COMMON
5307 0x1019C, // 1019C..1019F; UNKNOWN
5308 0x101A0, // 101A0 ; GREEK
5309 0x101A1, // 101A1..101CF; UNKNOWN
5310 0x101D0, // 101D0..101FC; COMMON
5311 0x101FD, // 101FD ; INHERITED
5312 0x101FE, // 101FE..1027F; UNKNOWN
5313 0x10280, // 10280..1029C; LYCIAN
5314 0x1029D, // 1029D..1029F; UNKNOWN
5315 0x102A0, // 102A0..102D0; CARIAN
5316 0x102D1, // 102D1..102DF; UNKNOWN
5317 0x102E0, // 102E0 ; INHERITED
5318 0x102E1, // 102E1..102FB; COMMON
5319 0x102FC, // 102FC..102FF; UNKNOWN
5320 0x10300, // 10300..10323; OLD_ITALIC
5321 0x10324, // 10324..1032F; UNKNOWN
5322 0x10330, // 10330..1034A; GOTHIC
5323 0x1034B, // 1034B..1034F; UNKNOWN
5324 0x10350, // 10350..1037A; OLD_PERMIC
5325 0x1037B, // 1037B..1037F; UNKNOWN
5326 0x10380, // 10380..1039D; UGARITIC
5327 0x1039E, // 1039E ; UNKNOWN
5328 0x1039F, // 1039F ; UGARITIC
5329 0x103A0, // 103A0..103C3; OLD_PERSIAN
5330 0x103C4, // 103C4..103C7; UNKNOWN
5331 0x103C8, // 103C8..103D5; OLD_PERSIAN
5332 0x103D6, // 103D6..103FF; UNKNOWN
5333 0x10400, // 10400..1044F; DESERET
5334 0x10450, // 10450..1047F; SHAVIAN
5335 0x10480, // 10480..1049D; OSMANYA
5336 0x1049E, // 1049E..1049F; UNKNOWN
5337 0x104A0, // 104A0..104A9; OSMANYA
5338 0x104AA, // 104AA..104FF; UNKNOWN
5339 0x10500, // 10500..10527; ELBASAN
5340 0x10528, // 10528..1052F; UNKNOWN
5341 0x10530, // 10530..10563; CAUCASIAN_ALBANIAN
5342 0x10564, // 10564..1056E; UNKNOWN
5343 0x1056F, // 1056F ; CAUCASIAN_ALBANIAN
5344 0x10570, // 10570..105FF; UNKNOWN
5345 0x10600, // 10600..10736; LINEAR_A
5346 0x10737, // 10737..1073F; UNKNOWN
5347 0x10740, // 10740..10755; LINEAR_A
5348 0x10756, // 10756..1075F; UNKNOWN
5349 0x10760, // 10760..10767; LINEAR_A
5350 0x10768, // 10768..107FF; UNKNOWN
5351 0x10800, // 10800..10805; CYPRIOT
5352 0x10806, // 10806..10807; UNKNOWN
5353 0x10808, // 10808 ; CYPRIOT
5354 0x10809, // 10809 ; UNKNOWN
5355 0x1080A, // 1080A..10835; CYPRIOT
5356 0x10836, // 10836 ; UNKNOWN
5357 0x10837, // 10837..10838; CYPRIOT
5358 0x10839, // 10839..1083B; UNKNOWN
5441 0x11080, // 11080..110C1; KAITHI
5442 0x110C2, // 110C2..110CF; UNKNOWN
5443 0x110D0, // 110D0..110E8; SORA_SOMPENG
5444 0x110E9, // 110E9..110EF; UNKNOWN
5445 0x110F0, // 110F0..110F9; SORA_SOMPENG
5446 0x110FA, // 110FA..110FF; UNKNOWN
5447 0x11100, // 11100..11134; CHAKMA
5448 0x11135, // 11135 ; UNKNOWN
5449 0x11136, // 11136..11143; CHAKMA
5450 0x11144, // 11144..1114F; UNKNOWN
5451 0x11150, // 11150..11176; MAHAJANI
5452 0x11177, // 11177..1117F; UNKNOWN
5453 0x11180, // 11180..111CD; SHARADA
5454 0x111CE, // 111CE..111CF; UNKNOWN
5455 0x111D0, // 111D0..111DF; SHARADA
5456 0x111E0, // 111E0 ; UNKNOWN
5457 0x111E1, // 111E1..111F4; SINHALA
5458 0x111F5, // 111F5..111FF; UNKNOWN
5459 0x11200, // 11200..11211; KHOJKI
5460 0x11212, // 11212 ; UNKNOWN
5461 0x11213, // 11213..1123D; KHOJKI
5462 0x1123E, // 1123E..1127F; UNKNOWN
5463 0x11280, // 11280..11286; MULTANI
5464 0x11287, // 11287 ; UNKNOWN
5465 0x11288, // 11288 ; MULTANI
5466 0x11289, // 11289 ; UNKNOWN
5467 0x1128A, // 1128A..1128D; MULTANI
5468 0x1128E, // 1128E ; UNKNOWN
5469 0x1128F, // 1128F..1129D; MULTANI
5470 0x1129E, // 1129E ; UNKNOWN
5471 0x1129F, // 1129F..112A9; MULTANI
5472 0x112AA, // 112AA..112AF; UNKNOWN
5473 0x112B0, // 112B0..112EA; KHUDAWADI
5474 0x112EB, // 112EB..112EF; UNKNOWN
5475 0x112F0, // 112F0..112F9; KHUDAWADI
5476 0x112FA, // 112FA..112FF; UNKNOWN
5477 0x11300, // 11300..11303; GRANTHA
5478 0x11304, // 11304 ; UNKNOWN
5479 0x11305, // 11305..1130C; GRANTHA
5480 0x1130D, // 1130D..1130E; UNKNOWN
5481 0x1130F, // 1130F..11310; GRANTHA
5482 0x11311, // 11311..11312; UNKNOWN
5486 0x11331, // 11331 ; UNKNOWN
5487 0x11332, // 11332..11333; GRANTHA
5488 0x11334, // 11334 ; UNKNOWN
5489 0x11335, // 11335..11339; GRANTHA
5490 0x1133A, // 1133A..1133B; UNKNOWN
5491 0x1133C, // 1133C..11344; GRANTHA
5492 0x11345, // 11345..11346; UNKNOWN
5493 0x11347, // 11347..11348; GRANTHA
5494 0x11349, // 11349..1134A; UNKNOWN
5495 0x1134B, // 1134B..1134D; GRANTHA
5496 0x1134E, // 1134E..1134F; UNKNOWN
5497 0x11350, // 11350 ; GRANTHA
5498 0x11351, // 11351..11356; UNKNOWN
5499 0x11357, // 11357 ; GRANTHA
5500 0x11358, // 11358..1135C; UNKNOWN
5501 0x1135D, // 1135D..11363; GRANTHA
5502 0x11364, // 11364..11365; UNKNOWN
5503 0x11366, // 11366..1136C; GRANTHA
5504 0x1136D, // 1136D..1136F; UNKNOWN
5505 0x11370, // 11370..11374; GRANTHA
5506 0x11375, // 11375..1147F; UNKNOWN
5507 0x11480, // 11480..114C7; TIRHUTA
5508 0x114C8, // 114C8..114CF; UNKNOWN
5509 0x114D0, // 114D0..114D9; TIRHUTA
5510 0x114DA, // 114DA..1157F; UNKNOWN
5511 0x11580, // 11580..115B5; SIDDHAM
5512 0x115B6, // 115B6..115B7; UNKNOWN
5513 0x115B8, // 115B8..115DD; SIDDHAM
5514 0x115DE, // 115DE..115FF; UNKNOWN
5515 0x11600, // 11600..11644; MODI
5516 0x11645, // 11645..1164F; UNKNOWN
5517 0x11650, // 11650..11659; MODI
5518 0x1165A, // 1165A..1167F; UNKNOWN
5519 0x11680, // 11680..116B7; TAKRI
5520 0x116B8, // 116B8..116BF; UNKNOWN
5521 0x116C0, // 116C0..116C9; TAKRI
5522 0x116CA, // 116CA..116FF; UNKNOWN
5523 0x11700, // 11700..11719; AHOM
5524 0x1171A, // 1171A..1171C; UNKNOWN
5525 0x1171D, // 1171D..1172B; AHOM
5526 0x1172C, // 1172C..1172F; UNKNOWN
5527 0x11730, // 11730..1173F; AHOM
5528 0x11740, // 11740..1189F; UNKNOWN
5529 0x118A0, // 118A0..118F2; WARANG_CITI
5530 0x118F3, // 118F3..118FE; UNKNOWN
5531 0x118FF, // 118FF ; WARANG_CITI
5532 0x11900, // 11900..11ABF; UNKNOWN
5533 0x11AC0, // 11AC0..11AF8; PAU_CIN_HAU
5534 0x11AF9, // 11AF9..11FFF; UNKNOWN
5535 0x12000, // 12000..12399; CUNEIFORM
5536 0x1239A, // 1239A..123FF; UNKNOWN
5537 0x12400, // 12400..1246E; CUNEIFORM
5538 0x1246F, // 1246F ; UNKNOWN
5539 0x12470, // 12470..12474; CUNEIFORM
5540 0x12475, // 12475..1247F; UNKNOWN
5541 0x12480, // 12480..12543; CUNEIFORM
5542 0x12544, // 12544..12FFF; UNKNOWN
5543 0x13000, // 13000..1342E; EGYPTIAN_HIEROGLYPHS
5544 0x1342F, // 1342F..143FF; UNKNOWN
5545 0x14400, // 14400..14646; ANATOLIAN_HIEROGLYPHS
5546 0x14647, // 14647..167FF; UNKNOWN
5547 0x16800, // 16800..16A38; BAMUM
5548 0x16A39, // 16A39..16A3F; UNKNOWN
5549 0x16A40, // 16A40..16A5E; MRO
5550 0x16A5F, // 16A5F ; UNKNOWN
5551 0x16A60, // 16A60..16A69; MRO
5552 0x16A6A, // 16A6A..16A6D; UNKNOWN
5553 0x16A6E, // 16A6E..16A6F; MRO
5554 0x16A70, // 16A70..16ACF; UNKNOWN
5555 0x16AD0, // 16AD0..16AED; BASSA_VAH
5556 0x16AEE, // 16AEE..16AEF; UNKNOWN
5557 0x16AF0, // 16AF0..16AF5; BASSA_VAH
5558 0x16AF6, // 16AF6..16AFF; UNKNOWN
5559 0x16B00, // 16B00..16B45; PAHAWH_HMONG
5560 0x16B46, // 16B46..16B4F; UNKNOWN
5561 0x16B50, // 16B50..16B59; PAHAWH_HMONG
5562 0x16B5A, // 16B5A ; UNKNOWN
5563 0x16B5B, // 16B5B..16B61; PAHAWH_HMONG
5564 0x16B62, // 16B62 ; UNKNOWN
5565 0x16B63, // 16B63..16B77; PAHAWH_HMONG
5566 0x16B78, // 16B78..16B7C; UNKNOWN
5567 0x16B7D, // 16B7D..16B8F; PAHAWH_HMONG
5568 0x16B90, // 16B90..16EFF; UNKNOWN
5569 0x16F00, // 16F00..16F44; MIAO
5570 0x16F45, // 16F45..16F4F; UNKNOWN
5571 0x16F50, // 16F50..16F7E; MIAO
5572 0x16F7F, // 16F7F..16F8E; UNKNOWN
5573 0x16F8F, // 16F8F..16F9F; MIAO
5574 0x16FA0, // 16FA0..1AFFF; UNKNOWN
5575 0x1B000, // 1B000 ; KATAKANA
5576 0x1B001, // 1B001 ; HIRAGANA
5577 0x1B002, // 1B002..1BBFF; UNKNOWN
5578 0x1BC00, // 1BC00..1BC6A; DUPLOYAN
5579 0x1BC6B, // 1BC6B..1BC6F; UNKNOWN
5580 0x1BC70, // 1BC70..1BC7C; DUPLOYAN
5581 0x1BC7D, // 1BC7D..1BC7F; UNKNOWN
5582 0x1BC80, // 1BC80..1BC88; DUPLOYAN
5583 0x1BC89, // 1BC89..1BC8F; UNKNOWN
5584 0x1BC90, // 1BC90..1BC99; DUPLOYAN
5585 0x1BC9A, // 1BC9A..1BC9B; UNKNOWN
5586 0x1BC9C, // 1BC9C..1BC9F; DUPLOYAN
5587 0x1BCA0, // 1BCA0..1BCA3; COMMON
5588 0x1BCA4, // 1BCA4..1CFFF; UNKNOWN
5589 0x1D000, // 1D000..1D0F5; COMMON
5590 0x1D0F6, // 1D0F6..1D0FF; UNKNOWN
5591 0x1D100, // 1D100..1D126; COMMON
5592 0x1D127, // 1D127..1D128; UNKNOWN
5593 0x1D129, // 1D129..1D166; COMMON
5594 0x1D167, // 1D167..1D169; INHERITED
5595 0x1D16A, // 1D16A..1D17A; COMMON
5596 0x1D17B, // 1D17B..1D182; INHERITED
5597 0x1D183, // 1D183..1D184; COMMON
5635 0x1D51E, // 1D51E..1D539; COMMON
5636 0x1D53A, // 1D53A ; UNKNOWN
5637 0x1D53B, // 1D53B..1D53E; COMMON
5638 0x1D53F, // 1D53F ; UNKNOWN
5639 0x1D540, // 1D540..1D544; COMMON
5640 0x1D545, // 1D545 ; UNKNOWN
5641 0x1D546, // 1D546 ; COMMON
5642 0x1D547, // 1D547..1D549; UNKNOWN
5643 0x1D54A, // 1D54A..1D550; COMMON
5644 0x1D551, // 1D551 ; UNKNOWN
5645 0x1D552, // 1D552..1D6A5; COMMON
5646 0x1D6A6, // 1D6A6..1D6A7; UNKNOWN
5647 0x1D6A8, // 1D6A8..1D7CB; COMMON
5648 0x1D7CC, // 1D7CC..1D7CD; UNKNOWN
5649 0x1D7CE, // 1D7CE..1D7FF; COMMON
5650 0x1D800, // 1D800..1DA8B; SIGNWRITING
5651 0x1DA8C, // 1DA8C..1DA9A; UNKNOWN
5652 0x1DA9B, // 1DA9B..1DA9F; SIGNWRITING
5653 0x1DAA0, // 1DAA0 ; UNKNOWN
5654 0x1DAA1, // 1DAA1..1DAAF; SIGNWRITING
5655 0x1DAB0, // 1DAB0..1E7FF; UNKNOWN
5656 0x1E800, // 1E800..1E8C4; MENDE_KIKAKUI
5657 0x1E8C5, // 1E8C5..1E8C6; UNKNOWN
5658 0x1E8C7, // 1E8C7..1E8D6; MENDE_KIKAKUI
5659 0x1E8D7, // 1E8D7..1EDFF; UNKNOWN
5660 0x1EE00, // 1EE00..1EE03; ARABIC
5661 0x1EE04, // 1EE04 ; UNKNOWN
5662 0x1EE05, // 1EE05..1EE1F; ARABIC
5663 0x1EE20, // 1EE20 ; UNKNOWN
5664 0x1EE21, // 1EE21..1EE22; ARABIC
5665 0x1EE23, // 1EE23 ; UNKNOWN
5666 0x1EE24, // 1EE24 ; ARABIC
5667 0x1EE25, // 1EE25..1EE26; UNKNOWN
5668 0x1EE27, // 1EE27 ; ARABIC
5669 0x1EE28, // 1EE28 ; UNKNOWN
5670 0x1EE29, // 1EE29..1EE32; ARABIC
5671 0x1EE33, // 1EE33 ; UNKNOWN
5672 0x1EE34, // 1EE34..1EE37; ARABIC
5673 0x1EE38, // 1EE38 ; UNKNOWN
5674 0x1EE39, // 1EE39 ; ARABIC
5675 0x1EE3A, // 1EE3A ; UNKNOWN
5676 0x1EE3B, // 1EE3B ; ARABIC
5677 0x1EE3C, // 1EE3C..1EE41; UNKNOWN
5678 0x1EE42, // 1EE42 ; ARABIC
5679 0x1EE43, // 1EE43..1EE46; UNKNOWN
5726 0x1EEF0, // 1EEF0..1EEF1; ARABIC
5727 0x1EEF2, // 1EEF2..1EFFF; UNKNOWN
5728 0x1F000, // 1F000..1F02B; COMMON
5729 0x1F02C, // 1F02C..1F02F; UNKNOWN
5730 0x1F030, // 1F030..1F093; COMMON
5731 0x1F094, // 1F094..1F09F; UNKNOWN
5732 0x1F0A0, // 1F0A0..1F0AE; COMMON
5733 0x1F0AF, // 1F0AF..1F0B0; UNKNOWN
5734 0x1F0B1, // 1F0B1..1F0BF; COMMON
5735 0x1F0C0, // 1F0C0 ; UNKNOWN
5736 0x1F0C1, // 1F0C1..1F0CF; COMMON
5737 0x1F0D0, // 1F0D0 ; UNKNOWN
5738 0x1F0D1, // 1F0D1..1F0F5; COMMON
5739 0x1F0F6, // 1F0F6..1F0FF; UNKNOWN
5740 0x1F100, // 1F100..1F10C; COMMON
5741 0x1F10D, // 1F10D..1F10F; UNKNOWN
5742 0x1F110, // 1F110..1F12E; COMMON
5743 0x1F12F, // 1F12F ; UNKNOWN
5744 0x1F130, // 1F130..1F16B; COMMON
5745 0x1F16C, // 1F16C..1F16F; UNKNOWN
5746 0x1F170, // 1F170..1F19A; COMMON
5747 0x1F19B, // 1F19B..1F1E5; UNKNOWN
5748 0x1F1E6, // 1F1E6..1F1FF; COMMON
5749 0x1F200, // 1F200 ; HIRAGANA
5750 0x1F201, // 1F201..1F202; COMMON
5751 0x1F203, // 1F203..1F20F; UNKNOWN
5752 0x1F210, // 1F210..1F23A; COMMON
5753 0x1F23B, // 1F23B..1F23F; UNKNOWN
5754 0x1F240, // 1F240..1F248; COMMON
5755 0x1F249, // 1F249..1F24F; UNKNOWN
5756 0x1F250, // 1F250..1F251; COMMON
5757 0x1F252, // 1F252..1F2FF; UNKNOWN
5758 0x1F300, // 1F300..1F579; COMMON
5759 0x1F57A, // 1F57A ; UNKNOWN
5760 0x1F57B, // 1F57B..1F5A3; COMMON
5761 0x1F5A4, // 1F5A4 ; UNKNOWN
5762 0x1F5A5, // 1F5A5..1F6D0; COMMON
5763 0x1F6D1, // 1F6D1..1F6DF; UNKNOWN
5764 0x1F6E0, // 1F6E0..1F6EC; COMMON
5765 0x1F6ED, // 1F6ED..1F6EF; UNKNOWN
5766 0x1F6F0, // 1F6F0..1F6F3; COMMON
5767 0x1F6F4, // 1F6F4..1F6FF; UNKNOWN
5768 0x1F700, // 1F700..1F773; COMMON
5769 0x1F774, // 1F774..1F77F; UNKNOWN
5770 0x1F780, // 1F780..1F7D4; COMMON
5771 0x1F7D5, // 1F7D5..1F7FF; UNKNOWN
5772 0x1F800, // 1F800..1F80B; COMMON
5773 0x1F80C, // 1F80C..1F80F; UNKNOWN
5774 0x1F810, // 1F810..1F847; COMMON
5775 0x1F848, // 1F848..1F84F; UNKNOWN
5776 0x1F850, // 1F850..1F859; COMMON
5777 0x1F85A, // 1F85A..1F85F; UNKNOWN
5778 0x1F860, // 1F860..1F887; COMMON
5779 0x1F888, // 1F888..1F88F; UNKNOWN
5780 0x1F890, // 1F890..1F8AD; COMMON
5781 0x1F8AE, // 1F8AE..1F90F; UNKNOWN
5782 0x1F910, // 1F910..1F918; COMMON
5783 0x1F919, // 1F919..1F97F; UNKNOWN
5784 0x1F980, // 1F980..1F984; COMMON
5785 0x1F985, // 1F985..1F9BF; UNKNOWN
5786 0x1F9C0, // 1F9C0 ; COMMON
5787 0x1F9C1, // 1F9C1..1FFFF; UNKNOWN
5788 0x20000, // 20000..2A6D6; HAN
5789 0x2A6D7, // 2A6D7..2A6FF; UNKNOWN
5790 0x2A700, // 2A700..2B734; HAN
5791 0x2B735, // 2B735..2B73F; UNKNOWN
5792 0x2B740, // 2B740..2B81D; HAN
5793 0x2B81E, // 2B81E..2B81F; UNKNOWN
5794 0x2B820, // 2B820..2CEA1; HAN
5795 0x2CEA2, // 2CEA2..2F7FF; UNKNOWN
5796 0x2F800, // 2F800..2FA1D; HAN
5797 0x2FA1E, // 2FA1E..E0000; UNKNOWN
5798 0xE0001, // E0001 ; COMMON
5799 0xE0002, // E0002..E001F; UNKNOWN
5800 0xE0020, // E0020..E007F; COMMON
5801 0xE0080, // E0080..E00FF; UNKNOWN
5802 0xE0100, // E0100..E01EF; INHERITED
5803 0xE01F0 // E01F0..10FFFF; UNKNOWN
5804 };
5805
5806 private static final UnicodeScript[] scripts = {
5807 COMMON, // 0000..0040
5808 LATIN, // 0041..005A
5809 COMMON, // 005B..0060
5810 LATIN, // 0061..007A
5811 COMMON, // 007B..00A9
5812 LATIN, // 00AA
5813 COMMON, // 00AB..00B9
5814 LATIN, // 00BA
5815 COMMON, // 00BB..00BF
5854 ARMENIAN, // 0559..055F
5855 UNKNOWN, // 0560
5856 ARMENIAN, // 0561..0587
5857 UNKNOWN, // 0588
5858 COMMON, // 0589
5859 ARMENIAN, // 058A
5860 UNKNOWN, // 058B..058C
5861 ARMENIAN, // 058D..058F
5862 UNKNOWN, // 0590
5863 HEBREW, // 0591..05C7
5864 UNKNOWN, // 05C8..05CF
5865 HEBREW, // 05D0..05EA
5866 UNKNOWN, // 05EB..05EF
5867 HEBREW, // 05F0..05F4
5868 UNKNOWN, // 05F5..05FF
5869 ARABIC, // 0600..0604
5870 COMMON, // 0605
5871 ARABIC, // 0606..060B
5872 COMMON, // 060C
5873 ARABIC, // 060D..061A
5874 COMMON, // 061B..061C
5875 UNKNOWN, // 061D
5876 ARABIC, // 061E
5877 COMMON, // 061F
5878 ARABIC, // 0620..063F
5879 COMMON, // 0640
5880 ARABIC, // 0641..064A
5881 INHERITED, // 064B..0655
5882 ARABIC, // 0656..066F
5883 INHERITED, // 0670
5884 ARABIC, // 0671..06DC
5885 COMMON, // 06DD
5886 ARABIC, // 06DE..06FF
5887 SYRIAC, // 0700..070D
5888 UNKNOWN, // 070E
5889 SYRIAC, // 070F..074A
5890 UNKNOWN, // 074B..074C
5891 SYRIAC, // 074D..074F
5892 ARABIC, // 0750..077F
5893 THAANA, // 0780..07B1
5894 UNKNOWN, // 07B2..07BF
5895 NKO, // 07C0..07FA
5896 UNKNOWN, // 07FB..07FF
5897 SAMARITAN, // 0800..082D
5898 UNKNOWN, // 082E..082F
5899 SAMARITAN, // 0830..083E
5900 UNKNOWN, // 083F
5901 MANDAIC, // 0840..085B
5902 UNKNOWN, // 085C..085D
5903 MANDAIC, // 085E
5904 UNKNOWN, // 085F..089F
5905 ARABIC, // 08A0..08B4
5906 UNKNOWN, // 08B5..08E2
5907 ARABIC, // 08E3..08FF
5908 DEVANAGARI, // 0900..0950
5909 INHERITED, // 0951..0952
5910 DEVANAGARI, // 0953..0963
5911 COMMON, // 0964..0965
5912 DEVANAGARI, // 0966..097F
5913 BENGALI, // 0980..0983
5914 UNKNOWN, // 0984
5915 BENGALI, // 0985..098C
5916 UNKNOWN, // 098D..098E
5917 BENGALI, // 098F..0990
5918 UNKNOWN, // 0991..0992
5919 BENGALI, // 0993..09A8
5920 UNKNOWN, // 09A9
5921 BENGALI, // 09AA..09B0
5922 UNKNOWN, // 09B1
5923 BENGALI, // 09B2
5924 UNKNOWN, // 09B3..09B5
5925 BENGALI, // 09B6..09B9
5926 UNKNOWN, // 09BA..09BB
5927 BENGALI, // 09BC..09C4
5928 UNKNOWN, // 09C5..09C6
5929 BENGALI, // 09C7..09C8
5930 UNKNOWN, // 09C9..09CA
5931 BENGALI, // 09CB..09CE
5932 UNKNOWN, // 09CF..09D6
5933 BENGALI, // 09D7
5934 UNKNOWN, // 09D8..09DB
5935 BENGALI, // 09DC..09DD
5936 UNKNOWN, // 09DE
5937 BENGALI, // 09DF..09E3
5938 UNKNOWN, // 09E4..09E5
5939 BENGALI, // 09E6..09FB
5940 UNKNOWN, // 09FC..0A00
5941 GURMUKHI, // 0A01..0A03
5942 UNKNOWN, // 0A04
5943 GURMUKHI, // 0A05..0A0A
5944 UNKNOWN, // 0A0B..0A0E
5945 GURMUKHI, // 0A0F..0A10
5946 UNKNOWN, // 0A11..0A12
5947 GURMUKHI, // 0A13..0A28
5948 UNKNOWN, // 0A29
5949 GURMUKHI, // 0A2A..0A30
5950 UNKNOWN, // 0A31
5951 GURMUKHI, // 0A32..0A33
5952 UNKNOWN, // 0A34
5953 GURMUKHI, // 0A35..0A36
5954 UNKNOWN, // 0A37
5955 GURMUKHI, // 0A38..0A39
5956 UNKNOWN, // 0A3A..0A3B
5957 GURMUKHI, // 0A3C
5958 UNKNOWN, // 0A3D
5959 GURMUKHI, // 0A3E..0A42
5960 UNKNOWN, // 0A43..0A46
5979 GUJARATI, // 0A93..0AA8
5980 UNKNOWN, // 0AA9
5981 GUJARATI, // 0AAA..0AB0
5982 UNKNOWN, // 0AB1
5983 GUJARATI, // 0AB2..0AB3
5984 UNKNOWN, // 0AB4
5985 GUJARATI, // 0AB5..0AB9
5986 UNKNOWN, // 0ABA..0ABB
5987 GUJARATI, // 0ABC..0AC5
5988 UNKNOWN, // 0AC6
5989 GUJARATI, // 0AC7..0AC9
5990 UNKNOWN, // 0ACA
5991 GUJARATI, // 0ACB..0ACD
5992 UNKNOWN, // 0ACE..0ACF
5993 GUJARATI, // 0AD0
5994 UNKNOWN, // 0AD1..0ADF
5995 GUJARATI, // 0AE0..0AE3
5996 UNKNOWN, // 0AE4..0AE5
5997 GUJARATI, // 0AE6..0AF1
5998 UNKNOWN, // 0AF2..0AF8
5999 GUJARATI, // 0AF9
6000 UNKNOWN, // 0AFA..0B00
6001 ORIYA, // 0B01..0B03
6002 UNKNOWN, // 0B04
6003 ORIYA, // 0B05..0B0C
6004 UNKNOWN, // 0B0D..0B0E
6005 ORIYA, // 0B0F..0B10
6006 UNKNOWN, // 0B11..0B12
6007 ORIYA, // 0B13..0B28
6008 UNKNOWN, // 0B29
6009 ORIYA, // 0B2A..0B30
6010 UNKNOWN, // 0B31
6011 ORIYA, // 0B32..0B33
6012 UNKNOWN, // 0B34
6013 ORIYA, // 0B35..0B39
6014 UNKNOWN, // 0B3A..0B3B
6015 ORIYA, // 0B3C..0B44
6016 UNKNOWN, // 0B45..0B46
6017 ORIYA, // 0B47..0B48
6018 UNKNOWN, // 0B49..0B4A
6019 ORIYA, // 0B4B..0B4D
6020 UNKNOWN, // 0B4E..0B55
6066 UNKNOWN, // 0C11
6067 TELUGU, // 0C12..0C28
6068 UNKNOWN, // 0C29
6069 TELUGU, // 0C2A..0C39
6070 UNKNOWN, // 0C3A..0C3C
6071 TELUGU, // 0C3D..0C44
6072 UNKNOWN, // 0C45
6073 TELUGU, // 0C46..0C48
6074 UNKNOWN, // 0C49
6075 TELUGU, // 0C4A..0C4D
6076 UNKNOWN, // 0C4E..0C54
6077 TELUGU, // 0C55..0C56
6078 UNKNOWN, // 0C57
6079 TELUGU, // 0C58..0C5A
6080 UNKNOWN, // 0C5B..0C5F
6081 TELUGU, // 0C60..0C63
6082 UNKNOWN, // 0C64..0C65
6083 TELUGU, // 0C66..0C6F
6084 UNKNOWN, // 0C70..0C77
6085 TELUGU, // 0C78..0C7F
6086 UNKNOWN, // 0C80
6087 KANNADA, // 0C81..0C83
6088 UNKNOWN, // 0C84
6089 KANNADA, // 0C85..0C8C
6090 UNKNOWN, // 0C8D
6091 KANNADA, // 0C8E..0C90
6092 UNKNOWN, // 0C91
6093 KANNADA, // 0C92..0CA8
6094 UNKNOWN, // 0CA9
6095 KANNADA, // 0CAA..0CB3
6096 UNKNOWN, // 0CB4
6097 KANNADA, // 0CB5..0CB9
6098 UNKNOWN, // 0CBA..0CBB
6099 KANNADA, // 0CBC..0CC4
6100 UNKNOWN, // 0CC5
6101 KANNADA, // 0CC6..0CC8
6102 UNKNOWN, // 0CC9
6103 KANNADA, // 0CCA..0CCD
6104 UNKNOWN, // 0CCE..0CD4
6105 KANNADA, // 0CD5..0CD6
6106 UNKNOWN, // 0CD7..0CDD
6107 KANNADA, // 0CDE
6108 UNKNOWN, // 0CDF
6109 KANNADA, // 0CE0..0CE3
6110 UNKNOWN, // 0CE4..0CE5
6111 KANNADA, // 0CE6..0CEF
6112 UNKNOWN, // 0CF0
6113 KANNADA, // 0CF1..0CF2
6114 UNKNOWN, // 0CF3..0D00
6115 MALAYALAM, // 0D01..0D03
6116 UNKNOWN, // 0D04
6117 MALAYALAM, // 0D05..0D0C
6118 UNKNOWN, // 0D0D
6119 MALAYALAM, // 0D0E..0D10
6120 UNKNOWN, // 0D11
6121 MALAYALAM, // 0D12..0D3A
6122 UNKNOWN, // 0D3B..0D3C
6123 MALAYALAM, // 0D3D..0D44
6124 UNKNOWN, // 0D45
6125 MALAYALAM, // 0D46..0D48
6126 UNKNOWN, // 0D49
6127 MALAYALAM, // 0D4A..0D4E
6128 UNKNOWN, // 0D4F..0D56
6129 MALAYALAM, // 0D57
6130 UNKNOWN, // 0D58..0D5E
6131 MALAYALAM, // 0D5F..0D63
6132 UNKNOWN, // 0D64..0D65
6133 MALAYALAM, // 0D66..0D75
6134 UNKNOWN, // 0D76..0D78
6135 MALAYALAM, // 0D79..0D7F
6136 UNKNOWN, // 0D80..0D81
6137 SINHALA, // 0D82..0D83
6138 UNKNOWN, // 0D84
6139 SINHALA, // 0D85..0D96
6140 UNKNOWN, // 0D97..0D99
6141 SINHALA, // 0D9A..0DB1
6142 UNKNOWN, // 0DB2
6143 SINHALA, // 0DB3..0DBB
6144 UNKNOWN, // 0DBC
6145 SINHALA, // 0DBD
6146 UNKNOWN, // 0DBE..0DBF
6147 SINHALA, // 0DC0..0DC6
6148 UNKNOWN, // 0DC7..0DC9
6149 SINHALA, // 0DCA
6150 UNKNOWN, // 0DCB..0DCE
6151 SINHALA, // 0DCF..0DD4
6152 UNKNOWN, // 0DD5
6153 SINHALA, // 0DD6
6154 UNKNOWN, // 0DD7
6155 SINHALA, // 0DD8..0DDF
6339 TAI_THAM, // 1A90..1A99
6340 UNKNOWN, // 1A9A..1A9F
6341 TAI_THAM, // 1AA0..1AAD
6342 UNKNOWN, // 1AAE..1AAF
6343 INHERITED, // 1AB0..1ABE
6344 UNKNOWN, // 1ABF..1AFF
6345 BALINESE, // 1B00..1B4B
6346 UNKNOWN, // 1B4C..1B4F
6347 BALINESE, // 1B50..1B7C
6348 UNKNOWN, // 1B7D..1B7F
6349 SUNDANESE, // 1B80..1BBF
6350 BATAK, // 1BC0..1BF3
6351 UNKNOWN, // 1BF4..1BFB
6352 BATAK, // 1BFC..1BFF
6353 LEPCHA, // 1C00..1C37
6354 UNKNOWN, // 1C38..1C3A
6355 LEPCHA, // 1C3B..1C49
6356 UNKNOWN, // 1C4A..1C4C
6357 LEPCHA, // 1C4D..1C4F
6358 OL_CHIKI, // 1C50..1C7F
6359 UNKNOWN, // 1C80..1CBF
6360 SUNDANESE, // 1CC0..1CC7
6361 UNKNOWN, // 1CC8..1CCF
6362 INHERITED, // 1CD0..1CD2
6363 COMMON, // 1CD3
6364 INHERITED, // 1CD4..1CE0
6365 COMMON, // 1CE1
6366 INHERITED, // 1CE2..1CE8
6367 COMMON, // 1CE9..1CEC
6368 INHERITED, // 1CED
6369 COMMON, // 1CEE..1CF3
6370 INHERITED, // 1CF4
6371 COMMON, // 1CF5..1CF6
6372 UNKNOWN, // 1CF7
6373 INHERITED, // 1CF8..1CF9
6374 UNKNOWN, // 1CFA..1CFF
6375 LATIN, // 1D00..1D25
6376 GREEK, // 1D26..1D2A
6377 CYRILLIC, // 1D2B
6378 LATIN, // 1D2C..1D5C
6379 GREEK, // 1D5D..1D61
6380 LATIN, // 1D62..1D65
6381 GREEK, // 1D66..1D6A
6382 LATIN, // 1D6B..1D77
6383 CYRILLIC, // 1D78
6384 LATIN, // 1D79..1DBE
6385 GREEK, // 1DBF
6386 INHERITED, // 1DC0..1DF5
6387 UNKNOWN, // 1DF6..1DFB
6388 INHERITED, // 1DFC..1DFF
6389 LATIN, // 1E00..1EFF
6390 GREEK, // 1F00..1F15
6391 UNKNOWN, // 1F16..1F17
6392 GREEK, // 1F18..1F1D
6393 UNKNOWN, // 1F1E..1F1F
6394 GREEK, // 1F20..1F45
6395 UNKNOWN, // 1F46..1F47
6396 GREEK, // 1F48..1F4D
6397 UNKNOWN, // 1F4E..1F4F
6398 GREEK, // 1F50..1F57
6399 UNKNOWN, // 1F58
6400 GREEK, // 1F59
6401 UNKNOWN, // 1F5A
6402 GREEK, // 1F5B
6403 UNKNOWN, // 1F5C
6404 GREEK, // 1F5D
6405 UNKNOWN, // 1F5E
6406 GREEK, // 1F5F..1F7D
6407 UNKNOWN, // 1F7E..1F7F
6408 GREEK, // 1F80..1FB4
6415 UNKNOWN, // 1FDC
6416 GREEK, // 1FDD..1FEF
6417 UNKNOWN, // 1FF0..1FF1
6418 GREEK, // 1FF2..1FF4
6419 UNKNOWN, // 1FF5
6420 GREEK, // 1FF6..1FFE
6421 UNKNOWN, // 1FFF
6422 COMMON, // 2000..200B
6423 INHERITED, // 200C..200D
6424 COMMON, // 200E..2064
6425 UNKNOWN, // 2065
6426 COMMON, // 2066..2070
6427 LATIN, // 2071
6428 UNKNOWN, // 2072..2073
6429 COMMON, // 2074..207E
6430 LATIN, // 207F
6431 COMMON, // 2080..208E
6432 UNKNOWN, // 208F
6433 LATIN, // 2090..209C
6434 UNKNOWN, // 209D..209F
6435 COMMON, // 20A0..20BE
6436 UNKNOWN, // 20BF..20CF
6437 INHERITED, // 20D0..20F0
6438 UNKNOWN, // 20F1..20FF
6439 COMMON, // 2100..2125
6440 GREEK, // 2126
6441 COMMON, // 2127..2129
6442 LATIN, // 212A..212B
6443 COMMON, // 212C..2131
6444 LATIN, // 2132
6445 COMMON, // 2133..214D
6446 LATIN, // 214E
6447 COMMON, // 214F..215F
6448 LATIN, // 2160..2188
6449 COMMON, // 2189..218B
6450 UNKNOWN, // 218C..218F
6451 COMMON, // 2190..23FA
6452 UNKNOWN, // 23FB..23FF
6453 COMMON, // 2400..2426
6454 UNKNOWN, // 2427..243F
6455 COMMON, // 2440..244A
6456 UNKNOWN, // 244B..245F
6457 COMMON, // 2460..27FF
6458 BRAILLE, // 2800..28FF
6459 COMMON, // 2900..2B73
6460 UNKNOWN, // 2B74..2B75
6461 COMMON, // 2B76..2B95
6462 UNKNOWN, // 2B96..2B97
6463 COMMON, // 2B98..2BB9
6464 UNKNOWN, // 2BBA..2BBC
6465 COMMON, // 2BBD..2BC8
6466 UNKNOWN, // 2BC9
6467 COMMON, // 2BCA..2BD1
6468 UNKNOWN, // 2BD2..2BEB
6469 COMMON, // 2BEC..2BEF
6470 UNKNOWN, // 2BF0..2BFF
6471 GLAGOLITIC, // 2C00..2C2E
6472 UNKNOWN, // 2C2F
6473 GLAGOLITIC, // 2C30..2C5E
6474 UNKNOWN, // 2C5F
6475 LATIN, // 2C60..2C7F
6476 COPTIC, // 2C80..2CF3
6477 UNKNOWN, // 2CF4..2CF8
6478 COPTIC, // 2CF9..2CFF
6479 GEORGIAN, // 2D00..2D25
6480 UNKNOWN, // 2D26
6481 GEORGIAN, // 2D27
6482 UNKNOWN, // 2D28..2D2C
6483 GEORGIAN, // 2D2D
6484 UNKNOWN, // 2D2E..2D2F
6485 TIFINAGH, // 2D30..2D67
6486 UNKNOWN, // 2D68..2D6E
6487 TIFINAGH, // 2D6F..2D70
6488 UNKNOWN, // 2D71..2D7E
6489 TIFINAGH, // 2D7F
6490 ETHIOPIC, // 2D80..2D96
6491 UNKNOWN, // 2D97..2D9F
6492 ETHIOPIC, // 2DA0..2DA6
6493 UNKNOWN, // 2DA7
6494 ETHIOPIC, // 2DA8..2DAE
6495 UNKNOWN, // 2DAF
6496 ETHIOPIC, // 2DB0..2DB6
6497 UNKNOWN, // 2DB7
6498 ETHIOPIC, // 2DB8..2DBE
6499 UNKNOWN, // 2DBF
6500 ETHIOPIC, // 2DC0..2DC6
6501 UNKNOWN, // 2DC7
6502 ETHIOPIC, // 2DC8..2DCE
6503 UNKNOWN, // 2DCF
6504 ETHIOPIC, // 2DD0..2DD6
6505 UNKNOWN, // 2DD7
6506 ETHIOPIC, // 2DD8..2DDE
6507 UNKNOWN, // 2DDF
6508 CYRILLIC, // 2DE0..2DFF
6509 COMMON, // 2E00..2E42
6510 UNKNOWN, // 2E43..2E7F
6511 HAN, // 2E80..2E99
6512 UNKNOWN, // 2E9A
6513 HAN, // 2E9B..2EF3
6514 UNKNOWN, // 2EF4..2EFF
6515 HAN, // 2F00..2FD5
6516 UNKNOWN, // 2FD6..2FEF
6517 COMMON, // 2FF0..2FFB
6518 UNKNOWN, // 2FFC..2FFF
6519 COMMON, // 3000..3004
6520 HAN, // 3005
6521 COMMON, // 3006
6522 HAN, // 3007
6523 COMMON, // 3008..3020
6524 HAN, // 3021..3029
6525 INHERITED, // 302A..302D
6526 HANGUL, // 302E..302F
6527 COMMON, // 3030..3037
6528 HAN, // 3038..303B
6529 COMMON, // 303C..303F
6530 UNKNOWN, // 3040
6531 HIRAGANA, // 3041..3096
6532 UNKNOWN, // 3097..3098
6533 INHERITED, // 3099..309A
6534 COMMON, // 309B..309C
6535 HIRAGANA, // 309D..309F
6536 COMMON, // 30A0
6537 KATAKANA, // 30A1..30FA
6538 COMMON, // 30FB..30FC
6539 KATAKANA, // 30FD..30FF
6540 UNKNOWN, // 3100..3104
6541 BOPOMOFO, // 3105..312D
6542 UNKNOWN, // 312E..3130
6543 HANGUL, // 3131..318E
6544 UNKNOWN, // 318F
6545 COMMON, // 3190..319F
6546 BOPOMOFO, // 31A0..31BA
6547 UNKNOWN, // 31BB..31BF
6548 COMMON, // 31C0..31E3
6549 UNKNOWN, // 31E4..31EF
6550 KATAKANA, // 31F0..31FF
6551 HANGUL, // 3200..321E
6552 UNKNOWN, // 321F
6553 COMMON, // 3220..325F
6554 HANGUL, // 3260..327E
6555 COMMON, // 327F..32CF
6556 KATAKANA, // 32D0..32FE
6557 UNKNOWN, // 32FF
6558 KATAKANA, // 3300..3357
6559 COMMON, // 3358..33FF
6560 HAN, // 3400..4DB5
6561 UNKNOWN, // 4DB6..4DBF
6562 COMMON, // 4DC0..4DFF
6563 HAN, // 4E00..9FD5
6564 UNKNOWN, // 9FD6..9FFF
6565 YI, // A000..A48C
6566 UNKNOWN, // A48D..A48F
6567 YI, // A490..A4C6
6568 UNKNOWN, // A4C7..A4CF
6569 LISU, // A4D0..A4FF
6570 VAI, // A500..A62B
6571 UNKNOWN, // A62C..A63F
6572 CYRILLIC, // A640..A69F
6573 BAMUM, // A6A0..A6F7
6574 UNKNOWN, // A6F8..A6FF
6575 COMMON, // A700..A721
6576 LATIN, // A722..A787
6577 COMMON, // A788..A78A
6578 LATIN, // A78B..A7AD
6579 UNKNOWN, // A7AE..A7AF
6580 LATIN, // A7B0..A7B7
6581 UNKNOWN, // A7B8..A7F6
6582 LATIN, // A7F7..A7FF
6583 SYLOTI_NAGRI, // A800..A82B
6584 UNKNOWN, // A82C..A82F
6585 COMMON, // A830..A839
6586 UNKNOWN, // A83A..A83F
6587 PHAGS_PA, // A840..A877
6588 UNKNOWN, // A878..A87F
6589 SAURASHTRA, // A880..A8C4
6590 UNKNOWN, // A8C5..A8CD
6591 SAURASHTRA, // A8CE..A8D9
6592 UNKNOWN, // A8DA..A8DF
6593 DEVANAGARI, // A8E0..A8FD
6594 UNKNOWN, // A8FE..A8FF
6595 KAYAH_LI, // A900..A92D
6596 COMMON, // A92E
6597 KAYAH_LI, // A92F
6598 REJANG, // A930..A953
6599 UNKNOWN, // A954..A95E
6600 REJANG, // A95F
6601 HANGUL, // A960..A97C
6602 UNKNOWN, // A97D..A97F
6603 JAVANESE, // A980..A9CD
6604 UNKNOWN, // A9CE
6605 COMMON, // A9CF
6606 JAVANESE, // A9D0..A9D9
6607 UNKNOWN, // A9DA..A9DD
6608 JAVANESE, // A9DE..A9DF
6609 MYANMAR, // A9E0..A9FE
6610 UNKNOWN, // A9FF
6721 UNKNOWN, // FFFE..FFFF
6722 LINEAR_B, // 10000..1000B
6723 UNKNOWN, // 1000C
6724 LINEAR_B, // 1000D..10026
6725 UNKNOWN, // 10027
6726 LINEAR_B, // 10028..1003A
6727 UNKNOWN, // 1003B
6728 LINEAR_B, // 1003C..1003D
6729 UNKNOWN, // 1003E
6730 LINEAR_B, // 1003F..1004D
6731 UNKNOWN, // 1004E..1004F
6732 LINEAR_B, // 10050..1005D
6733 UNKNOWN, // 1005E..1007F
6734 LINEAR_B, // 10080..100FA
6735 UNKNOWN, // 100FB..100FF
6736 COMMON, // 10100..10102
6737 UNKNOWN, // 10103..10106
6738 COMMON, // 10107..10133
6739 UNKNOWN, // 10134..10136
6740 COMMON, // 10137..1013F
6741 GREEK, // 10140..1018C
6742 UNKNOWN, // 1018D..1018F
6743 COMMON, // 10190..1019B
6744 UNKNOWN, // 1019C..1019F
6745 GREEK, // 101A0
6746 UNKNOWN, // 101A1..101CF
6747 COMMON, // 101D0..101FC
6748 INHERITED, // 101FD
6749 UNKNOWN, // 101FE..1027F
6750 LYCIAN, // 10280..1029C
6751 UNKNOWN, // 1029D..1029F
6752 CARIAN, // 102A0..102D0
6753 UNKNOWN, // 102D1..102DF
6754 INHERITED, // 102E0
6755 COMMON, // 102E1..102FB
6756 UNKNOWN, // 102FC..102FF
6757 OLD_ITALIC, // 10300..10323
6758 UNKNOWN, // 10324..1032F
6759 GOTHIC, // 10330..1034A
6760 UNKNOWN, // 1034B..1034F
6761 OLD_PERMIC, // 10350..1037A
6762 UNKNOWN, // 1037B..1037F
6763 UGARITIC, // 10380..1039D
6764 UNKNOWN, // 1039E
6765 UGARITIC, // 1039F
6766 OLD_PERSIAN, // 103A0..103C3
6767 UNKNOWN, // 103C4..103C7
6768 OLD_PERSIAN, // 103C8..103D5
6769 UNKNOWN, // 103D6..103FF
6770 DESERET, // 10400..1044F
6771 SHAVIAN, // 10450..1047F
6772 OSMANYA, // 10480..1049D
6773 UNKNOWN, // 1049E..1049F
6774 OSMANYA, // 104A0..104A9
6775 UNKNOWN, // 104AA..104FF
6776 ELBASAN, // 10500..10527
6777 UNKNOWN, // 10528..1052F
6778 CAUCASIAN_ALBANIAN, // 10530..10563
6779 UNKNOWN, // 10564..1056E
6780 CAUCASIAN_ALBANIAN, // 1056F
6781 UNKNOWN, // 10570..105FF
6782 LINEAR_A, // 10600..10736
6783 UNKNOWN, // 10737..1073F
6784 LINEAR_A, // 10740..10755
6785 UNKNOWN, // 10756..1075F
6786 LINEAR_A, // 10760..10767
6787 UNKNOWN, // 10768..107FF
6788 CYPRIOT, // 10800..10805
6789 UNKNOWN, // 10806..10807
6790 CYPRIOT, // 10808
6791 UNKNOWN, // 10809
6792 CYPRIOT, // 1080A..10835
6793 UNKNOWN, // 10836
6794 CYPRIOT, // 10837..10838
6795 UNKNOWN, // 10839..1083B
6878 KAITHI, // 11080..110C1
6879 UNKNOWN, // 110C2..110CF
6880 SORA_SOMPENG, // 110D0..110E8
6881 UNKNOWN, // 110E9..110EF
6882 SORA_SOMPENG, // 110F0..110F9
6883 UNKNOWN, // 110FA..110FF
6884 CHAKMA, // 11100..11134
6885 UNKNOWN, // 11135
6886 CHAKMA, // 11136..11143
6887 UNKNOWN, // 11144..1114F
6888 MAHAJANI, // 11150..11176
6889 UNKNOWN, // 11177..1117F
6890 SHARADA, // 11180..111CD
6891 UNKNOWN, // 111CE..111CF
6892 SHARADA, // 111D0..111DF
6893 UNKNOWN, // 111E0
6894 SINHALA, // 111E1..111F4
6895 UNKNOWN, // 111F5..111FF
6896 KHOJKI, // 11200..11211
6897 UNKNOWN, // 11212
6898 KHOJKI, // 11213..1123D
6899 UNKNOWN, // 1123E..1127F
6900 MULTANI, // 11280..11286
6901 UNKNOWN, // 11287
6902 MULTANI, // 11288
6903 UNKNOWN, // 11289
6904 MULTANI, // 1128A..1128D
6905 UNKNOWN, // 1128E
6906 MULTANI, // 1128F..1129D
6907 UNKNOWN, // 1129E
6908 MULTANI, // 1129F..112A9
6909 UNKNOWN, // 112AA..112AF
6910 KHUDAWADI, // 112B0..112EA
6911 UNKNOWN, // 112EB..112EF
6912 KHUDAWADI, // 112F0..112F9
6913 UNKNOWN, // 112FA..112FF
6914 GRANTHA, // 11300..11303
6915 UNKNOWN, // 11304
6916 GRANTHA, // 11305..1130C
6917 UNKNOWN, // 1130D..1130E
6918 GRANTHA, // 1130F..11310
6919 UNKNOWN, // 11311..11312
6923 UNKNOWN, // 11331
6924 GRANTHA, // 11332..11333
6925 UNKNOWN, // 11334
6926 GRANTHA, // 11335..11339
6927 UNKNOWN, // 1133A..1133B
6928 GRANTHA, // 1133C..11344
6929 UNKNOWN, // 11345..11346
6930 GRANTHA, // 11347..11348
6931 UNKNOWN, // 11349..1134A
6932 GRANTHA, // 1134B..1134D
6933 UNKNOWN, // 1134E..1134F
6934 GRANTHA, // 11350
6935 UNKNOWN, // 11351..11356
6936 GRANTHA, // 11357
6937 UNKNOWN, // 11358..1135C
6938 GRANTHA, // 1135D..11363
6939 UNKNOWN, // 11364..11365
6940 GRANTHA, // 11366..1136C
6941 UNKNOWN, // 1136D..1136F
6942 GRANTHA, // 11370..11374
6943 UNKNOWN, // 11375..1147F
6944 TIRHUTA, // 11480..114C7
6945 UNKNOWN, // 114C8..114CF
6946 TIRHUTA, // 114D0..114D9
6947 UNKNOWN, // 114DA..1157F
6948 SIDDHAM, // 11580..115B5
6949 UNKNOWN, // 115B6..115B7
6950 SIDDHAM, // 115B8..115DD
6951 UNKNOWN, // 115DE..115FF
6952 MODI, // 11600..11644
6953 UNKNOWN, // 11645..1164F
6954 MODI, // 11650..11659
6955 UNKNOWN, // 1165A..1167F
6956 TAKRI, // 11680..116B7
6957 UNKNOWN, // 116B8..116BF
6958 TAKRI, // 116C0..116C9
6959 UNKNOWN, // 116CA..116FF
6960 AHOM, // 11700..11719
6961 UNKNOWN, // 1171A..1171C
6962 AHOM, // 1171D..1172B
6963 UNKNOWN, // 1172C..1172F
6964 AHOM, // 11730..1173F
6965 UNKNOWN, // 11740..1189F
6966 WARANG_CITI, // 118A0..118F2
6967 UNKNOWN, // 118F3..118FE
6968 WARANG_CITI, // 118FF
6969 UNKNOWN, // 11900..11ABF
6970 PAU_CIN_HAU, // 11AC0..11AF8
6971 UNKNOWN, // 11AF9..11FFF
6972 CUNEIFORM, // 12000..12399
6973 UNKNOWN, // 1239A..123FF
6974 CUNEIFORM, // 12400..1246E
6975 UNKNOWN, // 1246F
6976 CUNEIFORM, // 12470..12474
6977 UNKNOWN, // 12475..1247F
6978 CUNEIFORM, // 12480..12543
6979 UNKNOWN, // 12544..12FFF
6980 EGYPTIAN_HIEROGLYPHS, // 13000..1342E
6981 UNKNOWN, // 1342F..143FF
6982 ANATOLIAN_HIEROGLYPHS, // 14400..14646
6983 UNKNOWN, // 14647..167FF
6984 BAMUM, // 16800..16A38
6985 UNKNOWN, // 16A39..16A3F
6986 MRO, // 16A40..16A5E
6987 UNKNOWN, // 16A5F
6988 MRO, // 16A60..16A69
6989 UNKNOWN, // 16A6A..16A6D
6990 MRO, // 16A6E..16A6F
6991 UNKNOWN, // 16A70..16ACF
6992 BASSA_VAH, // 16AD0..16AED
6993 UNKNOWN, // 16AEE..16AEF
6994 BASSA_VAH, // 16AF0..16AF5
6995 UNKNOWN, // 16AF6..16AFF
6996 PAHAWH_HMONG, // 16B00..16B45
6997 UNKNOWN, // 16B46..16B4F
6998 PAHAWH_HMONG, // 16B50..16B59
6999 UNKNOWN, // 16B5A
7000 PAHAWH_HMONG, // 16B5B..16B61
7001 UNKNOWN, // 16B62
7002 PAHAWH_HMONG, // 16B63..16B77
7003 UNKNOWN, // 16B78..16B7C
7004 PAHAWH_HMONG, // 16B7D..16B8F
7005 UNKNOWN, // 16B90..16EFF
7006 MIAO, // 16F00..16F44
7007 UNKNOWN, // 16F45..16F4F
7008 MIAO, // 16F50..16F7E
7009 UNKNOWN, // 16F7F..16F8E
7010 MIAO, // 16F8F..16F9F
7011 UNKNOWN, // 16FA0..1AFFF
7012 KATAKANA, // 1B000
7013 HIRAGANA, // 1B001
7014 UNKNOWN, // 1B002..1BBFF
7015 DUPLOYAN, // 1BC00..1BC6A
7016 UNKNOWN, // 1BC6B..1BC6F
7017 DUPLOYAN, // 1BC70..1BC7C
7018 UNKNOWN, // 1BC7D..1BC7F
7019 DUPLOYAN, // 1BC80..1BC88
7020 UNKNOWN, // 1BC89..1BC8F
7021 DUPLOYAN, // 1BC90..1BC99
7022 UNKNOWN, // 1BC9A..1BC9B
7023 DUPLOYAN, // 1BC9C..1BC9F
7024 COMMON, // 1BCA0..1BCA3
7025 UNKNOWN, // 1BCA4..1CFFF
7026 COMMON, // 1D000..1D0F5
7027 UNKNOWN, // 1D0F6..1D0FF
7028 COMMON, // 1D100..1D126
7029 UNKNOWN, // 1D127..1D128
7030 COMMON, // 1D129..1D166
7031 INHERITED, // 1D167..1D169
7032 COMMON, // 1D16A..1D17A
7033 INHERITED, // 1D17B..1D182
7034 COMMON, // 1D183..1D184
7072 COMMON, // 1D51E..1D539
7073 UNKNOWN, // 1D53A
7074 COMMON, // 1D53B..1D53E
7075 UNKNOWN, // 1D53F
7076 COMMON, // 1D540..1D544
7077 UNKNOWN, // 1D545
7078 COMMON, // 1D546
7079 UNKNOWN, // 1D547..1D549
7080 COMMON, // 1D54A..1D550
7081 UNKNOWN, // 1D551
7082 COMMON, // 1D552..1D6A5
7083 UNKNOWN, // 1D6A6..1D6A7
7084 COMMON, // 1D6A8..1D7CB
7085 UNKNOWN, // 1D7CC..1D7CD
7086 COMMON, // 1D7CE..1D7FF
7087 SIGNWRITING, // 1D800..1DA8B
7088 UNKNOWN, // 1DA8C..1DA9A
7089 SIGNWRITING, // 1DA9B..1DA9F
7090 UNKNOWN, // 1DAA0
7091 SIGNWRITING, // 1DAA1..1DAAF
7092 UNKNOWN, // 1DAB0..1E7FF
7093 MENDE_KIKAKUI, // 1E800..1E8C4
7094 UNKNOWN, // 1E8C5..1E8C6
7095 MENDE_KIKAKUI, // 1E8C7..1E8D6
7096 UNKNOWN, // 1E8D7..1EDFF
7097 ARABIC, // 1EE00..1EE03
7098 UNKNOWN, // 1EE04
7099 ARABIC, // 1EE05..1EE1F
7100 UNKNOWN, // 1EE20
7101 ARABIC, // 1EE21..1EE22
7102 UNKNOWN, // 1EE23
7103 ARABIC, // 1EE24
7104 UNKNOWN, // 1EE25..1EE26
7105 ARABIC, // 1EE27
7106 UNKNOWN, // 1EE28
7107 ARABIC, // 1EE29..1EE32
7108 UNKNOWN, // 1EE33
7109 ARABIC, // 1EE34..1EE37
7110 UNKNOWN, // 1EE38
7111 ARABIC, // 1EE39
7112 UNKNOWN, // 1EE3A
7113 ARABIC, // 1EE3B
7114 UNKNOWN, // 1EE3C..1EE41
7115 ARABIC, // 1EE42
7116 UNKNOWN, // 1EE43..1EE46
7163 ARABIC, // 1EEF0..1EEF1
7164 UNKNOWN, // 1EEF2..1EFFF
7165 COMMON, // 1F000..1F02B
7166 UNKNOWN, // 1F02C..1F02F
7167 COMMON, // 1F030..1F093
7168 UNKNOWN, // 1F094..1F09F
7169 COMMON, // 1F0A0..1F0AE
7170 UNKNOWN, // 1F0AF..1F0B0
7171 COMMON, // 1F0B1..1F0BF
7172 UNKNOWN, // 1F0C0
7173 COMMON, // 1F0C1..1F0CF
7174 UNKNOWN, // 1F0D0
7175 COMMON, // 1F0D1..1F0F5
7176 UNKNOWN, // 1F0F6..1F0FF
7177 COMMON, // 1F100..1F10C
7178 UNKNOWN, // 1F10D..1F10F
7179 COMMON, // 1F110..1F12E
7180 UNKNOWN, // 1F12F
7181 COMMON, // 1F130..1F16B
7182 UNKNOWN, // 1F16C..1F16F
7183 COMMON, // 1F170..1F19A
7184 UNKNOWN, // 1F19B..1F1E5
7185 COMMON, // 1F1E6..1F1FF
7186 HIRAGANA, // 1F200
7187 COMMON, // 1F201..1F202
7188 UNKNOWN, // 1F203..1F20F
7189 COMMON, // 1F210..1F23A
7190 UNKNOWN, // 1F23B..1F23F
7191 COMMON, // 1F240..1F248
7192 UNKNOWN, // 1F249..1F24F
7193 COMMON, // 1F250..1F251
7194 UNKNOWN, // 1F252..1F2FF
7195 COMMON, // 1F300..1F579
7196 UNKNOWN, // 1F57A
7197 COMMON, // 1F57B..1F5A3
7198 UNKNOWN, // 1F5A4
7199 COMMON, // 1F5A5..1F6D0
7200 UNKNOWN, // 1F6D1..1F6DF
7201 COMMON, // 1F6E0..1F6EC
7202 UNKNOWN, // 1F6ED..1F6EF
7203 COMMON, // 1F6F0..1F6F3
7204 UNKNOWN, // 1F6F4..1F6FF
7205 COMMON, // 1F700..1F773
7206 UNKNOWN, // 1F774..1F77F
7207 COMMON, // 1F780..1F7D4
7208 UNKNOWN, // 1F7D5..1F7FF
7209 COMMON, // 1F800..1F80B
7210 UNKNOWN, // 1F80C..1F80F
7211 COMMON, // 1F810..1F847
7212 UNKNOWN, // 1F848..1F84F
7213 COMMON, // 1F850..1F859
7214 UNKNOWN, // 1F85A..1F85F
7215 COMMON, // 1F860..1F887
7216 UNKNOWN, // 1F888..1F88F
7217 COMMON, // 1F890..1F8AD
7218 UNKNOWN, // 1F8AE..1F90F
7219 COMMON, // 1F910..1F918
7220 UNKNOWN, // 1F919..1F97F
7221 COMMON, // 1F980..1F984
7222 UNKNOWN, // 1F985..1F9BF
7223 COMMON, // 1F9C0
7224 UNKNOWN, // 1F9C1..1FFFF
7225 HAN, // 20000..2A6D6
7226 UNKNOWN, // 2A6D7..2A6FF
7227 HAN, // 2A700..2B734
7228 UNKNOWN, // 2B735..2B73F
7229 HAN, // 2B740..2B81D
7230 UNKNOWN, // 2B81E..2B81F
7231 HAN, // 2B820..2CEA1
7232 UNKNOWN, // 2CEA2..2F7FF
7233 HAN, // 2F800..2FA1D
7234 UNKNOWN, // 2FA1E..E0000
7235 COMMON, // E0001
7236 UNKNOWN, // E0002..E001F
7237 COMMON, // E0020..E007F
7238 UNKNOWN, // E0080..E00FF
7239 INHERITED, // E0100..E01EF
7240 UNKNOWN // E01F0..10FFFF
7241 };
7242
7243 private static HashMap<String, Character.UnicodeScript> aliases;
7244 static {
7245 aliases = new HashMap<>(134);
7246 aliases.put("AGHB", CAUCASIAN_ALBANIAN);
7247 aliases.put("AHOM", AHOM);
7248 aliases.put("ARAB", ARABIC);
7249 aliases.put("ARMI", IMPERIAL_ARAMAIC);
7250 aliases.put("ARMN", ARMENIAN);
7251 aliases.put("AVST", AVESTAN);
7252 aliases.put("BALI", BALINESE);
7253 aliases.put("BAMU", BAMUM);
7254 aliases.put("BASS", BASSA_VAH);
7255 aliases.put("BATK", BATAK);
7256 aliases.put("BENG", BENGALI);
7257 aliases.put("BOPO", BOPOMOFO);
7258 aliases.put("BRAH", BRAHMI);
7259 aliases.put("BRAI", BRAILLE);
7260 aliases.put("BUGI", BUGINESE);
7261 aliases.put("BUHD", BUHID);
7262 aliases.put("CAKM", CHAKMA);
7263 aliases.put("CANS", CANADIAN_ABORIGINAL);
7264 aliases.put("CARI", CARIAN);
7265 aliases.put("CHAM", CHAM);
7266 aliases.put("CHER", CHEROKEE);
7267 aliases.put("COPT", COPTIC);
7268 aliases.put("CPRT", CYPRIOT);
7269 aliases.put("CYRL", CYRILLIC);
7270 aliases.put("DEVA", DEVANAGARI);
7271 aliases.put("DSRT", DESERET);
7272 aliases.put("DUPL", DUPLOYAN);
7273 aliases.put("EGYP", EGYPTIAN_HIEROGLYPHS);
7274 aliases.put("ELBA", ELBASAN);
7275 aliases.put("ETHI", ETHIOPIC);
7276 aliases.put("GEOR", GEORGIAN);
7277 aliases.put("GLAG", GLAGOLITIC);
7278 aliases.put("GOTH", GOTHIC);
7279 aliases.put("GRAN", GRANTHA);
7280 aliases.put("GREK", GREEK);
7281 aliases.put("GUJR", GUJARATI);
7282 aliases.put("GURU", GURMUKHI);
7283 aliases.put("HANG", HANGUL);
7284 aliases.put("HANI", HAN);
7285 aliases.put("HANO", HANUNOO);
7286 aliases.put("HATR", HATRAN);
7287 aliases.put("HEBR", HEBREW);
7288 aliases.put("HIRA", HIRAGANA);
7289 aliases.put("HLUW", ANATOLIAN_HIEROGLYPHS);
7290 aliases.put("HMNG", PAHAWH_HMONG);
7291 // it appears we don't have the KATAKANA_OR_HIRAGANA
7292 //aliases.put("HRKT", KATAKANA_OR_HIRAGANA);
7293 aliases.put("HUNG", OLD_HUNGARIAN);
7294 aliases.put("ITAL", OLD_ITALIC);
7295 aliases.put("JAVA", JAVANESE);
7296 aliases.put("KALI", KAYAH_LI);
7297 aliases.put("KANA", KATAKANA);
7298 aliases.put("KHAR", KHAROSHTHI);
7299 aliases.put("KHMR", KHMER);
7300 aliases.put("KHOJ", KHOJKI);
7301 aliases.put("KNDA", KANNADA);
7302 aliases.put("KTHI", KAITHI);
7303 aliases.put("LANA", TAI_THAM);
7304 aliases.put("LAOO", LAO);
7305 aliases.put("LATN", LATIN);
7306 aliases.put("LEPC", LEPCHA);
7307 aliases.put("LIMB", LIMBU);
7308 aliases.put("LINA", LINEAR_A);
7309 aliases.put("LINB", LINEAR_B);
7310 aliases.put("LISU", LISU);
7311 aliases.put("LYCI", LYCIAN);
7312 aliases.put("LYDI", LYDIAN);
7313 aliases.put("MAHJ", MAHAJANI);
7314 aliases.put("MAND", MANDAIC);
7315 aliases.put("MANI", MANICHAEAN);
7316 aliases.put("MEND", MENDE_KIKAKUI);
7317 aliases.put("MERC", MEROITIC_CURSIVE);
7318 aliases.put("MERO", MEROITIC_HIEROGLYPHS);
7319 aliases.put("MLYM", MALAYALAM);
7320 aliases.put("MODI", MODI);
7321 aliases.put("MONG", MONGOLIAN);
7322 aliases.put("MROO", MRO);
7323 aliases.put("MTEI", MEETEI_MAYEK);
7324 aliases.put("MULT", MULTANI);
7325 aliases.put("MYMR", MYANMAR);
7326 aliases.put("NARB", OLD_NORTH_ARABIAN);
7327 aliases.put("NBAT", NABATAEAN);
7328 aliases.put("NKOO", NKO);
7329 aliases.put("OGAM", OGHAM);
7330 aliases.put("OLCK", OL_CHIKI);
7331 aliases.put("ORKH", OLD_TURKIC);
7332 aliases.put("ORYA", ORIYA);
7333 aliases.put("OSMA", OSMANYA);
7334 aliases.put("PALM", PALMYRENE);
7335 aliases.put("PAUC", PAU_CIN_HAU);
7336 aliases.put("PERM", OLD_PERMIC);
7337 aliases.put("PHAG", PHAGS_PA);
7338 aliases.put("PHLI", INSCRIPTIONAL_PAHLAVI);
7339 aliases.put("PHLP", PSALTER_PAHLAVI);
7340 aliases.put("PHNX", PHOENICIAN);
7341 aliases.put("PLRD", MIAO);
7342 aliases.put("PRTI", INSCRIPTIONAL_PARTHIAN);
7343 aliases.put("RJNG", REJANG);
7344 aliases.put("RUNR", RUNIC);
7345 aliases.put("SAMR", SAMARITAN);
7346 aliases.put("SARB", OLD_SOUTH_ARABIAN);
7347 aliases.put("SAUR", SAURASHTRA);
7348 aliases.put("SGNW", SIGNWRITING);
7349 aliases.put("SHAW", SHAVIAN);
7350 aliases.put("SHRD", SHARADA);
7351 aliases.put("SIDD", SIDDHAM);
7352 aliases.put("SIND", KHUDAWADI);
7353 aliases.put("SINH", SINHALA);
7354 aliases.put("SORA", SORA_SOMPENG);
7355 aliases.put("SUND", SUNDANESE);
7356 aliases.put("SYLO", SYLOTI_NAGRI);
7357 aliases.put("SYRC", SYRIAC);
7358 aliases.put("TAGB", TAGBANWA);
7359 aliases.put("TAKR", TAKRI);
7360 aliases.put("TALE", TAI_LE);
7361 aliases.put("TALU", NEW_TAI_LUE);
7362 aliases.put("TAML", TAMIL);
7363 aliases.put("TAVT", TAI_VIET);
7364 aliases.put("TELU", TELUGU);
7365 aliases.put("TFNG", TIFINAGH);
7366 aliases.put("TGLG", TAGALOG);
7367 aliases.put("THAA", THAANA);
7368 aliases.put("THAI", THAI);
7369 aliases.put("TIBT", TIBETAN);
7370 aliases.put("TIRH", TIRHUTA);
7371 aliases.put("UGAR", UGARITIC);
7372 aliases.put("VAII", VAI);
7373 aliases.put("WARA", WARANG_CITI);
7374 aliases.put("XPEO", OLD_PERSIAN);
7375 aliases.put("XSUX", CUNEIFORM);
7376 aliases.put("YIII", YI);
7377 aliases.put("ZINH", INHERITED);
7378 aliases.put("ZYYY", COMMON);
7379 aliases.put("ZZZZ", UNKNOWN);
7380 }
7381
7382 /**
7383 * Returns the enum constant representing the Unicode script of which
7384 * the given character (Unicode code point) is assigned to.
7385 *
7386 * @param codePoint the character (Unicode code point) in question.
7387 * @return The {@code UnicodeScript} constant representing the
7388 * Unicode script of which this character is assigned to.
7389 *
7390 * @exception IllegalArgumentException if the specified
7391 * {@code codePoint} is an invalid Unicode code point.
7392 * @see Character#isValidCodePoint(int)
7393 *
7394 */
7395 public static UnicodeScript of(int codePoint) {
7396 if (!isValidCodePoint(codePoint))
|
25
26 package java.lang;
27
28 import java.util.Arrays;
29 import java.util.Map;
30 import java.util.HashMap;
31 import java.util.Locale;
32
33 import jdk.internal.HotSpotIntrinsicCandidate;
34
35 /**
36 * The {@code Character} class wraps a value of the primitive
37 * type {@code char} in an object. An object of type
38 * {@code Character} contains a single field whose type is
39 * {@code char}.
40 * <p>
41 * In addition, this class provides several methods for determining
42 * a character's category (lowercase letter, digit, etc.) and for converting
43 * characters from uppercase to lowercase and vice versa.
44 * <p>
45 * Character information is based on the Unicode Standard, version 10.0.0.
46 * <p>
47 * The methods and data of class {@code Character} are defined by
48 * the information in the <i>UnicodeData</i> file that is part of the
49 * Unicode Character Database maintained by the Unicode
50 * Consortium. This file specifies various properties including name
51 * and general category for every defined Unicode code point or
52 * character range.
53 * <p>
54 * The file and its description are available from the Unicode Consortium at:
55 * <ul>
56 * <li><a href="http://www.unicode.org">http://www.unicode.org</a>
57 * </ul>
58 *
59 * <h3><a id="unicode">Unicode Character Representations</a></h3>
60 *
61 * <p>The {@code char} data type (and therefore the value that a
62 * {@code Character} object encapsulates) are based on the
63 * original Unicode specification, which defined characters as
64 * fixed-width 16-bit entities. The Unicode Standard has since been
65 * changed to allow for characters whose representation requires more
659 }
660 }
661
662 // See http://www.unicode.org/Public/UNIDATA/Blocks.txt
663 // for the latest specification of Unicode Blocks.
664
665 /**
666 * A family of character subsets representing the character blocks in the
667 * Unicode specification. Character blocks generally define characters
668 * used for a specific script or purpose. A character is contained by
669 * at most one Unicode block.
670 *
671 * @since 1.2
672 */
673 public static final class UnicodeBlock extends Subset {
674 /**
675 * 510 - the expected number of entities
676 * 0.75 - the default load factor of HashMap
677 */
678 private static Map<String, UnicodeBlock> map =
679 new HashMap<>((int)(638 / 0.75f + 1.0f));
680
681 /**
682 * Creates a UnicodeBlock with the given identifier name.
683 * This name must be the same as the block identifier.
684 */
685 private UnicodeBlock(String idName) {
686 super(idName);
687 map.put(idName, this);
688 }
689
690 /**
691 * Creates a UnicodeBlock with the given identifier name and
692 * alias name.
693 */
694 private UnicodeBlock(String idName, String alias) {
695 this(idName);
696 map.put(alias, this);
697 }
698
699 /**
2919 /**
2920 * Constant for the "Supplemental Symbols and Pictographs" Unicode
2921 * character block.
2922 * @since 9
2923 */
2924 public static final UnicodeBlock SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS =
2925 new UnicodeBlock("SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS",
2926 "SUPPLEMENTAL SYMBOLS AND PICTOGRAPHS",
2927 "SUPPLEMENTALSYMBOLSANDPICTOGRAPHS");
2928
2929 /**
2930 * Constant for the "CJK Unified Ideographs Extension E" Unicode
2931 * character block.
2932 * @since 9
2933 */
2934 public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E =
2935 new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E",
2936 "CJK UNIFIED IDEOGRAPHS EXTENSION E",
2937 "CJKUNIFIEDIDEOGRAPHSEXTENSIONE");
2938
2939 /**
2940 * Constant for the "Syriac Supplement" Unicode
2941 * character block.
2942 * @since 11
2943 */
2944 public static final UnicodeBlock SYRIAC_SUPPLEMENT =
2945 new UnicodeBlock("SYRIAC_SUPPLEMENT",
2946 "SYRIAC SUPPLEMENT",
2947 "SYRIACSUPPLEMENT");
2948
2949 /**
2950 * Constant for the "Cyrillic Extended-C" Unicode
2951 * character block.
2952 * @since 11
2953 */
2954 public static final UnicodeBlock CYRILLIC_EXTENDED_C =
2955 new UnicodeBlock("CYRILLIC_EXTENDED_C",
2956 "CYRILLIC EXTENDED-C",
2957 "CYRILLICEXTENDED-C");
2958
2959 /**
2960 * Constant for the "Osage" Unicode
2961 * character block.
2962 * @since 11
2963 */
2964 public static final UnicodeBlock OSAGE =
2965 new UnicodeBlock("OSAGE");
2966
2967 /**
2968 * Constant for the "Newa" Unicode
2969 * character block.
2970 * @since 11
2971 */
2972 public static final UnicodeBlock NEWA =
2973 new UnicodeBlock("NEWA");
2974
2975 /**
2976 * Constant for the "Mongolian Supplement" Unicode
2977 * character block.
2978 * @since 11
2979 */
2980 public static final UnicodeBlock MONGOLIAN_SUPPLEMENT =
2981 new UnicodeBlock("MONGOLIAN_SUPPLEMENT",
2982 "MONGOLIAN SUPPLEMENT",
2983 "MONGOLIANSUPPLEMENT");
2984
2985 /**
2986 * Constant for the "Marchen" Unicode
2987 * character block.
2988 * @since 11
2989 */
2990 public static final UnicodeBlock MARCHEN =
2991 new UnicodeBlock("MARCHEN");
2992
2993 /**
2994 * Constant for the "Ideographic Symbols and Punctuation" Unicode
2995 * character block.
2996 * @since 11
2997 */
2998 public static final UnicodeBlock IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION =
2999 new UnicodeBlock("IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION",
3000 "IDEOGRAPHIC SYMBOLS AND PUNCTUATION",
3001 "IDEOGRAPHICSYMBOLSANDPUNCTUATION");
3002
3003 /**
3004 * Constant for the "Tangut" Unicode
3005 * character block.
3006 * @since 11
3007 */
3008 public static final UnicodeBlock TANGUT =
3009 new UnicodeBlock("TANGUT");
3010
3011 /**
3012 * Constant for the "Tangut Components" Unicode
3013 * character block.
3014 * @since 11
3015 */
3016 public static final UnicodeBlock TANGUT_COMPONENTS =
3017 new UnicodeBlock("TANGUT_COMPONENTS",
3018 "TANGUT COMPONENTS",
3019 "TANGUTCOMPONENTS");
3020
3021 /**
3022 * Constant for the "Kana Extended-A" Unicode
3023 * character block.
3024 * @since 11
3025 */
3026 public static final UnicodeBlock KANA_EXTENDED_A =
3027 new UnicodeBlock("KANA_EXTENDED_A",
3028 "KANA EXTENDED-A",
3029 "KANAEXTENDED-A");
3030 /**
3031 * Constant for the "Glagolitic Supplement" Unicode
3032 * character block.
3033 * @since 11
3034 */
3035 public static final UnicodeBlock GLAGOLITIC_SUPPLEMENT =
3036 new UnicodeBlock("GLAGOLITIC_SUPPLEMENT",
3037 "GLAGOLITIC SUPPLEMENT",
3038 "GLAGOLITICSUPPLEMENT");
3039 /**
3040 * Constant for the "Adlam" Unicode
3041 * character block.
3042 * @since 11
3043 */
3044 public static final UnicodeBlock ADLAM =
3045 new UnicodeBlock("ADLAM");
3046
3047 /**
3048 * Constant for the "Masaram Gondi" Unicode
3049 * character block.
3050 * @since 11
3051 */
3052 public static final UnicodeBlock MASARAM_GONDI =
3053 new UnicodeBlock("MASARAM_GONDI",
3054 "MASARAM GONDI",
3055 "MASARAMGONDI");
3056
3057 /**
3058 * Constant for the "Zanabazar Square" Unicode
3059 * character block.
3060 * @since 11
3061 */
3062 public static final UnicodeBlock ZANABAZAR_SQUARE =
3063 new UnicodeBlock("ZANABAZAR_SQUARE",
3064 "ZANABAZAR SQUARE",
3065 "ZANABAZARSQUARE");
3066
3067 /**
3068 * Constant for the "Nushu" Unicode
3069 * character block.
3070 * @since 11
3071 */
3072 public static final UnicodeBlock NUSHU =
3073 new UnicodeBlock("NUSHU");
3074
3075 /**
3076 * Constant for the "Soyombo" Unicode
3077 * character block.
3078 * @since 11
3079 */
3080 public static final UnicodeBlock SOYOMBO =
3081 new UnicodeBlock("SOYOMBO");
3082
3083 /**
3084 * Constant for the "Bhaiksuki" Unicode
3085 * character block.
3086 * @since 11
3087 */
3088 public static final UnicodeBlock BHAIKSUKI =
3089 new UnicodeBlock("BHAIKSUKI");
3090
3091 /**
3092 * Constant for the "CJK Unified Ideographs Extension F" Unicode
3093 * character block.
3094 * @since 11
3095 */
3096 public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F =
3097 new UnicodeBlock("CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F",
3098 "CJK UNIFIED IDEOGRAPHS EXTENSION F",
3099 "CJKUNIFIEDIDEOGRAPHSEXTENSIONF");
3100
3101 private static final int blockStarts[] = {
3102 0x0000, // 0000..007F; Basic Latin
3103 0x0080, // 0080..00FF; Latin-1 Supplement
3104 0x0100, // 0100..017F; Latin Extended-A
3105 0x0180, // 0180..024F; Latin Extended-B
3106 0x0250, // 0250..02AF; IPA Extensions
3107 0x02B0, // 02B0..02FF; Spacing Modifier Letters
3108 0x0300, // 0300..036F; Combining Diacritical Marks
3109 0x0370, // 0370..03FF; Greek and Coptic
3110 0x0400, // 0400..04FF; Cyrillic
3111 0x0500, // 0500..052F; Cyrillic Supplement
3112 0x0530, // 0530..058F; Armenian
3113 0x0590, // 0590..05FF; Hebrew
3114 0x0600, // 0600..06FF; Arabic
3115 0x0700, // 0700..074F; Syriac
3116 0x0750, // 0750..077F; Arabic Supplement
3117 0x0780, // 0780..07BF; Thaana
3118 0x07C0, // 07C0..07FF; NKo
3119 0x0800, // 0800..083F; Samaritan
3120 0x0840, // 0840..085F; Mandaic
3121 0x0860, // 0860..086F; Syriac Supplement
3122 0x0870, // unassigned
3123 0x08A0, // 08A0..08FF; Arabic Extended-A
3124 0x0900, // 0900..097F; Devanagari
3125 0x0980, // 0980..09FF; Bengali
3126 0x0A00, // 0A00..0A7F; Gurmukhi
3127 0x0A80, // 0A80..0AFF; Gujarati
3128 0x0B00, // 0B00..0B7F; Oriya
3129 0x0B80, // 0B80..0BFF; Tamil
3130 0x0C00, // 0C00..0C7F; Telugu
3131 0x0C80, // 0C80..0CFF; Kannada
3132 0x0D00, // 0D00..0D7F; Malayalam
3133 0x0D80, // 0D80..0DFF; Sinhala
3134 0x0E00, // 0E00..0E7F; Thai
3135 0x0E80, // 0E80..0EFF; Lao
3136 0x0F00, // 0F00..0FFF; Tibetan
3137 0x1000, // 1000..109F; Myanmar
3138 0x10A0, // 10A0..10FF; Georgian
3139 0x1100, // 1100..11FF; Hangul Jamo
3140 0x1200, // 1200..137F; Ethiopic
3141 0x1380, // 1380..139F; Ethiopic Supplement
3142 0x13A0, // 13A0..13FF; Cherokee
3145 0x16A0, // 16A0..16FF; Runic
3146 0x1700, // 1700..171F; Tagalog
3147 0x1720, // 1720..173F; Hanunoo
3148 0x1740, // 1740..175F; Buhid
3149 0x1760, // 1760..177F; Tagbanwa
3150 0x1780, // 1780..17FF; Khmer
3151 0x1800, // 1800..18AF; Mongolian
3152 0x18B0, // 18B0..18FF; Unified Canadian Aboriginal Syllabics Extended
3153 0x1900, // 1900..194F; Limbu
3154 0x1950, // 1950..197F; Tai Le
3155 0x1980, // 1980..19DF; New Tai Lue
3156 0x19E0, // 19E0..19FF; Khmer Symbols
3157 0x1A00, // 1A00..1A1F; Buginese
3158 0x1A20, // 1A20..1AAF; Tai Tham
3159 0x1AB0, // 1AB0..1AFF; Combining Diacritical Marks Extended
3160 0x1B00, // 1B00..1B7F; Balinese
3161 0x1B80, // 1B80..1BBF; Sundanese
3162 0x1BC0, // 1BC0..1BFF; Batak
3163 0x1C00, // 1C00..1C4F; Lepcha
3164 0x1C50, // 1C50..1C7F; Ol Chiki
3165 0x1C80, // 1C80..1C8F; Cyrillic Extended-C
3166 0x1C90, // unassigned
3167 0x1CC0, // 1CC0..1CCF; Sundanese Supplement
3168 0x1CD0, // 1CD0..1CFF; Vedic Extensions
3169 0x1D00, // 1D00..1D7F; Phonetic Extensions
3170 0x1D80, // 1D80..1DBF; Phonetic Extensions Supplement
3171 0x1DC0, // 1DC0..1DFF; Combining Diacritical Marks Supplement
3172 0x1E00, // 1E00..1EFF; Latin Extended Additional
3173 0x1F00, // 1F00..1FFF; Greek Extended
3174 0x2000, // 2000..206F; General Punctuation
3175 0x2070, // 2070..209F; Superscripts and Subscripts
3176 0x20A0, // 20A0..20CF; Currency Symbols
3177 0x20D0, // 20D0..20FF; Combining Diacritical Marks for Symbols
3178 0x2100, // 2100..214F; Letterlike Symbols
3179 0x2150, // 2150..218F; Number Forms
3180 0x2190, // 2190..21FF; Arrows
3181 0x2200, // 2200..22FF; Mathematical Operators
3182 0x2300, // 2300..23FF; Miscellaneous Technical
3183 0x2400, // 2400..243F; Control Pictures
3184 0x2440, // 2440..245F; Optical Character Recognition
3185 0x2460, // 2460..24FF; Enclosed Alphanumerics
3186 0x2500, // 2500..257F; Box Drawing
3266 0xFFF0, // FFF0..FFFF; Specials
3267 0x10000, // 10000..1007F; Linear B Syllabary
3268 0x10080, // 10080..100FF; Linear B Ideograms
3269 0x10100, // 10100..1013F; Aegean Numbers
3270 0x10140, // 10140..1018F; Ancient Greek Numbers
3271 0x10190, // 10190..101CF; Ancient Symbols
3272 0x101D0, // 101D0..101FF; Phaistos Disc
3273 0x10200, // unassigned
3274 0x10280, // 10280..1029F; Lycian
3275 0x102A0, // 102A0..102DF; Carian
3276 0x102E0, // 102E0..102FF; Coptic Epact Numbers
3277 0x10300, // 10300..1032F; Old Italic
3278 0x10330, // 10330..1034F; Gothic
3279 0x10350, // 10350..1037F; Old Permic
3280 0x10380, // 10380..1039F; Ugaritic
3281 0x103A0, // 103A0..103DF; Old Persian
3282 0x103E0, // unassigned
3283 0x10400, // 10400..1044F; Deseret
3284 0x10450, // 10450..1047F; Shavian
3285 0x10480, // 10480..104AF; Osmanya
3286 0x104B0, // 104B0..104FF; Osage
3287 0x10500, // 10500..1052F; Elbasan
3288 0x10530, // 10530..1056F; Caucasian Albanian
3289 0x10570, // unassigned
3290 0x10600, // 10600..1077F; Linear A
3291 0x10780, // unassigned
3292 0x10800, // 10800..1083F; Cypriot Syllabary
3293 0x10840, // 10840..1085F; Imperial Aramaic
3294 0x10860, // 10860..1087F; Palmyrene
3295 0x10880, // 10880..108AF; Nabataean
3296 0x108B0, // unassigned
3297 0x108E0, // 108E0..108FF; Hatran
3298 0x10900, // 10900..1091F; Phoenician
3299 0x10920, // 10920..1093F; Lydian
3300 0x10940, // unassigned
3301 0x10980, // 10980..1099F; Meroitic Hieroglyphs
3302 0x109A0, // 109A0..109FF; Meroitic Cursive
3303 0x10A00, // 10A00..10A5F; Kharoshthi
3304 0x10A60, // 10A60..10A7F; Old South Arabian
3305 0x10A80, // 10A80..10A9F; Old North Arabian
3306 0x10AA0, // unassigned
3312 0x10BB0, // unassigned
3313 0x10C00, // 10C00..10C4F; Old Turkic
3314 0x10C50, // unassigned
3315 0x10C80, // 10C80..10CFF; Old Hungarian
3316 0x10D00, // unassigned
3317 0x10E60, // 10E60..10E7F; Rumi Numeral Symbols
3318 0x10E80, // unassigned
3319 0x11000, // 11000..1107F; Brahmi
3320 0x11080, // 11080..110CF; Kaithi
3321 0x110D0, // 110D0..110FF; Sora Sompeng
3322 0x11100, // 11100..1114F; Chakma
3323 0x11150, // 11150..1117F; Mahajani
3324 0x11180, // 11180..111DF; Sharada
3325 0x111E0, // 111E0..111FF; Sinhala Archaic Numbers
3326 0x11200, // 11200..1124F; Khojki
3327 0x11250, // unassigned
3328 0x11280, // 11280..112AF; Multani
3329 0x112B0, // 112B0..112FF; Khudawadi
3330 0x11300, // 11300..1137F; Grantha
3331 0x11380, // unassigned
3332 0x11400, // 11400..1147F; Newa
3333 0x11480, // 11480..114DF; Tirhuta
3334 0x114E0, // unassigned
3335 0x11580, // 11580..115FF; Siddham
3336 0x11600, // 11600..1165F; Modi
3337 0x11660, // 11660..1167F; Mongolian Supplement
3338 0x11680, // 11680..116CF; Takri
3339 0x116D0, // unassigned
3340 0x11700, // 11700..1173F; Ahom
3341 0x11740, // unassigned
3342 0x118A0, // 118A0..118FF; Warang Citi
3343 0x11900, // unassigned
3344 0x11A00, // 11A00..11A4F; Zanabazar Square
3345 0x11A50, // 11A50..11AAF; Soyombo
3346 0x11AB0, // unassigned
3347 0x11AC0, // 11AC0..11AFF; Pau Cin Hau
3348 0x11B00, // unassigned
3349 0x11C00, // 11C00..11C6F; Bhaiksuki
3350 0x11C70, // 11C70..11CBF; Marchen
3351 0x11CC0, // unassigned
3352 0x11D00, // 11D00..11D5F; Masaram Gondi
3353 0x11D60, // unassigned
3354 0x12000, // 12000..123FF; Cuneiform
3355 0x12400, // 12400..1247F; Cuneiform Numbers and Punctuation
3356 0x12480, // 12480..1254F; Early Dynastic Cuneiform
3357 0x12550, // unassigned
3358 0x13000, // 13000..1342F; Egyptian Hieroglyphs
3359 0x13430, // unassigned
3360 0x14400, // 14400..1467F; Anatolian Hieroglyphs
3361 0x14680, // unassigned
3362 0x16800, // 16800..16A3F; Bamum Supplement
3363 0x16A40, // 16A40..16A6F; Mro
3364 0x16A70, // unassigned
3365 0x16AD0, // 16AD0..16AFF; Bassa Vah
3366 0x16B00, // 16B00..16B8F; Pahawh Hmong
3367 0x16B90, // unassigned
3368 0x16F00, // 16F00..16F9F; Miao
3369 0x16FA0, // unassigned
3370 0x16FE0, // 16FE0..16FFF; Ideographic Symbols and Punctuation
3371 0x17000, // 17000..187FF; Tangut
3372 0x18800, // 18800..18AFF; Tangut Components
3373 0x18B00, // unassigned
3374 0x1B000, // 1B000..1B0FF; Kana Supplement
3375 0x1B100, // 1B100..1B12F; Kana Extended-A
3376 0x1B130, // unassigned
3377 0x1B170, // 1B170..1B2FF; Nushu
3378 0x1B300, // unassigned
3379 0x1BC00, // 1BC00..1BC9F; Duployan
3380 0x1BCA0, // 1BCA0..1BCAF; Shorthand Format Controls
3381 0x1BCB0, // unassigned
3382 0x1D000, // 1D000..1D0FF; Byzantine Musical Symbols
3383 0x1D100, // 1D100..1D1FF; Musical Symbols
3384 0x1D200, // 1D200..1D24F; Ancient Greek Musical Notation
3385 0x1D250, // unassigned
3386 0x1D300, // 1D300..1D35F; Tai Xuan Jing Symbols
3387 0x1D360, // 1D360..1D37F; Counting Rod Numerals
3388 0x1D380, // unassigned
3389 0x1D400, // 1D400..1D7FF; Mathematical Alphanumeric Symbols
3390 0x1D800, // 1D800..1DAAF; Sutton SignWriting
3391 0x1DAB0, // unassigned
3392 0x1E000, // 1E000..1E02F; Glagolitic Supplement
3393 0x1E030, // unassigned
3394 0x1E800, // 1E800..1E8DF; Mende Kikakui
3395 0x1E8E0, // unassigned
3396 0x1E900, // 1E900..1E95F; Adlam
3397 0x1E960, // unassigned
3398 0x1EE00, // 1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
3399 0x1EF00, // unassigned
3400 0x1F000, // 1F000..1F02F; Mahjong Tiles
3401 0x1F030, // 1F030..1F09F; Domino Tiles
3402 0x1F0A0, // 1F0A0..1F0FF; Playing Cards
3403 0x1F100, // 1F100..1F1FF; Enclosed Alphanumeric Supplement
3404 0x1F200, // 1F200..1F2FF; Enclosed Ideographic Supplement
3405 0x1F300, // 1F300..1F5FF; Miscellaneous Symbols and Pictographs
3406 0x1F600, // 1F600..1F64F; Emoticons
3407 0x1F650, // 1F650..1F67F; Ornamental Dingbats
3408 0x1F680, // 1F680..1F6FF; Transport and Map Symbols
3409 0x1F700, // 1F700..1F77F; Alchemical Symbols
3410 0x1F780, // 1F780..1F7FF; Geometric Shapes Extended
3411 0x1F800, // 1F800..1F8FF; Supplemental Arrows-C
3412 0x1F900, // 1F900..1F9FF; Supplemental Symbols and Pictographs
3413 0x1FA00, // unassigned
3414 0x20000, // 20000..2A6DF; CJK Unified Ideographs Extension B
3415 0x2A6E0, // unassigned
3416 0x2A700, // 2A700..2B73F; CJK Unified Ideographs Extension C
3417 0x2B740, // 2B740..2B81F; CJK Unified Ideographs Extension D
3418 0x2B820, // 2B820..2CEAF; CJK Unified Ideographs Extension E
3419 0x2CEB0, // 2CEB0..2EBEF; CJK Unified Ideographs Extension F
3420 0x2EBF0, // unassigned
3421 0x2F800, // 2F800..2FA1F; CJK Compatibility Ideographs Supplement
3422 0x2FA20, // unassigned
3423 0xE0000, // E0000..E007F; Tags
3424 0xE0080, // unassigned
3425 0xE0100, // E0100..E01EF; Variation Selectors Supplement
3426 0xE01F0, // unassigned
3427 0xF0000, // F0000..FFFFF; Supplementary Private Use Area-A
3428 0x100000 // 100000..10FFFF; Supplementary Private Use Area-B
3429 };
3430
3431 private static final UnicodeBlock[] blocks = {
3432 BASIC_LATIN,
3433 LATIN_1_SUPPLEMENT,
3434 LATIN_EXTENDED_A,
3435 LATIN_EXTENDED_B,
3436 IPA_EXTENSIONS,
3437 SPACING_MODIFIER_LETTERS,
3438 COMBINING_DIACRITICAL_MARKS,
3439 GREEK,
3440 CYRILLIC,
3441 CYRILLIC_SUPPLEMENTARY,
3442 ARMENIAN,
3443 HEBREW,
3444 ARABIC,
3445 SYRIAC,
3446 ARABIC_SUPPLEMENT,
3447 THAANA,
3448 NKO,
3449 SAMARITAN,
3450 MANDAIC,
3451 SYRIAC_SUPPLEMENT,
3452 null,
3453 ARABIC_EXTENDED_A,
3454 DEVANAGARI,
3455 BENGALI,
3456 GURMUKHI,
3457 GUJARATI,
3458 ORIYA,
3459 TAMIL,
3460 TELUGU,
3461 KANNADA,
3462 MALAYALAM,
3463 SINHALA,
3464 THAI,
3465 LAO,
3466 TIBETAN,
3467 MYANMAR,
3468 GEORGIAN,
3469 HANGUL_JAMO,
3470 ETHIOPIC,
3471 ETHIOPIC_SUPPLEMENT,
3475 RUNIC,
3476 TAGALOG,
3477 HANUNOO,
3478 BUHID,
3479 TAGBANWA,
3480 KHMER,
3481 MONGOLIAN,
3482 UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED,
3483 LIMBU,
3484 TAI_LE,
3485 NEW_TAI_LUE,
3486 KHMER_SYMBOLS,
3487 BUGINESE,
3488 TAI_THAM,
3489 COMBINING_DIACRITICAL_MARKS_EXTENDED,
3490 BALINESE,
3491 SUNDANESE,
3492 BATAK,
3493 LEPCHA,
3494 OL_CHIKI,
3495 CYRILLIC_EXTENDED_C,
3496 null,
3497 SUNDANESE_SUPPLEMENT,
3498 VEDIC_EXTENSIONS,
3499 PHONETIC_EXTENSIONS,
3500 PHONETIC_EXTENSIONS_SUPPLEMENT,
3501 COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,
3502 LATIN_EXTENDED_ADDITIONAL,
3503 GREEK_EXTENDED,
3504 GENERAL_PUNCTUATION,
3505 SUPERSCRIPTS_AND_SUBSCRIPTS,
3506 CURRENCY_SYMBOLS,
3507 COMBINING_MARKS_FOR_SYMBOLS,
3508 LETTERLIKE_SYMBOLS,
3509 NUMBER_FORMS,
3510 ARROWS,
3511 MATHEMATICAL_OPERATORS,
3512 MISCELLANEOUS_TECHNICAL,
3513 CONTROL_PICTURES,
3514 OPTICAL_CHARACTER_RECOGNITION,
3515 ENCLOSED_ALPHANUMERICS,
3596 SPECIALS,
3597 LINEAR_B_SYLLABARY,
3598 LINEAR_B_IDEOGRAMS,
3599 AEGEAN_NUMBERS,
3600 ANCIENT_GREEK_NUMBERS,
3601 ANCIENT_SYMBOLS,
3602 PHAISTOS_DISC,
3603 null,
3604 LYCIAN,
3605 CARIAN,
3606 COPTIC_EPACT_NUMBERS,
3607 OLD_ITALIC,
3608 GOTHIC,
3609 OLD_PERMIC,
3610 UGARITIC,
3611 OLD_PERSIAN,
3612 null,
3613 DESERET,
3614 SHAVIAN,
3615 OSMANYA,
3616 OSAGE,
3617 ELBASAN,
3618 CAUCASIAN_ALBANIAN,
3619 null,
3620 LINEAR_A,
3621 null,
3622 CYPRIOT_SYLLABARY,
3623 IMPERIAL_ARAMAIC,
3624 PALMYRENE,
3625 NABATAEAN,
3626 null,
3627 HATRAN,
3628 PHOENICIAN,
3629 LYDIAN,
3630 null,
3631 MEROITIC_HIEROGLYPHS,
3632 MEROITIC_CURSIVE,
3633 KHAROSHTHI,
3634 OLD_SOUTH_ARABIAN,
3635 OLD_NORTH_ARABIAN,
3636 null,
3642 null,
3643 OLD_TURKIC,
3644 null,
3645 OLD_HUNGARIAN,
3646 null,
3647 RUMI_NUMERAL_SYMBOLS,
3648 null,
3649 BRAHMI,
3650 KAITHI,
3651 SORA_SOMPENG,
3652 CHAKMA,
3653 MAHAJANI,
3654 SHARADA,
3655 SINHALA_ARCHAIC_NUMBERS,
3656 KHOJKI,
3657 null,
3658 MULTANI,
3659 KHUDAWADI,
3660 GRANTHA,
3661 null,
3662 NEWA,
3663 TIRHUTA,
3664 null,
3665 SIDDHAM,
3666 MODI,
3667 MONGOLIAN_SUPPLEMENT,
3668 TAKRI,
3669 null,
3670 AHOM,
3671 null,
3672 WARANG_CITI,
3673 null,
3674 ZANABAZAR_SQUARE,
3675 SOYOMBO,
3676 null,
3677 PAU_CIN_HAU,
3678 null,
3679 BHAIKSUKI,
3680 MARCHEN,
3681 null,
3682 MASARAM_GONDI,
3683 null,
3684 CUNEIFORM,
3685 CUNEIFORM_NUMBERS_AND_PUNCTUATION,
3686 EARLY_DYNASTIC_CUNEIFORM,
3687 null,
3688 EGYPTIAN_HIEROGLYPHS,
3689 null,
3690 ANATOLIAN_HIEROGLYPHS,
3691 null,
3692 BAMUM_SUPPLEMENT,
3693 MRO,
3694 null,
3695 BASSA_VAH,
3696 PAHAWH_HMONG,
3697 null,
3698 MIAO,
3699 null,
3700 IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION,
3701 TANGUT,
3702 TANGUT_COMPONENTS,
3703 null,
3704 KANA_SUPPLEMENT,
3705 KANA_EXTENDED_A,
3706 null,
3707 NUSHU,
3708 null,
3709 DUPLOYAN,
3710 SHORTHAND_FORMAT_CONTROLS,
3711 null,
3712 BYZANTINE_MUSICAL_SYMBOLS,
3713 MUSICAL_SYMBOLS,
3714 ANCIENT_GREEK_MUSICAL_NOTATION,
3715 null,
3716 TAI_XUAN_JING_SYMBOLS,
3717 COUNTING_ROD_NUMERALS,
3718 null,
3719 MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
3720 SUTTON_SIGNWRITING,
3721 null,
3722 GLAGOLITIC_SUPPLEMENT,
3723 null,
3724 MENDE_KIKAKUI,
3725 null,
3726 ADLAM,
3727 null,
3728 ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS,
3729 null,
3730 MAHJONG_TILES,
3731 DOMINO_TILES,
3732 PLAYING_CARDS,
3733 ENCLOSED_ALPHANUMERIC_SUPPLEMENT,
3734 ENCLOSED_IDEOGRAPHIC_SUPPLEMENT,
3735 MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS,
3736 EMOTICONS,
3737 ORNAMENTAL_DINGBATS,
3738 TRANSPORT_AND_MAP_SYMBOLS,
3739 ALCHEMICAL_SYMBOLS,
3740 GEOMETRIC_SHAPES_EXTENDED,
3741 SUPPLEMENTAL_ARROWS_C,
3742 SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS,
3743 null,
3744 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,
3745 null,
3746 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C,
3747 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,
3748 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E,
3749 CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F,
3750 null,
3751 CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,
3752 null,
3753 TAGS,
3754 null,
3755 VARIATION_SELECTORS_SUPPLEMENT,
3756 null,
3757 SUPPLEMENTARY_PRIVATE_USE_AREA_A,
3758 SUPPLEMENTARY_PRIVATE_USE_AREA_B
3759 };
3760
3761
3762 /**
3763 * Returns the object representing the Unicode block containing the
3764 * given character, or {@code null} if the character is not a
3765 * member of a defined block.
3766 *
3767 * <p><b>Note:</b> This method cannot handle
3768 * <a href="Character.html#supplementary"> supplementary
3769 * characters</a>. To support all Unicode characters, including
4552
4553 /**
4554 * Unicode script "Multani".
4555 * @since 9
4556 */
4557 MULTANI,
4558
4559 /**
4560 * Unicode script "Old Hungarian".
4561 * @since 9
4562 */
4563 OLD_HUNGARIAN,
4564
4565 /**
4566 * Unicode script "SignWriting".
4567 * @since 9
4568 */
4569 SIGNWRITING,
4570
4571 /**
4572 * Unicode script "Adlam".
4573 * @since 11
4574 */
4575 ADLAM,
4576
4577 /**
4578 * Unicode script "Bhaiksuki".
4579 * @since 11
4580 */
4581 BHAIKSUKI,
4582
4583 /**
4584 * Unicode script "Marchen".
4585 * @since 11
4586 */
4587 MARCHEN,
4588
4589 /**
4590 * Unicode script "Newa".
4591 * @since 11
4592 */
4593 NEWA,
4594
4595 /**
4596 * Unicode script "Osage".
4597 * @since 11
4598 */
4599 OSAGE,
4600
4601 /**
4602 * Unicode script "Tangut".
4603 * @since 11
4604 */
4605 TANGUT,
4606
4607 /**
4608 * Unicode script "Masaram Gondi".
4609 * @since 11
4610 */
4611 MASARAM_GONDI,
4612
4613 /**
4614 * Unicode script "Nushu".
4615 * @since 11
4616 */
4617 NUSHU,
4618
4619 /**
4620 * Unicode script "Soyombo".
4621 * @since 11
4622 */
4623 SOYOMBO,
4624
4625 /**
4626 * Unicode script "Zanabazar Square".
4627 * @since 11
4628 */
4629 ZANABAZAR_SQUARE,
4630
4631 /**
4632 * Unicode script "Unknown".
4633 */
4634 UNKNOWN;
4635
4636 private static final int[] scriptStarts = {
4637 0x0000, // 0000..0040; COMMON
4638 0x0041, // 0041..005A; LATIN
4639 0x005B, // 005B..0060; COMMON
4640 0x0061, // 0061..007A; LATIN
4641 0x007B, // 007B..00A9; COMMON
4642 0x00AA, // 00AA ; LATIN
4643 0x00AB, // 00AB..00B9; COMMON
4644 0x00BA, // 00BA ; LATIN
4645 0x00BB, // 00BB..00BF; COMMON
4646 0x00C0, // 00C0..00D6; LATIN
4647 0x00D7, // 00D7 ; COMMON
4648 0x00D8, // 00D8..00F6; LATIN
4649 0x00F7, // 00F7 ; COMMON
4650 0x00F8, // 00F8..02B8; LATIN
4651 0x02B9, // 02B9..02DF; COMMON
4684 0x0559, // 0559..055F; ARMENIAN
4685 0x0560, // 0560 ; UNKNOWN
4686 0x0561, // 0561..0587; ARMENIAN
4687 0x0588, // 0588 ; UNKNOWN
4688 0x0589, // 0589 ; COMMON
4689 0x058A, // 058A ; ARMENIAN
4690 0x058B, // 058B..058C; UNKNOWN
4691 0x058D, // 058D..058F; ARMENIAN
4692 0x0590, // 0590 ; UNKNOWN
4693 0x0591, // 0591..05C7; HEBREW
4694 0x05C8, // 05C8..05CF; UNKNOWN
4695 0x05D0, // 05D0..05EA; HEBREW
4696 0x05EB, // 05EB..05EF; UNKNOWN
4697 0x05F0, // 05F0..05F4; HEBREW
4698 0x05F5, // 05F5..05FF; UNKNOWN
4699 0x0600, // 0600..0604; ARABIC
4700 0x0605, // 0605 ; COMMON
4701 0x0606, // 0606..060B; ARABIC
4702 0x060C, // 060C ; COMMON
4703 0x060D, // 060D..061A; ARABIC
4704 0x061B, // 061B ; COMMON
4705 0x061C, // 061C ; ARABIC
4706 0x061D, // 061D ; UNKNOWN
4707 0x061E, // 061E ; ARABIC
4708 0x061F, // 061F ; COMMON
4709 0x0620, // 0620..063F; ARABIC
4710 0x0640, // 0640 ; COMMON
4711 0x0641, // 0641..064A; ARABIC
4712 0x064B, // 064B..0655; INHERITED
4713 0x0656, // 0656..066F; ARABIC
4714 0x0670, // 0670 ; INHERITED
4715 0x0671, // 0671..06DC; ARABIC
4716 0x06DD, // 06DD ; COMMON
4717 0x06DE, // 06DE..06FF; ARABIC
4718 0x0700, // 0700..070D; SYRIAC
4719 0x070E, // 070E ; UNKNOWN
4720 0x070F, // 070F..074A; SYRIAC
4721 0x074B, // 074B..074C; UNKNOWN
4722 0x074D, // 074D..074F; SYRIAC
4723 0x0750, // 0750..077F; ARABIC
4724 0x0780, // 0780..07B1; THAANA
4725 0x07B2, // 07B2..07BF; UNKNOWN
4726 0x07C0, // 07C0..07FA; NKO
4727 0x07FB, // 07FB..07FF; UNKNOWN
4728 0x0800, // 0800..082D; SAMARITAN
4729 0x082E, // 082E..082F; UNKNOWN
4730 0x0830, // 0830..083E; SAMARITAN
4731 0x083F, // 083F ; UNKNOWN
4732 0x0840, // 0840..085B; MANDAIC
4733 0x085C, // 085C..085D; UNKNOWN
4734 0x085E, // 085E ; MANDAIC
4735 0x085F, // 085F ; UNKNOWN
4736 0x0860, // 0860..086A; SYRIAC
4737 0x086B, // 086B..089F; UNKNOWN
4738 0x08A0, // 08A0..08B4; ARABIC
4739 0x08B5, // 08B5 ; UNKNOWN
4740 0x08B6, // 08B6..08BD; ARABIC
4741 0x08BE, // 08BE..08D3; UNKNOWN
4742 0x08D4, // 08D4..08E1; ARABIC
4743 0x08E2, // 08E2 ; COMMON
4744 0x08E3, // 08E3..08FF; ARABIC
4745 0x0900, // 0900..0950; DEVANAGARI
4746 0x0951, // 0951..0952; INHERITED
4747 0x0953, // 0953..0963; DEVANAGARI
4748 0x0964, // 0964..0965; COMMON
4749 0x0966, // 0966..097F; DEVANAGARI
4750 0x0980, // 0980..0983; BENGALI
4751 0x0984, // 0984 ; UNKNOWN
4752 0x0985, // 0985..098C; BENGALI
4753 0x098D, // 098D..098E; UNKNOWN
4754 0x098F, // 098F..0990; BENGALI
4755 0x0991, // 0991..0992; UNKNOWN
4756 0x0993, // 0993..09A8; BENGALI
4757 0x09A9, // 09A9 ; UNKNOWN
4758 0x09AA, // 09AA..09B0; BENGALI
4759 0x09B1, // 09B1 ; UNKNOWN
4760 0x09B2, // 09B2 ; BENGALI
4761 0x09B3, // 09B3..09B5; UNKNOWN
4762 0x09B6, // 09B6..09B9; BENGALI
4763 0x09BA, // 09BA..09BB; UNKNOWN
4764 0x09BC, // 09BC..09C4; BENGALI
4765 0x09C5, // 09C5..09C6; UNKNOWN
4766 0x09C7, // 09C7..09C8; BENGALI
4767 0x09C9, // 09C9..09CA; UNKNOWN
4768 0x09CB, // 09CB..09CE; BENGALI
4769 0x09CF, // 09CF..09D6; UNKNOWN
4770 0x09D7, // 09D7 ; BENGALI
4771 0x09D8, // 09D8..09DB; UNKNOWN
4772 0x09DC, // 09DC..09DD; BENGALI
4773 0x09DE, // 09DE ; UNKNOWN
4774 0x09DF, // 09DF..09E3; BENGALI
4775 0x09E4, // 09E4..09E5; UNKNOWN
4776 0x09E6, // 09E6..09FD; BENGALI
4777 0x09FE, // 09FE..0A00; UNKNOWN
4778 0x0A01, // 0A01..0A03; GURMUKHI
4779 0x0A04, // 0A04 ; UNKNOWN
4780 0x0A05, // 0A05..0A0A; GURMUKHI
4781 0x0A0B, // 0A0B..0A0E; UNKNOWN
4782 0x0A0F, // 0A0F..0A10; GURMUKHI
4783 0x0A11, // 0A11..0A12; UNKNOWN
4784 0x0A13, // 0A13..0A28; GURMUKHI
4785 0x0A29, // 0A29 ; UNKNOWN
4786 0x0A2A, // 0A2A..0A30; GURMUKHI
4787 0x0A31, // 0A31 ; UNKNOWN
4788 0x0A32, // 0A32..0A33; GURMUKHI
4789 0x0A34, // 0A34 ; UNKNOWN
4790 0x0A35, // 0A35..0A36; GURMUKHI
4791 0x0A37, // 0A37 ; UNKNOWN
4792 0x0A38, // 0A38..0A39; GURMUKHI
4793 0x0A3A, // 0A3A..0A3B; UNKNOWN
4794 0x0A3C, // 0A3C ; GURMUKHI
4795 0x0A3D, // 0A3D ; UNKNOWN
4796 0x0A3E, // 0A3E..0A42; GURMUKHI
4797 0x0A43, // 0A43..0A46; UNKNOWN
4816 0x0A93, // 0A93..0AA8; GUJARATI
4817 0x0AA9, // 0AA9 ; UNKNOWN
4818 0x0AAA, // 0AAA..0AB0; GUJARATI
4819 0x0AB1, // 0AB1 ; UNKNOWN
4820 0x0AB2, // 0AB2..0AB3; GUJARATI
4821 0x0AB4, // 0AB4 ; UNKNOWN
4822 0x0AB5, // 0AB5..0AB9; GUJARATI
4823 0x0ABA, // 0ABA..0ABB; UNKNOWN
4824 0x0ABC, // 0ABC..0AC5; GUJARATI
4825 0x0AC6, // 0AC6 ; UNKNOWN
4826 0x0AC7, // 0AC7..0AC9; GUJARATI
4827 0x0ACA, // 0ACA ; UNKNOWN
4828 0x0ACB, // 0ACB..0ACD; GUJARATI
4829 0x0ACE, // 0ACE..0ACF; UNKNOWN
4830 0x0AD0, // 0AD0 ; GUJARATI
4831 0x0AD1, // 0AD1..0ADF; UNKNOWN
4832 0x0AE0, // 0AE0..0AE3; GUJARATI
4833 0x0AE4, // 0AE4..0AE5; UNKNOWN
4834 0x0AE6, // 0AE6..0AF1; GUJARATI
4835 0x0AF2, // 0AF2..0AF8; UNKNOWN
4836 0x0AF9, // 0AF9..0AFF; GUJARATI
4837 0x0B00, // 0B00 ; UNKNOWN
4838 0x0B01, // 0B01..0B03; ORIYA
4839 0x0B04, // 0B04 ; UNKNOWN
4840 0x0B05, // 0B05..0B0C; ORIYA
4841 0x0B0D, // 0B0D..0B0E; UNKNOWN
4842 0x0B0F, // 0B0F..0B10; ORIYA
4843 0x0B11, // 0B11..0B12; UNKNOWN
4844 0x0B13, // 0B13..0B28; ORIYA
4845 0x0B29, // 0B29 ; UNKNOWN
4846 0x0B2A, // 0B2A..0B30; ORIYA
4847 0x0B31, // 0B31 ; UNKNOWN
4848 0x0B32, // 0B32..0B33; ORIYA
4849 0x0B34, // 0B34 ; UNKNOWN
4850 0x0B35, // 0B35..0B39; ORIYA
4851 0x0B3A, // 0B3A..0B3B; UNKNOWN
4852 0x0B3C, // 0B3C..0B44; ORIYA
4853 0x0B45, // 0B45..0B46; UNKNOWN
4854 0x0B47, // 0B47..0B48; ORIYA
4855 0x0B49, // 0B49..0B4A; UNKNOWN
4856 0x0B4B, // 0B4B..0B4D; ORIYA
4857 0x0B4E, // 0B4E..0B55; UNKNOWN
4903 0x0C11, // 0C11 ; UNKNOWN
4904 0x0C12, // 0C12..0C28; TELUGU
4905 0x0C29, // 0C29 ; UNKNOWN
4906 0x0C2A, // 0C2A..0C39; TELUGU
4907 0x0C3A, // 0C3A..0C3C; UNKNOWN
4908 0x0C3D, // 0C3D..0C44; TELUGU
4909 0x0C45, // 0C45 ; UNKNOWN
4910 0x0C46, // 0C46..0C48; TELUGU
4911 0x0C49, // 0C49 ; UNKNOWN
4912 0x0C4A, // 0C4A..0C4D; TELUGU
4913 0x0C4E, // 0C4E..0C54; UNKNOWN
4914 0x0C55, // 0C55..0C56; TELUGU
4915 0x0C57, // 0C57 ; UNKNOWN
4916 0x0C58, // 0C58..0C5A; TELUGU
4917 0x0C5B, // 0C5B..0C5F; UNKNOWN
4918 0x0C60, // 0C60..0C63; TELUGU
4919 0x0C64, // 0C64..0C65; UNKNOWN
4920 0x0C66, // 0C66..0C6F; TELUGU
4921 0x0C70, // 0C70..0C77; UNKNOWN
4922 0x0C78, // 0C78..0C7F; TELUGU
4923 0x0C80, // 0C80..0C83; KANNADA
4924 0x0C84, // 0C84 ; UNKNOWN
4925 0x0C85, // 0C85..0C8C; KANNADA
4926 0x0C8D, // 0C8D ; UNKNOWN
4927 0x0C8E, // 0C8E..0C90; KANNADA
4928 0x0C91, // 0C91 ; UNKNOWN
4929 0x0C92, // 0C92..0CA8; KANNADA
4930 0x0CA9, // 0CA9 ; UNKNOWN
4931 0x0CAA, // 0CAA..0CB3; KANNADA
4932 0x0CB4, // 0CB4 ; UNKNOWN
4933 0x0CB5, // 0CB5..0CB9; KANNADA
4934 0x0CBA, // 0CBA..0CBB; UNKNOWN
4935 0x0CBC, // 0CBC..0CC4; KANNADA
4936 0x0CC5, // 0CC5 ; UNKNOWN
4937 0x0CC6, // 0CC6..0CC8; KANNADA
4938 0x0CC9, // 0CC9 ; UNKNOWN
4939 0x0CCA, // 0CCA..0CCD; KANNADA
4940 0x0CCE, // 0CCE..0CD4; UNKNOWN
4941 0x0CD5, // 0CD5..0CD6; KANNADA
4942 0x0CD7, // 0CD7..0CDD; UNKNOWN
4943 0x0CDE, // 0CDE ; KANNADA
4944 0x0CDF, // 0CDF ; UNKNOWN
4945 0x0CE0, // 0CE0..0CE3; KANNADA
4946 0x0CE4, // 0CE4..0CE5; UNKNOWN
4947 0x0CE6, // 0CE6..0CEF; KANNADA
4948 0x0CF0, // 0CF0 ; UNKNOWN
4949 0x0CF1, // 0CF1..0CF2; KANNADA
4950 0x0CF3, // 0CF3..0CFF; UNKNOWN
4951 0x0D00, // 0D00..0D03; MALAYALAM
4952 0x0D04, // 0D04 ; UNKNOWN
4953 0x0D05, // 0D05..0D0C; MALAYALAM
4954 0x0D0D, // 0D0D ; UNKNOWN
4955 0x0D0E, // 0D0E..0D10; MALAYALAM
4956 0x0D11, // 0D11 ; UNKNOWN
4957 0x0D12, // 0D12..0D44; MALAYALAM
4958 0x0D45, // 0D45 ; UNKNOWN
4959 0x0D46, // 0D46..0D48; MALAYALAM
4960 0x0D49, // 0D49 ; UNKNOWN
4961 0x0D4A, // 0D4A..0D4F; MALAYALAM
4962 0x0D50, // 0D50..0D53; UNKNOWN
4963 0x0D54, // 0D54..0D63; MALAYALAM
4964 0x0D64, // 0D64..0D65; UNKNOWN
4965 0x0D66, // 0D66..0D7F; MALAYALAM
4966 0x0D80, // 0D80..0D81; UNKNOWN
4967 0x0D82, // 0D82..0D83; SINHALA
4968 0x0D84, // 0D84 ; UNKNOWN
4969 0x0D85, // 0D85..0D96; SINHALA
4970 0x0D97, // 0D97..0D99; UNKNOWN
4971 0x0D9A, // 0D9A..0DB1; SINHALA
4972 0x0DB2, // 0DB2 ; UNKNOWN
4973 0x0DB3, // 0DB3..0DBB; SINHALA
4974 0x0DBC, // 0DBC ; UNKNOWN
4975 0x0DBD, // 0DBD ; SINHALA
4976 0x0DBE, // 0DBE..0DBF; UNKNOWN
4977 0x0DC0, // 0DC0..0DC6; SINHALA
4978 0x0DC7, // 0DC7..0DC9; UNKNOWN
4979 0x0DCA, // 0DCA ; SINHALA
4980 0x0DCB, // 0DCB..0DCE; UNKNOWN
4981 0x0DCF, // 0DCF..0DD4; SINHALA
4982 0x0DD5, // 0DD5 ; UNKNOWN
4983 0x0DD6, // 0DD6 ; SINHALA
4984 0x0DD7, // 0DD7 ; UNKNOWN
4985 0x0DD8, // 0DD8..0DDF; SINHALA
5169 0x1A90, // 1A90..1A99; TAI_THAM
5170 0x1A9A, // 1A9A..1A9F; UNKNOWN
5171 0x1AA0, // 1AA0..1AAD; TAI_THAM
5172 0x1AAE, // 1AAE..1AAF; UNKNOWN
5173 0x1AB0, // 1AB0..1ABE; INHERITED
5174 0x1ABF, // 1ABF..1AFF; UNKNOWN
5175 0x1B00, // 1B00..1B4B; BALINESE
5176 0x1B4C, // 1B4C..1B4F; UNKNOWN
5177 0x1B50, // 1B50..1B7C; BALINESE
5178 0x1B7D, // 1B7D..1B7F; UNKNOWN
5179 0x1B80, // 1B80..1BBF; SUNDANESE
5180 0x1BC0, // 1BC0..1BF3; BATAK
5181 0x1BF4, // 1BF4..1BFB; UNKNOWN
5182 0x1BFC, // 1BFC..1BFF; BATAK
5183 0x1C00, // 1C00..1C37; LEPCHA
5184 0x1C38, // 1C38..1C3A; UNKNOWN
5185 0x1C3B, // 1C3B..1C49; LEPCHA
5186 0x1C4A, // 1C4A..1C4C; UNKNOWN
5187 0x1C4D, // 1C4D..1C4F; LEPCHA
5188 0x1C50, // 1C50..1C7F; OL_CHIKI
5189 0x1C80, // 1C80..1C88; CYRILLIC
5190 0x1C89, // 1C89..1CBF; UNKNOWN
5191 0x1CC0, // 1CC0..1CC7; SUNDANESE
5192 0x1CC8, // 1CC8..1CCF; UNKNOWN
5193 0x1CD0, // 1CD0..1CD2; INHERITED
5194 0x1CD3, // 1CD3 ; COMMON
5195 0x1CD4, // 1CD4..1CE0; INHERITED
5196 0x1CE1, // 1CE1 ; COMMON
5197 0x1CE2, // 1CE2..1CE8; INHERITED
5198 0x1CE9, // 1CE9..1CEC; COMMON
5199 0x1CED, // 1CED ; INHERITED
5200 0x1CEE, // 1CEE..1CF3; COMMON
5201 0x1CF4, // 1CF4 ; INHERITED
5202 0x1CF5, // 1CF5..1CF7; COMMON
5203 0x1CF8, // 1CF8..1CF9; INHERITED
5204 0x1CFA, // 1CFA..1CFF; UNKNOWN
5205 0x1D00, // 1D00..1D25; LATIN
5206 0x1D26, // 1D26..1D2A; GREEK
5207 0x1D2B, // 1D2B ; CYRILLIC
5208 0x1D2C, // 1D2C..1D5C; LATIN
5209 0x1D5D, // 1D5D..1D61; GREEK
5210 0x1D62, // 1D62..1D65; LATIN
5211 0x1D66, // 1D66..1D6A; GREEK
5212 0x1D6B, // 1D6B..1D77; LATIN
5213 0x1D78, // 1D78 ; CYRILLIC
5214 0x1D79, // 1D79..1DBE; LATIN
5215 0x1DBF, // 1DBF ; GREEK
5216 0x1DC0, // 1DC0..1DF9; INHERITED
5217 0x1DFA, // 1DFA ; UNKNOWN
5218 0x1DFB, // 1DFB..1DFF; INHERITED
5219 0x1E00, // 1E00..1EFF; LATIN
5220 0x1F00, // 1F00..1F15; GREEK
5221 0x1F16, // 1F16..1F17; UNKNOWN
5222 0x1F18, // 1F18..1F1D; GREEK
5223 0x1F1E, // 1F1E..1F1F; UNKNOWN
5224 0x1F20, // 1F20..1F45; GREEK
5225 0x1F46, // 1F46..1F47; UNKNOWN
5226 0x1F48, // 1F48..1F4D; GREEK
5227 0x1F4E, // 1F4E..1F4F; UNKNOWN
5228 0x1F50, // 1F50..1F57; GREEK
5229 0x1F58, // 1F58 ; UNKNOWN
5230 0x1F59, // 1F59 ; GREEK
5231 0x1F5A, // 1F5A ; UNKNOWN
5232 0x1F5B, // 1F5B ; GREEK
5233 0x1F5C, // 1F5C ; UNKNOWN
5234 0x1F5D, // 1F5D ; GREEK
5235 0x1F5E, // 1F5E ; UNKNOWN
5236 0x1F5F, // 1F5F..1F7D; GREEK
5237 0x1F7E, // 1F7E..1F7F; UNKNOWN
5238 0x1F80, // 1F80..1FB4; GREEK
5245 0x1FDC, // 1FDC ; UNKNOWN
5246 0x1FDD, // 1FDD..1FEF; GREEK
5247 0x1FF0, // 1FF0..1FF1; UNKNOWN
5248 0x1FF2, // 1FF2..1FF4; GREEK
5249 0x1FF5, // 1FF5 ; UNKNOWN
5250 0x1FF6, // 1FF6..1FFE; GREEK
5251 0x1FFF, // 1FFF ; UNKNOWN
5252 0x2000, // 2000..200B; COMMON
5253 0x200C, // 200C..200D; INHERITED
5254 0x200E, // 200E..2064; COMMON
5255 0x2065, // 2065 ; UNKNOWN
5256 0x2066, // 2066..2070; COMMON
5257 0x2071, // 2071 ; LATIN
5258 0x2072, // 2072..2073; UNKNOWN
5259 0x2074, // 2074..207E; COMMON
5260 0x207F, // 207F ; LATIN
5261 0x2080, // 2080..208E; COMMON
5262 0x208F, // 208F ; UNKNOWN
5263 0x2090, // 2090..209C; LATIN
5264 0x209D, // 209D..209F; UNKNOWN
5265 0x20A0, // 20A0..20BF; COMMON
5266 0x20C0, // 20C0..20CF; UNKNOWN
5267 0x20D0, // 20D0..20F0; INHERITED
5268 0x20F1, // 20F1..20FF; UNKNOWN
5269 0x2100, // 2100..2125; COMMON
5270 0x2126, // 2126 ; GREEK
5271 0x2127, // 2127..2129; COMMON
5272 0x212A, // 212A..212B; LATIN
5273 0x212C, // 212C..2131; COMMON
5274 0x2132, // 2132 ; LATIN
5275 0x2133, // 2133..214D; COMMON
5276 0x214E, // 214E ; LATIN
5277 0x214F, // 214F..215F; COMMON
5278 0x2160, // 2160..2188; LATIN
5279 0x2189, // 2189..218B; COMMON
5280 0x218C, // 218C..218F; UNKNOWN
5281 0x2190, // 2190..2426; COMMON
5282 0x2427, // 2427..243F; UNKNOWN
5283 0x2440, // 2440..244A; COMMON
5284 0x244B, // 244B..245F; UNKNOWN
5285 0x2460, // 2460..27FF; COMMON
5286 0x2800, // 2800..28FF; BRAILLE
5287 0x2900, // 2900..2B73; COMMON
5288 0x2B74, // 2B74..2B75; UNKNOWN
5289 0x2B76, // 2B76..2B95; COMMON
5290 0x2B96, // 2B96..2B97; UNKNOWN
5291 0x2B98, // 2B98..2BB9; COMMON
5292 0x2BBA, // 2BBA..2BBC; UNKNOWN
5293 0x2BBD, // 2BBD..2BC8; COMMON
5294 0x2BC9, // 2BC9 ; UNKNOWN
5295 0x2BCA, // 2BCA..2BD2; COMMON
5296 0x2BD3, // 2BD3..2BEB; UNKNOWN
5297 0x2BEC, // 2BEC..2BEF; COMMON
5298 0x2BF0, // 2BF0..2BFF; UNKNOWN
5299 0x2C00, // 2C00..2C2E; GLAGOLITIC
5300 0x2C2F, // 2C2F ; UNKNOWN
5301 0x2C30, // 2C30..2C5E; GLAGOLITIC
5302 0x2C5F, // 2C5F ; UNKNOWN
5303 0x2C60, // 2C60..2C7F; LATIN
5304 0x2C80, // 2C80..2CF3; COPTIC
5305 0x2CF4, // 2CF4..2CF8; UNKNOWN
5306 0x2CF9, // 2CF9..2CFF; COPTIC
5307 0x2D00, // 2D00..2D25; GEORGIAN
5308 0x2D26, // 2D26 ; UNKNOWN
5309 0x2D27, // 2D27 ; GEORGIAN
5310 0x2D28, // 2D28..2D2C; UNKNOWN
5311 0x2D2D, // 2D2D ; GEORGIAN
5312 0x2D2E, // 2D2E..2D2F; UNKNOWN
5313 0x2D30, // 2D30..2D67; TIFINAGH
5314 0x2D68, // 2D68..2D6E; UNKNOWN
5315 0x2D6F, // 2D6F..2D70; TIFINAGH
5316 0x2D71, // 2D71..2D7E; UNKNOWN
5317 0x2D7F, // 2D7F ; TIFINAGH
5318 0x2D80, // 2D80..2D96; ETHIOPIC
5319 0x2D97, // 2D97..2D9F; UNKNOWN
5320 0x2DA0, // 2DA0..2DA6; ETHIOPIC
5321 0x2DA7, // 2DA7 ; UNKNOWN
5322 0x2DA8, // 2DA8..2DAE; ETHIOPIC
5323 0x2DAF, // 2DAF ; UNKNOWN
5324 0x2DB0, // 2DB0..2DB6; ETHIOPIC
5325 0x2DB7, // 2DB7 ; UNKNOWN
5326 0x2DB8, // 2DB8..2DBE; ETHIOPIC
5327 0x2DBF, // 2DBF ; UNKNOWN
5328 0x2DC0, // 2DC0..2DC6; ETHIOPIC
5329 0x2DC7, // 2DC7 ; UNKNOWN
5330 0x2DC8, // 2DC8..2DCE; ETHIOPIC
5331 0x2DCF, // 2DCF ; UNKNOWN
5332 0x2DD0, // 2DD0..2DD6; ETHIOPIC
5333 0x2DD7, // 2DD7 ; UNKNOWN
5334 0x2DD8, // 2DD8..2DDE; ETHIOPIC
5335 0x2DDF, // 2DDF ; UNKNOWN
5336 0x2DE0, // 2DE0..2DFF; CYRILLIC
5337 0x2E00, // 2E00..2E49; COMMON
5338 0x2E50, // 2E50..2E7F; UNKNOWN
5339 0x2E80, // 2E80..2E99; HAN
5340 0x2E9A, // 2E9A ; UNKNOWN
5341 0x2E9B, // 2E9B..2EF3; HAN
5342 0x2EF4, // 2EF4..2EFF; UNKNOWN
5343 0x2F00, // 2F00..2FD5; HAN
5344 0x2FD6, // 2FD6..2FEF; UNKNOWN
5345 0x2FF0, // 2FF0..2FFB; COMMON
5346 0x2FFC, // 2FFC..2FFF; UNKNOWN
5347 0x3000, // 3000..3004; COMMON
5348 0x3005, // 3005 ; HAN
5349 0x3006, // 3006 ; COMMON
5350 0x3007, // 3007 ; HAN
5351 0x3008, // 3008..3020; COMMON
5352 0x3021, // 3021..3029; HAN
5353 0x302A, // 302A..302D; INHERITED
5354 0x302E, // 302E..302F; HANGUL
5355 0x3030, // 3030..3037; COMMON
5356 0x3038, // 3038..303B; HAN
5357 0x303C, // 303C..303F; COMMON
5358 0x3040, // 3040 ; UNKNOWN
5359 0x3041, // 3041..3096; HIRAGANA
5360 0x3097, // 3097..3098; UNKNOWN
5361 0x3099, // 3099..309A; INHERITED
5362 0x309B, // 309B..309C; COMMON
5363 0x309D, // 309D..309F; HIRAGANA
5364 0x30A0, // 30A0 ; COMMON
5365 0x30A1, // 30A1..30FA; KATAKANA
5366 0x30FB, // 30FB..30FC; COMMON
5367 0x30FD, // 30FD..30FF; KATAKANA
5368 0x3100, // 3100..3104; UNKNOWN
5369 0x3105, // 3105..312E; BOPOMOFO
5370 0x312F, // 312F..3130; UNKNOWN
5371 0x3131, // 3131..318E; HANGUL
5372 0x318F, // 318F ; UNKNOWN
5373 0x3190, // 3190..319F; COMMON
5374 0x31A0, // 31A0..31BA; BOPOMOFO
5375 0x31BB, // 31BB..31BF; UNKNOWN
5376 0x31C0, // 31C0..31E3; COMMON
5377 0x31E4, // 31E4..31EF; UNKNOWN
5378 0x31F0, // 31F0..31FF; KATAKANA
5379 0x3200, // 3200..321E; HANGUL
5380 0x321F, // 321F ; UNKNOWN
5381 0x3220, // 3220..325F; COMMON
5382 0x3260, // 3260..327E; HANGUL
5383 0x327F, // 327F..32CF; COMMON
5384 0x32D0, // 32D0..32FE; KATAKANA
5385 0x32FF, // 32FF ; UNKNOWN
5386 0x3300, // 3300..3357; KATAKANA
5387 0x3358, // 3358..33FF; COMMON
5388 0x3400, // 3400..4DB5; HAN
5389 0x4DB6, // 4DB6..4DBF; UNKNOWN
5390 0x4DC0, // 4DC0..4DFF; COMMON
5391 0x4E00, // 4E00..9FEA; HAN
5392 0x9FEB, // 9FEB..9FFF; UNKNOWN
5393 0xA000, // A000..A48C; YI
5394 0xA48D, // A48D..A48F; UNKNOWN
5395 0xA490, // A490..A4C6; YI
5396 0xA4C7, // A4C7..A4CF; UNKNOWN
5397 0xA4D0, // A4D0..A4FF; LISU
5398 0xA500, // A500..A62B; VAI
5399 0xA62C, // A62C..A63F; UNKNOWN
5400 0xA640, // A640..A69F; CYRILLIC
5401 0xA6A0, // A6A0..A6F7; BAMUM
5402 0xA6F8, // A6F8..A6FF; UNKNOWN
5403 0xA700, // A700..A721; COMMON
5404 0xA722, // A722..A787; LATIN
5405 0xA788, // A788..A78A; COMMON
5406 0xA78B, // A78B..A7AE; LATIN
5407 0xA7AF, // A7AF ; UNKNOWN
5408 0xA7B0, // A7B0..A7B7; LATIN
5409 0xA7B8, // A7B8..A7F6; UNKNOWN
5410 0xA7F7, // A7F7..A7FF; LATIN
5411 0xA800, // A800..A82B; SYLOTI_NAGRI
5412 0xA82C, // A82C..A82F; UNKNOWN
5413 0xA830, // A830..A839; COMMON
5414 0xA83A, // A83A..A83F; UNKNOWN
5415 0xA840, // A840..A877; PHAGS_PA
5416 0xA878, // A878..A87F; UNKNOWN
5417 0xA880, // A880..A8C5; SAURASHTRA
5418 0xA8C6, // A8C6..A8CD; UNKNOWN
5419 0xA8CE, // A8CE..A8D9; SAURASHTRA
5420 0xA8DA, // A8DA..A8DF; UNKNOWN
5421 0xA8E0, // A8E0..A8FD; DEVANAGARI
5422 0xA8FE, // A8FE..A8FF; UNKNOWN
5423 0xA900, // A900..A92D; KAYAH_LI
5424 0xA92E, // A92E ; COMMON
5425 0xA92F, // A92F ; KAYAH_LI
5426 0xA930, // A930..A953; REJANG
5427 0xA954, // A954..A95E; UNKNOWN
5428 0xA95F, // A95F ; REJANG
5429 0xA960, // A960..A97C; HANGUL
5430 0xA97D, // A97D..A97F; UNKNOWN
5431 0xA980, // A980..A9CD; JAVANESE
5432 0xA9CE, // A9CE ; UNKNOWN
5433 0xA9CF, // A9CF ; COMMON
5434 0xA9D0, // A9D0..A9D9; JAVANESE
5435 0xA9DA, // A9DA..A9DD; UNKNOWN
5436 0xA9DE, // A9DE..A9DF; JAVANESE
5437 0xA9E0, // A9E0..A9FE; MYANMAR
5438 0xA9FF, // A9FF ; UNKNOWN
5549 0xFFFE, // FFFE..FFFF; UNKNOWN
5550 0x10000, // 10000..1000B; LINEAR_B
5551 0x1000C, // 1000C ; UNKNOWN
5552 0x1000D, // 1000D..10026; LINEAR_B
5553 0x10027, // 10027 ; UNKNOWN
5554 0x10028, // 10028..1003A; LINEAR_B
5555 0x1003B, // 1003B ; UNKNOWN
5556 0x1003C, // 1003C..1003D; LINEAR_B
5557 0x1003E, // 1003E ; UNKNOWN
5558 0x1003F, // 1003F..1004D; LINEAR_B
5559 0x1004E, // 1004E..1004F; UNKNOWN
5560 0x10050, // 10050..1005D; LINEAR_B
5561 0x1005E, // 1005E..1007F; UNKNOWN
5562 0x10080, // 10080..100FA; LINEAR_B
5563 0x100FB, // 100FB..100FF; UNKNOWN
5564 0x10100, // 10100..10102; COMMON
5565 0x10103, // 10103..10106; UNKNOWN
5566 0x10107, // 10107..10133; COMMON
5567 0x10134, // 10134..10136; UNKNOWN
5568 0x10137, // 10137..1013F; COMMON
5569 0x10140, // 10140..1018E; GREEK
5570 0x1018F, // 1018F ; UNKNOWN
5571 0x10190, // 10190..1019B; COMMON
5572 0x1019C, // 1019C..1019F; UNKNOWN
5573 0x101A0, // 101A0 ; GREEK
5574 0x101A1, // 101A1..101CF; UNKNOWN
5575 0x101D0, // 101D0..101FC; COMMON
5576 0x101FD, // 101FD ; INHERITED
5577 0x101FE, // 101FE..1027F; UNKNOWN
5578 0x10280, // 10280..1029C; LYCIAN
5579 0x1029D, // 1029D..1029F; UNKNOWN
5580 0x102A0, // 102A0..102D0; CARIAN
5581 0x102D1, // 102D1..102DF; UNKNOWN
5582 0x102E0, // 102E0 ; INHERITED
5583 0x102E1, // 102E1..102FB; COMMON
5584 0x102FC, // 102FC..102FF; UNKNOWN
5585 0x10300, // 10300..10323; OLD_ITALIC
5586 0x10324, // 10324..1032C; UNKNOWN
5587 0x1032D, // 1032D..1032F; OLD_ITALIC
5588 0x10330, // 10330..1034A; GOTHIC
5589 0x1034B, // 1034B..1034F; UNKNOWN
5590 0x10350, // 10350..1037A; OLD_PERMIC
5591 0x1037B, // 1037B..1037F; UNKNOWN
5592 0x10380, // 10380..1039D; UGARITIC
5593 0x1039E, // 1039E ; UNKNOWN
5594 0x1039F, // 1039F ; UGARITIC
5595 0x103A0, // 103A0..103C3; OLD_PERSIAN
5596 0x103C4, // 103C4..103C7; UNKNOWN
5597 0x103C8, // 103C8..103D5; OLD_PERSIAN
5598 0x103D6, // 103D6..103FF; UNKNOWN
5599 0x10400, // 10400..1044F; DESERET
5600 0x10450, // 10450..1047F; SHAVIAN
5601 0x10480, // 10480..1049D; OSMANYA
5602 0x1049E, // 1049E..1049F; UNKNOWN
5603 0x104A0, // 104A0..104A9; OSMANYA
5604 0x104AA, // 104AA..104AF; UNKNOWN
5605 0x104B0, // 104B0..104D3; OSAGE
5606 0x104D4, // 104D4..104D7; UNKNOWN
5607 0x104D8, // 104D8..104FB; OSAGE
5608 0x104FC, // 104FC..104FF; UNKNOWN
5609 0x10500, // 10500..10527; ELBASAN
5610 0x10528, // 10528..1052F; UNKNOWN
5611 0x10530, // 10530..10563; CAUCASIAN_ALBANIAN
5612 0x10564, // 10564..1056E; UNKNOWN
5613 0x1056F, // 1056F ; CAUCASIAN_ALBANIAN
5614 0x10570, // 10570..105FF; UNKNOWN
5615 0x10600, // 10600..10736; LINEAR_A
5616 0x10737, // 10737..1073F; UNKNOWN
5617 0x10740, // 10740..10755; LINEAR_A
5618 0x10756, // 10756..1075F; UNKNOWN
5619 0x10760, // 10760..10767; LINEAR_A
5620 0x10768, // 10768..107FF; UNKNOWN
5621 0x10800, // 10800..10805; CYPRIOT
5622 0x10806, // 10806..10807; UNKNOWN
5623 0x10808, // 10808 ; CYPRIOT
5624 0x10809, // 10809 ; UNKNOWN
5625 0x1080A, // 1080A..10835; CYPRIOT
5626 0x10836, // 10836 ; UNKNOWN
5627 0x10837, // 10837..10838; CYPRIOT
5628 0x10839, // 10839..1083B; UNKNOWN
5711 0x11080, // 11080..110C1; KAITHI
5712 0x110C2, // 110C2..110CF; UNKNOWN
5713 0x110D0, // 110D0..110E8; SORA_SOMPENG
5714 0x110E9, // 110E9..110EF; UNKNOWN
5715 0x110F0, // 110F0..110F9; SORA_SOMPENG
5716 0x110FA, // 110FA..110FF; UNKNOWN
5717 0x11100, // 11100..11134; CHAKMA
5718 0x11135, // 11135 ; UNKNOWN
5719 0x11136, // 11136..11143; CHAKMA
5720 0x11144, // 11144..1114F; UNKNOWN
5721 0x11150, // 11150..11176; MAHAJANI
5722 0x11177, // 11177..1117F; UNKNOWN
5723 0x11180, // 11180..111CD; SHARADA
5724 0x111CE, // 111CE..111CF; UNKNOWN
5725 0x111D0, // 111D0..111DF; SHARADA
5726 0x111E0, // 111E0 ; UNKNOWN
5727 0x111E1, // 111E1..111F4; SINHALA
5728 0x111F5, // 111F5..111FF; UNKNOWN
5729 0x11200, // 11200..11211; KHOJKI
5730 0x11212, // 11212 ; UNKNOWN
5731 0x11213, // 11213..1123E; KHOJKI
5732 0x1123F, // 1123F..1127F; UNKNOWN
5733 0x11280, // 11280..11286; MULTANI
5734 0x11287, // 11287 ; UNKNOWN
5735 0x11288, // 11288 ; MULTANI
5736 0x11289, // 11289 ; UNKNOWN
5737 0x1128A, // 1128A..1128D; MULTANI
5738 0x1128E, // 1128E ; UNKNOWN
5739 0x1128F, // 1128F..1129D; MULTANI
5740 0x1129E, // 1129E ; UNKNOWN
5741 0x1129F, // 1129F..112A9; MULTANI
5742 0x112AA, // 112AA..112AF; UNKNOWN
5743 0x112B0, // 112B0..112EA; KHUDAWADI
5744 0x112EB, // 112EB..112EF; UNKNOWN
5745 0x112F0, // 112F0..112F9; KHUDAWADI
5746 0x112FA, // 112FA..112FF; UNKNOWN
5747 0x11300, // 11300..11303; GRANTHA
5748 0x11304, // 11304 ; UNKNOWN
5749 0x11305, // 11305..1130C; GRANTHA
5750 0x1130D, // 1130D..1130E; UNKNOWN
5751 0x1130F, // 1130F..11310; GRANTHA
5752 0x11311, // 11311..11312; UNKNOWN
5756 0x11331, // 11331 ; UNKNOWN
5757 0x11332, // 11332..11333; GRANTHA
5758 0x11334, // 11334 ; UNKNOWN
5759 0x11335, // 11335..11339; GRANTHA
5760 0x1133A, // 1133A..1133B; UNKNOWN
5761 0x1133C, // 1133C..11344; GRANTHA
5762 0x11345, // 11345..11346; UNKNOWN
5763 0x11347, // 11347..11348; GRANTHA
5764 0x11349, // 11349..1134A; UNKNOWN
5765 0x1134B, // 1134B..1134D; GRANTHA
5766 0x1134E, // 1134E..1134F; UNKNOWN
5767 0x11350, // 11350 ; GRANTHA
5768 0x11351, // 11351..11356; UNKNOWN
5769 0x11357, // 11357 ; GRANTHA
5770 0x11358, // 11358..1135C; UNKNOWN
5771 0x1135D, // 1135D..11363; GRANTHA
5772 0x11364, // 11364..11365; UNKNOWN
5773 0x11366, // 11366..1136C; GRANTHA
5774 0x1136D, // 1136D..1136F; UNKNOWN
5775 0x11370, // 11370..11374; GRANTHA
5776 0x11375, // 11375..113FF; UNKNOWN
5777 0x11400, // 11400..11459; NEWA
5778 0x1145A, // 1145A ; UNKNOWN
5779 0x1145B, // 1145B ; NEWA
5780 0x1145C, // 1145C ; UNKNOWN
5781 0x1145D, // 1145D ; NEWA
5782 0x1145E, // 1145E..1147F; UNKNOWN
5783 0x11480, // 11480..114C7; TIRHUTA
5784 0x114C8, // 114C8..114CF; UNKNOWN
5785 0x114D0, // 114D0..114D9; TIRHUTA
5786 0x114DA, // 114DA..1157F; UNKNOWN
5787 0x11580, // 11580..115B5; SIDDHAM
5788 0x115B6, // 115B6..115B7; UNKNOWN
5789 0x115B8, // 115B8..115DD; SIDDHAM
5790 0x115DE, // 115DE..115FF; UNKNOWN
5791 0x11600, // 11600..11644; MODI
5792 0x11645, // 11645..1164F; UNKNOWN
5793 0x11650, // 11650..11659; MODI
5794 0x1165A, // 1165A..1165F; UNKNOWN
5795 0x11660, // 11660..1166C; MONGOLIAN
5796 0X1166D, // 1166D..1167F; UNKNOWN
5797 0x11680, // 11680..116B7; TAKRI
5798 0x116B8, // 116B8..116BF; UNKNOWN
5799 0x116C0, // 116C0..116C9; TAKRI
5800 0x116CA, // 116CA..116FF; UNKNOWN
5801 0x11700, // 11700..11719; AHOM
5802 0x1171A, // 1171A..1171C; UNKNOWN
5803 0x1171D, // 1171D..1172B; AHOM
5804 0x1172C, // 1172C..1172F; UNKNOWN
5805 0x11730, // 11730..1173F; AHOM
5806 0x11740, // 11740..1189F; UNKNOWN
5807 0x118A0, // 118A0..118F2; WARANG_CITI
5808 0x118F3, // 118F3..118FE; UNKNOWN
5809 0x118FF, // 118FF ; WARANG_CITI
5810 0x11900, // 11900..119FF; UNKNOWN
5811 0x11A00, // 11A00..11A47; ZANABAZAR_SQUARE
5812 0X11A48, // 11A48..11A4F; UNKNOWN
5813 0x11A50, // 11A50..11A83; SOYOMBO
5814 0x11A84, // 11A84..11A85; UNKNOWN
5815 0x11A86, // 11A86..11A9C; SOYOMBO
5816 0x11A9D, // 11A9D ; UNKNOWN
5817 0x11A9E, // 11A9E..11AA2; SOYOMBO
5818 0x11AA3, // 11AA3..11ABF; UNKNOWN
5819 0x11AC0, // 11AC0..11AF8; PAU_CIN_HAU
5820 0x11AF9, // 11AF9..11BFF; UNKNOWN
5821 0x11C00, // 11C00..11C08; BHAIKSUKI
5822 0x11C09, // 11C09 ; UNKNOWN
5823 0x11C0A, // 11C0A..11C36; BHAIKSUKI
5824 0x11C37, // 11C37 ; UNKNOWN
5825 0x11C38, // 11C38..11C45; BHAIKSUKI
5826 0x11C46, // 11C46..11C49; UNKNOWN
5827 0x11C50, // 11C50..11C6C; BHAIKSUKI
5828 0x11C6D, // 11C6D..11C6F; UNKNOWN
5829 0x11C70, // 11C70..11C8F; MARCHEN
5830 0x11C90, // 11C90..11C91; UNKNOWN
5831 0x11C92, // 11C92..11CA7; MARCHEN
5832 0x11CA8, // 11CA8 ; UNKNOWN
5833 0x11CA9, // 11CA9..11CB6; MARCHEN
5834 0x11CB7, // 11CB7..11CFF; UNKNOWN
5835 0x11D00, // 11D00..11D06; MASARAM_GONDI
5836 0x11D07, // 11D07 ; UNKNOWN
5837 0x11D08, // 11D08..11D09; MASARAM_GONDI
5838 0x11D0A, // 11D0A ; UNKNOWN
5839 0x11D0B, // 11D0B..11D36; MASARAM_GONDI
5840 0x11D37, // 11D37..11D39; UNKNOWN
5841 0x11D3A, // 11D3A ; MASARAM_GONDI
5842 0x11D3B, // 11D3B ; UNKNOWN
5843 0x11D3C, // 11D3C..11D3D; MASARAM_GONDI
5844 0x11D3E, // 11D3E ; UNKNOWN
5845 0x11D3F, // 11D3F..11D47; MASARAM_GONDI
5846 0x11D48, // 11D48..11D49, UNKNOWN
5847 0x11D50, // 11D50..11D59; MASARAM_GONDI
5848 0x11D5A, // 11D5A..1AFFF; UNKNOWN
5849 0x12000, // 12000..12399; CUNEIFORM
5850 0x1239A, // 1239A..123FF; UNKNOWN
5851 0x12400, // 12400..1246E; CUNEIFORM
5852 0x1246F, // 1246F ; UNKNOWN
5853 0x12470, // 12470..12474; CUNEIFORM
5854 0x12475, // 12475..1247F; UNKNOWN
5855 0x12480, // 12480..12543; CUNEIFORM
5856 0x12544, // 12544..12FFF; UNKNOWN
5857 0x13000, // 13000..1342E; EGYPTIAN_HIEROGLYPHS
5858 0x1342F, // 1342F..143FF; UNKNOWN
5859 0x14400, // 14400..14646; ANATOLIAN_HIEROGLYPHS
5860 0x14647, // 14647..167FF; UNKNOWN
5861 0x16800, // 16800..16A38; BAMUM
5862 0x16A39, // 16A39..16A3F; UNKNOWN
5863 0x16A40, // 16A40..16A5E; MRO
5864 0x16A5F, // 16A5F ; UNKNOWN
5865 0x16A60, // 16A60..16A69; MRO
5866 0x16A6A, // 16A6A..16A6D; UNKNOWN
5867 0x16A6E, // 16A6E..16A6F; MRO
5868 0x16A70, // 16A70..16ACF; UNKNOWN
5869 0x16AD0, // 16AD0..16AED; BASSA_VAH
5870 0x16AEE, // 16AEE..16AEF; UNKNOWN
5871 0x16AF0, // 16AF0..16AF5; BASSA_VAH
5872 0x16AF6, // 16AF6..16AFF; UNKNOWN
5873 0x16B00, // 16B00..16B45; PAHAWH_HMONG
5874 0x16B46, // 16B46..16B4F; UNKNOWN
5875 0x16B50, // 16B50..16B59; PAHAWH_HMONG
5876 0x16B5A, // 16B5A ; UNKNOWN
5877 0x16B5B, // 16B5B..16B61; PAHAWH_HMONG
5878 0x16B62, // 16B62 ; UNKNOWN
5879 0x16B63, // 16B63..16B77; PAHAWH_HMONG
5880 0x16B78, // 16B78..16B7C; UNKNOWN
5881 0x16B7D, // 16B7D..16B8F; PAHAWH_HMONG
5882 0x16B90, // 16B90..16EFF; UNKNOWN
5883 0x16F00, // 16F00..16F44; MIAO
5884 0x16F45, // 16F45..16F4F; UNKNOWN
5885 0x16F50, // 16F50..16F7E; MIAO
5886 0x16F7F, // 16F7F..16F8E; UNKNOWN
5887 0x16F8F, // 16F8F..16F9F; MIAO
5888 0x16FA0, // 16FA0..16FDF; UNKNOWN
5889 0x16FE0, // 16FE0 ; TANGUT
5890 0x16FE1, // 16FE1 ; NUSHU
5891 0x16FE2, // 16FE2..16FFF; UNKNOWN
5892 0x17000, // 17000..187EC; TANGUT
5893 0x187ED, // 187ED..187FF; UNKNOWN
5894 0x18800, // 18800..18AF2; TANGUT
5895 0x18AF3, // 18AF3..1AFFF; UNKNOWN
5896 0x1B000, // 1B000 ; KATAKANA
5897 0x1B001, // 1B001..1B11E; HIRAGANA
5898 0x1B11F, // 1B11F..1B16F; UNKNOWN
5899 0x1B170, // 1B170..1B2FB; NUSHU
5900 0x1B2FC, // 1B2FC..1BBFF; UNKNOWN
5901 0x1BC00, // 1BC00..1BC6A; DUPLOYAN
5902 0x1BC6B, // 1BC6B..1BC6F; UNKNOWN
5903 0x1BC70, // 1BC70..1BC7C; DUPLOYAN
5904 0x1BC7D, // 1BC7D..1BC7F; UNKNOWN
5905 0x1BC80, // 1BC80..1BC88; DUPLOYAN
5906 0x1BC89, // 1BC89..1BC8F; UNKNOWN
5907 0x1BC90, // 1BC90..1BC99; DUPLOYAN
5908 0x1BC9A, // 1BC9A..1BC9B; UNKNOWN
5909 0x1BC9C, // 1BC9C..1BC9F; DUPLOYAN
5910 0x1BCA0, // 1BCA0..1BCA3; COMMON
5911 0x1BCA4, // 1BCA4..1CFFF; UNKNOWN
5912 0x1D000, // 1D000..1D0F5; COMMON
5913 0x1D0F6, // 1D0F6..1D0FF; UNKNOWN
5914 0x1D100, // 1D100..1D126; COMMON
5915 0x1D127, // 1D127..1D128; UNKNOWN
5916 0x1D129, // 1D129..1D166; COMMON
5917 0x1D167, // 1D167..1D169; INHERITED
5918 0x1D16A, // 1D16A..1D17A; COMMON
5919 0x1D17B, // 1D17B..1D182; INHERITED
5920 0x1D183, // 1D183..1D184; COMMON
5958 0x1D51E, // 1D51E..1D539; COMMON
5959 0x1D53A, // 1D53A ; UNKNOWN
5960 0x1D53B, // 1D53B..1D53E; COMMON
5961 0x1D53F, // 1D53F ; UNKNOWN
5962 0x1D540, // 1D540..1D544; COMMON
5963 0x1D545, // 1D545 ; UNKNOWN
5964 0x1D546, // 1D546 ; COMMON
5965 0x1D547, // 1D547..1D549; UNKNOWN
5966 0x1D54A, // 1D54A..1D550; COMMON
5967 0x1D551, // 1D551 ; UNKNOWN
5968 0x1D552, // 1D552..1D6A5; COMMON
5969 0x1D6A6, // 1D6A6..1D6A7; UNKNOWN
5970 0x1D6A8, // 1D6A8..1D7CB; COMMON
5971 0x1D7CC, // 1D7CC..1D7CD; UNKNOWN
5972 0x1D7CE, // 1D7CE..1D7FF; COMMON
5973 0x1D800, // 1D800..1DA8B; SIGNWRITING
5974 0x1DA8C, // 1DA8C..1DA9A; UNKNOWN
5975 0x1DA9B, // 1DA9B..1DA9F; SIGNWRITING
5976 0x1DAA0, // 1DAA0 ; UNKNOWN
5977 0x1DAA1, // 1DAA1..1DAAF; SIGNWRITING
5978 0x1DAB0, // 1DAB0..1DFFF; UNKNOWN
5979 0x1E000, // 1E000..1E006; GLAGOLITIC
5980 0x1E007, // 1E007 ; UNKNOWN
5981 0x1E008, // 1E008..1E018; GLAGOLITIC
5982 0x1E019, // 1E019..1E01A; UNKNOWN
5983 0x1E01B, // 1E01B..1E021; GLAGOLITIC
5984 0x1E022, // 1E022 ; UNKNOWN
5985 0x1E023, // 1E023..1E024; GLAGOLITIC
5986 0x1E025, // 1E025 ; UNKNOWN
5987 0x1E026, // 1E026..1E02A; GLAGOLITIC
5988 0x1E02B, // 1E02B..1E7FF; UNKNOWN
5989 0x1E800, // 1E800..1E8C4; MENDE_KIKAKUI
5990 0x1E8C5, // 1E8C5..1E8C6; UNKNOWN
5991 0x1E8C7, // 1E8C7..1E8D6; MENDE_KIKAKUI
5992 0x1E8D7, // 1E8D7..1E8FF; UNKNOWN
5993 0x1E900, // 1E900..1E94A; ADLAM
5994 0x1E94B, // 1E94B..1E94F; UNKNOWN
5995 0x1E950, // 1E950..1E959; ADLAM
5996 0x1E95A, // 1E95A..1E95D; UNKNOWN
5997 0x1E95E, // 1E95E..1E95F; ADLAM
5998 0x1E960, // 1E960..1EDFF; UNKNOWN
5999 0x1EE00, // 1EE00..1EE03; ARABIC
6000 0x1EE04, // 1EE04 ; UNKNOWN
6001 0x1EE05, // 1EE05..1EE1F; ARABIC
6002 0x1EE20, // 1EE20 ; UNKNOWN
6003 0x1EE21, // 1EE21..1EE22; ARABIC
6004 0x1EE23, // 1EE23 ; UNKNOWN
6005 0x1EE24, // 1EE24 ; ARABIC
6006 0x1EE25, // 1EE25..1EE26; UNKNOWN
6007 0x1EE27, // 1EE27 ; ARABIC
6008 0x1EE28, // 1EE28 ; UNKNOWN
6009 0x1EE29, // 1EE29..1EE32; ARABIC
6010 0x1EE33, // 1EE33 ; UNKNOWN
6011 0x1EE34, // 1EE34..1EE37; ARABIC
6012 0x1EE38, // 1EE38 ; UNKNOWN
6013 0x1EE39, // 1EE39 ; ARABIC
6014 0x1EE3A, // 1EE3A ; UNKNOWN
6015 0x1EE3B, // 1EE3B ; ARABIC
6016 0x1EE3C, // 1EE3C..1EE41; UNKNOWN
6017 0x1EE42, // 1EE42 ; ARABIC
6018 0x1EE43, // 1EE43..1EE46; UNKNOWN
6065 0x1EEF0, // 1EEF0..1EEF1; ARABIC
6066 0x1EEF2, // 1EEF2..1EFFF; UNKNOWN
6067 0x1F000, // 1F000..1F02B; COMMON
6068 0x1F02C, // 1F02C..1F02F; UNKNOWN
6069 0x1F030, // 1F030..1F093; COMMON
6070 0x1F094, // 1F094..1F09F; UNKNOWN
6071 0x1F0A0, // 1F0A0..1F0AE; COMMON
6072 0x1F0AF, // 1F0AF..1F0B0; UNKNOWN
6073 0x1F0B1, // 1F0B1..1F0BF; COMMON
6074 0x1F0C0, // 1F0C0 ; UNKNOWN
6075 0x1F0C1, // 1F0C1..1F0CF; COMMON
6076 0x1F0D0, // 1F0D0 ; UNKNOWN
6077 0x1F0D1, // 1F0D1..1F0F5; COMMON
6078 0x1F0F6, // 1F0F6..1F0FF; UNKNOWN
6079 0x1F100, // 1F100..1F10C; COMMON
6080 0x1F10D, // 1F10D..1F10F; UNKNOWN
6081 0x1F110, // 1F110..1F12E; COMMON
6082 0x1F12F, // 1F12F ; UNKNOWN
6083 0x1F130, // 1F130..1F16B; COMMON
6084 0x1F16C, // 1F16C..1F16F; UNKNOWN
6085 0x1F170, // 1F170..1F1AC; COMMON
6086 0x1F1AD, // 1F1AD..1F1E5; UNKNOWN
6087 0x1F1E6, // 1F1E6..1F1FF; COMMON
6088 0x1F200, // 1F200 ; HIRAGANA
6089 0x1F201, // 1F201..1F202; COMMON
6090 0x1F203, // 1F203..1F20F; UNKNOWN
6091 0x1F210, // 1F210..1F23B; COMMON
6092 0x1F23C, // 1F23C..1F23F; UNKNOWN
6093 0x1F240, // 1F240..1F248; COMMON
6094 0x1F249, // 1F249..1F24F; UNKNOWN
6095 0x1F250, // 1F250..1F251; COMMON
6096 0x1F252, // 1F252..1F25F; UNKNOWN
6097 0x1F260, // 1F260..1F265; COMMON
6098 0x1F266, // 1F266..1F2FF; UNKNOWN
6099 0x1F300, // 1F300..1F6D4; COMMON
6100 0x1F6D5, // 1F6D5..1F6DF; UNKNOWN
6101 0x1F6E0, // 1F6E0..1F6EC; COMMON
6102 0x1F6ED, // 1F6ED..1F6EF; UNKNOWN
6103 0x1F6F0, // 1F6F0..1F6F8; COMMON
6104 0x1F6F9, // 1F6F9..1F6FF; UNKNOWN
6105 0x1F700, // 1F700..1F773; COMMON
6106 0x1F774, // 1F774..1F77F; UNKNOWN
6107 0x1F780, // 1F780..1F7D4; COMMON
6108 0x1F7D5, // 1F7D5..1F7FF; UNKNOWN
6109 0x1F800, // 1F800..1F80B; COMMON
6110 0x1F80C, // 1F80C..1F80F; UNKNOWN
6111 0x1F810, // 1F810..1F847; COMMON
6112 0x1F848, // 1F848..1F84F; UNKNOWN
6113 0x1F850, // 1F850..1F859; COMMON
6114 0x1F85A, // 1F85A..1F85F; UNKNOWN
6115 0x1F860, // 1F860..1F887; COMMON
6116 0x1F888, // 1F888..1F88F; UNKNOWN
6117 0x1F890, // 1F890..1F8AD; COMMON
6118 0x1F8AE, // 1F8AE..1F8FF; UNKNOWN
6119 0x1F900, // 1F900..1F90B; COMMON
6120 0x1F90C, // 1F90C..1F90F; UNKNOWN
6121 0x1F910, // 1F910..1F93E; COMMON
6122 0x1F93F, // 1F93F ; UNKNOWN
6123 0x1F940, // 1F940..1F94C; COMMON
6124 0x1F94D, // 1F94D..1F94F; UNKNOWN
6125 0x1F950, // 1F950..1F96B; COMMON
6126 0x1F96C, // 1F96C..1F97F; UNKNOWN
6127 0x1F980, // 1F980..1F997; COMMON
6128 0x1F998, // 1F998..1F9BF; UNKNOWN
6129 0x1F9C0, // 1F9C0 ; COMMON
6130 0x1F9C1, // 1F9C1..1F9CF; UNKNOWN
6131 0x1F9D0, // 1F9D0..1F9E6; COMMON
6132 0x1F9E7, // 1F9E7..1FFFF; UNKNOWN
6133 0x20000, // 20000..2A6D6; HAN
6134 0x2A6D7, // 2A6D7..2A6FF; UNKNOWN
6135 0x2A700, // 2A700..2B734; HAN
6136 0x2B735, // 2B735..2B73F; UNKNOWN
6137 0x2B740, // 2B740..2B81D; HAN
6138 0x2B81E, // 2B81E..2B81F; UNKNOWN
6139 0x2B820, // 2B820..2CEA1; HAN
6140 0x2CEA2, // 2CEA2..2CEAF; UNKNOWN
6141 0x2CEB0, // 2CEB0..2EBE0; HAN
6142 0x2EBE1, // 2EBE1..2F7FF; UNKNOWN
6143 0x2F800, // 2F800..2FA1D; HAN
6144 0x2FA1E, // 2FA1E..E0000; UNKNOWN
6145 0xE0001, // E0001 ; COMMON
6146 0xE0002, // E0002..E001F; UNKNOWN
6147 0xE0020, // E0020..E007F; COMMON
6148 0xE0080, // E0080..E00FF; UNKNOWN
6149 0xE0100, // E0100..E01EF; INHERITED
6150 0xE01F0 // E01F0..10FFFF; UNKNOWN
6151 };
6152
6153 private static final UnicodeScript[] scripts = {
6154 COMMON, // 0000..0040
6155 LATIN, // 0041..005A
6156 COMMON, // 005B..0060
6157 LATIN, // 0061..007A
6158 COMMON, // 007B..00A9
6159 LATIN, // 00AA
6160 COMMON, // 00AB..00B9
6161 LATIN, // 00BA
6162 COMMON, // 00BB..00BF
6201 ARMENIAN, // 0559..055F
6202 UNKNOWN, // 0560
6203 ARMENIAN, // 0561..0587
6204 UNKNOWN, // 0588
6205 COMMON, // 0589
6206 ARMENIAN, // 058A
6207 UNKNOWN, // 058B..058C
6208 ARMENIAN, // 058D..058F
6209 UNKNOWN, // 0590
6210 HEBREW, // 0591..05C7
6211 UNKNOWN, // 05C8..05CF
6212 HEBREW, // 05D0..05EA
6213 UNKNOWN, // 05EB..05EF
6214 HEBREW, // 05F0..05F4
6215 UNKNOWN, // 05F5..05FF
6216 ARABIC, // 0600..0604
6217 COMMON, // 0605
6218 ARABIC, // 0606..060B
6219 COMMON, // 060C
6220 ARABIC, // 060D..061A
6221 COMMON, // 061B
6222 ARABIC, // 061C
6223 UNKNOWN, // 061D
6224 ARABIC, // 061E
6225 COMMON, // 061F
6226 ARABIC, // 0620..063F
6227 COMMON, // 0640
6228 ARABIC, // 0641..064A
6229 INHERITED, // 064B..0655
6230 ARABIC, // 0656..066F
6231 INHERITED, // 0670
6232 ARABIC, // 0671..06DC
6233 COMMON, // 06DD
6234 ARABIC, // 06DE..06FF
6235 SYRIAC, // 0700..070D
6236 UNKNOWN, // 070E
6237 SYRIAC, // 070F..074A
6238 UNKNOWN, // 074B..074C
6239 SYRIAC, // 074D..074F
6240 ARABIC, // 0750..077F
6241 THAANA, // 0780..07B1
6242 UNKNOWN, // 07B2..07BF
6243 NKO, // 07C0..07FA
6244 UNKNOWN, // 07FB..07FF
6245 SAMARITAN, // 0800..082D
6246 UNKNOWN, // 082E..082F
6247 SAMARITAN, // 0830..083E
6248 UNKNOWN, // 083F
6249 MANDAIC, // 0840..085B
6250 UNKNOWN, // 085C..085D
6251 MANDAIC, // 085E
6252 UNKNOWN, // 085F
6253 SYRIAC, // 0860..086A
6254 UNKNOWN, // 086B..089F
6255 ARABIC, // 08A0..08B4
6256 UNKNOWN, // 08B5
6257 ARABIC, // 08B6..08BD
6258 UNKNOWN, // 08BE..08D3
6259 ARABIC, // 08D4..08E1
6260 COMMON, // 08E2
6261 ARABIC, // 08E3..08FF
6262 DEVANAGARI, // 0900..0950
6263 INHERITED, // 0951..0952
6264 DEVANAGARI, // 0953..0963
6265 COMMON, // 0964..0965
6266 DEVANAGARI, // 0966..097F
6267 BENGALI, // 0980..0983
6268 UNKNOWN, // 0984
6269 BENGALI, // 0985..098C
6270 UNKNOWN, // 098D..098E
6271 BENGALI, // 098F..0990
6272 UNKNOWN, // 0991..0992
6273 BENGALI, // 0993..09A8
6274 UNKNOWN, // 09A9
6275 BENGALI, // 09AA..09B0
6276 UNKNOWN, // 09B1
6277 BENGALI, // 09B2
6278 UNKNOWN, // 09B3..09B5
6279 BENGALI, // 09B6..09B9
6280 UNKNOWN, // 09BA..09BB
6281 BENGALI, // 09BC..09C4
6282 UNKNOWN, // 09C5..09C6
6283 BENGALI, // 09C7..09C8
6284 UNKNOWN, // 09C9..09CA
6285 BENGALI, // 09CB..09CE
6286 UNKNOWN, // 09CF..09D6
6287 BENGALI, // 09D7
6288 UNKNOWN, // 09D8..09DB
6289 BENGALI, // 09DC..09DD
6290 UNKNOWN, // 09DE
6291 BENGALI, // 09DF..09E3
6292 UNKNOWN, // 09E4..09E5
6293 BENGALI, // 09E6..09FD
6294 UNKNOWN, // 09FE..0A00
6295 GURMUKHI, // 0A01..0A03
6296 UNKNOWN, // 0A04
6297 GURMUKHI, // 0A05..0A0A
6298 UNKNOWN, // 0A0B..0A0E
6299 GURMUKHI, // 0A0F..0A10
6300 UNKNOWN, // 0A11..0A12
6301 GURMUKHI, // 0A13..0A28
6302 UNKNOWN, // 0A29
6303 GURMUKHI, // 0A2A..0A30
6304 UNKNOWN, // 0A31
6305 GURMUKHI, // 0A32..0A33
6306 UNKNOWN, // 0A34
6307 GURMUKHI, // 0A35..0A36
6308 UNKNOWN, // 0A37
6309 GURMUKHI, // 0A38..0A39
6310 UNKNOWN, // 0A3A..0A3B
6311 GURMUKHI, // 0A3C
6312 UNKNOWN, // 0A3D
6313 GURMUKHI, // 0A3E..0A42
6314 UNKNOWN, // 0A43..0A46
6333 GUJARATI, // 0A93..0AA8
6334 UNKNOWN, // 0AA9
6335 GUJARATI, // 0AAA..0AB0
6336 UNKNOWN, // 0AB1
6337 GUJARATI, // 0AB2..0AB3
6338 UNKNOWN, // 0AB4
6339 GUJARATI, // 0AB5..0AB9
6340 UNKNOWN, // 0ABA..0ABB
6341 GUJARATI, // 0ABC..0AC5
6342 UNKNOWN, // 0AC6
6343 GUJARATI, // 0AC7..0AC9
6344 UNKNOWN, // 0ACA
6345 GUJARATI, // 0ACB..0ACD
6346 UNKNOWN, // 0ACE..0ACF
6347 GUJARATI, // 0AD0
6348 UNKNOWN, // 0AD1..0ADF
6349 GUJARATI, // 0AE0..0AE3
6350 UNKNOWN, // 0AE4..0AE5
6351 GUJARATI, // 0AE6..0AF1
6352 UNKNOWN, // 0AF2..0AF8
6353 GUJARATI, // 0AF9..0AFF
6354 UNKNOWN, // 0B00
6355 ORIYA, // 0B01..0B03
6356 UNKNOWN, // 0B04
6357 ORIYA, // 0B05..0B0C
6358 UNKNOWN, // 0B0D..0B0E
6359 ORIYA, // 0B0F..0B10
6360 UNKNOWN, // 0B11..0B12
6361 ORIYA, // 0B13..0B28
6362 UNKNOWN, // 0B29
6363 ORIYA, // 0B2A..0B30
6364 UNKNOWN, // 0B31
6365 ORIYA, // 0B32..0B33
6366 UNKNOWN, // 0B34
6367 ORIYA, // 0B35..0B39
6368 UNKNOWN, // 0B3A..0B3B
6369 ORIYA, // 0B3C..0B44
6370 UNKNOWN, // 0B45..0B46
6371 ORIYA, // 0B47..0B48
6372 UNKNOWN, // 0B49..0B4A
6373 ORIYA, // 0B4B..0B4D
6374 UNKNOWN, // 0B4E..0B55
6420 UNKNOWN, // 0C11
6421 TELUGU, // 0C12..0C28
6422 UNKNOWN, // 0C29
6423 TELUGU, // 0C2A..0C39
6424 UNKNOWN, // 0C3A..0C3C
6425 TELUGU, // 0C3D..0C44
6426 UNKNOWN, // 0C45
6427 TELUGU, // 0C46..0C48
6428 UNKNOWN, // 0C49
6429 TELUGU, // 0C4A..0C4D
6430 UNKNOWN, // 0C4E..0C54
6431 TELUGU, // 0C55..0C56
6432 UNKNOWN, // 0C57
6433 TELUGU, // 0C58..0C5A
6434 UNKNOWN, // 0C5B..0C5F
6435 TELUGU, // 0C60..0C63
6436 UNKNOWN, // 0C64..0C65
6437 TELUGU, // 0C66..0C6F
6438 UNKNOWN, // 0C70..0C77
6439 TELUGU, // 0C78..0C7F
6440 KANNADA, // 0C80..0C83
6441 UNKNOWN, // 0C84
6442 KANNADA, // 0C85..0C8C
6443 UNKNOWN, // 0C8D
6444 KANNADA, // 0C8E..0C90
6445 UNKNOWN, // 0C91
6446 KANNADA, // 0C92..0CA8
6447 UNKNOWN, // 0CA9
6448 KANNADA, // 0CAA..0CB3
6449 UNKNOWN, // 0CB4
6450 KANNADA, // 0CB5..0CB9
6451 UNKNOWN, // 0CBA..0CBB
6452 KANNADA, // 0CBC..0CC4
6453 UNKNOWN, // 0CC5
6454 KANNADA, // 0CC6..0CC8
6455 UNKNOWN, // 0CC9
6456 KANNADA, // 0CCA..0CCD
6457 UNKNOWN, // 0CCE..0CD4
6458 KANNADA, // 0CD5..0CD6
6459 UNKNOWN, // 0CD7..0CDD
6460 KANNADA, // 0CDE
6461 UNKNOWN, // 0CDF
6462 KANNADA, // 0CE0..0CE3
6463 UNKNOWN, // 0CE4..0CE5
6464 KANNADA, // 0CE6..0CEF
6465 UNKNOWN, // 0CF0
6466 KANNADA, // 0CF1..0CF2
6467 UNKNOWN, // 0CF3..0CFF
6468 MALAYALAM, // 0D00..0D03
6469 UNKNOWN, // 0D04
6470 MALAYALAM, // 0D05..0D0C
6471 UNKNOWN, // 0D0D
6472 MALAYALAM, // 0D0E..0D10
6473 UNKNOWN, // 0D11
6474 MALAYALAM, // 0D12..0D44
6475 UNKNOWN, // 0D45
6476 MALAYALAM, // 0D46..0D48
6477 UNKNOWN, // 0D49
6478 MALAYALAM, // 0D4A..0D4F
6479 UNKNOWN, // 0D50..0D53
6480 MALAYALAM, // 0D54..0D63
6481 UNKNOWN, // 0D64..0D65
6482 MALAYALAM, // 0D66..0D7F
6483 UNKNOWN, // 0D80..0D81
6484 SINHALA, // 0D82..0D83
6485 UNKNOWN, // 0D84
6486 SINHALA, // 0D85..0D96
6487 UNKNOWN, // 0D97..0D99
6488 SINHALA, // 0D9A..0DB1
6489 UNKNOWN, // 0DB2
6490 SINHALA, // 0DB3..0DBB
6491 UNKNOWN, // 0DBC
6492 SINHALA, // 0DBD
6493 UNKNOWN, // 0DBE..0DBF
6494 SINHALA, // 0DC0..0DC6
6495 UNKNOWN, // 0DC7..0DC9
6496 SINHALA, // 0DCA
6497 UNKNOWN, // 0DCB..0DCE
6498 SINHALA, // 0DCF..0DD4
6499 UNKNOWN, // 0DD5
6500 SINHALA, // 0DD6
6501 UNKNOWN, // 0DD7
6502 SINHALA, // 0DD8..0DDF
6686 TAI_THAM, // 1A90..1A99
6687 UNKNOWN, // 1A9A..1A9F
6688 TAI_THAM, // 1AA0..1AAD
6689 UNKNOWN, // 1AAE..1AAF
6690 INHERITED, // 1AB0..1ABE
6691 UNKNOWN, // 1ABF..1AFF
6692 BALINESE, // 1B00..1B4B
6693 UNKNOWN, // 1B4C..1B4F
6694 BALINESE, // 1B50..1B7C
6695 UNKNOWN, // 1B7D..1B7F
6696 SUNDANESE, // 1B80..1BBF
6697 BATAK, // 1BC0..1BF3
6698 UNKNOWN, // 1BF4..1BFB
6699 BATAK, // 1BFC..1BFF
6700 LEPCHA, // 1C00..1C37
6701 UNKNOWN, // 1C38..1C3A
6702 LEPCHA, // 1C3B..1C49
6703 UNKNOWN, // 1C4A..1C4C
6704 LEPCHA, // 1C4D..1C4F
6705 OL_CHIKI, // 1C50..1C7F
6706 CYRILLIC, // 1C80..1C88
6707 UNKNOWN, // 1C89..1CBF
6708 SUNDANESE, // 1CC0..1CC7
6709 UNKNOWN, // 1CC8..1CCF
6710 INHERITED, // 1CD0..1CD2
6711 COMMON, // 1CD3
6712 INHERITED, // 1CD4..1CE0
6713 COMMON, // 1CE1
6714 INHERITED, // 1CE2..1CE8
6715 COMMON, // 1CE9..1CEC
6716 INHERITED, // 1CED
6717 COMMON, // 1CEE..1CF3
6718 INHERITED, // 1CF4
6719 COMMON, // 1CF5..1CF7
6720 INHERITED, // 1CF8..1CF9
6721 UNKNOWN, // 1CFA..1CFF
6722 LATIN, // 1D00..1D25
6723 GREEK, // 1D26..1D2A
6724 CYRILLIC, // 1D2B
6725 LATIN, // 1D2C..1D5C
6726 GREEK, // 1D5D..1D61
6727 LATIN, // 1D62..1D65
6728 GREEK, // 1D66..1D6A
6729 LATIN, // 1D6B..1D77
6730 CYRILLIC, // 1D78
6731 LATIN, // 1D79..1DBE
6732 GREEK, // 1DBF
6733 INHERITED, // 1DC0..1DF9
6734 UNKNOWN, // 1DFA
6735 INHERITED, // 1DFB..1DFF
6736 LATIN, // 1E00..1EFF
6737 GREEK, // 1F00..1F15
6738 UNKNOWN, // 1F16..1F17
6739 GREEK, // 1F18..1F1D
6740 UNKNOWN, // 1F1E..1F1F
6741 GREEK, // 1F20..1F45
6742 UNKNOWN, // 1F46..1F47
6743 GREEK, // 1F48..1F4D
6744 UNKNOWN, // 1F4E..1F4F
6745 GREEK, // 1F50..1F57
6746 UNKNOWN, // 1F58
6747 GREEK, // 1F59
6748 UNKNOWN, // 1F5A
6749 GREEK, // 1F5B
6750 UNKNOWN, // 1F5C
6751 GREEK, // 1F5D
6752 UNKNOWN, // 1F5E
6753 GREEK, // 1F5F..1F7D
6754 UNKNOWN, // 1F7E..1F7F
6755 GREEK, // 1F80..1FB4
6762 UNKNOWN, // 1FDC
6763 GREEK, // 1FDD..1FEF
6764 UNKNOWN, // 1FF0..1FF1
6765 GREEK, // 1FF2..1FF4
6766 UNKNOWN, // 1FF5
6767 GREEK, // 1FF6..1FFE
6768 UNKNOWN, // 1FFF
6769 COMMON, // 2000..200B
6770 INHERITED, // 200C..200D
6771 COMMON, // 200E..2064
6772 UNKNOWN, // 2065
6773 COMMON, // 2066..2070
6774 LATIN, // 2071
6775 UNKNOWN, // 2072..2073
6776 COMMON, // 2074..207E
6777 LATIN, // 207F
6778 COMMON, // 2080..208E
6779 UNKNOWN, // 208F
6780 LATIN, // 2090..209C
6781 UNKNOWN, // 209D..209F
6782 COMMON, // 20A0..20BF
6783 UNKNOWN, // 20C0..20CF
6784 INHERITED, // 20D0..20F0
6785 UNKNOWN, // 20F1..20FF
6786 COMMON, // 2100..2125
6787 GREEK, // 2126
6788 COMMON, // 2127..2129
6789 LATIN, // 212A..212B
6790 COMMON, // 212C..2131
6791 LATIN, // 2132
6792 COMMON, // 2133..214D
6793 LATIN, // 214E
6794 COMMON, // 214F..215F
6795 LATIN, // 2160..2188
6796 COMMON, // 2189..218B
6797 UNKNOWN, // 218C..218F
6798 COMMON, // 2190..2426
6799 UNKNOWN, // 2427..243F
6800 COMMON, // 2440..244A
6801 UNKNOWN, // 244B..245F
6802 COMMON, // 2460..27FF
6803 BRAILLE, // 2800..28FF
6804 COMMON, // 2900..2B73
6805 UNKNOWN, // 2B74..2B75
6806 COMMON, // 2B76..2B95
6807 UNKNOWN, // 2B96..2B97
6808 COMMON, // 2B98..2BB9
6809 UNKNOWN, // 2BBA..2BBC
6810 COMMON, // 2BBD..2BC8
6811 UNKNOWN, // 2BC9
6812 COMMON, // 2BCA..2BD2
6813 UNKNOWN, // 2BD3..2BEB
6814 COMMON, // 2BEC..2BEF
6815 UNKNOWN, // 2BF0..2BFF
6816 GLAGOLITIC, // 2C00..2C2E
6817 UNKNOWN, // 2C2F
6818 GLAGOLITIC, // 2C30..2C5E
6819 UNKNOWN, // 2C5F
6820 LATIN, // 2C60..2C7F
6821 COPTIC, // 2C80..2CF3
6822 UNKNOWN, // 2CF4..2CF8
6823 COPTIC, // 2CF9..2CFF
6824 GEORGIAN, // 2D00..2D25
6825 UNKNOWN, // 2D26
6826 GEORGIAN, // 2D27
6827 UNKNOWN, // 2D28..2D2C
6828 GEORGIAN, // 2D2D
6829 UNKNOWN, // 2D2E..2D2F
6830 TIFINAGH, // 2D30..2D67
6831 UNKNOWN, // 2D68..2D6E
6832 TIFINAGH, // 2D6F..2D70
6833 UNKNOWN, // 2D71..2D7E
6834 TIFINAGH, // 2D7F
6835 ETHIOPIC, // 2D80..2D96
6836 UNKNOWN, // 2D97..2D9F
6837 ETHIOPIC, // 2DA0..2DA6
6838 UNKNOWN, // 2DA7
6839 ETHIOPIC, // 2DA8..2DAE
6840 UNKNOWN, // 2DAF
6841 ETHIOPIC, // 2DB0..2DB6
6842 UNKNOWN, // 2DB7
6843 ETHIOPIC, // 2DB8..2DBE
6844 UNKNOWN, // 2DBF
6845 ETHIOPIC, // 2DC0..2DC6
6846 UNKNOWN, // 2DC7
6847 ETHIOPIC, // 2DC8..2DCE
6848 UNKNOWN, // 2DCF
6849 ETHIOPIC, // 2DD0..2DD6
6850 UNKNOWN, // 2DD7
6851 ETHIOPIC, // 2DD8..2DDE
6852 UNKNOWN, // 2DDF
6853 CYRILLIC, // 2DE0..2DFF
6854 COMMON, // 2E00..2E49
6855 UNKNOWN, // 2E50..2E7F
6856 HAN, // 2E80..2E99
6857 UNKNOWN, // 2E9A
6858 HAN, // 2E9B..2EF3
6859 UNKNOWN, // 2EF4..2EFF
6860 HAN, // 2F00..2FD5
6861 UNKNOWN, // 2FD6..2FEF
6862 COMMON, // 2FF0..2FFB
6863 UNKNOWN, // 2FFC..2FFF
6864 COMMON, // 3000..3004
6865 HAN, // 3005
6866 COMMON, // 3006
6867 HAN, // 3007
6868 COMMON, // 3008..3020
6869 HAN, // 3021..3029
6870 INHERITED, // 302A..302D
6871 HANGUL, // 302E..302F
6872 COMMON, // 3030..3037
6873 HAN, // 3038..303B
6874 COMMON, // 303C..303F
6875 UNKNOWN, // 3040
6876 HIRAGANA, // 3041..3096
6877 UNKNOWN, // 3097..3098
6878 INHERITED, // 3099..309A
6879 COMMON, // 309B..309C
6880 HIRAGANA, // 309D..309F
6881 COMMON, // 30A0
6882 KATAKANA, // 30A1..30FA
6883 COMMON, // 30FB..30FC
6884 KATAKANA, // 30FD..30FF
6885 UNKNOWN, // 3100..3104
6886 BOPOMOFO, // 3105..312E
6887 UNKNOWN, // 312F..3130
6888 HANGUL, // 3131..318E
6889 UNKNOWN, // 318F
6890 COMMON, // 3190..319F
6891 BOPOMOFO, // 31A0..31BA
6892 UNKNOWN, // 31BB..31BF
6893 COMMON, // 31C0..31E3
6894 UNKNOWN, // 31E4..31EF
6895 KATAKANA, // 31F0..31FF
6896 HANGUL, // 3200..321E
6897 UNKNOWN, // 321F
6898 COMMON, // 3220..325F
6899 HANGUL, // 3260..327E
6900 COMMON, // 327F..32CF
6901 KATAKANA, // 32D0..32FE
6902 UNKNOWN, // 32FF
6903 KATAKANA, // 3300..3357
6904 COMMON, // 3358..33FF
6905 HAN, // 3400..4DB5
6906 UNKNOWN, // 4DB6..4DBF
6907 COMMON, // 4DC0..4DFF
6908 HAN, // 4E00..9FEA
6909 UNKNOWN, // 9FEB..9FFF
6910 YI, // A000..A48C
6911 UNKNOWN, // A48D..A48F
6912 YI, // A490..A4C6
6913 UNKNOWN, // A4C7..A4CF
6914 LISU, // A4D0..A4FF
6915 VAI, // A500..A62B
6916 UNKNOWN, // A62C..A63F
6917 CYRILLIC, // A640..A69F
6918 BAMUM, // A6A0..A6F7
6919 UNKNOWN, // A6F8..A6FF
6920 COMMON, // A700..A721
6921 LATIN, // A722..A787
6922 COMMON, // A788..A78A
6923 LATIN, // A78B..A7AE
6924 UNKNOWN, // A7AF
6925 LATIN, // A7B0..A7B7
6926 UNKNOWN, // A7B8..A7F6
6927 LATIN, // A7F7..A7FF
6928 SYLOTI_NAGRI, // A800..A82B
6929 UNKNOWN, // A82C..A82F
6930 COMMON, // A830..A839
6931 UNKNOWN, // A83A..A83F
6932 PHAGS_PA, // A840..A877
6933 UNKNOWN, // A878..A87F
6934 SAURASHTRA, // A880..A8C5
6935 UNKNOWN, // A8C6..A8CD
6936 SAURASHTRA, // A8CE..A8D9
6937 UNKNOWN, // A8DA..A8DF
6938 DEVANAGARI, // A8E0..A8FD
6939 UNKNOWN, // A8FE..A8FF
6940 KAYAH_LI, // A900..A92D
6941 COMMON, // A92E
6942 KAYAH_LI, // A92F
6943 REJANG, // A930..A953
6944 UNKNOWN, // A954..A95E
6945 REJANG, // A95F
6946 HANGUL, // A960..A97C
6947 UNKNOWN, // A97D..A97F
6948 JAVANESE, // A980..A9CD
6949 UNKNOWN, // A9CE
6950 COMMON, // A9CF
6951 JAVANESE, // A9D0..A9D9
6952 UNKNOWN, // A9DA..A9DD
6953 JAVANESE, // A9DE..A9DF
6954 MYANMAR, // A9E0..A9FE
6955 UNKNOWN, // A9FF
7066 UNKNOWN, // FFFE..FFFF
7067 LINEAR_B, // 10000..1000B
7068 UNKNOWN, // 1000C
7069 LINEAR_B, // 1000D..10026
7070 UNKNOWN, // 10027
7071 LINEAR_B, // 10028..1003A
7072 UNKNOWN, // 1003B
7073 LINEAR_B, // 1003C..1003D
7074 UNKNOWN, // 1003E
7075 LINEAR_B, // 1003F..1004D
7076 UNKNOWN, // 1004E..1004F
7077 LINEAR_B, // 10050..1005D
7078 UNKNOWN, // 1005E..1007F
7079 LINEAR_B, // 10080..100FA
7080 UNKNOWN, // 100FB..100FF
7081 COMMON, // 10100..10102
7082 UNKNOWN, // 10103..10106
7083 COMMON, // 10107..10133
7084 UNKNOWN, // 10134..10136
7085 COMMON, // 10137..1013F
7086 GREEK, // 10140..1018E
7087 UNKNOWN, // 1018F
7088 COMMON, // 10190..1019B
7089 UNKNOWN, // 1019C..1019F
7090 GREEK, // 101A0
7091 UNKNOWN, // 101A1..101CF
7092 COMMON, // 101D0..101FC
7093 INHERITED, // 101FD
7094 UNKNOWN, // 101FE..1027F
7095 LYCIAN, // 10280..1029C
7096 UNKNOWN, // 1029D..1029F
7097 CARIAN, // 102A0..102D0
7098 UNKNOWN, // 102D1..102DF
7099 INHERITED, // 102E0
7100 COMMON, // 102E1..102FB
7101 UNKNOWN, // 102FC..102FF
7102 OLD_ITALIC, // 10300..10323
7103 UNKNOWN, // 10324..1032C
7104 OLD_ITALIC, // 1032D..1032F
7105 GOTHIC, // 10330..1034A
7106 UNKNOWN, // 1034B..1034F
7107 OLD_PERMIC, // 10350..1037A
7108 UNKNOWN, // 1037B..1037F
7109 UGARITIC, // 10380..1039D
7110 UNKNOWN, // 1039E
7111 UGARITIC, // 1039F
7112 OLD_PERSIAN, // 103A0..103C3
7113 UNKNOWN, // 103C4..103C7
7114 OLD_PERSIAN, // 103C8..103D5
7115 UNKNOWN, // 103D6..103FF
7116 DESERET, // 10400..1044F
7117 SHAVIAN, // 10450..1047F
7118 OSMANYA, // 10480..1049D
7119 UNKNOWN, // 1049E..1049F
7120 OSMANYA, // 104A0..104A9
7121 UNKNOWN, // 104AA..104AF
7122 OSAGE, // 104B0..104D3;
7123 UNKNOWN, // 104D4..104D7;
7124 OSAGE, // 104D8..104FB;
7125 UNKNOWN, // 104FC..104FF;
7126 ELBASAN, // 10500..10527
7127 UNKNOWN, // 10528..1052F
7128 CAUCASIAN_ALBANIAN, // 10530..10563
7129 UNKNOWN, // 10564..1056E
7130 CAUCASIAN_ALBANIAN, // 1056F
7131 UNKNOWN, // 10570..105FF
7132 LINEAR_A, // 10600..10736
7133 UNKNOWN, // 10737..1073F
7134 LINEAR_A, // 10740..10755
7135 UNKNOWN, // 10756..1075F
7136 LINEAR_A, // 10760..10767
7137 UNKNOWN, // 10768..107FF
7138 CYPRIOT, // 10800..10805
7139 UNKNOWN, // 10806..10807
7140 CYPRIOT, // 10808
7141 UNKNOWN, // 10809
7142 CYPRIOT, // 1080A..10835
7143 UNKNOWN, // 10836
7144 CYPRIOT, // 10837..10838
7145 UNKNOWN, // 10839..1083B
7228 KAITHI, // 11080..110C1
7229 UNKNOWN, // 110C2..110CF
7230 SORA_SOMPENG, // 110D0..110E8
7231 UNKNOWN, // 110E9..110EF
7232 SORA_SOMPENG, // 110F0..110F9
7233 UNKNOWN, // 110FA..110FF
7234 CHAKMA, // 11100..11134
7235 UNKNOWN, // 11135
7236 CHAKMA, // 11136..11143
7237 UNKNOWN, // 11144..1114F
7238 MAHAJANI, // 11150..11176
7239 UNKNOWN, // 11177..1117F
7240 SHARADA, // 11180..111CD
7241 UNKNOWN, // 111CE..111CF
7242 SHARADA, // 111D0..111DF
7243 UNKNOWN, // 111E0
7244 SINHALA, // 111E1..111F4
7245 UNKNOWN, // 111F5..111FF
7246 KHOJKI, // 11200..11211
7247 UNKNOWN, // 11212
7248 KHOJKI, // 11213..1123E
7249 UNKNOWN, // 1123F..1127F
7250 MULTANI, // 11280..11286
7251 UNKNOWN, // 11287
7252 MULTANI, // 11288
7253 UNKNOWN, // 11289
7254 MULTANI, // 1128A..1128D
7255 UNKNOWN, // 1128E
7256 MULTANI, // 1128F..1129D
7257 UNKNOWN, // 1129E
7258 MULTANI, // 1129F..112A9
7259 UNKNOWN, // 112AA..112AF
7260 KHUDAWADI, // 112B0..112EA
7261 UNKNOWN, // 112EB..112EF
7262 KHUDAWADI, // 112F0..112F9
7263 UNKNOWN, // 112FA..112FF
7264 GRANTHA, // 11300..11303
7265 UNKNOWN, // 11304
7266 GRANTHA, // 11305..1130C
7267 UNKNOWN, // 1130D..1130E
7268 GRANTHA, // 1130F..11310
7269 UNKNOWN, // 11311..11312
7273 UNKNOWN, // 11331
7274 GRANTHA, // 11332..11333
7275 UNKNOWN, // 11334
7276 GRANTHA, // 11335..11339
7277 UNKNOWN, // 1133A..1133B
7278 GRANTHA, // 1133C..11344
7279 UNKNOWN, // 11345..11346
7280 GRANTHA, // 11347..11348
7281 UNKNOWN, // 11349..1134A
7282 GRANTHA, // 1134B..1134D
7283 UNKNOWN, // 1134E..1134F
7284 GRANTHA, // 11350
7285 UNKNOWN, // 11351..11356
7286 GRANTHA, // 11357
7287 UNKNOWN, // 11358..1135C
7288 GRANTHA, // 1135D..11363
7289 UNKNOWN, // 11364..11365
7290 GRANTHA, // 11366..1136C
7291 UNKNOWN, // 1136D..1136F
7292 GRANTHA, // 11370..11374
7293 UNKNOWN, // 11375..113FF
7294 NEWA, // 11400..11459
7295 UNKNOWN, // 1145A
7296 NEWA, // 1145B
7297 UNKNOWN, // 1145C
7298 NEWA, // 1145D
7299 UNKNOWN, // 1145E..1147F
7300 TIRHUTA, // 11480..114C7
7301 UNKNOWN, // 114C8..114CF
7302 TIRHUTA, // 114D0..114D9
7303 UNKNOWN, // 114DA..1157F
7304 SIDDHAM, // 11580..115B5
7305 UNKNOWN, // 115B6..115B7
7306 SIDDHAM, // 115B8..115DD
7307 UNKNOWN, // 115DE..115FF
7308 MODI, // 11600..11644
7309 UNKNOWN, // 11645..1164F
7310 MODI, // 11650..11659
7311 UNKNOWN, // 1165A..1165F
7312 MONGOLIAN, // 11660..1166C
7313 UNKNOWN, // 1166D..1167F
7314 TAKRI, // 11680..116B7
7315 UNKNOWN, // 116B8..116BF
7316 TAKRI, // 116C0..116C9
7317 UNKNOWN, // 116CA..116FF
7318 AHOM, // 11700..11719
7319 UNKNOWN, // 1171A..1171C
7320 AHOM, // 1171D..1172B
7321 UNKNOWN, // 1172C..1172F
7322 AHOM, // 11730..1173F
7323 UNKNOWN, // 11740..1189F
7324 WARANG_CITI, // 118A0..118F2
7325 UNKNOWN, // 118F3..118FE
7326 WARANG_CITI, // 118FF
7327 UNKNOWN, // 11900..119FF
7328 ZANABAZAR_SQUARE, // 11A00..11A47
7329 UNKNOWN, // 11A48..11A4F
7330 SOYOMBO, // 11A50..11A83
7331 UNKNOWN, // 11A84..11A85
7332 SOYOMBO, // 11A86..11A9C
7333 UNKNOWN, // 11A9D
7334 SOYOMBO, // 11A9E..11AA2
7335 UNKNOWN, // 11AA3..11ABF
7336 PAU_CIN_HAU, // 11AC0..11AF8
7337 UNKNOWN, // 11AF9..11BFF
7338 BHAIKSUKI, // 11C00..11C08
7339 UNKNOWN, // 11C09
7340 BHAIKSUKI, // 11C0A..11C36
7341 UNKNOWN, // 11C37
7342 BHAIKSUKI, // 11C38..11C45
7343 UNKNOWN, // 11C46..11C49
7344 BHAIKSUKI, // 11C50..11C6C
7345 UNKNOWN, // 11C6D..11C6F
7346 MARCHEN, // 11C70..11C8F
7347 UNKNOWN, // 11C90..11C91
7348 MARCHEN, // 11C92..11CA7
7349 UNKNOWN, // 11CA8
7350 MARCHEN, // 11CA9..11CB6
7351 UNKNOWN, // 11CB7..11CFF
7352 MASARAM_GONDI, // 11D00..11D06
7353 UNKNOWN, // 11D07
7354 MASARAM_GONDI, // 11D08..11D09
7355 UNKNOWN, // 11D0A
7356 MASARAM_GONDI, // 11D0B..11D36
7357 UNKNOWN, // 11D37..11D39
7358 MASARAM_GONDI, // 11D3A
7359 UNKNOWN, // 11D3B
7360 MASARAM_GONDI, // 11D3C..11D3D
7361 UNKNOWN, // 11D3E
7362 MASARAM_GONDI, // 11D3F..11D47
7363 UNKNOWN, // 11D48..11D49
7364 MASARAM_GONDI, // 11D50..11D59
7365 UNKNOWN, // 11D5A..1AFFF;
7366 CUNEIFORM, // 12000..12399
7367 UNKNOWN, // 1239A..123FF
7368 CUNEIFORM, // 12400..1246E
7369 UNKNOWN, // 1246F
7370 CUNEIFORM, // 12470..12474
7371 UNKNOWN, // 12475..1247F
7372 CUNEIFORM, // 12480..12543
7373 UNKNOWN, // 12544..12FFF
7374 EGYPTIAN_HIEROGLYPHS, // 13000..1342E
7375 UNKNOWN, // 1342F..143FF
7376 ANATOLIAN_HIEROGLYPHS, // 14400..14646
7377 UNKNOWN, // 14647..167FF
7378 BAMUM, // 16800..16A38
7379 UNKNOWN, // 16A39..16A3F
7380 MRO, // 16A40..16A5E
7381 UNKNOWN, // 16A5F
7382 MRO, // 16A60..16A69
7383 UNKNOWN, // 16A6A..16A6D
7384 MRO, // 16A6E..16A6F
7385 UNKNOWN, // 16A70..16ACF
7386 BASSA_VAH, // 16AD0..16AED
7387 UNKNOWN, // 16AEE..16AEF
7388 BASSA_VAH, // 16AF0..16AF5
7389 UNKNOWN, // 16AF6..16AFF
7390 PAHAWH_HMONG, // 16B00..16B45
7391 UNKNOWN, // 16B46..16B4F
7392 PAHAWH_HMONG, // 16B50..16B59
7393 UNKNOWN, // 16B5A
7394 PAHAWH_HMONG, // 16B5B..16B61
7395 UNKNOWN, // 16B62
7396 PAHAWH_HMONG, // 16B63..16B77
7397 UNKNOWN, // 16B78..16B7C
7398 PAHAWH_HMONG, // 16B7D..16B8F
7399 UNKNOWN, // 16B90..16EFF
7400 MIAO, // 16F00..16F44
7401 UNKNOWN, // 16F45..16F4F
7402 MIAO, // 16F50..16F7E
7403 UNKNOWN, // 16F7F..16F8E
7404 MIAO, // 16F8F..16F9F
7405 UNKNOWN, // 16FA0..16FDF
7406 TANGUT, // 16FE0
7407 NUSHU, // 16FE1
7408 UNKNOWN, // 16FE2..16FFF
7409 TANGUT, // 17000..187EC
7410 UNKNOWN, // 187ED..187FF
7411 TANGUT, // 18800..18AF2
7412 UNKNOWN, // 18AF3..1AFFF
7413 KATAKANA, // 1B000
7414 HIRAGANA, // 1B001..1B11E
7415 UNKNOWN, // 1B11F..1B16F
7416 NUSHU, // 1B170..1B2FB
7417 UNKNOWN, // 1B2FC..1BBFF
7418 DUPLOYAN, // 1BC00..1BC6A
7419 UNKNOWN, // 1BC6B..1BC6F
7420 DUPLOYAN, // 1BC70..1BC7C
7421 UNKNOWN, // 1BC7D..1BC7F
7422 DUPLOYAN, // 1BC80..1BC88
7423 UNKNOWN, // 1BC89..1BC8F
7424 DUPLOYAN, // 1BC90..1BC99
7425 UNKNOWN, // 1BC9A..1BC9B
7426 DUPLOYAN, // 1BC9C..1BC9F
7427 COMMON, // 1BCA0..1BCA3
7428 UNKNOWN, // 1BCA4..1CFFF
7429 COMMON, // 1D000..1D0F5
7430 UNKNOWN, // 1D0F6..1D0FF
7431 COMMON, // 1D100..1D126
7432 UNKNOWN, // 1D127..1D128
7433 COMMON, // 1D129..1D166
7434 INHERITED, // 1D167..1D169
7435 COMMON, // 1D16A..1D17A
7436 INHERITED, // 1D17B..1D182
7437 COMMON, // 1D183..1D184
7475 COMMON, // 1D51E..1D539
7476 UNKNOWN, // 1D53A
7477 COMMON, // 1D53B..1D53E
7478 UNKNOWN, // 1D53F
7479 COMMON, // 1D540..1D544
7480 UNKNOWN, // 1D545
7481 COMMON, // 1D546
7482 UNKNOWN, // 1D547..1D549
7483 COMMON, // 1D54A..1D550
7484 UNKNOWN, // 1D551
7485 COMMON, // 1D552..1D6A5
7486 UNKNOWN, // 1D6A6..1D6A7
7487 COMMON, // 1D6A8..1D7CB
7488 UNKNOWN, // 1D7CC..1D7CD
7489 COMMON, // 1D7CE..1D7FF
7490 SIGNWRITING, // 1D800..1DA8B
7491 UNKNOWN, // 1DA8C..1DA9A
7492 SIGNWRITING, // 1DA9B..1DA9F
7493 UNKNOWN, // 1DAA0
7494 SIGNWRITING, // 1DAA1..1DAAF
7495 UNKNOWN, // 1DAB0..1DFFF
7496 GLAGOLITIC, // 1E000..1E006
7497 UNKNOWN, // 1E007
7498 GLAGOLITIC, // 1E008..1E018
7499 UNKNOWN, // 1E019..1E01A
7500 GLAGOLITIC, // 1E01B..1E021
7501 UNKNOWN, // 1E022
7502 GLAGOLITIC, // 1E023..1E024
7503 UNKNOWN, // 1E025
7504 GLAGOLITIC, // 1E026..1E02A
7505 UNKNOWN, // 1E02B..1E7FF
7506 MENDE_KIKAKUI, // 1E800..1E8C4
7507 UNKNOWN, // 1E8C5..1E8C6
7508 MENDE_KIKAKUI, // 1E8C7..1E8D6
7509 UNKNOWN, // 1E8D7..1E8FF
7510 ADLAM, // 1E900..1E94A
7511 UNKNOWN, // 1E94B..1E94F
7512 ADLAM, // 1E950..1E959
7513 UNKNOWN, // 1E95A..1E95D
7514 ADLAM, // 1E95E..1E95F
7515 UNKNOWN, // 1E960..1EDFF
7516 ARABIC, // 1EE00..1EE03
7517 UNKNOWN, // 1EE04
7518 ARABIC, // 1EE05..1EE1F
7519 UNKNOWN, // 1EE20
7520 ARABIC, // 1EE21..1EE22
7521 UNKNOWN, // 1EE23
7522 ARABIC, // 1EE24
7523 UNKNOWN, // 1EE25..1EE26
7524 ARABIC, // 1EE27
7525 UNKNOWN, // 1EE28
7526 ARABIC, // 1EE29..1EE32
7527 UNKNOWN, // 1EE33
7528 ARABIC, // 1EE34..1EE37
7529 UNKNOWN, // 1EE38
7530 ARABIC, // 1EE39
7531 UNKNOWN, // 1EE3A
7532 ARABIC, // 1EE3B
7533 UNKNOWN, // 1EE3C..1EE41
7534 ARABIC, // 1EE42
7535 UNKNOWN, // 1EE43..1EE46
7582 ARABIC, // 1EEF0..1EEF1
7583 UNKNOWN, // 1EEF2..1EFFF
7584 COMMON, // 1F000..1F02B
7585 UNKNOWN, // 1F02C..1F02F
7586 COMMON, // 1F030..1F093
7587 UNKNOWN, // 1F094..1F09F
7588 COMMON, // 1F0A0..1F0AE
7589 UNKNOWN, // 1F0AF..1F0B0
7590 COMMON, // 1F0B1..1F0BF
7591 UNKNOWN, // 1F0C0
7592 COMMON, // 1F0C1..1F0CF
7593 UNKNOWN, // 1F0D0
7594 COMMON, // 1F0D1..1F0F5
7595 UNKNOWN, // 1F0F6..1F0FF
7596 COMMON, // 1F100..1F10C
7597 UNKNOWN, // 1F10D..1F10F
7598 COMMON, // 1F110..1F12E
7599 UNKNOWN, // 1F12F
7600 COMMON, // 1F130..1F16B
7601 UNKNOWN, // 1F16C..1F16F
7602 COMMON, // 1F170..1F1AC
7603 UNKNOWN, // 1F1AD..1F1E5
7604 COMMON, // 1F1E6..1F1FF
7605 HIRAGANA, // 1F200
7606 COMMON, // 1F201..1F202
7607 UNKNOWN, // 1F203..1F20F
7608 COMMON, // 1F210..1F23B
7609 UNKNOWN, // 1F23C..1F23F
7610 COMMON, // 1F240..1F248
7611 UNKNOWN, // 1F249..1F24F
7612 COMMON, // 1F250..1F251
7613 UNKNOWN, // 1F252..1F25F
7614 COMMON, // 1F260..1F265
7615 UNKNOWN, // 1F266..1F2FF
7616 COMMON, // 1F300..1F6D4
7617 UNKNOWN, // 1F6D5..1F6DF
7618 COMMON, // 1F6E0..1F6EC
7619 UNKNOWN, // 1F6ED..1F6EF
7620 COMMON, // 1F6F0..1F6F8
7621 UNKNOWN, // 1F6F9..1F6FF
7622 COMMON, // 1F700..1F773
7623 UNKNOWN, // 1F774..1F77F
7624 COMMON, // 1F780..1F7D4
7625 UNKNOWN, // 1F7D5..1F7FF
7626 COMMON, // 1F800..1F80B
7627 UNKNOWN, // 1F80C..1F80F
7628 COMMON, // 1F810..1F847
7629 UNKNOWN, // 1F848..1F84F
7630 COMMON, // 1F850..1F859
7631 UNKNOWN, // 1F85A..1F85F
7632 COMMON, // 1F860..1F887
7633 UNKNOWN, // 1F888..1F88F
7634 COMMON, // 1F890..1F8AD
7635 UNKNOWN, // 1F8AE..1F8FF
7636 COMMON, // 1F900..1F90B
7637 UNKNOWN, // 1F90C..1F90F
7638 COMMON, // 1F910..1F93E
7639 UNKNOWN, // 1F93F
7640 COMMON, // 1F940..1F94C
7641 UNKNOWN, // 1F94D..1F94F
7642 COMMON, // 1F950..1F96B
7643 UNKNOWN, // 1F96C..1F97F
7644 COMMON, // 1F980..1F997
7645 UNKNOWN, // 1F998..1F9BF
7646 COMMON, // 1F9C0
7647 UNKNOWN, // 1F9C1..1F9CF
7648 COMMON, // 1F9D0..1F9E6
7649 UNKNOWN, // 1F9E7..1FFFF
7650 HAN, // 20000..2A6D6
7651 UNKNOWN, // 2A6D7..2A6FF
7652 HAN, // 2A700..2B734
7653 UNKNOWN, // 2B735..2B73F
7654 HAN, // 2B740..2B81D
7655 UNKNOWN, // 2B81E..2B81F
7656 HAN, // 2B820..2CEA1
7657 UNKNOWN, // 2CEA2..2CEAF
7658 HAN, // 2CEB0..2EBE0
7659 UNKNOWN, // 2EBE1..2F7FF
7660 HAN, // 2F800..2FA1D
7661 UNKNOWN, // 2FA1E..E0000
7662 COMMON, // E0001
7663 UNKNOWN, // E0002..E001F
7664 COMMON, // E0020..E007F
7665 UNKNOWN, // E0080..E00FF
7666 INHERITED, // E0100..E01EF
7667 UNKNOWN // E01F0..10FFFF
7668 };
7669
7670 private static HashMap<String, Character.UnicodeScript> aliases;
7671 static {
7672 aliases = new HashMap<>((int)(142 / 0.75f + 1.0f));
7673 aliases.put("ADLM", ADLAM);
7674 aliases.put("AGHB", CAUCASIAN_ALBANIAN);
7675 aliases.put("AHOM", AHOM);
7676 aliases.put("ARAB", ARABIC);
7677 aliases.put("ARMI", IMPERIAL_ARAMAIC);
7678 aliases.put("ARMN", ARMENIAN);
7679 aliases.put("AVST", AVESTAN);
7680 aliases.put("BALI", BALINESE);
7681 aliases.put("BAMU", BAMUM);
7682 aliases.put("BASS", BASSA_VAH);
7683 aliases.put("BATK", BATAK);
7684 aliases.put("BENG", BENGALI);
7685 aliases.put("BHKS", BHAIKSUKI);
7686 aliases.put("BOPO", BOPOMOFO);
7687 aliases.put("BRAH", BRAHMI);
7688 aliases.put("BRAI", BRAILLE);
7689 aliases.put("BUGI", BUGINESE);
7690 aliases.put("BUHD", BUHID);
7691 aliases.put("CAKM", CHAKMA);
7692 aliases.put("CANS", CANADIAN_ABORIGINAL);
7693 aliases.put("CARI", CARIAN);
7694 aliases.put("CHAM", CHAM);
7695 aliases.put("CHER", CHEROKEE);
7696 aliases.put("COPT", COPTIC);
7697 aliases.put("CPRT", CYPRIOT);
7698 aliases.put("CYRL", CYRILLIC);
7699 aliases.put("DEVA", DEVANAGARI);
7700 aliases.put("DSRT", DESERET);
7701 aliases.put("DUPL", DUPLOYAN);
7702 aliases.put("EGYP", EGYPTIAN_HIEROGLYPHS);
7703 aliases.put("ELBA", ELBASAN);
7704 aliases.put("ETHI", ETHIOPIC);
7705 aliases.put("GEOR", GEORGIAN);
7706 aliases.put("GLAG", GLAGOLITIC);
7707 aliases.put("GONM", MASARAM_GONDI);
7708 aliases.put("GOTH", GOTHIC);
7709 aliases.put("GRAN", GRANTHA);
7710 aliases.put("GREK", GREEK);
7711 aliases.put("GUJR", GUJARATI);
7712 aliases.put("GURU", GURMUKHI);
7713 aliases.put("HANG", HANGUL);
7714 aliases.put("HANI", HAN);
7715 aliases.put("HANO", HANUNOO);
7716 aliases.put("HATR", HATRAN);
7717 aliases.put("HEBR", HEBREW);
7718 aliases.put("HIRA", HIRAGANA);
7719 aliases.put("HLUW", ANATOLIAN_HIEROGLYPHS);
7720 aliases.put("HMNG", PAHAWH_HMONG);
7721 // it appears we don't have the KATAKANA_OR_HIRAGANA
7722 //aliases.put("HRKT", KATAKANA_OR_HIRAGANA);
7723 aliases.put("HUNG", OLD_HUNGARIAN);
7724 aliases.put("ITAL", OLD_ITALIC);
7725 aliases.put("JAVA", JAVANESE);
7726 aliases.put("KALI", KAYAH_LI);
7727 aliases.put("KANA", KATAKANA);
7728 aliases.put("KHAR", KHAROSHTHI);
7729 aliases.put("KHMR", KHMER);
7730 aliases.put("KHOJ", KHOJKI);
7731 aliases.put("KNDA", KANNADA);
7732 aliases.put("KTHI", KAITHI);
7733 aliases.put("LANA", TAI_THAM);
7734 aliases.put("LAOO", LAO);
7735 aliases.put("LATN", LATIN);
7736 aliases.put("LEPC", LEPCHA);
7737 aliases.put("LIMB", LIMBU);
7738 aliases.put("LINA", LINEAR_A);
7739 aliases.put("LINB", LINEAR_B);
7740 aliases.put("LISU", LISU);
7741 aliases.put("LYCI", LYCIAN);
7742 aliases.put("LYDI", LYDIAN);
7743 aliases.put("MAHJ", MAHAJANI);
7744 aliases.put("MARC", MARCHEN);
7745 aliases.put("MAND", MANDAIC);
7746 aliases.put("MANI", MANICHAEAN);
7747 aliases.put("MEND", MENDE_KIKAKUI);
7748 aliases.put("MERC", MEROITIC_CURSIVE);
7749 aliases.put("MERO", MEROITIC_HIEROGLYPHS);
7750 aliases.put("MLYM", MALAYALAM);
7751 aliases.put("MODI", MODI);
7752 aliases.put("MONG", MONGOLIAN);
7753 aliases.put("MROO", MRO);
7754 aliases.put("MTEI", MEETEI_MAYEK);
7755 aliases.put("MULT", MULTANI);
7756 aliases.put("MYMR", MYANMAR);
7757 aliases.put("NARB", OLD_NORTH_ARABIAN);
7758 aliases.put("NBAT", NABATAEAN);
7759 aliases.put("NEWA", NEWA);
7760 aliases.put("NKOO", NKO);
7761 aliases.put("NSHU", NUSHU);
7762 aliases.put("OGAM", OGHAM);
7763 aliases.put("OLCK", OL_CHIKI);
7764 aliases.put("ORKH", OLD_TURKIC);
7765 aliases.put("ORYA", ORIYA);
7766 aliases.put("OSGE", OSAGE);
7767 aliases.put("OSMA", OSMANYA);
7768 aliases.put("PALM", PALMYRENE);
7769 aliases.put("PAUC", PAU_CIN_HAU);
7770 aliases.put("PERM", OLD_PERMIC);
7771 aliases.put("PHAG", PHAGS_PA);
7772 aliases.put("PHLI", INSCRIPTIONAL_PAHLAVI);
7773 aliases.put("PHLP", PSALTER_PAHLAVI);
7774 aliases.put("PHNX", PHOENICIAN);
7775 aliases.put("PLRD", MIAO);
7776 aliases.put("PRTI", INSCRIPTIONAL_PARTHIAN);
7777 aliases.put("RJNG", REJANG);
7778 aliases.put("RUNR", RUNIC);
7779 aliases.put("SAMR", SAMARITAN);
7780 aliases.put("SARB", OLD_SOUTH_ARABIAN);
7781 aliases.put("SAUR", SAURASHTRA);
7782 aliases.put("SGNW", SIGNWRITING);
7783 aliases.put("SHAW", SHAVIAN);
7784 aliases.put("SHRD", SHARADA);
7785 aliases.put("SIDD", SIDDHAM);
7786 aliases.put("SIND", KHUDAWADI);
7787 aliases.put("SINH", SINHALA);
7788 aliases.put("SORA", SORA_SOMPENG);
7789 aliases.put("SOYO", SOYOMBO);
7790 aliases.put("SUND", SUNDANESE);
7791 aliases.put("SYLO", SYLOTI_NAGRI);
7792 aliases.put("SYRC", SYRIAC);
7793 aliases.put("TAGB", TAGBANWA);
7794 aliases.put("TAKR", TAKRI);
7795 aliases.put("TALE", TAI_LE);
7796 aliases.put("TALU", NEW_TAI_LUE);
7797 aliases.put("TAML", TAMIL);
7798 aliases.put("TANG", TANGUT);
7799 aliases.put("TAVT", TAI_VIET);
7800 aliases.put("TELU", TELUGU);
7801 aliases.put("TFNG", TIFINAGH);
7802 aliases.put("TGLG", TAGALOG);
7803 aliases.put("THAA", THAANA);
7804 aliases.put("THAI", THAI);
7805 aliases.put("TIBT", TIBETAN);
7806 aliases.put("TIRH", TIRHUTA);
7807 aliases.put("UGAR", UGARITIC);
7808 aliases.put("VAII", VAI);
7809 aliases.put("WARA", WARANG_CITI);
7810 aliases.put("XPEO", OLD_PERSIAN);
7811 aliases.put("XSUX", CUNEIFORM);
7812 aliases.put("YIII", YI);
7813 aliases.put("ZANB", ZANABAZAR_SQUARE);
7814 aliases.put("ZINH", INHERITED);
7815 aliases.put("ZYYY", COMMON);
7816 aliases.put("ZZZZ", UNKNOWN);
7817 }
7818
7819 /**
7820 * Returns the enum constant representing the Unicode script of which
7821 * the given character (Unicode code point) is assigned to.
7822 *
7823 * @param codePoint the character (Unicode code point) in question.
7824 * @return The {@code UnicodeScript} constant representing the
7825 * Unicode script of which this character is assigned to.
7826 *
7827 * @exception IllegalArgumentException if the specified
7828 * {@code codePoint} is an invalid Unicode code point.
7829 * @see Character#isValidCodePoint(int)
7830 *
7831 */
7832 public static UnicodeScript of(int codePoint) {
7833 if (!isValidCodePoint(codePoint))
|