// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly

#![allow(missing_docs, non_upper_case_globals, non_snake_case)]

pub use tables_impl::*;

#[rustfmt::skip]
mod tables_impl {
use crate::ScriptExtension;

/// The version of [Unicode](http://www.unicode.org/)
/// that this version of unicode-script is based on.
pub const UNICODE_VERSION: (u64, u64, u64) = (17, 0, 0);

#[derive(Clone, Copy, PartialEq, Eq, Debug, Hash)]
#[non_exhaustive]
#[allow(non_camel_case_types)]
#[repr(u8)]
/// A value of the `Script` property
pub enum Script {
    /// Unknown script
    Unknown = 0xFF,
    /// Zyyy
    Common = 0xFE,
    /// Zinh,
    Inherited = 0xFD,
    /// Adlm
    Adlam = 0,
    /// Aghb
    Caucasian_Albanian = 1,
    /// Ahom
    Ahom = 2,
    /// Arab
    Arabic = 3,
    /// Armi
    Imperial_Aramaic = 4,
    /// Armn
    Armenian = 5,
    /// Avst
    Avestan = 6,
    /// Bali
    Balinese = 7,
    /// Bamu
    Bamum = 8,
    /// Bass
    Bassa_Vah = 9,
    /// Batk
    Batak = 10,
    /// Beng
    Bengali = 11,
    /// Berf
    Beria_Erfe = 12,
    /// Bhks
    Bhaiksuki = 13,
    /// Bopo
    Bopomofo = 14,
    /// Brah
    Brahmi = 15,
    /// Brai
    Braille = 16,
    /// Bugi
    Buginese = 17,
    /// Buhd
    Buhid = 18,
    /// Cakm
    Chakma = 19,
    /// Cans
    Canadian_Aboriginal = 20,
    /// Cari
    Carian = 21,
    /// Cham
    Cham = 22,
    /// Cher
    Cherokee = 23,
    /// Chrs
    Chorasmian = 24,
    /// Copt
    Coptic = 25,
    /// Cpmn
    Cypro_Minoan = 26,
    /// Cprt
    Cypriot = 27,
    /// Cyrl
    Cyrillic = 28,
    /// Deva
    Devanagari = 29,
    /// Diak
    Dives_Akuru = 30,
    /// Dogr
    Dogra = 31,
    /// Dsrt
    Deseret = 32,
    /// Dupl
    Duployan = 33,
    /// Egyp
    Egyptian_Hieroglyphs = 34,
    /// Elba
    Elbasan = 35,
    /// Elym
    Elymaic = 36,
    /// Ethi
    Ethiopic = 37,
    /// Gara
    Garay = 38,
    /// Geor
    Georgian = 39,
    /// Glag
    Glagolitic = 40,
    /// Gong
    Gunjala_Gondi = 41,
    /// Gonm
    Masaram_Gondi = 42,
    /// Goth
    Gothic = 43,
    /// Gran
    Grantha = 44,
    /// Grek
    Greek = 45,
    /// Gujr
    Gujarati = 46,
    /// Gukh
    Gurung_Khema = 47,
    /// Guru
    Gurmukhi = 48,
    /// Hang
    Hangul = 49,
    /// Hani
    Han = 50,
    /// Hano
    Hanunoo = 51,
    /// Hatr
    Hatran = 52,
    /// Hebr
    Hebrew = 53,
    /// Hira
    Hiragana = 54,
    /// Hluw
    Anatolian_Hieroglyphs = 55,
    /// Hmng
    Pahawh_Hmong = 56,
    /// Hmnp
    Nyiakeng_Puachue_Hmong = 57,
    /// Hung
    Old_Hungarian = 58,
    /// Ital
    Old_Italic = 59,
    /// Java
    Javanese = 60,
    /// Kali
    Kayah_Li = 61,
    /// Kana
    Katakana = 62,
    /// Kawi
    Kawi = 63,
    /// Khar
    Kharoshthi = 64,
    /// Khmr
    Khmer = 65,
    /// Khoj
    Khojki = 66,
    /// Kits
    Khitan_Small_Script = 67,
    /// Knda
    Kannada = 68,
    /// Krai
    Kirat_Rai = 69,
    /// Kthi
    Kaithi = 70,
    /// Lana
    Tai_Tham = 71,
    /// Laoo
    Lao = 72,
    /// Latn
    Latin = 73,
    /// Lepc
    Lepcha = 74,
    /// Limb
    Limbu = 75,
    /// Lina
    Linear_A = 76,
    /// Linb
    Linear_B = 77,
    /// Lisu
    Lisu = 78,
    /// Lyci
    Lycian = 79,
    /// Lydi
    Lydian = 80,
    /// Mahj
    Mahajani = 81,
    /// Maka
    Makasar = 82,
    /// Mand
    Mandaic = 83,
    /// Mani
    Manichaean = 84,
    /// Marc
    Marchen = 85,
    /// Medf
    Medefaidrin = 86,
    /// Mend
    Mende_Kikakui = 87,
    /// Merc
    Meroitic_Cursive = 88,
    /// Mero
    Meroitic_Hieroglyphs = 89,
    /// Mlym
    Malayalam = 90,
    /// Modi
    Modi = 91,
    /// Mong
    Mongolian = 92,
    /// Mroo
    Mro = 93,
    /// Mtei
    Meetei_Mayek = 94,
    /// Mult
    Multani = 95,
    /// Mymr
    Myanmar = 96,
    /// Nagm
    Nag_Mundari = 97,
    /// Nand
    Nandinagari = 98,
    /// Narb
    Old_North_Arabian = 99,
    /// Nbat
    Nabataean = 100,
    /// Newa
    Newa = 101,
    /// Nkoo
    Nko = 102,
    /// Nshu
    Nushu = 103,
    /// Ogam
    Ogham = 104,
    /// Olck
    Ol_Chiki = 105,
    /// Onao
    Ol_Onal = 106,
    /// Orkh
    Old_Turkic = 107,
    /// Orya
    Oriya = 108,
    /// Osge
    Osage = 109,
    /// Osma
    Osmanya = 110,
    /// Ougr
    Old_Uyghur = 111,
    /// Palm
    Palmyrene = 112,
    /// Pauc
    Pau_Cin_Hau = 113,
    /// Perm
    Old_Permic = 114,
    /// Phag
    Phags_Pa = 115,
    /// Phli
    Inscriptional_Pahlavi = 116,
    /// Phlp
    Psalter_Pahlavi = 117,
    /// Phnx
    Phoenician = 118,
    /// Plrd
    Miao = 119,
    /// Prti
    Inscriptional_Parthian = 120,
    /// Rjng
    Rejang = 121,
    /// Rohg
    Hanifi_Rohingya = 122,
    /// Runr
    Runic = 123,
    /// Samr
    Samaritan = 124,
    /// Sarb
    Old_South_Arabian = 125,
    /// Saur
    Saurashtra = 126,
    /// Sgnw
    SignWriting = 127,
    /// Shaw
    Shavian = 128,
    /// Shrd
    Sharada = 129,
    /// Sidd
    Siddham = 130,
    /// Sidt
    Sidetic = 131,
    /// Sind
    Khudawadi = 132,
    /// Sinh
    Sinhala = 133,
    /// Sogd
    Sogdian = 134,
    /// Sogo
    Old_Sogdian = 135,
    /// Sora
    Sora_Sompeng = 136,
    /// Soyo
    Soyombo = 137,
    /// Sund
    Sundanese = 138,
    /// Sunu
    Sunuwar = 139,
    /// Sylo
    Syloti_Nagri = 140,
    /// Syrc
    Syriac = 141,
    /// Tagb
    Tagbanwa = 142,
    /// Takr
    Takri = 143,
    /// Tale
    Tai_Le = 144,
    /// Talu
    New_Tai_Lue = 145,
    /// Taml
    Tamil = 146,
    /// Tang
    Tangut = 147,
    /// Tavt
    Tai_Viet = 148,
    /// Tayo
    Tai_Yo = 149,
    /// Telu
    Telugu = 150,
    /// Tfng
    Tifinagh = 151,
    /// Tglg
    Tagalog = 152,
    /// Thaa
    Thaana = 153,
    /// Thai
    Thai = 154,
    /// Tibt
    Tibetan = 155,
    /// Tirh
    Tirhuta = 156,
    /// Tnsa
    Tangsa = 157,
    /// Todr
    Todhri = 158,
    /// Tols
    Tolong_Siki = 159,
    /// Toto
    Toto = 160,
    /// Tutg
    Tulu_Tigalari = 161,
    /// Ugar
    Ugaritic = 162,
    /// Vaii
    Vai = 163,
    /// Vith
    Vithkuqi = 164,
    /// Wara
    Warang_Citi = 165,
    /// Wcho
    Wancho = 166,
    /// Xpeo
    Old_Persian = 167,
    /// Xsux
    Cuneiform = 168,
    /// Yezi
    Yezidi = 169,
    /// Yiii
    Yi = 170,
    /// Zanb
    Zanabazar_Square = 171,
}
pub const NEXT_SCRIPT: u8 = 172;

pub mod script_extensions {
    use crate::ScriptExtension;
    pub const COMMON: ScriptExtension = ScriptExtension::new_common();
    pub const INHERITED: ScriptExtension = ScriptExtension::new_inherited();
    pub const UNKNOWN: ScriptExtension = ScriptExtension::new_unknown();
    /// Adlam
    pub const ADLAM: ScriptExtension = ScriptExtension::new(0x1, 0, 0);
    /// Adlam
    pub const ADLM: ScriptExtension = ADLAM;
    /// Caucasian_Albanian
    pub const CAUCASIAN_ALBANIAN: ScriptExtension = ScriptExtension::new(0x2, 0, 0);
    /// Caucasian_Albanian
    pub const AGHB: ScriptExtension = CAUCASIAN_ALBANIAN;
    /// Ahom
    pub const AHOM: ScriptExtension = ScriptExtension::new(0x4, 0, 0);
    /// Arabic
    pub const ARABIC: ScriptExtension = ScriptExtension::new(0x8, 0, 0);
    /// Arabic
    pub const ARAB: ScriptExtension = ARABIC;
    /// Imperial_Aramaic
    pub const IMPERIAL_ARAMAIC: ScriptExtension = ScriptExtension::new(0x10, 0, 0);
    /// Imperial_Aramaic
    pub const ARMI: ScriptExtension = IMPERIAL_ARAMAIC;
    /// Armenian
    pub const ARMENIAN: ScriptExtension = ScriptExtension::new(0x20, 0, 0);
    /// Armenian
    pub const ARMN: ScriptExtension = ARMENIAN;
    /// Avestan
    pub const AVESTAN: ScriptExtension = ScriptExtension::new(0x40, 0, 0);
    /// Avestan
    pub const AVST: ScriptExtension = AVESTAN;
    /// Balinese
    pub const BALINESE: ScriptExtension = ScriptExtension::new(0x80, 0, 0);
    /// Balinese
    pub const BALI: ScriptExtension = BALINESE;
    /// Bamum
    pub const BAMUM: ScriptExtension = ScriptExtension::new(0x100, 0, 0);
    /// Bamum
    pub const BAMU: ScriptExtension = BAMUM;
    /// Bassa_Vah
    pub const BASSA_VAH: ScriptExtension = ScriptExtension::new(0x200, 0, 0);
    /// Bassa_Vah
    pub const BASS: ScriptExtension = BASSA_VAH;
    /// Batak
    pub const BATAK: ScriptExtension = ScriptExtension::new(0x400, 0, 0);
    /// Batak
    pub const BATK: ScriptExtension = BATAK;
    /// Bengali
    pub const BENGALI: ScriptExtension = ScriptExtension::new(0x800, 0, 0);
    /// Bengali
    pub const BENG: ScriptExtension = BENGALI;
    /// Beria_Erfe
    pub const BERIA_ERFE: ScriptExtension = ScriptExtension::new(0x1000, 0, 0);
    /// Beria_Erfe
    pub const BERF: ScriptExtension = BERIA_ERFE;
    /// Bhaiksuki
    pub const BHAIKSUKI: ScriptExtension = ScriptExtension::new(0x2000, 0, 0);
    /// Bhaiksuki
    pub const BHKS: ScriptExtension = BHAIKSUKI;
    /// Bopomofo
    pub const BOPOMOFO: ScriptExtension = ScriptExtension::new(0x4000, 0, 0);
    /// Bopomofo
    pub const BOPO: ScriptExtension = BOPOMOFO;
    /// Brahmi
    pub const BRAHMI: ScriptExtension = ScriptExtension::new(0x8000, 0, 0);
    /// Brahmi
    pub const BRAH: ScriptExtension = BRAHMI;
    /// Braille
    pub const BRAILLE: ScriptExtension = ScriptExtension::new(0x10000, 0, 0);
    /// Braille
    pub const BRAI: ScriptExtension = BRAILLE;
    /// Buginese
    pub const BUGINESE: ScriptExtension = ScriptExtension::new(0x20000, 0, 0);
    /// Buginese
    pub const BUGI: ScriptExtension = BUGINESE;
    /// Buhid
    pub const BUHID: ScriptExtension = ScriptExtension::new(0x40000, 0, 0);
    /// Buhid
    pub const BUHD: ScriptExtension = BUHID;
    /// Chakma
    pub const CHAKMA: ScriptExtension = ScriptExtension::new(0x80000, 0, 0);
    /// Chakma
    pub const CAKM: ScriptExtension = CHAKMA;
    /// Canadian_Aboriginal
    pub const CANADIAN_ABORIGINAL: ScriptExtension = ScriptExtension::new(0x100000, 0, 0);
    /// Canadian_Aboriginal
    pub const CANS: ScriptExtension = CANADIAN_ABORIGINAL;
    /// Carian
    pub const CARIAN: ScriptExtension = ScriptExtension::new(0x200000, 0, 0);
    /// Carian
    pub const CARI: ScriptExtension = CARIAN;
    /// Cham
    pub const CHAM: ScriptExtension = ScriptExtension::new(0x400000, 0, 0);
    /// Cherokee
    pub const CHEROKEE: ScriptExtension = ScriptExtension::new(0x800000, 0, 0);
    /// Cherokee
    pub const CHER: ScriptExtension = CHEROKEE;
    /// Chorasmian
    pub const CHORASMIAN: ScriptExtension = ScriptExtension::new(0x1000000, 0, 0);
    /// Chorasmian
    pub const CHRS: ScriptExtension = CHORASMIAN;
    /// Coptic
    pub const COPTIC: ScriptExtension = ScriptExtension::new(0x2000000, 0, 0);
    /// Coptic
    pub const COPT: ScriptExtension = COPTIC;
    /// Cypro_Minoan
    pub const CYPRO_MINOAN: ScriptExtension = ScriptExtension::new(0x4000000, 0, 0);
    /// Cypro_Minoan
    pub const CPMN: ScriptExtension = CYPRO_MINOAN;
    /// Cypriot
    pub const CYPRIOT: ScriptExtension = ScriptExtension::new(0x8000000, 0, 0);
    /// Cypriot
    pub const CPRT: ScriptExtension = CYPRIOT;
    /// Cyrillic
    pub const CYRILLIC: ScriptExtension = ScriptExtension::new(0x10000000, 0, 0);
    /// Cyrillic
    pub const CYRL: ScriptExtension = CYRILLIC;
    /// Devanagari
    pub const DEVANAGARI: ScriptExtension = ScriptExtension::new(0x20000000, 0, 0);
    /// Devanagari
    pub const DEVA: ScriptExtension = DEVANAGARI;
    /// Dives_Akuru
    pub const DIVES_AKURU: ScriptExtension = ScriptExtension::new(0x40000000, 0, 0);
    /// Dives_Akuru
    pub const DIAK: ScriptExtension = DIVES_AKURU;
    /// Dogra
    pub const DOGRA: ScriptExtension = ScriptExtension::new(0x80000000, 0, 0);
    /// Dogra
    pub const DOGR: ScriptExtension = DOGRA;
    /// Deseret
    pub const DESERET: ScriptExtension = ScriptExtension::new(0x100000000, 0, 0);
    /// Deseret
    pub const DSRT: ScriptExtension = DESERET;
    /// Duployan
    pub const DUPLOYAN: ScriptExtension = ScriptExtension::new(0x200000000, 0, 0);
    /// Duployan
    pub const DUPL: ScriptExtension = DUPLOYAN;
    /// Egyptian_Hieroglyphs
    pub const EGYPTIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x400000000, 0, 0);
    /// Egyptian_Hieroglyphs
    pub const EGYP: ScriptExtension = EGYPTIAN_HIEROGLYPHS;
    /// Elbasan
    pub const ELBASAN: ScriptExtension = ScriptExtension::new(0x800000000, 0, 0);
    /// Elbasan
    pub const ELBA: ScriptExtension = ELBASAN;
    /// Elymaic
    pub const ELYMAIC: ScriptExtension = ScriptExtension::new(0x1000000000, 0, 0);
    /// Elymaic
    pub const ELYM: ScriptExtension = ELYMAIC;
    /// Ethiopic
    pub const ETHIOPIC: ScriptExtension = ScriptExtension::new(0x2000000000, 0, 0);
    /// Ethiopic
    pub const ETHI: ScriptExtension = ETHIOPIC;
    /// Garay
    pub const GARAY: ScriptExtension = ScriptExtension::new(0x4000000000, 0, 0);
    /// Garay
    pub const GARA: ScriptExtension = GARAY;
    /// Georgian
    pub const GEORGIAN: ScriptExtension = ScriptExtension::new(0x8000000000, 0, 0);
    /// Georgian
    pub const GEOR: ScriptExtension = GEORGIAN;
    /// Glagolitic
    pub const GLAGOLITIC: ScriptExtension = ScriptExtension::new(0x10000000000, 0, 0);
    /// Glagolitic
    pub const GLAG: ScriptExtension = GLAGOLITIC;
    /// Gunjala_Gondi
    pub const GUNJALA_GONDI: ScriptExtension = ScriptExtension::new(0x20000000000, 0, 0);
    /// Gunjala_Gondi
    pub const GONG: ScriptExtension = GUNJALA_GONDI;
    /// Masaram_Gondi
    pub const MASARAM_GONDI: ScriptExtension = ScriptExtension::new(0x40000000000, 0, 0);
    /// Masaram_Gondi
    pub const GONM: ScriptExtension = MASARAM_GONDI;
    /// Gothic
    pub const GOTHIC: ScriptExtension = ScriptExtension::new(0x80000000000, 0, 0);
    /// Gothic
    pub const GOTH: ScriptExtension = GOTHIC;
    /// Grantha
    pub const GRANTHA: ScriptExtension = ScriptExtension::new(0x100000000000, 0, 0);
    /// Grantha
    pub const GRAN: ScriptExtension = GRANTHA;
    /// Greek
    pub const GREEK: ScriptExtension = ScriptExtension::new(0x200000000000, 0, 0);
    /// Greek
    pub const GREK: ScriptExtension = GREEK;
    /// Gujarati
    pub const GUJARATI: ScriptExtension = ScriptExtension::new(0x400000000000, 0, 0);
    /// Gujarati
    pub const GUJR: ScriptExtension = GUJARATI;
    /// Gurung_Khema
    pub const GURUNG_KHEMA: ScriptExtension = ScriptExtension::new(0x800000000000, 0, 0);
    /// Gurung_Khema
    pub const GUKH: ScriptExtension = GURUNG_KHEMA;
    /// Gurmukhi
    pub const GURMUKHI: ScriptExtension = ScriptExtension::new(0x1000000000000, 0, 0);
    /// Gurmukhi
    pub const GURU: ScriptExtension = GURMUKHI;
    /// Hangul
    pub const HANGUL: ScriptExtension = ScriptExtension::new(0x2000000000000, 0, 0);
    /// Hangul
    pub const HANG: ScriptExtension = HANGUL;
    /// Han
    pub const HAN: ScriptExtension = ScriptExtension::new(0x4000000000000, 0, 0);
    /// Han
    pub const HANI: ScriptExtension = HAN;
    /// Hanunoo
    pub const HANUNOO: ScriptExtension = ScriptExtension::new(0x8000000000000, 0, 0);
    /// Hanunoo
    pub const HANO: ScriptExtension = HANUNOO;
    /// Hatran
    pub const HATRAN: ScriptExtension = ScriptExtension::new(0x10000000000000, 0, 0);
    /// Hatran
    pub const HATR: ScriptExtension = HATRAN;
    /// Hebrew
    pub const HEBREW: ScriptExtension = ScriptExtension::new(0x20000000000000, 0, 0);
    /// Hebrew
    pub const HEBR: ScriptExtension = HEBREW;
    /// Hiragana
    pub const HIRAGANA: ScriptExtension = ScriptExtension::new(0x40000000000000, 0, 0);
    /// Hiragana
    pub const HIRA: ScriptExtension = HIRAGANA;
    /// Anatolian_Hieroglyphs
    pub const ANATOLIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x80000000000000, 0, 0);
    /// Anatolian_Hieroglyphs
    pub const HLUW: ScriptExtension = ANATOLIAN_HIEROGLYPHS;
    /// Pahawh_Hmong
    pub const PAHAWH_HMONG: ScriptExtension = ScriptExtension::new(0x100000000000000, 0, 0);
    /// Pahawh_Hmong
    pub const HMNG: ScriptExtension = PAHAWH_HMONG;
    /// Nyiakeng_Puachue_Hmong
    pub const NYIAKENG_PUACHUE_HMONG: ScriptExtension = ScriptExtension::new(0x200000000000000, 0, 0);
    /// Nyiakeng_Puachue_Hmong
    pub const HMNP: ScriptExtension = NYIAKENG_PUACHUE_HMONG;
    /// Old_Hungarian
    pub const OLD_HUNGARIAN: ScriptExtension = ScriptExtension::new(0x400000000000000, 0, 0);
    /// Old_Hungarian
    pub const HUNG: ScriptExtension = OLD_HUNGARIAN;
    /// Old_Italic
    pub const OLD_ITALIC: ScriptExtension = ScriptExtension::new(0x800000000000000, 0, 0);
    /// Old_Italic
    pub const ITAL: ScriptExtension = OLD_ITALIC;
    /// Javanese
    pub const JAVANESE: ScriptExtension = ScriptExtension::new(0x1000000000000000, 0, 0);
    /// Javanese
    pub const JAVA: ScriptExtension = JAVANESE;
    /// Kayah_Li
    pub const KAYAH_LI: ScriptExtension = ScriptExtension::new(0x2000000000000000, 0, 0);
    /// Kayah_Li
    pub const KALI: ScriptExtension = KAYAH_LI;
    /// Katakana
    pub const KATAKANA: ScriptExtension = ScriptExtension::new(0x4000000000000000, 0, 0);
    /// Katakana
    pub const KANA: ScriptExtension = KATAKANA;
    /// Kawi
    pub const KAWI: ScriptExtension = ScriptExtension::new(0x8000000000000000, 0, 0);
    /// Kharoshthi
    pub const KHAROSHTHI: ScriptExtension = ScriptExtension::new(0, 0x1, 0);
    /// Kharoshthi
    pub const KHAR: ScriptExtension = KHAROSHTHI;
    /// Khmer
    pub const KHMER: ScriptExtension = ScriptExtension::new(0, 0x2, 0);
    /// Khmer
    pub const KHMR: ScriptExtension = KHMER;
    /// Khojki
    pub const KHOJKI: ScriptExtension = ScriptExtension::new(0, 0x4, 0);
    /// Khojki
    pub const KHOJ: ScriptExtension = KHOJKI;
    /// Khitan_Small_Script
    pub const KHITAN_SMALL_SCRIPT: ScriptExtension = ScriptExtension::new(0, 0x8, 0);
    /// Khitan_Small_Script
    pub const KITS: ScriptExtension = KHITAN_SMALL_SCRIPT;
    /// Kannada
    pub const KANNADA: ScriptExtension = ScriptExtension::new(0, 0x10, 0);
    /// Kannada
    pub const KNDA: ScriptExtension = KANNADA;
    /// Kirat_Rai
    pub const KIRAT_RAI: ScriptExtension = ScriptExtension::new(0, 0x20, 0);
    /// Kirat_Rai
    pub const KRAI: ScriptExtension = KIRAT_RAI;
    /// Kaithi
    pub const KAITHI: ScriptExtension = ScriptExtension::new(0, 0x40, 0);
    /// Kaithi
    pub const KTHI: ScriptExtension = KAITHI;
    /// Tai_Tham
    pub const TAI_THAM: ScriptExtension = ScriptExtension::new(0, 0x80, 0);
    /// Tai_Tham
    pub const LANA: ScriptExtension = TAI_THAM;
    /// Lao
    pub const LAO: ScriptExtension = ScriptExtension::new(0, 0x100, 0);
    /// Lao
    pub const LAOO: ScriptExtension = LAO;
    /// Latin
    pub const LATIN: ScriptExtension = ScriptExtension::new(0, 0x200, 0);
    /// Latin
    pub const LATN: ScriptExtension = LATIN;
    /// Lepcha
    pub const LEPCHA: ScriptExtension = ScriptExtension::new(0, 0x400, 0);
    /// Lepcha
    pub const LEPC: ScriptExtension = LEPCHA;
    /// Limbu
    pub const LIMBU: ScriptExtension = ScriptExtension::new(0, 0x800, 0);
    /// Limbu
    pub const LIMB: ScriptExtension = LIMBU;
    /// Linear_A
    pub const LINEAR_A: ScriptExtension = ScriptExtension::new(0, 0x1000, 0);
    /// Linear_A
    pub const LINA: ScriptExtension = LINEAR_A;
    /// Linear_B
    pub const LINEAR_B: ScriptExtension = ScriptExtension::new(0, 0x2000, 0);
    /// Linear_B
    pub const LINB: ScriptExtension = LINEAR_B;
    /// Lisu
    pub const LISU: ScriptExtension = ScriptExtension::new(0, 0x4000, 0);
    /// Lycian
    pub const LYCIAN: ScriptExtension = ScriptExtension::new(0, 0x8000, 0);
    /// Lycian
    pub const LYCI: ScriptExtension = LYCIAN;
    /// Lydian
    pub const LYDIAN: ScriptExtension = ScriptExtension::new(0, 0x10000, 0);
    /// Lydian
    pub const LYDI: ScriptExtension = LYDIAN;
    /// Mahajani
    pub const MAHAJANI: ScriptExtension = ScriptExtension::new(0, 0x20000, 0);
    /// Mahajani
    pub const MAHJ: ScriptExtension = MAHAJANI;
    /// Makasar
    pub const MAKASAR: ScriptExtension = ScriptExtension::new(0, 0x40000, 0);
    /// Makasar
    pub const MAKA: ScriptExtension = MAKASAR;
    /// Mandaic
    pub const MANDAIC: ScriptExtension = ScriptExtension::new(0, 0x80000, 0);
    /// Mandaic
    pub const MAND: ScriptExtension = MANDAIC;
    /// Manichaean
    pub const MANICHAEAN: ScriptExtension = ScriptExtension::new(0, 0x100000, 0);
    /// Manichaean
    pub const MANI: ScriptExtension = MANICHAEAN;
    /// Marchen
    pub const MARCHEN: ScriptExtension = ScriptExtension::new(0, 0x200000, 0);
    /// Marchen
    pub const MARC: ScriptExtension = MARCHEN;
    /// Medefaidrin
    pub const MEDEFAIDRIN: ScriptExtension = ScriptExtension::new(0, 0x400000, 0);
    /// Medefaidrin
    pub const MEDF: ScriptExtension = MEDEFAIDRIN;
    /// Mende_Kikakui
    pub const MENDE_KIKAKUI: ScriptExtension = ScriptExtension::new(0, 0x800000, 0);
    /// Mende_Kikakui
    pub const MEND: ScriptExtension = MENDE_KIKAKUI;
    /// Meroitic_Cursive
    pub const MEROITIC_CURSIVE: ScriptExtension = ScriptExtension::new(0, 0x1000000, 0);
    /// Meroitic_Cursive
    pub const MERC: ScriptExtension = MEROITIC_CURSIVE;
    /// Meroitic_Hieroglyphs
    pub const MEROITIC_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0, 0x2000000, 0);
    /// Meroitic_Hieroglyphs
    pub const MERO: ScriptExtension = MEROITIC_HIEROGLYPHS;
    /// Malayalam
    pub const MALAYALAM: ScriptExtension = ScriptExtension::new(0, 0x4000000, 0);
    /// Malayalam
    pub const MLYM: ScriptExtension = MALAYALAM;
    /// Modi
    pub const MODI: ScriptExtension = ScriptExtension::new(0, 0x8000000, 0);
    /// Mongolian
    pub const MONGOLIAN: ScriptExtension = ScriptExtension::new(0, 0x10000000, 0);
    /// Mongolian
    pub const MONG: ScriptExtension = MONGOLIAN;
    /// Mro
    pub const MRO: ScriptExtension = ScriptExtension::new(0, 0x20000000, 0);
    /// Mro
    pub const MROO: ScriptExtension = MRO;
    /// Meetei_Mayek
    pub const MEETEI_MAYEK: ScriptExtension = ScriptExtension::new(0, 0x40000000, 0);
    /// Meetei_Mayek
    pub const MTEI: ScriptExtension = MEETEI_MAYEK;
    /// Multani
    pub const MULTANI: ScriptExtension = ScriptExtension::new(0, 0x80000000, 0);
    /// Multani
    pub const MULT: ScriptExtension = MULTANI;
    /// Myanmar
    pub const MYANMAR: ScriptExtension = ScriptExtension::new(0, 0x100000000, 0);
    /// Myanmar
    pub const MYMR: ScriptExtension = MYANMAR;
    /// Nag_Mundari
    pub const NAG_MUNDARI: ScriptExtension = ScriptExtension::new(0, 0x200000000, 0);
    /// Nag_Mundari
    pub const NAGM: ScriptExtension = NAG_MUNDARI;
    /// Nandinagari
    pub const NANDINAGARI: ScriptExtension = ScriptExtension::new(0, 0x400000000, 0);
    /// Nandinagari
    pub const NAND: ScriptExtension = NANDINAGARI;
    /// Old_North_Arabian
    pub const OLD_NORTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x800000000, 0);
    /// Old_North_Arabian
    pub const NARB: ScriptExtension = OLD_NORTH_ARABIAN;
    /// Nabataean
    pub const NABATAEAN: ScriptExtension = ScriptExtension::new(0, 0x1000000000, 0);
    /// Nabataean
    pub const NBAT: ScriptExtension = NABATAEAN;
    /// Newa
    pub const NEWA: ScriptExtension = ScriptExtension::new(0, 0x2000000000, 0);
    /// Nko
    pub const NKO: ScriptExtension = ScriptExtension::new(0, 0x4000000000, 0);
    /// Nko
    pub const NKOO: ScriptExtension = NKO;
    /// Nushu
    pub const NUSHU: ScriptExtension = ScriptExtension::new(0, 0x8000000000, 0);
    /// Nushu
    pub const NSHU: ScriptExtension = NUSHU;
    /// Ogham
    pub const OGHAM: ScriptExtension = ScriptExtension::new(0, 0x10000000000, 0);
    /// Ogham
    pub const OGAM: ScriptExtension = OGHAM;
    /// Ol_Chiki
    pub const OL_CHIKI: ScriptExtension = ScriptExtension::new(0, 0x20000000000, 0);
    /// Ol_Chiki
    pub const OLCK: ScriptExtension = OL_CHIKI;
    /// Ol_Onal
    pub const OL_ONAL: ScriptExtension = ScriptExtension::new(0, 0x40000000000, 0);
    /// Ol_Onal
    pub const ONAO: ScriptExtension = OL_ONAL;
    /// Old_Turkic
    pub const OLD_TURKIC: ScriptExtension = ScriptExtension::new(0, 0x80000000000, 0);
    /// Old_Turkic
    pub const ORKH: ScriptExtension = OLD_TURKIC;
    /// Oriya
    pub const ORIYA: ScriptExtension = ScriptExtension::new(0, 0x100000000000, 0);
    /// Oriya
    pub const ORYA: ScriptExtension = ORIYA;
    /// Osage
    pub const OSAGE: ScriptExtension = ScriptExtension::new(0, 0x200000000000, 0);
    /// Osage
    pub const OSGE: ScriptExtension = OSAGE;
    /// Osmanya
    pub const OSMANYA: ScriptExtension = ScriptExtension::new(0, 0x400000000000, 0);
    /// Osmanya
    pub const OSMA: ScriptExtension = OSMANYA;
    /// Old_Uyghur
    pub const OLD_UYGHUR: ScriptExtension = ScriptExtension::new(0, 0x800000000000, 0);
    /// Old_Uyghur
    pub const OUGR: ScriptExtension = OLD_UYGHUR;
    /// Palmyrene
    pub const PALMYRENE: ScriptExtension = ScriptExtension::new(0, 0x1000000000000, 0);
    /// Palmyrene
    pub const PALM: ScriptExtension = PALMYRENE;
    /// Pau_Cin_Hau
    pub const PAU_CIN_HAU: ScriptExtension = ScriptExtension::new(0, 0x2000000000000, 0);
    /// Pau_Cin_Hau
    pub const PAUC: ScriptExtension = PAU_CIN_HAU;
    /// Old_Permic
    pub const OLD_PERMIC: ScriptExtension = ScriptExtension::new(0, 0x4000000000000, 0);
    /// Old_Permic
    pub const PERM: ScriptExtension = OLD_PERMIC;
    /// Phags_Pa
    pub const PHAGS_PA: ScriptExtension = ScriptExtension::new(0, 0x8000000000000, 0);
    /// Phags_Pa
    pub const PHAG: ScriptExtension = PHAGS_PA;
    /// Inscriptional_Pahlavi
    pub const INSCRIPTIONAL_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x10000000000000, 0);
    /// Inscriptional_Pahlavi
    pub const PHLI: ScriptExtension = INSCRIPTIONAL_PAHLAVI;
    /// Psalter_Pahlavi
    pub const PSALTER_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x20000000000000, 0);
    /// Psalter_Pahlavi
    pub const PHLP: ScriptExtension = PSALTER_PAHLAVI;
    /// Phoenician
    pub const PHOENICIAN: ScriptExtension = ScriptExtension::new(0, 0x40000000000000, 0);
    /// Phoenician
    pub const PHNX: ScriptExtension = PHOENICIAN;
    /// Miao
    pub const MIAO: ScriptExtension = ScriptExtension::new(0, 0x80000000000000, 0);
    /// Miao
    pub const PLRD: ScriptExtension = MIAO;
    /// Inscriptional_Parthian
    pub const INSCRIPTIONAL_PARTHIAN: ScriptExtension = ScriptExtension::new(0, 0x100000000000000, 0);
    /// Inscriptional_Parthian
    pub const PRTI: ScriptExtension = INSCRIPTIONAL_PARTHIAN;
    /// Rejang
    pub const REJANG: ScriptExtension = ScriptExtension::new(0, 0x200000000000000, 0);
    /// Rejang
    pub const RJNG: ScriptExtension = REJANG;
    /// Hanifi_Rohingya
    pub const HANIFI_ROHINGYA: ScriptExtension = ScriptExtension::new(0, 0x400000000000000, 0);
    /// Hanifi_Rohingya
    pub const ROHG: ScriptExtension = HANIFI_ROHINGYA;
    /// Runic
    pub const RUNIC: ScriptExtension = ScriptExtension::new(0, 0x800000000000000, 0);
    /// Runic
    pub const RUNR: ScriptExtension = RUNIC;
    /// Samaritan
    pub const SAMARITAN: ScriptExtension = ScriptExtension::new(0, 0x1000000000000000, 0);
    /// Samaritan
    pub const SAMR: ScriptExtension = SAMARITAN;
    /// Old_South_Arabian
    pub const OLD_SOUTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x2000000000000000, 0);
    /// Old_South_Arabian
    pub const SARB: ScriptExtension = OLD_SOUTH_ARABIAN;
    /// Saurashtra
    pub const SAURASHTRA: ScriptExtension = ScriptExtension::new(0, 0x4000000000000000, 0);
    /// Saurashtra
    pub const SAUR: ScriptExtension = SAURASHTRA;
    /// SignWriting
    pub const SIGNWRITING: ScriptExtension = ScriptExtension::new(0, 0x8000000000000000, 0);
    /// SignWriting
    pub const SGNW: ScriptExtension = SIGNWRITING;
    /// Shavian
    pub const SHAVIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x1);
    /// Shavian
    pub const SHAW: ScriptExtension = SHAVIAN;
    /// Sharada
    pub const SHARADA: ScriptExtension = ScriptExtension::new(0, 0, 0x2);
    /// Sharada
    pub const SHRD: ScriptExtension = SHARADA;
    /// Siddham
    pub const SIDDHAM: ScriptExtension = ScriptExtension::new(0, 0, 0x4);
    /// Siddham
    pub const SIDD: ScriptExtension = SIDDHAM;
    /// Sidetic
    pub const SIDETIC: ScriptExtension = ScriptExtension::new(0, 0, 0x8);
    /// Sidetic
    pub const SIDT: ScriptExtension = SIDETIC;
    /// Khudawadi
    pub const KHUDAWADI: ScriptExtension = ScriptExtension::new(0, 0, 0x10);
    /// Khudawadi
    pub const SIND: ScriptExtension = KHUDAWADI;
    /// Sinhala
    pub const SINHALA: ScriptExtension = ScriptExtension::new(0, 0, 0x20);
    /// Sinhala
    pub const SINH: ScriptExtension = SINHALA;
    /// Sogdian
    pub const SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x40);
    /// Sogdian
    pub const SOGD: ScriptExtension = SOGDIAN;
    /// Old_Sogdian
    pub const OLD_SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x80);
    /// Old_Sogdian
    pub const SOGO: ScriptExtension = OLD_SOGDIAN;
    /// Sora_Sompeng
    pub const SORA_SOMPENG: ScriptExtension = ScriptExtension::new(0, 0, 0x100);
    /// Sora_Sompeng
    pub const SORA: ScriptExtension = SORA_SOMPENG;
    /// Soyombo
    pub const SOYOMBO: ScriptExtension = ScriptExtension::new(0, 0, 0x200);
    /// Soyombo
    pub const SOYO: ScriptExtension = SOYOMBO;
    /// Sundanese
    pub const SUNDANESE: ScriptExtension = ScriptExtension::new(0, 0, 0x400);
    /// Sundanese
    pub const SUND: ScriptExtension = SUNDANESE;
    /// Sunuwar
    pub const SUNUWAR: ScriptExtension = ScriptExtension::new(0, 0, 0x800);
    /// Sunuwar
    pub const SUNU: ScriptExtension = SUNUWAR;
    /// Syloti_Nagri
    pub const SYLOTI_NAGRI: ScriptExtension = ScriptExtension::new(0, 0, 0x1000);
    /// Syloti_Nagri
    pub const SYLO: ScriptExtension = SYLOTI_NAGRI;
    /// Syriac
    pub const SYRIAC: ScriptExtension = ScriptExtension::new(0, 0, 0x2000);
    /// Syriac
    pub const SYRC: ScriptExtension = SYRIAC;
    /// Tagbanwa
    pub const TAGBANWA: ScriptExtension = ScriptExtension::new(0, 0, 0x4000);
    /// Tagbanwa
    pub const TAGB: ScriptExtension = TAGBANWA;
    /// Takri
    pub const TAKRI: ScriptExtension = ScriptExtension::new(0, 0, 0x8000);
    /// Takri
    pub const TAKR: ScriptExtension = TAKRI;
    /// Tai_Le
    pub const TAI_LE: ScriptExtension = ScriptExtension::new(0, 0, 0x10000);
    /// Tai_Le
    pub const TALE: ScriptExtension = TAI_LE;
    /// New_Tai_Lue
    pub const NEW_TAI_LUE: ScriptExtension = ScriptExtension::new(0, 0, 0x20000);
    /// New_Tai_Lue
    pub const TALU: ScriptExtension = NEW_TAI_LUE;
    /// Tamil
    pub const TAMIL: ScriptExtension = ScriptExtension::new(0, 0, 0x40000);
    /// Tamil
    pub const TAML: ScriptExtension = TAMIL;
    /// Tangut
    pub const TANGUT: ScriptExtension = ScriptExtension::new(0, 0, 0x80000);
    /// Tangut
    pub const TANG: ScriptExtension = TANGUT;
    /// Tai_Viet
    pub const TAI_VIET: ScriptExtension = ScriptExtension::new(0, 0, 0x100000);
    /// Tai_Viet
    pub const TAVT: ScriptExtension = TAI_VIET;
    /// Tai_Yo
    pub const TAI_YO: ScriptExtension = ScriptExtension::new(0, 0, 0x200000);
    /// Tai_Yo
    pub const TAYO: ScriptExtension = TAI_YO;
    /// Telugu
    pub const TELUGU: ScriptExtension = ScriptExtension::new(0, 0, 0x400000);
    /// Telugu
    pub const TELU: ScriptExtension = TELUGU;
    /// Tifinagh
    pub const TIFINAGH: ScriptExtension = ScriptExtension::new(0, 0, 0x800000);
    /// Tifinagh
    pub const TFNG: ScriptExtension = TIFINAGH;
    /// Tagalog
    pub const TAGALOG: ScriptExtension = ScriptExtension::new(0, 0, 0x1000000);
    /// Tagalog
    pub const TGLG: ScriptExtension = TAGALOG;
    /// Thaana
    pub const THAANA: ScriptExtension = ScriptExtension::new(0, 0, 0x2000000);
    /// Thaana
    pub const THAA: ScriptExtension = THAANA;
    /// Thai
    pub const THAI: ScriptExtension = ScriptExtension::new(0, 0, 0x4000000);
    /// Tibetan
    pub const TIBETAN: ScriptExtension = ScriptExtension::new(0, 0, 0x8000000);
    /// Tibetan
    pub const TIBT: ScriptExtension = TIBETAN;
    /// Tirhuta
    pub const TIRHUTA: ScriptExtension = ScriptExtension::new(0, 0, 0x10000000);
    /// Tirhuta
    pub const TIRH: ScriptExtension = TIRHUTA;
    /// Tangsa
    pub const TANGSA: ScriptExtension = ScriptExtension::new(0, 0, 0x20000000);
    /// Tangsa
    pub const TNSA: ScriptExtension = TANGSA;
    /// Todhri
    pub const TODHRI: ScriptExtension = ScriptExtension::new(0, 0, 0x40000000);
    /// Todhri
    pub const TODR: ScriptExtension = TODHRI;
    /// Tolong_Siki
    pub const TOLONG_SIKI: ScriptExtension = ScriptExtension::new(0, 0, 0x80000000);
    /// Tolong_Siki
    pub const TOLS: ScriptExtension = TOLONG_SIKI;
    /// Toto
    pub const TOTO: ScriptExtension = ScriptExtension::new(0, 0, 0x100000000);
    /// Tulu_Tigalari
    pub const TULU_TIGALARI: ScriptExtension = ScriptExtension::new(0, 0, 0x200000000);
    /// Tulu_Tigalari
    pub const TUTG: ScriptExtension = TULU_TIGALARI;
    /// Ugaritic
    pub const UGARITIC: ScriptExtension = ScriptExtension::new(0, 0, 0x400000000);
    /// Ugaritic
    pub const UGAR: ScriptExtension = UGARITIC;
    /// Vai
    pub const VAI: ScriptExtension = ScriptExtension::new(0, 0, 0x800000000);
    /// Vai
    pub const VAII: ScriptExtension = VAI;
    /// Vithkuqi
    pub const VITHKUQI: ScriptExtension = ScriptExtension::new(0, 0, 0x1000000000);
    /// Vithkuqi
    pub const VITH: ScriptExtension = VITHKUQI;
    /// Warang_Citi
    pub const WARANG_CITI: ScriptExtension = ScriptExtension::new(0, 0, 0x2000000000);
    /// Warang_Citi
    pub const WARA: ScriptExtension = WARANG_CITI;
    /// Wancho
    pub const WANCHO: ScriptExtension = ScriptExtension::new(0, 0, 0x4000000000);
    /// Wancho
    pub const WCHO: ScriptExtension = WANCHO;
    /// Old_Persian
    pub const OLD_PERSIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x8000000000);
    /// Old_Persian
    pub const XPEO: ScriptExtension = OLD_PERSIAN;
    /// Cuneiform
    pub const CUNEIFORM: ScriptExtension = ScriptExtension::new(0, 0, 0x10000000000);
    /// Cuneiform
    pub const XSUX: ScriptExtension = CUNEIFORM;
    /// Yezidi
    pub const YEZIDI: ScriptExtension = ScriptExtension::new(0, 0, 0x20000000000);
    /// Yezidi
    pub const YEZI: ScriptExtension = YEZIDI;
    /// Yi
    pub const YI: ScriptExtension = ScriptExtension::new(0, 0, 0x40000000000);
    /// Yi
    pub const YIII: ScriptExtension = YI;
    /// Zanabazar_Square
    pub const ZANABAZAR_SQUARE: ScriptExtension = ScriptExtension::new(0, 0, 0x80000000000);
    /// Zanabazar_Square
    pub const ZANB: ScriptExtension = ZANABAZAR_SQUARE;
    /// Avestan, Carian, Coptic, Duployan, Elbasan, Georgian, Glagolitic, Gunjala_Gondi, Gothic, Greek, Han, Latin, Lydian, Mahajani, Old_Permic, Shavian
    pub const AVST_CARI_COPT_DUPL_ELBA_GEOR_GLAG_GONG_GOTH_GREK_HANI_LATN_LYDI_MAHJ_PERM_SHAW: ScriptExtension = AVST.union(CARI).union(COPT).union(DUPL).union(ELBA).union(GEOR).union(GLAG).union(GONG).union(GOTH).union(GREK).union(HANI).union(LATN).union(LYDI).union(MAHJ).union(PERM).union(SHAW);
    /// Bengali, Cyrillic, Devanagari, Latin, Lisu, Thai, Toto
    pub const BENG_CYRL_DEVA_LATN_LISU_THAI_TOTO: ScriptExtension = BENG.union(CYRL).union(DEVA).union(LATN).union(LISU).union(THAI).union(TOTO);
    /// Bopomofo, Latin
    pub const BOPO_LATN: ScriptExtension = BOPO.union(LATN);
    /// Latin, Lisu
    pub const LATN_LISU: ScriptExtension = LATN.union(LISU);
    /// Latin, Thai
    pub const LATN_THAI: ScriptExtension = LATN.union(THAI);
    /// Cherokee, Coptic, Cyrillic, Greek, Latin, Old_Permic, Sunuwar, Tai_Le
    pub const CHER_COPT_CYRL_GREK_LATN_PERM_SUNU_TALE: ScriptExtension = CHER.union(COPT).union(CYRL).union(GREK).union(LATN).union(PERM).union(SUNU).union(TALE);
    /// Cherokee, Cyrillic, Greek, Latin, Osage, Sunuwar, Tai_Le, Todhri
    pub const CHER_CYRL_GREK_LATN_OSGE_SUNU_TALE_TODR: ScriptExtension = CHER.union(CYRL).union(GREK).union(LATN).union(OSGE).union(SUNU).union(TALE).union(TODR);
    /// Cherokee, Cyrillic, Latin, Tifinagh
    pub const CHER_CYRL_LATN_TFNG: ScriptExtension = CHER.union(CYRL).union(LATN).union(TFNG);
    /// Glagolitic, Latin, Sunuwar, Syriac, Thai
    pub const GLAG_LATN_SUNU_SYRC_THAI: ScriptExtension = GLAG.union(LATN).union(SUNU).union(SYRC).union(THAI);
    /// Caucasian_Albanian, Cherokee, Coptic, Cyrillic, Gothic, Greek, Latin, Osage, Syriac, Tifinagh, Todhri
    pub const AGHB_CHER_COPT_CYRL_GOTH_GREK_LATN_OSGE_SYRC_TFNG_TODR: ScriptExtension = AGHB.union(CHER).union(COPT).union(CYRL).union(GOTH).union(GREK).union(LATN).union(OSGE).union(SYRC).union(TFNG).union(TODR);
    /// Coptic, Elbasan, Glagolitic, Gothic, Katakana, Latin
    pub const COPT_ELBA_GLAG_GOTH_KANA_LATN: ScriptExtension = COPT.union(ELBA).union(GLAG).union(GOTH).union(KANA).union(LATN);
    /// Cyrillic, Greek, Latin, Old_Permic, Tifinagh
    pub const CYRL_GREK_LATN_PERM_TFNG: ScriptExtension = CYRL.union(GREK).union(LATN).union(PERM).union(TFNG);
    /// Coptic, Duployan, Hebrew, Latin, Old_Permic, Syriac, Tai_Le, Tifinagh, Todhri
    pub const COPT_DUPL_HEBR_LATN_PERM_SYRC_TALE_TFNG_TODR: ScriptExtension = COPT.union(DUPL).union(HEBR).union(LATN).union(PERM).union(SYRC).union(TALE).union(TFNG).union(TODR);
    /// Armenian, Cyrillic, Duployan, Gothic, Greek, Hebrew, Latin, Old_Permic, Syriac, Tai_Le, Tifinagh
    pub const ARMN_CYRL_DUPL_GOTH_GREK_HEBR_LATN_PERM_SYRC_TALE_TFNG: ScriptExtension = ARMN.union(CYRL).union(DUPL).union(GOTH).union(GREK).union(HEBR).union(LATN).union(PERM).union(SYRC).union(TALE).union(TFNG);
    /// Latin, Tifinagh
    pub const LATN_TFNG: ScriptExtension = LATN.union(TFNG);
    /// Duployan, Latin, Syriac
    pub const DUPL_LATN_SYRC: ScriptExtension = DUPL.union(LATN).union(SYRC);
    /// Cherokee, Cyrillic, Latin, Osage
    pub const CHER_CYRL_LATN_OSGE: ScriptExtension = CHER.union(CYRL).union(LATN).union(OSGE);
    /// Cherokee, Latin, Tai_Le
    pub const CHER_LATN_TALE: ScriptExtension = CHER.union(LATN).union(TALE);
    /// Latin, Sunuwar
    pub const LATN_SUNU: ScriptExtension = LATN.union(SUNU);
    /// Ethiopic, Latin
    pub const ETHI_LATN: ScriptExtension = ETHI.union(LATN);
    /// Cyrillic, Latin, Todhri
    pub const CYRL_LATN_TODR: ScriptExtension = CYRL.union(LATN).union(TODR);
    /// Greek, Latin, Old_Permic, Todhri
    pub const GREK_LATN_PERM_TODR: ScriptExtension = GREK.union(LATN).union(PERM).union(TODR);
    /// Cherokee, Duployan, Katakana, Latin, Syriac, Tifinagh
    pub const CHER_DUPL_KANA_LATN_SYRC_TFNG: ScriptExtension = CHER.union(DUPL).union(KANA).union(LATN).union(SYRC).union(TFNG);
    /// Cherokee, Duployan, Latin, Syriac
    pub const CHER_DUPL_LATN_SYRC: ScriptExtension = CHER.union(DUPL).union(LATN).union(SYRC);
    /// Latin, Syriac
    pub const LATN_SYRC: ScriptExtension = LATN.union(SYRC);
    /// Latin, Sunuwar, Syriac
    pub const LATN_SUNU_SYRC: ScriptExtension = LATN.union(SUNU).union(SYRC);
    /// Cherokee, Latin, Syriac
    pub const CHER_LATN_SYRC: ScriptExtension = CHER.union(LATN).union(SYRC);
    /// Caucasian_Albanian, Cherokee, Gothic, Latin, Sunuwar, Syriac, Thai
    pub const AGHB_CHER_GOTH_LATN_SUNU_SYRC_THAI: ScriptExtension = AGHB.union(CHER).union(GOTH).union(LATN).union(SUNU).union(SYRC).union(THAI);
    /// Latin, Osage
    pub const LATN_OSGE: ScriptExtension = LATN.union(OSGE);
    /// Caucasian_Albanian, Latin, Todhri
    pub const AGHB_LATN_TODR: ScriptExtension = AGHB.union(LATN).union(TODR);
    /// Coptic, Greek
    pub const COPT_GREK: ScriptExtension = COPT.union(GREK);
    /// Cyrillic, Old_Permic
    pub const CYRL_PERM: ScriptExtension = CYRL.union(PERM);
    /// Cyrillic, Glagolitic
    pub const CYRL_GLAG: ScriptExtension = CYRL.union(GLAG);
    /// Cyrillic, Latin
    pub const CYRL_LATN: ScriptExtension = CYRL.union(LATN);
    /// Armenian, Georgian, Glagolitic
    pub const ARMN_GEOR_GLAG: ScriptExtension = ARMN.union(GEOR).union(GLAG);
    /// Arabic, Garay, Nko, Hanifi_Rohingya, Syriac, Thaana, Yezidi
    pub const ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI: ScriptExtension = ARAB.union(GARA).union(NKOO).union(ROHG).union(SYRC).union(THAA).union(YEZI);
    /// Arabic, Syriac, Thaana
    pub const ARAB_SYRC_THAA: ScriptExtension = ARAB.union(SYRC).union(THAA);
    /// Adlam, Arabic, Garay, Nko, Hanifi_Rohingya, Syriac, Thaana, Yezidi
    pub const ADLM_ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI: ScriptExtension = ADLM.union(ARAB).union(GARA).union(NKOO).union(ROHG).union(SYRC).union(THAA).union(YEZI);
    /// Adlam, Arabic, Mandaic, Manichaean, Old_Uyghur, Psalter_Pahlavi, Hanifi_Rohingya, Sogdian, Syriac
    pub const ADLM_ARAB_MAND_MANI_OUGR_PHLP_ROHG_SOGD_SYRC: ScriptExtension = ADLM.union(ARAB).union(MAND).union(MANI).union(OUGR).union(PHLP).union(ROHG).union(SOGD).union(SYRC);
    /// Arabic, Syriac
    pub const ARAB_SYRC: ScriptExtension = ARAB.union(SYRC);
    /// Arabic, Thaana, Yezidi
    pub const ARAB_THAA_YEZI: ScriptExtension = ARAB.union(THAA).union(YEZI);
    /// Arabic, Hanifi_Rohingya
    pub const ARAB_ROHG: ScriptExtension = ARAB.union(ROHG);
    /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Nandinagari, Newa, Oriya, Sharada, Tamil, Telugu, Tirhuta
    pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_NAND_NEWA_ORYA_SHRD_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(NAND).union(NEWA).union(ORYA).union(SHRD).union(TAML).union(TELU).union(TIRH);
    /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Newa, Oriya, Tamil, Telugu, Tirhuta
    pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_NEWA_ORYA_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(NEWA).union(ORYA).union(TAML).union(TELU).union(TIRH);
    /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurmukhi, Kannada, Mahajani, Malayalam, Nandinagari, Ol_Onal, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta
    pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(MAHJ).union(MLYM).union(NAND).union(ONAO).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH);
    /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurung_Khema, Gurmukhi, Kannada, Limbu, Mahajani, Malayalam, Nandinagari, Ol_Onal, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta
    pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GUKH_GURU_KNDA_LIMB_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GUKH).union(GURU).union(KNDA).union(LIMB).union(MAHJ).union(MLYM).union(NAND).union(ONAO).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH);
    /// Devanagari, Dogra, Kaithi, Mahajani
    pub const DEVA_DOGR_KTHI_MAHJ: ScriptExtension = DEVA.union(DOGR).union(KTHI).union(MAHJ);
    /// Bengali, Chakma, Syloti_Nagri
    pub const BENG_CAKM_SYLO: ScriptExtension = BENG.union(CAKM).union(SYLO);
    /// Gurmukhi, Multani
    pub const GURU_MULT: ScriptExtension = GURU.union(MULT);
    /// Gujarati, Khojki
    pub const GUJR_KHOJ: ScriptExtension = GUJR.union(KHOJ);
    /// Grantha, Tamil
    pub const GRAN_TAML: ScriptExtension = GRAN.union(TAML);
    /// Kannada, Nandinagari, Tulu_Tigalari
    pub const KNDA_NAND_TUTG: ScriptExtension = KNDA.union(NAND).union(TUTG);
    /// Chakma, Myanmar, Tai_Le
    pub const CAKM_MYMR_TALE: ScriptExtension = CAKM.union(MYMR).union(TALE);
    /// Georgian, Glagolitic, Latin
    pub const GEOR_GLAG_LATN: ScriptExtension = GEOR.union(GLAG).union(LATN);
    /// Buhid, Hanunoo, Tagbanwa, Tagalog
    pub const BUHD_HANO_TAGB_TGLG: ScriptExtension = BUHD.union(HANO).union(TAGB).union(TGLG);
    /// Mongolian, Phags_Pa
    pub const MONG_PHAG: ScriptExtension = MONG.union(PHAG);
    /// Bengali, Devanagari, Grantha, Kannada
    pub const BENG_DEVA_GRAN_KNDA: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA);
    /// Devanagari, Grantha, Kannada
    pub const DEVA_GRAN_KNDA: ScriptExtension = DEVA.union(GRAN).union(KNDA);
    /// Bengali, Devanagari, Newa, Telugu, Tirhuta
    pub const BENG_DEVA_NEWA_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(NEWA).union(TELU).union(TIRH);
    /// Bengali, Devanagari, Telugu
    pub const BENG_DEVA_TELU: ScriptExtension = BENG.union(DEVA).union(TELU);
    /// Devanagari, Newa, Sharada
    pub const DEVA_NEWA_SHRD: ScriptExtension = DEVA.union(NEWA).union(SHRD);
    /// Bengali, Devanagari, Newa, Telugu
    pub const BENG_DEVA_NEWA_TELU: ScriptExtension = BENG.union(DEVA).union(NEWA).union(TELU);
    /// Devanagari, Sharada
    pub const DEVA_SHRD: ScriptExtension = DEVA.union(SHRD);
    /// Devanagari, Kannada, Malayalam, Oriya, Tamil, Telugu
    pub const DEVA_KNDA_MLYM_ORYA_TAML_TELU: ScriptExtension = DEVA.union(KNDA).union(MLYM).union(ORYA).union(TAML).union(TELU);
    /// Bengali, Devanagari
    pub const BENG_DEVA: ScriptExtension = BENG.union(DEVA);
    /// Devanagari, Newa, Tirhuta
    pub const DEVA_NEWA_TIRH: ScriptExtension = DEVA.union(NEWA).union(TIRH);
    /// Devanagari, Nandinagari, Newa
    pub const DEVA_NAND_NEWA: ScriptExtension = DEVA.union(NAND).union(NEWA);
    /// Bengali, Devanagari, Sharada
    pub const BENG_DEVA_SHRD: ScriptExtension = BENG.union(DEVA).union(SHRD);
    /// Devanagari, Newa
    pub const DEVA_NEWA: ScriptExtension = DEVA.union(NEWA);
    /// Bengali, Devanagari, Newa, Sharada
    pub const BENG_DEVA_NEWA_SHRD: ScriptExtension = BENG.union(DEVA).union(NEWA).union(SHRD);
    /// Bengali, Devanagari, Grantha, Kannada, Malayalam, Nandinagari, Oriya, Sinhala, Telugu, Tirhuta, Tulu_Tigalari
    pub const BENG_DEVA_GRAN_KNDA_MLYM_NAND_ORYA_SINH_TELU_TIRH_TUTG: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA).union(MLYM).union(NAND).union(ORYA).union(SINH).union(TELU).union(TIRH).union(TUTG);
    /// Devanagari, Grantha
    pub const DEVA_GRAN: ScriptExtension = DEVA.union(GRAN);
    /// Devanagari, Grantha, Kannada, Tulu_Tigalari
    pub const DEVA_GRAN_KNDA_TUTG: ScriptExtension = DEVA.union(GRAN).union(KNDA).union(TUTG);
    /// Cyrillic, Latin, Syriac
    pub const CYRL_LATN_SYRC: ScriptExtension = CYRL.union(LATN).union(SYRC);
    /// Latin, Mongolian, Phags_Pa
    pub const LATN_MONG_PHAG: ScriptExtension = LATN.union(MONG).union(PHAG);
    /// Adlam, Arabic
    pub const ADLM_ARAB: ScriptExtension = ADLM.union(ARAB);
    /// Carian, Georgian, Glagolitic, Old_Hungarian, Lycian, Old_Turkic
    pub const CARI_GEOR_GLAG_HUNG_LYCI_ORKH: ScriptExtension = CARI.union(GEOR).union(GLAG).union(HUNG).union(LYCI).union(ORKH);
    /// Carian, Greek, Old_Hungarian, Meroitic_Hieroglyphs
    pub const CARI_GREK_HUNG_MERO: ScriptExtension = CARI.union(GREK).union(HUNG).union(MERO);
    /// Devanagari, Grantha, Latin
    pub const DEVA_GRAN_LATN: ScriptExtension = DEVA.union(GRAN).union(LATN);
    /// Coptic, Latin
    pub const COPT_LATN: ScriptExtension = COPT.union(LATN);
    /// Avestan, Old_Turkic
    pub const AVST_ORKH: ScriptExtension = AVST.union(ORKH);
    /// Avestan, Carian, Georgian, Old_Hungarian, Kaithi, Lydian, Samaritan
    pub const AVST_CARI_GEOR_HUNG_KTHI_LYDI_SAMR: ScriptExtension = AVST.union(CARI).union(GEOR).union(HUNG).union(KTHI).union(LYDI).union(SAMR);
    /// Adlam, Arabic, Old_Hungarian
    pub const ADLM_ARAB_HUNG: ScriptExtension = ADLM.union(ARAB).union(HUNG);
    /// Han, Tangut
    pub const HANI_TANG: ScriptExtension = HANI.union(TANG);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Yi
    pub const BOPO_HANG_HANI_HIRA_KANA_MONG_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(YIII);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Phags_Pa, Yi
    pub const BOPO_HANG_HANI_HIRA_KANA_MONG_PHAG_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(PHAG).union(YIII);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana
    pub const BOPO_HANG_HANI_HIRA_KANA: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Tibetan, Yi
    pub const BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(TIBT).union(YIII);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana, Lisu, Mongolian, Tibetan, Yi
    pub const BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(LISU).union(MONG).union(TIBT).union(YIII);
    /// Bopomofo, Hangul, Han, Hiragana, Katakana, Yi
    pub const BOPO_HANG_HANI_HIRA_KANA_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(YIII);
    /// Bopomofo, Han
    pub const BOPO_HANI: ScriptExtension = BOPO.union(HANI);
    /// Hiragana, Katakana
    pub const HIRA_KANA: ScriptExtension = HIRA.union(KANA);
    /// Han, Hiragana, Katakana
    pub const HANI_HIRA_KANA: ScriptExtension = HANI.union(HIRA).union(KANA);
    /// Han, Latin
    pub const HANI_LATN: ScriptExtension = HANI.union(LATN);
    /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Malayalam, Modi, Nandinagari, Sharada, Khudawadi, Takri, Tirhuta, Tulu_Tigalari
    pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MLYM_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MLYM).union(MODI).union(NAND).union(SHRD).union(SIND).union(TAKR).union(TIRH).union(TUTG);
    /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Modi, Nandinagari, Sharada, Khudawadi, Takri, Tirhuta, Tulu_Tigalari
    pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MODI).union(NAND).union(SHRD).union(SIND).union(TAKR).union(TIRH).union(TUTG);
    /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kaithi, Mahajani, Modi, Khudawadi, Takri, Tirhuta
    pub const DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KTHI).union(MAHJ).union(MODI).union(SIND).union(TAKR).union(TIRH);
    /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kaithi, Mahajani, Modi, Sharada, Khudawadi, Takri, Tirhuta
    pub const DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SHRD_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KTHI).union(MAHJ).union(MODI).union(SHRD).union(SIND).union(TAKR).union(TIRH);
    /// Bengali, Devanagari, Tulu_Tigalari
    pub const BENG_DEVA_TUTG: ScriptExtension = BENG.union(DEVA).union(TUTG);
    /// Devanagari, Tamil
    pub const DEVA_TAML: ScriptExtension = DEVA.union(TAML);
    /// Kayah_Li, Latin, Myanmar
    pub const KALI_LATN_MYMR: ScriptExtension = KALI.union(LATN).union(MYMR);
    /// Buginese, Javanese
    pub const BUGI_JAVA: ScriptExtension = BUGI.union(JAVA);
    /// Arabic, Nko
    pub const ARAB_NKOO: ScriptExtension = ARAB.union(NKOO);
    /// Arabic, Thaana
    pub const ARAB_THAA: ScriptExtension = ARAB.union(THAA);
    /// Cypro_Minoan, Cypriot, Linear_B
    pub const CPMN_CPRT_LINB: ScriptExtension = CPMN.union(CPRT).union(LINB);
    /// Cypriot, Linear_B
    pub const CPRT_LINB: ScriptExtension = CPRT.union(LINB);
    /// Cypriot, Linear_A, Linear_B
    pub const CPRT_LINA_LINB: ScriptExtension = CPRT.union(LINA).union(LINB);
    /// Arabic, Coptic
    pub const ARAB_COPT: ScriptExtension = ARAB.union(COPT);
    /// Manichaean, Old_Uyghur
    pub const MANI_OUGR: ScriptExtension = MANI.union(OUGR);
}

