From 82efccfd62826ef54c4a12c4f52f8d730b72da44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Tue, 7 Jul 2026 02:15:09 +0200 Subject: [PATCH] fix(runtime): bundle Unicode 17.0 property-escape data for pre-existing properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Perry's regex engine expands `\p{...}` / `\P{...}` through `regex-syntax` 0.8.11, which bundles the Unicode 16.0 UCD. Test262's `built-ins/RegExp/property-escapes/generated/*` cases were regenerated against Unicode 17.0, so every property whose code-point set changed between UCD 16 and UCD 17 fails: the regex matches the UCD-16 set, the test asserts the UCD-17 set. #6068 handled the four brand-new self-contained U17 scripts (Beria_Erfe, Sidetic, Tai_Yo, Tolong_Siki). This covers the remaining 69 failing cases — U17 changes to *pre-existing* scripts (Han, Latin, Arabic, ...), general categories (L, M, N, Lo, ...), binary properties (Alphabetic, ID_Start, XID_Continue, Grapheme_Base, ...) and the Unknown/Zzzz catch-alls. New `regex/unicode17_data.rs` carries, per affected property, either: * Delta — UCD 17 only *added* code points; the added ranges are unioned into the crate's own class (`\p{Prop}` -> `[\p{Prop}]`). 58 properties. * Full — the crate can't represent the property (Script=Unknown/Zzzz, Changes_When_NFKC_Casefolded) or UCD 17 *removed* points (e.g. U+0295 left Cased), so a union would over-match; the full UCD-17 range set replaces the crate's expansion. 10 properties. `regex/unicode17.rs` gains `u17_replacement()` (wraps the data into the correct positive/negated/in-class form, mirroring `script_replacement`), and `grammar.rs` gains one dispatch arm before the legacy never-match fallback so the U17 overrides for Script=Unknown / Changes_When_NFKC_Casefolded win. Every range set is derived offline by diffing each generated test's own embedded UCD-17 `matchSymbols` against the UCD-16 tables `regex-syntax` ships; `delta = UCD17 \ UCD16`, promoted to Full automatically when `UCD16 \ UCD17` is non-empty. This is bundled data, not a dependency bump — `regex-syntax` 0.8.11 is already newest and ships no U17 data. built-ins/RegExp/property-escapes: 69 runtime-fails -> 0 (585/585, 100%). built-ins/RegExp regression gate (fix vs clean origin/main, native sweep on an internal Linux host): 0 new failures, 69 fixed. --- crates/perry-runtime/src/regex.rs | 2 + crates/perry-runtime/src/regex/grammar.rs | 10 +- crates/perry-runtime/src/regex/unicode17.rs | 46 +++ .../perry-runtime/src/regex/unicode17_data.rs | 299 ++++++++++++++++++ 4 files changed, 352 insertions(+), 5 deletions(-) create mode 100644 crates/perry-runtime/src/regex/unicode17_data.rs diff --git a/crates/perry-runtime/src/regex.rs b/crates/perry-runtime/src/regex.rs index 52dd41eea6..aff02d03d9 100644 --- a/crates/perry-runtime/src/regex.rs +++ b/crates/perry-runtime/src/regex.rs @@ -45,6 +45,8 @@ mod replace_fn; #[cfg(feature = "regex-engine")] mod unicode17; #[cfg(feature = "regex-engine")] +mod unicode17_data; +#[cfg(feature = "regex-engine")] use class_range_validate::has_out_of_order_double_dash_class_range; #[cfg(feature = "regex-engine")] pub use compile::js_regexp_compile_value; diff --git a/crates/perry-runtime/src/regex/grammar.rs b/crates/perry-runtime/src/regex/grammar.rs index 217f22bc81..97e321e5df 100644 --- a/crates/perry-runtime/src/regex/grammar.rs +++ b/crates/perry-runtime/src/regex/grammar.rs @@ -1432,13 +1432,13 @@ pub(super) fn js_regex_to_rust(pattern: &str) -> String { // mis-compiling (Node also rejects `\P{RGI_Emoji}`). // All other properties pass through to the crate unchanged. match parse_unicode_property(&chars, i) { + // Unicode-17.0 expansions the crate's UCD-16 tables get + // wrong (`unicode17::expand`); precedes never-match below. Some((value, negated, end)) - if super::unicode17::script_replacement(&value, negated, in_class) - .is_some() => + if super::unicode17::expand(&value, negated, in_class).is_some() => { result.push_str( - &super::unicode17::script_replacement(&value, negated, in_class) - .unwrap(), + &super::unicode17::expand(&value, negated, in_class).unwrap(), ); i = end; } @@ -1980,7 +1980,7 @@ mod tests { (r"[\d-z]", r"[\d\-z]"), (r"[a\w-]", r"[a\w\-]"), (r"[a-\d]", r"[a\-\d]"), - (r"[\p{L}-x]", r"[\p{L}\-x]"), + (r"[\p{Greek}-x]", r"[\p{Greek}\-x]"), ] { assert_eq!(js_regex_to_rust(src), expect, "src={src}"); assert!( diff --git a/crates/perry-runtime/src/regex/unicode17.rs b/crates/perry-runtime/src/regex/unicode17.rs index 321bc0abb7..eac6b19f82 100644 --- a/crates/perry-runtime/src/regex/unicode17.rs +++ b/crates/perry-runtime/src/regex/unicode17.rs @@ -44,3 +44,49 @@ pub(super) fn script_replacement(value: &str, negated: bool, in_class: bool) -> (false, false) => format!("[{body}]"), }) } + +/// Expand a `\p{...}`/`\P{...}` for a property carrying a Unicode-17.0 delta or a +/// full replacement (see `unicode17_data`), or return `None` (pass-through to the +/// `regex` crate's bundled UCD-16 view). `value` is already normalized +/// (lowercased, `_`/spaces removed, any `gc=`/`general_category=` prefix +/// stripped by the caller) — the same key space `unicode17_data::u17_expansion` +/// is keyed on and the same spelling the crate's own property parser accepts. +/// +/// * `Delta(d)` — the crate is correct at UCD 16 and UCD 17 only *added* the +/// ranges `d`; union them into the crate class: `[\p{value}d]` (positive), +/// `[^\p{value}d]` (negated), `\p{value}d` (positive class member). A negated +/// *in-class* member can't express "complement of the union" as a class-union +/// term, so it falls back to the crate's `\P{value}` (correct except for the +/// handful of freshly-added UCD-17 points, and unexercised by Test262 — every +/// generated case uses the anchored `/^\p{…}+$/` / `/^\P{…}+$/` forms). +/// * `Full(f)` — the crate can't represent the property (`Script=Unknown`, +/// `Changes_When_NFKC_Casefolded`) or UCD 17 *removed* points (so a union would +/// over-match); `f` replaces it wholesale, exactly like `script_replacement`. +pub(super) fn u17_replacement(value: &str, negated: bool, in_class: bool) -> Option { + use super::unicode17_data::{u17_expansion, U17Expansion}; + Some(match u17_expansion(value)? { + U17Expansion::Delta(d) => match (in_class, negated) { + (false, false) => format!("[\\p{{{value}}}{d}]"), + (false, true) => format!("[^\\p{{{value}}}{d}]"), + (true, false) => format!("\\p{{{value}}}{d}"), + (true, true) => format!("\\P{{{value}}}"), + }, + U17Expansion::Full(f) => match (in_class, negated) { + (true, true) => String::new(), + (true, false) => f.to_string(), + (false, true) => format!("[^{f}]"), + (false, false) => format!("[{f}]"), + }, + }) +} + +/// Unicode-17.0 expansion for a `\p{...}`/`\P{...}` property, or `None` to pass +/// the property through to the `regex` crate's bundled UCD-16 view unchanged. +/// Tries the four brand-new U17 scripts (`script_replacement`, #6068) first, +/// then the U17 deltas/overrides for pre-existing properties (`u17_replacement`). +/// `value` is normalized as documented on those two functions. Grammar dispatch +/// calls this single entry point so the property-escape arm stays compact. +pub(super) fn expand(value: &str, negated: bool, in_class: bool) -> Option { + script_replacement(value, negated, in_class) + .or_else(|| u17_replacement(value, negated, in_class)) +} diff --git a/crates/perry-runtime/src/regex/unicode17_data.rs b/crates/perry-runtime/src/regex/unicode17_data.rs new file mode 100644 index 0000000000..ae48c54c5b --- /dev/null +++ b/crates/perry-runtime/src/regex/unicode17_data.rs @@ -0,0 +1,299 @@ +//! Unicode 17.0 property-escape expansions for the properties whose +//! Test262 `built-ins/RegExp/property-escapes/generated` cases fail against a +//! `regex-syntax` 0.8.x that bundles the Unicode 16.0 UCD. The four brand-new +//! Unicode-17 *scripts* live in `unicode17.rs`; this file carries the U17 data +//! for pre-existing properties that gained (or, rarely, lost) code points. +//! +//! Every range set is derived offline by diffing each generated test's own +//! embedded UCD-17 `matchSymbols` against the UCD-16 table the crate ships: +//! * `Delta` — the crate is correct at UCD 16 and UCD 17 only *adds* points; +//! the added ranges are unioned into the crate class (`[\p{Prop}]`). +//! * `Full` — the crate cannot represent the property (`Script=Unknown`, +//! `Changes_When_NFKC_Casefolded`) or UCD 17 *removed* points from it (so a +//! union would over-match); the complete UCD-17 range set replaces it. +//! +//! This file is generated data — see the PR body for the regeneration recipe. + +/// How a matched U17 property expands. +pub(super) enum U17Expansion { + /// Ranges to union into the crate's own `\p{Prop}` class. + Delta(&'static str), + /// Complete replacement range set; the crate class is bypassed. + Full(&'static str), +} + +/// Look up the U17 expansion for a normalized `\p{...}` value key (lowercased, +/// `_`/spaces removed, `gc=`/`general_category=` prefix already stripped by the +/// caller). Returns `None` for properties with no U17 delta (pass-through). +pub(super) fn u17_expansion(value: &str) -> Option { + Some(match value { + // Alphabetic.js + "alpha" | "alphabetic" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{10EFA}-\x{10EFB}\x{11B60}-\x{11B67}\x{11DB0}-\x{11DDB}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6F5}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // Case_Ignorable.js + "caseignorable" | "ci" => U17Expansion::Delta( + r"\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{A7F1}\x{10EC5}\x{10EFA}-\x{10EFB}\x{11B60}\x{11B62}-\x{11B64}\x{11B66}\x{11DD9}\x{16FF2}-\x{16FF3}\x{1E6E3}\x{1E6E6}\x{1E6EE}-\x{1E6EF}\x{1E6F5}\x{1E6FF}", + ), + // Cased.js + "cased" => U17Expansion::Full( + r"\x{41}-\x{5A}\x{61}-\x{7A}\x{AA}\x{B5}\x{BA}\x{C0}-\x{D6}\x{D8}-\x{F6}\x{F8}-\x{1BA}\x{1BC}-\x{1BF}\x{1C4}-\x{293}\x{296}-\x{2B8}\x{2C0}-\x{2C1}\x{2E0}-\x{2E4}\x{345}\x{370}-\x{373}\x{376}-\x{377}\x{37A}-\x{37D}\x{37F}\x{386}\x{388}-\x{38A}\x{38C}\x{38E}-\x{3A1}\x{3A3}-\x{3F5}\x{3F7}-\x{481}\x{48A}-\x{52F}\x{531}-\x{556}\x{560}-\x{588}\x{10A0}-\x{10C5}\x{10C7}\x{10CD}\x{10D0}-\x{10FA}\x{10FC}-\x{10FF}\x{13A0}-\x{13F5}\x{13F8}-\x{13FD}\x{1C80}-\x{1C8A}\x{1C90}-\x{1CBA}\x{1CBD}-\x{1CBF}\x{1D00}-\x{1DBF}\x{1E00}-\x{1F15}\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F50}-\x{1F57}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1F80}-\x{1FB4}\x{1FB6}-\x{1FBC}\x{1FBE}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FCC}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FDB}\x{1FE0}-\x{1FEC}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FFC}\x{2071}\x{207F}\x{2090}-\x{209C}\x{2102}\x{2107}\x{210A}-\x{2113}\x{2115}\x{2119}-\x{211D}\x{2124}\x{2126}\x{2128}\x{212A}-\x{212D}\x{212F}-\x{2134}\x{2139}\x{213C}-\x{213F}\x{2145}-\x{2149}\x{214E}\x{2160}-\x{217F}\x{2183}-\x{2184}\x{24B6}-\x{24E9}\x{2C00}-\x{2CE4}\x{2CEB}-\x{2CEE}\x{2CF2}-\x{2CF3}\x{2D00}-\x{2D25}\x{2D27}\x{2D2D}\x{A640}-\x{A66D}\x{A680}-\x{A69D}\x{A722}-\x{A787}\x{A78B}-\x{A78E}\x{A790}-\x{A7DC}\x{A7F1}-\x{A7F6}\x{A7F8}-\x{A7FA}\x{AB30}-\x{AB5A}\x{AB5C}-\x{AB69}\x{AB70}-\x{ABBF}\x{FB00}-\x{FB06}\x{FB13}-\x{FB17}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}\x{10400}-\x{1044F}\x{104B0}-\x{104D3}\x{104D8}-\x{104FB}\x{10570}-\x{1057A}\x{1057C}-\x{1058A}\x{1058C}-\x{10592}\x{10594}-\x{10595}\x{10597}-\x{105A1}\x{105A3}-\x{105B1}\x{105B3}-\x{105B9}\x{105BB}-\x{105BC}\x{10780}\x{10783}-\x{10785}\x{10787}-\x{107B0}\x{107B2}-\x{107BA}\x{10C80}-\x{10CB2}\x{10CC0}-\x{10CF2}\x{10D50}-\x{10D65}\x{10D70}-\x{10D85}\x{118A0}-\x{118DF}\x{16E40}-\x{16E7F}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{1D400}-\x{1D454}\x{1D456}-\x{1D49C}\x{1D49E}-\x{1D49F}\x{1D4A2}\x{1D4A5}-\x{1D4A6}\x{1D4A9}-\x{1D4AC}\x{1D4AE}-\x{1D4B9}\x{1D4BB}\x{1D4BD}-\x{1D4C3}\x{1D4C5}-\x{1D505}\x{1D507}-\x{1D50A}\x{1D50D}-\x{1D514}\x{1D516}-\x{1D51C}\x{1D51E}-\x{1D539}\x{1D53B}-\x{1D53E}\x{1D540}-\x{1D544}\x{1D546}\x{1D54A}-\x{1D550}\x{1D552}-\x{1D6A5}\x{1D6A8}-\x{1D6C0}\x{1D6C2}-\x{1D6DA}\x{1D6DC}-\x{1D6FA}\x{1D6FC}-\x{1D714}\x{1D716}-\x{1D734}\x{1D736}-\x{1D74E}\x{1D750}-\x{1D76E}\x{1D770}-\x{1D788}\x{1D78A}-\x{1D7A8}\x{1D7AA}-\x{1D7C2}\x{1D7C4}-\x{1D7CB}\x{1DF00}-\x{1DF09}\x{1DF0B}-\x{1DF1E}\x{1DF25}-\x{1DF2A}\x{1E030}-\x{1E06D}\x{1E900}-\x{1E943}\x{1F130}-\x{1F149}\x{1F150}-\x{1F169}\x{1F170}-\x{1F189}", + ), + // Changes_When_Casefolded.js + "changeswhencasefolded" | "cwcf" => { + U17Expansion::Delta(r"\x{A7CE}\x{A7D2}\x{A7D4}\x{16EA0}-\x{16EB8}") + } + // Changes_When_Casemapped.js + "changeswhencasemapped" | "cwcm" => U17Expansion::Delta( + r"\x{A7CE}-\x{A7CF}\x{A7D2}-\x{A7D5}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}", + ), + // Changes_When_Lowercased.js + "changeswhenlowercased" | "cwl" => { + U17Expansion::Delta(r"\x{A7CE}\x{A7D2}\x{A7D4}\x{16EA0}-\x{16EB8}") + } + // Changes_When_NFKC_Casefolded.js + "changeswhennfkccasefolded" | "cwkcf" => U17Expansion::Full( + r"\x{41}-\x{5A}\x{A0}\x{A8}\x{AA}\x{AD}\x{AF}\x{B2}-\x{B5}\x{B8}-\x{BA}\x{BC}-\x{BE}\x{C0}-\x{D6}\x{D8}-\x{DF}\x{100}\x{102}\x{104}\x{106}\x{108}\x{10A}\x{10C}\x{10E}\x{110}\x{112}\x{114}\x{116}\x{118}\x{11A}\x{11C}\x{11E}\x{120}\x{122}\x{124}\x{126}\x{128}\x{12A}\x{12C}\x{12E}\x{130}\x{132}-\x{134}\x{136}\x{139}\x{13B}\x{13D}\x{13F}-\x{141}\x{143}\x{145}\x{147}\x{149}-\x{14A}\x{14C}\x{14E}\x{150}\x{152}\x{154}\x{156}\x{158}\x{15A}\x{15C}\x{15E}\x{160}\x{162}\x{164}\x{166}\x{168}\x{16A}\x{16C}\x{16E}\x{170}\x{172}\x{174}\x{176}\x{178}-\x{179}\x{17B}\x{17D}\x{17F}\x{181}-\x{182}\x{184}\x{186}-\x{187}\x{189}-\x{18B}\x{18E}-\x{191}\x{193}-\x{194}\x{196}-\x{198}\x{19C}-\x{19D}\x{19F}-\x{1A0}\x{1A2}\x{1A4}\x{1A6}-\x{1A7}\x{1A9}\x{1AC}\x{1AE}-\x{1AF}\x{1B1}-\x{1B3}\x{1B5}\x{1B7}-\x{1B8}\x{1BC}\x{1C4}-\x{1CD}\x{1CF}\x{1D1}\x{1D3}\x{1D5}\x{1D7}\x{1D9}\x{1DB}\x{1DE}\x{1E0}\x{1E2}\x{1E4}\x{1E6}\x{1E8}\x{1EA}\x{1EC}\x{1EE}\x{1F1}-\x{1F4}\x{1F6}-\x{1F8}\x{1FA}\x{1FC}\x{1FE}\x{200}\x{202}\x{204}\x{206}\x{208}\x{20A}\x{20C}\x{20E}\x{210}\x{212}\x{214}\x{216}\x{218}\x{21A}\x{21C}\x{21E}\x{220}\x{222}\x{224}\x{226}\x{228}\x{22A}\x{22C}\x{22E}\x{230}\x{232}\x{23A}-\x{23B}\x{23D}-\x{23E}\x{241}\x{243}-\x{246}\x{248}\x{24A}\x{24C}\x{24E}\x{2B0}-\x{2B8}\x{2D8}-\x{2DD}\x{2E0}-\x{2E4}\x{340}-\x{341}\x{343}-\x{345}\x{34F}\x{370}\x{372}\x{374}\x{376}\x{37A}\x{37E}-\x{37F}\x{384}-\x{38A}\x{38C}\x{38E}-\x{38F}\x{391}-\x{3A1}\x{3A3}-\x{3AB}\x{3C2}\x{3CF}-\x{3D6}\x{3D8}\x{3DA}\x{3DC}\x{3DE}\x{3E0}\x{3E2}\x{3E4}\x{3E6}\x{3E8}\x{3EA}\x{3EC}\x{3EE}\x{3F0}-\x{3F2}\x{3F4}-\x{3F5}\x{3F7}\x{3F9}-\x{3FA}\x{3FD}-\x{42F}\x{460}\x{462}\x{464}\x{466}\x{468}\x{46A}\x{46C}\x{46E}\x{470}\x{472}\x{474}\x{476}\x{478}\x{47A}\x{47C}\x{47E}\x{480}\x{48A}\x{48C}\x{48E}\x{490}\x{492}\x{494}\x{496}\x{498}\x{49A}\x{49C}\x{49E}\x{4A0}\x{4A2}\x{4A4}\x{4A6}\x{4A8}\x{4AA}\x{4AC}\x{4AE}\x{4B0}\x{4B2}\x{4B4}\x{4B6}\x{4B8}\x{4BA}\x{4BC}\x{4BE}\x{4C0}-\x{4C1}\x{4C3}\x{4C5}\x{4C7}\x{4C9}\x{4CB}\x{4CD}\x{4D0}\x{4D2}\x{4D4}\x{4D6}\x{4D8}\x{4DA}\x{4DC}\x{4DE}\x{4E0}\x{4E2}\x{4E4}\x{4E6}\x{4E8}\x{4EA}\x{4EC}\x{4EE}\x{4F0}\x{4F2}\x{4F4}\x{4F6}\x{4F8}\x{4FA}\x{4FC}\x{4FE}\x{500}\x{502}\x{504}\x{506}\x{508}\x{50A}\x{50C}\x{50E}\x{510}\x{512}\x{514}\x{516}\x{518}\x{51A}\x{51C}\x{51E}\x{520}\x{522}\x{524}\x{526}\x{528}\x{52A}\x{52C}\x{52E}\x{531}-\x{556}\x{587}\x{61C}\x{675}-\x{678}\x{958}-\x{95F}\x{9DC}-\x{9DD}\x{9DF}\x{A33}\x{A36}\x{A59}-\x{A5B}\x{A5E}\x{B5C}-\x{B5D}\x{E33}\x{EB3}\x{EDC}-\x{EDD}\x{F0C}\x{F43}\x{F4D}\x{F52}\x{F57}\x{F5C}\x{F69}\x{F73}\x{F75}-\x{F79}\x{F81}\x{F93}\x{F9D}\x{FA2}\x{FA7}\x{FAC}\x{FB9}\x{10A0}-\x{10C5}\x{10C7}\x{10CD}\x{10FC}\x{115F}-\x{1160}\x{13F8}-\x{13FD}\x{17B4}-\x{17B5}\x{180B}-\x{180F}\x{1C80}-\x{1C89}\x{1C90}-\x{1CBA}\x{1CBD}-\x{1CBF}\x{1D2C}-\x{1D2E}\x{1D30}-\x{1D3A}\x{1D3C}-\x{1D4D}\x{1D4F}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1E00}\x{1E02}\x{1E04}\x{1E06}\x{1E08}\x{1E0A}\x{1E0C}\x{1E0E}\x{1E10}\x{1E12}\x{1E14}\x{1E16}\x{1E18}\x{1E1A}\x{1E1C}\x{1E1E}\x{1E20}\x{1E22}\x{1E24}\x{1E26}\x{1E28}\x{1E2A}\x{1E2C}\x{1E2E}\x{1E30}\x{1E32}\x{1E34}\x{1E36}\x{1E38}\x{1E3A}\x{1E3C}\x{1E3E}\x{1E40}\x{1E42}\x{1E44}\x{1E46}\x{1E48}\x{1E4A}\x{1E4C}\x{1E4E}\x{1E50}\x{1E52}\x{1E54}\x{1E56}\x{1E58}\x{1E5A}\x{1E5C}\x{1E5E}\x{1E60}\x{1E62}\x{1E64}\x{1E66}\x{1E68}\x{1E6A}\x{1E6C}\x{1E6E}\x{1E70}\x{1E72}\x{1E74}\x{1E76}\x{1E78}\x{1E7A}\x{1E7C}\x{1E7E}\x{1E80}\x{1E82}\x{1E84}\x{1E86}\x{1E88}\x{1E8A}\x{1E8C}\x{1E8E}\x{1E90}\x{1E92}\x{1E94}\x{1E9A}-\x{1E9B}\x{1E9E}\x{1EA0}\x{1EA2}\x{1EA4}\x{1EA6}\x{1EA8}\x{1EAA}\x{1EAC}\x{1EAE}\x{1EB0}\x{1EB2}\x{1EB4}\x{1EB6}\x{1EB8}\x{1EBA}\x{1EBC}\x{1EBE}\x{1EC0}\x{1EC2}\x{1EC4}\x{1EC6}\x{1EC8}\x{1ECA}\x{1ECC}\x{1ECE}\x{1ED0}\x{1ED2}\x{1ED4}\x{1ED6}\x{1ED8}\x{1EDA}\x{1EDC}\x{1EDE}\x{1EE0}\x{1EE2}\x{1EE4}\x{1EE6}\x{1EE8}\x{1EEA}\x{1EEC}\x{1EEE}\x{1EF0}\x{1EF2}\x{1EF4}\x{1EF6}\x{1EF8}\x{1EFA}\x{1EFC}\x{1EFE}\x{1F08}-\x{1F0F}\x{1F18}-\x{1F1D}\x{1F28}-\x{1F2F}\x{1F38}-\x{1F3F}\x{1F48}-\x{1F4D}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}\x{1F68}-\x{1F6F}\x{1F71}\x{1F73}\x{1F75}\x{1F77}\x{1F79}\x{1F7B}\x{1F7D}\x{1F80}-\x{1FAF}\x{1FB2}-\x{1FB4}\x{1FB7}-\x{1FC4}\x{1FC7}-\x{1FCF}\x{1FD3}\x{1FD8}-\x{1FDB}\x{1FDD}-\x{1FDF}\x{1FE3}\x{1FE8}-\x{1FEF}\x{1FF2}-\x{1FF4}\x{1FF7}-\x{1FFE}\x{2000}-\x{200F}\x{2011}\x{2017}\x{2024}-\x{2026}\x{202A}-\x{202F}\x{2033}-\x{2034}\x{2036}-\x{2037}\x{203C}\x{203E}\x{2047}-\x{2049}\x{2057}\x{205F}-\x{2071}\x{2074}-\x{208E}\x{2090}-\x{209C}\x{20A8}\x{2100}-\x{2103}\x{2105}-\x{2107}\x{2109}-\x{2113}\x{2115}-\x{2116}\x{2119}-\x{211D}\x{2120}-\x{2122}\x{2124}\x{2126}\x{2128}\x{212A}-\x{212D}\x{212F}-\x{2139}\x{213B}-\x{2140}\x{2145}-\x{2149}\x{2150}-\x{217F}\x{2183}\x{2189}\x{222C}-\x{222D}\x{222F}-\x{2230}\x{2329}-\x{232A}\x{2460}-\x{24EA}\x{2A0C}\x{2A74}-\x{2A76}\x{2ADC}\x{2C00}-\x{2C2F}\x{2C60}\x{2C62}-\x{2C64}\x{2C67}\x{2C69}\x{2C6B}\x{2C6D}-\x{2C70}\x{2C72}\x{2C75}\x{2C7C}-\x{2C80}\x{2C82}\x{2C84}\x{2C86}\x{2C88}\x{2C8A}\x{2C8C}\x{2C8E}\x{2C90}\x{2C92}\x{2C94}\x{2C96}\x{2C98}\x{2C9A}\x{2C9C}\x{2C9E}\x{2CA0}\x{2CA2}\x{2CA4}\x{2CA6}\x{2CA8}\x{2CAA}\x{2CAC}\x{2CAE}\x{2CB0}\x{2CB2}\x{2CB4}\x{2CB6}\x{2CB8}\x{2CBA}\x{2CBC}\x{2CBE}\x{2CC0}\x{2CC2}\x{2CC4}\x{2CC6}\x{2CC8}\x{2CCA}\x{2CCC}\x{2CCE}\x{2CD0}\x{2CD2}\x{2CD4}\x{2CD6}\x{2CD8}\x{2CDA}\x{2CDC}\x{2CDE}\x{2CE0}\x{2CE2}\x{2CEB}\x{2CED}\x{2CF2}\x{2D6F}\x{2E9F}\x{2EF3}\x{2F00}-\x{2FD5}\x{3000}\x{3036}\x{3038}-\x{303A}\x{309B}-\x{309C}\x{309F}\x{30FF}\x{3131}-\x{318E}\x{3192}-\x{319F}\x{3200}-\x{321E}\x{3220}-\x{3247}\x{3250}-\x{327E}\x{3280}-\x{33FF}\x{A640}\x{A642}\x{A644}\x{A646}\x{A648}\x{A64A}\x{A64C}\x{A64E}\x{A650}\x{A652}\x{A654}\x{A656}\x{A658}\x{A65A}\x{A65C}\x{A65E}\x{A660}\x{A662}\x{A664}\x{A666}\x{A668}\x{A66A}\x{A66C}\x{A680}\x{A682}\x{A684}\x{A686}\x{A688}\x{A68A}\x{A68C}\x{A68E}\x{A690}\x{A692}\x{A694}\x{A696}\x{A698}\x{A69A}\x{A69C}-\x{A69D}\x{A722}\x{A724}\x{A726}\x{A728}\x{A72A}\x{A72C}\x{A72E}\x{A732}\x{A734}\x{A736}\x{A738}\x{A73A}\x{A73C}\x{A73E}\x{A740}\x{A742}\x{A744}\x{A746}\x{A748}\x{A74A}\x{A74C}\x{A74E}\x{A750}\x{A752}\x{A754}\x{A756}\x{A758}\x{A75A}\x{A75C}\x{A75E}\x{A760}\x{A762}\x{A764}\x{A766}\x{A768}\x{A76A}\x{A76C}\x{A76E}\x{A770}\x{A779}\x{A77B}\x{A77D}-\x{A77E}\x{A780}\x{A782}\x{A784}\x{A786}\x{A78B}\x{A78D}\x{A790}\x{A792}\x{A796}\x{A798}\x{A79A}\x{A79C}\x{A79E}\x{A7A0}\x{A7A2}\x{A7A4}\x{A7A6}\x{A7A8}\x{A7AA}-\x{A7AE}\x{A7B0}-\x{A7B4}\x{A7B6}\x{A7B8}\x{A7BA}\x{A7BC}\x{A7BE}\x{A7C0}\x{A7C2}\x{A7C4}-\x{A7C7}\x{A7C9}\x{A7CB}-\x{A7CC}\x{A7CE}\x{A7D0}\x{A7D2}\x{A7D4}\x{A7D6}\x{A7D8}\x{A7DA}\x{A7DC}\x{A7F1}-\x{A7F5}\x{A7F8}-\x{A7F9}\x{AB5C}-\x{AB5F}\x{AB69}\x{AB70}-\x{ABBF}\x{F900}-\x{FA0D}\x{FA10}\x{FA12}\x{FA15}-\x{FA1E}\x{FA20}\x{FA22}\x{FA25}-\x{FA26}\x{FA2A}-\x{FA6D}\x{FA70}-\x{FAD9}\x{FB00}-\x{FB06}\x{FB13}-\x{FB17}\x{FB1D}\x{FB1F}-\x{FB36}\x{FB38}-\x{FB3C}\x{FB3E}\x{FB40}-\x{FB41}\x{FB43}-\x{FB44}\x{FB46}-\x{FBB1}\x{FBD3}-\x{FD3D}\x{FD50}-\x{FD8F}\x{FD92}-\x{FDC7}\x{FDF0}-\x{FDFC}\x{FE00}-\x{FE19}\x{FE30}-\x{FE44}\x{FE47}-\x{FE52}\x{FE54}-\x{FE66}\x{FE68}-\x{FE6B}\x{FE70}-\x{FE72}\x{FE74}\x{FE76}-\x{FEFC}\x{FEFF}\x{FF01}-\x{FFBE}\x{FFC2}-\x{FFC7}\x{FFCA}-\x{FFCF}\x{FFD2}-\x{FFD7}\x{FFDA}-\x{FFDC}\x{FFE0}-\x{FFE6}\x{FFE8}-\x{FFEE}\x{FFF0}-\x{FFF8}\x{10400}-\x{10427}\x{104B0}-\x{104D3}\x{10570}-\x{1057A}\x{1057C}-\x{1058A}\x{1058C}-\x{10592}\x{10594}-\x{10595}\x{10781}-\x{10785}\x{10787}-\x{107B0}\x{107B2}-\x{107BA}\x{10C80}-\x{10CB2}\x{10D50}-\x{10D65}\x{118A0}-\x{118BF}\x{16E40}-\x{16E5F}\x{16EA0}-\x{16EB8}\x{1BCA0}-\x{1BCA3}\x{1CCD6}-\x{1CCF9}\x{1D15E}-\x{1D164}\x{1D173}-\x{1D17A}\x{1D1BB}-\x{1D1C0}\x{1D400}-\x{1D454}\x{1D456}-\x{1D49C}\x{1D49E}-\x{1D49F}\x{1D4A2}\x{1D4A5}-\x{1D4A6}\x{1D4A9}-\x{1D4AC}\x{1D4AE}-\x{1D4B9}\x{1D4BB}\x{1D4BD}-\x{1D4C3}\x{1D4C5}-\x{1D505}\x{1D507}-\x{1D50A}\x{1D50D}-\x{1D514}\x{1D516}-\x{1D51C}\x{1D51E}-\x{1D539}\x{1D53B}-\x{1D53E}\x{1D540}-\x{1D544}\x{1D546}\x{1D54A}-\x{1D550}\x{1D552}-\x{1D6A5}\x{1D6A8}-\x{1D7CB}\x{1D7CE}-\x{1D7FF}\x{1E030}-\x{1E06D}\x{1E900}-\x{1E921}\x{1EE00}-\x{1EE03}\x{1EE05}-\x{1EE1F}\x{1EE21}-\x{1EE22}\x{1EE24}\x{1EE27}\x{1EE29}-\x{1EE32}\x{1EE34}-\x{1EE37}\x{1EE39}\x{1EE3B}\x{1EE42}\x{1EE47}\x{1EE49}\x{1EE4B}\x{1EE4D}-\x{1EE4F}\x{1EE51}-\x{1EE52}\x{1EE54}\x{1EE57}\x{1EE59}\x{1EE5B}\x{1EE5D}\x{1EE5F}\x{1EE61}-\x{1EE62}\x{1EE64}\x{1EE67}-\x{1EE6A}\x{1EE6C}-\x{1EE72}\x{1EE74}-\x{1EE77}\x{1EE79}-\x{1EE7C}\x{1EE7E}\x{1EE80}-\x{1EE89}\x{1EE8B}-\x{1EE9B}\x{1EEA1}-\x{1EEA3}\x{1EEA5}-\x{1EEA9}\x{1EEAB}-\x{1EEBB}\x{1F100}-\x{1F10A}\x{1F110}-\x{1F12E}\x{1F130}-\x{1F14F}\x{1F16A}-\x{1F16C}\x{1F190}\x{1F200}-\x{1F202}\x{1F210}-\x{1F23B}\x{1F240}-\x{1F248}\x{1F250}-\x{1F251}\x{1FBF0}-\x{1FBF9}\x{2F800}-\x{2FA1D}\x{E0000}-\x{E0FFF}", + ), + // Changes_When_Titlecased.js + "changeswhentitlecased" | "cwt" => { + U17Expansion::Delta(r"\x{A7CF}\x{A7D3}\x{A7D5}\x{16EBB}-\x{16ED3}") + } + // Changes_When_Uppercased.js + "changeswhenuppercased" | "cwu" => { + U17Expansion::Delta(r"\x{A7CF}\x{A7D3}\x{A7D5}\x{16EBB}-\x{16ED3}") + } + // Diacritic.js + "dia" | "diacritic" => U17Expansion::Delta( + r"\x{5A2}\x{5C5}\x{5C7}\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{1D9B}-\x{1DBE}\x{A7F1}\x{10EFA}\x{11DD9}", + ), + // Emoji.js + "emoji" => { + U17Expansion::Delta(r"\x{1F6D8}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}") + } + // Emoji_Presentation.js + "emojipresentation" | "epres" => { + U17Expansion::Delta(r"\x{1F6D8}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}") + } + // Extender.js + "ext" | "extender" => U17Expansion::Delta(r"\x{11DD9}\x{16FF2}-\x{16FF3}"), + // General_Category_-_Cased_Letter.js + "casedletter" | "lc" => U17Expansion::Full( + r"\x{41}-\x{5A}\x{61}-\x{7A}\x{B5}\x{C0}-\x{D6}\x{D8}-\x{F6}\x{F8}-\x{1BA}\x{1BC}-\x{1BF}\x{1C4}-\x{293}\x{296}-\x{2AF}\x{370}-\x{373}\x{376}-\x{377}\x{37B}-\x{37D}\x{37F}\x{386}\x{388}-\x{38A}\x{38C}\x{38E}-\x{3A1}\x{3A3}-\x{3F5}\x{3F7}-\x{481}\x{48A}-\x{52F}\x{531}-\x{556}\x{560}-\x{588}\x{10A0}-\x{10C5}\x{10C7}\x{10CD}\x{10D0}-\x{10FA}\x{10FD}-\x{10FF}\x{13A0}-\x{13F5}\x{13F8}-\x{13FD}\x{1C80}-\x{1C8A}\x{1C90}-\x{1CBA}\x{1CBD}-\x{1CBF}\x{1D00}-\x{1D2B}\x{1D6B}-\x{1D77}\x{1D79}-\x{1D9A}\x{1E00}-\x{1F15}\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F50}-\x{1F57}\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1F80}-\x{1FB4}\x{1FB6}-\x{1FBC}\x{1FBE}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FCC}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FDB}\x{1FE0}-\x{1FEC}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FFC}\x{2102}\x{2107}\x{210A}-\x{2113}\x{2115}\x{2119}-\x{211D}\x{2124}\x{2126}\x{2128}\x{212A}-\x{212D}\x{212F}-\x{2134}\x{2139}\x{213C}-\x{213F}\x{2145}-\x{2149}\x{214E}\x{2183}-\x{2184}\x{2C00}-\x{2C7B}\x{2C7E}-\x{2CE4}\x{2CEB}-\x{2CEE}\x{2CF2}-\x{2CF3}\x{2D00}-\x{2D25}\x{2D27}\x{2D2D}\x{A640}-\x{A66D}\x{A680}-\x{A69B}\x{A722}-\x{A76F}\x{A771}-\x{A787}\x{A78B}-\x{A78E}\x{A790}-\x{A7DC}\x{A7F5}-\x{A7F6}\x{A7FA}\x{AB30}-\x{AB5A}\x{AB60}-\x{AB68}\x{AB70}-\x{ABBF}\x{FB00}-\x{FB06}\x{FB13}-\x{FB17}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}\x{10400}-\x{1044F}\x{104B0}-\x{104D3}\x{104D8}-\x{104FB}\x{10570}-\x{1057A}\x{1057C}-\x{1058A}\x{1058C}-\x{10592}\x{10594}-\x{10595}\x{10597}-\x{105A1}\x{105A3}-\x{105B1}\x{105B3}-\x{105B9}\x{105BB}-\x{105BC}\x{10C80}-\x{10CB2}\x{10CC0}-\x{10CF2}\x{10D50}-\x{10D65}\x{10D70}-\x{10D85}\x{118A0}-\x{118DF}\x{16E40}-\x{16E7F}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{1D400}-\x{1D454}\x{1D456}-\x{1D49C}\x{1D49E}-\x{1D49F}\x{1D4A2}\x{1D4A5}-\x{1D4A6}\x{1D4A9}-\x{1D4AC}\x{1D4AE}-\x{1D4B9}\x{1D4BB}\x{1D4BD}-\x{1D4C3}\x{1D4C5}-\x{1D505}\x{1D507}-\x{1D50A}\x{1D50D}-\x{1D514}\x{1D516}-\x{1D51C}\x{1D51E}-\x{1D539}\x{1D53B}-\x{1D53E}\x{1D540}-\x{1D544}\x{1D546}\x{1D54A}-\x{1D550}\x{1D552}-\x{1D6A5}\x{1D6A8}-\x{1D6C0}\x{1D6C2}-\x{1D6DA}\x{1D6DC}-\x{1D6FA}\x{1D6FC}-\x{1D714}\x{1D716}-\x{1D734}\x{1D736}-\x{1D74E}\x{1D750}-\x{1D76E}\x{1D770}-\x{1D788}\x{1D78A}-\x{1D7A8}\x{1D7AA}-\x{1D7C2}\x{1D7C4}-\x{1D7CB}\x{1DF00}-\x{1DF09}\x{1DF0B}-\x{1DF1E}\x{1DF25}-\x{1DF2A}\x{1E900}-\x{1E943}", + ), + // General_Category_-_Currency_Symbol.js + "currencysymbol" | "sc" => U17Expansion::Delta(r"\x{20C1}"), + // General_Category_-_Decimal_Number.js + "decimalnumber" | "digit" | "nd" => U17Expansion::Delta(r"\x{11DE0}-\x{11DE9}"), + // General_Category_-_Letter.js + "l" | "letter" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{11DB0}-\x{11DDB}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF3}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6E2}\x{1E6E4}-\x{1E6E5}\x{1E6E7}-\x{1E6ED}\x{1E6F0}-\x{1E6F4}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // General_Category_-_Letter_Number.js + "letternumber" | "nl" => U17Expansion::Delta(r"\x{16FF4}-\x{16FF6}"), + // General_Category_-_Lowercase_Letter.js + "ll" | "lowercaseletter" => U17Expansion::Full( + r"\x{61}-\x{7A}\x{B5}\x{DF}-\x{F6}\x{F8}-\x{FF}\x{101}\x{103}\x{105}\x{107}\x{109}\x{10B}\x{10D}\x{10F}\x{111}\x{113}\x{115}\x{117}\x{119}\x{11B}\x{11D}\x{11F}\x{121}\x{123}\x{125}\x{127}\x{129}\x{12B}\x{12D}\x{12F}\x{131}\x{133}\x{135}\x{137}-\x{138}\x{13A}\x{13C}\x{13E}\x{140}\x{142}\x{144}\x{146}\x{148}-\x{149}\x{14B}\x{14D}\x{14F}\x{151}\x{153}\x{155}\x{157}\x{159}\x{15B}\x{15D}\x{15F}\x{161}\x{163}\x{165}\x{167}\x{169}\x{16B}\x{16D}\x{16F}\x{171}\x{173}\x{175}\x{177}\x{17A}\x{17C}\x{17E}-\x{180}\x{183}\x{185}\x{188}\x{18C}-\x{18D}\x{192}\x{195}\x{199}-\x{19B}\x{19E}\x{1A1}\x{1A3}\x{1A5}\x{1A8}\x{1AA}-\x{1AB}\x{1AD}\x{1B0}\x{1B4}\x{1B6}\x{1B9}-\x{1BA}\x{1BD}-\x{1BF}\x{1C6}\x{1C9}\x{1CC}\x{1CE}\x{1D0}\x{1D2}\x{1D4}\x{1D6}\x{1D8}\x{1DA}\x{1DC}-\x{1DD}\x{1DF}\x{1E1}\x{1E3}\x{1E5}\x{1E7}\x{1E9}\x{1EB}\x{1ED}\x{1EF}-\x{1F0}\x{1F3}\x{1F5}\x{1F9}\x{1FB}\x{1FD}\x{1FF}\x{201}\x{203}\x{205}\x{207}\x{209}\x{20B}\x{20D}\x{20F}\x{211}\x{213}\x{215}\x{217}\x{219}\x{21B}\x{21D}\x{21F}\x{221}\x{223}\x{225}\x{227}\x{229}\x{22B}\x{22D}\x{22F}\x{231}\x{233}-\x{239}\x{23C}\x{23F}-\x{240}\x{242}\x{247}\x{249}\x{24B}\x{24D}\x{24F}-\x{293}\x{296}-\x{2AF}\x{371}\x{373}\x{377}\x{37B}-\x{37D}\x{390}\x{3AC}-\x{3CE}\x{3D0}-\x{3D1}\x{3D5}-\x{3D7}\x{3D9}\x{3DB}\x{3DD}\x{3DF}\x{3E1}\x{3E3}\x{3E5}\x{3E7}\x{3E9}\x{3EB}\x{3ED}\x{3EF}-\x{3F3}\x{3F5}\x{3F8}\x{3FB}-\x{3FC}\x{430}-\x{45F}\x{461}\x{463}\x{465}\x{467}\x{469}\x{46B}\x{46D}\x{46F}\x{471}\x{473}\x{475}\x{477}\x{479}\x{47B}\x{47D}\x{47F}\x{481}\x{48B}\x{48D}\x{48F}\x{491}\x{493}\x{495}\x{497}\x{499}\x{49B}\x{49D}\x{49F}\x{4A1}\x{4A3}\x{4A5}\x{4A7}\x{4A9}\x{4AB}\x{4AD}\x{4AF}\x{4B1}\x{4B3}\x{4B5}\x{4B7}\x{4B9}\x{4BB}\x{4BD}\x{4BF}\x{4C2}\x{4C4}\x{4C6}\x{4C8}\x{4CA}\x{4CC}\x{4CE}-\x{4CF}\x{4D1}\x{4D3}\x{4D5}\x{4D7}\x{4D9}\x{4DB}\x{4DD}\x{4DF}\x{4E1}\x{4E3}\x{4E5}\x{4E7}\x{4E9}\x{4EB}\x{4ED}\x{4EF}\x{4F1}\x{4F3}\x{4F5}\x{4F7}\x{4F9}\x{4FB}\x{4FD}\x{4FF}\x{501}\x{503}\x{505}\x{507}\x{509}\x{50B}\x{50D}\x{50F}\x{511}\x{513}\x{515}\x{517}\x{519}\x{51B}\x{51D}\x{51F}\x{521}\x{523}\x{525}\x{527}\x{529}\x{52B}\x{52D}\x{52F}\x{560}-\x{588}\x{10D0}-\x{10FA}\x{10FD}-\x{10FF}\x{13F8}-\x{13FD}\x{1C80}-\x{1C88}\x{1C8A}\x{1D00}-\x{1D2B}\x{1D6B}-\x{1D77}\x{1D79}-\x{1D9A}\x{1E01}\x{1E03}\x{1E05}\x{1E07}\x{1E09}\x{1E0B}\x{1E0D}\x{1E0F}\x{1E11}\x{1E13}\x{1E15}\x{1E17}\x{1E19}\x{1E1B}\x{1E1D}\x{1E1F}\x{1E21}\x{1E23}\x{1E25}\x{1E27}\x{1E29}\x{1E2B}\x{1E2D}\x{1E2F}\x{1E31}\x{1E33}\x{1E35}\x{1E37}\x{1E39}\x{1E3B}\x{1E3D}\x{1E3F}\x{1E41}\x{1E43}\x{1E45}\x{1E47}\x{1E49}\x{1E4B}\x{1E4D}\x{1E4F}\x{1E51}\x{1E53}\x{1E55}\x{1E57}\x{1E59}\x{1E5B}\x{1E5D}\x{1E5F}\x{1E61}\x{1E63}\x{1E65}\x{1E67}\x{1E69}\x{1E6B}\x{1E6D}\x{1E6F}\x{1E71}\x{1E73}\x{1E75}\x{1E77}\x{1E79}\x{1E7B}\x{1E7D}\x{1E7F}\x{1E81}\x{1E83}\x{1E85}\x{1E87}\x{1E89}\x{1E8B}\x{1E8D}\x{1E8F}\x{1E91}\x{1E93}\x{1E95}-\x{1E9D}\x{1E9F}\x{1EA1}\x{1EA3}\x{1EA5}\x{1EA7}\x{1EA9}\x{1EAB}\x{1EAD}\x{1EAF}\x{1EB1}\x{1EB3}\x{1EB5}\x{1EB7}\x{1EB9}\x{1EBB}\x{1EBD}\x{1EBF}\x{1EC1}\x{1EC3}\x{1EC5}\x{1EC7}\x{1EC9}\x{1ECB}\x{1ECD}\x{1ECF}\x{1ED1}\x{1ED3}\x{1ED5}\x{1ED7}\x{1ED9}\x{1EDB}\x{1EDD}\x{1EDF}\x{1EE1}\x{1EE3}\x{1EE5}\x{1EE7}\x{1EE9}\x{1EEB}\x{1EED}\x{1EEF}\x{1EF1}\x{1EF3}\x{1EF5}\x{1EF7}\x{1EF9}\x{1EFB}\x{1EFD}\x{1EFF}-\x{1F07}\x{1F10}-\x{1F15}\x{1F20}-\x{1F27}\x{1F30}-\x{1F37}\x{1F40}-\x{1F45}\x{1F50}-\x{1F57}\x{1F60}-\x{1F67}\x{1F70}-\x{1F7D}\x{1F80}-\x{1F87}\x{1F90}-\x{1F97}\x{1FA0}-\x{1FA7}\x{1FB0}-\x{1FB4}\x{1FB6}-\x{1FB7}\x{1FBE}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FC7}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FD7}\x{1FE0}-\x{1FE7}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FF7}\x{210A}\x{210E}-\x{210F}\x{2113}\x{212F}\x{2134}\x{2139}\x{213C}-\x{213D}\x{2146}-\x{2149}\x{214E}\x{2184}\x{2C30}-\x{2C5F}\x{2C61}\x{2C65}-\x{2C66}\x{2C68}\x{2C6A}\x{2C6C}\x{2C71}\x{2C73}-\x{2C74}\x{2C76}-\x{2C7B}\x{2C81}\x{2C83}\x{2C85}\x{2C87}\x{2C89}\x{2C8B}\x{2C8D}\x{2C8F}\x{2C91}\x{2C93}\x{2C95}\x{2C97}\x{2C99}\x{2C9B}\x{2C9D}\x{2C9F}\x{2CA1}\x{2CA3}\x{2CA5}\x{2CA7}\x{2CA9}\x{2CAB}\x{2CAD}\x{2CAF}\x{2CB1}\x{2CB3}\x{2CB5}\x{2CB7}\x{2CB9}\x{2CBB}\x{2CBD}\x{2CBF}\x{2CC1}\x{2CC3}\x{2CC5}\x{2CC7}\x{2CC9}\x{2CCB}\x{2CCD}\x{2CCF}\x{2CD1}\x{2CD3}\x{2CD5}\x{2CD7}\x{2CD9}\x{2CDB}\x{2CDD}\x{2CDF}\x{2CE1}\x{2CE3}-\x{2CE4}\x{2CEC}\x{2CEE}\x{2CF3}\x{2D00}-\x{2D25}\x{2D27}\x{2D2D}\x{A641}\x{A643}\x{A645}\x{A647}\x{A649}\x{A64B}\x{A64D}\x{A64F}\x{A651}\x{A653}\x{A655}\x{A657}\x{A659}\x{A65B}\x{A65D}\x{A65F}\x{A661}\x{A663}\x{A665}\x{A667}\x{A669}\x{A66B}\x{A66D}\x{A681}\x{A683}\x{A685}\x{A687}\x{A689}\x{A68B}\x{A68D}\x{A68F}\x{A691}\x{A693}\x{A695}\x{A697}\x{A699}\x{A69B}\x{A723}\x{A725}\x{A727}\x{A729}\x{A72B}\x{A72D}\x{A72F}-\x{A731}\x{A733}\x{A735}\x{A737}\x{A739}\x{A73B}\x{A73D}\x{A73F}\x{A741}\x{A743}\x{A745}\x{A747}\x{A749}\x{A74B}\x{A74D}\x{A74F}\x{A751}\x{A753}\x{A755}\x{A757}\x{A759}\x{A75B}\x{A75D}\x{A75F}\x{A761}\x{A763}\x{A765}\x{A767}\x{A769}\x{A76B}\x{A76D}\x{A76F}\x{A771}-\x{A778}\x{A77A}\x{A77C}\x{A77F}\x{A781}\x{A783}\x{A785}\x{A787}\x{A78C}\x{A78E}\x{A791}\x{A793}-\x{A795}\x{A797}\x{A799}\x{A79B}\x{A79D}\x{A79F}\x{A7A1}\x{A7A3}\x{A7A5}\x{A7A7}\x{A7A9}\x{A7AF}\x{A7B5}\x{A7B7}\x{A7B9}\x{A7BB}\x{A7BD}\x{A7BF}\x{A7C1}\x{A7C3}\x{A7C8}\x{A7CA}\x{A7CD}\x{A7CF}\x{A7D1}\x{A7D3}\x{A7D5}\x{A7D7}\x{A7D9}\x{A7DB}\x{A7F6}\x{A7FA}\x{AB30}-\x{AB5A}\x{AB60}-\x{AB68}\x{AB70}-\x{ABBF}\x{FB00}-\x{FB06}\x{FB13}-\x{FB17}\x{FF41}-\x{FF5A}\x{10428}-\x{1044F}\x{104D8}-\x{104FB}\x{10597}-\x{105A1}\x{105A3}-\x{105B1}\x{105B3}-\x{105B9}\x{105BB}-\x{105BC}\x{10CC0}-\x{10CF2}\x{10D70}-\x{10D85}\x{118C0}-\x{118DF}\x{16E60}-\x{16E7F}\x{16EBB}-\x{16ED3}\x{1D41A}-\x{1D433}\x{1D44E}-\x{1D454}\x{1D456}-\x{1D467}\x{1D482}-\x{1D49B}\x{1D4B6}-\x{1D4B9}\x{1D4BB}\x{1D4BD}-\x{1D4C3}\x{1D4C5}-\x{1D4CF}\x{1D4EA}-\x{1D503}\x{1D51E}-\x{1D537}\x{1D552}-\x{1D56B}\x{1D586}-\x{1D59F}\x{1D5BA}-\x{1D5D3}\x{1D5EE}-\x{1D607}\x{1D622}-\x{1D63B}\x{1D656}-\x{1D66F}\x{1D68A}-\x{1D6A5}\x{1D6C2}-\x{1D6DA}\x{1D6DC}-\x{1D6E1}\x{1D6FC}-\x{1D714}\x{1D716}-\x{1D71B}\x{1D736}-\x{1D74E}\x{1D750}-\x{1D755}\x{1D770}-\x{1D788}\x{1D78A}-\x{1D78F}\x{1D7AA}-\x{1D7C2}\x{1D7C4}-\x{1D7C9}\x{1D7CB}\x{1DF00}-\x{1DF09}\x{1DF0B}-\x{1DF1E}\x{1DF25}-\x{1DF2A}\x{1E922}-\x{1E943}", + ), + // General_Category_-_Mark.js + "combiningmark" | "m" | "mark" => U17Expansion::Delta( + r"\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{10EFA}-\x{10EFB}\x{11B60}-\x{11B67}\x{1E6E3}\x{1E6E6}\x{1E6EE}-\x{1E6EF}\x{1E6F5}", + ), + // General_Category_-_Math_Symbol.js + "mathsymbol" | "sm" => U17Expansion::Delta(r"\x{1CEF0}\x{1F8D0}-\x{1F8D8}"), + // General_Category_-_Modifier_Letter.js + "lm" | "modifierletter" => { + U17Expansion::Delta(r"\x{A7F1}\x{10EC5}\x{11DD9}\x{16FF2}-\x{16FF3}\x{1E6FF}") + } + // General_Category_-_Nonspacing_Mark.js + "mn" | "nonspacingmark" => U17Expansion::Delta( + r"\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{10EFA}-\x{10EFB}\x{11B60}\x{11B62}-\x{11B64}\x{11B66}\x{1E6E3}\x{1E6E6}\x{1E6EE}-\x{1E6EF}\x{1E6F5}", + ), + // General_Category_-_Number.js + "n" | "number" => U17Expansion::Delta(r"\x{11DE0}-\x{11DE9}\x{16FF4}-\x{16FF6}"), + // General_Category_-_Other.js + "c" | "other" => U17Expansion::Full( + r"\x{0}-\x{1F}\x{7F}-\x{9F}\x{AD}\x{378}-\x{379}\x{380}-\x{383}\x{38B}\x{38D}\x{3A2}\x{530}\x{557}-\x{558}\x{58B}-\x{58C}\x{590}\x{5C8}-\x{5CF}\x{5EB}-\x{5EE}\x{5F5}-\x{605}\x{61C}\x{6DD}\x{70E}-\x{70F}\x{74B}-\x{74C}\x{7B2}-\x{7BF}\x{7FB}-\x{7FC}\x{82E}-\x{82F}\x{83F}\x{85C}-\x{85D}\x{85F}\x{86B}-\x{86F}\x{890}-\x{896}\x{8E2}\x{984}\x{98D}-\x{98E}\x{991}-\x{992}\x{9A9}\x{9B1}\x{9B3}-\x{9B5}\x{9BA}-\x{9BB}\x{9C5}-\x{9C6}\x{9C9}-\x{9CA}\x{9CF}-\x{9D6}\x{9D8}-\x{9DB}\x{9DE}\x{9E4}-\x{9E5}\x{9FF}-\x{A00}\x{A04}\x{A0B}-\x{A0E}\x{A11}-\x{A12}\x{A29}\x{A31}\x{A34}\x{A37}\x{A3A}-\x{A3B}\x{A3D}\x{A43}-\x{A46}\x{A49}-\x{A4A}\x{A4E}-\x{A50}\x{A52}-\x{A58}\x{A5D}\x{A5F}-\x{A65}\x{A77}-\x{A80}\x{A84}\x{A8E}\x{A92}\x{AA9}\x{AB1}\x{AB4}\x{ABA}-\x{ABB}\x{AC6}\x{ACA}\x{ACE}-\x{ACF}\x{AD1}-\x{ADF}\x{AE4}-\x{AE5}\x{AF2}-\x{AF8}\x{B00}\x{B04}\x{B0D}-\x{B0E}\x{B11}-\x{B12}\x{B29}\x{B31}\x{B34}\x{B3A}-\x{B3B}\x{B45}-\x{B46}\x{B49}-\x{B4A}\x{B4E}-\x{B54}\x{B58}-\x{B5B}\x{B5E}\x{B64}-\x{B65}\x{B78}-\x{B81}\x{B84}\x{B8B}-\x{B8D}\x{B91}\x{B96}-\x{B98}\x{B9B}\x{B9D}\x{BA0}-\x{BA2}\x{BA5}-\x{BA7}\x{BAB}-\x{BAD}\x{BBA}-\x{BBD}\x{BC3}-\x{BC5}\x{BC9}\x{BCE}-\x{BCF}\x{BD1}-\x{BD6}\x{BD8}-\x{BE5}\x{BFB}-\x{BFF}\x{C0D}\x{C11}\x{C29}\x{C3A}-\x{C3B}\x{C45}\x{C49}\x{C4E}-\x{C54}\x{C57}\x{C5B}\x{C5E}-\x{C5F}\x{C64}-\x{C65}\x{C70}-\x{C76}\x{C8D}\x{C91}\x{CA9}\x{CB4}\x{CBA}-\x{CBB}\x{CC5}\x{CC9}\x{CCE}-\x{CD4}\x{CD7}-\x{CDB}\x{CDF}\x{CE4}-\x{CE5}\x{CF0}\x{CF4}-\x{CFF}\x{D0D}\x{D11}\x{D45}\x{D49}\x{D50}-\x{D53}\x{D64}-\x{D65}\x{D80}\x{D84}\x{D97}-\x{D99}\x{DB2}\x{DBC}\x{DBE}-\x{DBF}\x{DC7}-\x{DC9}\x{DCB}-\x{DCE}\x{DD5}\x{DD7}\x{DE0}-\x{DE5}\x{DF0}-\x{DF1}\x{DF5}-\x{E00}\x{E3B}-\x{E3E}\x{E5C}-\x{E80}\x{E83}\x{E85}\x{E8B}\x{EA4}\x{EA6}\x{EBE}-\x{EBF}\x{EC5}\x{EC7}\x{ECF}\x{EDA}-\x{EDB}\x{EE0}-\x{EFF}\x{F48}\x{F6D}-\x{F70}\x{F98}\x{FBD}\x{FCD}\x{FDB}-\x{FFF}\x{10C6}\x{10C8}-\x{10CC}\x{10CE}-\x{10CF}\x{1249}\x{124E}-\x{124F}\x{1257}\x{1259}\x{125E}-\x{125F}\x{1289}\x{128E}-\x{128F}\x{12B1}\x{12B6}-\x{12B7}\x{12BF}\x{12C1}\x{12C6}-\x{12C7}\x{12D7}\x{1311}\x{1316}-\x{1317}\x{135B}-\x{135C}\x{137D}-\x{137F}\x{139A}-\x{139F}\x{13F6}-\x{13F7}\x{13FE}-\x{13FF}\x{169D}-\x{169F}\x{16F9}-\x{16FF}\x{1716}-\x{171E}\x{1737}-\x{173F}\x{1754}-\x{175F}\x{176D}\x{1771}\x{1774}-\x{177F}\x{17DE}-\x{17DF}\x{17EA}-\x{17EF}\x{17FA}-\x{17FF}\x{180E}\x{181A}-\x{181F}\x{1879}-\x{187F}\x{18AB}-\x{18AF}\x{18F6}-\x{18FF}\x{191F}\x{192C}-\x{192F}\x{193C}-\x{193F}\x{1941}-\x{1943}\x{196E}-\x{196F}\x{1975}-\x{197F}\x{19AC}-\x{19AF}\x{19CA}-\x{19CF}\x{19DB}-\x{19DD}\x{1A1C}-\x{1A1D}\x{1A5F}\x{1A7D}-\x{1A7E}\x{1A8A}-\x{1A8F}\x{1A9A}-\x{1A9F}\x{1AAE}-\x{1AAF}\x{1ADE}-\x{1ADF}\x{1AEC}-\x{1AFF}\x{1B4D}\x{1BF4}-\x{1BFB}\x{1C38}-\x{1C3A}\x{1C4A}-\x{1C4C}\x{1C8B}-\x{1C8F}\x{1CBB}-\x{1CBC}\x{1CC8}-\x{1CCF}\x{1CFB}-\x{1CFF}\x{1F16}-\x{1F17}\x{1F1E}-\x{1F1F}\x{1F46}-\x{1F47}\x{1F4E}-\x{1F4F}\x{1F58}\x{1F5A}\x{1F5C}\x{1F5E}\x{1F7E}-\x{1F7F}\x{1FB5}\x{1FC5}\x{1FD4}-\x{1FD5}\x{1FDC}\x{1FF0}-\x{1FF1}\x{1FF5}\x{1FFF}\x{200B}-\x{200F}\x{202A}-\x{202E}\x{2060}-\x{206F}\x{2072}-\x{2073}\x{208F}\x{209D}-\x{209F}\x{20C2}-\x{20CF}\x{20F1}-\x{20FF}\x{218C}-\x{218F}\x{242A}-\x{243F}\x{244B}-\x{245F}\x{2B74}-\x{2B75}\x{2CF4}-\x{2CF8}\x{2D26}\x{2D28}-\x{2D2C}\x{2D2E}-\x{2D2F}\x{2D68}-\x{2D6E}\x{2D71}-\x{2D7E}\x{2D97}-\x{2D9F}\x{2DA7}\x{2DAF}\x{2DB7}\x{2DBF}\x{2DC7}\x{2DCF}\x{2DD7}\x{2DDF}\x{2E5E}-\x{2E7F}\x{2E9A}\x{2EF4}-\x{2EFF}\x{2FD6}-\x{2FEF}\x{3040}\x{3097}-\x{3098}\x{3100}-\x{3104}\x{3130}\x{318F}\x{31E6}-\x{31EE}\x{321F}\x{A48D}-\x{A48F}\x{A4C7}-\x{A4CF}\x{A62C}-\x{A63F}\x{A6F8}-\x{A6FF}\x{A7DD}-\x{A7F0}\x{A82D}-\x{A82F}\x{A83A}-\x{A83F}\x{A878}-\x{A87F}\x{A8C6}-\x{A8CD}\x{A8DA}-\x{A8DF}\x{A954}-\x{A95E}\x{A97D}-\x{A97F}\x{A9CE}\x{A9DA}-\x{A9DD}\x{A9FF}\x{AA37}-\x{AA3F}\x{AA4E}-\x{AA4F}\x{AA5A}-\x{AA5B}\x{AAC3}-\x{AADA}\x{AAF7}-\x{AB00}\x{AB07}-\x{AB08}\x{AB0F}-\x{AB10}\x{AB17}-\x{AB1F}\x{AB27}\x{AB2F}\x{AB6C}-\x{AB6F}\x{ABEE}-\x{ABEF}\x{ABFA}-\x{ABFF}\x{D7A4}-\x{D7AF}\x{D7C7}-\x{D7CA}\x{D7FC}-\x{F8FF}\x{FA6E}-\x{FA6F}\x{FADA}-\x{FAFF}\x{FB07}-\x{FB12}\x{FB18}-\x{FB1C}\x{FB37}\x{FB3D}\x{FB3F}\x{FB42}\x{FB45}\x{FDD0}-\x{FDEF}\x{FE1A}-\x{FE1F}\x{FE53}\x{FE67}\x{FE6C}-\x{FE6F}\x{FE75}\x{FEFD}-\x{FF00}\x{FFBF}-\x{FFC1}\x{FFC8}-\x{FFC9}\x{FFD0}-\x{FFD1}\x{FFD8}-\x{FFD9}\x{FFDD}-\x{FFDF}\x{FFE7}\x{FFEF}-\x{FFFB}\x{FFFE}-\x{FFFF}\x{1000C}\x{10027}\x{1003B}\x{1003E}\x{1004E}-\x{1004F}\x{1005E}-\x{1007F}\x{100FB}-\x{100FF}\x{10103}-\x{10106}\x{10134}-\x{10136}\x{1018F}\x{1019D}-\x{1019F}\x{101A1}-\x{101CF}\x{101FE}-\x{1027F}\x{1029D}-\x{1029F}\x{102D1}-\x{102DF}\x{102FC}-\x{102FF}\x{10324}-\x{1032C}\x{1034B}-\x{1034F}\x{1037B}-\x{1037F}\x{1039E}\x{103C4}-\x{103C7}\x{103D6}-\x{103FF}\x{1049E}-\x{1049F}\x{104AA}-\x{104AF}\x{104D4}-\x{104D7}\x{104FC}-\x{104FF}\x{10528}-\x{1052F}\x{10564}-\x{1056E}\x{1057B}\x{1058B}\x{10593}\x{10596}\x{105A2}\x{105B2}\x{105BA}\x{105BD}-\x{105BF}\x{105F4}-\x{105FF}\x{10737}-\x{1073F}\x{10756}-\x{1075F}\x{10768}-\x{1077F}\x{10786}\x{107B1}\x{107BB}-\x{107FF}\x{10806}-\x{10807}\x{10809}\x{10836}\x{10839}-\x{1083B}\x{1083D}-\x{1083E}\x{10856}\x{1089F}-\x{108A6}\x{108B0}-\x{108DF}\x{108F3}\x{108F6}-\x{108FA}\x{1091C}-\x{1091E}\x{1093A}-\x{1093E}\x{1095A}-\x{1097F}\x{109B8}-\x{109BB}\x{109D0}-\x{109D1}\x{10A04}\x{10A07}-\x{10A0B}\x{10A14}\x{10A18}\x{10A36}-\x{10A37}\x{10A3B}-\x{10A3E}\x{10A49}-\x{10A4F}\x{10A59}-\x{10A5F}\x{10AA0}-\x{10ABF}\x{10AE7}-\x{10AEA}\x{10AF7}-\x{10AFF}\x{10B36}-\x{10B38}\x{10B56}-\x{10B57}\x{10B73}-\x{10B77}\x{10B92}-\x{10B98}\x{10B9D}-\x{10BA8}\x{10BB0}-\x{10BFF}\x{10C49}-\x{10C7F}\x{10CB3}-\x{10CBF}\x{10CF3}-\x{10CF9}\x{10D28}-\x{10D2F}\x{10D3A}-\x{10D3F}\x{10D66}-\x{10D68}\x{10D86}-\x{10D8D}\x{10D90}-\x{10E5F}\x{10E7F}\x{10EAA}\x{10EAE}-\x{10EAF}\x{10EB2}-\x{10EC1}\x{10EC8}-\x{10ECF}\x{10ED9}-\x{10EF9}\x{10F28}-\x{10F2F}\x{10F5A}-\x{10F6F}\x{10F8A}-\x{10FAF}\x{10FCC}-\x{10FDF}\x{10FF7}-\x{10FFF}\x{1104E}-\x{11051}\x{11076}-\x{1107E}\x{110BD}\x{110C3}-\x{110CF}\x{110E9}-\x{110EF}\x{110FA}-\x{110FF}\x{11135}\x{11148}-\x{1114F}\x{11177}-\x{1117F}\x{111E0}\x{111F5}-\x{111FF}\x{11212}\x{11242}-\x{1127F}\x{11287}\x{11289}\x{1128E}\x{1129E}\x{112AA}-\x{112AF}\x{112EB}-\x{112EF}\x{112FA}-\x{112FF}\x{11304}\x{1130D}-\x{1130E}\x{11311}-\x{11312}\x{11329}\x{11331}\x{11334}\x{1133A}\x{11345}-\x{11346}\x{11349}-\x{1134A}\x{1134E}-\x{1134F}\x{11351}-\x{11356}\x{11358}-\x{1135C}\x{11364}-\x{11365}\x{1136D}-\x{1136F}\x{11375}-\x{1137F}\x{1138A}\x{1138C}-\x{1138D}\x{1138F}\x{113B6}\x{113C1}\x{113C3}-\x{113C4}\x{113C6}\x{113CB}\x{113D6}\x{113D9}-\x{113E0}\x{113E3}-\x{113FF}\x{1145C}\x{11462}-\x{1147F}\x{114C8}-\x{114CF}\x{114DA}-\x{1157F}\x{115B6}-\x{115B7}\x{115DE}-\x{115FF}\x{11645}-\x{1164F}\x{1165A}-\x{1165F}\x{1166D}-\x{1167F}\x{116BA}-\x{116BF}\x{116CA}-\x{116CF}\x{116E4}-\x{116FF}\x{1171B}-\x{1171C}\x{1172C}-\x{1172F}\x{11747}-\x{117FF}\x{1183C}-\x{1189F}\x{118F3}-\x{118FE}\x{11907}-\x{11908}\x{1190A}-\x{1190B}\x{11914}\x{11917}\x{11936}\x{11939}-\x{1193A}\x{11947}-\x{1194F}\x{1195A}-\x{1199F}\x{119A8}-\x{119A9}\x{119D8}-\x{119D9}\x{119E5}-\x{119FF}\x{11A48}-\x{11A4F}\x{11AA3}-\x{11AAF}\x{11AF9}-\x{11AFF}\x{11B0A}-\x{11B5F}\x{11B68}-\x{11BBF}\x{11BE2}-\x{11BEF}\x{11BFA}-\x{11BFF}\x{11C09}\x{11C37}\x{11C46}-\x{11C4F}\x{11C6D}-\x{11C6F}\x{11C90}-\x{11C91}\x{11CA8}\x{11CB7}-\x{11CFF}\x{11D07}\x{11D0A}\x{11D37}-\x{11D39}\x{11D3B}\x{11D3E}\x{11D48}-\x{11D4F}\x{11D5A}-\x{11D5F}\x{11D66}\x{11D69}\x{11D8F}\x{11D92}\x{11D99}-\x{11D9F}\x{11DAA}-\x{11DAF}\x{11DDC}-\x{11DDF}\x{11DEA}-\x{11EDF}\x{11EF9}-\x{11EFF}\x{11F11}\x{11F3B}-\x{11F3D}\x{11F5B}-\x{11FAF}\x{11FB1}-\x{11FBF}\x{11FF2}-\x{11FFE}\x{1239A}-\x{123FF}\x{1246F}\x{12475}-\x{1247F}\x{12544}-\x{12F8F}\x{12FF3}-\x{12FFF}\x{13430}-\x{1343F}\x{13456}-\x{1345F}\x{143FB}-\x{143FF}\x{14647}-\x{160FF}\x{1613A}-\x{167FF}\x{16A39}-\x{16A3F}\x{16A5F}\x{16A6A}-\x{16A6D}\x{16ABF}\x{16ACA}-\x{16ACF}\x{16AEE}-\x{16AEF}\x{16AF6}-\x{16AFF}\x{16B46}-\x{16B4F}\x{16B5A}\x{16B62}\x{16B78}-\x{16B7C}\x{16B90}-\x{16D3F}\x{16D7A}-\x{16E3F}\x{16E9B}-\x{16E9F}\x{16EB9}-\x{16EBA}\x{16ED4}-\x{16EFF}\x{16F4B}-\x{16F4E}\x{16F88}-\x{16F8E}\x{16FA0}-\x{16FDF}\x{16FE5}-\x{16FEF}\x{16FF7}-\x{16FFF}\x{18CD6}-\x{18CFE}\x{18D1F}-\x{18D7F}\x{18DF3}-\x{1AFEF}\x{1AFF4}\x{1AFFC}\x{1AFFF}\x{1B123}-\x{1B131}\x{1B133}-\x{1B14F}\x{1B153}-\x{1B154}\x{1B156}-\x{1B163}\x{1B168}-\x{1B16F}\x{1B2FC}-\x{1BBFF}\x{1BC6B}-\x{1BC6F}\x{1BC7D}-\x{1BC7F}\x{1BC89}-\x{1BC8F}\x{1BC9A}-\x{1BC9B}\x{1BCA0}-\x{1CBFF}\x{1CCFD}-\x{1CCFF}\x{1CEB4}-\x{1CEB9}\x{1CED1}-\x{1CEDF}\x{1CEF1}-\x{1CEFF}\x{1CF2E}-\x{1CF2F}\x{1CF47}-\x{1CF4F}\x{1CFC4}-\x{1CFFF}\x{1D0F6}-\x{1D0FF}\x{1D127}-\x{1D128}\x{1D173}-\x{1D17A}\x{1D1EB}-\x{1D1FF}\x{1D246}-\x{1D2BF}\x{1D2D4}-\x{1D2DF}\x{1D2F4}-\x{1D2FF}\x{1D357}-\x{1D35F}\x{1D379}-\x{1D3FF}\x{1D455}\x{1D49D}\x{1D4A0}-\x{1D4A1}\x{1D4A3}-\x{1D4A4}\x{1D4A7}-\x{1D4A8}\x{1D4AD}\x{1D4BA}\x{1D4BC}\x{1D4C4}\x{1D506}\x{1D50B}-\x{1D50C}\x{1D515}\x{1D51D}\x{1D53A}\x{1D53F}\x{1D545}\x{1D547}-\x{1D549}\x{1D551}\x{1D6A6}-\x{1D6A7}\x{1D7CC}-\x{1D7CD}\x{1DA8C}-\x{1DA9A}\x{1DAA0}\x{1DAB0}-\x{1DEFF}\x{1DF1F}-\x{1DF24}\x{1DF2B}-\x{1DFFF}\x{1E007}\x{1E019}-\x{1E01A}\x{1E022}\x{1E025}\x{1E02B}-\x{1E02F}\x{1E06E}-\x{1E08E}\x{1E090}-\x{1E0FF}\x{1E12D}-\x{1E12F}\x{1E13E}-\x{1E13F}\x{1E14A}-\x{1E14D}\x{1E150}-\x{1E28F}\x{1E2AF}-\x{1E2BF}\x{1E2FA}-\x{1E2FE}\x{1E300}-\x{1E4CF}\x{1E4FA}-\x{1E5CF}\x{1E5FB}-\x{1E5FE}\x{1E600}-\x{1E6BF}\x{1E6DF}\x{1E6F6}-\x{1E6FD}\x{1E700}-\x{1E7DF}\x{1E7E7}\x{1E7EC}\x{1E7EF}\x{1E7FF}\x{1E8C5}-\x{1E8C6}\x{1E8D7}-\x{1E8FF}\x{1E94C}-\x{1E94F}\x{1E95A}-\x{1E95D}\x{1E960}-\x{1EC70}\x{1ECB5}-\x{1ED00}\x{1ED3E}-\x{1EDFF}\x{1EE04}\x{1EE20}\x{1EE23}\x{1EE25}-\x{1EE26}\x{1EE28}\x{1EE33}\x{1EE38}\x{1EE3A}\x{1EE3C}-\x{1EE41}\x{1EE43}-\x{1EE46}\x{1EE48}\x{1EE4A}\x{1EE4C}\x{1EE50}\x{1EE53}\x{1EE55}-\x{1EE56}\x{1EE58}\x{1EE5A}\x{1EE5C}\x{1EE5E}\x{1EE60}\x{1EE63}\x{1EE65}-\x{1EE66}\x{1EE6B}\x{1EE73}\x{1EE78}\x{1EE7D}\x{1EE7F}\x{1EE8A}\x{1EE9C}-\x{1EEA0}\x{1EEA4}\x{1EEAA}\x{1EEBC}-\x{1EEEF}\x{1EEF2}-\x{1EFFF}\x{1F02C}-\x{1F02F}\x{1F094}-\x{1F09F}\x{1F0AF}-\x{1F0B0}\x{1F0C0}\x{1F0D0}\x{1F0F6}-\x{1F0FF}\x{1F1AE}-\x{1F1E5}\x{1F203}-\x{1F20F}\x{1F23C}-\x{1F23F}\x{1F249}-\x{1F24F}\x{1F252}-\x{1F25F}\x{1F266}-\x{1F2FF}\x{1F6D9}-\x{1F6DB}\x{1F6ED}-\x{1F6EF}\x{1F6FD}-\x{1F6FF}\x{1F7DA}-\x{1F7DF}\x{1F7EC}-\x{1F7EF}\x{1F7F1}-\x{1F7FF}\x{1F80C}-\x{1F80F}\x{1F848}-\x{1F84F}\x{1F85A}-\x{1F85F}\x{1F888}-\x{1F88F}\x{1F8AE}-\x{1F8AF}\x{1F8BC}-\x{1F8BF}\x{1F8C2}-\x{1F8CF}\x{1F8D9}-\x{1F8FF}\x{1FA58}-\x{1FA5F}\x{1FA6E}-\x{1FA6F}\x{1FA7D}-\x{1FA7F}\x{1FA8B}-\x{1FA8D}\x{1FAC7}\x{1FAC9}-\x{1FACC}\x{1FADD}-\x{1FADE}\x{1FAEB}-\x{1FAEE}\x{1FAF9}-\x{1FAFF}\x{1FB93}\x{1FBFB}-\x{1FFFF}\x{2A6E0}-\x{2A6FF}\x{2B81E}-\x{2B81F}\x{2CEAE}-\x{2CEAF}\x{2EBE1}-\x{2EBEF}\x{2EE5E}-\x{2F7FF}\x{2FA1E}-\x{2FFFF}\x{3134B}-\x{3134F}\x{3347A}-\x{E00FF}\x{E01F0}-\x{10FFFF}", + ), + // General_Category_-_Other_Letter.js + "lo" | "otherletter" => U17Expansion::Delta( + r"\x{295}\x{88F}\x{C5C}\x{CDC}\x{10940}-\x{10959}\x{10EC6}-\x{10EC7}\x{11DB0}-\x{11DD8}\x{11DDA}-\x{11DDB}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6E2}\x{1E6E4}-\x{1E6E5}\x{1E6E7}-\x{1E6ED}\x{1E6F0}-\x{1E6F4}\x{1E6FE}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // General_Category_-_Other_Punctuation.js + "otherpunctuation" | "po" => U17Expansion::Delta(r"\x{10ED0}"), + // General_Category_-_Other_Symbol.js + "othersymbol" | "so" => U17Expansion::Delta( + r"\x{2B96}\x{FBC3}-\x{FBD2}\x{FD90}-\x{FD91}\x{FDC8}-\x{FDCE}\x{10ED1}-\x{10ED8}\x{1CCFA}-\x{1CCFC}\x{1CEBA}-\x{1CED0}\x{1CEE0}-\x{1CEEF}\x{1F6D8}\x{1F777}-\x{1F77A}\x{1FA54}-\x{1FA57}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}\x{1FBFA}", + ), + // General_Category_-_Punctuation.js + "p" | "punct" | "punctuation" => U17Expansion::Delta(r"\x{10ED0}"), + // General_Category_-_Spacing_Mark.js + "mc" | "spacingmark" => U17Expansion::Delta(r"\x{11B61}\x{11B65}\x{11B67}"), + // General_Category_-_Symbol.js + "s" | "symbol" => U17Expansion::Delta( + r"\x{20C1}\x{2B96}\x{FBC3}-\x{FBD2}\x{FD90}-\x{FD91}\x{FDC8}-\x{FDCE}\x{10ED1}-\x{10ED8}\x{1CCFA}-\x{1CCFC}\x{1CEBA}-\x{1CED0}\x{1CEE0}-\x{1CEF0}\x{1F6D8}\x{1F777}-\x{1F77A}\x{1F8D0}-\x{1F8D8}\x{1FA54}-\x{1FA57}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}\x{1FBFA}", + ), + // General_Category_-_Uppercase_Letter.js + "lu" | "uppercaseletter" => { + U17Expansion::Delta(r"\x{A7CE}\x{A7D2}\x{A7D4}\x{16EA0}-\x{16EB8}") + } + // Grapheme_Base.js + "graphemebase" | "grbase" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{20C1}\x{2B96}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{FBC3}-\x{FBD2}\x{FD90}-\x{FD91}\x{FDC8}-\x{FDCE}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{10ED0}-\x{10ED8}\x{11B61}\x{11B65}\x{11B67}\x{11DB0}-\x{11DDB}\x{11DE0}-\x{11DE9}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1CCFA}-\x{1CCFC}\x{1CEBA}-\x{1CED0}\x{1CEE0}-\x{1CEF0}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6E2}\x{1E6E4}-\x{1E6E5}\x{1E6E7}-\x{1E6ED}\x{1E6F0}-\x{1E6F4}\x{1E6FE}-\x{1E6FF}\x{1F6D8}\x{1F777}-\x{1F77A}\x{1F8D0}-\x{1F8D8}\x{1FA54}-\x{1FA57}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}\x{1FBFA}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // Grapheme_Extend.js + "graphemeextend" | "grext" => U17Expansion::Delta( + r"\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{10EFA}-\x{10EFB}\x{11B60}\x{11B62}-\x{11B64}\x{11B66}\x{1E6E3}\x{1E6E6}\x{1E6EE}-\x{1E6EF}\x{1E6F5}", + ), + // ID_Continue.js + "idc" | "idcontinue" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{10EFA}-\x{10EFB}\x{11B60}-\x{11B67}\x{11DB0}-\x{11DDB}\x{11DE0}-\x{11DE9}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6F5}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // ID_Start.js + "ids" | "idstart" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{11DB0}-\x{11DDB}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6E2}\x{1E6E4}-\x{1E6E5}\x{1E6E7}-\x{1E6ED}\x{1E6F0}-\x{1E6F4}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // Ideographic.js + "ideo" | "ideographic" => U17Expansion::Delta( + r"\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // Lowercase.js + "lower" | "lowercase" => U17Expansion::Full( + r"\x{61}-\x{7A}\x{AA}\x{B5}\x{BA}\x{DF}-\x{F6}\x{F8}-\x{FF}\x{101}\x{103}\x{105}\x{107}\x{109}\x{10B}\x{10D}\x{10F}\x{111}\x{113}\x{115}\x{117}\x{119}\x{11B}\x{11D}\x{11F}\x{121}\x{123}\x{125}\x{127}\x{129}\x{12B}\x{12D}\x{12F}\x{131}\x{133}\x{135}\x{137}-\x{138}\x{13A}\x{13C}\x{13E}\x{140}\x{142}\x{144}\x{146}\x{148}-\x{149}\x{14B}\x{14D}\x{14F}\x{151}\x{153}\x{155}\x{157}\x{159}\x{15B}\x{15D}\x{15F}\x{161}\x{163}\x{165}\x{167}\x{169}\x{16B}\x{16D}\x{16F}\x{171}\x{173}\x{175}\x{177}\x{17A}\x{17C}\x{17E}-\x{180}\x{183}\x{185}\x{188}\x{18C}-\x{18D}\x{192}\x{195}\x{199}-\x{19B}\x{19E}\x{1A1}\x{1A3}\x{1A5}\x{1A8}\x{1AA}-\x{1AB}\x{1AD}\x{1B0}\x{1B4}\x{1B6}\x{1B9}-\x{1BA}\x{1BD}-\x{1BF}\x{1C6}\x{1C9}\x{1CC}\x{1CE}\x{1D0}\x{1D2}\x{1D4}\x{1D6}\x{1D8}\x{1DA}\x{1DC}-\x{1DD}\x{1DF}\x{1E1}\x{1E3}\x{1E5}\x{1E7}\x{1E9}\x{1EB}\x{1ED}\x{1EF}-\x{1F0}\x{1F3}\x{1F5}\x{1F9}\x{1FB}\x{1FD}\x{1FF}\x{201}\x{203}\x{205}\x{207}\x{209}\x{20B}\x{20D}\x{20F}\x{211}\x{213}\x{215}\x{217}\x{219}\x{21B}\x{21D}\x{21F}\x{221}\x{223}\x{225}\x{227}\x{229}\x{22B}\x{22D}\x{22F}\x{231}\x{233}-\x{239}\x{23C}\x{23F}-\x{240}\x{242}\x{247}\x{249}\x{24B}\x{24D}\x{24F}-\x{293}\x{296}-\x{2B8}\x{2C0}-\x{2C1}\x{2E0}-\x{2E4}\x{345}\x{371}\x{373}\x{377}\x{37A}-\x{37D}\x{390}\x{3AC}-\x{3CE}\x{3D0}-\x{3D1}\x{3D5}-\x{3D7}\x{3D9}\x{3DB}\x{3DD}\x{3DF}\x{3E1}\x{3E3}\x{3E5}\x{3E7}\x{3E9}\x{3EB}\x{3ED}\x{3EF}-\x{3F3}\x{3F5}\x{3F8}\x{3FB}-\x{3FC}\x{430}-\x{45F}\x{461}\x{463}\x{465}\x{467}\x{469}\x{46B}\x{46D}\x{46F}\x{471}\x{473}\x{475}\x{477}\x{479}\x{47B}\x{47D}\x{47F}\x{481}\x{48B}\x{48D}\x{48F}\x{491}\x{493}\x{495}\x{497}\x{499}\x{49B}\x{49D}\x{49F}\x{4A1}\x{4A3}\x{4A5}\x{4A7}\x{4A9}\x{4AB}\x{4AD}\x{4AF}\x{4B1}\x{4B3}\x{4B5}\x{4B7}\x{4B9}\x{4BB}\x{4BD}\x{4BF}\x{4C2}\x{4C4}\x{4C6}\x{4C8}\x{4CA}\x{4CC}\x{4CE}-\x{4CF}\x{4D1}\x{4D3}\x{4D5}\x{4D7}\x{4D9}\x{4DB}\x{4DD}\x{4DF}\x{4E1}\x{4E3}\x{4E5}\x{4E7}\x{4E9}\x{4EB}\x{4ED}\x{4EF}\x{4F1}\x{4F3}\x{4F5}\x{4F7}\x{4F9}\x{4FB}\x{4FD}\x{4FF}\x{501}\x{503}\x{505}\x{507}\x{509}\x{50B}\x{50D}\x{50F}\x{511}\x{513}\x{515}\x{517}\x{519}\x{51B}\x{51D}\x{51F}\x{521}\x{523}\x{525}\x{527}\x{529}\x{52B}\x{52D}\x{52F}\x{560}-\x{588}\x{10D0}-\x{10FA}\x{10FC}-\x{10FF}\x{13F8}-\x{13FD}\x{1C80}-\x{1C88}\x{1C8A}\x{1D00}-\x{1DBF}\x{1E01}\x{1E03}\x{1E05}\x{1E07}\x{1E09}\x{1E0B}\x{1E0D}\x{1E0F}\x{1E11}\x{1E13}\x{1E15}\x{1E17}\x{1E19}\x{1E1B}\x{1E1D}\x{1E1F}\x{1E21}\x{1E23}\x{1E25}\x{1E27}\x{1E29}\x{1E2B}\x{1E2D}\x{1E2F}\x{1E31}\x{1E33}\x{1E35}\x{1E37}\x{1E39}\x{1E3B}\x{1E3D}\x{1E3F}\x{1E41}\x{1E43}\x{1E45}\x{1E47}\x{1E49}\x{1E4B}\x{1E4D}\x{1E4F}\x{1E51}\x{1E53}\x{1E55}\x{1E57}\x{1E59}\x{1E5B}\x{1E5D}\x{1E5F}\x{1E61}\x{1E63}\x{1E65}\x{1E67}\x{1E69}\x{1E6B}\x{1E6D}\x{1E6F}\x{1E71}\x{1E73}\x{1E75}\x{1E77}\x{1E79}\x{1E7B}\x{1E7D}\x{1E7F}\x{1E81}\x{1E83}\x{1E85}\x{1E87}\x{1E89}\x{1E8B}\x{1E8D}\x{1E8F}\x{1E91}\x{1E93}\x{1E95}-\x{1E9D}\x{1E9F}\x{1EA1}\x{1EA3}\x{1EA5}\x{1EA7}\x{1EA9}\x{1EAB}\x{1EAD}\x{1EAF}\x{1EB1}\x{1EB3}\x{1EB5}\x{1EB7}\x{1EB9}\x{1EBB}\x{1EBD}\x{1EBF}\x{1EC1}\x{1EC3}\x{1EC5}\x{1EC7}\x{1EC9}\x{1ECB}\x{1ECD}\x{1ECF}\x{1ED1}\x{1ED3}\x{1ED5}\x{1ED7}\x{1ED9}\x{1EDB}\x{1EDD}\x{1EDF}\x{1EE1}\x{1EE3}\x{1EE5}\x{1EE7}\x{1EE9}\x{1EEB}\x{1EED}\x{1EEF}\x{1EF1}\x{1EF3}\x{1EF5}\x{1EF7}\x{1EF9}\x{1EFB}\x{1EFD}\x{1EFF}-\x{1F07}\x{1F10}-\x{1F15}\x{1F20}-\x{1F27}\x{1F30}-\x{1F37}\x{1F40}-\x{1F45}\x{1F50}-\x{1F57}\x{1F60}-\x{1F67}\x{1F70}-\x{1F7D}\x{1F80}-\x{1F87}\x{1F90}-\x{1F97}\x{1FA0}-\x{1FA7}\x{1FB0}-\x{1FB4}\x{1FB6}-\x{1FB7}\x{1FBE}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FC7}\x{1FD0}-\x{1FD3}\x{1FD6}-\x{1FD7}\x{1FE0}-\x{1FE7}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FF7}\x{2071}\x{207F}\x{2090}-\x{209C}\x{210A}\x{210E}-\x{210F}\x{2113}\x{212F}\x{2134}\x{2139}\x{213C}-\x{213D}\x{2146}-\x{2149}\x{214E}\x{2170}-\x{217F}\x{2184}\x{24D0}-\x{24E9}\x{2C30}-\x{2C5F}\x{2C61}\x{2C65}-\x{2C66}\x{2C68}\x{2C6A}\x{2C6C}\x{2C71}\x{2C73}-\x{2C74}\x{2C76}-\x{2C7D}\x{2C81}\x{2C83}\x{2C85}\x{2C87}\x{2C89}\x{2C8B}\x{2C8D}\x{2C8F}\x{2C91}\x{2C93}\x{2C95}\x{2C97}\x{2C99}\x{2C9B}\x{2C9D}\x{2C9F}\x{2CA1}\x{2CA3}\x{2CA5}\x{2CA7}\x{2CA9}\x{2CAB}\x{2CAD}\x{2CAF}\x{2CB1}\x{2CB3}\x{2CB5}\x{2CB7}\x{2CB9}\x{2CBB}\x{2CBD}\x{2CBF}\x{2CC1}\x{2CC3}\x{2CC5}\x{2CC7}\x{2CC9}\x{2CCB}\x{2CCD}\x{2CCF}\x{2CD1}\x{2CD3}\x{2CD5}\x{2CD7}\x{2CD9}\x{2CDB}\x{2CDD}\x{2CDF}\x{2CE1}\x{2CE3}-\x{2CE4}\x{2CEC}\x{2CEE}\x{2CF3}\x{2D00}-\x{2D25}\x{2D27}\x{2D2D}\x{A641}\x{A643}\x{A645}\x{A647}\x{A649}\x{A64B}\x{A64D}\x{A64F}\x{A651}\x{A653}\x{A655}\x{A657}\x{A659}\x{A65B}\x{A65D}\x{A65F}\x{A661}\x{A663}\x{A665}\x{A667}\x{A669}\x{A66B}\x{A66D}\x{A681}\x{A683}\x{A685}\x{A687}\x{A689}\x{A68B}\x{A68D}\x{A68F}\x{A691}\x{A693}\x{A695}\x{A697}\x{A699}\x{A69B}-\x{A69D}\x{A723}\x{A725}\x{A727}\x{A729}\x{A72B}\x{A72D}\x{A72F}-\x{A731}\x{A733}\x{A735}\x{A737}\x{A739}\x{A73B}\x{A73D}\x{A73F}\x{A741}\x{A743}\x{A745}\x{A747}\x{A749}\x{A74B}\x{A74D}\x{A74F}\x{A751}\x{A753}\x{A755}\x{A757}\x{A759}\x{A75B}\x{A75D}\x{A75F}\x{A761}\x{A763}\x{A765}\x{A767}\x{A769}\x{A76B}\x{A76D}\x{A76F}-\x{A778}\x{A77A}\x{A77C}\x{A77F}\x{A781}\x{A783}\x{A785}\x{A787}\x{A78C}\x{A78E}\x{A791}\x{A793}-\x{A795}\x{A797}\x{A799}\x{A79B}\x{A79D}\x{A79F}\x{A7A1}\x{A7A3}\x{A7A5}\x{A7A7}\x{A7A9}\x{A7AF}\x{A7B5}\x{A7B7}\x{A7B9}\x{A7BB}\x{A7BD}\x{A7BF}\x{A7C1}\x{A7C3}\x{A7C8}\x{A7CA}\x{A7CD}\x{A7CF}\x{A7D1}\x{A7D3}\x{A7D5}\x{A7D7}\x{A7D9}\x{A7DB}\x{A7F1}-\x{A7F4}\x{A7F6}\x{A7F8}-\x{A7FA}\x{AB30}-\x{AB5A}\x{AB5C}-\x{AB69}\x{AB70}-\x{ABBF}\x{FB00}-\x{FB06}\x{FB13}-\x{FB17}\x{FF41}-\x{FF5A}\x{10428}-\x{1044F}\x{104D8}-\x{104FB}\x{10597}-\x{105A1}\x{105A3}-\x{105B1}\x{105B3}-\x{105B9}\x{105BB}-\x{105BC}\x{10780}\x{10783}-\x{10785}\x{10787}-\x{107B0}\x{107B2}-\x{107BA}\x{10CC0}-\x{10CF2}\x{10D70}-\x{10D85}\x{118C0}-\x{118DF}\x{16E60}-\x{16E7F}\x{16EBB}-\x{16ED3}\x{1D41A}-\x{1D433}\x{1D44E}-\x{1D454}\x{1D456}-\x{1D467}\x{1D482}-\x{1D49B}\x{1D4B6}-\x{1D4B9}\x{1D4BB}\x{1D4BD}-\x{1D4C3}\x{1D4C5}-\x{1D4CF}\x{1D4EA}-\x{1D503}\x{1D51E}-\x{1D537}\x{1D552}-\x{1D56B}\x{1D586}-\x{1D59F}\x{1D5BA}-\x{1D5D3}\x{1D5EE}-\x{1D607}\x{1D622}-\x{1D63B}\x{1D656}-\x{1D66F}\x{1D68A}-\x{1D6A5}\x{1D6C2}-\x{1D6DA}\x{1D6DC}-\x{1D6E1}\x{1D6FC}-\x{1D714}\x{1D716}-\x{1D71B}\x{1D736}-\x{1D74E}\x{1D750}-\x{1D755}\x{1D770}-\x{1D788}\x{1D78A}-\x{1D78F}\x{1D7AA}-\x{1D7C2}\x{1D7C4}-\x{1D7C9}\x{1D7CB}\x{1DF00}-\x{1DF09}\x{1DF0B}-\x{1DF1E}\x{1DF25}-\x{1DF2A}\x{1E030}-\x{1E06D}\x{1E922}-\x{1E943}", + ), + // Math.js + "math" => U17Expansion::Delta(r"\x{1CEF0}\x{1F8D0}-\x{1F8D8}"), + // Script_-_Arabic.js + "sc=arab" | "sc=arabic" | "script=arab" | "script=arabic" => U17Expansion::Delta( + r"\x{88F}\x{FBC3}-\x{FBD2}\x{FD90}-\x{FD91}\x{FDC8}-\x{FDCE}\x{10EC5}-\x{10EC7}\x{10ED0}-\x{10ED8}\x{10EFA}-\x{10EFB}", + ), + // Script_-_Common.js + "sc=common" | "sc=zyyy" | "script=common" | "script=zyyy" => U17Expansion::Delta( + r"\x{20C1}\x{2B96}\x{1CCFA}-\x{1CCFC}\x{1CEBA}-\x{1CED0}\x{1CEE0}-\x{1CEF0}\x{1F6D8}\x{1F777}-\x{1F77A}\x{1F8D0}-\x{1F8D8}\x{1FA54}-\x{1FA57}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}\x{1FBFA}", + ), + // Script_-_Han.js + "sc=han" | "sc=hani" | "script=han" | "script=hani" => U17Expansion::Delta( + r"\x{16FF2}-\x{16FF6}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // Script_-_Inherited.js + "sc=inherited" | "sc=qaai" | "sc=zinh" | "script=inherited" | "script=qaai" + | "script=zinh" => U17Expansion::Delta(r"\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}"), + // Script_-_Kannada.js + "sc=kannada" | "sc=knda" | "script=kannada" | "script=knda" => { + U17Expansion::Delta(r"\x{CDC}") + } + // Script_-_Latin.js + "sc=latin" | "sc=latn" | "script=latin" | "script=latn" => { + U17Expansion::Delta(r"\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}") + } + // Script_-_Sharada.js + "sc=sharada" | "sc=shrd" | "script=sharada" | "script=shrd" => { + U17Expansion::Delta(r"\x{11B60}-\x{11B67}") + } + // Script_-_Tangut.js + "sc=tang" | "sc=tangut" | "script=tang" | "script=tangut" => { + U17Expansion::Delta(r"\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}") + } + // Script_-_Telugu.js + "sc=telu" | "sc=telugu" | "script=telu" | "script=telugu" => { + U17Expansion::Delta(r"\x{C5C}") + } + // Script_-_Unknown.js + "sc=unknown" | "sc=zzzz" | "script=unknown" | "script=zzzz" => U17Expansion::Full( + r"\x{378}-\x{379}\x{380}-\x{383}\x{38B}\x{38D}\x{3A2}\x{530}\x{557}-\x{558}\x{58B}-\x{58C}\x{590}\x{5C8}-\x{5CF}\x{5EB}-\x{5EE}\x{5F5}-\x{5FF}\x{70E}\x{74B}-\x{74C}\x{7B2}-\x{7BF}\x{7FB}-\x{7FC}\x{82E}-\x{82F}\x{83F}\x{85C}-\x{85D}\x{85F}\x{86B}-\x{86F}\x{892}-\x{896}\x{984}\x{98D}-\x{98E}\x{991}-\x{992}\x{9A9}\x{9B1}\x{9B3}-\x{9B5}\x{9BA}-\x{9BB}\x{9C5}-\x{9C6}\x{9C9}-\x{9CA}\x{9CF}-\x{9D6}\x{9D8}-\x{9DB}\x{9DE}\x{9E4}-\x{9E5}\x{9FF}-\x{A00}\x{A04}\x{A0B}-\x{A0E}\x{A11}-\x{A12}\x{A29}\x{A31}\x{A34}\x{A37}\x{A3A}-\x{A3B}\x{A3D}\x{A43}-\x{A46}\x{A49}-\x{A4A}\x{A4E}-\x{A50}\x{A52}-\x{A58}\x{A5D}\x{A5F}-\x{A65}\x{A77}-\x{A80}\x{A84}\x{A8E}\x{A92}\x{AA9}\x{AB1}\x{AB4}\x{ABA}-\x{ABB}\x{AC6}\x{ACA}\x{ACE}-\x{ACF}\x{AD1}-\x{ADF}\x{AE4}-\x{AE5}\x{AF2}-\x{AF8}\x{B00}\x{B04}\x{B0D}-\x{B0E}\x{B11}-\x{B12}\x{B29}\x{B31}\x{B34}\x{B3A}-\x{B3B}\x{B45}-\x{B46}\x{B49}-\x{B4A}\x{B4E}-\x{B54}\x{B58}-\x{B5B}\x{B5E}\x{B64}-\x{B65}\x{B78}-\x{B81}\x{B84}\x{B8B}-\x{B8D}\x{B91}\x{B96}-\x{B98}\x{B9B}\x{B9D}\x{BA0}-\x{BA2}\x{BA5}-\x{BA7}\x{BAB}-\x{BAD}\x{BBA}-\x{BBD}\x{BC3}-\x{BC5}\x{BC9}\x{BCE}-\x{BCF}\x{BD1}-\x{BD6}\x{BD8}-\x{BE5}\x{BFB}-\x{BFF}\x{C0D}\x{C11}\x{C29}\x{C3A}-\x{C3B}\x{C45}\x{C49}\x{C4E}-\x{C54}\x{C57}\x{C5B}\x{C5E}-\x{C5F}\x{C64}-\x{C65}\x{C70}-\x{C76}\x{C8D}\x{C91}\x{CA9}\x{CB4}\x{CBA}-\x{CBB}\x{CC5}\x{CC9}\x{CCE}-\x{CD4}\x{CD7}-\x{CDB}\x{CDF}\x{CE4}-\x{CE5}\x{CF0}\x{CF4}-\x{CFF}\x{D0D}\x{D11}\x{D45}\x{D49}\x{D50}-\x{D53}\x{D64}-\x{D65}\x{D80}\x{D84}\x{D97}-\x{D99}\x{DB2}\x{DBC}\x{DBE}-\x{DBF}\x{DC7}-\x{DC9}\x{DCB}-\x{DCE}\x{DD5}\x{DD7}\x{DE0}-\x{DE5}\x{DF0}-\x{DF1}\x{DF5}-\x{E00}\x{E3B}-\x{E3E}\x{E5C}-\x{E80}\x{E83}\x{E85}\x{E8B}\x{EA4}\x{EA6}\x{EBE}-\x{EBF}\x{EC5}\x{EC7}\x{ECF}\x{EDA}-\x{EDB}\x{EE0}-\x{EFF}\x{F48}\x{F6D}-\x{F70}\x{F98}\x{FBD}\x{FCD}\x{FDB}-\x{FFF}\x{10C6}\x{10C8}-\x{10CC}\x{10CE}-\x{10CF}\x{1249}\x{124E}-\x{124F}\x{1257}\x{1259}\x{125E}-\x{125F}\x{1289}\x{128E}-\x{128F}\x{12B1}\x{12B6}-\x{12B7}\x{12BF}\x{12C1}\x{12C6}-\x{12C7}\x{12D7}\x{1311}\x{1316}-\x{1317}\x{135B}-\x{135C}\x{137D}-\x{137F}\x{139A}-\x{139F}\x{13F6}-\x{13F7}\x{13FE}-\x{13FF}\x{169D}-\x{169F}\x{16F9}-\x{16FF}\x{1716}-\x{171E}\x{1737}-\x{173F}\x{1754}-\x{175F}\x{176D}\x{1771}\x{1774}-\x{177F}\x{17DE}-\x{17DF}\x{17EA}-\x{17EF}\x{17FA}-\x{17FF}\x{181A}-\x{181F}\x{1879}-\x{187F}\x{18AB}-\x{18AF}\x{18F6}-\x{18FF}\x{191F}\x{192C}-\x{192F}\x{193C}-\x{193F}\x{1941}-\x{1943}\x{196E}-\x{196F}\x{1975}-\x{197F}\x{19AC}-\x{19AF}\x{19CA}-\x{19CF}\x{19DB}-\x{19DD}\x{1A1C}-\x{1A1D}\x{1A5F}\x{1A7D}-\x{1A7E}\x{1A8A}-\x{1A8F}\x{1A9A}-\x{1A9F}\x{1AAE}-\x{1AAF}\x{1ADE}-\x{1ADF}\x{1AEC}-\x{1AFF}\x{1B4D}\x{1BF4}-\x{1BFB}\x{1C38}-\x{1C3A}\x{1C4A}-\x{1C4C}\x{1C8B}-\x{1C8F}\x{1CBB}-\x{1CBC}\x{1CC8}-\x{1CCF}\x{1CFB}-\x{1CFF}\x{1F16}-\x{1F17}\x{1F1E}-\x{1F1F}\x{1F46}-\x{1F47}\x{1F4E}-\x{1F4F}\x{1F58}\x{1F5A}\x{1F5C}\x{1F5E}\x{1F7E}-\x{1F7F}\x{1FB5}\x{1FC5}\x{1FD4}-\x{1FD5}\x{1FDC}\x{1FF0}-\x{1FF1}\x{1FF5}\x{1FFF}\x{2065}\x{2072}-\x{2073}\x{208F}\x{209D}-\x{209F}\x{20C2}-\x{20CF}\x{20F1}-\x{20FF}\x{218C}-\x{218F}\x{242A}-\x{243F}\x{244B}-\x{245F}\x{2B74}-\x{2B75}\x{2CF4}-\x{2CF8}\x{2D26}\x{2D28}-\x{2D2C}\x{2D2E}-\x{2D2F}\x{2D68}-\x{2D6E}\x{2D71}-\x{2D7E}\x{2D97}-\x{2D9F}\x{2DA7}\x{2DAF}\x{2DB7}\x{2DBF}\x{2DC7}\x{2DCF}\x{2DD7}\x{2DDF}\x{2E5E}-\x{2E7F}\x{2E9A}\x{2EF4}-\x{2EFF}\x{2FD6}-\x{2FEF}\x{3040}\x{3097}-\x{3098}\x{3100}-\x{3104}\x{3130}\x{318F}\x{31E6}-\x{31EE}\x{321F}\x{A48D}-\x{A48F}\x{A4C7}-\x{A4CF}\x{A62C}-\x{A63F}\x{A6F8}-\x{A6FF}\x{A7DD}-\x{A7F0}\x{A82D}-\x{A82F}\x{A83A}-\x{A83F}\x{A878}-\x{A87F}\x{A8C6}-\x{A8CD}\x{A8DA}-\x{A8DF}\x{A954}-\x{A95E}\x{A97D}-\x{A97F}\x{A9CE}\x{A9DA}-\x{A9DD}\x{A9FF}\x{AA37}-\x{AA3F}\x{AA4E}-\x{AA4F}\x{AA5A}-\x{AA5B}\x{AAC3}-\x{AADA}\x{AAF7}-\x{AB00}\x{AB07}-\x{AB08}\x{AB0F}-\x{AB10}\x{AB17}-\x{AB1F}\x{AB27}\x{AB2F}\x{AB6C}-\x{AB6F}\x{ABEE}-\x{ABEF}\x{ABFA}-\x{ABFF}\x{D7A4}-\x{D7AF}\x{D7C7}-\x{D7CA}\x{D7FC}-\x{F8FF}\x{FA6E}-\x{FA6F}\x{FADA}-\x{FAFF}\x{FB07}-\x{FB12}\x{FB18}-\x{FB1C}\x{FB37}\x{FB3D}\x{FB3F}\x{FB42}\x{FB45}\x{FDD0}-\x{FDEF}\x{FE1A}-\x{FE1F}\x{FE53}\x{FE67}\x{FE6C}-\x{FE6F}\x{FE75}\x{FEFD}-\x{FEFE}\x{FF00}\x{FFBF}-\x{FFC1}\x{FFC8}-\x{FFC9}\x{FFD0}-\x{FFD1}\x{FFD8}-\x{FFD9}\x{FFDD}-\x{FFDF}\x{FFE7}\x{FFEF}-\x{FFF8}\x{FFFE}-\x{FFFF}\x{1000C}\x{10027}\x{1003B}\x{1003E}\x{1004E}-\x{1004F}\x{1005E}-\x{1007F}\x{100FB}-\x{100FF}\x{10103}-\x{10106}\x{10134}-\x{10136}\x{1018F}\x{1019D}-\x{1019F}\x{101A1}-\x{101CF}\x{101FE}-\x{1027F}\x{1029D}-\x{1029F}\x{102D1}-\x{102DF}\x{102FC}-\x{102FF}\x{10324}-\x{1032C}\x{1034B}-\x{1034F}\x{1037B}-\x{1037F}\x{1039E}\x{103C4}-\x{103C7}\x{103D6}-\x{103FF}\x{1049E}-\x{1049F}\x{104AA}-\x{104AF}\x{104D4}-\x{104D7}\x{104FC}-\x{104FF}\x{10528}-\x{1052F}\x{10564}-\x{1056E}\x{1057B}\x{1058B}\x{10593}\x{10596}\x{105A2}\x{105B2}\x{105BA}\x{105BD}-\x{105BF}\x{105F4}-\x{105FF}\x{10737}-\x{1073F}\x{10756}-\x{1075F}\x{10768}-\x{1077F}\x{10786}\x{107B1}\x{107BB}-\x{107FF}\x{10806}-\x{10807}\x{10809}\x{10836}\x{10839}-\x{1083B}\x{1083D}-\x{1083E}\x{10856}\x{1089F}-\x{108A6}\x{108B0}-\x{108DF}\x{108F3}\x{108F6}-\x{108FA}\x{1091C}-\x{1091E}\x{1093A}-\x{1093E}\x{1095A}-\x{1097F}\x{109B8}-\x{109BB}\x{109D0}-\x{109D1}\x{10A04}\x{10A07}-\x{10A0B}\x{10A14}\x{10A18}\x{10A36}-\x{10A37}\x{10A3B}-\x{10A3E}\x{10A49}-\x{10A4F}\x{10A59}-\x{10A5F}\x{10AA0}-\x{10ABF}\x{10AE7}-\x{10AEA}\x{10AF7}-\x{10AFF}\x{10B36}-\x{10B38}\x{10B56}-\x{10B57}\x{10B73}-\x{10B77}\x{10B92}-\x{10B98}\x{10B9D}-\x{10BA8}\x{10BB0}-\x{10BFF}\x{10C49}-\x{10C7F}\x{10CB3}-\x{10CBF}\x{10CF3}-\x{10CF9}\x{10D28}-\x{10D2F}\x{10D3A}-\x{10D3F}\x{10D66}-\x{10D68}\x{10D86}-\x{10D8D}\x{10D90}-\x{10E5F}\x{10E7F}\x{10EAA}\x{10EAE}-\x{10EAF}\x{10EB2}-\x{10EC1}\x{10EC8}-\x{10ECF}\x{10ED9}-\x{10EF9}\x{10F28}-\x{10F2F}\x{10F5A}-\x{10F6F}\x{10F8A}-\x{10FAF}\x{10FCC}-\x{10FDF}\x{10FF7}-\x{10FFF}\x{1104E}-\x{11051}\x{11076}-\x{1107E}\x{110C3}-\x{110CC}\x{110CE}-\x{110CF}\x{110E9}-\x{110EF}\x{110FA}-\x{110FF}\x{11135}\x{11148}-\x{1114F}\x{11177}-\x{1117F}\x{111E0}\x{111F5}-\x{111FF}\x{11212}\x{11242}-\x{1127F}\x{11287}\x{11289}\x{1128E}\x{1129E}\x{112AA}-\x{112AF}\x{112EB}-\x{112EF}\x{112FA}-\x{112FF}\x{11304}\x{1130D}-\x{1130E}\x{11311}-\x{11312}\x{11329}\x{11331}\x{11334}\x{1133A}\x{11345}-\x{11346}\x{11349}-\x{1134A}\x{1134E}-\x{1134F}\x{11351}-\x{11356}\x{11358}-\x{1135C}\x{11364}-\x{11365}\x{1136D}-\x{1136F}\x{11375}-\x{1137F}\x{1138A}\x{1138C}-\x{1138D}\x{1138F}\x{113B6}\x{113C1}\x{113C3}-\x{113C4}\x{113C6}\x{113CB}\x{113D6}\x{113D9}-\x{113E0}\x{113E3}-\x{113FF}\x{1145C}\x{11462}-\x{1147F}\x{114C8}-\x{114CF}\x{114DA}-\x{1157F}\x{115B6}-\x{115B7}\x{115DE}-\x{115FF}\x{11645}-\x{1164F}\x{1165A}-\x{1165F}\x{1166D}-\x{1167F}\x{116BA}-\x{116BF}\x{116CA}-\x{116CF}\x{116E4}-\x{116FF}\x{1171B}-\x{1171C}\x{1172C}-\x{1172F}\x{11747}-\x{117FF}\x{1183C}-\x{1189F}\x{118F3}-\x{118FE}\x{11907}-\x{11908}\x{1190A}-\x{1190B}\x{11914}\x{11917}\x{11936}\x{11939}-\x{1193A}\x{11947}-\x{1194F}\x{1195A}-\x{1199F}\x{119A8}-\x{119A9}\x{119D8}-\x{119D9}\x{119E5}-\x{119FF}\x{11A48}-\x{11A4F}\x{11AA3}-\x{11AAF}\x{11AF9}-\x{11AFF}\x{11B0A}-\x{11B5F}\x{11B68}-\x{11BBF}\x{11BE2}-\x{11BEF}\x{11BFA}-\x{11BFF}\x{11C09}\x{11C37}\x{11C46}-\x{11C4F}\x{11C6D}-\x{11C6F}\x{11C90}-\x{11C91}\x{11CA8}\x{11CB7}-\x{11CFF}\x{11D07}\x{11D0A}\x{11D37}-\x{11D39}\x{11D3B}\x{11D3E}\x{11D48}-\x{11D4F}\x{11D5A}-\x{11D5F}\x{11D66}\x{11D69}\x{11D8F}\x{11D92}\x{11D99}-\x{11D9F}\x{11DAA}-\x{11DAF}\x{11DDC}-\x{11DDF}\x{11DEA}-\x{11EDF}\x{11EF9}-\x{11EFF}\x{11F11}\x{11F3B}-\x{11F3D}\x{11F5B}-\x{11FAF}\x{11FB1}-\x{11FBF}\x{11FF2}-\x{11FFE}\x{1239A}-\x{123FF}\x{1246F}\x{12475}-\x{1247F}\x{12544}-\x{12F8F}\x{12FF3}-\x{12FFF}\x{13456}-\x{1345F}\x{143FB}-\x{143FF}\x{14647}-\x{160FF}\x{1613A}-\x{167FF}\x{16A39}-\x{16A3F}\x{16A5F}\x{16A6A}-\x{16A6D}\x{16ABF}\x{16ACA}-\x{16ACF}\x{16AEE}-\x{16AEF}\x{16AF6}-\x{16AFF}\x{16B46}-\x{16B4F}\x{16B5A}\x{16B62}\x{16B78}-\x{16B7C}\x{16B90}-\x{16D3F}\x{16D7A}-\x{16E3F}\x{16E9B}-\x{16E9F}\x{16EB9}-\x{16EBA}\x{16ED4}-\x{16EFF}\x{16F4B}-\x{16F4E}\x{16F88}-\x{16F8E}\x{16FA0}-\x{16FDF}\x{16FE5}-\x{16FEF}\x{16FF7}-\x{16FFF}\x{18CD6}-\x{18CFE}\x{18D1F}-\x{18D7F}\x{18DF3}-\x{1AFEF}\x{1AFF4}\x{1AFFC}\x{1AFFF}\x{1B123}-\x{1B131}\x{1B133}-\x{1B14F}\x{1B153}-\x{1B154}\x{1B156}-\x{1B163}\x{1B168}-\x{1B16F}\x{1B2FC}-\x{1BBFF}\x{1BC6B}-\x{1BC6F}\x{1BC7D}-\x{1BC7F}\x{1BC89}-\x{1BC8F}\x{1BC9A}-\x{1BC9B}\x{1BCA4}-\x{1CBFF}\x{1CCFD}-\x{1CCFF}\x{1CEB4}-\x{1CEB9}\x{1CED1}-\x{1CEDF}\x{1CEF1}-\x{1CEFF}\x{1CF2E}-\x{1CF2F}\x{1CF47}-\x{1CF4F}\x{1CFC4}-\x{1CFFF}\x{1D0F6}-\x{1D0FF}\x{1D127}-\x{1D128}\x{1D1EB}-\x{1D1FF}\x{1D246}-\x{1D2BF}\x{1D2D4}-\x{1D2DF}\x{1D2F4}-\x{1D2FF}\x{1D357}-\x{1D35F}\x{1D379}-\x{1D3FF}\x{1D455}\x{1D49D}\x{1D4A0}-\x{1D4A1}\x{1D4A3}-\x{1D4A4}\x{1D4A7}-\x{1D4A8}\x{1D4AD}\x{1D4BA}\x{1D4BC}\x{1D4C4}\x{1D506}\x{1D50B}-\x{1D50C}\x{1D515}\x{1D51D}\x{1D53A}\x{1D53F}\x{1D545}\x{1D547}-\x{1D549}\x{1D551}\x{1D6A6}-\x{1D6A7}\x{1D7CC}-\x{1D7CD}\x{1DA8C}-\x{1DA9A}\x{1DAA0}\x{1DAB0}-\x{1DEFF}\x{1DF1F}-\x{1DF24}\x{1DF2B}-\x{1DFFF}\x{1E007}\x{1E019}-\x{1E01A}\x{1E022}\x{1E025}\x{1E02B}-\x{1E02F}\x{1E06E}-\x{1E08E}\x{1E090}-\x{1E0FF}\x{1E12D}-\x{1E12F}\x{1E13E}-\x{1E13F}\x{1E14A}-\x{1E14D}\x{1E150}-\x{1E28F}\x{1E2AF}-\x{1E2BF}\x{1E2FA}-\x{1E2FE}\x{1E300}-\x{1E4CF}\x{1E4FA}-\x{1E5CF}\x{1E5FB}-\x{1E5FE}\x{1E600}-\x{1E6BF}\x{1E6DF}\x{1E6F6}-\x{1E6FD}\x{1E700}-\x{1E7DF}\x{1E7E7}\x{1E7EC}\x{1E7EF}\x{1E7FF}\x{1E8C5}-\x{1E8C6}\x{1E8D7}-\x{1E8FF}\x{1E94C}-\x{1E94F}\x{1E95A}-\x{1E95D}\x{1E960}-\x{1EC70}\x{1ECB5}-\x{1ED00}\x{1ED3E}-\x{1EDFF}\x{1EE04}\x{1EE20}\x{1EE23}\x{1EE25}-\x{1EE26}\x{1EE28}\x{1EE33}\x{1EE38}\x{1EE3A}\x{1EE3C}-\x{1EE41}\x{1EE43}-\x{1EE46}\x{1EE48}\x{1EE4A}\x{1EE4C}\x{1EE50}\x{1EE53}\x{1EE55}-\x{1EE56}\x{1EE58}\x{1EE5A}\x{1EE5C}\x{1EE5E}\x{1EE60}\x{1EE63}\x{1EE65}-\x{1EE66}\x{1EE6B}\x{1EE73}\x{1EE78}\x{1EE7D}\x{1EE7F}\x{1EE8A}\x{1EE9C}-\x{1EEA0}\x{1EEA4}\x{1EEAA}\x{1EEBC}-\x{1EEEF}\x{1EEF2}-\x{1EFFF}\x{1F02C}-\x{1F02F}\x{1F094}-\x{1F09F}\x{1F0AF}-\x{1F0B0}\x{1F0C0}\x{1F0D0}\x{1F0F6}-\x{1F0FF}\x{1F1AE}-\x{1F1E5}\x{1F203}-\x{1F20F}\x{1F23C}-\x{1F23F}\x{1F249}-\x{1F24F}\x{1F252}-\x{1F25F}\x{1F266}-\x{1F2FF}\x{1F6D9}-\x{1F6DB}\x{1F6ED}-\x{1F6EF}\x{1F6FD}-\x{1F6FF}\x{1F7DA}-\x{1F7DF}\x{1F7EC}-\x{1F7EF}\x{1F7F1}-\x{1F7FF}\x{1F80C}-\x{1F80F}\x{1F848}-\x{1F84F}\x{1F85A}-\x{1F85F}\x{1F888}-\x{1F88F}\x{1F8AE}-\x{1F8AF}\x{1F8BC}-\x{1F8BF}\x{1F8C2}-\x{1F8CF}\x{1F8D9}-\x{1F8FF}\x{1FA58}-\x{1FA5F}\x{1FA6E}-\x{1FA6F}\x{1FA7D}-\x{1FA7F}\x{1FA8B}-\x{1FA8D}\x{1FAC7}\x{1FAC9}-\x{1FACC}\x{1FADD}-\x{1FADE}\x{1FAEB}-\x{1FAEE}\x{1FAF9}-\x{1FAFF}\x{1FB93}\x{1FBFB}-\x{1FFFF}\x{2A6E0}-\x{2A6FF}\x{2B81E}-\x{2B81F}\x{2CEAE}-\x{2CEAF}\x{2EBE1}-\x{2EBEF}\x{2EE5E}-\x{2F7FF}\x{2FA1E}-\x{2FFFF}\x{3134B}-\x{3134F}\x{3347A}-\x{E0000}\x{E0002}-\x{E001F}\x{E0080}-\x{E00FF}\x{E01F0}-\x{10FFFF}", + ), + // Script_Extensions_-_Arabic.js + "scriptextensions=arab" | "scriptextensions=arabic" | "scx=arab" | "scx=arabic" => { + U17Expansion::Delta( + r"\x{88F}\x{FBC3}-\x{FBD2}\x{FD90}-\x{FD91}\x{FDC8}-\x{FDCE}\x{10EC5}-\x{10EC7}\x{10ED0}-\x{10ED8}\x{10EFA}-\x{10EFB}", + ) + } + // Script_Extensions_-_Common.js + "scriptextensions=common" | "scriptextensions=zyyy" | "scx=common" | "scx=zyyy" => { + U17Expansion::Delta( + r"\x{20C1}\x{2B96}\x{1CCFA}-\x{1CCFC}\x{1CEBA}-\x{1CED0}\x{1CEE0}-\x{1CEF0}\x{1F6D8}\x{1F777}-\x{1F77A}\x{1F8D0}-\x{1F8D8}\x{1FA54}-\x{1FA57}\x{1FA8A}\x{1FA8E}\x{1FAC8}\x{1FACD}\x{1FAEA}\x{1FAEF}\x{1FBFA}", + ) + } + // Script_Extensions_-_Han.js + "scriptextensions=han" | "scriptextensions=hani" | "scx=han" | "scx=hani" => { + U17Expansion::Delta( + r"\x{16FF2}-\x{16FF6}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ) + } + // Script_Extensions_-_Inherited.js + "scriptextensions=inherited" + | "scriptextensions=qaai" + | "scriptextensions=zinh" + | "scx=inherited" + | "scx=qaai" + | "scx=zinh" => U17Expansion::Delta(r"\x{320}\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}"), + // Script_Extensions_-_Kannada.js + "scriptextensions=kannada" | "scriptextensions=knda" | "scx=kannada" | "scx=knda" => { + U17Expansion::Delta(r"\x{CDC}") + } + // Script_Extensions_-_Latin.js + "scriptextensions=latin" | "scriptextensions=latn" | "scx=latin" | "scx=latn" => { + U17Expansion::Full( + r"\x{41}-\x{5A}\x{61}-\x{7A}\x{AA}\x{B7}\x{BA}\x{C0}-\x{D6}\x{D8}-\x{F6}\x{F8}-\x{2B8}\x{2BC}\x{2C7}\x{2C9}-\x{2CB}\x{2CD}\x{2D7}\x{2D9}\x{2E0}-\x{2E4}\x{300}-\x{30E}\x{310}-\x{311}\x{313}\x{323}-\x{325}\x{32D}-\x{32E}\x{330}-\x{331}\x{358}\x{35E}\x{363}-\x{36F}\x{485}-\x{486}\x{951}-\x{952}\x{10FB}\x{1D00}-\x{1D25}\x{1D2C}-\x{1D5C}\x{1D62}-\x{1D65}\x{1D6B}-\x{1D77}\x{1D79}-\x{1DBE}\x{1DF8}\x{1E00}-\x{1EFF}\x{202F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20F0}\x{212A}-\x{212B}\x{2132}\x{214E}\x{2160}-\x{2188}\x{2C60}-\x{2C7F}\x{2E17}\x{A700}-\x{A707}\x{A722}-\x{A787}\x{A78B}-\x{A7DC}\x{A7F1}-\x{A7FF}\x{A92E}\x{AB30}-\x{AB5A}\x{AB5C}-\x{AB64}\x{AB66}-\x{AB69}\x{FB00}-\x{FB06}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}\x{10780}-\x{10785}\x{10787}-\x{107B0}\x{107B2}-\x{107BA}\x{1DF00}-\x{1DF1E}\x{1DF25}-\x{1DF2A}", + ) + } + // Script_Extensions_-_Nandinagari.js + "scriptextensions=nand" + | "scriptextensions=nandinagari" + | "scx=nand" + | "scx=nandinagari" => U17Expansion::Delta(r"\x{951}"), + // Script_Extensions_-_Newa.js + "scriptextensions=newa" | "scx=newa" => U17Expansion::Delta( + r"\x{951}-\x{952}\x{1CD5}\x{1CD7}-\x{1CD8}\x{1CE2}\x{1CE9}\x{1CEB}\x{1CED}", + ), + // Script_Extensions_-_Sharada.js + "scriptextensions=sharada" | "scriptextensions=shrd" | "scx=sharada" | "scx=shrd" => { + U17Expansion::Delta(r"\x{1CEA}\x{1CED}\x{11B60}-\x{11B67}") + } + // Script_Extensions_-_Syriac.js + "scriptextensions=syrc" | "scriptextensions=syriac" | "scx=syrc" | "scx=syriac" => { + U17Expansion::Full( + r"\x{303}-\x{304}\x{307}-\x{308}\x{30A}\x{323}-\x{325}\x{32D}-\x{32E}\x{330}-\x{331}\x{60C}\x{61B}-\x{61C}\x{61F}\x{640}\x{64B}-\x{655}\x{670}\x{700}-\x{70D}\x{70F}-\x{74A}\x{74D}-\x{74F}\x{860}-\x{86A}\x{1DF8}\x{1DFA}", + ) + } + // Script_Extensions_-_Tangut.js + "scriptextensions=tang" | "scriptextensions=tangut" | "scx=tang" | "scx=tangut" => { + U17Expansion::Delta(r"\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}") + } + // Script_Extensions_-_Telugu.js + "scriptextensions=telu" | "scriptextensions=telugu" | "scx=telu" | "scx=telugu" => { + U17Expansion::Delta(r"\x{C5C}\x{1CD5}-\x{1CD6}\x{1CD8}") + } + // Script_Extensions_-_Tifinagh.js + "scriptextensions=tfng" | "scriptextensions=tifinagh" | "scx=tfng" | "scx=tifinagh" => { + U17Expansion::Delta(r"\x{306}\x{308}\x{323}") + } + // Script_Extensions_-_Tirhuta.js + "scriptextensions=tirh" | "scriptextensions=tirhuta" | "scx=tirh" | "scx=tirhuta" => { + U17Expansion::Delta(r"\x{1CD5}\x{1CE2}") + } + // Script_Extensions_-_Unknown.js + "scriptextensions=unknown" | "scriptextensions=zzzz" | "scx=unknown" | "scx=zzzz" => { + U17Expansion::Full( + r"\x{378}-\x{379}\x{380}-\x{383}\x{38B}\x{38D}\x{3A2}\x{530}\x{557}-\x{558}\x{58B}-\x{58C}\x{590}\x{5C8}-\x{5CF}\x{5EB}-\x{5EE}\x{5F5}-\x{5FF}\x{70E}\x{74B}-\x{74C}\x{7B2}-\x{7BF}\x{7FB}-\x{7FC}\x{82E}-\x{82F}\x{83F}\x{85C}-\x{85D}\x{85F}\x{86B}-\x{86F}\x{892}-\x{896}\x{984}\x{98D}-\x{98E}\x{991}-\x{992}\x{9A9}\x{9B1}\x{9B3}-\x{9B5}\x{9BA}-\x{9BB}\x{9C5}-\x{9C6}\x{9C9}-\x{9CA}\x{9CF}-\x{9D6}\x{9D8}-\x{9DB}\x{9DE}\x{9E4}-\x{9E5}\x{9FF}-\x{A00}\x{A04}\x{A0B}-\x{A0E}\x{A11}-\x{A12}\x{A29}\x{A31}\x{A34}\x{A37}\x{A3A}-\x{A3B}\x{A3D}\x{A43}-\x{A46}\x{A49}-\x{A4A}\x{A4E}-\x{A50}\x{A52}-\x{A58}\x{A5D}\x{A5F}-\x{A65}\x{A77}-\x{A80}\x{A84}\x{A8E}\x{A92}\x{AA9}\x{AB1}\x{AB4}\x{ABA}-\x{ABB}\x{AC6}\x{ACA}\x{ACE}-\x{ACF}\x{AD1}-\x{ADF}\x{AE4}-\x{AE5}\x{AF2}-\x{AF8}\x{B00}\x{B04}\x{B0D}-\x{B0E}\x{B11}-\x{B12}\x{B29}\x{B31}\x{B34}\x{B3A}-\x{B3B}\x{B45}-\x{B46}\x{B49}-\x{B4A}\x{B4E}-\x{B54}\x{B58}-\x{B5B}\x{B5E}\x{B64}-\x{B65}\x{B78}-\x{B81}\x{B84}\x{B8B}-\x{B8D}\x{B91}\x{B96}-\x{B98}\x{B9B}\x{B9D}\x{BA0}-\x{BA2}\x{BA5}-\x{BA7}\x{BAB}-\x{BAD}\x{BBA}-\x{BBD}\x{BC3}-\x{BC5}\x{BC9}\x{BCE}-\x{BCF}\x{BD1}-\x{BD6}\x{BD8}-\x{BE5}\x{BFB}-\x{BFF}\x{C0D}\x{C11}\x{C29}\x{C3A}-\x{C3B}\x{C45}\x{C49}\x{C4E}-\x{C54}\x{C57}\x{C5B}\x{C5E}-\x{C5F}\x{C64}-\x{C65}\x{C70}-\x{C76}\x{C8D}\x{C91}\x{CA9}\x{CB4}\x{CBA}-\x{CBB}\x{CC5}\x{CC9}\x{CCE}-\x{CD4}\x{CD7}-\x{CDB}\x{CDF}\x{CE4}-\x{CE5}\x{CF0}\x{CF4}-\x{CFF}\x{D0D}\x{D11}\x{D45}\x{D49}\x{D50}-\x{D53}\x{D64}-\x{D65}\x{D80}\x{D84}\x{D97}-\x{D99}\x{DB2}\x{DBC}\x{DBE}-\x{DBF}\x{DC7}-\x{DC9}\x{DCB}-\x{DCE}\x{DD5}\x{DD7}\x{DE0}-\x{DE5}\x{DF0}-\x{DF1}\x{DF5}-\x{E00}\x{E3B}-\x{E3E}\x{E5C}-\x{E80}\x{E83}\x{E85}\x{E8B}\x{EA4}\x{EA6}\x{EBE}-\x{EBF}\x{EC5}\x{EC7}\x{ECF}\x{EDA}-\x{EDB}\x{EE0}-\x{EFF}\x{F48}\x{F6D}-\x{F70}\x{F98}\x{FBD}\x{FCD}\x{FDB}-\x{FFF}\x{10C6}\x{10C8}-\x{10CC}\x{10CE}-\x{10CF}\x{1249}\x{124E}-\x{124F}\x{1257}\x{1259}\x{125E}-\x{125F}\x{1289}\x{128E}-\x{128F}\x{12B1}\x{12B6}-\x{12B7}\x{12BF}\x{12C1}\x{12C6}-\x{12C7}\x{12D7}\x{1311}\x{1316}-\x{1317}\x{135B}-\x{135C}\x{137D}-\x{137F}\x{139A}-\x{139F}\x{13F6}-\x{13F7}\x{13FE}-\x{13FF}\x{169D}-\x{169F}\x{16F9}-\x{16FF}\x{1716}-\x{171E}\x{1737}-\x{173F}\x{1754}-\x{175F}\x{176D}\x{1771}\x{1774}-\x{177F}\x{17DE}-\x{17DF}\x{17EA}-\x{17EF}\x{17FA}-\x{17FF}\x{181A}-\x{181F}\x{1879}-\x{187F}\x{18AB}-\x{18AF}\x{18F6}-\x{18FF}\x{191F}\x{192C}-\x{192F}\x{193C}-\x{193F}\x{1941}-\x{1943}\x{196E}-\x{196F}\x{1975}-\x{197F}\x{19AC}-\x{19AF}\x{19CA}-\x{19CF}\x{19DB}-\x{19DD}\x{1A1C}-\x{1A1D}\x{1A5F}\x{1A7D}-\x{1A7E}\x{1A8A}-\x{1A8F}\x{1A9A}-\x{1A9F}\x{1AAE}-\x{1AAF}\x{1ADE}-\x{1ADF}\x{1AEC}-\x{1AFF}\x{1B4D}\x{1BF4}-\x{1BFB}\x{1C38}-\x{1C3A}\x{1C4A}-\x{1C4C}\x{1C8B}-\x{1C8F}\x{1CBB}-\x{1CBC}\x{1CC8}-\x{1CCF}\x{1CFB}-\x{1CFF}\x{1F16}-\x{1F17}\x{1F1E}-\x{1F1F}\x{1F46}-\x{1F47}\x{1F4E}-\x{1F4F}\x{1F58}\x{1F5A}\x{1F5C}\x{1F5E}\x{1F7E}-\x{1F7F}\x{1FB5}\x{1FC5}\x{1FD4}-\x{1FD5}\x{1FDC}\x{1FF0}-\x{1FF1}\x{1FF5}\x{1FFF}\x{2065}\x{2072}-\x{2073}\x{208F}\x{209D}-\x{209F}\x{20C2}-\x{20CF}\x{20F1}-\x{20FF}\x{218C}-\x{218F}\x{242A}-\x{243F}\x{244B}-\x{245F}\x{2B74}-\x{2B75}\x{2CF4}-\x{2CF8}\x{2D26}\x{2D28}-\x{2D2C}\x{2D2E}-\x{2D2F}\x{2D68}-\x{2D6E}\x{2D71}-\x{2D7E}\x{2D97}-\x{2D9F}\x{2DA7}\x{2DAF}\x{2DB7}\x{2DBF}\x{2DC7}\x{2DCF}\x{2DD7}\x{2DDF}\x{2E5E}-\x{2E7F}\x{2E9A}\x{2EF4}-\x{2EFF}\x{2FD6}-\x{2FEF}\x{3040}\x{3097}-\x{3098}\x{3100}-\x{3104}\x{3130}\x{318F}\x{31E6}-\x{31EE}\x{321F}\x{A48D}-\x{A48F}\x{A4C7}-\x{A4CF}\x{A62C}-\x{A63F}\x{A6F8}-\x{A6FF}\x{A7DD}-\x{A7F0}\x{A82D}-\x{A82F}\x{A83A}-\x{A83F}\x{A878}-\x{A87F}\x{A8C6}-\x{A8CD}\x{A8DA}-\x{A8DF}\x{A954}-\x{A95E}\x{A97D}-\x{A97F}\x{A9CE}\x{A9DA}-\x{A9DD}\x{A9FF}\x{AA37}-\x{AA3F}\x{AA4E}-\x{AA4F}\x{AA5A}-\x{AA5B}\x{AAC3}-\x{AADA}\x{AAF7}-\x{AB00}\x{AB07}-\x{AB08}\x{AB0F}-\x{AB10}\x{AB17}-\x{AB1F}\x{AB27}\x{AB2F}\x{AB6C}-\x{AB6F}\x{ABEE}-\x{ABEF}\x{ABFA}-\x{ABFF}\x{D7A4}-\x{D7AF}\x{D7C7}-\x{D7CA}\x{D7FC}-\x{F8FF}\x{FA6E}-\x{FA6F}\x{FADA}-\x{FAFF}\x{FB07}-\x{FB12}\x{FB18}-\x{FB1C}\x{FB37}\x{FB3D}\x{FB3F}\x{FB42}\x{FB45}\x{FDD0}-\x{FDEF}\x{FE1A}-\x{FE1F}\x{FE53}\x{FE67}\x{FE6C}-\x{FE6F}\x{FE75}\x{FEFD}-\x{FEFE}\x{FF00}\x{FFBF}-\x{FFC1}\x{FFC8}-\x{FFC9}\x{FFD0}-\x{FFD1}\x{FFD8}-\x{FFD9}\x{FFDD}-\x{FFDF}\x{FFE7}\x{FFEF}-\x{FFF8}\x{FFFE}-\x{FFFF}\x{1000C}\x{10027}\x{1003B}\x{1003E}\x{1004E}-\x{1004F}\x{1005E}-\x{1007F}\x{100FB}-\x{100FF}\x{10103}-\x{10106}\x{10134}-\x{10136}\x{1018F}\x{1019D}-\x{1019F}\x{101A1}-\x{101CF}\x{101FE}-\x{1027F}\x{1029D}-\x{1029F}\x{102D1}-\x{102DF}\x{102FC}-\x{102FF}\x{10324}-\x{1032C}\x{1034B}-\x{1034F}\x{1037B}-\x{1037F}\x{1039E}\x{103C4}-\x{103C7}\x{103D6}-\x{103FF}\x{1049E}-\x{1049F}\x{104AA}-\x{104AF}\x{104D4}-\x{104D7}\x{104FC}-\x{104FF}\x{10528}-\x{1052F}\x{10564}-\x{1056E}\x{1057B}\x{1058B}\x{10593}\x{10596}\x{105A2}\x{105B2}\x{105BA}\x{105BD}-\x{105BF}\x{105F4}-\x{105FF}\x{10737}-\x{1073F}\x{10756}-\x{1075F}\x{10768}-\x{1077F}\x{10786}\x{107B1}\x{107BB}-\x{107FF}\x{10806}-\x{10807}\x{10809}\x{10836}\x{10839}-\x{1083B}\x{1083D}-\x{1083E}\x{10856}\x{1089F}-\x{108A6}\x{108B0}-\x{108DF}\x{108F3}\x{108F6}-\x{108FA}\x{1091C}-\x{1091E}\x{1093A}-\x{1093E}\x{1095A}-\x{1097F}\x{109B8}-\x{109BB}\x{109D0}-\x{109D1}\x{10A04}\x{10A07}-\x{10A0B}\x{10A14}\x{10A18}\x{10A36}-\x{10A37}\x{10A3B}-\x{10A3E}\x{10A49}-\x{10A4F}\x{10A59}-\x{10A5F}\x{10AA0}-\x{10ABF}\x{10AE7}-\x{10AEA}\x{10AF7}-\x{10AFF}\x{10B36}-\x{10B38}\x{10B56}-\x{10B57}\x{10B73}-\x{10B77}\x{10B92}-\x{10B98}\x{10B9D}-\x{10BA8}\x{10BB0}-\x{10BFF}\x{10C49}-\x{10C7F}\x{10CB3}-\x{10CBF}\x{10CF3}-\x{10CF9}\x{10D28}-\x{10D2F}\x{10D3A}-\x{10D3F}\x{10D66}-\x{10D68}\x{10D86}-\x{10D8D}\x{10D90}-\x{10E5F}\x{10E7F}\x{10EAA}\x{10EAE}-\x{10EAF}\x{10EB2}-\x{10EC1}\x{10EC8}-\x{10ECF}\x{10ED9}-\x{10EF9}\x{10F28}-\x{10F2F}\x{10F5A}-\x{10F6F}\x{10F8A}-\x{10FAF}\x{10FCC}-\x{10FDF}\x{10FF7}-\x{10FFF}\x{1104E}-\x{11051}\x{11076}-\x{1107E}\x{110C3}-\x{110CC}\x{110CE}-\x{110CF}\x{110E9}-\x{110EF}\x{110FA}-\x{110FF}\x{11135}\x{11148}-\x{1114F}\x{11177}-\x{1117F}\x{111E0}\x{111F5}-\x{111FF}\x{11212}\x{11242}-\x{1127F}\x{11287}\x{11289}\x{1128E}\x{1129E}\x{112AA}-\x{112AF}\x{112EB}-\x{112EF}\x{112FA}-\x{112FF}\x{11304}\x{1130D}-\x{1130E}\x{11311}-\x{11312}\x{11329}\x{11331}\x{11334}\x{1133A}\x{11345}-\x{11346}\x{11349}-\x{1134A}\x{1134E}-\x{1134F}\x{11351}-\x{11356}\x{11358}-\x{1135C}\x{11364}-\x{11365}\x{1136D}-\x{1136F}\x{11375}-\x{1137F}\x{1138A}\x{1138C}-\x{1138D}\x{1138F}\x{113B6}\x{113C1}\x{113C3}-\x{113C4}\x{113C6}\x{113CB}\x{113D6}\x{113D9}-\x{113E0}\x{113E3}-\x{113FF}\x{1145C}\x{11462}-\x{1147F}\x{114C8}-\x{114CF}\x{114DA}-\x{1157F}\x{115B6}-\x{115B7}\x{115DE}-\x{115FF}\x{11645}-\x{1164F}\x{1165A}-\x{1165F}\x{1166D}-\x{1167F}\x{116BA}-\x{116BF}\x{116CA}-\x{116CF}\x{116E4}-\x{116FF}\x{1171B}-\x{1171C}\x{1172C}-\x{1172F}\x{11747}-\x{117FF}\x{1183C}-\x{1189F}\x{118F3}-\x{118FE}\x{11907}-\x{11908}\x{1190A}-\x{1190B}\x{11914}\x{11917}\x{11936}\x{11939}-\x{1193A}\x{11947}-\x{1194F}\x{1195A}-\x{1199F}\x{119A8}-\x{119A9}\x{119D8}-\x{119D9}\x{119E5}-\x{119FF}\x{11A48}-\x{11A4F}\x{11AA3}-\x{11AAF}\x{11AF9}-\x{11AFF}\x{11B0A}-\x{11B5F}\x{11B68}-\x{11BBF}\x{11BE2}-\x{11BEF}\x{11BFA}-\x{11BFF}\x{11C09}\x{11C37}\x{11C46}-\x{11C4F}\x{11C6D}-\x{11C6F}\x{11C90}-\x{11C91}\x{11CA8}\x{11CB7}-\x{11CFF}\x{11D07}\x{11D0A}\x{11D37}-\x{11D39}\x{11D3B}\x{11D3E}\x{11D48}-\x{11D4F}\x{11D5A}-\x{11D5F}\x{11D66}\x{11D69}\x{11D8F}\x{11D92}\x{11D99}-\x{11D9F}\x{11DAA}-\x{11DAF}\x{11DDC}-\x{11DDF}\x{11DEA}-\x{11EDF}\x{11EF9}-\x{11EFF}\x{11F11}\x{11F3B}-\x{11F3D}\x{11F5B}-\x{11FAF}\x{11FB1}-\x{11FBF}\x{11FF2}-\x{11FFE}\x{1239A}-\x{123FF}\x{1246F}\x{12475}-\x{1247F}\x{12544}-\x{12F8F}\x{12FF3}-\x{12FFF}\x{13456}-\x{1345F}\x{143FB}-\x{143FF}\x{14647}-\x{160FF}\x{1613A}-\x{167FF}\x{16A39}-\x{16A3F}\x{16A5F}\x{16A6A}-\x{16A6D}\x{16ABF}\x{16ACA}-\x{16ACF}\x{16AEE}-\x{16AEF}\x{16AF6}-\x{16AFF}\x{16B46}-\x{16B4F}\x{16B5A}\x{16B62}\x{16B78}-\x{16B7C}\x{16B90}-\x{16D3F}\x{16D7A}-\x{16E3F}\x{16E9B}-\x{16E9F}\x{16EB9}-\x{16EBA}\x{16ED4}-\x{16EFF}\x{16F4B}-\x{16F4E}\x{16F88}-\x{16F8E}\x{16FA0}-\x{16FDF}\x{16FE5}-\x{16FEF}\x{16FF7}-\x{16FFF}\x{18CD6}-\x{18CFE}\x{18D1F}-\x{18D7F}\x{18DF3}-\x{1AFEF}\x{1AFF4}\x{1AFFC}\x{1AFFF}\x{1B123}-\x{1B131}\x{1B133}-\x{1B14F}\x{1B153}-\x{1B154}\x{1B156}-\x{1B163}\x{1B168}-\x{1B16F}\x{1B2FC}-\x{1BBFF}\x{1BC6B}-\x{1BC6F}\x{1BC7D}-\x{1BC7F}\x{1BC89}-\x{1BC8F}\x{1BC9A}-\x{1BC9B}\x{1BCA4}-\x{1CBFF}\x{1CCFD}-\x{1CCFF}\x{1CEB4}-\x{1CEB9}\x{1CED1}-\x{1CEDF}\x{1CEF1}-\x{1CEFF}\x{1CF2E}-\x{1CF2F}\x{1CF47}-\x{1CF4F}\x{1CFC4}-\x{1CFFF}\x{1D0F6}-\x{1D0FF}\x{1D127}-\x{1D128}\x{1D1EB}-\x{1D1FF}\x{1D246}-\x{1D2BF}\x{1D2D4}-\x{1D2DF}\x{1D2F4}-\x{1D2FF}\x{1D357}-\x{1D35F}\x{1D379}-\x{1D3FF}\x{1D455}\x{1D49D}\x{1D4A0}-\x{1D4A1}\x{1D4A3}-\x{1D4A4}\x{1D4A7}-\x{1D4A8}\x{1D4AD}\x{1D4BA}\x{1D4BC}\x{1D4C4}\x{1D506}\x{1D50B}-\x{1D50C}\x{1D515}\x{1D51D}\x{1D53A}\x{1D53F}\x{1D545}\x{1D547}-\x{1D549}\x{1D551}\x{1D6A6}-\x{1D6A7}\x{1D7CC}-\x{1D7CD}\x{1DA8C}-\x{1DA9A}\x{1DAA0}\x{1DAB0}-\x{1DEFF}\x{1DF1F}-\x{1DF24}\x{1DF2B}-\x{1DFFF}\x{1E007}\x{1E019}-\x{1E01A}\x{1E022}\x{1E025}\x{1E02B}-\x{1E02F}\x{1E06E}-\x{1E08E}\x{1E090}-\x{1E0FF}\x{1E12D}-\x{1E12F}\x{1E13E}-\x{1E13F}\x{1E14A}-\x{1E14D}\x{1E150}-\x{1E28F}\x{1E2AF}-\x{1E2BF}\x{1E2FA}-\x{1E2FE}\x{1E300}-\x{1E4CF}\x{1E4FA}-\x{1E5CF}\x{1E5FB}-\x{1E5FE}\x{1E600}-\x{1E6BF}\x{1E6DF}\x{1E6F6}-\x{1E6FD}\x{1E700}-\x{1E7DF}\x{1E7E7}\x{1E7EC}\x{1E7EF}\x{1E7FF}\x{1E8C5}-\x{1E8C6}\x{1E8D7}-\x{1E8FF}\x{1E94C}-\x{1E94F}\x{1E95A}-\x{1E95D}\x{1E960}-\x{1EC70}\x{1ECB5}-\x{1ED00}\x{1ED3E}-\x{1EDFF}\x{1EE04}\x{1EE20}\x{1EE23}\x{1EE25}-\x{1EE26}\x{1EE28}\x{1EE33}\x{1EE38}\x{1EE3A}\x{1EE3C}-\x{1EE41}\x{1EE43}-\x{1EE46}\x{1EE48}\x{1EE4A}\x{1EE4C}\x{1EE50}\x{1EE53}\x{1EE55}-\x{1EE56}\x{1EE58}\x{1EE5A}\x{1EE5C}\x{1EE5E}\x{1EE60}\x{1EE63}\x{1EE65}-\x{1EE66}\x{1EE6B}\x{1EE73}\x{1EE78}\x{1EE7D}\x{1EE7F}\x{1EE8A}\x{1EE9C}-\x{1EEA0}\x{1EEA4}\x{1EEAA}\x{1EEBC}-\x{1EEEF}\x{1EEF2}-\x{1EFFF}\x{1F02C}-\x{1F02F}\x{1F094}-\x{1F09F}\x{1F0AF}-\x{1F0B0}\x{1F0C0}\x{1F0D0}\x{1F0F6}-\x{1F0FF}\x{1F1AE}-\x{1F1E5}\x{1F203}-\x{1F20F}\x{1F23C}-\x{1F23F}\x{1F249}-\x{1F24F}\x{1F252}-\x{1F25F}\x{1F266}-\x{1F2FF}\x{1F6D9}-\x{1F6DB}\x{1F6ED}-\x{1F6EF}\x{1F6FD}-\x{1F6FF}\x{1F7DA}-\x{1F7DF}\x{1F7EC}-\x{1F7EF}\x{1F7F1}-\x{1F7FF}\x{1F80C}-\x{1F80F}\x{1F848}-\x{1F84F}\x{1F85A}-\x{1F85F}\x{1F888}-\x{1F88F}\x{1F8AE}-\x{1F8AF}\x{1F8BC}-\x{1F8BF}\x{1F8C2}-\x{1F8CF}\x{1F8D9}-\x{1F8FF}\x{1FA58}-\x{1FA5F}\x{1FA6E}-\x{1FA6F}\x{1FA7D}-\x{1FA7F}\x{1FA8B}-\x{1FA8D}\x{1FAC7}\x{1FAC9}-\x{1FACC}\x{1FADD}-\x{1FADE}\x{1FAEB}-\x{1FAEE}\x{1FAF9}-\x{1FAFF}\x{1FB93}\x{1FBFB}-\x{1FFFF}\x{2A6E0}-\x{2A6FF}\x{2B81E}-\x{2B81F}\x{2CEAE}-\x{2CEAF}\x{2EBE1}-\x{2EBEF}\x{2EE5E}-\x{2F7FF}\x{2FA1E}-\x{2FFFF}\x{3134B}-\x{3134F}\x{3347A}-\x{E0000}\x{E0002}-\x{E001F}\x{E0080}-\x{E00FF}\x{E01F0}-\x{10FFFF}", + ) + } + // Unified_Ideograph.js + "uideo" | "unifiedideograph" => { + U17Expansion::Delta(r"\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}") + } + // Uppercase.js + "upper" | "uppercase" => { + U17Expansion::Delta(r"\x{A7CE}\x{A7D2}\x{A7D4}\x{16EA0}-\x{16EB8}") + } + // XID_Continue.js + "xidc" | "xidcontinue" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{1ACF}-\x{1ADD}\x{1AE0}-\x{1AEB}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{10EFA}-\x{10EFB}\x{11B60}-\x{11B67}\x{11DB0}-\x{11DDB}\x{11DE0}-\x{11DE9}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6F5}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + // XID_Start.js + "xids" | "xidstart" => U17Expansion::Delta( + r"\x{88F}\x{C5C}\x{CDC}\x{A7CE}-\x{A7CF}\x{A7D2}\x{A7D4}\x{A7F1}\x{10940}-\x{10959}\x{10EC5}-\x{10EC7}\x{11DB0}-\x{11DDB}\x{16EA0}-\x{16EB8}\x{16EBB}-\x{16ED3}\x{16FF2}-\x{16FF6}\x{187F8}-\x{187FF}\x{18D09}-\x{18D1E}\x{18D80}-\x{18DF2}\x{1E6C0}-\x{1E6DE}\x{1E6E0}-\x{1E6E2}\x{1E6E4}-\x{1E6E5}\x{1E6E7}-\x{1E6ED}\x{1E6F0}-\x{1E6F4}\x{1E6FE}-\x{1E6FF}\x{2B73A}-\x{2B73F}\x{2CEA2}-\x{2CEAD}\x{323B0}-\x{33479}", + ), + _ => return None, + }) +}