// File generated with precis-tools version 0.1.9

/// Represents values of the Unicode character property
/// [Bidi_Class](http://www.unicode.org/reports/tr44/#Bidi_Class),
/// also known as the bidirectional character type. Possible values
/// are listed in [UAX44, Table 13](http://www.unicode.org/reports/tr44/#Bidi_Class_Values)
#[allow(clippy::upper_case_acronyms)]
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub enum BidiClass {
	AL,
	AN,
	B,
	BN,
	CS,
	EN,
	ES,
	ET,
	FSI,
	L,
	LRE,
	LRI,
	LRO,
	NSM,
	ON,
	PDF,
	PDI,
	R,
	RLE,
	RLI,
	RLO,
	S,
	WS,
}

static BIDI_CLASS_TABLE: [(Codepoints, BidiClass); 1596] = [
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0000, 0x0008)), BidiClass::BN),
	(Codepoints::Single(0x0009), BidiClass::S),
	(Codepoints::Single(0x000a), BidiClass::B),
	(Codepoints::Single(0x000b), BidiClass::S),
	(Codepoints::Single(0x000c), BidiClass::WS),
	(Codepoints::Single(0x000d), BidiClass::B),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x000e, 0x001b)), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x001c, 0x001e)), BidiClass::B),
	(Codepoints::Single(0x001f), BidiClass::S),
	(Codepoints::Single(0x0020), BidiClass::WS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0021, 0x0022)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0023, 0x0025)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0026, 0x002a)), BidiClass::ON),
	(Codepoints::Single(0x002b), BidiClass::ES),
	(Codepoints::Single(0x002c), BidiClass::CS),
	(Codepoints::Single(0x002d), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x002e, 0x002f)), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0030, 0x0039)), BidiClass::EN),
	(Codepoints::Single(0x003a), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x003b, 0x0040)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0041, 0x005a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x005b, 0x0060)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0061, 0x007a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x007b, 0x007e)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x007f, 0x0084)), BidiClass::BN),
	(Codepoints::Single(0x0085), BidiClass::B),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0086, 0x009f)), BidiClass::BN),
	(Codepoints::Single(0x00a0), BidiClass::CS),
	(Codepoints::Single(0x00a1), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00a2, 0x00a5)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00a6, 0x00a9)), BidiClass::ON),
	(Codepoints::Single(0x00aa), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00ab, 0x00ac)), BidiClass::ON),
	(Codepoints::Single(0x00ad), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00ae, 0x00af)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00b0, 0x00b1)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00b2, 0x00b3)), BidiClass::EN),
	(Codepoints::Single(0x00b4), BidiClass::ON),
	(Codepoints::Single(0x00b5), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00b6, 0x00b8)), BidiClass::ON),
	(Codepoints::Single(0x00b9), BidiClass::EN),
	(Codepoints::Single(0x00ba), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00bb, 0x00bf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00c0, 0x00d6)), BidiClass::L),
	(Codepoints::Single(0x00d7), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00d8, 0x00f6)), BidiClass::L),
	(Codepoints::Single(0x00f7), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x00f8, 0x02b8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02b9, 0x02ba)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02bb, 0x02c1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02c2, 0x02cf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02d0, 0x02d1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02d2, 0x02df)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02e0, 0x02e4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02e5, 0x02ed)), BidiClass::ON),
	(Codepoints::Single(0x02ee), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x02ef, 0x02ff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0300, 0x036f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0370, 0x0373)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0374, 0x0375)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0376, 0x0377)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x037a, 0x037d)), BidiClass::L),
	(Codepoints::Single(0x037e), BidiClass::ON),
	(Codepoints::Single(0x037f), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0384, 0x0385)), BidiClass::ON),
	(Codepoints::Single(0x0386), BidiClass::L),
	(Codepoints::Single(0x0387), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0388, 0x038a)), BidiClass::L),
	(Codepoints::Single(0x038c), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x038e, 0x03a1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x03a3, 0x03f5)), BidiClass::L),
	(Codepoints::Single(0x03f6), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x03f7, 0x0482)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0483, 0x0489)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x048a, 0x052f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0531, 0x0556)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0559, 0x0589)), BidiClass::L),
	(Codepoints::Single(0x058a), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x058d, 0x058e)), BidiClass::ON),
	(Codepoints::Single(0x058f), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0591, 0x05bd)), BidiClass::NSM),
	(Codepoints::Single(0x05be), BidiClass::R),
	(Codepoints::Single(0x05bf), BidiClass::NSM),
	(Codepoints::Single(0x05c0), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x05c1, 0x05c2)), BidiClass::NSM),
	(Codepoints::Single(0x05c3), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x05c4, 0x05c5)), BidiClass::NSM),
	(Codepoints::Single(0x05c6), BidiClass::R),
	(Codepoints::Single(0x05c7), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x05d0, 0x05ea)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x05ef, 0x05f4)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0600, 0x0605)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0606, 0x0607)), BidiClass::ON),
	(Codepoints::Single(0x0608), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0609, 0x060a)), BidiClass::ET),
	(Codepoints::Single(0x060b), BidiClass::AL),
	(Codepoints::Single(0x060c), BidiClass::CS),
	(Codepoints::Single(0x060d), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x060e, 0x060f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0610, 0x061a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x061b, 0x064a)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x064b, 0x065f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0660, 0x0669)), BidiClass::AN),
	(Codepoints::Single(0x066a), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x066b, 0x066c)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x066d, 0x066f)), BidiClass::AL),
	(Codepoints::Single(0x0670), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0671, 0x06d5)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06d6, 0x06dc)), BidiClass::NSM),
	(Codepoints::Single(0x06dd), BidiClass::AN),
	(Codepoints::Single(0x06de), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06df, 0x06e4)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06e5, 0x06e6)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06e7, 0x06e8)), BidiClass::NSM),
	(Codepoints::Single(0x06e9), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06ea, 0x06ed)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06ee, 0x06ef)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06f0, 0x06f9)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x06fa, 0x070d)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x070f, 0x0710)), BidiClass::AL),
	(Codepoints::Single(0x0711), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0712, 0x072f)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0730, 0x074a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x074d, 0x07a5)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07a6, 0x07b0)), BidiClass::NSM),
	(Codepoints::Single(0x07b1), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07c0, 0x07ea)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07eb, 0x07f3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07f4, 0x07f5)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07f6, 0x07f9)), BidiClass::ON),
	(Codepoints::Single(0x07fa), BidiClass::R),
	(Codepoints::Single(0x07fd), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x07fe, 0x0815)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0816, 0x0819)), BidiClass::NSM),
	(Codepoints::Single(0x081a), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x081b, 0x0823)), BidiClass::NSM),
	(Codepoints::Single(0x0824), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0825, 0x0827)), BidiClass::NSM),
	(Codepoints::Single(0x0828), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0829, 0x082d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0830, 0x083e)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0840, 0x0858)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0859, 0x085b)), BidiClass::NSM),
	(Codepoints::Single(0x085e), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0860, 0x086a)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0870, 0x088f)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0890, 0x0891)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0897, 0x089f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x08a0, 0x08c9)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x08ca, 0x08e1)), BidiClass::NSM),
	(Codepoints::Single(0x08e2), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x08e3, 0x0902)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0903, 0x0939)), BidiClass::L),
	(Codepoints::Single(0x093a), BidiClass::NSM),
	(Codepoints::Single(0x093b), BidiClass::L),
	(Codepoints::Single(0x093c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x093d, 0x0940)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0941, 0x0948)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0949, 0x094c)), BidiClass::L),
	(Codepoints::Single(0x094d), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x094e, 0x0950)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0951, 0x0957)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0958, 0x0961)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0962, 0x0963)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0964, 0x0980)), BidiClass::L),
	(Codepoints::Single(0x0981), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0982, 0x0983)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0985, 0x098c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x098f, 0x0990)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0993, 0x09a8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09aa, 0x09b0)), BidiClass::L),
	(Codepoints::Single(0x09b2), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09b6, 0x09b9)), BidiClass::L),
	(Codepoints::Single(0x09bc), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09bd, 0x09c0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09c1, 0x09c4)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09c7, 0x09c8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09cb, 0x09cc)), BidiClass::L),
	(Codepoints::Single(0x09cd), BidiClass::NSM),
	(Codepoints::Single(0x09ce), BidiClass::L),
	(Codepoints::Single(0x09d7), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09dc, 0x09dd)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09df, 0x09e1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09e2, 0x09e3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09e6, 0x09f1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09f2, 0x09f3)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09f4, 0x09fa)), BidiClass::L),
	(Codepoints::Single(0x09fb), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x09fc, 0x09fd)), BidiClass::L),
	(Codepoints::Single(0x09fe), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a01, 0x0a02)), BidiClass::NSM),
	(Codepoints::Single(0x0a03), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a05, 0x0a0a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a0f, 0x0a10)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a13, 0x0a28)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a2a, 0x0a30)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a32, 0x0a33)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a35, 0x0a36)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a38, 0x0a39)), BidiClass::L),
	(Codepoints::Single(0x0a3c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a3e, 0x0a40)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a41, 0x0a42)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a47, 0x0a48)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a4b, 0x0a4d)), BidiClass::NSM),
	(Codepoints::Single(0x0a51), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a59, 0x0a5c)), BidiClass::L),
	(Codepoints::Single(0x0a5e), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a66, 0x0a6f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a70, 0x0a71)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a72, 0x0a74)), BidiClass::L),
	(Codepoints::Single(0x0a75), BidiClass::NSM),
	(Codepoints::Single(0x0a76), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a81, 0x0a82)), BidiClass::NSM),
	(Codepoints::Single(0x0a83), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a85, 0x0a8d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a8f, 0x0a91)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0a93, 0x0aa8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0aaa, 0x0ab0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ab2, 0x0ab3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ab5, 0x0ab9)), BidiClass::L),
	(Codepoints::Single(0x0abc), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0abd, 0x0ac0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ac1, 0x0ac5)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ac7, 0x0ac8)), BidiClass::NSM),
	(Codepoints::Single(0x0ac9), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0acb, 0x0acc)), BidiClass::L),
	(Codepoints::Single(0x0acd), BidiClass::NSM),
	(Codepoints::Single(0x0ad0), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ae0, 0x0ae1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ae2, 0x0ae3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ae6, 0x0af0)), BidiClass::L),
	(Codepoints::Single(0x0af1), BidiClass::ET),
	(Codepoints::Single(0x0af9), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0afa, 0x0aff)), BidiClass::NSM),
	(Codepoints::Single(0x0b01), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b02, 0x0b03)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b05, 0x0b0c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b0f, 0x0b10)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b13, 0x0b28)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b2a, 0x0b30)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b32, 0x0b33)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b35, 0x0b39)), BidiClass::L),
	(Codepoints::Single(0x0b3c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b3d, 0x0b3e)), BidiClass::L),
	(Codepoints::Single(0x0b3f), BidiClass::NSM),
	(Codepoints::Single(0x0b40), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b41, 0x0b44)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b47, 0x0b48)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b4b, 0x0b4c)), BidiClass::L),
	(Codepoints::Single(0x0b4d), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b55, 0x0b56)), BidiClass::NSM),
	(Codepoints::Single(0x0b57), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b5c, 0x0b5d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b5f, 0x0b61)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b62, 0x0b63)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b66, 0x0b77)), BidiClass::L),
	(Codepoints::Single(0x0b82), BidiClass::NSM),
	(Codepoints::Single(0x0b83), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b85, 0x0b8a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b8e, 0x0b90)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b92, 0x0b95)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b99, 0x0b9a)), BidiClass::L),
	(Codepoints::Single(0x0b9c), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0b9e, 0x0b9f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ba3, 0x0ba4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ba8, 0x0baa)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bae, 0x0bb9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bbe, 0x0bbf)), BidiClass::L),
	(Codepoints::Single(0x0bc0), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bc1, 0x0bc2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bc6, 0x0bc8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bca, 0x0bcc)), BidiClass::L),
	(Codepoints::Single(0x0bcd), BidiClass::NSM),
	(Codepoints::Single(0x0bd0), BidiClass::L),
	(Codepoints::Single(0x0bd7), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0be6, 0x0bf2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0bf3, 0x0bf8)), BidiClass::ON),
	(Codepoints::Single(0x0bf9), BidiClass::ET),
	(Codepoints::Single(0x0bfa), BidiClass::ON),
	(Codepoints::Single(0x0c00), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c01, 0x0c03)), BidiClass::L),
	(Codepoints::Single(0x0c04), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c05, 0x0c0c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c0e, 0x0c10)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c12, 0x0c28)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c2a, 0x0c39)), BidiClass::L),
	(Codepoints::Single(0x0c3c), BidiClass::NSM),
	(Codepoints::Single(0x0c3d), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c3e, 0x0c40)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c41, 0x0c44)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c46, 0x0c48)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c4a, 0x0c4d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c55, 0x0c56)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c58, 0x0c5a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c5c, 0x0c5d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c60, 0x0c61)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c62, 0x0c63)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c66, 0x0c6f)), BidiClass::L),
	(Codepoints::Single(0x0c77), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c78, 0x0c7e)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c7f, 0x0c80)), BidiClass::L),
	(Codepoints::Single(0x0c81), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c82, 0x0c8c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c8e, 0x0c90)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0c92, 0x0ca8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0caa, 0x0cb3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cb5, 0x0cb9)), BidiClass::L),
	(Codepoints::Single(0x0cbc), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cbd, 0x0cc4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cc6, 0x0cc8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cca, 0x0ccb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ccc, 0x0ccd)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cd5, 0x0cd6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cdc, 0x0cde)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ce0, 0x0ce1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ce2, 0x0ce3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ce6, 0x0cef)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0cf1, 0x0cf3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d00, 0x0d01)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d02, 0x0d0c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d0e, 0x0d10)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d12, 0x0d3a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d3b, 0x0d3c)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d3d, 0x0d40)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d41, 0x0d44)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d46, 0x0d48)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d4a, 0x0d4c)), BidiClass::L),
	(Codepoints::Single(0x0d4d), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d4e, 0x0d4f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d54, 0x0d61)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d62, 0x0d63)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d66, 0x0d7f)), BidiClass::L),
	(Codepoints::Single(0x0d81), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d82, 0x0d83)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d85, 0x0d96)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0d9a, 0x0db1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0db3, 0x0dbb)), BidiClass::L),
	(Codepoints::Single(0x0dbd), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0dc0, 0x0dc6)), BidiClass::L),
	(Codepoints::Single(0x0dca), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0dcf, 0x0dd1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0dd2, 0x0dd4)), BidiClass::NSM),
	(Codepoints::Single(0x0dd6), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0dd8, 0x0ddf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0de6, 0x0def)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0df2, 0x0df4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e01, 0x0e30)), BidiClass::L),
	(Codepoints::Single(0x0e31), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e32, 0x0e33)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e34, 0x0e3a)), BidiClass::NSM),
	(Codepoints::Single(0x0e3f), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e40, 0x0e46)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e47, 0x0e4e)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e4f, 0x0e5b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e81, 0x0e82)), BidiClass::L),
	(Codepoints::Single(0x0e84), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e86, 0x0e8a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0e8c, 0x0ea3)), BidiClass::L),
	(Codepoints::Single(0x0ea5), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ea7, 0x0eb0)), BidiClass::L),
	(Codepoints::Single(0x0eb1), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0eb2, 0x0eb3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0eb4, 0x0ebc)), BidiClass::NSM),
	(Codepoints::Single(0x0ebd), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ec0, 0x0ec4)), BidiClass::L),
	(Codepoints::Single(0x0ec6), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ec8, 0x0ece)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0ed0, 0x0ed9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0edc, 0x0edf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f00, 0x0f17)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f18, 0x0f19)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f1a, 0x0f34)), BidiClass::L),
	(Codepoints::Single(0x0f35), BidiClass::NSM),
	(Codepoints::Single(0x0f36), BidiClass::L),
	(Codepoints::Single(0x0f37), BidiClass::NSM),
	(Codepoints::Single(0x0f38), BidiClass::L),
	(Codepoints::Single(0x0f39), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f3a, 0x0f3d)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f3e, 0x0f47)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f49, 0x0f6c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f71, 0x0f7e)), BidiClass::NSM),
	(Codepoints::Single(0x0f7f), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f80, 0x0f84)), BidiClass::NSM),
	(Codepoints::Single(0x0f85), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f86, 0x0f87)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f88, 0x0f8c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f8d, 0x0f97)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0f99, 0x0fbc)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0fbe, 0x0fc5)), BidiClass::L),
	(Codepoints::Single(0x0fc6), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0fc7, 0x0fcc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x0fce, 0x0fda)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1000, 0x102c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x102d, 0x1030)), BidiClass::NSM),
	(Codepoints::Single(0x1031), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1032, 0x1037)), BidiClass::NSM),
	(Codepoints::Single(0x1038), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1039, 0x103a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x103b, 0x103c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x103d, 0x103e)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x103f, 0x1057)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1058, 0x1059)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105a, 0x105d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105e, 0x1060)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1061, 0x1070)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1071, 0x1074)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1075, 0x1081)), BidiClass::L),
	(Codepoints::Single(0x1082), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1083, 0x1084)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1085, 0x1086)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1087, 0x108c)), BidiClass::L),
	(Codepoints::Single(0x108d), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x108e, 0x109c)), BidiClass::L),
	(Codepoints::Single(0x109d), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x109e, 0x10c5)), BidiClass::L),
	(Codepoints::Single(0x10c7), BidiClass::L),
	(Codepoints::Single(0x10cd), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d0, 0x1248)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x124a, 0x124d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1250, 0x1256)), BidiClass::L),
	(Codepoints::Single(0x1258), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x125a, 0x125d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1260, 0x1288)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x128a, 0x128d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1290, 0x12b0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12b2, 0x12b5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12b8, 0x12be)), BidiClass::L),
	(Codepoints::Single(0x12c0), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12c2, 0x12c5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12c8, 0x12d6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12d8, 0x1310)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1312, 0x1315)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1318, 0x135a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x135d, 0x135f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1360, 0x137c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1380, 0x138f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1390, 0x1399)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13a0, 0x13f5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13f8, 0x13fd)), BidiClass::L),
	(Codepoints::Single(0x1400), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1401, 0x167f)), BidiClass::L),
	(Codepoints::Single(0x1680), BidiClass::WS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1681, 0x169a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x169b, 0x169c)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16a0, 0x16f8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1700, 0x1711)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1712, 0x1714)), BidiClass::NSM),
	(Codepoints::Single(0x1715), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x171f, 0x1731)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1732, 0x1733)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1734, 0x1736)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1740, 0x1751)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1752, 0x1753)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1760, 0x176c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x176e, 0x1770)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1772, 0x1773)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1780, 0x17b3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17b4, 0x17b5)), BidiClass::NSM),
	(Codepoints::Single(0x17b6), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17b7, 0x17bd)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17be, 0x17c5)), BidiClass::L),
	(Codepoints::Single(0x17c6), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17c7, 0x17c8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17c9, 0x17d3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17d4, 0x17da)), BidiClass::L),
	(Codepoints::Single(0x17db), BidiClass::ET),
	(Codepoints::Single(0x17dc), BidiClass::L),
	(Codepoints::Single(0x17dd), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17e0, 0x17e9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17f0, 0x17f9)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1800, 0x180a)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x180b, 0x180d)), BidiClass::NSM),
	(Codepoints::Single(0x180e), BidiClass::BN),
	(Codepoints::Single(0x180f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1810, 0x1819)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1820, 0x1878)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1880, 0x1884)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1885, 0x1886)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1887, 0x18a8)), BidiClass::L),
	(Codepoints::Single(0x18a9), BidiClass::NSM),
	(Codepoints::Single(0x18aa), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x18b0, 0x18f5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1900, 0x191e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1920, 0x1922)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1923, 0x1926)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1927, 0x1928)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1929, 0x192b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1930, 0x1931)), BidiClass::L),
	(Codepoints::Single(0x1932), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1933, 0x1938)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1939, 0x193b)), BidiClass::NSM),
	(Codepoints::Single(0x1940), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1944, 0x1945)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1946, 0x196d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1970, 0x1974)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1980, 0x19ab)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x19b0, 0x19c9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x19d0, 0x19da)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x19de, 0x19ff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a00, 0x1a16)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a17, 0x1a18)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a19, 0x1a1a)), BidiClass::L),
	(Codepoints::Single(0x1a1b), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a1e, 0x1a55)), BidiClass::L),
	(Codepoints::Single(0x1a56), BidiClass::NSM),
	(Codepoints::Single(0x1a57), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a58, 0x1a5e)), BidiClass::NSM),
	(Codepoints::Single(0x1a60), BidiClass::NSM),
	(Codepoints::Single(0x1a61), BidiClass::L),
	(Codepoints::Single(0x1a62), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a63, 0x1a64)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a65, 0x1a6c)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a6d, 0x1a72)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a73, 0x1a7c)), BidiClass::NSM),
	(Codepoints::Single(0x1a7f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a80, 0x1a89)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1a90, 0x1a99)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1aa0, 0x1aad)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ab0, 0x1add)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ae0, 0x1aeb)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b00, 0x1b03)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b04, 0x1b33)), BidiClass::L),
	(Codepoints::Single(0x1b34), BidiClass::NSM),
	(Codepoints::Single(0x1b35), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b36, 0x1b3a)), BidiClass::NSM),
	(Codepoints::Single(0x1b3b), BidiClass::L),
	(Codepoints::Single(0x1b3c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b3d, 0x1b41)), BidiClass::L),
	(Codepoints::Single(0x1b42), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b43, 0x1b4c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b4e, 0x1b6a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b6b, 0x1b73)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b74, 0x1b7f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b80, 0x1b81)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b82, 0x1ba1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ba2, 0x1ba5)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ba6, 0x1ba7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ba8, 0x1ba9)), BidiClass::NSM),
	(Codepoints::Single(0x1baa), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bab, 0x1bad)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bae, 0x1be5)), BidiClass::L),
	(Codepoints::Single(0x1be6), BidiClass::NSM),
	(Codepoints::Single(0x1be7), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1be8, 0x1be9)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bea, 0x1bec)), BidiClass::L),
	(Codepoints::Single(0x1bed), BidiClass::NSM),
	(Codepoints::Single(0x1bee), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bef, 0x1bf1)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bf2, 0x1bf3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bfc, 0x1c2b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c2c, 0x1c33)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c34, 0x1c35)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c36, 0x1c37)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c3b, 0x1c49)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c4d, 0x1c8a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1c90, 0x1cba)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cbd, 0x1cc7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cd0, 0x1cd2)), BidiClass::NSM),
	(Codepoints::Single(0x1cd3), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cd4, 0x1ce0)), BidiClass::NSM),
	(Codepoints::Single(0x1ce1), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ce2, 0x1ce8)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ce9, 0x1cec)), BidiClass::L),
	(Codepoints::Single(0x1ced), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cee, 0x1cf3)), BidiClass::L),
	(Codepoints::Single(0x1cf4), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cf5, 0x1cf7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cf8, 0x1cf9)), BidiClass::NSM),
	(Codepoints::Single(0x1cfa), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d00, 0x1dbf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1dc0, 0x1dff)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e00, 0x1f15)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f18, 0x1f1d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f20, 0x1f45)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f48, 0x1f4d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f50, 0x1f57)), BidiClass::L),
	(Codepoints::Single(0x1f59), BidiClass::L),
	(Codepoints::Single(0x1f5b), BidiClass::L),
	(Codepoints::Single(0x1f5d), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f5f, 0x1f7d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f80, 0x1fb4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fb6, 0x1fbc)), BidiClass::L),
	(Codepoints::Single(0x1fbd), BidiClass::ON),
	(Codepoints::Single(0x1fbe), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fbf, 0x1fc1)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fc2, 0x1fc4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fc6, 0x1fcc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fcd, 0x1fcf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fd0, 0x1fd3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fd6, 0x1fdb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fdd, 0x1fdf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fe0, 0x1fec)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fed, 0x1fef)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ff2, 0x1ff4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ff6, 0x1ffc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ffd, 0x1ffe)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2000, 0x200a)), BidiClass::WS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x200b, 0x200d)), BidiClass::BN),
	(Codepoints::Single(0x200e), BidiClass::L),
	(Codepoints::Single(0x200f), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2010, 0x2027)), BidiClass::ON),
	(Codepoints::Single(0x2028), BidiClass::WS),
	(Codepoints::Single(0x2029), BidiClass::B),
	(Codepoints::Single(0x202a), BidiClass::LRE),
	(Codepoints::Single(0x202b), BidiClass::RLE),
	(Codepoints::Single(0x202c), BidiClass::PDF),
	(Codepoints::Single(0x202d), BidiClass::LRO),
	(Codepoints::Single(0x202e), BidiClass::RLO),
	(Codepoints::Single(0x202f), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2030, 0x2034)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2035, 0x2043)), BidiClass::ON),
	(Codepoints::Single(0x2044), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2045, 0x205e)), BidiClass::ON),
	(Codepoints::Single(0x205f), BidiClass::WS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2060, 0x2064)), BidiClass::BN),
	(Codepoints::Single(0x2066), BidiClass::LRI),
	(Codepoints::Single(0x2067), BidiClass::RLI),
	(Codepoints::Single(0x2068), BidiClass::FSI),
	(Codepoints::Single(0x2069), BidiClass::PDI),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x206a, 0x206f)), BidiClass::BN),
	(Codepoints::Single(0x2070), BidiClass::EN),
	(Codepoints::Single(0x2071), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2074, 0x2079)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x207a, 0x207b)), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x207c, 0x207e)), BidiClass::ON),
	(Codepoints::Single(0x207f), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2080, 0x2089)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x208a, 0x208b)), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x208c, 0x208e)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2090, 0x209c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x20a0, 0x20c1)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x20d0, 0x20f0)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2100, 0x2101)), BidiClass::ON),
	(Codepoints::Single(0x2102), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2103, 0x2106)), BidiClass::ON),
	(Codepoints::Single(0x2107), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2108, 0x2109)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x210a, 0x2113)), BidiClass::L),
	(Codepoints::Single(0x2114), BidiClass::ON),
	(Codepoints::Single(0x2115), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2116, 0x2118)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2119, 0x211d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x211e, 0x2123)), BidiClass::ON),
	(Codepoints::Single(0x2124), BidiClass::L),
	(Codepoints::Single(0x2125), BidiClass::ON),
	(Codepoints::Single(0x2126), BidiClass::L),
	(Codepoints::Single(0x2127), BidiClass::ON),
	(Codepoints::Single(0x2128), BidiClass::L),
	(Codepoints::Single(0x2129), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x212a, 0x212d)), BidiClass::L),
	(Codepoints::Single(0x212e), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x212f, 0x2139)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x213a, 0x213b)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x213c, 0x213f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2140, 0x2144)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2145, 0x2149)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x214a, 0x214d)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x214e, 0x214f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2150, 0x215f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2160, 0x2188)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2189, 0x218b)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2190, 0x2211)), BidiClass::ON),
	(Codepoints::Single(0x2212), BidiClass::ES),
	(Codepoints::Single(0x2213), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2214, 0x2335)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2336, 0x237a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x237b, 0x2394)), BidiClass::ON),
	(Codepoints::Single(0x2395), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2396, 0x2429)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2440, 0x244a)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2460, 0x2487)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2488, 0x249b)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x249c, 0x24e9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x24ea, 0x26ab)), BidiClass::ON),
	(Codepoints::Single(0x26ac), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x26ad, 0x27ff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2800, 0x28ff)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2900, 0x2b73)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2b76, 0x2bff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2c00, 0x2ce4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2ce5, 0x2cea)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2ceb, 0x2cee)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2cef, 0x2cf1)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2cf2, 0x2cf3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2cf9, 0x2cff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2d00, 0x2d25)), BidiClass::L),
	(Codepoints::Single(0x2d27), BidiClass::L),
	(Codepoints::Single(0x2d2d), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2d30, 0x2d67)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2d6f, 0x2d70)), BidiClass::L),
	(Codepoints::Single(0x2d7f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2d80, 0x2d96)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2da0, 0x2da6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2da8, 0x2dae)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2db0, 0x2db6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2db8, 0x2dbe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2dc0, 0x2dc6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2dc8, 0x2dce)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2dd0, 0x2dd6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2dd8, 0x2dde)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2de0, 0x2dff)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2e00, 0x2e5d)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2e80, 0x2e99)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2e9b, 0x2ef3)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2f00, 0x2fd5)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2ff0, 0x2fff)), BidiClass::ON),
	(Codepoints::Single(0x3000), BidiClass::WS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3001, 0x3004)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3005, 0x3007)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3008, 0x3020)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3021, 0x3029)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x302a, 0x302d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x302e, 0x302f)), BidiClass::L),
	(Codepoints::Single(0x3030), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3031, 0x3035)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3036, 0x3037)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3038, 0x303c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x303d, 0x303f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3041, 0x3096)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3099, 0x309a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x309b, 0x309c)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x309d, 0x309f)), BidiClass::L),
	(Codepoints::Single(0x30a0), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x30a1, 0x30fa)), BidiClass::L),
	(Codepoints::Single(0x30fb), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x30fc, 0x30ff)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3105, 0x312f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3131, 0x318e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3190, 0x31bf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x31c0, 0x31e5)), BidiClass::ON),
	(Codepoints::Single(0x31ef), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x31f0, 0x321c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x321d, 0x321e)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3220, 0x324f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3250, 0x325f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3260, 0x327b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x327c, 0x327e)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x327f, 0x32b0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x32b1, 0x32bf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x32c0, 0x32cb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x32cc, 0x32cf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x32d0, 0x3376)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3377, 0x337a)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x337b, 0x33dd)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x33de, 0x33df)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x33e0, 0x33fe)), BidiClass::L),
	(Codepoints::Single(0x33ff), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x3400, 0x4dbf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x4dc0, 0x4dff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x4e00, 0xa48c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa490, 0xa4c6)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa4d0, 0xa60c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa60d, 0xa60f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa610, 0xa62b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa640, 0xa66e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa66f, 0xa672)), BidiClass::NSM),
	(Codepoints::Single(0xa673), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa674, 0xa67d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa67e, 0xa67f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa680, 0xa69d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa69e, 0xa69f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa6a0, 0xa6ef)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa6f0, 0xa6f1)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa6f2, 0xa6f7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa700, 0xa721)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa722, 0xa787)), BidiClass::L),
	(Codepoints::Single(0xa788), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa789, 0xa7dc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa7f1, 0xa801)), BidiClass::L),
	(Codepoints::Single(0xa802), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa803, 0xa805)), BidiClass::L),
	(Codepoints::Single(0xa806), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa807, 0xa80a)), BidiClass::L),
	(Codepoints::Single(0xa80b), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa80c, 0xa824)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa825, 0xa826)), BidiClass::NSM),
	(Codepoints::Single(0xa827), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa828, 0xa82b)), BidiClass::ON),
	(Codepoints::Single(0xa82c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa830, 0xa837)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa838, 0xa839)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa840, 0xa873)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa874, 0xa877)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa880, 0xa8c3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa8c4, 0xa8c5)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa8ce, 0xa8d9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa8e0, 0xa8f1)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa8f2, 0xa8fe)), BidiClass::L),
	(Codepoints::Single(0xa8ff), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa900, 0xa925)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa926, 0xa92d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa92e, 0xa946)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa947, 0xa951)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa952, 0xa953)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa95f, 0xa97c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa980, 0xa982)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa983, 0xa9b2)), BidiClass::L),
	(Codepoints::Single(0xa9b3), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9b4, 0xa9b5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9b6, 0xa9b9)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9ba, 0xa9bb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9bc, 0xa9bd)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9be, 0xa9cd)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9cf, 0xa9d9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9de, 0xa9e4)), BidiClass::L),
	(Codepoints::Single(0xa9e5), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xa9e6, 0xa9fe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa00, 0xaa28)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa29, 0xaa2e)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa2f, 0xaa30)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa31, 0xaa32)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa33, 0xaa34)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa35, 0xaa36)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa40, 0xaa42)), BidiClass::L),
	(Codepoints::Single(0xaa43), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa44, 0xaa4b)), BidiClass::L),
	(Codepoints::Single(0xaa4c), BidiClass::NSM),
	(Codepoints::Single(0xaa4d), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa50, 0xaa59)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa5c, 0xaa7b)), BidiClass::L),
	(Codepoints::Single(0xaa7c), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaa7d, 0xaaaf)), BidiClass::L),
	(Codepoints::Single(0xaab0), BidiClass::NSM),
	(Codepoints::Single(0xaab1), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaab2, 0xaab4)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaab5, 0xaab6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaab7, 0xaab8)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaab9, 0xaabd)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaabe, 0xaabf)), BidiClass::NSM),
	(Codepoints::Single(0xaac0), BidiClass::L),
	(Codepoints::Single(0xaac1), BidiClass::NSM),
	(Codepoints::Single(0xaac2), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaadb, 0xaaeb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaaec, 0xaaed)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xaaee, 0xaaf5)), BidiClass::L),
	(Codepoints::Single(0xaaf6), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab01, 0xab06)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab09, 0xab0e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab11, 0xab16)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab20, 0xab26)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab28, 0xab2e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab30, 0xab69)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab6a, 0xab6b)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xab70, 0xabe4)), BidiClass::L),
	(Codepoints::Single(0xabe5), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xabe6, 0xabe7)), BidiClass::L),
	(Codepoints::Single(0xabe8), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xabe9, 0xabec)), BidiClass::L),
	(Codepoints::Single(0xabed), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xabf0, 0xabf9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xac00, 0xd7a3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xd7b0, 0xd7c6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xd7cb, 0xd7fb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xd800, 0xdb7f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xdb80, 0xfa6d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfa70, 0xfad9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb00, 0xfb06)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb13, 0xfb17)), BidiClass::L),
	(Codepoints::Single(0xfb1d), BidiClass::R),
	(Codepoints::Single(0xfb1e), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb1f, 0xfb28)), BidiClass::R),
	(Codepoints::Single(0xfb29), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb2a, 0xfb36)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb38, 0xfb3c)), BidiClass::R),
	(Codepoints::Single(0xfb3e), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb40, 0xfb41)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb43, 0xfb44)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb46, 0xfb4f)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfb50, 0xfbc2)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfbc3, 0xfbd2)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfbd3, 0xfd3d)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfd3e, 0xfd4f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfd50, 0xfd8f)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfd90, 0xfd91)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfd92, 0xfdc7)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfdc8, 0xfdcf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfdf0, 0xfdfc)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfdfd, 0xfdff)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe00, 0xfe0f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe10, 0xfe19)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe20, 0xfe2f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe30, 0xfe4f)), BidiClass::ON),
	(Codepoints::Single(0xfe50), BidiClass::CS),
	(Codepoints::Single(0xfe51), BidiClass::ON),
	(Codepoints::Single(0xfe52), BidiClass::CS),
	(Codepoints::Single(0xfe54), BidiClass::ON),
	(Codepoints::Single(0xfe55), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe56, 0xfe5e)), BidiClass::ON),
	(Codepoints::Single(0xfe5f), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe60, 0xfe61)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe62, 0xfe63)), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe64, 0xfe66)), BidiClass::ON),
	(Codepoints::Single(0xfe68), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe69, 0xfe6a)), BidiClass::ET),
	(Codepoints::Single(0xfe6b), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe70, 0xfe74)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfe76, 0xfefc)), BidiClass::AL),
	(Codepoints::Single(0xfeff), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff01, 0xff02)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff03, 0xff05)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff06, 0xff0a)), BidiClass::ON),
	(Codepoints::Single(0xff0b), BidiClass::ES),
	(Codepoints::Single(0xff0c), BidiClass::CS),
	(Codepoints::Single(0xff0d), BidiClass::ES),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff0e, 0xff0f)), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff10, 0xff19)), BidiClass::EN),
	(Codepoints::Single(0xff1a), BidiClass::CS),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff1b, 0xff20)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff21, 0xff3a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff3b, 0xff40)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff41, 0xff5a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff5b, 0xff65)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xff66, 0xffbe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffc2, 0xffc7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffca, 0xffcf)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffd2, 0xffd7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffda, 0xffdc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffe0, 0xffe1)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffe2, 0xffe4)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffe5, 0xffe6)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xffe8, 0xffee)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xfff9, 0xfffd)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10000, 0x1000b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1000d, 0x10026)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10028, 0x1003a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1003c, 0x1003d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1003f, 0x1004d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10050, 0x1005d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10080, 0x100fa)), BidiClass::L),
	(Codepoints::Single(0x10100), BidiClass::L),
	(Codepoints::Single(0x10101), BidiClass::ON),
	(Codepoints::Single(0x10102), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10107, 0x10133)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10137, 0x1013f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10140, 0x1018c)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1018d, 0x1018e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10190, 0x1019c)), BidiClass::ON),
	(Codepoints::Single(0x101a0), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x101d0, 0x101fc)), BidiClass::L),
	(Codepoints::Single(0x101fd), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10280, 0x1029c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x102a0, 0x102d0)), BidiClass::L),
	(Codepoints::Single(0x102e0), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x102e1, 0x102fb)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10300, 0x10323)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1032d, 0x1034a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10350, 0x10375)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10376, 0x1037a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10380, 0x1039d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1039f, 0x103c3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x103c8, 0x103d5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10400, 0x1049d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x104a0, 0x104a9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x104b0, 0x104d3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x104d8, 0x104fb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10500, 0x10527)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10530, 0x10563)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1056f, 0x1057a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1057c, 0x1058a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1058c, 0x10592)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10594, 0x10595)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10597, 0x105a1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105a3, 0x105b1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105b3, 0x105b9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105bb, 0x105bc)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x105c0, 0x105f3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10600, 0x10736)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10740, 0x10755)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10760, 0x10767)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10780, 0x10785)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10787, 0x107b0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x107b2, 0x107ba)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10800, 0x10805)), BidiClass::R),
	(Codepoints::Single(0x10808), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1080a, 0x10835)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10837, 0x10838)), BidiClass::R),
	(Codepoints::Single(0x1083c), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1083f, 0x10855)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10857, 0x1089e)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x108a7, 0x108af)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x108e0, 0x108f2)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x108f4, 0x108f5)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x108fb, 0x1091b)), BidiClass::R),
	(Codepoints::Single(0x1091f), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10920, 0x10939)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1093f, 0x10959)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10980, 0x109b7)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x109bc, 0x109cf)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x109d2, 0x10a00)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a01, 0x10a03)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a05, 0x10a06)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a0c, 0x10a0f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a10, 0x10a13)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a15, 0x10a17)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a19, 0x10a35)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a38, 0x10a3a)), BidiClass::NSM),
	(Codepoints::Single(0x10a3f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a40, 0x10a48)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a50, 0x10a58)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10a60, 0x10a9f)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10ac0, 0x10ae4)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10ae5, 0x10ae6)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10aeb, 0x10af6)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b00, 0x10b35)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b39, 0x10b3f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b40, 0x10b55)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b58, 0x10b72)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b78, 0x10b91)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10b99, 0x10b9c)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10ba9, 0x10baf)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10c00, 0x10c48)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10c80, 0x10cb2)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10cc0, 0x10cf2)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10cfa, 0x10cff)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d00, 0x10d23)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d24, 0x10d27)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d30, 0x10d39)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d40, 0x10d49)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d4a, 0x10d65)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d69, 0x10d6d)), BidiClass::NSM),
	(Codepoints::Single(0x10d6e), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d6f, 0x10d85)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10d8e, 0x10d8f)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10e60, 0x10e7e)), BidiClass::AN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10e80, 0x10ea9)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10eab, 0x10eac)), BidiClass::NSM),
	(Codepoints::Single(0x10ead), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10eb0, 0x10eb1)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10ec2, 0x10ec7)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10ed0, 0x10ed8)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10efa, 0x10eff)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f00, 0x10f27)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f30, 0x10f45)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f46, 0x10f50)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f51, 0x10f59)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f70, 0x10f81)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f82, 0x10f85)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10f86, 0x10f89)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10fb0, 0x10fcb)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x10fe0, 0x10ff6)), BidiClass::R),
	(Codepoints::Single(0x11000), BidiClass::L),
	(Codepoints::Single(0x11001), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11002, 0x11037)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11038, 0x11046)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11047, 0x1104d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11052, 0x11065)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11066, 0x1106f)), BidiClass::L),
	(Codepoints::Single(0x11070), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11071, 0x11072)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11073, 0x11074)), BidiClass::NSM),
	(Codepoints::Single(0x11075), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1107f, 0x11081)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11082, 0x110b2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110b3, 0x110b6)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110b7, 0x110b8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110b9, 0x110ba)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110bb, 0x110c1)), BidiClass::L),
	(Codepoints::Single(0x110c2), BidiClass::NSM),
	(Codepoints::Single(0x110cd), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110d0, 0x110e8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x110f0, 0x110f9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11100, 0x11102)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11103, 0x11126)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11127, 0x1112b)), BidiClass::NSM),
	(Codepoints::Single(0x1112c), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1112d, 0x11134)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11136, 0x11147)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11150, 0x11172)), BidiClass::L),
	(Codepoints::Single(0x11173), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11174, 0x11176)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11180, 0x11181)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11182, 0x111b5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111b6, 0x111be)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111bf, 0x111c8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111c9, 0x111cc)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111cd, 0x111ce)), BidiClass::L),
	(Codepoints::Single(0x111cf), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111d0, 0x111df)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x111e1, 0x111f4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11200, 0x11211)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11213, 0x1122e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1122f, 0x11231)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11232, 0x11233)), BidiClass::L),
	(Codepoints::Single(0x11234), BidiClass::NSM),
	(Codepoints::Single(0x11235), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11236, 0x11237)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11238, 0x1123d)), BidiClass::L),
	(Codepoints::Single(0x1123e), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1123f, 0x11240)), BidiClass::L),
	(Codepoints::Single(0x11241), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11280, 0x11286)), BidiClass::L),
	(Codepoints::Single(0x11288), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1128a, 0x1128d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1128f, 0x1129d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1129f, 0x112a9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x112b0, 0x112de)), BidiClass::L),
	(Codepoints::Single(0x112df), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x112e0, 0x112e2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x112e3, 0x112ea)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x112f0, 0x112f9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11300, 0x11301)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11302, 0x11303)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11305, 0x1130c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1130f, 0x11310)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11313, 0x11328)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1132a, 0x11330)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11332, 0x11333)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11335, 0x11339)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1133b, 0x1133c)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1133d, 0x1133f)), BidiClass::L),
	(Codepoints::Single(0x11340), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11341, 0x11344)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11347, 0x11348)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1134b, 0x1134d)), BidiClass::L),
	(Codepoints::Single(0x11350), BidiClass::L),
	(Codepoints::Single(0x11357), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1135d, 0x11363)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11366, 0x1136c)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11370, 0x11374)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11380, 0x11389)), BidiClass::L),
	(Codepoints::Single(0x1138b), BidiClass::L),
	(Codepoints::Single(0x1138e), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11390, 0x113b5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113b7, 0x113ba)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113bb, 0x113c0)), BidiClass::NSM),
	(Codepoints::Single(0x113c2), BidiClass::L),
	(Codepoints::Single(0x113c5), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113c7, 0x113ca)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113cc, 0x113cd)), BidiClass::L),
	(Codepoints::Single(0x113ce), BidiClass::NSM),
	(Codepoints::Single(0x113cf), BidiClass::L),
	(Codepoints::Single(0x113d0), BidiClass::NSM),
	(Codepoints::Single(0x113d1), BidiClass::L),
	(Codepoints::Single(0x113d2), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113d3, 0x113d5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113d7, 0x113d8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x113e1, 0x113e2)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11400, 0x11437)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11438, 0x1143f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11440, 0x11441)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11442, 0x11444)), BidiClass::NSM),
	(Codepoints::Single(0x11445), BidiClass::L),
	(Codepoints::Single(0x11446), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11447, 0x1145b)), BidiClass::L),
	(Codepoints::Single(0x1145d), BidiClass::L),
	(Codepoints::Single(0x1145e), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1145f, 0x11461)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11480, 0x114b2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114b3, 0x114b8)), BidiClass::NSM),
	(Codepoints::Single(0x114b9), BidiClass::L),
	(Codepoints::Single(0x114ba), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114bb, 0x114be)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114bf, 0x114c0)), BidiClass::NSM),
	(Codepoints::Single(0x114c1), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114c2, 0x114c3)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114c4, 0x114c7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x114d0, 0x114d9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11580, 0x115b1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115b2, 0x115b5)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115b8, 0x115bb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115bc, 0x115bd)), BidiClass::NSM),
	(Codepoints::Single(0x115be), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115bf, 0x115c0)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115c1, 0x115db)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x115dc, 0x115dd)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11600, 0x11632)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11633, 0x1163a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1163b, 0x1163c)), BidiClass::L),
	(Codepoints::Single(0x1163d), BidiClass::NSM),
	(Codepoints::Single(0x1163e), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1163f, 0x11640)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11641, 0x11644)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11650, 0x11659)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11660, 0x1166c)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11680, 0x116aa)), BidiClass::L),
	(Codepoints::Single(0x116ab), BidiClass::NSM),
	(Codepoints::Single(0x116ac), BidiClass::L),
	(Codepoints::Single(0x116ad), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x116ae, 0x116af)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x116b0, 0x116b5)), BidiClass::NSM),
	(Codepoints::Single(0x116b6), BidiClass::L),
	(Codepoints::Single(0x116b7), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x116b8, 0x116b9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x116c0, 0x116c9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x116d0, 0x116e3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11700, 0x1171a)), BidiClass::L),
	(Codepoints::Single(0x1171d), BidiClass::NSM),
	(Codepoints::Single(0x1171e), BidiClass::L),
	(Codepoints::Single(0x1171f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11720, 0x11721)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11722, 0x11725)), BidiClass::NSM),
	(Codepoints::Single(0x11726), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11727, 0x1172b)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11730, 0x11746)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11800, 0x1182e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1182f, 0x11837)), BidiClass::NSM),
	(Codepoints::Single(0x11838), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11839, 0x1183a)), BidiClass::NSM),
	(Codepoints::Single(0x1183b), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x118a0, 0x118f2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x118ff, 0x11906)), BidiClass::L),
	(Codepoints::Single(0x11909), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1190c, 0x11913)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11915, 0x11916)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11918, 0x11935)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11937, 0x11938)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1193b, 0x1193c)), BidiClass::NSM),
	(Codepoints::Single(0x1193d), BidiClass::L),
	(Codepoints::Single(0x1193e), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1193f, 0x11942)), BidiClass::L),
	(Codepoints::Single(0x11943), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11944, 0x11946)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11950, 0x11959)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119a0, 0x119a7)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119aa, 0x119d3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119d4, 0x119d7)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119da, 0x119db)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119dc, 0x119df)), BidiClass::L),
	(Codepoints::Single(0x119e0), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x119e1, 0x119e4)), BidiClass::L),
	(Codepoints::Single(0x11a00), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a01, 0x11a06)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a07, 0x11a08)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a09, 0x11a0a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a0b, 0x11a32)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a33, 0x11a38)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a39, 0x11a3a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a3b, 0x11a3e)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a3f, 0x11a46)), BidiClass::L),
	(Codepoints::Single(0x11a47), BidiClass::NSM),
	(Codepoints::Single(0x11a50), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a51, 0x11a56)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a57, 0x11a58)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a59, 0x11a5b)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a5c, 0x11a89)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a8a, 0x11a96)), BidiClass::NSM),
	(Codepoints::Single(0x11a97), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a98, 0x11a99)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11a9a, 0x11aa2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11ab0, 0x11af8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11b00, 0x11b09)), BidiClass::L),
	(Codepoints::Single(0x11b60), BidiClass::NSM),
	(Codepoints::Single(0x11b61), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11b62, 0x11b64)), BidiClass::NSM),
	(Codepoints::Single(0x11b65), BidiClass::L),
	(Codepoints::Single(0x11b66), BidiClass::NSM),
	(Codepoints::Single(0x11b67), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11bc0, 0x11be1)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11bf0, 0x11bf9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c00, 0x11c08)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c0a, 0x11c2f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c30, 0x11c36)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c38, 0x11c3d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c3e, 0x11c45)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c50, 0x11c6c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c70, 0x11c8f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11c92, 0x11ca7)), BidiClass::NSM),
	(Codepoints::Single(0x11ca9), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11caa, 0x11cb0)), BidiClass::NSM),
	(Codepoints::Single(0x11cb1), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11cb2, 0x11cb3)), BidiClass::NSM),
	(Codepoints::Single(0x11cb4), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11cb5, 0x11cb6)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d00, 0x11d06)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d08, 0x11d09)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d0b, 0x11d30)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d31, 0x11d36)), BidiClass::NSM),
	(Codepoints::Single(0x11d3a), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d3c, 0x11d3d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d3f, 0x11d45)), BidiClass::NSM),
	(Codepoints::Single(0x11d46), BidiClass::L),
	(Codepoints::Single(0x11d47), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d50, 0x11d59)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d60, 0x11d65)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d67, 0x11d68)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d6a, 0x11d8e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d90, 0x11d91)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11d93, 0x11d94)), BidiClass::L),
	(Codepoints::Single(0x11d95), BidiClass::NSM),
	(Codepoints::Single(0x11d96), BidiClass::L),
	(Codepoints::Single(0x11d97), BidiClass::NSM),
	(Codepoints::Single(0x11d98), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11da0, 0x11da9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11db0, 0x11ddb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11de0, 0x11de9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11ee0, 0x11ef2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11ef3, 0x11ef4)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11ef5, 0x11ef8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f00, 0x11f01)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f02, 0x11f10)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f12, 0x11f35)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f36, 0x11f3a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f3e, 0x11f3f)), BidiClass::L),
	(Codepoints::Single(0x11f40), BidiClass::NSM),
	(Codepoints::Single(0x11f41), BidiClass::L),
	(Codepoints::Single(0x11f42), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11f43, 0x11f59)), BidiClass::L),
	(Codepoints::Single(0x11f5a), BidiClass::NSM),
	(Codepoints::Single(0x11fb0), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11fc0, 0x11fd4)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11fd5, 0x11fdc)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11fdd, 0x11fe0)), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11fe1, 0x11ff1)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x11fff, 0x12399)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12400, 0x1246e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12470, 0x12474)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12480, 0x12543)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x12f90, 0x12ff2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13000, 0x1343f)), BidiClass::L),
	(Codepoints::Single(0x13440), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13441, 0x13446)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13447, 0x13455)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x13460, 0x143fa)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x14400, 0x14646)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16100, 0x1611d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1611e, 0x16129)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1612a, 0x1612c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1612d, 0x1612f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16130, 0x16139)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16800, 0x16a38)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16a40, 0x16a5e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16a60, 0x16a69)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16a6e, 0x16abe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16ac0, 0x16ac9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16ad0, 0x16aed)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16af0, 0x16af4)), BidiClass::NSM),
	(Codepoints::Single(0x16af5), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b00, 0x16b2f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b30, 0x16b36)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b37, 0x16b45)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b50, 0x16b59)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b5b, 0x16b61)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b63, 0x16b77)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16b7d, 0x16b8f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16d40, 0x16d79)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16e40, 0x16e9a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16ea0, 0x16eb8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16ebb, 0x16ed3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16f00, 0x16f4a)), BidiClass::L),
	(Codepoints::Single(0x16f4f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16f50, 0x16f87)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16f8f, 0x16f92)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16f93, 0x16f9f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16fe0, 0x16fe1)), BidiClass::L),
	(Codepoints::Single(0x16fe2), BidiClass::ON),
	(Codepoints::Single(0x16fe3), BidiClass::L),
	(Codepoints::Single(0x16fe4), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x16ff0, 0x16ff6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x17000, 0x187ff)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x18800, 0x18cd5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x18cff, 0x18d1e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x18d80, 0x18df2)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1aff0, 0x1aff3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1aff5, 0x1affb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1affd, 0x1affe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b000, 0x1b122)), BidiClass::L),
	(Codepoints::Single(0x1b132), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b150, 0x1b152)), BidiClass::L),
	(Codepoints::Single(0x1b155), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b164, 0x1b167)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1b170, 0x1b2fb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bc00, 0x1bc6a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bc70, 0x1bc7c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bc80, 0x1bc88)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bc90, 0x1bc99)), BidiClass::L),
	(Codepoints::Single(0x1bc9c), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bc9d, 0x1bc9e)), BidiClass::NSM),
	(Codepoints::Single(0x1bc9f), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1bca0, 0x1bca3)), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cc00, 0x1ccd5)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ccd6, 0x1ccef)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ccf0, 0x1ccf9)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ccfa, 0x1ccfc)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cd00, 0x1ceb3)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ceba, 0x1ced0)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cee0, 0x1cef0)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cf00, 0x1cf2d)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cf30, 0x1cf46)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1cf50, 0x1cfc3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d000, 0x1d0f5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d100, 0x1d126)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d129, 0x1d166)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d167, 0x1d169)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d16a, 0x1d172)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d173, 0x1d17a)), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d17b, 0x1d182)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d183, 0x1d184)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d185, 0x1d18b)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d18c, 0x1d1a9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d1aa, 0x1d1ad)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d1ae, 0x1d1e8)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d1e9, 0x1d1ea)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d200, 0x1d241)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d242, 0x1d244)), BidiClass::NSM),
	(Codepoints::Single(0x1d245), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d2c0, 0x1d2d3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d2e0, 0x1d2f3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d300, 0x1d356)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d360, 0x1d378)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d400, 0x1d454)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d456, 0x1d49c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d49e, 0x1d49f)), BidiClass::L),
	(Codepoints::Single(0x1d4a2), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d4a5, 0x1d4a6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d4a9, 0x1d4ac)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d4ae, 0x1d4b9)), BidiClass::L),
	(Codepoints::Single(0x1d4bb), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d4bd, 0x1d4c3)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d4c5, 0x1d505)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d507, 0x1d50a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d50d, 0x1d514)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d516, 0x1d51c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d51e, 0x1d539)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d53b, 0x1d53e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d540, 0x1d544)), BidiClass::L),
	(Codepoints::Single(0x1d546), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d54a, 0x1d550)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d552, 0x1d6a5)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d6a8, 0x1d6c0)), BidiClass::L),
	(Codepoints::Single(0x1d6c1), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d6c2, 0x1d6da)), BidiClass::L),
	(Codepoints::Single(0x1d6db), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d6dc, 0x1d6fa)), BidiClass::L),
	(Codepoints::Single(0x1d6fb), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d6fc, 0x1d714)), BidiClass::L),
	(Codepoints::Single(0x1d715), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d716, 0x1d734)), BidiClass::L),
	(Codepoints::Single(0x1d735), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d736, 0x1d74e)), BidiClass::L),
	(Codepoints::Single(0x1d74f), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d750, 0x1d76e)), BidiClass::L),
	(Codepoints::Single(0x1d76f), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d770, 0x1d788)), BidiClass::L),
	(Codepoints::Single(0x1d789), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d78a, 0x1d7a8)), BidiClass::L),
	(Codepoints::Single(0x1d7a9), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d7aa, 0x1d7c2)), BidiClass::L),
	(Codepoints::Single(0x1d7c3), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d7c4, 0x1d7cb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d7ce, 0x1d7ff)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1d800, 0x1d9ff)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da00, 0x1da36)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da37, 0x1da3a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da3b, 0x1da6c)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da6d, 0x1da74)), BidiClass::L),
	(Codepoints::Single(0x1da75), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da76, 0x1da83)), BidiClass::L),
	(Codepoints::Single(0x1da84), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da85, 0x1da8b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1da9b, 0x1da9f)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1daa1, 0x1daaf)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1df00, 0x1df1e)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1df25, 0x1df2a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e000, 0x1e006)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e008, 0x1e018)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e01b, 0x1e021)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e023, 0x1e024)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e026, 0x1e02a)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e030, 0x1e06d)), BidiClass::L),
	(Codepoints::Single(0x1e08f), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e100, 0x1e12c)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e130, 0x1e136)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e137, 0x1e13d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e140, 0x1e149)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e14e, 0x1e14f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e290, 0x1e2ad)), BidiClass::L),
	(Codepoints::Single(0x1e2ae), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e2c0, 0x1e2eb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e2ec, 0x1e2ef)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e2f0, 0x1e2f9)), BidiClass::L),
	(Codepoints::Single(0x1e2ff), BidiClass::ET),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e4d0, 0x1e4eb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e4ec, 0x1e4ef)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e4f0, 0x1e4f9)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e5d0, 0x1e5ed)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e5ee, 0x1e5ef)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e5f0, 0x1e5fa)), BidiClass::L),
	(Codepoints::Single(0x1e5ff), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6c0, 0x1e6de)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6e0, 0x1e6e2)), BidiClass::L),
	(Codepoints::Single(0x1e6e3), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6e4, 0x1e6e5)), BidiClass::L),
	(Codepoints::Single(0x1e6e6), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6e7, 0x1e6ed)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6ee, 0x1e6ef)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6f0, 0x1e6f4)), BidiClass::L),
	(Codepoints::Single(0x1e6f5), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e6fe, 0x1e6ff)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e7e0, 0x1e7e6)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e7e8, 0x1e7eb)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e7ed, 0x1e7ee)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e7f0, 0x1e7fe)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e800, 0x1e8c4)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e8c7, 0x1e8cf)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e8d0, 0x1e8d6)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e900, 0x1e943)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e944, 0x1e94a)), BidiClass::NSM),
	(Codepoints::Single(0x1e94b), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e950, 0x1e959)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1e95e, 0x1e95f)), BidiClass::R),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ec71, 0x1ecb4)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ed01, 0x1ed3d)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee00, 0x1ee03)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee05, 0x1ee1f)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee21, 0x1ee22)), BidiClass::AL),
	(Codepoints::Single(0x1ee24), BidiClass::AL),
	(Codepoints::Single(0x1ee27), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee29, 0x1ee32)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee34, 0x1ee37)), BidiClass::AL),
	(Codepoints::Single(0x1ee39), BidiClass::AL),
	(Codepoints::Single(0x1ee3b), BidiClass::AL),
	(Codepoints::Single(0x1ee42), BidiClass::AL),
	(Codepoints::Single(0x1ee47), BidiClass::AL),
	(Codepoints::Single(0x1ee49), BidiClass::AL),
	(Codepoints::Single(0x1ee4b), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee4d, 0x1ee4f)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee51, 0x1ee52)), BidiClass::AL),
	(Codepoints::Single(0x1ee54), BidiClass::AL),
	(Codepoints::Single(0x1ee57), BidiClass::AL),
	(Codepoints::Single(0x1ee59), BidiClass::AL),
	(Codepoints::Single(0x1ee5b), BidiClass::AL),
	(Codepoints::Single(0x1ee5d), BidiClass::AL),
	(Codepoints::Single(0x1ee5f), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee61, 0x1ee62)), BidiClass::AL),
	(Codepoints::Single(0x1ee64), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee67, 0x1ee6a)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee6c, 0x1ee72)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee74, 0x1ee77)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee79, 0x1ee7c)), BidiClass::AL),
	(Codepoints::Single(0x1ee7e), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee80, 0x1ee89)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1ee8b, 0x1ee9b)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1eea1, 0x1eea3)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1eea5, 0x1eea9)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1eeab, 0x1eebb)), BidiClass::AL),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1eef0, 0x1eef1)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f000, 0x1f02b)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f030, 0x1f093)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f0a0, 0x1f0ae)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f0b1, 0x1f0bf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f0c1, 0x1f0cf)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f0d1, 0x1f0f5)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f100, 0x1f10a)), BidiClass::EN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f10b, 0x1f10f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f110, 0x1f12e)), BidiClass::L),
	(Codepoints::Single(0x1f12f), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f130, 0x1f169)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f16a, 0x1f16f)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f170, 0x1f1ac)), BidiClass::L),
	(Codepoints::Single(0x1f1ad), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f1e6, 0x1f202)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f210, 0x1f23b)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f240, 0x1f248)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f250, 0x1f251)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f260, 0x1f265)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f300, 0x1f6d8)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f6dc, 0x1f6ec)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f6f0, 0x1f6fc)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f700, 0x1f7d9)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f7e0, 0x1f7eb)), BidiClass::ON),
	(Codepoints::Single(0x1f7f0), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f800, 0x1f80b)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f810, 0x1f847)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f850, 0x1f859)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f860, 0x1f887)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f890, 0x1f8ad)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f8b0, 0x1f8bb)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f8c0, 0x1f8c1)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f8d0, 0x1f8d8)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1f900, 0x1fa57)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fa60, 0x1fa6d)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fa70, 0x1fa7c)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fa80, 0x1fa8a)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fa8e, 0x1fac6)), BidiClass::ON),
	(Codepoints::Single(0x1fac8), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1facd, 0x1fadc)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fadf, 0x1faea)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1faef, 0x1faf8)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fb00, 0x1fb92)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fb94, 0x1fbef)), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x1fbf0, 0x1fbf9)), BidiClass::EN),
	(Codepoints::Single(0x1fbfa), BidiClass::ON),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x20000, 0x2a6df)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2a700, 0x2b73f)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2b740, 0x2b81d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2b820, 0x2cead)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2ceb0, 0x2ebe0)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2ebf0, 0x2ee5d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x2f800, 0x2fa1d)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x30000, 0x3134a)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x31350, 0x33479)), BidiClass::L),
	(Codepoints::Single(0xe0001), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xe0020, 0xe007f)), BidiClass::BN),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xe0100, 0xe01ef)), BidiClass::NSM),
	(Codepoints::Range(std::ops::RangeInclusive::new(0xf0000, 0xffffd)), BidiClass::L),
	(Codepoints::Range(std::ops::RangeInclusive::new(0x100000, 0x10fffd)), BidiClass::L),
];