impl Script {

    #[inline]
    pub(crate) fn inner_full_name(self) -> &'static str {
        match self {
            Script::Unknown => "Unknown",
            Script::Common => "Common",
            Script::Inherited => "Inherited",
            Script::Adlam => "Adlam",
            Script::Caucasian_Albanian => "Caucasian_Albanian",
            Script::Ahom => "Ahom",
            Script::Arabic => "Arabic",
            Script::Imperial_Aramaic => "Imperial_Aramaic",
            Script::Armenian => "Armenian",
            Script::Avestan => "Avestan",
            Script::Balinese => "Balinese",
            Script::Bamum => "Bamum",
            Script::Bassa_Vah => "Bassa_Vah",
            Script::Batak => "Batak",
            Script::Bengali => "Bengali",
            Script::Beria_Erfe => "Beria_Erfe",
            Script::Bhaiksuki => "Bhaiksuki",
            Script::Bopomofo => "Bopomofo",
            Script::Brahmi => "Brahmi",
            Script::Braille => "Braille",
            Script::Buginese => "Buginese",
            Script::Buhid => "Buhid",
            Script::Chakma => "Chakma",
            Script::Canadian_Aboriginal => "Canadian_Aboriginal",
            Script::Carian => "Carian",
            Script::Cham => "Cham",
            Script::Cherokee => "Cherokee",
            Script::Chorasmian => "Chorasmian",
            Script::Coptic => "Coptic",
            Script::Cypro_Minoan => "Cypro_Minoan",
            Script::Cypriot => "Cypriot",
            Script::Cyrillic => "Cyrillic",
            Script::Devanagari => "Devanagari",
            Script::Dives_Akuru => "Dives_Akuru",
            Script::Dogra => "Dogra",
            Script::Deseret => "Deseret",
            Script::Duployan => "Duployan",
            Script::Egyptian_Hieroglyphs => "Egyptian_Hieroglyphs",
            Script::Elbasan => "Elbasan",
            Script::Elymaic => "Elymaic",
            Script::Ethiopic => "Ethiopic",
            Script::Garay => "Garay",
            Script::Georgian => "Georgian",
            Script::Glagolitic => "Glagolitic",
            Script::Gunjala_Gondi => "Gunjala_Gondi",
            Script::Masaram_Gondi => "Masaram_Gondi",
            Script::Gothic => "Gothic",
            Script::Grantha => "Grantha",
            Script::Greek => "Greek",
            Script::Gujarati => "Gujarati",
            Script::Gurung_Khema => "Gurung_Khema",
            Script::Gurmukhi => "Gurmukhi",
            Script::Hangul => "Hangul",
            Script::Han => "Han",
            Script::Hanunoo => "Hanunoo",
            Script::Hatran => "Hatran",
            Script::Hebrew => "Hebrew",
            Script::Hiragana => "Hiragana",
            Script::Anatolian_Hieroglyphs => "Anatolian_Hieroglyphs",
            Script::Pahawh_Hmong => "Pahawh_Hmong",
            Script::Nyiakeng_Puachue_Hmong => "Nyiakeng_Puachue_Hmong",
            Script::Old_Hungarian => "Old_Hungarian",
            Script::Old_Italic => "Old_Italic",
            Script::Javanese => "Javanese",
            Script::Kayah_Li => "Kayah_Li",
            Script::Katakana => "Katakana",
            Script::Kawi => "Kawi",
            Script::Kharoshthi => "Kharoshthi",
            Script::Khmer => "Khmer",
            Script::Khojki => "Khojki",
            Script::Khitan_Small_Script => "Khitan_Small_Script",
            Script::Kannada => "Kannada",
            Script::Kirat_Rai => "Kirat_Rai",
            Script::Kaithi => "Kaithi",
            Script::Tai_Tham => "Tai_Tham",
            Script::Lao => "Lao",
            Script::Latin => "Latin",
            Script::Lepcha => "Lepcha",
            Script::Limbu => "Limbu",
            Script::Linear_A => "Linear_A",
            Script::Linear_B => "Linear_B",
            Script::Lisu => "Lisu",
            Script::Lycian => "Lycian",
            Script::Lydian => "Lydian",
            Script::Mahajani => "Mahajani",
            Script::Makasar => "Makasar",
            Script::Mandaic => "Mandaic",
            Script::Manichaean => "Manichaean",
            Script::Marchen => "Marchen",
            Script::Medefaidrin => "Medefaidrin",
            Script::Mende_Kikakui => "Mende_Kikakui",
            Script::Meroitic_Cursive => "Meroitic_Cursive",
            Script::Meroitic_Hieroglyphs => "Meroitic_Hieroglyphs",
            Script::Malayalam => "Malayalam",
            Script::Modi => "Modi",
            Script::Mongolian => "Mongolian",
            Script::Mro => "Mro",
            Script::Meetei_Mayek => "Meetei_Mayek",
            Script::Multani => "Multani",
            Script::Myanmar => "Myanmar",
            Script::Nag_Mundari => "Nag_Mundari",
            Script::Nandinagari => "Nandinagari",
            Script::Old_North_Arabian => "Old_North_Arabian",
            Script::Nabataean => "Nabataean",
            Script::Newa => "Newa",
            Script::Nko => "Nko",
            Script::Nushu => "Nushu",
            Script::Ogham => "Ogham",
            Script::Ol_Chiki => "Ol_Chiki",
            Script::Ol_Onal => "Ol_Onal",
            Script::Old_Turkic => "Old_Turkic",
            Script::Oriya => "Oriya",
            Script::Osage => "Osage",
            Script::Osmanya => "Osmanya",
            Script::Old_Uyghur => "Old_Uyghur",
            Script::Palmyrene => "Palmyrene",
            Script::Pau_Cin_Hau => "Pau_Cin_Hau",
            Script::Old_Permic => "Old_Permic",
            Script::Phags_Pa => "Phags_Pa",
            Script::Inscriptional_Pahlavi => "Inscriptional_Pahlavi",
            Script::Psalter_Pahlavi => "Psalter_Pahlavi",
            Script::Phoenician => "Phoenician",
            Script::Miao => "Miao",
            Script::Inscriptional_Parthian => "Inscriptional_Parthian",
            Script::Rejang => "Rejang",
            Script::Hanifi_Rohingya => "Hanifi_Rohingya",
            Script::Runic => "Runic",
            Script::Samaritan => "Samaritan",
            Script::Old_South_Arabian => "Old_South_Arabian",
            Script::Saurashtra => "Saurashtra",
            Script::SignWriting => "SignWriting",
            Script::Shavian => "Shavian",
            Script::Sharada => "Sharada",
            Script::Siddham => "Siddham",
            Script::Sidetic => "Sidetic",
            Script::Khudawadi => "Khudawadi",
            Script::Sinhala => "Sinhala",
            Script::Sogdian => "Sogdian",
            Script::Old_Sogdian => "Old_Sogdian",
            Script::Sora_Sompeng => "Sora_Sompeng",
            Script::Soyombo => "Soyombo",
            Script::Sundanese => "Sundanese",
            Script::Sunuwar => "Sunuwar",
            Script::Syloti_Nagri => "Syloti_Nagri",
            Script::Syriac => "Syriac",
            Script::Tagbanwa => "Tagbanwa",
            Script::Takri => "Takri",
            Script::Tai_Le => "Tai_Le",
            Script::New_Tai_Lue => "New_Tai_Lue",
            Script::Tamil => "Tamil",
            Script::Tangut => "Tangut",
            Script::Tai_Viet => "Tai_Viet",
            Script::Tai_Yo => "Tai_Yo",
            Script::Telugu => "Telugu",
            Script::Tifinagh => "Tifinagh",
            Script::Tagalog => "Tagalog",
            Script::Thaana => "Thaana",
            Script::Thai => "Thai",
            Script::Tibetan => "Tibetan",
            Script::Tirhuta => "Tirhuta",
            Script::Tangsa => "Tangsa",
            Script::Todhri => "Todhri",
            Script::Tolong_Siki => "Tolong_Siki",
            Script::Toto => "Toto",
            Script::Tulu_Tigalari => "Tulu_Tigalari",
            Script::Ugaritic => "Ugaritic",
            Script::Vai => "Vai",
            Script::Vithkuqi => "Vithkuqi",
            Script::Warang_Citi => "Warang_Citi",
            Script::Wancho => "Wancho",
            Script::Old_Persian => "Old_Persian",
            Script::Cuneiform => "Cuneiform",
            Script::Yezidi => "Yezidi",
            Script::Yi => "Yi",
            Script::Zanabazar_Square => "Zanabazar_Square",
        }
    }

    #[inline]
    pub(crate) fn inner_from_full_name(input: &str) -> Option<Self> {
        match input {
            "Unknown" => Some(Script::Unknown),
            "Common" => Some(Script::Common),
            "Inherited" => Some(Script::Inherited),
            "Adlam" => Some(Script::Adlam),
            "Caucasian_Albanian" => Some(Script::Caucasian_Albanian),
            "Ahom" => Some(Script::Ahom),
            "Arabic" => Some(Script::Arabic),
            "Imperial_Aramaic" => Some(Script::Imperial_Aramaic),
            "Armenian" => Some(Script::Armenian),
            "Avestan" => Some(Script::Avestan),
            "Balinese" => Some(Script::Balinese),
            "Bamum" => Some(Script::Bamum),
            "Bassa_Vah" => Some(Script::Bassa_Vah),
            "Batak" => Some(Script::Batak),
            "Bengali" => Some(Script::Bengali),
            "Beria_Erfe" => Some(Script::Beria_Erfe),
            "Bhaiksuki" => Some(Script::Bhaiksuki),
            "Bopomofo" => Some(Script::Bopomofo),
            "Brahmi" => Some(Script::Brahmi),
            "Braille" => Some(Script::Braille),
            "Buginese" => Some(Script::Buginese),
            "Buhid" => Some(Script::Buhid),
            "Chakma" => Some(Script::Chakma),
            "Canadian_Aboriginal" => Some(Script::Canadian_Aboriginal),
            "Carian" => Some(Script::Carian),
            "Cham" => Some(Script::Cham),
            "Cherokee" => Some(Script::Cherokee),
            "Chorasmian" => Some(Script::Chorasmian),
            "Coptic" => Some(Script::Coptic),
            "Cypro_Minoan" => Some(Script::Cypro_Minoan),
            "Cypriot" => Some(Script::Cypriot),
            "Cyrillic" => Some(Script::Cyrillic),
            "Devanagari" => Some(Script::Devanagari),
            "Dives_Akuru" => Some(Script::Dives_Akuru),
            "Dogra" => Some(Script::Dogra),
            "Deseret" => Some(Script::Deseret),
            "Duployan" => Some(Script::Duployan),
            "Egyptian_Hieroglyphs" => Some(Script::Egyptian_Hieroglyphs),
            "Elbasan" => Some(Script::Elbasan),
            "Elymaic" => Some(Script::Elymaic),
            "Ethiopic" => Some(Script::Ethiopic),
            "Garay" => Some(Script::Garay),
            "Georgian" => Some(Script::Georgian),
            "Glagolitic" => Some(Script::Glagolitic),
            "Gunjala_Gondi" => Some(Script::Gunjala_Gondi),
            "Masaram_Gondi" => Some(Script::Masaram_Gondi),
            "Gothic" => Some(Script::Gothic),
            "Grantha" => Some(Script::Grantha),
            "Greek" => Some(Script::Greek),
            "Gujarati" => Some(Script::Gujarati),
            "Gurung_Khema" => Some(Script::Gurung_Khema),
            "Gurmukhi" => Some(Script::Gurmukhi),
            "Hangul" => Some(Script::Hangul),
            "Han" => Some(Script::Han),
            "Hanunoo" => Some(Script::Hanunoo),
            "Hatran" => Some(Script::Hatran),
            "Hebrew" => Some(Script::Hebrew),
            "Hiragana" => Some(Script::Hiragana),
            "Anatolian_Hieroglyphs" => Some(Script::Anatolian_Hieroglyphs),
            "Pahawh_Hmong" => Some(Script::Pahawh_Hmong),
            "Nyiakeng_Puachue_Hmong" => Some(Script::Nyiakeng_Puachue_Hmong),
            "Old_Hungarian" => Some(Script::Old_Hungarian),
            "Old_Italic" => Some(Script::Old_Italic),
            "Javanese" => Some(Script::Javanese),
            "Kayah_Li" => Some(Script::Kayah_Li),
            "Katakana" => Some(Script::Katakana),
            "Kawi" => Some(Script::Kawi),
            "Kharoshthi" => Some(Script::Kharoshthi),
            "Khmer" => Some(Script::Khmer),
            "Khojki" => Some(Script::Khojki),
            "Khitan_Small_Script" => Some(Script::Khitan_Small_Script),
            "Kannada" => Some(Script::Kannada),
            "Kirat_Rai" => Some(Script::Kirat_Rai),
            "Kaithi" => Some(Script::Kaithi),
            "Tai_Tham" => Some(Script::Tai_Tham),
            "Lao" => Some(Script::Lao),
            "Latin" => Some(Script::Latin),
            "Lepcha" => Some(Script::Lepcha),
            "Limbu" => Some(Script::Limbu),
            "Linear_A" => Some(Script::Linear_A),
            "Linear_B" => Some(Script::Linear_B),
            "Lisu" => Some(Script::Lisu),
            "Lycian" => Some(Script::Lycian),
            "Lydian" => Some(Script::Lydian),
            "Mahajani" => Some(Script::Mahajani),
            "Makasar" => Some(Script::Makasar),
            "Mandaic" => Some(Script::Mandaic),
            "Manichaean" => Some(Script::Manichaean),
            "Marchen" => Some(Script::Marchen),
            "Medefaidrin" => Some(Script::Medefaidrin),
            "Mende_Kikakui" => Some(Script::Mende_Kikakui),
            "Meroitic_Cursive" => Some(Script::Meroitic_Cursive),
            "Meroitic_Hieroglyphs" => Some(Script::Meroitic_Hieroglyphs),
            "Malayalam" => Some(Script::Malayalam),
            "Modi" => Some(Script::Modi),
            "Mongolian" => Some(Script::Mongolian),
            "Mro" => Some(Script::Mro),
            "Meetei_Mayek" => Some(Script::Meetei_Mayek),
            "Multani" => Some(Script::Multani),
            "Myanmar" => Some(Script::Myanmar),
            "Nag_Mundari" => Some(Script::Nag_Mundari),
            "Nandinagari" => Some(Script::Nandinagari),
            "Old_North_Arabian" => Some(Script::Old_North_Arabian),
            "Nabataean" => Some(Script::Nabataean),
            "Newa" => Some(Script::Newa),
            "Nko" => Some(Script::Nko),
            "Nushu" => Some(Script::Nushu),
            "Ogham" => Some(Script::Ogham),
            "Ol_Chiki" => Some(Script::Ol_Chiki),
            "Ol_Onal" => Some(Script::Ol_Onal),
            "Old_Turkic" => Some(Script::Old_Turkic),
            "Oriya" => Some(Script::Oriya),
            "Osage" => Some(Script::Osage),
            "Osmanya" => Some(Script::Osmanya),
            "Old_Uyghur" => Some(Script::Old_Uyghur),
            "Palmyrene" => Some(Script::Palmyrene),
            "Pau_Cin_Hau" => Some(Script::Pau_Cin_Hau),
            "Old_Permic" => Some(Script::Old_Permic),
            "Phags_Pa" => Some(Script::Phags_Pa),
            "Inscriptional_Pahlavi" => Some(Script::Inscriptional_Pahlavi),
            "Psalter_Pahlavi" => Some(Script::Psalter_Pahlavi),
            "Phoenician" => Some(Script::Phoenician),
            "Miao" => Some(Script::Miao),
            "Inscriptional_Parthian" => Some(Script::Inscriptional_Parthian),
            "Rejang" => Some(Script::Rejang),
            "Hanifi_Rohingya" => Some(Script::Hanifi_Rohingya),
            "Runic" => Some(Script::Runic),
            "Samaritan" => Some(Script::Samaritan),
            "Old_South_Arabian" => Some(Script::Old_South_Arabian),
            "Saurashtra" => Some(Script::Saurashtra),
            "SignWriting" => Some(Script::SignWriting),
            "Shavian" => Some(Script::Shavian),
            "Sharada" => Some(Script::Sharada),
            "Siddham" => Some(Script::Siddham),
            "Sidetic" => Some(Script::Sidetic),
            "Khudawadi" => Some(Script::Khudawadi),
            "Sinhala" => Some(Script::Sinhala),
            "Sogdian" => Some(Script::Sogdian),
            "Old_Sogdian" => Some(Script::Old_Sogdian),
            "Sora_Sompeng" => Some(Script::Sora_Sompeng),
            "Soyombo" => Some(Script::Soyombo),
            "Sundanese" => Some(Script::Sundanese),
            "Sunuwar" => Some(Script::Sunuwar),
            "Syloti_Nagri" => Some(Script::Syloti_Nagri),
            "Syriac" => Some(Script::Syriac),
            "Tagbanwa" => Some(Script::Tagbanwa),
            "Takri" => Some(Script::Takri),
            "Tai_Le" => Some(Script::Tai_Le),
            "New_Tai_Lue" => Some(Script::New_Tai_Lue),
            "Tamil" => Some(Script::Tamil),
            "Tangut" => Some(Script::Tangut),
            "Tai_Viet" => Some(Script::Tai_Viet),
            "Tai_Yo" => Some(Script::Tai_Yo),
            "Telugu" => Some(Script::Telugu),
            "Tifinagh" => Some(Script::Tifinagh),
            "Tagalog" => Some(Script::Tagalog),
            "Thaana" => Some(Script::Thaana),
            "Thai" => Some(Script::Thai),
            "Tibetan" => Some(Script::Tibetan),
            "Tirhuta" => Some(Script::Tirhuta),
            "Tangsa" => Some(Script::Tangsa),
            "Todhri" => Some(Script::Todhri),
            "Tolong_Siki" => Some(Script::Tolong_Siki),
            "Toto" => Some(Script::Toto),
            "Tulu_Tigalari" => Some(Script::Tulu_Tigalari),
            "Ugaritic" => Some(Script::Ugaritic),
            "Vai" => Some(Script::Vai),
            "Vithkuqi" => Some(Script::Vithkuqi),
            "Warang_Citi" => Some(Script::Warang_Citi),
            "Wancho" => Some(Script::Wancho),
            "Old_Persian" => Some(Script::Old_Persian),
            "Cuneiform" => Some(Script::Cuneiform),
            "Yezidi" => Some(Script::Yezidi),
            "Yi" => Some(Script::Yi),
            "Zanabazar_Square" => Some(Script::Zanabazar_Square),
            _ => None,
        }
    }

    #[inline]
    pub(crate) fn inner_short_name(self) -> &'static str {
        match self {
            Script::Unknown => "Zzzz",
            Script::Common => "Zyyy",
            Script::Inherited => "Zinh",
            Script::Adlam => "Adlm",
            Script::Caucasian_Albanian => "Aghb",
            Script::Ahom => "Ahom",
            Script::Arabic => "Arab",
            Script::Imperial_Aramaic => "Armi",
            Script::Armenian => "Armn",
            Script::Avestan => "Avst",
            Script::Balinese => "Bali",
            Script::Bamum => "Bamu",
            Script::Bassa_Vah => "Bass",
            Script::Batak => "Batk",
            Script::Bengali => "Beng",
            Script::Beria_Erfe => "Berf",
            Script::Bhaiksuki => "Bhks",
            Script::Bopomofo => "Bopo",
            Script::Brahmi => "Brah",
            Script::Braille => "Brai",
            Script::Buginese => "Bugi",
            Script::Buhid => "Buhd",
            Script::Chakma => "Cakm",
            Script::Canadian_Aboriginal => "Cans",
            Script::Carian => "Cari",
            Script::Cham => "Cham",
            Script::Cherokee => "Cher",
            Script::Chorasmian => "Chrs",
            Script::Coptic => "Copt",
            Script::Cypro_Minoan => "Cpmn",
            Script::Cypriot => "Cprt",
            Script::Cyrillic => "Cyrl",
            Script::Devanagari => "Deva",
            Script::Dives_Akuru => "Diak",
            Script::Dogra => "Dogr",
            Script::Deseret => "Dsrt",
            Script::Duployan => "Dupl",
            Script::Egyptian_Hieroglyphs => "Egyp",
            Script::Elbasan => "Elba",
            Script::Elymaic => "Elym",
            Script::Ethiopic => "Ethi",
            Script::Garay => "Gara",
            Script::Georgian => "Geor",
            Script::Glagolitic => "Glag",
            Script::Gunjala_Gondi => "Gong",
            Script::Masaram_Gondi => "Gonm",
            Script::Gothic => "Goth",
            Script::Grantha => "Gran",
            Script::Greek => "Grek",
            Script::Gujarati => "Gujr",
            Script::Gurung_Khema => "Gukh",
            Script::Gurmukhi => "Guru",
            Script::Hangul => "Hang",
            Script::Han => "Hani",
            Script::Hanunoo => "Hano",
            Script::Hatran => "Hatr",
            Script::Hebrew => "Hebr",
            Script::Hiragana => "Hira",
            Script::Anatolian_Hieroglyphs => "Hluw",
            Script::Pahawh_Hmong => "Hmng",
            Script::Nyiakeng_Puachue_Hmong => "Hmnp",
            Script::Old_Hungarian => "Hung",
            Script::Old_Italic => "Ital",
            Script::Javanese => "Java",
            Script::Kayah_Li => "Kali",
            Script::Katakana => "Kana",
            Script::Kawi => "Kawi",
            Script::Kharoshthi => "Khar",
            Script::Khmer => "Khmr",
            Script::Khojki => "Khoj",
            Script::Khitan_Small_Script => "Kits",
            Script::Kannada => "Knda",
            Script::Kirat_Rai => "Krai",
            Script::Kaithi => "Kthi",
            Script::Tai_Tham => "Lana",
            Script::Lao => "Laoo",
            Script::Latin => "Latn",
            Script::Lepcha => "Lepc",
            Script::Limbu => "Limb",
            Script::Linear_A => "Lina",
            Script::Linear_B => "Linb",
            Script::Lisu => "Lisu",
            Script::Lycian => "Lyci",
            Script::Lydian => "Lydi",
            Script::Mahajani => "Mahj",
            Script::Makasar => "Maka",
            Script::Mandaic => "Mand",
            Script::Manichaean => "Mani",
            Script::Marchen => "Marc",
            Script::Medefaidrin => "Medf",
            Script::Mende_Kikakui => "Mend",
            Script::Meroitic_Cursive => "Merc",
            Script::Meroitic_Hieroglyphs => "Mero",
            Script::Malayalam => "Mlym",
            Script::Modi => "Modi",
            Script::Mongolian => "Mong",
            Script::Mro => "Mroo",
            Script::Meetei_Mayek => "Mtei",
            Script::Multani => "Mult",
            Script::Myanmar => "Mymr",
            Script::Nag_Mundari => "Nagm",
            Script::Nandinagari => "Nand",
            Script::Old_North_Arabian => "Narb",
            Script::Nabataean => "Nbat",
            Script::Newa => "Newa",
            Script::Nko => "Nkoo",
            Script::Nushu => "Nshu",
            Script::Ogham => "Ogam",
            Script::Ol_Chiki => "Olck",
            Script::Ol_Onal => "Onao",
            Script::Old_Turkic => "Orkh",
            Script::Oriya => "Orya",
            Script::Osage => "Osge",
            Script::Osmanya => "Osma",
            Script::Old_Uyghur => "Ougr",
            Script::Palmyrene => "Palm",
            Script::Pau_Cin_Hau => "Pauc",
            Script::Old_Permic => "Perm",
            Script::Phags_Pa => "Phag",
            Script::Inscriptional_Pahlavi => "Phli",
            Script::Psalter_Pahlavi => "Phlp",
            Script::Phoenician => "Phnx",
            Script::Miao => "Plrd",
            Script::Inscriptional_Parthian => "Prti",
            Script::Rejang => "Rjng",
            Script::Hanifi_Rohingya => "Rohg",
            Script::Runic => "Runr",
            Script::Samaritan => "Samr",
            Script::Old_South_Arabian => "Sarb",
            Script::Saurashtra => "Saur",
            Script::SignWriting => "Sgnw",
            Script::Shavian => "Shaw",
            Script::Sharada => "Shrd",
            Script::Siddham => "Sidd",
            Script::Sidetic => "Sidt",
            Script::Khudawadi => "Sind",
            Script::Sinhala => "Sinh",
            Script::Sogdian => "Sogd",
            Script::Old_Sogdian => "Sogo",
            Script::Sora_Sompeng => "Sora",
            Script::Soyombo => "Soyo",
            Script::Sundanese => "Sund",
            Script::Sunuwar => "Sunu",
            Script::Syloti_Nagri => "Sylo",
            Script::Syriac => "Syrc",
            Script::Tagbanwa => "Tagb",
            Script::Takri => "Takr",
            Script::Tai_Le => "Tale",
            Script::New_Tai_Lue => "Talu",
            Script::Tamil => "Taml",
            Script::Tangut => "Tang",
            Script::Tai_Viet => "Tavt",
            Script::Tai_Yo => "Tayo",
            Script::Telugu => "Telu",
            Script::Tifinagh => "Tfng",
            Script::Tagalog => "Tglg",
            Script::Thaana => "Thaa",
            Script::Thai => "Thai",
            Script::Tibetan => "Tibt",
            Script::Tirhuta => "Tirh",
            Script::Tangsa => "Tnsa",
            Script::Todhri => "Todr",
            Script::Tolong_Siki => "Tols",
            Script::Toto => "Toto",
            Script::Tulu_Tigalari => "Tutg",
            Script::Ugaritic => "Ugar",
            Script::Vai => "Vaii",
            Script::Vithkuqi => "Vith",
            Script::Warang_Citi => "Wara",
            Script::Wancho => "Wcho",
            Script::Old_Persian => "Xpeo",
            Script::Cuneiform => "Xsux",
            Script::Yezidi => "Yezi",
            Script::Yi => "Yiii",
            Script::Zanabazar_Square => "Zanb",
        }
    }

    #[inline]
    pub(crate) fn inner_from_short_name(input: &str) -> Option<Self> {
        match input {
            "Zzzz" => Some(Script::Unknown),
            "Zyyy" => Some(Script::Common),
            "Zinh" => Some(Script::Inherited),
            "Adlm" => Some(Script::Adlam),
            "Aghb" => Some(Script::Caucasian_Albanian),
            "Ahom" => Some(Script::Ahom),
            "Arab" => Some(Script::Arabic),
            "Armi" => Some(Script::Imperial_Aramaic),
            "Armn" => Some(Script::Armenian),
            "Avst" => Some(Script::Avestan),
            "Bali" => Some(Script::Balinese),
            "Bamu" => Some(Script::Bamum),
            "Bass" => Some(Script::Bassa_Vah),
            "Batk" => Some(Script::Batak),
            "Beng" => Some(Script::Bengali),
            "Berf" => Some(Script::Beria_Erfe),
            "Bhks" => Some(Script::Bhaiksuki),
            "Bopo" => Some(Script::Bopomofo),
            "Brah" => Some(Script::Brahmi),
            "Brai" => Some(Script::Braille),
            "Bugi" => Some(Script::Buginese),
            "Buhd" => Some(Script::Buhid),
            "Cakm" => Some(Script::Chakma),
            "Cans" => Some(Script::Canadian_Aboriginal),
            "Cari" => Some(Script::Carian),
            "Cham" => Some(Script::Cham),
            "Cher" => Some(Script::Cherokee),
            "Chrs" => Some(Script::Chorasmian),
            "Copt" => Some(Script::Coptic),
            "Cpmn" => Some(Script::Cypro_Minoan),
            "Cprt" => Some(Script::Cypriot),
            "Cyrl" => Some(Script::Cyrillic),
            "Deva" => Some(Script::Devanagari),
            "Diak" => Some(Script::Dives_Akuru),
            "Dogr" => Some(Script::Dogra),
            "Dsrt" => Some(Script::Deseret),
            "Dupl" => Some(Script::Duployan),
            "Egyp" => Some(Script::Egyptian_Hieroglyphs),
            "Elba" => Some(Script::Elbasan),
            "Elym" => Some(Script::Elymaic),
            "Ethi" => Some(Script::Ethiopic),
            "Gara" => Some(Script::Garay),
            "Geor" => Some(Script::Georgian),
            "Glag" => Some(Script::Glagolitic),
            "Gong" => Some(Script::Gunjala_Gondi),
            "Gonm" => Some(Script::Masaram_Gondi),
            "Goth" => Some(Script::Gothic),
            "Gran" => Some(Script::Grantha),
            "Grek" => Some(Script::Greek),
            "Gujr" => Some(Script::Gujarati),
            "Gukh" => Some(Script::Gurung_Khema),
            "Guru" => Some(Script::Gurmukhi),
            "Hang" => Some(Script::Hangul),
            "Hani" => Some(Script::Han),
            "Hano" => Some(Script::Hanunoo),
            "Hatr" => Some(Script::Hatran),
            "Hebr" => Some(Script::Hebrew),
            "Hira" => Some(Script::Hiragana),
            "Hluw" => Some(Script::Anatolian_Hieroglyphs),
            "Hmng" => Some(Script::Pahawh_Hmong),
            "Hmnp" => Some(Script::Nyiakeng_Puachue_Hmong),
            "Hung" => Some(Script::Old_Hungarian),
            "Ital" => Some(Script::Old_Italic),
            "Java" => Some(Script::Javanese),
            "Kali" => Some(Script::Kayah_Li),
            "Kana" => Some(Script::Katakana),
            "Kawi" => Some(Script::Kawi),
            "Khar" => Some(Script::Kharoshthi),
            "Khmr" => Some(Script::Khmer),
            "Khoj" => Some(Script::Khojki),
            "Kits" => Some(Script::Khitan_Small_Script),
            "Knda" => Some(Script::Kannada),
            "Krai" => Some(Script::Kirat_Rai),
            "Kthi" => Some(Script::Kaithi),
            "Lana" => Some(Script::Tai_Tham),
            "Laoo" => Some(Script::Lao),
            "Latn" => Some(Script::Latin),
            "Lepc" => Some(Script::Lepcha),
            "Limb" => Some(Script::Limbu),
            "Lina" => Some(Script::Linear_A),
            "Linb" => Some(Script::Linear_B),
            "Lisu" => Some(Script::Lisu),
            "Lyci" => Some(Script::Lycian),
            "Lydi" => Some(Script::Lydian),
            "Mahj" => Some(Script::Mahajani),
            "Maka" => Some(Script::Makasar),
            "Mand" => Some(Script::Mandaic),
            "Mani" => Some(Script::Manichaean),
            "Marc" => Some(Script::Marchen),
            "Medf" => Some(Script::Medefaidrin),
            "Mend" => Some(Script::Mende_Kikakui),
            "Merc" => Some(Script::Meroitic_Cursive),
            "Mero" => Some(Script::Meroitic_Hieroglyphs),
            "Mlym" => Some(Script::Malayalam),
            "Modi" => Some(Script::Modi),
            "Mong" => Some(Script::Mongolian),
            "Mroo" => Some(Script::Mro),
            "Mtei" => Some(Script::Meetei_Mayek),
            "Mult" => Some(Script::Multani),
            "Mymr" => Some(Script::Myanmar),
            "Nagm" => Some(Script::Nag_Mundari),
            "Nand" => Some(Script::Nandinagari),
            "Narb" => Some(Script::Old_North_Arabian),
            "Nbat" => Some(Script::Nabataean),
            "Newa" => Some(Script::Newa),
            "Nkoo" => Some(Script::Nko),
            "Nshu" => Some(Script::Nushu),
            "Ogam" => Some(Script::Ogham),
            "Olck" => Some(Script::Ol_Chiki),
            "Onao" => Some(Script::Ol_Onal),
            "Orkh" => Some(Script::Old_Turkic),
            "Orya" => Some(Script::Oriya),
            "Osge" => Some(Script::Osage),
            "Osma" => Some(Script::Osmanya),
            "Ougr" => Some(Script::Old_Uyghur),
            "Palm" => Some(Script::Palmyrene),
            "Pauc" => Some(Script::Pau_Cin_Hau),
            "Perm" => Some(Script::Old_Permic),
            "Phag" => Some(Script::Phags_Pa),
            "Phli" => Some(Script::Inscriptional_Pahlavi),
            "Phlp" => Some(Script::Psalter_Pahlavi),
            "Phnx" => Some(Script::Phoenician),
            "Plrd" => Some(Script::Miao),
            "Prti" => Some(Script::Inscriptional_Parthian),
            "Rjng" => Some(Script::Rejang),
            "Rohg" => Some(Script::Hanifi_Rohingya),
            "Runr" => Some(Script::Runic),
            "Samr" => Some(Script::Samaritan),
            "Sarb" => Some(Script::Old_South_Arabian),
            "Saur" => Some(Script::Saurashtra),
            "Sgnw" => Some(Script::SignWriting),
            "Shaw" => Some(Script::Shavian),
            "Shrd" => Some(Script::Sharada),
            "Sidd" => Some(Script::Siddham),
            "Sidt" => Some(Script::Sidetic),
            "Sind" => Some(Script::Khudawadi),
            "Sinh" => Some(Script::Sinhala),
            "Sogd" => Some(Script::Sogdian),
            "Sogo" => Some(Script::Old_Sogdian),
            "Sora" => Some(Script::Sora_Sompeng),
            "Soyo" => Some(Script::Soyombo),
            "Sund" => Some(Script::Sundanese),
            "Sunu" => Some(Script::Sunuwar),
            "Sylo" => Some(Script::Syloti_Nagri),
            "Syrc" => Some(Script::Syriac),
            "Tagb" => Some(Script::Tagbanwa),
            "Takr" => Some(Script::Takri),
            "Tale" => Some(Script::Tai_Le),
            "Talu" => Some(Script::New_Tai_Lue),
            "Taml" => Some(Script::Tamil),
            "Tang" => Some(Script::Tangut),
            "Tavt" => Some(Script::Tai_Viet),
            "Tayo" => Some(Script::Tai_Yo),
            "Telu" => Some(Script::Telugu),
            "Tfng" => Some(Script::Tifinagh),
            "Tglg" => Some(Script::Tagalog),
            "Thaa" => Some(Script::Thaana),
            "Thai" => Some(Script::Thai),
            "Tibt" => Some(Script::Tibetan),
            "Tirh" => Some(Script::Tirhuta),
            "Tnsa" => Some(Script::Tangsa),
            "Todr" => Some(Script::Todhri),
            "Tols" => Some(Script::Tolong_Siki),
            "Toto" => Some(Script::Toto),
            "Tutg" => Some(Script::Tulu_Tigalari),
            "Ugar" => Some(Script::Ugaritic),
            "Vaii" => Some(Script::Vai),
            "Vith" => Some(Script::Vithkuqi),
            "Wara" => Some(Script::Warang_Citi),
            "Wcho" => Some(Script::Wancho),
            "Xpeo" => Some(Script::Old_Persian),
            "Xsux" => Some(Script::Cuneiform),
            "Yezi" => Some(Script::Yezidi),
            "Yiii" => Some(Script::Yi),
            "Zanb" => Some(Script::Zanabazar_Square),
        _ => None,
        }
    }

    #[inline]
    pub(crate) fn for_integer(value: u8) -> Self {
        match value {
            0 => Script::Adlam,
            1 => Script::Caucasian_Albanian,
            2 => Script::Ahom,
            3 => Script::Arabic,
            4 => Script::Imperial_Aramaic,
            5 => Script::Armenian,
            6 => Script::Avestan,
            7 => Script::Balinese,
            8 => Script::Bamum,
            9 => Script::Bassa_Vah,
            10 => Script::Batak,
            11 => Script::Bengali,
            12 => Script::Beria_Erfe,
            13 => Script::Bhaiksuki,
            14 => Script::Bopomofo,
            15 => Script::Brahmi,
            16 => Script::Braille,
            17 => Script::Buginese,
            18 => Script::Buhid,
            19 => Script::Chakma,
            20 => Script::Canadian_Aboriginal,
            21 => Script::Carian,
            22 => Script::Cham,
            23 => Script::Cherokee,
            24 => Script::Chorasmian,
            25 => Script::Coptic,
            26 => Script::Cypro_Minoan,
            27 => Script::Cypriot,
            28 => Script::Cyrillic,
            29 => Script::Devanagari,
            30 => Script::Dives_Akuru,
            31 => Script::Dogra,
            32 => Script::Deseret,
            33 => Script::Duployan,
            34 => Script::Egyptian_Hieroglyphs,
            35 => Script::Elbasan,
            36 => Script::Elymaic,
            37 => Script::Ethiopic,
            38 => Script::Garay,
            39 => Script::Georgian,
            40 => Script::Glagolitic,
            41 => Script::Gunjala_Gondi,
            42 => Script::Masaram_Gondi,
            43 => Script::Gothic,
            44 => Script::Grantha,
            45 => Script::Greek,
            46 => Script::Gujarati,
            47 => Script::Gurung_Khema,
            48 => Script::Gurmukhi,
            49 => Script::Hangul,
            50 => Script::Han,
            51 => Script::Hanunoo,
            52 => Script::Hatran,
            53 => Script::Hebrew,
            54 => Script::Hiragana,
            55 => Script::Anatolian_Hieroglyphs,
            56 => Script::Pahawh_Hmong,
            57 => Script::Nyiakeng_Puachue_Hmong,
            58 => Script::Old_Hungarian,
            59 => Script::Old_Italic,
            60 => Script::Javanese,
            61 => Script::Kayah_Li,
            62 => Script::Katakana,
            63 => Script::Kawi,
            64 => Script::Kharoshthi,
            65 => Script::Khmer,
            66 => Script::Khojki,
            67 => Script::Khitan_Small_Script,
            68 => Script::Kannada,
            69 => Script::Kirat_Rai,
            70 => Script::Kaithi,
            71 => Script::Tai_Tham,
            72 => Script::Lao,
            73 => Script::Latin,
            74 => Script::Lepcha,
            75 => Script::Limbu,
            76 => Script::Linear_A,
            77 => Script::Linear_B,
            78 => Script::Lisu,
            79 => Script::Lycian,
            80 => Script::Lydian,
            81 => Script::Mahajani,
            82 => Script::Makasar,
            83 => Script::Mandaic,
            84 => Script::Manichaean,
            85 => Script::Marchen,
            86 => Script::Medefaidrin,
            87 => Script::Mende_Kikakui,
            88 => Script::Meroitic_Cursive,
            89 => Script::Meroitic_Hieroglyphs,
            90 => Script::Malayalam,
            91 => Script::Modi,
            92 => Script::Mongolian,
            93 => Script::Mro,
            94 => Script::Meetei_Mayek,
            95 => Script::Multani,
            96 => Script::Myanmar,
            97 => Script::Nag_Mundari,
            98 => Script::Nandinagari,
            99 => Script::Old_North_Arabian,
            100 => Script::Nabataean,
            101 => Script::Newa,
            102 => Script::Nko,
            103 => Script::Nushu,
            104 => Script::Ogham,
            105 => Script::Ol_Chiki,
            106 => Script::Ol_Onal,
            107 => Script::Old_Turkic,
            108 => Script::Oriya,
            109 => Script::Osage,
            110 => Script::Osmanya,
            111 => Script::Old_Uyghur,
            112 => Script::Palmyrene,
            113 => Script::Pau_Cin_Hau,
            114 => Script::Old_Permic,
            115 => Script::Phags_Pa,
            116 => Script::Inscriptional_Pahlavi,
            117 => Script::Psalter_Pahlavi,
            118 => Script::Phoenician,
            119 => Script::Miao,
            120 => Script::Inscriptional_Parthian,
            121 => Script::Rejang,
            122 => Script::Hanifi_Rohingya,
            123 => Script::Runic,
            124 => Script::Samaritan,
            125 => Script::Old_South_Arabian,
            126 => Script::Saurashtra,
            127 => Script::SignWriting,
            128 => Script::Shavian,
            129 => Script::Sharada,
            130 => Script::Siddham,
            131 => Script::Sidetic,
            132 => Script::Khudawadi,
            133 => Script::Sinhala,
            134 => Script::Sogdian,
            135 => Script::Old_Sogdian,
            136 => Script::Sora_Sompeng,
            137 => Script::Soyombo,
            138 => Script::Sundanese,
            139 => Script::Sunuwar,
            140 => Script::Syloti_Nagri,
            141 => Script::Syriac,
            142 => Script::Tagbanwa,
            143 => Script::Takri,
            144 => Script::Tai_Le,
            145 => Script::New_Tai_Lue,
            146 => Script::Tamil,
            147 => Script::Tangut,
            148 => Script::Tai_Viet,
            149 => Script::Tai_Yo,
            150 => Script::Telugu,
            151 => Script::Tifinagh,
            152 => Script::Tagalog,
            153 => Script::Thaana,
            154 => Script::Thai,
            155 => Script::Tibetan,
            156 => Script::Tirhuta,
            157 => Script::Tangsa,
            158 => Script::Todhri,
            159 => Script::Tolong_Siki,
            160 => Script::Toto,
            161 => Script::Tulu_Tigalari,
            162 => Script::Ugaritic,
            163 => Script::Vai,
            164 => Script::Vithkuqi,
            165 => Script::Warang_Citi,
            166 => Script::Wancho,
            167 => Script::Old_Persian,
            168 => Script::Cuneiform,
            169 => Script::Yezidi,
            170 => Script::Yi,
            171 => Script::Zanabazar_Square,
            _ => unreachable!(),
        }
    }

}

pub fn bsearch_range_value_table<T: Copy>(c: char, r: &'static [(char, char, T)]) -> Option<T> {
    use core::cmp::Ordering::{Equal, Less, Greater};
    match r.binary_search_by(|&(lo, hi, _)| {
        if lo <= c && c <= hi { Equal }
        else if hi < c { Less }
        else { Greater }
    }) {
        Ok(idx) => {
            let (_, _, cat) = r[idx];
            Some(cat)
        }
        Err(_) => None
    }
}

#[inline]
pub fn get_script(c: char) -> Option<Script> {
    bsearch_range_value_table(c, SCRIPTS)
}

#[inline]
pub fn get_script_extension(c: char) -> Option<ScriptExtension> {
    bsearch_range_value_table(c, SCRIPT_EXTENSIONS)
}
    const SCRIPTS: &'static [(char, char, Script)] = &[
        ('\u{0}', '\u{1f}',  Script::Common), ('\u{20}', '\u{20}',  Script::Common), ('\u{21}',
        '\u{23}',  Script::Common), ('\u{24}', '\u{24}',  Script::Common), ('\u{25}', '\u{27}',
         Script::Common), ('\u{28}', '\u{28}',  Script::Common), ('\u{29}', '\u{29}',
         Script::Common), ('\u{2a}', '\u{2a}',  Script::Common), ('\u{2b}', '\u{2b}',
         Script::Common), ('\u{2c}', '\u{2c}',  Script::Common), ('\u{2d}', '\u{2d}',
         Script::Common), ('\u{2e}', '\u{2f}',  Script::Common), ('\u{30}', '\u{39}',
         Script::Common), ('\u{3a}', '\u{3b}',  Script::Common), ('\u{3c}', '\u{3e}',
         Script::Common), ('\u{3f}', '\u{40}',  Script::Common), ('\u{41}', '\u{5a}',
         Script::Latin), ('\u{5b}', '\u{5b}',  Script::Common), ('\u{5c}', '\u{5c}',
         Script::Common), ('\u{5d}', '\u{5d}',  Script::Common), ('\u{5e}', '\u{5e}',
         Script::Common), ('\u{5f}', '\u{5f}',  Script::Common), ('\u{60}', '\u{60}',
         Script::Common), ('\u{61}', '\u{7a}',  Script::Latin), ('\u{7b}', '\u{7b}',
         Script::Common), ('\u{7c}', '\u{7c}',  Script::Common), ('\u{7d}', '\u{7d}',
         Script::Common), ('\u{7e}', '\u{7e}',  Script::Common), ('\u{7f}', '\u{9f}',
         Script::Common), ('\u{a0}', '\u{a0}',  Script::Common), ('\u{a1}', '\u{a1}',
         Script::Common), ('\u{a2}', '\u{a5}',  Script::Common), ('\u{a6}', '\u{a6}',
         Script::Common), ('\u{a7}', '\u{a7}',  Script::Common), ('\u{a8}', '\u{a8}',
         Script::Common), ('\u{a9}', '\u{a9}',  Script::Common), ('\u{aa}', '\u{aa}',
         Script::Latin), ('\u{ab}', '\u{ab}',  Script::Common), ('\u{ac}', '\u{ac}',
         Script::Common), ('\u{ad}', '\u{ad}',  Script::Common), ('\u{ae}', '\u{ae}',
         Script::Common), ('\u{af}', '\u{af}',  Script::Common), ('\u{b0}', '\u{b0}',
         Script::Common), ('\u{b1}', '\u{b1}',  Script::Common), ('\u{b2}', '\u{b3}',
         Script::Common), ('\u{b4}', '\u{b4}',  Script::Common), ('\u{b5}', '\u{b5}',
         Script::Common), ('\u{b6}', '\u{b7}',  Script::Common), ('\u{b8}', '\u{b8}',
         Script::Common), ('\u{b9}', '\u{b9}',  Script::Common), ('\u{ba}', '\u{ba}',
         Script::Latin), ('\u{bb}', '\u{bb}',  Script::Common), ('\u{bc}', '\u{be}',
         Script::Common), ('\u{bf}', '\u{bf}',  Script::Common), ('\u{c0}', '\u{d6}',
         Script::Latin), ('\u{d7}', '\u{d7}',  Script::Common), ('\u{d8}', '\u{f6}',
         Script::Latin), ('\u{f7}', '\u{f7}',  Script::Common), ('\u{f8}', '\u{1ba}',
         Script::Latin), ('\u{1bb}', '\u{1bb}',  Script::Latin), ('\u{1bc}', '\u{1bf}',
         Script::Latin), ('\u{1c0}', '\u{1c3}',  Script::Latin), ('\u{1c4}', '\u{293}',
         Script::Latin), ('\u{294}', '\u{295}',  Script::Latin), ('\u{296}', '\u{2af}',
         Script::Latin), ('\u{2b0}', '\u{2b8}',  Script::Latin), ('\u{2b9}', '\u{2c1}',
         Script::Common), ('\u{2c2}', '\u{2c5}',  Script::Common), ('\u{2c6}', '\u{2d1}',
         Script::Common), ('\u{2d2}', '\u{2df}',  Script::Common), ('\u{2e0}', '\u{2e4}',
         Script::Latin), ('\u{2e5}', '\u{2e9}',  Script::Common), ('\u{2ea}', '\u{2eb}',
         Script::Bopomofo), ('\u{2ec}', '\u{2ec}',  Script::Common), ('\u{2ed}', '\u{2ed}',
         Script::Common), ('\u{2ee}', '\u{2ee}',  Script::Common), ('\u{2ef}', '\u{2ff}',
         Script::Common), ('\u{300}', '\u{36f}',  Script::Inherited), ('\u{370}', '\u{373}',
         Script::Greek), ('\u{374}', '\u{374}',  Script::Common), ('\u{375}', '\u{375}',
         Script::Greek), ('\u{376}', '\u{377}',  Script::Greek), ('\u{37a}', '\u{37a}',
         Script::Greek), ('\u{37b}', '\u{37d}',  Script::Greek), ('\u{37e}', '\u{37e}',
         Script::Common), ('\u{37f}', '\u{37f}',  Script::Greek), ('\u{384}', '\u{384}',
         Script::Greek), ('\u{385}', '\u{385}',  Script::Common), ('\u{386}', '\u{386}',
         Script::Greek), ('\u{387}', '\u{387}',  Script::Common), ('\u{388}', '\u{38a}',
         Script::Greek), ('\u{38c}', '\u{38c}',  Script::Greek), ('\u{38e}', '\u{3a1}',
         Script::Greek), ('\u{3a3}', '\u{3e1}',  Script::Greek), ('\u{3e2}', '\u{3ef}',
         Script::Coptic), ('\u{3f0}', '\u{3f5}',  Script::Greek), ('\u{3f6}', '\u{3f6}',
         Script::Greek), ('\u{3f7}', '\u{3ff}',  Script::Greek), ('\u{400}', '\u{481}',
         Script::Cyrillic), ('\u{482}', '\u{482}',  Script::Cyrillic), ('\u{483}', '\u{484}',
         Script::Cyrillic), ('\u{485}', '\u{486}',  Script::Inherited), ('\u{487}', '\u{487}',
         Script::Cyrillic), ('\u{488}', '\u{489}',  Script::Cyrillic), ('\u{48a}', '\u{52f}',
         Script::Cyrillic), ('\u{531}', '\u{556}',  Script::Armenian), ('\u{559}', '\u{559}',
         Script::Armenian), ('\u{55a}', '\u{55f}',  Script::Armenian), ('\u{560}', '\u{588}',
         Script::Armenian), ('\u{589}', '\u{589}',  Script::Armenian), ('\u{58a}', '\u{58a}',
         Script::Armenian), ('\u{58d}', '\u{58e}',  Script::Armenian), ('\u{58f}', '\u{58f}',
         Script::Armenian), ('\u{591}', '\u{5bd}',  Script::Hebrew), ('\u{5be}', '\u{5be}',
         Script::Hebrew), ('\u{5bf}', '\u{5bf}',  Script::Hebrew), ('\u{5c0}', '\u{5c0}',
         Script::Hebrew), ('\u{5c1}', '\u{5c2}',  Script::Hebrew), ('\u{5c3}', '\u{5c3}',
         Script::Hebrew), ('\u{5c4}', '\u{5c5}',  Script::Hebrew), ('\u{5c6}', '\u{5c6}',
         Script::Hebrew), ('\u{5c7}', '\u{5c7}',  Script::Hebrew), ('\u{5d0}', '\u{5ea}',
         Script::Hebrew), ('\u{5ef}', '\u{5f2}',  Script::Hebrew), ('\u{5f3}', '\u{5f4}',
         Script::Hebrew), ('\u{600}', '\u{604}',  Script::Arabic), ('\u{605}', '\u{605}',
         Script::Common), ('\u{606}', '\u{608}',  Script::Arabic), ('\u{609}', '\u{60a}',
         Script::Arabic), ('\u{60b}', '\u{60b}',  Script::Arabic), ('\u{60c}', '\u{60c}',
         Script::Common), ('\u{60d}', '\u{60d}',  Script::Arabic), ('\u{60e}', '\u{60f}',
         Script::Arabic), ('\u{610}', '\u{61a}',  Script::Arabic), ('\u{61b}', '\u{61b}',
         Script::Common), ('\u{61c}', '\u{61c}',  Script::Arabic), ('\u{61d}', '\u{61e}',
         Script::Arabic), ('\u{61f}', '\u{61f}',  Script::Common), ('\u{620}', '\u{63f}',
         Script::Arabic), ('\u{640}', '\u{640}',  Script::Common), ('\u{641}', '\u{64a}',
         Script::Arabic), ('\u{64b}', '\u{655}',  Script::Inherited), ('\u{656}', '\u{65f}',
         Script::Arabic), ('\u{660}', '\u{669}',  Script::Arabic), ('\u{66a}', '\u{66d}',
         Script::Arabic), ('\u{66e}', '\u{66f}',  Script::Arabic), ('\u{670}', '\u{670}',
         Script::Inherited), ('\u{671}', '\u{6d3}',  Script::Arabic), ('\u{6d4}', '\u{6d4}',
         Script::Arabic), ('\u{6d5}', '\u{6d5}',  Script::Arabic), ('\u{6d6}', '\u{6dc}',
         Script::Arabic), ('\u{6dd}', '\u{6dd}',  Script::Common), ('\u{6de}', '\u{6de}',
         Script::Arabic), ('\u{6df}', '\u{6e4}',  Script::Arabic), ('\u{6e5}', '\u{6e6}',
         Script::Arabic), ('\u{6e7}', '\u{6e8}',  Script::Arabic), ('\u{6e9}', '\u{6e9}',
         Script::Arabic), ('\u{6ea}', '\u{6ed}',  Script::Arabic), ('\u{6ee}', '\u{6ef}',
         Script::Arabic), ('\u{6f0}', '\u{6f9}',  Script::Arabic), ('\u{6fa}', '\u{6fc}',
         Script::Arabic), ('\u{6fd}', '\u{6fe}',  Script::Arabic), ('\u{6ff}', '\u{6ff}',
         Script::Arabic), ('\u{700}', '\u{70d}',  Script::Syriac), ('\u{70f}', '\u{70f}',
         Script::Syriac), ('\u{710}', '\u{710}',  Script::Syriac), ('\u{711}', '\u{711}',
         Script::Syriac), ('\u{712}', '\u{72f}',  Script::Syriac), ('\u{730}', '\u{74a}',
         Script::Syriac), ('\u{74d}', '\u{74f}',  Script::Syriac), ('\u{750}', '\u{77f}',
         Script::Arabic), ('\u{780}', '\u{7a5}',  Script::Thaana), ('\u{7a6}', '\u{7b0}',
         Script::Thaana), ('\u{7b1}', '\u{7b1}',  Script::Thaana), ('\u{7c0}', '\u{7c9}',
         Script::Nko), ('\u{7ca}', '\u{7ea}',  Script::Nko), ('\u{7eb}', '\u{7f3}',  Script::Nko),
        ('\u{7f4}', '\u{7f5}',  Script::Nko), ('\u{7f6}', '\u{7f6}',  Script::Nko), ('\u{7f7}',
        '\u{7f9}',  Script::Nko), ('\u{7fa}', '\u{7fa}',  Script::Nko), ('\u{7fd}', '\u{7fd}',
         Script::Nko), ('\u{7fe}', '\u{7ff}',  Script::Nko), ('\u{800}', '\u{815}',
         Script::Samaritan), ('\u{816}', '\u{819}',  Script::Samaritan), ('\u{81a}', '\u{81a}',
         Script::Samaritan), ('\u{81b}', '\u{823}',  Script::Samaritan), ('\u{824}', '\u{824}',
         Script::Samaritan), ('\u{825}', '\u{827}',  Script::Samaritan), ('\u{828}', '\u{828}',
         Script::Samaritan), ('\u{829}', '\u{82d}',  Script::Samaritan), ('\u{830}', '\u{83e}',
         Script::Samaritan), ('\u{840}', '\u{858}',  Script::Mandaic), ('\u{859}', '\u{85b}',
         Script::Mandaic), ('\u{85e}', '\u{85e}',  Script::Mandaic), ('\u{860}', '\u{86a}',
         Script::Syriac), ('\u{870}', '\u{887}',  Script::Arabic), ('\u{888}', '\u{888}',
         Script::Arabic), ('\u{889}', '\u{88f}',  Script::Arabic), ('\u{890}', '\u{891}',
         Script::Arabic), ('\u{897}', '\u{89f}',  Script::Arabic), ('\u{8a0}', '\u{8c8}',
         Script::Arabic), ('\u{8c9}', '\u{8c9}',  Script::Arabic), ('\u{8ca}', '\u{8e1}',
         Script::Arabic), ('\u{8e2}', '\u{8e2}',  Script::Common), ('\u{8e3}', '\u{8ff}',
         Script::Arabic), ('\u{900}', '\u{902}',  Script::Devanagari), ('\u{903}', '\u{903}',
         Script::Devanagari), ('\u{904}', '\u{939}',  Script::Devanagari), ('\u{93a}', '\u{93a}',
         Script::Devanagari), ('\u{93b}', '\u{93b}',  Script::Devanagari), ('\u{93c}', '\u{93c}',
         Script::Devanagari), ('\u{93d}', '\u{93d}',  Script::Devanagari), ('\u{93e}', '\u{940}',
         Script::Devanagari), ('\u{941}', '\u{948}',  Script::Devanagari), ('\u{949}', '\u{94c}',
         Script::Devanagari), ('\u{94d}', '\u{94d}',  Script::Devanagari), ('\u{94e}', '\u{94f}',
         Script::Devanagari), ('\u{950}', '\u{950}',  Script::Devanagari), ('\u{951}', '\u{954}',
         Script::Inherited), ('\u{955}', '\u{957}',  Script::Devanagari), ('\u{958}', '\u{961}',
         Script::Devanagari), ('\u{962}', '\u{963}',  Script::Devanagari), ('\u{964}', '\u{965}',
         Script::Common), ('\u{966}', '\u{96f}',  Script::Devanagari), ('\u{970}', '\u{970}',
         Script::Devanagari), ('\u{971}', '\u{971}',  Script::Devanagari), ('\u{972}', '\u{97f}',
         Script::Devanagari), ('\u{980}', '\u{980}',  Script::Bengali), ('\u{981}', '\u{981}',
         Script::Bengali), ('\u{982}', '\u{983}',  Script::Bengali), ('\u{985}', '\u{98c}',
         Script::Bengali), ('\u{98f}', '\u{990}',  Script::Bengali), ('\u{993}', '\u{9a8}',
         Script::Bengali), ('\u{9aa}', '\u{9b0}',  Script::Bengali), ('\u{9b2}', '\u{9b2}',
         Script::Bengali), ('\u{9b6}', '\u{9b9}',  Script::Bengali), ('\u{9bc}', '\u{9bc}',
         Script::Bengali), ('\u{9bd}', '\u{9bd}',  Script::Bengali), ('\u{9be}', '\u{9c0}',
         Script::Bengali), ('\u{9c1}', '\u{9c4}',  Script::Bengali), ('\u{9c7}', '\u{9c8}',
         Script::Bengali), ('\u{9cb}', '\u{9cc}',  Script::Bengali), ('\u{9cd}', '\u{9cd}',
         Script::Bengali), ('\u{9ce}', '\u{9ce}',  Script::Bengali), ('\u{9d7}', '\u{9d7}',
         Script::Bengali), ('\u{9dc}', '\u{9dd}',  Script::Bengali), ('\u{9df}', '\u{9e1}',
         Script::Bengali), ('\u{9e2}', '\u{9e3}',  Script::Bengali), ('\u{9e6}', '\u{9ef}',
         Script::Bengali), ('\u{9f0}', '\u{9f1}',  Script::Bengali), ('\u{9f2}', '\u{9f3}',
         Script::Bengali), ('\u{9f4}', '\u{9f9}',  Script::Bengali), ('\u{9fa}', '\u{9fa}',
         Script::Bengali), ('\u{9fb}', '\u{9fb}',  Script::Bengali), ('\u{9fc}', '\u{9fc}',
         Script::Bengali), ('\u{9fd}', '\u{9fd}',  Script::Bengali), ('\u{9fe}', '\u{9fe}',
         Script::Bengali), ('\u{a01}', '\u{a02}',  Script::Gurmukhi), ('\u{a03}', '\u{a03}',
         Script::Gurmukhi), ('\u{a05}', '\u{a0a}',  Script::Gurmukhi), ('\u{a0f}', '\u{a10}',
         Script::Gurmukhi), ('\u{a13}', '\u{a28}',  Script::Gurmukhi), ('\u{a2a}', '\u{a30}',
         Script::Gurmukhi), ('\u{a32}', '\u{a33}',  Script::Gurmukhi), ('\u{a35}', '\u{a36}',
         Script::Gurmukhi), ('\u{a38}', '\u{a39}',  Script::Gurmukhi), ('\u{a3c}', '\u{a3c}',
         Script::Gurmukhi), ('\u{a3e}', '\u{a40}',  Script::Gurmukhi), ('\u{a41}', '\u{a42}',
         Script::Gurmukhi), ('\u{a47}', '\u{a48}',  Script::Gurmukhi), ('\u{a4b}', '\u{a4d}',
         Script::Gurmukhi), ('\u{a51}', '\u{a51}',  Script::Gurmukhi), ('\u{a59}', '\u{a5c}',
         Script::Gurmukhi), ('\u{a5e}', '\u{a5e}',  Script::Gurmukhi), ('\u{a66}', '\u{a6f}',
         Script::Gurmukhi), ('\u{a70}', '\u{a71}',  Script::Gurmukhi), ('\u{a72}', '\u{a74}',
         Script::Gurmukhi), ('\u{a75}', '\u{a75}',  Script::Gurmukhi), ('\u{a76}', '\u{a76}',
         Script::Gurmukhi), ('\u{a81}', '\u{a82}',  Script::Gujarati), ('\u{a83}', '\u{a83}',
         Script::Gujarati), ('\u{a85}', '\u{a8d}',  Script::Gujarati), ('\u{a8f}', '\u{a91}',
         Script::Gujarati), ('\u{a93}', '\u{aa8}',  Script::Gujarati), ('\u{aaa}', '\u{ab0}',
         Script::Gujarati), ('\u{ab2}', '\u{ab3}',  Script::Gujarati), ('\u{ab5}', '\u{ab9}',
         Script::Gujarati), ('\u{abc}', '\u{abc}',  Script::Gujarati), ('\u{abd}', '\u{abd}',
         Script::Gujarati), ('\u{abe}', '\u{ac0}',  Script::Gujarati), ('\u{ac1}', '\u{ac5}',
         Script::Gujarati), ('\u{ac7}', '\u{ac8}',  Script::Gujarati), ('\u{ac9}', '\u{ac9}',
         Script::Gujarati), ('\u{acb}', '\u{acc}',  Script::Gujarati), ('\u{acd}', '\u{acd}',
         Script::Gujarati), ('\u{ad0}', '\u{ad0}',  Script::Gujarati), ('\u{ae0}', '\u{ae1}',
         Script::Gujarati), ('\u{ae2}', '\u{ae3}',  Script::Gujarati), ('\u{ae6}', '\u{aef}',
         Script::Gujarati), ('\u{af0}', '\u{af0}',  Script::Gujarati), ('\u{af1}', '\u{af1}',
         Script::Gujarati), ('\u{af9}', '\u{af9}',  Script::Gujarati), ('\u{afa}', '\u{aff}',
         Script::Gujarati), ('\u{b01}', '\u{b01}',  Script::Oriya), ('\u{b02}', '\u{b03}',
         Script::Oriya), ('\u{b05}', '\u{b0c}',  Script::Oriya), ('\u{b0f}', '\u{b10}',
         Script::Oriya), ('\u{b13}', '\u{b28}',  Script::Oriya), ('\u{b2a}', '\u{b30}',
         Script::Oriya), ('\u{b32}', '\u{b33}',  Script::Oriya), ('\u{b35}', '\u{b39}',
         Script::Oriya), ('\u{b3c}', '\u{b3c}',  Script::Oriya), ('\u{b3d}', '\u{b3d}',
         Script::Oriya), ('\u{b3e}', '\u{b3e}',  Script::Oriya), ('\u{b3f}', '\u{b3f}',
         Script::Oriya), ('\u{b40}', '\u{b40}',  Script::Oriya), ('\u{b41}', '\u{b44}',
         Script::Oriya), ('\u{b47}', '\u{b48}',  Script::Oriya), ('\u{b4b}', '\u{b4c}',
         Script::Oriya), ('\u{b4d}', '\u{b4d}',  Script::Oriya), ('\u{b55}', '\u{b56}',
         Script::Oriya), ('\u{b57}', '\u{b57}',  Script::Oriya), ('\u{b5c}', '\u{b5d}',
         Script::Oriya), ('\u{b5f}', '\u{b61}',  Script::Oriya), ('\u{b62}', '\u{b63}',
         Script::Oriya), ('\u{b66}', '\u{b6f}',  Script::Oriya), ('\u{b70}', '\u{b70}',
         Script::Oriya), ('\u{b71}', '\u{b71}',  Script::Oriya), ('\u{b72}', '\u{b77}',
         Script::Oriya), ('\u{b82}', '\u{b82}',  Script::Tamil), ('\u{b83}', '\u{b83}',
         Script::Tamil), ('\u{b85}', '\u{b8a}',  Script::Tamil), ('\u{b8e}', '\u{b90}',
         Script::Tamil), ('\u{b92}', '\u{b95}',  Script::Tamil), ('\u{b99}', '\u{b9a}',
         Script::Tamil), ('\u{b9c}', '\u{b9c}',  Script::Tamil), ('\u{b9e}', '\u{b9f}',
         Script::Tamil), ('\u{ba3}', '\u{ba4}',  Script::Tamil), ('\u{ba8}', '\u{baa}',
         Script::Tamil), ('\u{bae}', '\u{bb9}',  Script::Tamil), ('\u{bbe}', '\u{bbf}',
         Script::Tamil), ('\u{bc0}', '\u{bc0}',  Script::Tamil), ('\u{bc1}', '\u{bc2}',
         Script::Tamil), ('\u{bc6}', '\u{bc8}',  Script::Tamil), ('\u{bca}', '\u{bcc}',
         Script::Tamil), ('\u{bcd}', '\u{bcd}',  Script::Tamil), ('\u{bd0}', '\u{bd0}',
         Script::Tamil), ('\u{bd7}', '\u{bd7}',  Script::Tamil), ('\u{be6}', '\u{bef}',
         Script::Tamil), ('\u{bf0}', '\u{bf2}',  Script::Tamil), ('\u{bf3}', '\u{bf8}',
         Script::Tamil), ('\u{bf9}', '\u{bf9}',  Script::Tamil), ('\u{bfa}', '\u{bfa}',
         Script::Tamil), ('\u{c00}', '\u{c00}',  Script::Telugu), ('\u{c01}', '\u{c03}',
         Script::Telugu), ('\u{c04}', '\u{c04}',  Script::Telugu), ('\u{c05}', '\u{c0c}',
         Script::Telugu), ('\u{c0e}', '\u{c10}',  Script::Telugu), ('\u{c12}', '\u{c28}',
         Script::Telugu), ('\u{c2a}', '\u{c39}',  Script::Telugu), ('\u{c3c}', '\u{c3c}',
         Script::Telugu), ('\u{c3d}', '\u{c3d}',  Script::Telugu), ('\u{c3e}', '\u{c40}',
         Script::Telugu), ('\u{c41}', '\u{c44}',  Script::Telugu), ('\u{c46}', '\u{c48}',
         Script::Telugu), ('\u{c4a}', '\u{c4d}',  Script::Telugu), ('\u{c55}', '\u{c56}',
         Script::Telugu), ('\u{c58}', '\u{c5a}',  Script::Telugu), ('\u{c5c}', '\u{c5d}',
         Script::Telugu), ('\u{c60}', '\u{c61}',  Script::Telugu), ('\u{c62}', '\u{c63}',
         Script::Telugu), ('\u{c66}', '\u{c6f}',  Script::Telugu), ('\u{c77}', '\u{c77}',
         Script::Telugu), ('\u{c78}', '\u{c7e}',  Script::Telugu), ('\u{c7f}', '\u{c7f}',
         Script::Telugu), ('\u{c80}', '\u{c80}',  Script::Kannada), ('\u{c81}', '\u{c81}',
         Script::Kannada), ('\u{c82}', '\u{c83}',  Script::Kannada), ('\u{c84}', '\u{c84}',
         Script::Kannada), ('\u{c85}', '\u{c8c}',  Script::Kannada), ('\u{c8e}', '\u{c90}',
         Script::Kannada), ('\u{c92}', '\u{ca8}',  Script::Kannada), ('\u{caa}', '\u{cb3}',
         Script::Kannada), ('\u{cb5}', '\u{cb9}',  Script::Kannada), ('\u{cbc}', '\u{cbc}',
         Script::Kannada), ('\u{cbd}', '\u{cbd}',  Script::Kannada), ('\u{cbe}', '\u{cbe}',
         Script::Kannada), ('\u{cbf}', '\u{cbf}',  Script::Kannada), ('\u{cc0}', '\u{cc4}',
         Script::Kannada), ('\u{cc6}', '\u{cc6}',  Script::Kannada), ('\u{cc7}', '\u{cc8}',
         Script::Kannada), ('\u{cca}', '\u{ccb}',  Script::Kannada), ('\u{ccc}', '\u{ccd}',
         Script::Kannada), ('\u{cd5}', '\u{cd6}',  Script::Kannada), ('\u{cdc}', '\u{cde}',
         Script::Kannada), ('\u{ce0}', '\u{ce1}',  Script::Kannada), ('\u{ce2}', '\u{ce3}',
         Script::Kannada), ('\u{ce6}', '\u{cef}',  Script::Kannada), ('\u{cf1}', '\u{cf2}',
         Script::Kannada), ('\u{cf3}', '\u{cf3}',  Script::Kannada), ('\u{d00}', '\u{d01}',
         Script::Malayalam), ('\u{d02}', '\u{d03}',  Script::Malayalam), ('\u{d04}', '\u{d0c}',
         Script::Malayalam), ('\u{d0e}', '\u{d10}',  Script::Malayalam), ('\u{d12}', '\u{d3a}',
         Script::Malayalam), ('\u{d3b}', '\u{d3c}',  Script::Malayalam), ('\u{d3d}', '\u{d3d}',
         Script::Malayalam), ('\u{d3e}', '\u{d40}',  Script::Malayalam), ('\u{d41}', '\u{d44}',
         Script::Malayalam), ('\u{d46}', '\u{d48}',  Script::Malayalam), ('\u{d4a}', '\u{d4c}',
         Script::Malayalam), ('\u{d4d}', '\u{d4d}',  Script::Malayalam), ('\u{d4e}', '\u{d4e}',
         Script::Malayalam), ('\u{d4f}', '\u{d4f}',  Script::Malayalam), ('\u{d54}', '\u{d56}',
         Script::Malayalam), ('\u{d57}', '\u{d57}',  Script::Malayalam), ('\u{d58}', '\u{d5e}',
         Script::Malayalam), ('\u{d5f}', '\u{d61}',  Script::Malayalam), ('\u{d62}', '\u{d63}',
         Script::Malayalam), ('\u{d66}', '\u{d6f}',  Script::Malayalam), ('\u{d70}', '\u{d78}',
         Script::Malayalam), ('\u{d79}', '\u{d79}',  Script::Malayalam), ('\u{d7a}', '\u{d7f}',
         Script::Malayalam), ('\u{d81}', '\u{d81}',  Script::Sinhala), ('\u{d82}', '\u{d83}',
         Script::Sinhala), ('\u{d85}', '\u{d96}',  Script::Sinhala), ('\u{d9a}', '\u{db1}',
         Script::Sinhala), ('\u{db3}', '\u{dbb}',  Script::Sinhala), ('\u{dbd}', '\u{dbd}',
         Script::Sinhala), ('\u{dc0}', '\u{dc6}',  Script::Sinhala), ('\u{dca}', '\u{dca}',
         Script::Sinhala), ('\u{dcf}', '\u{dd1}',  Script::Sinhala), ('\u{dd2}', '\u{dd4}',
         Script::Sinhala), ('\u{dd6}', '\u{dd6}',  Script::Sinhala), ('\u{dd8}', '\u{ddf}',
         Script::Sinhala), ('\u{de6}', '\u{def}',  Script::Sinhala), ('\u{df2}', '\u{df3}',
         Script::Sinhala), ('\u{df4}', '\u{df4}',  Script::Sinhala), ('\u{e01}', '\u{e30}',
         Script::Thai), ('\u{e31}', '\u{e31}',  Script::Thai), ('\u{e32}', '\u{e33}',
         Script::Thai), ('\u{e34}', '\u{e3a}',  Script::Thai), ('\u{e3f}', '\u{e3f}',
         Script::Common), ('\u{e40}', '\u{e45}',  Script::Thai), ('\u{e46}', '\u{e46}',
         Script::Thai), ('\u{e47}', '\u{e4e}',  Script::Thai), ('\u{e4f}', '\u{e4f}',
         Script::Thai), ('\u{e50}', '\u{e59}',  Script::Thai), ('\u{e5a}', '\u{e5b}',
         Script::Thai), ('\u{e81}', '\u{e82}',  Script::Lao), ('\u{e84}', '\u{e84}',  Script::Lao),
        ('\u{e86}', '\u{e8a}',  Script::Lao), ('\u{e8c}', '\u{ea3}',  Script::Lao), ('\u{ea5}',
        '\u{ea5}',  Script::Lao), ('\u{ea7}', '\u{eb0}',  Script::Lao), ('\u{eb1}', '\u{eb1}',
         Script::Lao), ('\u{eb2}', '\u{eb3}',  Script::Lao), ('\u{eb4}', '\u{ebc}',  Script::Lao),
        ('\u{ebd}', '\u{ebd}',  Script::Lao), ('\u{ec0}', '\u{ec4}',  Script::Lao), ('\u{ec6}',
        '\u{ec6}',  Script::Lao), ('\u{ec8}', '\u{ece}',  Script::Lao), ('\u{ed0}', '\u{ed9}',
         Script::Lao), ('\u{edc}', '\u{edf}',  Script::Lao), ('\u{f00}', '\u{f00}',
         Script::Tibetan), ('\u{f01}', '\u{f03}',  Script::Tibetan), ('\u{f04}', '\u{f12}',
         Script::Tibetan), ('\u{f13}', '\u{f13}',  Script::Tibetan), ('\u{f14}', '\u{f14}',
         Script::Tibetan), ('\u{f15}', '\u{f17}',  Script::Tibetan), ('\u{f18}', '\u{f19}',
         Script::Tibetan), ('\u{f1a}', '\u{f1f}',  Script::Tibetan), ('\u{f20}', '\u{f29}',
         Script::Tibetan), ('\u{f2a}', '\u{f33}',  Script::Tibetan), ('\u{f34}', '\u{f34}',
         Script::Tibetan), ('\u{f35}', '\u{f35}',  Script::Tibetan), ('\u{f36}', '\u{f36}',
         Script::Tibetan), ('\u{f37}', '\u{f37}',  Script::Tibetan), ('\u{f38}', '\u{f38}',
         Script::Tibetan), ('\u{f39}', '\u{f39}',  Script::Tibetan), ('\u{f3a}', '\u{f3a}',
         Script::Tibetan), ('\u{f3b}', '\u{f3b}',  Script::Tibetan), ('\u{f3c}', '\u{f3c}',
         Script::Tibetan), ('\u{f3d}', '\u{f3d}',  Script::Tibetan), ('\u{f3e}', '\u{f3f}',
         Script::Tibetan), ('\u{f40}', '\u{f47}',  Script::Tibetan), ('\u{f49}', '\u{f6c}',
         Script::Tibetan), ('\u{f71}', '\u{f7e}',  Script::Tibetan), ('\u{f7f}', '\u{f7f}',
         Script::Tibetan), ('\u{f80}', '\u{f84}',  Script::Tibetan), ('\u{f85}', '\u{f85}',
         Script::Tibetan), ('\u{f86}', '\u{f87}',  Script::Tibetan), ('\u{f88}', '\u{f8c}',
         Script::Tibetan), ('\u{f8d}', '\u{f97}',  Script::Tibetan), ('\u{f99}', '\u{fbc}',
         Script::Tibetan), ('\u{fbe}', '\u{fc5}',  Script::Tibetan), ('\u{fc6}', '\u{fc6}',
         Script::Tibetan), ('\u{fc7}', '\u{fcc}',  Script::Tibetan), ('\u{fce}', '\u{fcf}',
         Script::Tibetan), ('\u{fd0}', '\u{fd4}',  Script::Tibetan), ('\u{fd5}', '\u{fd8}',
         Script::Common), ('\u{fd9}', '\u{fda}',  Script::Tibetan), ('\u{1000}', '\u{102a}',
         Script::Myanmar), ('\u{102b}', '\u{102c}',  Script::Myanmar), ('\u{102d}', '\u{1030}',
         Script::Myanmar), ('\u{1031}', '\u{1031}',  Script::Myanmar), ('\u{1032}', '\u{1037}',
         Script::Myanmar), ('\u{1038}', '\u{1038}',  Script::Myanmar), ('\u{1039}', '\u{103a}',
         Script::Myanmar), ('\u{103b}', '\u{103c}',  Script::Myanmar), ('\u{103d}', '\u{103e}',
         Script::Myanmar), ('\u{103f}', '\u{103f}',  Script::Myanmar), ('\u{1040}', '\u{1049}',
         Script::Myanmar), ('\u{104a}', '\u{104f}',  Script::Myanmar), ('\u{1050}', '\u{1055}',
         Script::Myanmar), ('\u{1056}', '\u{1057}',  Script::Myanmar), ('\u{1058}', '\u{1059}',
         Script::Myanmar), ('\u{105a}', '\u{105d}',  Script::Myanmar), ('\u{105e}', '\u{1060}',
         Script::Myanmar), ('\u{1061}', '\u{1061}',  Script::Myanmar), ('\u{1062}', '\u{1064}',
         Script::Myanmar), ('\u{1065}', '\u{1066}',  Script::Myanmar), ('\u{1067}', '\u{106d}',
         Script::Myanmar), ('\u{106e}', '\u{1070}',  Script::Myanmar), ('\u{1071}', '\u{1074}',
         Script::Myanmar), ('\u{1075}', '\u{1081}',  Script::Myanmar), ('\u{1082}', '\u{1082}',
         Script::Myanmar), ('\u{1083}', '\u{1084}',  Script::Myanmar), ('\u{1085}', '\u{1086}',
         Script::Myanmar), ('\u{1087}', '\u{108c}',  Script::Myanmar), ('\u{108d}', '\u{108d}',
         Script::Myanmar), ('\u{108e}', '\u{108e}',  Script::Myanmar), ('\u{108f}', '\u{108f}',
         Script::Myanmar), ('\u{1090}', '\u{1099}',  Script::Myanmar), ('\u{109a}', '\u{109c}',
         Script::Myanmar), ('\u{109d}', '\u{109d}',  Script::Myanmar), ('\u{109e}', '\u{109f}',
         Script::Myanmar), ('\u{10a0}', '\u{10c5}',  Script::Georgian), ('\u{10c7}', '\u{10c7}',
         Script::Georgian), ('\u{10cd}', '\u{10cd}',  Script::Georgian), ('\u{10d0}', '\u{10fa}',
         Script::Georgian), ('\u{10fb}', '\u{10fb}',  Script::Common), ('\u{10fc}', '\u{10fc}',
         Script::Georgian), ('\u{10fd}', '\u{10ff}',  Script::Georgian), ('\u{1100}', '\u{11ff}',
         Script::Hangul), ('\u{1200}', '\u{1248}',  Script::Ethiopic), ('\u{124a}', '\u{124d}',
         Script::Ethiopic), ('\u{1250}', '\u{1256}',  Script::Ethiopic), ('\u{1258}', '\u{1258}',
         Script::Ethiopic), ('\u{125a}', '\u{125d}',  Script::Ethiopic), ('\u{1260}', '\u{1288}',
         Script::Ethiopic), ('\u{128a}', '\u{128d}',  Script::Ethiopic), ('\u{1290}', '\u{12b0}',
         Script::Ethiopic), ('\u{12b2}', '\u{12b5}',  Script::Ethiopic), ('\u{12b8}', '\u{12be}',
         Script::Ethiopic), ('\u{12c0}', '\u{12c0}',  Script::Ethiopic), ('\u{12c2}', '\u{12c5}',
         Script::Ethiopic), ('\u{12c8}', '\u{12d6}',  Script::Ethiopic), ('\u{12d8}', '\u{1310}',
         Script::Ethiopic), ('\u{1312}', '\u{1315}',  Script::Ethiopic), ('\u{1318}', '\u{135a}',
         Script::Ethiopic), ('\u{135d}', '\u{135f}',  Script::Ethiopic), ('\u{1360}', '\u{1368}',
         Script::Ethiopic), ('\u{1369}', '\u{137c}',  Script::Ethiopic), ('\u{1380}', '\u{138f}',
         Script::Ethiopic), ('\u{1390}', '\u{1399}',  Script::Ethiopic), ('\u{13a0}', '\u{13f5}',
         Script::Cherokee), ('\u{13f8}', '\u{13fd}',  Script::Cherokee), ('\u{1400}', '\u{1400}',
         Script::Canadian_Aboriginal), ('\u{1401}', '\u{166c}',  Script::Canadian_Aboriginal),
        ('\u{166d}', '\u{166d}',  Script::Canadian_Aboriginal), ('\u{166e}', '\u{166e}',
         Script::Canadian_Aboriginal), ('\u{166f}', '\u{167f}',  Script::Canadian_Aboriginal),
        ('\u{1680}', '\u{1680}',  Script::Ogham), ('\u{1681}', '\u{169a}',  Script::Ogham),
        ('\u{169b}', '\u{169b}',  Script::Ogham), ('\u{169c}', '\u{169c}',  Script::Ogham),
        ('\u{16a0}', '\u{16ea}',  Script::Runic), ('\u{16eb}', '\u{16ed}',  Script::Common),
        ('\u{16ee}', '\u{16f0}',  Script::Runic), ('\u{16f1}', '\u{16f8}',  Script::Runic),
        ('\u{1700}', '\u{1711}',  Script::Tagalog), ('\u{1712}', '\u{1714}',  Script::Tagalog),
        ('\u{1715}', '\u{1715}',  Script::Tagalog), ('\u{171f}', '\u{171f}',  Script::Tagalog),
        ('\u{1720}', '\u{1731}',  Script::Hanunoo), ('\u{1732}', '\u{1733}',  Script::Hanunoo),
        ('\u{1734}', '\u{1734}',  Script::Hanunoo), ('\u{1735}', '\u{1736}',  Script::Common),
        ('\u{1740}', '\u{1751}',  Script::Buhid), ('\u{1752}', '\u{1753}',  Script::Buhid),
        ('\u{1760}', '\u{176c}',  Script::Tagbanwa), ('\u{176e}', '\u{1770}',  Script::Tagbanwa),
        ('\u{1772}', '\u{1773}',  Script::Tagbanwa), ('\u{1780}', '\u{17b3}',  Script::Khmer),
        ('\u{17b4}', '\u{17b5}',  Script::Khmer), ('\u{17b6}', '\u{17b6}',  Script::Khmer),
        ('\u{17b7}', '\u{17bd}',  Script::Khmer), ('\u{17be}', '\u{17c5}',  Script::Khmer),
        ('\u{17c6}', '\u{17c6}',  Script::Khmer), ('\u{17c7}', '\u{17c8}',  Script::Khmer),
        ('\u{17c9}', '\u{17d3}',  Script::Khmer), ('\u{17d4}', '\u{17d6}',  Script::Khmer),
        ('\u{17d7}', '\u{17d7}',  Script::Khmer), ('\u{17d8}', '\u{17da}',  Script::Khmer),
        ('\u{17db}', '\u{17db}',  Script::Khmer), ('\u{17dc}', '\u{17dc}',  Script::Khmer),
        ('\u{17dd}', '\u{17dd}',  Script::Khmer), ('\u{17e0}', '\u{17e9}',  Script::Khmer),
        ('\u{17f0}', '\u{17f9}',  Script::Khmer), ('\u{1800}', '\u{1801}',  Script::Mongolian),
        ('\u{1802}', '\u{1803}',  Script::Common), ('\u{1804}', '\u{1804}',  Script::Mongolian),
        ('\u{1805}', '\u{1805}',  Script::Common), ('\u{1806}', '\u{1806}',  Script::Mongolian),
        ('\u{1807}', '\u{180a}',  Script::Mongolian), ('\u{180b}', '\u{180d}',  Script::Mongolian),
        ('\u{180e}', '\u{180e}',  Script::Mongolian), ('\u{180f}', '\u{180f}',  Script::Mongolian),
        ('\u{1810}', '\u{1819}',  Script::Mongolian), ('\u{1820}', '\u{1842}',  Script::Mongolian),
        ('\u{1843}', '\u{1843}',  Script::Mongolian), ('\u{1844}', '\u{1878}',  Script::Mongolian),
        ('\u{1880}', '\u{1884}',  Script::Mongolian), ('\u{1885}', '\u{1886}',  Script::Mongolian),
        ('\u{1887}', '\u{18a8}',  Script::Mongolian), ('\u{18a9}', '\u{18a9}',  Script::Mongolian),
        ('\u{18aa}', '\u{18aa}',  Script::Mongolian), ('\u{18b0}', '\u{18f5}',
         Script::Canadian_Aboriginal), ('\u{1900}', '\u{191e}',  Script::Limbu), ('\u{1920}',
        '\u{1922}',  Script::Limbu), ('\u{1923}', '\u{1926}',  Script::Limbu), ('\u{1927}',
        '\u{1928}',  Script::Limbu), ('\u{1929}', '\u{192b}',  Script::Limbu), ('\u{1930}',
        '\u{1931}',  Script::Limbu), ('\u{1932}', '\u{1932}',  Script::Limbu), ('\u{1933}',
        '\u{1938}',  Script::Limbu), ('\u{1939}', '\u{193b}',  Script::Limbu), ('\u{1940}',
        '\u{1940}',  Script::Limbu), ('\u{1944}', '\u{1945}',  Script::Limbu), ('\u{1946}',
        '\u{194f}',  Script::Limbu), ('\u{1950}', '\u{196d}',  Script::Tai_Le), ('\u{1970}',
        '\u{1974}',  Script::Tai_Le), ('\u{1980}', '\u{19ab}',  Script::New_Tai_Lue), ('\u{19b0}',
        '\u{19c9}',  Script::New_Tai_Lue), ('\u{19d0}', '\u{19d9}',  Script::New_Tai_Lue),
        ('\u{19da}', '\u{19da}',  Script::New_Tai_Lue), ('\u{19de}', '\u{19df}',
         Script::New_Tai_Lue), ('\u{19e0}', '\u{19ff}',  Script::Khmer), ('\u{1a00}', '\u{1a16}',
         Script::Buginese), ('\u{1a17}', '\u{1a18}',  Script::Buginese), ('\u{1a19}', '\u{1a1a}',
         Script::Buginese), ('\u{1a1b}', '\u{1a1b}',  Script::Buginese), ('\u{1a1e}', '\u{1a1f}',
         Script::Buginese), ('\u{1a20}', '\u{1a54}',  Script::Tai_Tham), ('\u{1a55}', '\u{1a55}',
         Script::Tai_Tham), ('\u{1a56}', '\u{1a56}',  Script::Tai_Tham), ('\u{1a57}', '\u{1a57}',
         Script::Tai_Tham), ('\u{1a58}', '\u{1a5e}',  Script::Tai_Tham), ('\u{1a60}', '\u{1a60}',
         Script::Tai_Tham), ('\u{1a61}', '\u{1a61}',  Script::Tai_Tham), ('\u{1a62}', '\u{1a62}',
         Script::Tai_Tham), ('\u{1a63}', '\u{1a64}',  Script::Tai_Tham), ('\u{1a65}', '\u{1a6c}',
         Script::Tai_Tham), ('\u{1a6d}', '\u{1a72}',  Script::Tai_Tham), ('\u{1a73}', '\u{1a7c}',
         Script::Tai_Tham), ('\u{1a7f}', '\u{1a7f}',  Script::Tai_Tham), ('\u{1a80}', '\u{1a89}',
         Script::Tai_Tham), ('\u{1a90}', '\u{1a99}',  Script::Tai_Tham), ('\u{1aa0}', '\u{1aa6}',
         Script::Tai_Tham), ('\u{1aa7}', '\u{1aa7}',  Script::Tai_Tham), ('\u{1aa8}', '\u{1aad}',
         Script::Tai_Tham), ('\u{1ab0}', '\u{1abd}',  Script::Inherited), ('\u{1abe}', '\u{1abe}',
         Script::Inherited), ('\u{1abf}', '\u{1add}',  Script::Inherited), ('\u{1ae0}', '\u{1aeb}',
         Script::Inherited), ('\u{1b00}', '\u{1b03}',  Script::Balinese), ('\u{1b04}', '\u{1b04}',
         Script::Balinese), ('\u{1b05}', '\u{1b33}',  Script::Balinese), ('\u{1b34}', '\u{1b34}',
         Script::Balinese), ('\u{1b35}', '\u{1b35}',  Script::Balinese), ('\u{1b36}', '\u{1b3a}',
         Script::Balinese), ('\u{1b3b}', '\u{1b3b}',  Script::Balinese), ('\u{1b3c}', '\u{1b3c}',
         Script::Balinese), ('\u{1b3d}', '\u{1b41}',  Script::Balinese), ('\u{1b42}', '\u{1b42}',
         Script::Balinese), ('\u{1b43}', '\u{1b44}',  Script::Balinese), ('\u{1b45}', '\u{1b4c}',
         Script::Balinese), ('\u{1b4e}', '\u{1b4f}',  Script::Balinese), ('\u{1b50}', '\u{1b59}',
         Script::Balinese), ('\u{1b5a}', '\u{1b60}',  Script::Balinese), ('\u{1b61}', '\u{1b6a}',
         Script::Balinese), ('\u{1b6b}', '\u{1b73}',  Script::Balinese), ('\u{1b74}', '\u{1b7c}',
         Script::Balinese), ('\u{1b7d}', '\u{1b7f}',  Script::Balinese), ('\u{1b80}', '\u{1b81}',
         Script::Sundanese), ('\u{1b82}', '\u{1b82}',  Script::Sundanese), ('\u{1b83}', '\u{1ba0}',
         Script::Sundanese), ('\u{1ba1}', '\u{1ba1}',  Script::Sundanese), ('\u{1ba2}', '\u{1ba5}',
         Script::Sundanese), ('\u{1ba6}', '\u{1ba7}',  Script::Sundanese), ('\u{1ba8}', '\u{1ba9}',
         Script::Sundanese), ('\u{1baa}', '\u{1baa}',  Script::Sundanese), ('\u{1bab}', '\u{1bad}',
         Script::Sundanese), ('\u{1bae}', '\u{1baf}',  Script::Sundanese), ('\u{1bb0}', '\u{1bb9}',
         Script::Sundanese), ('\u{1bba}', '\u{1bbf}',  Script::Sundanese), ('\u{1bc0}', '\u{1be5}',
         Script::Batak), ('\u{1be6}', '\u{1be6}',  Script::Batak), ('\u{1be7}', '\u{1be7}',
         Script::Batak), ('\u{1be8}', '\u{1be9}',  Script::Batak), ('\u{1bea}', '\u{1bec}',
         Script::Batak), ('\u{1bed}', '\u{1bed}',  Script::Batak), ('\u{1bee}', '\u{1bee}',
         Script::Batak), ('\u{1bef}', '\u{1bf1}',  Script::Batak), ('\u{1bf2}', '\u{1bf3}',
         Script::Batak), ('\u{1bfc}', '\u{1bff}',  Script::Batak), ('\u{1c00}', '\u{1c23}',
         Script::Lepcha), ('\u{1c24}', '\u{1c2b}',  Script::Lepcha), ('\u{1c2c}', '\u{1c33}',
         Script::Lepcha), ('\u{1c34}', '\u{1c35}',  Script::Lepcha), ('\u{1c36}', '\u{1c37}',
         Script::Lepcha), ('\u{1c3b}', '\u{1c3f}',  Script::Lepcha), ('\u{1c40}', '\u{1c49}',
         Script::Lepcha), ('\u{1c4d}', '\u{1c4f}',  Script::Lepcha), ('\u{1c50}', '\u{1c59}',
         Script::Ol_Chiki), ('\u{1c5a}', '\u{1c77}',  Script::Ol_Chiki), ('\u{1c78}', '\u{1c7d}',
         Script::Ol_Chiki), ('\u{1c7e}', '\u{1c7f}',  Script::Ol_Chiki), ('\u{1c80}', '\u{1c8a}',
         Script::Cyrillic), ('\u{1c90}', '\u{1cba}',  Script::Georgian), ('\u{1cbd}', '\u{1cbf}',
         Script::Georgian), ('\u{1cc0}', '\u{1cc7}',  Script::Sundanese), ('\u{1cd0}', '\u{1cd2}',
         Script::Inherited), ('\u{1cd3}', '\u{1cd3}',  Script::Common), ('\u{1cd4}', '\u{1ce0}',
         Script::Inherited), ('\u{1ce1}', '\u{1ce1}',  Script::Common), ('\u{1ce2}', '\u{1ce8}',
         Script::Inherited), ('\u{1ce9}', '\u{1cec}',  Script::Common), ('\u{1ced}', '\u{1ced}',
         Script::Inherited), ('\u{1cee}', '\u{1cf3}',  Script::Common), ('\u{1cf4}', '\u{1cf4}',
         Script::Inherited), ('\u{1cf5}', '\u{1cf6}',  Script::Common), ('\u{1cf7}', '\u{1cf7}',
         Script::Common), ('\u{1cf8}', '\u{1cf9}',  Script::Inherited), ('\u{1cfa}', '\u{1cfa}',
         Script::Common), ('\u{1d00}', '\u{1d25}',  Script::Latin), ('\u{1d26}', '\u{1d2a}',
         Script::Greek), ('\u{1d2b}', '\u{1d2b}',  Script::Cyrillic), ('\u{1d2c}', '\u{1d5c}',
         Script::Latin), ('\u{1d5d}', '\u{1d61}',  Script::Greek), ('\u{1d62}', '\u{1d65}',
         Script::Latin), ('\u{1d66}', '\u{1d6a}',  Script::Greek), ('\u{1d6b}', '\u{1d77}',
         Script::Latin), ('\u{1d78}', '\u{1d78}',  Script::Cyrillic), ('\u{1d79}', '\u{1d9a}',
         Script::Latin), ('\u{1d9b}', '\u{1dbe}',  Script::Latin), ('\u{1dbf}', '\u{1dbf}',
         Script::Greek), ('\u{1dc0}', '\u{1dff}',  Script::Inherited), ('\u{1e00}', '\u{1eff}',
         Script::Latin), ('\u{1f00}', '\u{1f15}',  Script::Greek), ('\u{1f18}', '\u{1f1d}',
         Script::Greek), ('\u{1f20}', '\u{1f45}',  Script::Greek), ('\u{1f48}', '\u{1f4d}',
         Script::Greek), ('\u{1f50}', '\u{1f57}',  Script::Greek), ('\u{1f59}', '\u{1f59}',
         Script::Greek), ('\u{1f5b}', '\u{1f5b}',  Script::Greek), ('\u{1f5d}', '\u{1f5d}',
         Script::Greek), ('\u{1f5f}', '\u{1f7d}',  Script::Greek), ('\u{1f80}', '\u{1fb4}',
         Script::Greek), ('\u{1fb6}', '\u{1fbc}',  Script::Greek), ('\u{1fbd}', '\u{1fbd}',
         Script::Greek), ('\u{1fbe}', '\u{1fbe}',  Script::Greek), ('\u{1fbf}', '\u{1fc1}',
         Script::Greek), ('\u{1fc2}', '\u{1fc4}',  Script::Greek), ('\u{1fc6}', '\u{1fcc}',
         Script::Greek), ('\u{1fcd}', '\u{1fcf}',  Script::Greek), ('\u{1fd0}', '\u{1fd3}',
         Script::Greek), ('\u{1fd6}', '\u{1fdb}',  Script::Greek), ('\u{1fdd}', '\u{1fdf}',
         Script::Greek), ('\u{1fe0}', '\u{1fec}',  Script::Greek), ('\u{1fed}', '\u{1fef}',
         Script::Greek), ('\u{1ff2}', '\u{1ff4}',  Script::Greek), ('\u{1ff6}', '\u{1ffc}',
         Script::Greek), ('\u{1ffd}', '\u{1ffe}',  Script::Greek), ('\u{2000}', '\u{200a}',
         Script::Common), ('\u{200b}', '\u{200b}',  Script::Common), ('\u{200c}', '\u{200d}',
         Script::Inherited), ('\u{200e}', '\u{200f}',  Script::Common), ('\u{2010}', '\u{2015}',
         Script::Common), ('\u{2016}', '\u{2017}',  Script::Common), ('\u{2018}', '\u{2018}',
         Script::Common), ('\u{2019}', '\u{2019}',  Script::Common), ('\u{201a}', '\u{201a}',
         Script::Common), ('\u{201b}', '\u{201c}',  Script::Common), ('\u{201d}', '\u{201d}',
         Script::Common), ('\u{201e}', '\u{201e}',  Script::Common), ('\u{201f}', '\u{201f}',
         Script::Common), ('\u{2020}', '\u{2027}',  Script::Common), ('\u{2028}', '\u{2028}',
         Script::Common), ('\u{2029}', '\u{2029}',  Script::Common), ('\u{202a}', '\u{202e}',
         Script::Common), ('\u{202f}', '\u{202f}',  Script::Common), ('\u{2030}', '\u{2038}',
         Script::Common), ('\u{2039}', '\u{2039}',  Script::Common), ('\u{203a}', '\u{203a}',
         Script::Common), ('\u{203b}', '\u{203e}',  Script::Common), ('\u{203f}', '\u{2040}',
         Script::Common), ('\u{2041}', '\u{2043}',  Script::Common), ('\u{2044}', '\u{2044}',
         Script::Common), ('\u{2045}', '\u{2045}',  Script::Common), ('\u{2046}', '\u{2046}',
         Script::Common), ('\u{2047}', '\u{2051}',  Script::Common), ('\u{2052}', '\u{2052}',
         Script::Common), ('\u{2053}', '\u{2053}',  Script::Common), ('\u{2054}', '\u{2054}',
         Script::Common), ('\u{2055}', '\u{205e}',  Script::Common), ('\u{205f}', '\u{205f}',
         Script::Common), ('\u{2060}', '\u{2064}',  Script::Common), ('\u{2066}', '\u{206f}',
         Script::Common), ('\u{2070}', '\u{2070}',  Script::Common), ('\u{2071}', '\u{2071}',
         Script::Latin), ('\u{2074}', '\u{2079}',  Script::Common), ('\u{207a}', '\u{207c}',
         Script::Common), ('\u{207d}', '\u{207d}',  Script::Common), ('\u{207e}', '\u{207e}',
         Script::Common), ('\u{207f}', '\u{207f}',  Script::Latin), ('\u{2080}', '\u{2089}',
         Script::Common), ('\u{208a}', '\u{208c}',  Script::Common), ('\u{208d}', '\u{208d}',
         Script::Common), ('\u{208e}', '\u{208e}',  Script::Common), ('\u{2090}', '\u{209c}',
         Script::Latin), ('\u{20a0}', '\u{20c1}',  Script::Common), ('\u{20d0}', '\u{20dc}',
         Script::Inherited), ('\u{20dd}', '\u{20e0}',  Script::Inherited), ('\u{20e1}', '\u{20e1}',
         Script::Inherited), ('\u{20e2}', '\u{20e4}',  Script::Inherited), ('\u{20e5}', '\u{20f0}',
         Script::Inherited), ('\u{2100}', '\u{2101}',  Script::Common), ('\u{2102}', '\u{2102}',
         Script::Common), ('\u{2103}', '\u{2106}',  Script::Common), ('\u{2107}', '\u{2107}',
         Script::Common), ('\u{2108}', '\u{2109}',  Script::Common), ('\u{210a}', '\u{2113}',
         Script::Common), ('\u{2114}', '\u{2114}',  Script::Common), ('\u{2115}', '\u{2115}',
         Script::Common), ('\u{2116}', '\u{2117}',  Script::Common), ('\u{2118}', '\u{2118}',
         Script::Common), ('\u{2119}', '\u{211d}',  Script::Common), ('\u{211e}', '\u{2123}',
         Script::Common), ('\u{2124}', '\u{2124}',  Script::Common), ('\u{2125}', '\u{2125}',
         Script::Common), ('\u{2126}', '\u{2126}',  Script::Greek), ('\u{2127}', '\u{2127}',
         Script::Common), ('\u{2128}', '\u{2128}',  Script::Common), ('\u{2129}', '\u{2129}',
         Script::Common), ('\u{212a}', '\u{212b}',  Script::Latin), ('\u{212c}', '\u{212d}',
         Script::Common), ('\u{212e}', '\u{212e}',  Script::Common), ('\u{212f}', '\u{2131}',
         Script::Common), ('\u{2132}', '\u{2132}',  Script::Latin), ('\u{2133}', '\u{2134}',
         Script::Common), ('\u{2135}', '\u{2138}',  Script::Common), ('\u{2139}', '\u{2139}',
         Script::Common), ('\u{213a}', '\u{213b}',  Script::Common), ('\u{213c}', '\u{213f}',
         Script::Common), ('\u{2140}', '\u{2144}',  Script::Common), ('\u{2145}', '\u{2149}',
         Script::Common), ('\u{214a}', '\u{214a}',  Script::Common), ('\u{214b}', '\u{214b}',
         Script::Common), ('\u{214c}', '\u{214d}',  Script::Common), ('\u{214e}', '\u{214e}',
         Script::Latin), ('\u{214f}', '\u{214f}',  Script::Common), ('\u{2150}', '\u{215f}',
         Script::Common), ('\u{2160}', '\u{2182}',  Script::Latin), ('\u{2183}', '\u{2184}',
         Script::Latin), ('\u{2185}', '\u{2188}',  Script::Latin), ('\u{2189}', '\u{2189}',
         Script::Common), ('\u{218a}', '\u{218b}',  Script::Common), ('\u{2190}', '\u{2194}',
         Script::Common), ('\u{2195}', '\u{2199}',  Script::Common), ('\u{219a}', '\u{219b}',
         Script::Common), ('\u{219c}', '\u{219f}',  Script::Common), ('\u{21a0}', '\u{21a0}',
         Script::Common), ('\u{21a1}', '\u{21a2}',  Script::Common), ('\u{21a3}', '\u{21a3}',
         Script::Common), ('\u{21a4}', '\u{21a5}',  Script::Common), ('\u{21a6}', '\u{21a6}',
         Script::Common), ('\u{21a7}', '\u{21ad}',  Script::Common), ('\u{21ae}', '\u{21ae}',
         Script::Common), ('\u{21af}', '\u{21cd}',  Script::Common), ('\u{21ce}', '\u{21cf}',
         Script::Common), ('\u{21d0}', '\u{21d1}',  Script::Common), ('\u{21d2}', '\u{21d2}',
         Script::Common), ('\u{21d3}', '\u{21d3}',  Script::Common), ('\u{21d4}', '\u{21d4}',
         Script::Common), ('\u{21d5}', '\u{21f3}',  Script::Common), ('\u{21f4}', '\u{22ff}',
         Script::Common), ('\u{2300}', '\u{2307}',  Script::Common), ('\u{2308}', '\u{2308}',
         Script::Common), ('\u{2309}', '\u{2309}',  Script::Common), ('\u{230a}', '\u{230a}',
         Script::Common), ('\u{230b}', '\u{230b}',  Script::Common), ('\u{230c}', '\u{231f}',
         Script::Common), ('\u{2320}', '\u{2321}',  Script::Common), ('\u{2322}', '\u{2328}',
         Script::Common), ('\u{2329}', '\u{2329}',  Script::Common), ('\u{232a}', '\u{232a}',
         Script::Common), ('\u{232b}', '\u{237b}',  Script::Common), ('\u{237c}', '\u{237c}',
         Script::Common), ('\u{237d}', '\u{239a}',  Script::Common), ('\u{239b}', '\u{23b3}',
         Script::Common), ('\u{23b4}', '\u{23db}',  Script::Common), ('\u{23dc}', '\u{23e1}',
         Script::Common), ('\u{23e2}', '\u{2429}',  Script::Common), ('\u{2440}', '\u{244a}',
         Script::Common), ('\u{2460}', '\u{249b}',  Script::Common), ('\u{249c}', '\u{24e9}',
         Script::Common), ('\u{24ea}', '\u{24ff}',  Script::Common), ('\u{2500}', '\u{25b6}',
         Script::Common), ('\u{25b7}', '\u{25b7}',  Script::Common), ('\u{25b8}', '\u{25c0}',
         Script::Common), ('\u{25c1}', '\u{25c1}',  Script::Common), ('\u{25c2}', '\u{25f7}',
         Script::Common), ('\u{25f8}', '\u{25ff}',  Script::Common), ('\u{2600}', '\u{266e}',
         Script::Common), ('\u{266f}', '\u{266f}',  Script::Common), ('\u{2670}', '\u{2767}',
         Script::Common), ('\u{2768}', '\u{2768}',  Script::Common), ('\u{2769}', '\u{2769}',
         Script::Common), ('\u{276a}', '\u{276a}',  Script::Common), ('\u{276b}', '\u{276b}',
         Script::Common), ('\u{276c}', '\u{276c}',  Script::Common), ('\u{276d}', '\u{276d}',
         Script::Common), ('\u{276e}', '\u{276e}',  Script::Common), ('\u{276f}', '\u{276f}',
         Script::Common), ('\u{2770}', '\u{2770}',  Script::Common), ('\u{2771}', '\u{2771}',
         Script::Common), ('\u{2772}', '\u{2772}',  Script::Common), ('\u{2773}', '\u{2773}',
         Script::Common), ('\u{2774}', '\u{2774}',  Script::Common), ('\u{2775}', '\u{2775}',
         Script::Common), ('\u{2776}', '\u{2793}',  Script::Common), ('\u{2794}', '\u{27bf}',
         Script::Common), ('\u{27c0}', '\u{27c4}',  Script::Common), ('\u{27c5}', '\u{27c5}',
         Script::Common), ('\u{27c6}', '\u{27c6}',  Script::Common), ('\u{27c7}', '\u{27e5}',
         Script::Common), ('\u{27e6}', '\u{27e6}',  Script::Common), ('\u{27e7}', '\u{27e7}',
         Script::Common), ('\u{27e8}', '\u{27e8}',  Script::Common), ('\u{27e9}', '\u{27e9}',
         Script::Common), ('\u{27ea}', '\u{27ea}',  Script::Common), ('\u{27eb}', '\u{27eb}',
         Script::Common), ('\u{27ec}', '\u{27ec}',  Script::Common), ('\u{27ed}', '\u{27ed}',
         Script::Common), ('\u{27ee}', '\u{27ee}',  Script::Common), ('\u{27ef}', '\u{27ef}',
         Script::Common), ('\u{27f0}', '\u{27ff}',  Script::Common), ('\u{2800}', '\u{28ff}',
         Script::Braille), ('\u{2900}', '\u{2982}',  Script::Common), ('\u{2983}', '\u{2983}',
         Script::Common), ('\u{2984}', '\u{2984}',  Script::Common), ('\u{2985}', '\u{2985}',
         Script::Common), ('\u{2986}', '\u{2986}',  Script::Common), ('\u{2987}', '\u{2987}',
         Script::Common), ('\u{2988}', '\u{2988}',  Script::Common), ('\u{2989}', '\u{2989}',
         Script::Common), ('\u{298a}', '\u{298a}',  Script::Common), ('\u{298b}', '\u{298b}',
         Script::Common), ('\u{298c}', '\u{298c}',  Script::Common), ('\u{298d}', '\u{298d}',
         Script::Common), ('\u{298e}', '\u{298e}',  Script::Common), ('\u{298f}', '\u{298f}',
         Script::Common), ('\u{2990}', '\u{2990}',  Script::Common), ('\u{2991}', '\u{2991}',
         Script::Common), ('\u{2992}', '\u{2992}',  Script::Common), ('\u{2993}', '\u{2993}',
         Script::Common), ('\u{2994}', '\u{2994}',  Script::Common), ('\u{2995}', '\u{2995}',
         Script::Common), ('\u{2996}', '\u{2996}',  Script::Common), ('\u{2997}', '\u{2997}',
         Script::Common), ('\u{2998}', '\u{2998}',  Script::Common), ('\u{2999}', '\u{29d7}',
         Script::Common), ('\u{29d8}', '\u{29d8}',  Script::Common), ('\u{29d9}', '\u{29d9}',
         Script::Common), ('\u{29da}', '\u{29da}',  Script::Common), ('\u{29db}', '\u{29db}',
         Script::Common), ('\u{29dc}', '\u{29fb}',  Script::Common), ('\u{29fc}', '\u{29fc}',
         Script::Common), ('\u{29fd}', '\u{29fd}',  Script::Common), ('\u{29fe}', '\u{2aff}',
         Script::Common), ('\u{2b00}', '\u{2b2f}',  Script::Common), ('\u{2b30}', '\u{2b44}',
         Script::Common), ('\u{2b45}', '\u{2b46}',  Script::Common), ('\u{2b47}', '\u{2b4c}',
         Script::Common), ('\u{2b4d}', '\u{2b73}',  Script::Common), ('\u{2b76}', '\u{2bff}',
         Script::Common), ('\u{2c00}', '\u{2c5f}',  Script::Glagolitic), ('\u{2c60}', '\u{2c7b}',
         Script::Latin), ('\u{2c7c}', '\u{2c7d}',  Script::Latin), ('\u{2c7e}', '\u{2c7f}',
         Script::Latin), ('\u{2c80}', '\u{2ce4}',  Script::Coptic), ('\u{2ce5}', '\u{2cea}',
         Script::Coptic), ('\u{2ceb}', '\u{2cee}',  Script::Coptic), ('\u{2cef}', '\u{2cf1}',
         Script::Coptic), ('\u{2cf2}', '\u{2cf3}',  Script::Coptic), ('\u{2cf9}', '\u{2cfc}',
         Script::Coptic), ('\u{2cfd}', '\u{2cfd}',  Script::Coptic), ('\u{2cfe}', '\u{2cff}',
         Script::Coptic), ('\u{2d00}', '\u{2d25}',  Script::Georgian), ('\u{2d27}', '\u{2d27}',
         Script::Georgian), ('\u{2d2d}', '\u{2d2d}',  Script::Georgian), ('\u{2d30}', '\u{2d67}',
         Script::Tifinagh), ('\u{2d6f}', '\u{2d6f}',  Script::Tifinagh), ('\u{2d70}', '\u{2d70}',
         Script::Tifinagh), ('\u{2d7f}', '\u{2d7f}',  Script::Tifinagh), ('\u{2d80}', '\u{2d96}',
         Script::Ethiopic), ('\u{2da0}', '\u{2da6}',  Script::Ethiopic), ('\u{2da8}', '\u{2dae}',
         Script::Ethiopic), ('\u{2db0}', '\u{2db6}',  Script::Ethiopic), ('\u{2db8}', '\u{2dbe}',
         Script::Ethiopic), ('\u{2dc0}', '\u{2dc6}',  Script::Ethiopic), ('\u{2dc8}', '\u{2dce}',
         Script::Ethiopic), ('\u{2dd0}', '\u{2dd6}',  Script::Ethiopic), ('\u{2dd8}', '\u{2dde}',
         Script::Ethiopic), ('\u{2de0}', '\u{2dff}',  Script::Cyrillic), ('\u{2e00}', '\u{2e01}',
         Script::Common), ('\u{2e02}', '\u{2e02}',  Script::Common), ('\u{2e03}', '\u{2e03}',
         Script::Common), ('\u{2e04}', '\u{2e04}',  Script::Common), ('\u{2e05}', '\u{2e05}',
         Script::Common), ('\u{2e06}', '\u{2e08}',  Script::Common), ('\u{2e09}', '\u{2e09}',
         Script::Common), ('\u{2e0a}', '\u{2e0a}',  Script::Common), ('\u{2e0b}', '\u{2e0b}',
         Script::Common), ('\u{2e0c}', '\u{2e0c}',  Script::Common), ('\u{2e0d}', '\u{2e0d}',
         Script::Common), ('\u{2e0e}', '\u{2e16}',  Script::Common), ('\u{2e17}', '\u{2e17}',
         Script::Common), ('\u{2e18}', '\u{2e19}',  Script::Common), ('\u{2e1a}', '\u{2e1a}',
         Script::Common), ('\u{2e1b}', '\u{2e1b}',  Script::Common), ('\u{2e1c}', '\u{2e1c}',
         Script::Common), ('\u{2e1d}', '\u{2e1d}',  Script::Common), ('\u{2e1e}', '\u{2e1f}',
         Script::Common), ('\u{2e20}', '\u{2e20}',  Script::Common), ('\u{2e21}', '\u{2e21}',
         Script::Common), ('\u{2e22}', '\u{2e22}',  Script::Common), ('\u{2e23}', '\u{2e23}',
         Script::Common), ('\u{2e24}', '\u{2e24}',  Script::Common), ('\u{2e25}', '\u{2e25}',
         Script::Common), ('\u{2e26}', '\u{2e26}',  Script::Common), ('\u{2e27}', '\u{2e27}',
         Script::Common), ('\u{2e28}', '\u{2e28}',  Script::Common), ('\u{2e29}', '\u{2e29}',
         Script::Common), ('\u{2e2a}', '\u{2e2e}',  Script::Common), ('\u{2e2f}', '\u{2e2f}',
         Script::Common), ('\u{2e30}', '\u{2e39}',  Script::Common), ('\u{2e3a}', '\u{2e3b}',
         Script::Common), ('\u{2e3c}', '\u{2e3f}',  Script::Common), ('\u{2e40}', '\u{2e40}',
         Script::Common), ('\u{2e41}', '\u{2e41}',  Script::Common), ('\u{2e42}', '\u{2e42}',
         Script::Common), ('\u{2e43}', '\u{2e4f}',  Script::Common), ('\u{2e50}', '\u{2e51}',
         Script::Common), ('\u{2e52}', '\u{2e54}',  Script::Common), ('\u{2e55}', '\u{2e55}',
         Script::Common), ('\u{2e56}', '\u{2e56}',  Script::Common), ('\u{2e57}', '\u{2e57}',
         Script::Common), ('\u{2e58}', '\u{2e58}',  Script::Common), ('\u{2e59}', '\u{2e59}',
         Script::Common), ('\u{2e5a}', '\u{2e5a}',  Script::Common), ('\u{2e5b}', '\u{2e5b}',
         Script::Common), ('\u{2e5c}', '\u{2e5c}',  Script::Common), ('\u{2e5d}', '\u{2e5d}',
         Script::Common), ('\u{2e80}', '\u{2e99}',  Script::Han), ('\u{2e9b}', '\u{2ef3}',
         Script::Han), ('\u{2f00}', '\u{2fd5}',  Script::Han), ('\u{2ff0}', '\u{2fff}',
         Script::Common), ('\u{3000}', '\u{3000}',  Script::Common), ('\u{3001}', '\u{3003}',
         Script::Common), ('\u{3004}', '\u{3004}',  Script::Common), ('\u{3005}', '\u{3005}',
         Script::Han), ('\u{3006}', '\u{3006}',  Script::Common), ('\u{3007}', '\u{3007}',
         Script::Han), ('\u{3008}', '\u{3008}',  Script::Common), ('\u{3009}', '\u{3009}',
         Script::Common), ('\u{300a}', '\u{300a}',  Script::Common), ('\u{300b}', '\u{300b}',
         Script::Common), ('\u{300c}', '\u{300c}',  Script::Common), ('\u{300d}', '\u{300d}',
         Script::Common), ('\u{300e}', '\u{300e}',  Script::Common), ('\u{300f}', '\u{300f}',
         Script::Common), ('\u{3010}', '\u{3010}',  Script::Common), ('\u{3011}', '\u{3011}',
         Script::Common), ('\u{3012}', '\u{3013}',  Script::Common), ('\u{3014}', '\u{3014}',
         Script::Common), ('\u{3015}', '\u{3015}',  Script::Common), ('\u{3016}', '\u{3016}',
         Script::Common), ('\u{3017}', '\u{3017}',  Script::Common), ('\u{3018}', '\u{3018}',
         Script::Common), ('\u{3019}', '\u{3019}',  Script::Common), ('\u{301a}', '\u{301a}',
         Script::Common), ('\u{301b}', '\u{301b}',  Script::Common), ('\u{301c}', '\u{301c}',
         Script::Common), ('\u{301d}', '\u{301d}',  Script::Common), ('\u{301e}', '\u{301f}',
         Script::Common), ('\u{3020}', '\u{3020}',  Script::Common), ('\u{3021}', '\u{3029}',
         Script::Han), ('\u{302a}', '\u{302d}',  Script::Inherited), ('\u{302e}', '\u{302f}',
         Script::Hangul), ('\u{3030}', '\u{3030}',  Script::Common), ('\u{3031}', '\u{3035}',
         Script::Common), ('\u{3036}', '\u{3037}',  Script::Common), ('\u{3038}', '\u{303a}',
         Script::Han), ('\u{303b}', '\u{303b}',  Script::Han), ('\u{303c}', '\u{303c}',
         Script::Common), ('\u{303d}', '\u{303d}',  Script::Common), ('\u{303e}', '\u{303f}',
         Script::Common), ('\u{3041}', '\u{3096}',  Script::Hiragana), ('\u{3099}', '\u{309a}',
         Script::Inherited), ('\u{309b}', '\u{309c}',  Script::Common), ('\u{309d}', '\u{309e}',
         Script::Hiragana), ('\u{309f}', '\u{309f}',  Script::Hiragana), ('\u{30a0}', '\u{30a0}',
         Script::Common), ('\u{30a1}', '\u{30fa}',  Script::Katakana), ('\u{30fb}', '\u{30fb}',
         Script::Common), ('\u{30fc}', '\u{30fc}',  Script::Common), ('\u{30fd}', '\u{30fe}',
         Script::Katakana), ('\u{30ff}', '\u{30ff}',  Script::Katakana), ('\u{3105}', '\u{312f}',
         Script::Bopomofo), ('\u{3131}', '\u{318e}',  Script::Hangul), ('\u{3190}', '\u{3191}',
         Script::Common), ('\u{3192}', '\u{3195}',  Script::Common), ('\u{3196}', '\u{319f}',
         Script::Common), ('\u{31a0}', '\u{31bf}',  Script::Bopomofo), ('\u{31c0}', '\u{31e5}',
         Script::Common), ('\u{31ef}', '\u{31ef}',  Script::Common), ('\u{31f0}', '\u{31ff}',
         Script::Katakana), ('\u{3200}', '\u{321e}',  Script::Hangul), ('\u{3220}', '\u{3229}',
         Script::Common), ('\u{322a}', '\u{3247}',  Script::Common), ('\u{3248}', '\u{324f}',
         Script::Common), ('\u{3250}', '\u{3250}',  Script::Common), ('\u{3251}', '\u{325f}',
         Script::Common), ('\u{3260}', '\u{327e}',  Script::Hangul), ('\u{327f}', '\u{327f}',
         Script::Common), ('\u{3280}', '\u{3289}',  Script::Common), ('\u{328a}', '\u{32b0}',
         Script::Common), ('\u{32b1}', '\u{32bf}',  Script::Common), ('\u{32c0}', '\u{32cf}',
         Script::Common), ('\u{32d0}', '\u{32fe}',  Script::Katakana), ('\u{32ff}', '\u{32ff}',
         Script::Common), ('\u{3300}', '\u{3357}',  Script::Katakana), ('\u{3358}', '\u{33ff}',
         Script::Common), ('\u{3400}', '\u{4dbf}',  Script::Han), ('\u{4dc0}', '\u{4dff}',
         Script::Common), ('\u{4e00}', '\u{9fff}',  Script::Han), ('\u{a000}', '\u{a014}',
         Script::Yi), ('\u{a015}', '\u{a015}',  Script::Yi), ('\u{a016}', '\u{a48c}',  Script::Yi),
        ('\u{a490}', '\u{a4c6}',  Script::Yi), ('\u{a4d0}', '\u{a4f7}',  Script::Lisu), ('\u{a4f8}',
        '\u{a4fd}',  Script::Lisu), ('\u{a4fe}', '\u{a4ff}',  Script::Lisu), ('\u{a500}',
        '\u{a60b}',  Script::Vai), ('\u{a60c}', '\u{a60c}',  Script::Vai), ('\u{a60d}', '\u{a60f}',
         Script::Vai), ('\u{a610}', '\u{a61f}',  Script::Vai), ('\u{a620}', '\u{a629}',
         Script::Vai), ('\u{a62a}', '\u{a62b}',  Script::Vai), ('\u{a640}', '\u{a66d}',
         Script::Cyrillic), ('\u{a66e}', '\u{a66e}',  Script::Cyrillic), ('\u{a66f}', '\u{a66f}',
         Script::Cyrillic), ('\u{a670}', '\u{a672}',  Script::Cyrillic), ('\u{a673}', '\u{a673}',
         Script::Cyrillic), ('\u{a674}', '\u{a67d}',  Script::Cyrillic), ('\u{a67e}', '\u{a67e}',
         Script::Cyrillic), ('\u{a67f}', '\u{a67f}',  Script::Cyrillic), ('\u{a680}', '\u{a69b}',
         Script::Cyrillic), ('\u{a69c}', '\u{a69d}',  Script::Cyrillic), ('\u{a69e}', '\u{a69f}',
         Script::Cyrillic), ('\u{a6a0}', '\u{a6e5}',  Script::Bamum), ('\u{a6e6}', '\u{a6ef}',
         Script::Bamum), ('\u{a6f0}', '\u{a6f1}',  Script::Bamum), ('\u{a6f2}', '\u{a6f7}',
         Script::Bamum), ('\u{a700}', '\u{a716}',  Script::Common), ('\u{a717}', '\u{a71f}',
         Script::Common), ('\u{a720}', '\u{a721}',  Script::Common), ('\u{a722}', '\u{a76f}',
         Script::Latin), ('\u{a770}', '\u{a770}',  Script::Latin), ('\u{a771}', '\u{a787}',
         Script::Latin), ('\u{a788}', '\u{a788}',  Script::Common), ('\u{a789}', '\u{a78a}',
         Script::Common), ('\u{a78b}', '\u{a78e}',  Script::Latin), ('\u{a78f}', '\u{a78f}',
         Script::Latin), ('\u{a790}', '\u{a7dc}',  Script::Latin), ('\u{a7f1}', '\u{a7f4}',
         Script::Latin), ('\u{a7f5}', '\u{a7f6}',  Script::Latin), ('\u{a7f7}', '\u{a7f7}',
         Script::Latin), ('\u{a7f8}', '\u{a7f9}',  Script::Latin), ('\u{a7fa}', '\u{a7fa}',
         Script::Latin), ('\u{a7fb}', '\u{a7ff}',  Script::Latin), ('\u{a800}', '\u{a801}',
         Script::Syloti_Nagri), ('\u{a802}', '\u{a802}',  Script::Syloti_Nagri), ('\u{a803}',
        '\u{a805}',  Script::Syloti_Nagri), ('\u{a806}', '\u{a806}',  Script::Syloti_Nagri),
        ('\u{a807}', '\u{a80a}',  Script::Syloti_Nagri), ('\u{a80b}', '\u{a80b}',
         Script::Syloti_Nagri), ('\u{a80c}', '\u{a822}',  Script::Syloti_Nagri), ('\u{a823}',
        '\u{a824}',  Script::Syloti_Nagri), ('\u{a825}', '\u{a826}',  Script::Syloti_Nagri),
        ('\u{a827}', '\u{a827}',  Script::Syloti_Nagri), ('\u{a828}', '\u{a82b}',
         Script::Syloti_Nagri), ('\u{a82c}', '\u{a82c}',  Script::Syloti_Nagri), ('\u{a830}',
        '\u{a835}',  Script::Common), ('\u{a836}', '\u{a837}',  Script::Common), ('\u{a838}',
        '\u{a838}',  Script::Common), ('\u{a839}', '\u{a839}',  Script::Common), ('\u{a840}',
        '\u{a873}',  Script::Phags_Pa), ('\u{a874}', '\u{a877}',  Script::Phags_Pa), ('\u{a880}',
        '\u{a881}',  Script::Saurashtra), ('\u{a882}', '\u{a8b3}',  Script::Saurashtra),
        ('\u{a8b4}', '\u{a8c3}',  Script::Saurashtra), ('\u{a8c4}', '\u{a8c5}',
         Script::Saurashtra), ('\u{a8ce}', '\u{a8cf}',  Script::Saurashtra), ('\u{a8d0}',
        '\u{a8d9}',  Script::Saurashtra), ('\u{a8e0}', '\u{a8f1}',  Script::Devanagari),
        ('\u{a8f2}', '\u{a8f7}',  Script::Devanagari), ('\u{a8f8}', '\u{a8fa}',
         Script::Devanagari), ('\u{a8fb}', '\u{a8fb}',  Script::Devanagari), ('\u{a8fc}',
        '\u{a8fc}',  Script::Devanagari), ('\u{a8fd}', '\u{a8fe}',  Script::Devanagari),
        ('\u{a8ff}', '\u{a8ff}',  Script::Devanagari), ('\u{a900}', '\u{a909}',  Script::Kayah_Li),
        ('\u{a90a}', '\u{a925}',  Script::Kayah_Li), ('\u{a926}', '\u{a92d}',  Script::Kayah_Li),
        ('\u{a92e}', '\u{a92e}',  Script::Common), ('\u{a92f}', '\u{a92f}',  Script::Kayah_Li),
        ('\u{a930}', '\u{a946}',  Script::Rejang), ('\u{a947}', '\u{a951}',  Script::Rejang),
        ('\u{a952}', '\u{a953}',  Script::Rejang), ('\u{a95f}', '\u{a95f}',  Script::Rejang),
        ('\u{a960}', '\u{a97c}',  Script::Hangul), ('\u{a980}', '\u{a982}',  Script::Javanese),
        ('\u{a983}', '\u{a983}',  Script::Javanese), ('\u{a984}', '\u{a9b2}',  Script::Javanese),
        ('\u{a9b3}', '\u{a9b3}',  Script::Javanese), ('\u{a9b4}', '\u{a9b5}',  Script::Javanese),
        ('\u{a9b6}', '\u{a9b9}',  Script::Javanese), ('\u{a9ba}', '\u{a9bb}',  Script::Javanese),
        ('\u{a9bc}', '\u{a9bd}',  Script::Javanese), ('\u{a9be}', '\u{a9c0}',  Script::Javanese),
        ('\u{a9c1}', '\u{a9cd}',  Script::Javanese), ('\u{a9cf}', '\u{a9cf}',  Script::Common),
        ('\u{a9d0}', '\u{a9d9}',  Script::Javanese), ('\u{a9de}', '\u{a9df}',  Script::Javanese),
        ('\u{a9e0}', '\u{a9e4}',  Script::Myanmar), ('\u{a9e5}', '\u{a9e5}',  Script::Myanmar),
        ('\u{a9e6}', '\u{a9e6}',  Script::Myanmar), ('\u{a9e7}', '\u{a9ef}',  Script::Myanmar),
        ('\u{a9f0}', '\u{a9f9}',  Script::Myanmar), ('\u{a9fa}', '\u{a9fe}',  Script::Myanmar),
        ('\u{aa00}', '\u{aa28}',  Script::Cham), ('\u{aa29}', '\u{aa2e}',  Script::Cham),
        ('\u{aa2f}', '\u{aa30}',  Script::Cham), ('\u{aa31}', '\u{aa32}',  Script::Cham),
        ('\u{aa33}', '\u{aa34}',  Script::Cham), ('\u{aa35}', '\u{aa36}',  Script::Cham),
        ('\u{aa40}', '\u{aa42}',  Script::Cham), ('\u{aa43}', '\u{aa43}',  Script::Cham),
        ('\u{aa44}', '\u{aa4b}',  Script::Cham), ('\u{aa4c}', '\u{aa4c}',  Script::Cham),
        ('\u{aa4d}', '\u{aa4d}',  Script::Cham), ('\u{aa50}', '\u{aa59}',  Script::Cham),
        ('\u{aa5c}', '\u{aa5f}',  Script::Cham), ('\u{aa60}', '\u{aa6f}',  Script::Myanmar),
        ('\u{aa70}', '\u{aa70}',  Script::Myanmar), ('\u{aa71}', '\u{aa76}',  Script::Myanmar),
        ('\u{aa77}', '\u{aa79}',  Script::Myanmar), ('\u{aa7a}', '\u{aa7a}',  Script::Myanmar),
        ('\u{aa7b}', '\u{aa7b}',  Script::Myanmar), ('\u{aa7c}', '\u{aa7c}',  Script::Myanmar),
        ('\u{aa7d}', '\u{aa7d}',  Script::Myanmar), ('\u{aa7e}', '\u{aa7f}',  Script::Myanmar),
        ('\u{aa80}', '\u{aaaf}',  Script::Tai_Viet), ('\u{aab0}', '\u{aab0}',  Script::Tai_Viet),
        ('\u{aab1}', '\u{aab1}',  Script::Tai_Viet), ('\u{aab2}', '\u{aab4}',  Script::Tai_Viet),
        ('\u{aab5}', '\u{aab6}',  Script::Tai_Viet), ('\u{aab7}', '\u{aab8}',  Script::Tai_Viet),
        ('\u{aab9}', '\u{aabd}',  Script::Tai_Viet), ('\u{aabe}', '\u{aabf}',  Script::Tai_Viet),
        ('\u{aac0}', '\u{aac0}',  Script::Tai_Viet), ('\u{aac1}', '\u{aac1}',  Script::Tai_Viet),
        ('\u{aac2}', '\u{aac2}',  Script::Tai_Viet), ('\u{aadb}', '\u{aadc}',  Script::Tai_Viet),
        ('\u{aadd}', '\u{aadd}',  Script::Tai_Viet), ('\u{aade}', '\u{aadf}',  Script::Tai_Viet),
        ('\u{aae0}', '\u{aaea}',  Script::Meetei_Mayek), ('\u{aaeb}', '\u{aaeb}',
         Script::Meetei_Mayek), ('\u{aaec}', '\u{aaed}',  Script::Meetei_Mayek), ('\u{aaee}',
        '\u{aaef}',  Script::Meetei_Mayek), ('\u{aaf0}', '\u{aaf1}',  Script::Meetei_Mayek),
        ('\u{aaf2}', '\u{aaf2}',  Script::Meetei_Mayek), ('\u{aaf3}', '\u{aaf4}',
         Script::Meetei_Mayek), ('\u{aaf5}', '\u{aaf5}',  Script::Meetei_Mayek), ('\u{aaf6}',
        '\u{aaf6}',  Script::Meetei_Mayek), ('\u{ab01}', '\u{ab06}',  Script::Ethiopic),
        ('\u{ab09}', '\u{ab0e}',  Script::Ethiopic), ('\u{ab11}', '\u{ab16}',  Script::Ethiopic),
        ('\u{ab20}', '\u{ab26}',  Script::Ethiopic), ('\u{ab28}', '\u{ab2e}',  Script::Ethiopic),
        ('\u{ab30}', '\u{ab5a}',  Script::Latin), ('\u{ab5b}', '\u{ab5b}',  Script::Common),
        ('\u{ab5c}', '\u{ab5f}',  Script::Latin), ('\u{ab60}', '\u{ab64}',  Script::Latin),
        ('\u{ab65}', '\u{ab65}',  Script::Greek), ('\u{ab66}', '\u{ab68}',  Script::Latin),
        ('\u{ab69}', '\u{ab69}',  Script::Latin), ('\u{ab6a}', '\u{ab6b}',  Script::Common),
        ('\u{ab70}', '\u{abbf}',  Script::Cherokee), ('\u{abc0}', '\u{abe2}',
         Script::Meetei_Mayek), ('\u{abe3}', '\u{abe4}',  Script::Meetei_Mayek), ('\u{abe5}',
        '\u{abe5}',  Script::Meetei_Mayek), ('\u{abe6}', '\u{abe7}',  Script::Meetei_Mayek),
        ('\u{abe8}', '\u{abe8}',  Script::Meetei_Mayek), ('\u{abe9}', '\u{abea}',
         Script::Meetei_Mayek), ('\u{abeb}', '\u{abeb}',  Script::Meetei_Mayek), ('\u{abec}',
        '\u{abec}',  Script::Meetei_Mayek), ('\u{abed}', '\u{abed}',  Script::Meetei_Mayek),
        ('\u{abf0}', '\u{abf9}',  Script::Meetei_Mayek), ('\u{ac00}', '\u{d7a3}',  Script::Hangul),
        ('\u{d7b0}', '\u{d7c6}',  Script::Hangul), ('\u{d7cb}', '\u{d7fb}',  Script::Hangul),
        ('\u{f900}', '\u{fa6d}',  Script::Han), ('\u{fa70}', '\u{fad9}',  Script::Han), ('\u{fb00}',
        '\u{fb06}',  Script::Latin), ('\u{fb13}', '\u{fb17}',  Script::Armenian), ('\u{fb1d}',
        '\u{fb1d}',  Script::Hebrew), ('\u{fb1e}', '\u{fb1e}',  Script::Hebrew), ('\u{fb1f}',
        '\u{fb28}',  Script::Hebrew), ('\u{fb29}', '\u{fb29}',  Script::Hebrew), ('\u{fb2a}',
        '\u{fb36}',  Script::Hebrew), ('\u{fb38}', '\u{fb3c}',  Script::Hebrew), ('\u{fb3e}',
        '\u{fb3e}',  Script::Hebrew), ('\u{fb40}', '\u{fb41}',  Script::Hebrew), ('\u{fb43}',
        '\u{fb44}',  Script::Hebrew), ('\u{fb46}', '\u{fb4f}',  Script::Hebrew), ('\u{fb50}',
        '\u{fbb1}',  Script::Arabic), ('\u{fbb2}', '\u{fbc2}',  Script::Arabic), ('\u{fbc3}',
        '\u{fbd2}',  Script::Arabic), ('\u{fbd3}', '\u{fd3d}',  Script::Arabic), ('\u{fd3e}',
        '\u{fd3e}',  Script::Common), ('\u{fd3f}', '\u{fd3f}',  Script::Common), ('\u{fd40}',
        '\u{fd4f}',  Script::Arabic), ('\u{fd50}', '\u{fd8f}',  Script::Arabic), ('\u{fd90}',
        '\u{fd91}',  Script::Arabic), ('\u{fd92}', '\u{fdc7}',  Script::Arabic), ('\u{fdc8}',
        '\u{fdcf}',  Script::Arabic), ('\u{fdf0}', '\u{fdfb}',  Script::Arabic), ('\u{fdfc}',
        '\u{fdfc}',  Script::Arabic), ('\u{fdfd}', '\u{fdff}',  Script::Arabic), ('\u{fe00}',
        '\u{fe0f}',  Script::Inherited), ('\u{fe10}', '\u{fe16}',  Script::Common), ('\u{fe17}',
        '\u{fe17}',  Script::Common), ('\u{fe18}', '\u{fe18}',  Script::Common), ('\u{fe19}',
        '\u{fe19}',  Script::Common), ('\u{fe20}', '\u{fe2d}',  Script::Inherited), ('\u{fe2e}',
        '\u{fe2f}',  Script::Cyrillic), ('\u{fe30}', '\u{fe30}',  Script::Common), ('\u{fe31}',
        '\u{fe32}',  Script::Common), ('\u{fe33}', '\u{fe34}',  Script::Common), ('\u{fe35}',
        '\u{fe35}',  Script::Common), ('\u{fe36}', '\u{fe36}',  Script::Common), ('\u{fe37}',
        '\u{fe37}',  Script::Common), ('\u{fe38}', '\u{fe38}',  Script::Common), ('\u{fe39}',
        '\u{fe39}',  Script::Common), ('\u{fe3a}', '\u{fe3a}',  Script::Common), ('\u{fe3b}',
        '\u{fe3b}',  Script::Common), ('\u{fe3c}', '\u{fe3c}',  Script::Common), ('\u{fe3d}',
        '\u{fe3d}',  Script::Common), ('\u{fe3e}', '\u{fe3e}',  Script::Common), ('\u{fe3f}',
        '\u{fe3f}',  Script::Common), ('\u{fe40}', '\u{fe40}',  Script::Common), ('\u{fe41}',
        '\u{fe41}',  Script::Common), ('\u{fe42}', '\u{fe42}',  Script::Common), ('\u{fe43}',
        '\u{fe43}',  Script::Common), ('\u{fe44}', '\u{fe44}',  Script::Common), ('\u{fe45}',
        '\u{fe46}',  Script::Common), ('\u{fe47}', '\u{fe47}',  Script::Common), ('\u{fe48}',
        '\u{fe48}',  Script::Common), ('\u{fe49}', '\u{fe4c}',  Script::Common), ('\u{fe4d}',
        '\u{fe4f}',  Script::Common), ('\u{fe50}', '\u{fe52}',  Script::Common), ('\u{fe54}',
        '\u{fe57}',  Script::Common), ('\u{fe58}', '\u{fe58}',  Script::Common), ('\u{fe59}',
        '\u{fe59}',  Script::Common), ('\u{fe5a}', '\u{fe5a}',  Script::Common), ('\u{fe5b}',
        '\u{fe5b}',  Script::Common), ('\u{fe5c}', '\u{fe5c}',  Script::Common), ('\u{fe5d}',
        '\u{fe5d}',  Script::Common), ('\u{fe5e}', '\u{fe5e}',  Script::Common), ('\u{fe5f}',
        '\u{fe61}',  Script::Common), ('\u{fe62}', '\u{fe62}',  Script::Common), ('\u{fe63}',
        '\u{fe63}',  Script::Common), ('\u{fe64}', '\u{fe66}',  Script::Common), ('\u{fe68}',
        '\u{fe68}',  Script::Common), ('\u{fe69}', '\u{fe69}',  Script::Common), ('\u{fe6a}',
        '\u{fe6b}',  Script::Common), ('\u{fe70}', '\u{fe74}',  Script::Arabic), ('\u{fe76}',
        '\u{fefc}',  Script::Arabic), ('\u{feff}', '\u{feff}',  Script::Common), ('\u{ff01}',
        '\u{ff03}',  Script::Common), ('\u{ff04}', '\u{ff04}',  Script::Common), ('\u{ff05}',
        '\u{ff07}',  Script::Common), ('\u{ff08}', '\u{ff08}',  Script::Common), ('\u{ff09}',
        '\u{ff09}',  Script::Common), ('\u{ff0a}', '\u{ff0a}',  Script::Common), ('\u{ff0b}',
        '\u{ff0b}',  Script::Common), ('\u{ff0c}', '\u{ff0c}',  Script::Common), ('\u{ff0d}',
        '\u{ff0d}',  Script::Common), ('\u{ff0e}', '\u{ff0f}',  Script::Common), ('\u{ff10}',
        '\u{ff19}',  Script::Common), ('\u{ff1a}', '\u{ff1b}',  Script::Common), ('\u{ff1c}',
        '\u{ff1e}',  Script::Common), ('\u{ff1f}', '\u{ff20}',  Script::Common), ('\u{ff21}',
        '\u{ff3a}',  Script::Latin), ('\u{ff3b}', '\u{ff3b}',  Script::Common), ('\u{ff3c}',
        '\u{ff3c}',  Script::Common), ('\u{ff3d}', '\u{ff3d}',  Script::Common), ('\u{ff3e}',
        '\u{ff3e}',  Script::Common), ('\u{ff3f}', '\u{ff3f}',  Script::Common), ('\u{ff40}',
        '\u{ff40}',  Script::Common), ('\u{ff41}', '\u{ff5a}',  Script::Latin), ('\u{ff5b}',
        '\u{ff5b}',  Script::Common), ('\u{ff5c}', '\u{ff5c}',  Script::Common), ('\u{ff5d}',
        '\u{ff5d}',  Script::Common), ('\u{ff5e}', '\u{ff5e}',  Script::Common), ('\u{ff5f}',
        '\u{ff5f}',  Script::Common), ('\u{ff60}', '\u{ff60}',  Script::Common), ('\u{ff61}',
        '\u{ff61}',  Script::Common), ('\u{ff62}', '\u{ff62}',  Script::Common), ('\u{ff63}',
        '\u{ff63}',  Script::Common), ('\u{ff64}', '\u{ff65}',  Script::Common), ('\u{ff66}',
        '\u{ff6f}',  Script::Katakana), ('\u{ff70}', '\u{ff70}',  Script::Common), ('\u{ff71}',
        '\u{ff9d}',  Script::Katakana), ('\u{ff9e}', '\u{ff9f}',  Script::Common), ('\u{ffa0}',
        '\u{ffbe}',  Script::Hangul), ('\u{ffc2}', '\u{ffc7}',  Script::Hangul), ('\u{ffca}',
        '\u{ffcf}',  Script::Hangul), ('\u{ffd2}', '\u{ffd7}',  Script::Hangul), ('\u{ffda}',
        '\u{ffdc}',  Script::Hangul), ('\u{ffe0}', '\u{ffe1}',  Script::Common), ('\u{ffe2}',
        '\u{ffe2}',  Script::Common), ('\u{ffe3}', '\u{ffe3}',  Script::Common), ('\u{ffe4}',
        '\u{ffe4}',  Script::Common), ('\u{ffe5}', '\u{ffe6}',  Script::Common), ('\u{ffe8}',
        '\u{ffe8}',  Script::Common), ('\u{ffe9}', '\u{ffec}',  Script::Common), ('\u{ffed}',
        '\u{ffee}',  Script::Common), ('\u{fff9}', '\u{fffb}',  Script::Common), ('\u{fffc}',
        '\u{fffd}',  Script::Common), ('\u{10000}', '\u{1000b}',  Script::Linear_B), ('\u{1000d}',
        '\u{10026}',  Script::Linear_B), ('\u{10028}', '\u{1003a}',  Script::Linear_B),
        ('\u{1003c}', '\u{1003d}',  Script::Linear_B), ('\u{1003f}', '\u{1004d}',
         Script::Linear_B), ('\u{10050}', '\u{1005d}',  Script::Linear_B), ('\u{10080}',
        '\u{100fa}',  Script::Linear_B), ('\u{10100}', '\u{10102}',  Script::Common), ('\u{10107}',
        '\u{10133}',  Script::Common), ('\u{10137}', '\u{1013f}',  Script::Common), ('\u{10140}',
        '\u{10174}',  Script::Greek), ('\u{10175}', '\u{10178}',  Script::Greek), ('\u{10179}',
        '\u{10189}',  Script::Greek), ('\u{1018a}', '\u{1018b}',  Script::Greek), ('\u{1018c}',
        '\u{1018e}',  Script::Greek), ('\u{10190}', '\u{1019c}',  Script::Common), ('\u{101a0}',
        '\u{101a0}',  Script::Greek), ('\u{101d0}', '\u{101fc}',  Script::Common), ('\u{101fd}',
        '\u{101fd}',  Script::Inherited), ('\u{10280}', '\u{1029c}',  Script::Lycian), ('\u{102a0}',
        '\u{102d0}',  Script::Carian), ('\u{102e0}', '\u{102e0}',  Script::Inherited), ('\u{102e1}',
        '\u{102fb}',  Script::Common), ('\u{10300}', '\u{1031f}',  Script::Old_Italic),
        ('\u{10320}', '\u{10323}',  Script::Old_Italic), ('\u{1032d}', '\u{1032f}',
         Script::Old_Italic), ('\u{10330}', '\u{10340}',  Script::Gothic), ('\u{10341}',
        '\u{10341}',  Script::Gothic), ('\u{10342}', '\u{10349}',  Script::Gothic), ('\u{1034a}',
        '\u{1034a}',  Script::Gothic), ('\u{10350}', '\u{10375}',  Script::Old_Permic),
        ('\u{10376}', '\u{1037a}',  Script::Old_Permic), ('\u{10380}', '\u{1039d}',
         Script::Ugaritic), ('\u{1039f}', '\u{1039f}',  Script::Ugaritic), ('\u{103a0}',
        '\u{103c3}',  Script::Old_Persian), ('\u{103c8}', '\u{103cf}',  Script::Old_Persian),
        ('\u{103d0}', '\u{103d0}',  Script::Old_Persian), ('\u{103d1}', '\u{103d5}',
         Script::Old_Persian), ('\u{10400}', '\u{1044f}',  Script::Deseret), ('\u{10450}',
        '\u{1047f}',  Script::Shavian), ('\u{10480}', '\u{1049d}',  Script::Osmanya), ('\u{104a0}',
        '\u{104a9}',  Script::Osmanya), ('\u{104b0}', '\u{104d3}',  Script::Osage), ('\u{104d8}',
        '\u{104fb}',  Script::Osage), ('\u{10500}', '\u{10527}',  Script::Elbasan), ('\u{10530}',
        '\u{10563}',  Script::Caucasian_Albanian), ('\u{1056f}', '\u{1056f}',
         Script::Caucasian_Albanian), ('\u{10570}', '\u{1057a}',  Script::Vithkuqi), ('\u{1057c}',
        '\u{1058a}',  Script::Vithkuqi), ('\u{1058c}', '\u{10592}',  Script::Vithkuqi),
        ('\u{10594}', '\u{10595}',  Script::Vithkuqi), ('\u{10597}', '\u{105a1}',
         Script::Vithkuqi), ('\u{105a3}', '\u{105b1}',  Script::Vithkuqi), ('\u{105b3}',
        '\u{105b9}',  Script::Vithkuqi), ('\u{105bb}', '\u{105bc}',  Script::Vithkuqi),
        ('\u{105c0}', '\u{105f3}',  Script::Todhri), ('\u{10600}', '\u{10736}',  Script::Linear_A),
        ('\u{10740}', '\u{10755}',  Script::Linear_A), ('\u{10760}', '\u{10767}',
         Script::Linear_A), ('\u{10780}', '\u{10785}',  Script::Latin), ('\u{10787}', '\u{107b0}',
         Script::Latin), ('\u{107b2}', '\u{107ba}',  Script::Latin), ('\u{10800}', '\u{10805}',
         Script::Cypriot), ('\u{10808}', '\u{10808}',  Script::Cypriot), ('\u{1080a}', '\u{10835}',
         Script::Cypriot), ('\u{10837}', '\u{10838}',  Script::Cypriot), ('\u{1083c}', '\u{1083c}',
         Script::Cypriot), ('\u{1083f}', '\u{1083f}',  Script::Cypriot), ('\u{10840}', '\u{10855}',
         Script::Imperial_Aramaic), ('\u{10857}', '\u{10857}',  Script::Imperial_Aramaic),
        ('\u{10858}', '\u{1085f}',  Script::Imperial_Aramaic), ('\u{10860}', '\u{10876}',
         Script::Palmyrene), ('\u{10877}', '\u{10878}',  Script::Palmyrene), ('\u{10879}',
        '\u{1087f}',  Script::Palmyrene), ('\u{10880}', '\u{1089e}',  Script::Nabataean),
        ('\u{108a7}', '\u{108af}',  Script::Nabataean), ('\u{108e0}', '\u{108f2}',  Script::Hatran),
        ('\u{108f4}', '\u{108f5}',  Script::Hatran), ('\u{108fb}', '\u{108ff}',  Script::Hatran),
        ('\u{10900}', '\u{10915}',  Script::Phoenician), ('\u{10916}', '\u{1091b}',
         Script::Phoenician), ('\u{1091f}', '\u{1091f}',  Script::Phoenician), ('\u{10920}',
        '\u{10939}',  Script::Lydian), ('\u{1093f}', '\u{1093f}',  Script::Lydian), ('\u{10940}',
        '\u{10959}',  Script::Sidetic), ('\u{10980}', '\u{1099f}',  Script::Meroitic_Hieroglyphs),
        ('\u{109a0}', '\u{109b7}',  Script::Meroitic_Cursive), ('\u{109bc}', '\u{109bd}',
         Script::Meroitic_Cursive), ('\u{109be}', '\u{109bf}',  Script::Meroitic_Cursive),
        ('\u{109c0}', '\u{109cf}',  Script::Meroitic_Cursive), ('\u{109d2}', '\u{109ff}',
         Script::Meroitic_Cursive), ('\u{10a00}', '\u{10a00}',  Script::Kharoshthi), ('\u{10a01}',
        '\u{10a03}',  Script::Kharoshthi), ('\u{10a05}', '\u{10a06}',  Script::Kharoshthi),
        ('\u{10a0c}', '\u{10a0f}',  Script::Kharoshthi), ('\u{10a10}', '\u{10a13}',
         Script::Kharoshthi), ('\u{10a15}', '\u{10a17}',  Script::Kharoshthi), ('\u{10a19}',
        '\u{10a35}',  Script::Kharoshthi), ('\u{10a38}', '\u{10a3a}',  Script::Kharoshthi),
        ('\u{10a3f}', '\u{10a3f}',  Script::Kharoshthi), ('\u{10a40}', '\u{10a48}',
         Script::Kharoshthi), ('\u{10a50}', '\u{10a58}',  Script::Kharoshthi), ('\u{10a60}',
        '\u{10a7c}',  Script::Old_South_Arabian), ('\u{10a7d}', '\u{10a7e}',
         Script::Old_South_Arabian), ('\u{10a7f}', '\u{10a7f}',  Script::Old_South_Arabian),
        ('\u{10a80}', '\u{10a9c}',  Script::Old_North_Arabian), ('\u{10a9d}', '\u{10a9f}',
         Script::Old_North_Arabian), ('\u{10ac0}', '\u{10ac7}',  Script::Manichaean), ('\u{10ac8}',
        '\u{10ac8}',  Script::Manichaean), ('\u{10ac9}', '\u{10ae4}',  Script::Manichaean),
        ('\u{10ae5}', '\u{10ae6}',  Script::Manichaean), ('\u{10aeb}', '\u{10aef}',
         Script::Manichaean), ('\u{10af0}', '\u{10af6}',  Script::Manichaean), ('\u{10b00}',
        '\u{10b35}',  Script::Avestan), ('\u{10b39}', '\u{10b3f}',  Script::Avestan), ('\u{10b40}',
        '\u{10b55}',  Script::Inscriptional_Parthian), ('\u{10b58}', '\u{10b5f}',
         Script::Inscriptional_Parthian), ('\u{10b60}', '\u{10b72}',
         Script::Inscriptional_Pahlavi), ('\u{10b78}', '\u{10b7f}',  Script::Inscriptional_Pahlavi),
        ('\u{10b80}', '\u{10b91}',  Script::Psalter_Pahlavi), ('\u{10b99}', '\u{10b9c}',
         Script::Psalter_Pahlavi), ('\u{10ba9}', '\u{10baf}',  Script::Psalter_Pahlavi),
        ('\u{10c00}', '\u{10c48}',  Script::Old_Turkic), ('\u{10c80}', '\u{10cb2}',
         Script::Old_Hungarian), ('\u{10cc0}', '\u{10cf2}',  Script::Old_Hungarian), ('\u{10cfa}',
        '\u{10cff}',  Script::Old_Hungarian), ('\u{10d00}', '\u{10d23}',  Script::Hanifi_Rohingya),
        ('\u{10d24}', '\u{10d27}',  Script::Hanifi_Rohingya), ('\u{10d30}', '\u{10d39}',
         Script::Hanifi_Rohingya), ('\u{10d40}', '\u{10d49}',  Script::Garay), ('\u{10d4a}',
        '\u{10d4d}',  Script::Garay), ('\u{10d4e}', '\u{10d4e}',  Script::Garay), ('\u{10d4f}',
        '\u{10d4f}',  Script::Garay), ('\u{10d50}', '\u{10d65}',  Script::Garay), ('\u{10d69}',
        '\u{10d6d}',  Script::Garay), ('\u{10d6e}', '\u{10d6e}',  Script::Garay), ('\u{10d6f}',
        '\u{10d6f}',  Script::Garay), ('\u{10d70}', '\u{10d85}',  Script::Garay), ('\u{10d8e}',
        '\u{10d8f}',  Script::Garay), ('\u{10e60}', '\u{10e7e}',  Script::Arabic), ('\u{10e80}',
        '\u{10ea9}',  Script::Yezidi), ('\u{10eab}', '\u{10eac}',  Script::Yezidi), ('\u{10ead}',
        '\u{10ead}',  Script::Yezidi), ('\u{10eb0}', '\u{10eb1}',  Script::Yezidi), ('\u{10ec2}',
        '\u{10ec4}',  Script::Arabic), ('\u{10ec5}', '\u{10ec5}',  Script::Arabic), ('\u{10ec6}',
        '\u{10ec7}',  Script::Arabic), ('\u{10ed0}', '\u{10ed0}',  Script::Arabic), ('\u{10ed1}',
        '\u{10ed8}',  Script::Arabic), ('\u{10efa}', '\u{10eff}',  Script::Arabic), ('\u{10f00}',
        '\u{10f1c}',  Script::Old_Sogdian), ('\u{10f1d}', '\u{10f26}',  Script::Old_Sogdian),
        ('\u{10f27}', '\u{10f27}',  Script::Old_Sogdian), ('\u{10f30}', '\u{10f45}',
         Script::Sogdian), ('\u{10f46}', '\u{10f50}',  Script::Sogdian), ('\u{10f51}', '\u{10f54}',
         Script::Sogdian), ('\u{10f55}', '\u{10f59}',  Script::Sogdian), ('\u{10f70}', '\u{10f81}',
         Script::Old_Uyghur), ('\u{10f82}', '\u{10f85}',  Script::Old_Uyghur), ('\u{10f86}',
        '\u{10f89}',  Script::Old_Uyghur), ('\u{10fb0}', '\u{10fc4}',  Script::Chorasmian),
        ('\u{10fc5}', '\u{10fcb}',  Script::Chorasmian), ('\u{10fe0}', '\u{10ff6}',
         Script::Elymaic), ('\u{11000}', '\u{11000}',  Script::Brahmi), ('\u{11001}', '\u{11001}',
         Script::Brahmi), ('\u{11002}', '\u{11002}',  Script::Brahmi), ('\u{11003}', '\u{11037}',
         Script::Brahmi), ('\u{11038}', '\u{11046}',  Script::Brahmi), ('\u{11047}', '\u{1104d}',
         Script::Brahmi), ('\u{11052}', '\u{11065}',  Script::Brahmi), ('\u{11066}', '\u{1106f}',
         Script::Brahmi), ('\u{11070}', '\u{11070}',  Script::Brahmi), ('\u{11071}', '\u{11072}',
         Script::Brahmi), ('\u{11073}', '\u{11074}',  Script::Brahmi), ('\u{11075}', '\u{11075}',
         Script::Brahmi), ('\u{1107f}', '\u{1107f}',  Script::Brahmi), ('\u{11080}', '\u{11081}',
         Script::Kaithi), ('\u{11082}', '\u{11082}',  Script::Kaithi), ('\u{11083}', '\u{110af}',
         Script::Kaithi), ('\u{110b0}', '\u{110b2}',  Script::Kaithi), ('\u{110b3}', '\u{110b6}',
         Script::Kaithi), ('\u{110b7}', '\u{110b8}',  Script::Kaithi), ('\u{110b9}', '\u{110ba}',
         Script::Kaithi), ('\u{110bb}', '\u{110bc}',  Script::Kaithi), ('\u{110bd}', '\u{110bd}',
         Script::Kaithi), ('\u{110be}', '\u{110c1}',  Script::Kaithi), ('\u{110c2}', '\u{110c2}',
         Script::Kaithi), ('\u{110cd}', '\u{110cd}',  Script::Kaithi), ('\u{110d0}', '\u{110e8}',
         Script::Sora_Sompeng), ('\u{110f0}', '\u{110f9}',  Script::Sora_Sompeng), ('\u{11100}',
        '\u{11102}',  Script::Chakma), ('\u{11103}', '\u{11126}',  Script::Chakma), ('\u{11127}',
        '\u{1112b}',  Script::Chakma), ('\u{1112c}', '\u{1112c}',  Script::Chakma), ('\u{1112d}',
        '\u{11134}',  Script::Chakma), ('\u{11136}', '\u{1113f}',  Script::Chakma), ('\u{11140}',
        '\u{11143}',  Script::Chakma), ('\u{11144}', '\u{11144}',  Script::Chakma), ('\u{11145}',
        '\u{11146}',  Script::Chakma), ('\u{11147}', '\u{11147}',  Script::Chakma), ('\u{11150}',
        '\u{11172}',  Script::Mahajani), ('\u{11173}', '\u{11173}',  Script::Mahajani),
        ('\u{11174}', '\u{11175}',  Script::Mahajani), ('\u{11176}', '\u{11176}',
         Script::Mahajani), ('\u{11180}', '\u{11181}',  Script::Sharada), ('\u{11182}', '\u{11182}',
         Script::Sharada), ('\u{11183}', '\u{111b2}',  Script::Sharada), ('\u{111b3}', '\u{111b5}',
         Script::Sharada), ('\u{111b6}', '\u{111be}',  Script::Sharada), ('\u{111bf}', '\u{111c0}',
         Script::Sharada), ('\u{111c1}', '\u{111c4}',  Script::Sharada), ('\u{111c5}', '\u{111c8}',
         Script::Sharada), ('\u{111c9}', '\u{111cc}',  Script::Sharada), ('\u{111cd}', '\u{111cd}',
         Script::Sharada), ('\u{111ce}', '\u{111ce}',  Script::Sharada), ('\u{111cf}', '\u{111cf}',
         Script::Sharada), ('\u{111d0}', '\u{111d9}',  Script::Sharada), ('\u{111da}', '\u{111da}',
         Script::Sharada), ('\u{111db}', '\u{111db}',  Script::Sharada), ('\u{111dc}', '\u{111dc}',
         Script::Sharada), ('\u{111dd}', '\u{111df}',  Script::Sharada), ('\u{111e1}', '\u{111f4}',
         Script::Sinhala), ('\u{11200}', '\u{11211}',  Script::Khojki), ('\u{11213}', '\u{1122b}',
         Script::Khojki), ('\u{1122c}', '\u{1122e}',  Script::Khojki), ('\u{1122f}', '\u{11231}',
         Script::Khojki), ('\u{11232}', '\u{11233}',  Script::Khojki), ('\u{11234}', '\u{11234}',
         Script::Khojki), ('\u{11235}', '\u{11235}',  Script::Khojki), ('\u{11236}', '\u{11237}',
         Script::Khojki), ('\u{11238}', '\u{1123d}',  Script::Khojki), ('\u{1123e}', '\u{1123e}',
         Script::Khojki), ('\u{1123f}', '\u{11240}',  Script::Khojki), ('\u{11241}', '\u{11241}',
         Script::Khojki), ('\u{11280}', '\u{11286}',  Script::Multani), ('\u{11288}', '\u{11288}',
         Script::Multani), ('\u{1128a}', '\u{1128d}',  Script::Multani), ('\u{1128f}', '\u{1129d}',
         Script::Multani), ('\u{1129f}', '\u{112a8}',  Script::Multani), ('\u{112a9}', '\u{112a9}',
         Script::Multani), ('\u{112b0}', '\u{112de}',  Script::Khudawadi), ('\u{112df}',
        '\u{112df}',  Script::Khudawadi), ('\u{112e0}', '\u{112e2}',  Script::Khudawadi),
        ('\u{112e3}', '\u{112ea}',  Script::Khudawadi), ('\u{112f0}', '\u{112f9}',
         Script::Khudawadi), ('\u{11300}', '\u{11301}',  Script::Grantha), ('\u{11302}',
        '\u{11303}',  Script::Grantha), ('\u{11305}', '\u{1130c}',  Script::Grantha), ('\u{1130f}',
        '\u{11310}',  Script::Grantha), ('\u{11313}', '\u{11328}',  Script::Grantha), ('\u{1132a}',
        '\u{11330}',  Script::Grantha), ('\u{11332}', '\u{11333}',  Script::Grantha), ('\u{11335}',
        '\u{11339}',  Script::Grantha), ('\u{1133b}', '\u{1133b}',  Script::Inherited),
        ('\u{1133c}', '\u{1133c}',  Script::Grantha), ('\u{1133d}', '\u{1133d}',  Script::Grantha),
        ('\u{1133e}', '\u{1133f}',  Script::Grantha), ('\u{11340}', '\u{11340}',  Script::Grantha),
        ('\u{11341}', '\u{11344}',  Script::Grantha), ('\u{11347}', '\u{11348}',  Script::Grantha),
        ('\u{1134b}', '\u{1134d}',  Script::Grantha), ('\u{11350}', '\u{11350}',  Script::Grantha),
        ('\u{11357}', '\u{11357}',  Script::Grantha), ('\u{1135d}', '\u{11361}',  Script::Grantha),
        ('\u{11362}', '\u{11363}',  Script::Grantha), ('\u{11366}', '\u{1136c}',  Script::Grantha),
        ('\u{11370}', '\u{11374}',  Script::Grantha), ('\u{11380}', '\u{11389}',
         Script::Tulu_Tigalari), ('\u{1138b}', '\u{1138b}',  Script::Tulu_Tigalari), ('\u{1138e}',
        '\u{1138e}',  Script::Tulu_Tigalari), ('\u{11390}', '\u{113b5}',  Script::Tulu_Tigalari),
        ('\u{113b7}', '\u{113b7}',  Script::Tulu_Tigalari), ('\u{113b8}', '\u{113ba}',
         Script::Tulu_Tigalari), ('\u{113bb}', '\u{113c0}',  Script::Tulu_Tigalari), ('\u{113c2}',
        '\u{113c2}',  Script::Tulu_Tigalari), ('\u{113c5}', '\u{113c5}',  Script::Tulu_Tigalari),
        ('\u{113c7}', '\u{113ca}',  Script::Tulu_Tigalari), ('\u{113cc}', '\u{113cd}',
         Script::Tulu_Tigalari), ('\u{113ce}', '\u{113ce}',  Script::Tulu_Tigalari), ('\u{113cf}',
        '\u{113cf}',  Script::Tulu_Tigalari), ('\u{113d0}', '\u{113d0}',  Script::Tulu_Tigalari),
        ('\u{113d1}', '\u{113d1}',  Script::Tulu_Tigalari), ('\u{113d2}', '\u{113d2}',
         Script::Tulu_Tigalari), ('\u{113d3}', '\u{113d3}',  Script::Tulu_Tigalari), ('\u{113d4}',
        '\u{113d5}',  Script::Tulu_Tigalari), ('\u{113d7}', '\u{113d8}',  Script::Tulu_Tigalari),
        ('\u{113e1}', '\u{113e2}',  Script::Tulu_Tigalari), ('\u{11400}', '\u{11434}',
         Script::Newa), ('\u{11435}', '\u{11437}',  Script::Newa), ('\u{11438}', '\u{1143f}',
         Script::Newa), ('\u{11440}', '\u{11441}',  Script::Newa), ('\u{11442}', '\u{11444}',
         Script::Newa), ('\u{11445}', '\u{11445}',  Script::Newa), ('\u{11446}', '\u{11446}',
         Script::Newa), ('\u{11447}', '\u{1144a}',  Script::Newa), ('\u{1144b}', '\u{1144f}',
         Script::Newa), ('\u{11450}', '\u{11459}',  Script::Newa), ('\u{1145a}', '\u{1145b}',
         Script::Newa), ('\u{1145d}', '\u{1145d}',  Script::Newa), ('\u{1145e}', '\u{1145e}',
         Script::Newa), ('\u{1145f}', '\u{11461}',  Script::Newa), ('\u{11480}', '\u{114af}',
         Script::Tirhuta), ('\u{114b0}', '\u{114b2}',  Script::Tirhuta), ('\u{114b3}', '\u{114b8}',
         Script::Tirhuta), ('\u{114b9}', '\u{114b9}',  Script::Tirhuta), ('\u{114ba}', '\u{114ba}',
         Script::Tirhuta), ('\u{114bb}', '\u{114be}',  Script::Tirhuta), ('\u{114bf}', '\u{114c0}',
         Script::Tirhuta), ('\u{114c1}', '\u{114c1}',  Script::Tirhuta), ('\u{114c2}', '\u{114c3}',
         Script::Tirhuta), ('\u{114c4}', '\u{114c5}',  Script::Tirhuta), ('\u{114c6}', '\u{114c6}',
         Script::Tirhuta), ('\u{114c7}', '\u{114c7}',  Script::Tirhuta), ('\u{114d0}', '\u{114d9}',
         Script::Tirhuta), ('\u{11580}', '\u{115ae}',  Script::Siddham), ('\u{115af}', '\u{115b1}',
         Script::Siddham), ('\u{115b2}', '\u{115b5}',  Script::Siddham), ('\u{115b8}', '\u{115bb}',
         Script::Siddham), ('\u{115bc}', '\u{115bd}',  Script::Siddham), ('\u{115be}', '\u{115be}',
         Script::Siddham), ('\u{115bf}', '\u{115c0}',  Script::Siddham), ('\u{115c1}', '\u{115d7}',
         Script::Siddham), ('\u{115d8}', '\u{115db}',  Script::Siddham), ('\u{115dc}', '\u{115dd}',
         Script::Siddham), ('\u{11600}', '\u{1162f}',  Script::Modi), ('\u{11630}', '\u{11632}',
         Script::Modi), ('\u{11633}', '\u{1163a}',  Script::Modi), ('\u{1163b}', '\u{1163c}',
         Script::Modi), ('\u{1163d}', '\u{1163d}',  Script::Modi), ('\u{1163e}', '\u{1163e}',
         Script::Modi), ('\u{1163f}', '\u{11640}',  Script::Modi), ('\u{11641}', '\u{11643}',
         Script::Modi), ('\u{11644}', '\u{11644}',  Script::Modi), ('\u{11650}', '\u{11659}',
         Script::Modi), ('\u{11660}', '\u{1166c}',  Script::Mongolian), ('\u{11680}', '\u{116aa}',
         Script::Takri), ('\u{116ab}', '\u{116ab}',  Script::Takri), ('\u{116ac}', '\u{116ac}',
         Script::Takri), ('\u{116ad}', '\u{116ad}',  Script::Takri), ('\u{116ae}', '\u{116af}',
         Script::Takri), ('\u{116b0}', '\u{116b5}',  Script::Takri), ('\u{116b6}', '\u{116b6}',
         Script::Takri), ('\u{116b7}', '\u{116b7}',  Script::Takri), ('\u{116b8}', '\u{116b8}',
         Script::Takri), ('\u{116b9}', '\u{116b9}',  Script::Takri), ('\u{116c0}', '\u{116c9}',
         Script::Takri), ('\u{116d0}', '\u{116e3}',  Script::Myanmar), ('\u{11700}', '\u{1171a}',
         Script::Ahom), ('\u{1171d}', '\u{1171d}',  Script::Ahom), ('\u{1171e}', '\u{1171e}',
         Script::Ahom), ('\u{1171f}', '\u{1171f}',  Script::Ahom), ('\u{11720}', '\u{11721}',
         Script::Ahom), ('\u{11722}', '\u{11725}',  Script::Ahom), ('\u{11726}', '\u{11726}',
         Script::Ahom), ('\u{11727}', '\u{1172b}',  Script::Ahom), ('\u{11730}', '\u{11739}',
         Script::Ahom), ('\u{1173a}', '\u{1173b}',  Script::Ahom), ('\u{1173c}', '\u{1173e}',
         Script::Ahom), ('\u{1173f}', '\u{1173f}',  Script::Ahom), ('\u{11740}', '\u{11746}',
         Script::Ahom), ('\u{11800}', '\u{1182b}',  Script::Dogra), ('\u{1182c}', '\u{1182e}',
         Script::Dogra), ('\u{1182f}', '\u{11837}',  Script::Dogra), ('\u{11838}', '\u{11838}',
         Script::Dogra), ('\u{11839}', '\u{1183a}',  Script::Dogra), ('\u{1183b}', '\u{1183b}',
         Script::Dogra), ('\u{118a0}', '\u{118df}',  Script::Warang_Citi), ('\u{118e0}',
        '\u{118e9}',  Script::Warang_Citi), ('\u{118ea}', '\u{118f2}',  Script::Warang_Citi),
        ('\u{118ff}', '\u{118ff}',  Script::Warang_Citi), ('\u{11900}', '\u{11906}',
         Script::Dives_Akuru), ('\u{11909}', '\u{11909}',  Script::Dives_Akuru), ('\u{1190c}',
        '\u{11913}',  Script::Dives_Akuru), ('\u{11915}', '\u{11916}',  Script::Dives_Akuru),
        ('\u{11918}', '\u{1192f}',  Script::Dives_Akuru), ('\u{11930}', '\u{11935}',
         Script::Dives_Akuru), ('\u{11937}', '\u{11938}',  Script::Dives_Akuru), ('\u{1193b}',
        '\u{1193c}',  Script::Dives_Akuru), ('\u{1193d}', '\u{1193d}',  Script::Dives_Akuru),
        ('\u{1193e}', '\u{1193e}',  Script::Dives_Akuru), ('\u{1193f}', '\u{1193f}',
         Script::Dives_Akuru), ('\u{11940}', '\u{11940}',  Script::Dives_Akuru), ('\u{11941}',
        '\u{11941}',  Script::Dives_Akuru), ('\u{11942}', '\u{11942}',  Script::Dives_Akuru),
        ('\u{11943}', '\u{11943}',  Script::Dives_Akuru), ('\u{11944}', '\u{11946}',
         Script::Dives_Akuru), ('\u{11950}', '\u{11959}',  Script::Dives_Akuru), ('\u{119a0}',
        '\u{119a7}',  Script::Nandinagari), ('\u{119aa}', '\u{119d0}',  Script::Nandinagari),
        ('\u{119d1}', '\u{119d3}',  Script::Nandinagari), ('\u{119d4}', '\u{119d7}',
         Script::Nandinagari), ('\u{119da}', '\u{119db}',  Script::Nandinagari), ('\u{119dc}',
        '\u{119df}',  Script::Nandinagari), ('\u{119e0}', '\u{119e0}',  Script::Nandinagari),
        ('\u{119e1}', '\u{119e1}',  Script::Nandinagari), ('\u{119e2}', '\u{119e2}',
         Script::Nandinagari), ('\u{119e3}', '\u{119e3}',  Script::Nandinagari), ('\u{119e4}',
        '\u{119e4}',  Script::Nandinagari), ('\u{11a00}', '\u{11a00}',  Script::Zanabazar_Square),
        ('\u{11a01}', '\u{11a0a}',  Script::Zanabazar_Square), ('\u{11a0b}', '\u{11a32}',
         Script::Zanabazar_Square), ('\u{11a33}', '\u{11a38}',  Script::Zanabazar_Square),
        ('\u{11a39}', '\u{11a39}',  Script::Zanabazar_Square), ('\u{11a3a}', '\u{11a3a}',
         Script::Zanabazar_Square), ('\u{11a3b}', '\u{11a3e}',  Script::Zanabazar_Square),
        ('\u{11a3f}', '\u{11a46}',  Script::Zanabazar_Square), ('\u{11a47}', '\u{11a47}',
         Script::Zanabazar_Square), ('\u{11a50}', '\u{11a50}',  Script::Soyombo), ('\u{11a51}',
        '\u{11a56}',  Script::Soyombo), ('\u{11a57}', '\u{11a58}',  Script::Soyombo), ('\u{11a59}',
        '\u{11a5b}',  Script::Soyombo), ('\u{11a5c}', '\u{11a89}',  Script::Soyombo), ('\u{11a8a}',
        '\u{11a96}',  Script::Soyombo), ('\u{11a97}', '\u{11a97}',  Script::Soyombo), ('\u{11a98}',
        '\u{11a99}',  Script::Soyombo), ('\u{11a9a}', '\u{11a9c}',  Script::Soyombo), ('\u{11a9d}',
        '\u{11a9d}',  Script::Soyombo), ('\u{11a9e}', '\u{11aa2}',  Script::Soyombo), ('\u{11ab0}',
        '\u{11abf}',  Script::Canadian_Aboriginal), ('\u{11ac0}', '\u{11af8}',
         Script::Pau_Cin_Hau), ('\u{11b00}', '\u{11b09}',  Script::Devanagari), ('\u{11b60}',
        '\u{11b60}',  Script::Sharada), ('\u{11b61}', '\u{11b61}',  Script::Sharada), ('\u{11b62}',
        '\u{11b64}',  Script::Sharada), ('\u{11b65}', '\u{11b65}',  Script::Sharada), ('\u{11b66}',
        '\u{11b66}',  Script::Sharada), ('\u{11b67}', '\u{11b67}',  Script::Sharada), ('\u{11bc0}',
        '\u{11be0}',  Script::Sunuwar), ('\u{11be1}', '\u{11be1}',  Script::Sunuwar), ('\u{11bf0}',
        '\u{11bf9}',  Script::Sunuwar), ('\u{11c00}', '\u{11c08}',  Script::Bhaiksuki),
        ('\u{11c0a}', '\u{11c2e}',  Script::Bhaiksuki), ('\u{11c2f}', '\u{11c2f}',
         Script::Bhaiksuki), ('\u{11c30}', '\u{11c36}',  Script::Bhaiksuki), ('\u{11c38}',
        '\u{11c3d}',  Script::Bhaiksuki), ('\u{11c3e}', '\u{11c3e}',  Script::Bhaiksuki),
        ('\u{11c3f}', '\u{11c3f}',  Script::Bhaiksuki), ('\u{11c40}', '\u{11c40}',
         Script::Bhaiksuki), ('\u{11c41}', '\u{11c45}',  Script::Bhaiksuki), ('\u{11c50}',
        '\u{11c59}',  Script::Bhaiksuki), ('\u{11c5a}', '\u{11c6c}',  Script::Bhaiksuki),
        ('\u{11c70}', '\u{11c71}',  Script::Marchen), ('\u{11c72}', '\u{11c8f}',  Script::Marchen),
        ('\u{11c92}', '\u{11ca7}',  Script::Marchen), ('\u{11ca9}', '\u{11ca9}',  Script::Marchen),
        ('\u{11caa}', '\u{11cb0}',  Script::Marchen), ('\u{11cb1}', '\u{11cb1}',  Script::Marchen),
        ('\u{11cb2}', '\u{11cb3}',  Script::Marchen), ('\u{11cb4}', '\u{11cb4}',  Script::Marchen),
        ('\u{11cb5}', '\u{11cb6}',  Script::Marchen), ('\u{11d00}', '\u{11d06}',
         Script::Masaram_Gondi), ('\u{11d08}', '\u{11d09}',  Script::Masaram_Gondi), ('\u{11d0b}',
        '\u{11d30}',  Script::Masaram_Gondi), ('\u{11d31}', '\u{11d36}',  Script::Masaram_Gondi),
        ('\u{11d3a}', '\u{11d3a}',  Script::Masaram_Gondi), ('\u{11d3c}', '\u{11d3d}',
         Script::Masaram_Gondi), ('\u{11d3f}', '\u{11d45}',  Script::Masaram_Gondi), ('\u{11d46}',
        '\u{11d46}',  Script::Masaram_Gondi), ('\u{11d47}', '\u{11d47}',  Script::Masaram_Gondi),
        ('\u{11d50}', '\u{11d59}',  Script::Masaram_Gondi), ('\u{11d60}', '\u{11d65}',
         Script::Gunjala_Gondi), ('\u{11d67}', '\u{11d68}',  Script::Gunjala_Gondi), ('\u{11d6a}',
        '\u{11d89}',  Script::Gunjala_Gondi), ('\u{11d8a}', '\u{11d8e}',  Script::Gunjala_Gondi),
        ('\u{11d90}', '\u{11d91}',  Script::Gunjala_Gondi), ('\u{11d93}', '\u{11d94}',
         Script::Gunjala_Gondi), ('\u{11d95}', '\u{11d95}',  Script::Gunjala_Gondi), ('\u{11d96}',
        '\u{11d96}',  Script::Gunjala_Gondi), ('\u{11d97}', '\u{11d97}',  Script::Gunjala_Gondi),
        ('\u{11d98}', '\u{11d98}',  Script::Gunjala_Gondi), ('\u{11da0}', '\u{11da9}',
         Script::Gunjala_Gondi), ('\u{11db0}', '\u{11dd8}',  Script::Tolong_Siki), ('\u{11dd9}',
        '\u{11dd9}',  Script::Tolong_Siki), ('\u{11dda}', '\u{11ddb}',  Script::Tolong_Siki),
        ('\u{11de0}', '\u{11de9}',  Script::Tolong_Siki), ('\u{11ee0}', '\u{11ef2}',
         Script::Makasar), ('\u{11ef3}', '\u{11ef4}',  Script::Makasar), ('\u{11ef5}', '\u{11ef6}',
         Script::Makasar), ('\u{11ef7}', '\u{11ef8}',  Script::Makasar), ('\u{11f00}', '\u{11f01}',
         Script::Kawi), ('\u{11f02}', '\u{11f02}',  Script::Kawi), ('\u{11f03}', '\u{11f03}',
         Script::Kawi), ('\u{11f04}', '\u{11f10}',  Script::Kawi), ('\u{11f12}', '\u{11f33}',
         Script::Kawi), ('\u{11f34}', '\u{11f35}',  Script::Kawi), ('\u{11f36}', '\u{11f3a}',
         Script::Kawi), ('\u{11f3e}', '\u{11f3f}',  Script::Kawi), ('\u{11f40}', '\u{11f40}',
         Script::Kawi), ('\u{11f41}', '\u{11f41}',  Script::Kawi), ('\u{11f42}', '\u{11f42}',
         Script::Kawi), ('\u{11f43}', '\u{11f4f}',  Script::Kawi), ('\u{11f50}', '\u{11f59}',
         Script::Kawi), ('\u{11f5a}', '\u{11f5a}',  Script::Kawi), ('\u{11fb0}', '\u{11fb0}',
         Script::Lisu), ('\u{11fc0}', '\u{11fd4}',  Script::Tamil), ('\u{11fd5}', '\u{11fdc}',
         Script::Tamil), ('\u{11fdd}', '\u{11fe0}',  Script::Tamil), ('\u{11fe1}', '\u{11ff1}',
         Script::Tamil), ('\u{11fff}', '\u{11fff}',  Script::Tamil), ('\u{12000}', '\u{12399}',
         Script::Cuneiform), ('\u{12400}', '\u{1246e}',  Script::Cuneiform), ('\u{12470}',
        '\u{12474}',  Script::Cuneiform), ('\u{12480}', '\u{12543}',  Script::Cuneiform),
        ('\u{12f90}', '\u{12ff0}',  Script::Cypro_Minoan), ('\u{12ff1}', '\u{12ff2}',
         Script::Cypro_Minoan), ('\u{13000}', '\u{1342f}',  Script::Egyptian_Hieroglyphs),
        ('\u{13430}', '\u{1343f}',  Script::Egyptian_Hieroglyphs), ('\u{13440}', '\u{13440}',
         Script::Egyptian_Hieroglyphs), ('\u{13441}', '\u{13446}',  Script::Egyptian_Hieroglyphs),
        ('\u{13447}', '\u{13455}',  Script::Egyptian_Hieroglyphs), ('\u{13460}', '\u{143fa}',
         Script::Egyptian_Hieroglyphs), ('\u{14400}', '\u{14646}',  Script::Anatolian_Hieroglyphs),
        ('\u{16100}', '\u{1611d}',  Script::Gurung_Khema), ('\u{1611e}', '\u{16129}',
         Script::Gurung_Khema), ('\u{1612a}', '\u{1612c}',  Script::Gurung_Khema), ('\u{1612d}',
        '\u{1612f}',  Script::Gurung_Khema), ('\u{16130}', '\u{16139}',  Script::Gurung_Khema),
        ('\u{16800}', '\u{16a38}',  Script::Bamum), ('\u{16a40}', '\u{16a5e}',  Script::Mro),
        ('\u{16a60}', '\u{16a69}',  Script::Mro), ('\u{16a6e}', '\u{16a6f}',  Script::Mro),
        ('\u{16a70}', '\u{16abe}',  Script::Tangsa), ('\u{16ac0}', '\u{16ac9}',  Script::Tangsa),
        ('\u{16ad0}', '\u{16aed}',  Script::Bassa_Vah), ('\u{16af0}', '\u{16af4}',
         Script::Bassa_Vah), ('\u{16af5}', '\u{16af5}',  Script::Bassa_Vah), ('\u{16b00}',
        '\u{16b2f}',  Script::Pahawh_Hmong), ('\u{16b30}', '\u{16b36}',  Script::Pahawh_Hmong),
        ('\u{16b37}', '\u{16b3b}',  Script::Pahawh_Hmong), ('\u{16b3c}', '\u{16b3f}',
         Script::Pahawh_Hmong), ('\u{16b40}', '\u{16b43}',  Script::Pahawh_Hmong), ('\u{16b44}',
        '\u{16b44}',  Script::Pahawh_Hmong), ('\u{16b45}', '\u{16b45}',  Script::Pahawh_Hmong),
        ('\u{16b50}', '\u{16b59}',  Script::Pahawh_Hmong), ('\u{16b5b}', '\u{16b61}',
         Script::Pahawh_Hmong), ('\u{16b63}', '\u{16b77}',  Script::Pahawh_Hmong), ('\u{16b7d}',
        '\u{16b8f}',  Script::Pahawh_Hmong), ('\u{16d40}', '\u{16d42}',  Script::Kirat_Rai),
        ('\u{16d43}', '\u{16d6a}',  Script::Kirat_Rai), ('\u{16d6b}', '\u{16d6c}',
         Script::Kirat_Rai), ('\u{16d6d}', '\u{16d6f}',  Script::Kirat_Rai), ('\u{16d70}',
        '\u{16d79}',  Script::Kirat_Rai), ('\u{16e40}', '\u{16e7f}',  Script::Medefaidrin),
        ('\u{16e80}', '\u{16e96}',  Script::Medefaidrin), ('\u{16e97}', '\u{16e9a}',
         Script::Medefaidrin), ('\u{16ea0}', '\u{16eb8}',  Script::Beria_Erfe), ('\u{16ebb}',
        '\u{16ed3}',  Script::Beria_Erfe), ('\u{16f00}', '\u{16f4a}',  Script::Miao), ('\u{16f4f}',
        '\u{16f4f}',  Script::Miao), ('\u{16f50}', '\u{16f50}',  Script::Miao), ('\u{16f51}',
        '\u{16f87}',  Script::Miao), ('\u{16f8f}', '\u{16f92}',  Script::Miao), ('\u{16f93}',
        '\u{16f9f}',  Script::Miao), ('\u{16fe0}', '\u{16fe0}',  Script::Tangut), ('\u{16fe1}',
        '\u{16fe1}',  Script::Nushu), ('\u{16fe2}', '\u{16fe2}',  Script::Han), ('\u{16fe3}',
        '\u{16fe3}',  Script::Han), ('\u{16fe4}', '\u{16fe4}',  Script::Khitan_Small_Script),
        ('\u{16ff0}', '\u{16ff1}',  Script::Han), ('\u{16ff2}', '\u{16ff3}',  Script::Han),
        ('\u{16ff4}', '\u{16ff6}',  Script::Han), ('\u{17000}', '\u{18aff}',  Script::Tangut),
        ('\u{18b00}', '\u{18cd5}',  Script::Khitan_Small_Script), ('\u{18cff}', '\u{18cff}',
         Script::Khitan_Small_Script), ('\u{18d00}', '\u{18d1e}',  Script::Tangut), ('\u{18d80}',
        '\u{18df2}',  Script::Tangut), ('\u{1aff0}', '\u{1aff3}',  Script::Katakana), ('\u{1aff5}',
        '\u{1affb}',  Script::Katakana), ('\u{1affd}', '\u{1affe}',  Script::Katakana),
        ('\u{1b000}', '\u{1b000}',  Script::Katakana), ('\u{1b001}', '\u{1b11f}',
         Script::Hiragana), ('\u{1b120}', '\u{1b122}',  Script::Katakana), ('\u{1b132}',
        '\u{1b132}',  Script::Hiragana), ('\u{1b150}', '\u{1b152}',  Script::Hiragana),
        ('\u{1b155}', '\u{1b155}',  Script::Katakana), ('\u{1b164}', '\u{1b167}',
         Script::Katakana), ('\u{1b170}', '\u{1b2fb}',  Script::Nushu), ('\u{1bc00}', '\u{1bc6a}',
         Script::Duployan), ('\u{1bc70}', '\u{1bc7c}',  Script::Duployan), ('\u{1bc80}',
        '\u{1bc88}',  Script::Duployan), ('\u{1bc90}', '\u{1bc99}',  Script::Duployan),
        ('\u{1bc9c}', '\u{1bc9c}',  Script::Duployan), ('\u{1bc9d}', '\u{1bc9e}',
         Script::Duployan), ('\u{1bc9f}', '\u{1bc9f}',  Script::Duployan), ('\u{1bca0}',
        '\u{1bca3}',  Script::Common), ('\u{1cc00}', '\u{1ccef}',  Script::Common), ('\u{1ccf0}',
        '\u{1ccf9}',  Script::Common), ('\u{1ccfa}', '\u{1ccfc}',  Script::Common), ('\u{1cd00}',
        '\u{1ceb3}',  Script::Common), ('\u{1ceba}', '\u{1ced0}',  Script::Common), ('\u{1cee0}',
        '\u{1ceef}',  Script::Common), ('\u{1cef0}', '\u{1cef0}',  Script::Common), ('\u{1cf00}',
        '\u{1cf2d}',  Script::Inherited), ('\u{1cf30}', '\u{1cf46}',  Script::Inherited),
        ('\u{1cf50}', '\u{1cfc3}',  Script::Common), ('\u{1d000}', '\u{1d0f5}',  Script::Common),
        ('\u{1d100}', '\u{1d126}',  Script::Common), ('\u{1d129}', '\u{1d164}',  Script::Common),
        ('\u{1d165}', '\u{1d166}',  Script::Common), ('\u{1d167}', '\u{1d169}',  Script::Inherited),
        ('\u{1d16a}', '\u{1d16c}',  Script::Common), ('\u{1d16d}', '\u{1d172}',  Script::Common),
        ('\u{1d173}', '\u{1d17a}',  Script::Common), ('\u{1d17b}', '\u{1d182}',  Script::Inherited),
        ('\u{1d183}', '\u{1d184}',  Script::Common), ('\u{1d185}', '\u{1d18b}',  Script::Inherited),
        ('\u{1d18c}', '\u{1d1a9}',  Script::Common), ('\u{1d1aa}', '\u{1d1ad}',  Script::Inherited),
        ('\u{1d1ae}', '\u{1d1ea}',  Script::Common), ('\u{1d200}', '\u{1d241}',  Script::Greek),
        ('\u{1d242}', '\u{1d244}',  Script::Greek), ('\u{1d245}', '\u{1d245}',  Script::Greek),
        ('\u{1d2c0}', '\u{1d2d3}',  Script::Common), ('\u{1d2e0}', '\u{1d2f3}',  Script::Common),
        ('\u{1d300}', '\u{1d356}',  Script::Common), ('\u{1d360}', '\u{1d378}',  Script::Common),
        ('\u{1d400}', '\u{1d454}',  Script::Common), ('\u{1d456}', '\u{1d49c}',  Script::Common),
        ('\u{1d49e}', '\u{1d49f}',  Script::Common), ('\u{1d4a2}', '\u{1d4a2}',  Script::Common),
        ('\u{1d4a5}', '\u{1d4a6}',  Script::Common), ('\u{1d4a9}', '\u{1d4ac}',  Script::Common),
        ('\u{1d4ae}', '\u{1d4b9}',  Script::Common), ('\u{1d4bb}', '\u{1d4bb}',  Script::Common),
        ('\u{1d4bd}', '\u{1d4c3}',  Script::Common), ('\u{1d4c5}', '\u{1d505}',  Script::Common),
        ('\u{1d507}', '\u{1d50a}',  Script::Common), ('\u{1d50d}', '\u{1d514}',  Script::Common),
        ('\u{1d516}', '\u{1d51c}',  Script::Common), ('\u{1d51e}', '\u{1d539}',  Script::Common),
        ('\u{1d53b}', '\u{1d53e}',  Script::Common), ('\u{1d540}', '\u{1d544}',  Script::Common),
        ('\u{1d546}', '\u{1d546}',  Script::Common), ('\u{1d54a}', '\u{1d550}',  Script::Common),
        ('\u{1d552}', '\u{1d6a5}',  Script::Common), ('\u{1d6a8}', '\u{1d6c0}',  Script::Common),
        ('\u{1d6c1}', '\u{1d6c1}',  Script::Common), ('\u{1d6c2}', '\u{1d6da}',  Script::Common),
        ('\u{1d6db}', '\u{1d6db}',  Script::Common), ('\u{1d6dc}', '\u{1d6fa}',  Script::Common),
        ('\u{1d6fb}', '\u{1d6fb}',  Script::Common), ('\u{1d6fc}', '\u{1d714}',  Script::Common),
        ('\u{1d715}', '\u{1d715}',  Script::Common), ('\u{1d716}', '\u{1d734}',  Script::Common),
        ('\u{1d735}', '\u{1d735}',  Script::Common), ('\u{1d736}', '\u{1d74e}',  Script::Common),
        ('\u{1d74f}', '\u{1d74f}',  Script::Common), ('\u{1d750}', '\u{1d76e}',  Script::Common),
        ('\u{1d76f}', '\u{1d76f}',  Script::Common), ('\u{1d770}', '\u{1d788}',  Script::Common),
        ('\u{1d789}', '\u{1d789}',  Script::Common), ('\u{1d78a}', '\u{1d7a8}',  Script::Common),
        ('\u{1d7a9}', '\u{1d7a9}',  Script::Common), ('\u{1d7aa}', '\u{1d7c2}',  Script::Common),
        ('\u{1d7c3}', '\u{1d7c3}',  Script::Common), ('\u{1d7c4}', '\u{1d7cb}',  Script::Common),
        ('\u{1d7ce}', '\u{1d7ff}',  Script::Common), ('\u{1d800}', '\u{1d9ff}',
         Script::SignWriting), ('\u{1da00}', '\u{1da36}',  Script::SignWriting), ('\u{1da37}',
        '\u{1da3a}',  Script::SignWriting), ('\u{1da3b}', '\u{1da6c}',  Script::SignWriting),
        ('\u{1da6d}', '\u{1da74}',  Script::SignWriting), ('\u{1da75}', '\u{1da75}',
         Script::SignWriting), ('\u{1da76}', '\u{1da83}',  Script::SignWriting), ('\u{1da84}',
        '\u{1da84}',  Script::SignWriting), ('\u{1da85}', '\u{1da86}',  Script::SignWriting),
        ('\u{1da87}', '\u{1da8b}',  Script::SignWriting), ('\u{1da9b}', '\u{1da9f}',
         Script::SignWriting), ('\u{1daa1}', '\u{1daaf}',  Script::SignWriting), ('\u{1df00}',
        '\u{1df09}',  Script::Latin), ('\u{1df0a}', '\u{1df0a}',  Script::Latin), ('\u{1df0b}',
        '\u{1df1e}',  Script::Latin), ('\u{1df25}', '\u{1df2a}',  Script::Latin), ('\u{1e000}',
        '\u{1e006}',  Script::Glagolitic), ('\u{1e008}', '\u{1e018}',  Script::Glagolitic),
        ('\u{1e01b}', '\u{1e021}',  Script::Glagolitic), ('\u{1e023}', '\u{1e024}',
         Script::Glagolitic), ('\u{1e026}', '\u{1e02a}',  Script::Glagolitic), ('\u{1e030}',
        '\u{1e06d}',  Script::Cyrillic), ('\u{1e08f}', '\u{1e08f}',  Script::Cyrillic),
        ('\u{1e100}', '\u{1e12c}',  Script::Nyiakeng_Puachue_Hmong), ('\u{1e130}', '\u{1e136}',
         Script::Nyiakeng_Puachue_Hmong), ('\u{1e137}', '\u{1e13d}',
         Script::Nyiakeng_Puachue_Hmong), ('\u{1e140}', '\u{1e149}',
         Script::Nyiakeng_Puachue_Hmong), ('\u{1e14e}', '\u{1e14e}',
         Script::Nyiakeng_Puachue_Hmong), ('\u{1e14f}', '\u{1e14f}',
         Script::Nyiakeng_Puachue_Hmong), ('\u{1e290}', '\u{1e2ad}',  Script::Toto), ('\u{1e2ae}',
        '\u{1e2ae}',  Script::Toto), ('\u{1e2c0}', '\u{1e2eb}',  Script::Wancho), ('\u{1e2ec}',
        '\u{1e2ef}',  Script::Wancho), ('\u{1e2f0}', '\u{1e2f9}',  Script::Wancho), ('\u{1e2ff}',
        '\u{1e2ff}',  Script::Wancho), ('\u{1e4d0}', '\u{1e4ea}',  Script::Nag_Mundari),
        ('\u{1e4eb}', '\u{1e4eb}',  Script::Nag_Mundari), ('\u{1e4ec}', '\u{1e4ef}',
         Script::Nag_Mundari), ('\u{1e4f0}', '\u{1e4f9}',  Script::Nag_Mundari), ('\u{1e5d0}',
        '\u{1e5ed}',  Script::Ol_Onal), ('\u{1e5ee}', '\u{1e5ef}',  Script::Ol_Onal), ('\u{1e5f0}',
        '\u{1e5f0}',  Script::Ol_Onal), ('\u{1e5f1}', '\u{1e5fa}',  Script::Ol_Onal), ('\u{1e5ff}',
        '\u{1e5ff}',  Script::Ol_Onal), ('\u{1e6c0}', '\u{1e6de}',  Script::Tai_Yo), ('\u{1e6e0}',
        '\u{1e6e2}',  Script::Tai_Yo), ('\u{1e6e3}', '\u{1e6e3}',  Script::Tai_Yo), ('\u{1e6e4}',
        '\u{1e6e5}',  Script::Tai_Yo), ('\u{1e6e6}', '\u{1e6e6}',  Script::Tai_Yo), ('\u{1e6e7}',
        '\u{1e6ed}',  Script::Tai_Yo), ('\u{1e6ee}', '\u{1e6ef}',  Script::Tai_Yo), ('\u{1e6f0}',
        '\u{1e6f4}',  Script::Tai_Yo), ('\u{1e6f5}', '\u{1e6f5}',  Script::Tai_Yo), ('\u{1e6fe}',
        '\u{1e6fe}',  Script::Tai_Yo), ('\u{1e6ff}', '\u{1e6ff}',  Script::Tai_Yo), ('\u{1e7e0}',
        '\u{1e7e6}',  Script::Ethiopic), ('\u{1e7e8}', '\u{1e7eb}',  Script::Ethiopic),
        ('\u{1e7ed}', '\u{1e7ee}',  Script::Ethiopic), ('\u{1e7f0}', '\u{1e7fe}',
         Script::Ethiopic), ('\u{1e800}', '\u{1e8c4}',  Script::Mende_Kikakui), ('\u{1e8c7}',
        '\u{1e8cf}',  Script::Mende_Kikakui), ('\u{1e8d0}', '\u{1e8d6}',  Script::Mende_Kikakui),
        ('\u{1e900}', '\u{1e943}',  Script::Adlam), ('\u{1e944}', '\u{1e94a}',  Script::Adlam),
        ('\u{1e94b}', '\u{1e94b}',  Script::Adlam), ('\u{1e950}', '\u{1e959}',  Script::Adlam),
        ('\u{1e95e}', '\u{1e95f}',  Script::Adlam), ('\u{1ec71}', '\u{1ecab}',  Script::Common),
        ('\u{1ecac}', '\u{1ecac}',  Script::Common), ('\u{1ecad}', '\u{1ecaf}',  Script::Common),
        ('\u{1ecb0}', '\u{1ecb0}',  Script::Common), ('\u{1ecb1}', '\u{1ecb4}',  Script::Common),
        ('\u{1ed01}', '\u{1ed2d}',  Script::Common), ('\u{1ed2e}', '\u{1ed2e}',  Script::Common),
        ('\u{1ed2f}', '\u{1ed3d}',  Script::Common), ('\u{1ee00}', '\u{1ee03}',  Script::Arabic),
        ('\u{1ee05}', '\u{1ee1f}',  Script::Arabic), ('\u{1ee21}', '\u{1ee22}',  Script::Arabic),
        ('\u{1ee24}', '\u{1ee24}',  Script::Arabic), ('\u{1ee27}', '\u{1ee27}',  Script::Arabic),
        ('\u{1ee29}', '\u{1ee32}',  Script::Arabic), ('\u{1ee34}', '\u{1ee37}',  Script::Arabic),
        ('\u{1ee39}', '\u{1ee39}',  Script::Arabic), ('\u{1ee3b}', '\u{1ee3b}',  Script::Arabic),
        ('\u{1ee42}', '\u{1ee42}',  Script::Arabic), ('\u{1ee47}', '\u{1ee47}',  Script::Arabic),
        ('\u{1ee49}', '\u{1ee49}',  Script::Arabic), ('\u{1ee4b}', '\u{1ee4b}',  Script::Arabic),
        ('\u{1ee4d}', '\u{1ee4f}',  Script::Arabic), ('\u{1ee51}', '\u{1ee52}',  Script::Arabic),
        ('\u{1ee54}', '\u{1ee54}',  Script::Arabic), ('\u{1ee57}', '\u{1ee57}',  Script::Arabic),
        ('\u{1ee59}', '\u{1ee59}',  Script::Arabic), ('\u{1ee5b}', '\u{1ee5b}',  Script::Arabic),
        ('\u{1ee5d}', '\u{1ee5d}',  Script::Arabic), ('\u{1ee5f}', '\u{1ee5f}',  Script::Arabic),
        ('\u{1ee61}', '\u{1ee62}',  Script::Arabic), ('\u{1ee64}', '\u{1ee64}',  Script::Arabic),
        ('\u{1ee67}', '\u{1ee6a}',  Script::Arabic), ('\u{1ee6c}', '\u{1ee72}',  Script::Arabic),
        ('\u{1ee74}', '\u{1ee77}',  Script::Arabic), ('\u{1ee79}', '\u{1ee7c}',  Script::Arabic),
        ('\u{1ee7e}', '\u{1ee7e}',  Script::Arabic), ('\u{1ee80}', '\u{1ee89}',  Script::Arabic),
        ('\u{1ee8b}', '\u{1ee9b}',  Script::Arabic), ('\u{1eea1}', '\u{1eea3}',  Script::Arabic),
        ('\u{1eea5}', '\u{1eea9}',  Script::Arabic), ('\u{1eeab}', '\u{1eebb}',  Script::Arabic),
        ('\u{1eef0}', '\u{1eef1}',  Script::Arabic), ('\u{1f000}', '\u{1f02b}',  Script::Common),
        ('\u{1f030}', '\u{1f093}',  Script::Common), ('\u{1f0a0}', '\u{1f0ae}',  Script::Common),
        ('\u{1f0b1}', '\u{1f0bf}',  Script::Common), ('\u{1f0c1}', '\u{1f0cf}',  Script::Common),
        ('\u{1f0d1}', '\u{1f0f5}',  Script::Common), ('\u{1f100}', '\u{1f10c}',  Script::Common),
        ('\u{1f10d}', '\u{1f1ad}',  Script::Common), ('\u{1f1e6}', '\u{1f1ff}',  Script::Common),
        ('\u{1f200}', '\u{1f200}',  Script::Hiragana), ('\u{1f201}', '\u{1f202}',  Script::Common),
        ('\u{1f210}', '\u{1f23b}',  Script::Common), ('\u{1f240}', '\u{1f248}',  Script::Common),
        ('\u{1f250}', '\u{1f251}',  Script::Common), ('\u{1f260}', '\u{1f265}',  Script::Common),
        ('\u{1f300}', '\u{1f3fa}',  Script::Common), ('\u{1f3fb}', '\u{1f3ff}',  Script::Common),
        ('\u{1f400}', '\u{1f6d8}',  Script::Common), ('\u{1f6dc}', '\u{1f6ec}',  Script::Common),
        ('\u{1f6f0}', '\u{1f6fc}',  Script::Common), ('\u{1f700}', '\u{1f7d9}',  Script::Common),
        ('\u{1f7e0}', '\u{1f7eb}',  Script::Common), ('\u{1f7f0}', '\u{1f7f0}',  Script::Common),
        ('\u{1f800}', '\u{1f80b}',  Script::Common), ('\u{1f810}', '\u{1f847}',  Script::Common),
        ('\u{1f850}', '\u{1f859}',  Script::Common), ('\u{1f860}', '\u{1f887}',  Script::Common),
        ('\u{1f890}', '\u{1f8ad}',  Script::Common), ('\u{1f8b0}', '\u{1f8bb}',  Script::Common),
        ('\u{1f8c0}', '\u{1f8c1}',  Script::Common), ('\u{1f8d0}', '\u{1f8d8}',  Script::Common),
        ('\u{1f900}', '\u{1fa57}',  Script::Common), ('\u{1fa60}', '\u{1fa6d}',  Script::Common),
        ('\u{1fa70}', '\u{1fa7c}',  Script::Common), ('\u{1fa80}', '\u{1fa8a}',  Script::Common),
        ('\u{1fa8e}', '\u{1fac6}',  Script::Common), ('\u{1fac8}', '\u{1fac8}',  Script::Common),
        ('\u{1facd}', '\u{1fadc}',  Script::Common), ('\u{1fadf}', '\u{1faea}',  Script::Common),
        ('\u{1faef}', '\u{1faf8}',  Script::Common), ('\u{1fb00}', '\u{1fb92}',  Script::Common),
        ('\u{1fb94}', '\u{1fbef}',  Script::Common), ('\u{1fbf0}', '\u{1fbf9}',  Script::Common),
        ('\u{1fbfa}', '\u{1fbfa}',  Script::Common), ('\u{20000}', '\u{2a6df}',  Script::Han),
        ('\u{2a700}', '\u{2b81d}',  Script::Han), ('\u{2b820}', '\u{2cead}',  Script::Han),
        ('\u{2ceb0}', '\u{2ebe0}',  Script::Han), ('\u{2ebf0}', '\u{2ee5d}',  Script::Han),
        ('\u{2f800}', '\u{2fa1d}',  Script::Han), ('\u{30000}', '\u{3134a}',  Script::Han),
        ('\u{31350}', '\u{33479}',  Script::Han), ('\u{e0001}', '\u{e0001}',  Script::Common),
        ('\u{e0020}', '\u{e007f}',  Script::Common), ('\u{e0100}', '\u{e01ef}',  Script::Inherited)
    ];

    const SCRIPT_EXTENSIONS: &'static [(char, char, ScriptExtension)] = &[
        ('\u{b7}', '\u{b7}',
        script_extensions::AVST_CARI_COPT_DUPL_ELBA_GEOR_GLAG_GONG_GOTH_GREK_HANI_LATN_LYDI_MAHJ_PERM_SHAW),
        ('\u{2bc}', '\u{2bc}', script_extensions::BENG_CYRL_DEVA_LATN_LISU_THAI_TOTO), ('\u{2c7}',
        '\u{2c7}', script_extensions::BOPO_LATN), ('\u{2c9}', '\u{2cb}',
        script_extensions::BOPO_LATN), ('\u{2cd}', '\u{2cd}', script_extensions::LATN_LISU),
        ('\u{2d7}', '\u{2d7}', script_extensions::LATN_THAI), ('\u{2d9}', '\u{2d9}',
        script_extensions::BOPO_LATN), ('\u{300}', '\u{300}',
        script_extensions::CHER_COPT_CYRL_GREK_LATN_PERM_SUNU_TALE), ('\u{301}', '\u{301}',
        script_extensions::CHER_CYRL_GREK_LATN_OSGE_SUNU_TALE_TODR), ('\u{302}', '\u{302}',
        script_extensions::CHER_CYRL_LATN_TFNG), ('\u{303}', '\u{303}',
        script_extensions::GLAG_LATN_SUNU_SYRC_THAI), ('\u{304}', '\u{304}',
        script_extensions::AGHB_CHER_COPT_CYRL_GOTH_GREK_LATN_OSGE_SYRC_TFNG_TODR), ('\u{305}',
        '\u{305}', script_extensions::COPT_ELBA_GLAG_GOTH_KANA_LATN), ('\u{306}', '\u{306}',
        script_extensions::CYRL_GREK_LATN_PERM_TFNG), ('\u{307}', '\u{307}',
        script_extensions::COPT_DUPL_HEBR_LATN_PERM_SYRC_TALE_TFNG_TODR), ('\u{308}', '\u{308}',
        script_extensions::ARMN_CYRL_DUPL_GOTH_GREK_HEBR_LATN_PERM_SYRC_TALE_TFNG), ('\u{309}',
        '\u{309}', script_extensions::LATN_TFNG), ('\u{30a}', '\u{30a}',
        script_extensions::DUPL_LATN_SYRC), ('\u{30b}', '\u{30b}',
        script_extensions::CHER_CYRL_LATN_OSGE), ('\u{30c}', '\u{30c}',
        script_extensions::CHER_LATN_TALE), ('\u{30d}', '\u{30d}', script_extensions::LATN_SUNU),
        ('\u{30e}', '\u{30e}', script_extensions::ETHI_LATN), ('\u{310}', '\u{310}',
        script_extensions::LATN_SUNU), ('\u{311}', '\u{311}', script_extensions::CYRL_LATN_TODR),
        ('\u{313}', '\u{313}', script_extensions::GREK_LATN_PERM_TODR), ('\u{323}', '\u{323}',
        script_extensions::CHER_DUPL_KANA_LATN_SYRC_TFNG), ('\u{324}', '\u{324}',
        script_extensions::CHER_DUPL_LATN_SYRC), ('\u{325}', '\u{325}',
        script_extensions::LATN_SYRC), ('\u{32d}', '\u{32d}', script_extensions::LATN_SUNU_SYRC),
        ('\u{32e}', '\u{32e}', script_extensions::LATN_SYRC), ('\u{330}', '\u{330}',
        script_extensions::CHER_LATN_SYRC), ('\u{331}', '\u{331}',
        script_extensions::AGHB_CHER_GOTH_LATN_SUNU_SYRC_THAI), ('\u{342}', '\u{342}',
        script_extensions::GREK), ('\u{345}', '\u{345}', script_extensions::GREK), ('\u{358}',
        '\u{358}', script_extensions::LATN_OSGE), ('\u{35e}', '\u{35e}',
        script_extensions::AGHB_LATN_TODR), ('\u{363}', '\u{36f}', script_extensions::LATN),
        ('\u{374}', '\u{374}', script_extensions::COPT_GREK), ('\u{375}', '\u{375}',
        script_extensions::COPT_GREK), ('\u{483}', '\u{483}', script_extensions::CYRL_PERM),
        ('\u{484}', '\u{484}', script_extensions::CYRL_GLAG), ('\u{485}', '\u{486}',
        script_extensions::CYRL_LATN), ('\u{487}', '\u{487}', script_extensions::CYRL_GLAG),
        ('\u{589}', '\u{589}', script_extensions::ARMN_GEOR_GLAG), ('\u{60c}', '\u{60c}',
        script_extensions::ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{61b}', '\u{61b}',
        script_extensions::ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{61c}', '\u{61c}',
        script_extensions::ARAB_SYRC_THAA), ('\u{61f}', '\u{61f}',
        script_extensions::ADLM_ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{640}', '\u{640}',
        script_extensions::ADLM_ARAB_MAND_MANI_OUGR_PHLP_ROHG_SOGD_SYRC), ('\u{64b}', '\u{655}',
        script_extensions::ARAB_SYRC), ('\u{660}', '\u{669}', script_extensions::ARAB_THAA_YEZI),
        ('\u{670}', '\u{670}', script_extensions::ARAB_SYRC), ('\u{6d4}', '\u{6d4}',
        script_extensions::ARAB_ROHG), ('\u{951}', '\u{951}',
        script_extensions::BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_NAND_NEWA_ORYA_SHRD_TAML_TELU_TIRH),
        ('\u{952}', '\u{952}',
        script_extensions::BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_NEWA_ORYA_TAML_TELU_TIRH),
        ('\u{964}', '\u{964}',
        script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH),
        ('\u{965}', '\u{965}',
        script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GUKH_GURU_KNDA_LIMB_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH),
        ('\u{966}', '\u{96f}', script_extensions::DEVA_DOGR_KTHI_MAHJ), ('\u{9e6}', '\u{9ef}',
        script_extensions::BENG_CAKM_SYLO), ('\u{a66}', '\u{a6f}', script_extensions::GURU_MULT),
        ('\u{ae6}', '\u{aef}', script_extensions::GUJR_KHOJ), ('\u{be6}', '\u{bef}',
        script_extensions::GRAN_TAML), ('\u{bf0}', '\u{bf2}', script_extensions::GRAN_TAML),
        ('\u{bf3}', '\u{bf3}', script_extensions::GRAN_TAML), ('\u{ce6}', '\u{cef}',
        script_extensions::KNDA_NAND_TUTG), ('\u{1040}', '\u{1049}',
        script_extensions::CAKM_MYMR_TALE), ('\u{10fb}', '\u{10fb}',
        script_extensions::GEOR_GLAG_LATN), ('\u{16eb}', '\u{16ed}', script_extensions::RUNR),
        ('\u{1735}', '\u{1736}', script_extensions::BUHD_HANO_TAGB_TGLG), ('\u{1802}', '\u{1803}',
        script_extensions::MONG_PHAG), ('\u{1805}', '\u{1805}', script_extensions::MONG_PHAG),
        ('\u{1cd0}', '\u{1cd0}', script_extensions::BENG_DEVA_GRAN_KNDA), ('\u{1cd1}', '\u{1cd1}',
        script_extensions::DEVA), ('\u{1cd2}', '\u{1cd2}', script_extensions::BENG_DEVA_GRAN_KNDA),
        ('\u{1cd3}', '\u{1cd3}', script_extensions::DEVA_GRAN_KNDA), ('\u{1cd4}', '\u{1cd4}',
        script_extensions::DEVA), ('\u{1cd5}', '\u{1cd5}',
        script_extensions::BENG_DEVA_NEWA_TELU_TIRH), ('\u{1cd6}', '\u{1cd6}',
        script_extensions::BENG_DEVA_TELU), ('\u{1cd7}', '\u{1cd7}',
        script_extensions::DEVA_NEWA_SHRD), ('\u{1cd8}', '\u{1cd8}',
        script_extensions::BENG_DEVA_NEWA_TELU), ('\u{1cd9}', '\u{1cd9}',
        script_extensions::DEVA_SHRD), ('\u{1cda}', '\u{1cda}',
        script_extensions::DEVA_KNDA_MLYM_ORYA_TAML_TELU), ('\u{1cdb}', '\u{1cdb}',
        script_extensions::DEVA), ('\u{1cdc}', '\u{1cdd}', script_extensions::DEVA_SHRD),
        ('\u{1cde}', '\u{1cdf}', script_extensions::DEVA), ('\u{1ce0}', '\u{1ce0}',
        script_extensions::DEVA_SHRD), ('\u{1ce1}', '\u{1ce1}', script_extensions::BENG_DEVA),
        ('\u{1ce2}', '\u{1ce2}', script_extensions::DEVA_NEWA_TIRH), ('\u{1ce3}', '\u{1ce8}',
        script_extensions::DEVA), ('\u{1ce9}', '\u{1ce9}', script_extensions::DEVA_NAND_NEWA),
        ('\u{1cea}', '\u{1cea}', script_extensions::BENG_DEVA_SHRD), ('\u{1ceb}', '\u{1ceb}',
        script_extensions::DEVA_NEWA), ('\u{1cec}', '\u{1cec}', script_extensions::DEVA),
        ('\u{1ced}', '\u{1ced}', script_extensions::BENG_DEVA_NEWA_SHRD), ('\u{1cee}', '\u{1cf1}',
        script_extensions::DEVA), ('\u{1cf2}', '\u{1cf2}',
        script_extensions::BENG_DEVA_GRAN_KNDA_MLYM_NAND_ORYA_SINH_TELU_TIRH_TUTG), ('\u{1cf3}',
        '\u{1cf3}', script_extensions::DEVA_GRAN), ('\u{1cf4}', '\u{1cf4}',
        script_extensions::DEVA_GRAN_KNDA_TUTG), ('\u{1cf5}', '\u{1cf6}',
        script_extensions::BENG_DEVA), ('\u{1cf7}', '\u{1cf7}', script_extensions::BENG),
        ('\u{1cf8}', '\u{1cf9}', script_extensions::DEVA_GRAN), ('\u{1cfa}', '\u{1cfa}',
        script_extensions::NAND), ('\u{1dc0}', '\u{1dc1}', script_extensions::GREK), ('\u{1df8}',
        '\u{1df8}', script_extensions::CYRL_LATN_SYRC), ('\u{1dfa}', '\u{1dfa}',
        script_extensions::SYRC), ('\u{202f}', '\u{202f}', script_extensions::LATN_MONG_PHAG),
        ('\u{204f}', '\u{204f}', script_extensions::ADLM_ARAB), ('\u{205a}', '\u{205a}',
        script_extensions::CARI_GEOR_GLAG_HUNG_LYCI_ORKH), ('\u{205d}', '\u{205d}',
        script_extensions::CARI_GREK_HUNG_MERO), ('\u{20f0}', '\u{20f0}',
        script_extensions::DEVA_GRAN_LATN), ('\u{2e17}', '\u{2e17}', script_extensions::COPT_LATN),
        ('\u{2e30}', '\u{2e30}', script_extensions::AVST_ORKH), ('\u{2e31}', '\u{2e31}',
        script_extensions::AVST_CARI_GEOR_HUNG_KTHI_LYDI_SAMR), ('\u{2e3c}', '\u{2e3c}',
        script_extensions::DUPL), ('\u{2e41}', '\u{2e41}', script_extensions::ADLM_ARAB_HUNG),
        ('\u{2e43}', '\u{2e43}', script_extensions::CYRL_GLAG), ('\u{2ff0}', '\u{2fff}',
        script_extensions::HANI_TANG), ('\u{3001}', '\u{3001}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_YIII), ('\u{3002}', '\u{3002}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_PHAG_YIII), ('\u{3003}', '\u{3003}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3006}', '\u{3006}',
        script_extensions::HANI), ('\u{3008}', '\u{3008}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII), ('\u{3009}', '\u{3009}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII), ('\u{300a}', '\u{300a}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII), ('\u{300b}', '\u{300b}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII), ('\u{300c}', '\u{300c}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300d}', '\u{300d}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300e}', '\u{300e}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300f}', '\u{300f}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3010}', '\u{3010}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3011}', '\u{3011}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3013}', '\u{3013}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3014}', '\u{3014}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3015}', '\u{3015}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3016}', '\u{3016}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3017}', '\u{3017}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3018}', '\u{3018}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3019}', '\u{3019}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301a}', '\u{301a}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301b}', '\u{301b}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301c}', '\u{301c}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{301d}', '\u{301d}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{301e}', '\u{301f}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{302a}', '\u{302d}',
        script_extensions::BOPO_HANI), ('\u{3030}', '\u{3030}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3031}', '\u{3035}',
        script_extensions::HIRA_KANA), ('\u{3037}', '\u{3037}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{303c}', '\u{303c}',
        script_extensions::HANI_HIRA_KANA), ('\u{303d}', '\u{303d}',
        script_extensions::HANI_HIRA_KANA), ('\u{303e}', '\u{303f}', script_extensions::HANI),
        ('\u{3099}', '\u{309a}', script_extensions::HIRA_KANA), ('\u{309b}', '\u{309c}',
        script_extensions::HIRA_KANA), ('\u{30a0}', '\u{30a0}', script_extensions::HIRA_KANA),
        ('\u{30fb}', '\u{30fb}', script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{30fc}',
        '\u{30fc}', script_extensions::HIRA_KANA), ('\u{3190}', '\u{3191}',
        script_extensions::HANI), ('\u{3192}', '\u{3195}', script_extensions::HANI), ('\u{3196}',
        '\u{319f}', script_extensions::HANI), ('\u{31c0}', '\u{31e5}', script_extensions::HANI),
        ('\u{31ef}', '\u{31ef}', script_extensions::HANI_TANG), ('\u{3220}', '\u{3229}',
        script_extensions::HANI), ('\u{322a}', '\u{3247}', script_extensions::HANI), ('\u{3280}',
        '\u{3289}', script_extensions::HANI), ('\u{328a}', '\u{32b0}', script_extensions::HANI),
        ('\u{32c0}', '\u{32cb}', script_extensions::HANI), ('\u{32ff}', '\u{32ff}',
        script_extensions::HANI), ('\u{3358}', '\u{3370}', script_extensions::HANI), ('\u{337b}',
        '\u{337f}', script_extensions::HANI), ('\u{33e0}', '\u{33fe}', script_extensions::HANI),
        ('\u{a66f}', '\u{a66f}', script_extensions::CYRL_GLAG), ('\u{a700}', '\u{a707}',
        script_extensions::HANI_LATN), ('\u{a830}', '\u{a832}',
        script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MLYM_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG),
        ('\u{a833}', '\u{a835}',
        script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG),
        ('\u{a836}', '\u{a837}',
        script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH), ('\u{a838}',
        '\u{a838}', script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SHRD_SIND_TAKR_TIRH),
        ('\u{a839}', '\u{a839}',
        script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH), ('\u{a8f1}',
        '\u{a8f1}', script_extensions::BENG_DEVA_TUTG), ('\u{a8f3}', '\u{a8f3}',
        script_extensions::DEVA_TAML), ('\u{a92e}', '\u{a92e}', script_extensions::KALI_LATN_MYMR),
        ('\u{a9cf}', '\u{a9cf}', script_extensions::BUGI_JAVA), ('\u{fd3e}', '\u{fd3e}',
        script_extensions::ARAB_NKOO), ('\u{fd3f}', '\u{fd3f}', script_extensions::ARAB_NKOO),
        ('\u{fdf2}', '\u{fdf2}', script_extensions::ARAB_THAA), ('\u{fdfd}', '\u{fdfd}',
        script_extensions::ARAB_THAA), ('\u{fe45}', '\u{fe46}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{ff61}', '\u{ff61}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff62}', '\u{ff62}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff63}', '\u{ff63}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff64}', '\u{ff65}',
        script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff70}', '\u{ff70}',
        script_extensions::HIRA_KANA), ('\u{ff9e}', '\u{ff9f}', script_extensions::HIRA_KANA),
        ('\u{10100}', '\u{10101}', script_extensions::CPMN_CPRT_LINB), ('\u{10102}', '\u{10102}',
        script_extensions::CPRT_LINB), ('\u{10107}', '\u{10133}',
        script_extensions::CPRT_LINA_LINB), ('\u{10137}', '\u{1013f}',
        script_extensions::CPRT_LINB), ('\u{102e0}', '\u{102e0}', script_extensions::ARAB_COPT),
        ('\u{102e1}', '\u{102fb}', script_extensions::ARAB_COPT), ('\u{10af2}', '\u{10af2}',
        script_extensions::MANI_OUGR), ('\u{11301}', '\u{11301}', script_extensions::GRAN_TAML),
        ('\u{11303}', '\u{11303}', script_extensions::GRAN_TAML), ('\u{1133b}', '\u{1133c}',
        script_extensions::GRAN_TAML), ('\u{11fd0}', '\u{11fd1}', script_extensions::GRAN_TAML),
        ('\u{11fd3}', '\u{11fd3}', script_extensions::GRAN_TAML), ('\u{1bca0}', '\u{1bca3}',
        script_extensions::DUPL), ('\u{1d360}', '\u{1d371}', script_extensions::HANI), ('\u{1f250}',
        '\u{1f251}', script_extensions::HANI)
    ];


}
